3015 lines
3.4 MiB
Plaintext
3015 lines
3.4 MiB
Plaintext
/*
|
||
* 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 = {
|
||
|
||
/***/ "(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"]}],\"variableName\":\"inter\"}":
|
||
/*!*************************************************************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/font/google/target.css?{"path":"src\\app\\layout.tsx","import":"Inter","arguments":[{"subsets":["latin","cyrillic"]}],"variableName":"inter"} ***!
|
||
\*************************************************************************************************************************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'Inter', 'Inter Fallback'\",\"fontStyle\":\"normal\"},\n\t\"className\": \"__className_fcbcbf\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2dvb2dsZS90YXJnZXQuY3NzP3tcInBhdGhcIjpcInNyY1xcXFxhcHBcXFxcbGF5b3V0LnRzeFwiLFwiaW1wb3J0XCI6XCJJbnRlclwiLFwiYXJndW1lbnRzXCI6W3tcInN1YnNldHNcIjpbXCJsYXRpblwiLFwiY3lyaWxsaWNcIl19XSxcInZhcmlhYmxlTmFtZVwiOlwiaW50ZXJcIn0iLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLFdBQVcsOERBQThEO0FBQ3pFO0FBQ0EiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGZvbnRcXGdvb2dsZVxcdGFyZ2V0LmNzcz97XCJwYXRoXCI6XCJzcmNcXGFwcFxcbGF5b3V0LnRzeFwiLFwiaW1wb3J0XCI6XCJJbnRlclwiLFwiYXJndW1lbnRzXCI6W3tcInN1YnNldHNcIjpbXCJsYXRpblwiLFwiY3lyaWxsaWNcIl19XSxcInZhcmlhYmxlTmFtZVwiOlwiaW50ZXJcIn18cnNjIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0ge1xuXHRcInN0eWxlXCI6IHtcImZvbnRGYW1pbHlcIjpcIidJbnRlcicsICdJbnRlciBGYWxsYmFjaydcIixcImZvbnRTdHlsZVwiOlwibm9ybWFsXCJ9LFxuXHRcImNsYXNzTmFtZVwiOiBcIl9fY2xhc3NOYW1lX2ZjYmNiZlwiXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"src\\\\app\\\\layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\",\"cyrillic\"]}],\"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRDs7QUFFaEQiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGFwaVxcbmF2aWdhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmF2aWdhdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBS2dCQTs7O2VBQUFBOzs7MkNBTGM7b0RBQ2E7QUFFM0MsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixZQUFZSyxJQUFZLEVBQUVDLFFBQWtCO0lBQzFELE9BQU9DLENBQUFBLEdBQUFBLHdCQUFBQSwwQkFBQUEsRUFDTEwsTUFBdURJLEdBQ25ERCxDQUFJQSxHQUNKSSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjSixNQUFNSjtBQUU1QiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcc3JjXFxjbGllbnRcXGFkZC1iYXNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gnXG5cbmNvbnN0IGJhc2VQYXRoID0gKHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggYXMgc3RyaW5nKSB8fCAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aDogc3RyaW5nLCByZXF1aXJlZD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgcHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIICYmICFyZXF1aXJlZFxuICAgICAgPyBwYXRoXG4gICAgICA6IGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJhZGRCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicmVxdWlyZWQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtYnVpbGQtaWQuanMiLCJtYXBwaW5ncyI6IkFBQUEsNEVBQTRFO0FBQzVFLDRFQUE0RTtBQUM1RSx3REFBd0Q7QUFDeEQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsc0NBQXNDO0FBRXRDLDBFQUEwRTtBQUMxRSxzRUFBc0U7QUFDdEUsNkVBQTZFO0FBQzdFLHlFQUF5RTtBQUN6RSw2RUFBNkU7Ozs7Ozs7Ozs7Ozs7SUFPN0RBLGFBQWE7ZUFBYkE7O0lBSkFDLGFBQWE7ZUFBYkE7OztBQUZoQixJQUFJQyxnQkFBd0I7QUFFckIsU0FBU0QsY0FBY0UsT0FBZTtJQUMzQ0QsZ0JBQWdCQztBQUNsQjtBQUVPLFNBQVNIO0lBQ2QsT0FBT0U7QUFDVCIsInNvdXJjZXMiOlsiRTpcXEdJVFxcc3JjXFxjbGllbnRcXGFwcC1idWlsZC1pZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGdldHMgYXNzaWduZWQgYXMgYSBzaWRlLWVmZmVjdCBkdXJpbmcgYXBwIGluaXRpYWxpemF0aW9uLiBCZWNhdXNlIGl0XG4vLyByZXByZXNlbnRzIHRoZSBidWlsZCB1c2VkIHRvIGNyZWF0ZSB0aGUgSlMgYnVuZGxlLCBpdCBzaG91bGQgbmV2ZXIgY2hhbmdlXG4vLyBhZnRlciBiZWluZyBzZXQsIHNvIHdlIHN0b3JlIGl0IGluIGEgZ2xvYmFsIHZhcmlhYmxlLlxuLy9cbi8vIFdoZW4gcGVyZm9ybWluZyBSU0MgcmVxdWVzdHMsIGlmIHRoZSBpbmNvbWluZyBkYXRhIGhhcyBhIGRpZmZlcmVudCBidWlsZCBJRCxcbi8vIHdlIHBlcmZvcm0gYW4gTVBBIG5hdmlnYXRpb24vcmVmcmVzaCB0byBsb2FkIHRoZSB1cGRhdGVkIGJ1aWxkIGFuZCBlbnN1cmVcbi8vIHRoYXQgdGhlIGNsaWVudCBhbmQgc2VydmVyIGluIHN5bmMuXG5cbi8vIFN0YXJ0cyBhcyBhbiBlbXB0eSBzdHJpbmcuIEluIHByYWN0aWNlLCBiZWNhdXNlIHNldEFwcEJ1aWxkSWQgaXMgY2FsbGVkXG4vLyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYmVmb3JlIGh5ZHJhdGlvbiBzdGFydHMsIHRoaXMgd2lsbCBhbHdheXMgZ2V0XG4vLyByZWFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgYnVpbGQgSUQgYmVmb3JlIGl0J3MgZXZlciBuZWVkZWQgYnkgYSBuYXZpZ2F0aW9uLlxuLy8gSWYgZm9yIHNvbWUgcmVhc29ucyBpdCBkaWRuJ3QsIGR1ZSB0byBhIGJ1ZyBvciByYWNlIGNvbmRpdGlvbiwgdGhlbiBvblxuLy8gbmF2aWdhdGlvbiB0aGUgYnVpbGQgY29tcGFyaXNpb24gd291bGQgZmFpbCBhbmQgdHJpZ2dlciBhbiBNUEEgbmF2aWdhdGlvbi5cbmxldCBnbG9iYWxCdWlsZElkOiBzdHJpbmcgPSAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXBwQnVpbGRJZChidWlsZElkOiBzdHJpbmcpIHtcbiAgZ2xvYmFsQnVpbGRJZCA9IGJ1aWxkSWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcEJ1aWxkSWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdsb2JhbEJ1aWxkSWRcbn1cbiJdLCJuYW1lcyI6WyJnZXRBcHBCdWlsZElkIiwic2V0QXBwQnVpbGRJZCIsImdsb2JhbEJ1aWxkSWQiLCJidWlsZElkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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}));\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 callServer: function() {\n return callServer;\n },\n useServerActionDispatcher: function() {\n return useServerActionDispatcher;\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\");\nlet globalServerActionDispatcher = null;\nfunction useServerActionDispatcher(dispatch) {\n const serverActionDispatcher = (0, _react.useCallback)((actionPayload)=>{\n (0, _react.startTransition)(()=>{\n dispatch({\n ...actionPayload,\n type: _routerreducertypes.ACTION_SERVER_ACTION\n });\n });\n }, [\n dispatch\n ]);\n globalServerActionDispatcher = serverActionDispatcher;\n}\nasync function callServer(actionId, actionArgs) {\n const actionDispatcher = globalServerActionDispatcher;\n if (!actionDispatcher) {\n throw new Error('Invariant: missing action dispatcher.');\n }\n return new Promise((resolve, reject)=>{\n actionDispatcher({\n actionId,\n actionArgs,\n resolve,\n reject\n });\n });\n}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtY2FsbC1zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMEJzQkEsVUFBVTtlQUFWQTs7SUFqQk5DLHlCQUF5QjtlQUF6QkE7OzttQ0FUNkI7Z0RBS3RDO0FBRVAsSUFBSUMsK0JBQStCO0FBRTVCLFNBQVNELDBCQUNkRSxRQUF3QztJQUV4QyxNQUFNQyx5QkFBaURDLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQ3JELENBQUNDO1FBQ0NDLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1lBQ2RKLFNBQVM7Z0JBQ1AsR0FBR0csYUFBYTtnQkFDaEJFLE1BQU1DLG9CQUFBQSxvQkFBb0I7WUFDNUI7UUFDRjtJQUNGLEdBQ0E7UUFBQ047S0FBUztJQUVaRCwrQkFBK0JFO0FBQ2pDO0FBRU8sZUFBZUosV0FBV1UsUUFBZ0IsRUFBRUMsVUFBaUI7SUFDbEUsTUFBTUMsbUJBQW1CVjtJQUV6QixJQUFJLENBQUNVLGtCQUFrQjtRQUNyQixNQUFNLElBQUlDLE1BQU07SUFDbEI7SUFFQSxPQUFPLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0M7UUFDM0JKLGlCQUFpQjtZQUNmRjtZQUNBQztZQUNBSTtZQUNBQztRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcc3JjXFxjbGllbnRcXGFwcC1jYWxsLXNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydFRyYW5zaXRpb24sIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBQ1RJT05fU0VSVkVSX0FDVElPTixcbiAgdHlwZSBSZWR1Y2VyQWN0aW9ucyxcbiAgdHlwZSBTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyLFxufSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5cbmxldCBnbG9iYWxTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyID0gbnVsbCBhcyBTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyIHwgbnVsbFxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VydmVyQWN0aW9uRGlzcGF0Y2hlcihcbiAgZGlzcGF0Y2g6IFJlYWN0LkRpc3BhdGNoPFJlZHVjZXJBY3Rpb25zPlxuKSB7XG4gIGNvbnN0IHNlcnZlckFjdGlvbkRpc3BhdGNoZXI6IFNlcnZlckFjdGlvbkRpc3BhdGNoZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoYWN0aW9uUGF5bG9hZCkgPT4ge1xuICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goe1xuICAgICAgICAgIC4uLmFjdGlvblBheWxvYWQsXG4gICAgICAgICAgdHlwZTogQUNUSU9OX1NFUlZFUl9BQ1RJT04sXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoXVxuICApXG4gIGdsb2JhbFNlcnZlckFjdGlvbkRpc3BhdGNoZXIgPSBzZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjYWxsU2VydmVyKGFjdGlvbklkOiBzdHJpbmcsIGFjdGlvbkFyZ3M6IGFueVtdKSB7XG4gIGNvbnN0IGFjdGlvbkRpc3BhdGNoZXIgPSBnbG9iYWxTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyXG5cbiAgaWYgKCFhY3Rpb25EaXNwYXRjaGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IG1pc3NpbmcgYWN0aW9uIGRpc3BhdGNoZXIuJylcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYWN0aW9uRGlzcGF0Y2hlcih7XG4gICAgICBhY3Rpb25JZCxcbiAgICAgIGFjdGlvbkFyZ3MsXG4gICAgICByZXNvbHZlLFxuICAgICAgcmVqZWN0LFxuICAgIH0pXG4gIH0pXG59XG4iXSwibmFtZXMiOlsiY2FsbFNlcnZlciIsInVzZVNlcnZlckFjdGlvbkRpc3BhdGNoZXIiLCJnbG9iYWxTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyIiwiZGlzcGF0Y2giLCJzZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyIiwidXNlQ2FsbGJhY2siLCJhY3Rpb25QYXlsb2FkIiwic3RhcnRUcmFuc2l0aW9uIiwidHlwZSIsIkFDVElPTl9TRVJWRVJfQUNUSU9OIiwiYWN0aW9uSWQiLCJhY3Rpb25BcmdzIiwiYWN0aW9uRGlzcGF0Y2hlciIsIkVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\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 _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 _useintersection = __webpack_require__(/*! ../use-intersection */ \"(ssr)/./node_modules/next/dist/client/use-intersection.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 _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\");\nfunction prefetch(router, href, options) {\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 return router.prefetch(href, options);\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}\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, router, href, as, replace, shallow, scroll) {\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)) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if ('beforePopState' in router) {\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n scroll: routerScroll\n });\n } else {\n router[replace ? 'replace' : 'push'](as || href, {\n scroll: routerScroll\n });\n }\n };\n _react.default.startTransition(navigate);\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\n * A React component that extends the HTML `<a>` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation between routes.\n *\n * It is the primary way to navigate between routes in Next.js.\n *\n * Read more: [Next.js docs: `<Link>`](https://nextjs.org/docs/app/api-reference/components/link)\n */ const Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(props, forwardedRef) {\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, onClick, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...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 /**\n * The possible states for prefetch are:\n * - null: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport\n * - true: we will prefetch if the link is visible and prefetch the full page, not just partially\n * - false: we will not prefetch if in the viewport at all\n */ const appPrefetchKind = prefetchProp === null ? _routerreducertypes.PrefetchKind.AUTO : _routerreducertypes.PrefetchKind.FULL;\n if (true) {\n function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in `<Link>`, but got `\" + args.actual + \"` instead.\" + ( false ? 0 : ''));\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 onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: 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') {\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 === 'prefetch' || key === 'legacyBehavior') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\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 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\");\n }\n }\n }\n }\n const { href, as } = _react.default.useMemo({\n \"Link.LinkComponent.useMemo\": ()=>{\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n }[\"Link.LinkComponent.useMemo\"], [\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\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 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\");\n }\n throw 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 : ''));\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === 'a') {\n throw 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');\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: '200px'\n });\n const setIntersectionWithResetRef = _react.default.useCallback({\n \"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\": (el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n }\n }[\"Link.LinkComponent.useCallback[setIntersectionWithResetRef]\"], [\n as,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n const setRef = (0, _usemergedref.useMergedRef)(setIntersectionWithResetRef, childRef);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect({\n \"Link.LinkComponent.useEffect\": ()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, {\n kind: appPrefetchKind\n });\n }\n }[\"Link.LinkComponent.useEffect\"], [\n as,\n href,\n isVisible,\n prefetchEnabled,\n router,\n appPrefetchKind\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.');\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, router, href, as, replace, shallow, scroll);\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 prefetch(router, href, {\n kind: appPrefetchKind\n });\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 prefetch(router, href, {\n kind: appPrefetchKind\n });\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 return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n});\nconst _default = Link;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtZGlyL2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0EybEJBOzs7ZUFBQTs7Ozs7NEVBdmxCa0I7dUNBRVE7MkRBQ087NkNBR0Q7Z0RBQ0g7MENBQ0E7bUNBQ0M7eUNBQ0Y7c0NBQ0g7QUFtR3pCLFNBQVNBLFNBQ1BDLE1BQXlCLEVBQ3pCQyxJQUFZLEVBQ1pDLE9BQXdCO0lBRXhCLElBQUksSUFBNkIsRUFBRTtRQUNqQztJQUNGO0lBRUEsTUFBTUUsYUFBYTtRQUNqQixzREFBc0Q7UUFDdEQsd0ZBQXdGO1FBQ3hGLE9BQU9KLE9BQU9ELFFBQVEsQ0FBQ0UsTUFBTUM7SUFDL0I7SUFFQSxrREFBa0Q7SUFDbEQsMERBQTBEO0lBQzFELHNEQUFzRDtJQUN0RCx5REFBeUQ7SUFDekRFLGFBQWFDLEtBQUssQ0FBQyxDQUFDQztRQUNsQixJQUFJQyxJQUFvQixFQUFtQjtZQUN6QyxxQ0FBcUM7WUFDckMsTUFBTUQ7UUFDUjtJQUNGO0FBQ0Y7QUFFQSxTQUFTSSxnQkFBZ0JDLEtBQXVCO0lBQzlDLE1BQU1DLGNBQWNELE1BQU1FLGFBQWE7SUFDdkMsTUFBTUMsU0FBU0YsWUFBWUcsWUFBWSxDQUFDO0lBQ3hDLE9BQ0dELFVBQVVBLFdBQVcsV0FDdEJILE1BQU1LLE9BQU8sSUFDYkwsTUFBTU0sT0FBTyxJQUNiTixNQUFNTyxRQUFRLElBQ2RQLE1BQU1RLE1BQU0sSUFBSSw2QkFBNkI7SUFDNUNSLE1BQU1TLFdBQVcsSUFBSVQsTUFBTVMsV0FBVyxDQUFDQyxLQUFLLEtBQUs7QUFFdEQ7QUFFQSxTQUFTQyxZQUNQQyxDQUFtQixFQUNuQnZCLE1BQXNDLEVBQ3RDQyxJQUFZLEVBQ1p1QixFQUFVLEVBQ1ZDLE9BQWlCLEVBQ2pCQyxPQUFpQixFQUNqQkMsTUFBZ0I7SUFFaEIsTUFBTSxFQUFFQyxRQUFRLEVBQUUsR0FBR0wsRUFBRVYsYUFBYTtJQUVwQyxrREFBa0Q7SUFDbEQsTUFBTWdCLG1CQUFt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QUFTO1FBQUcsR0FBRzJELFVBQVU7a0JBQzdCdkU7O0FBR1A7TUFHRixXQUFlTCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxhcHAtZGlyXFxsaW5rLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFVybE9iamVjdCB9IGZyb20gJ3VybCdcbmltcG9ydCB7IGZvcm1hdFVybCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnXG5pbXBvcnQgeyBBcHBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IEFwcFJvdXRlckluc3RhbmNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IFByZWZldGNoT3B0aW9ucyB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgdXNlSW50ZXJzZWN0aW9uIH0gZnJvbSAnLi4vdXNlLWludGVyc2VjdGlvbidcbmltcG9ydCB7IFByZWZldGNoS2luZCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyB1c2VNZXJnZWRSZWYgfSBmcm9tICcuLi91c2UtbWVyZ2VkLXJlZidcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHsgYWRkQmFzZVBhdGggfSBmcm9tICcuLi9hZGQtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZSdcblxudHlwZSBVcmwgPSBzdHJpbmcgfCBVcmxPYmplY3RcbnR5cGUgUmVxdWlyZWRLZXlzPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXS0/OiB7fSBleHRlbmRzIFBpY2s8VCwgSz4gPyBuZXZlciA6IEtcbn1ba2V5b2YgVF1cbnR5cGUgT3B0aW9uYWxLZXlzPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXS0/OiB7fSBleHRlbmRzIFBpY2s8VCwgSz4gPyBLIDogbmV2ZXJcbn1ba2V5b2YgVF1cblxudHlwZSBJbnRlcm5hbExpbmtQcm9wcyA9IHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9yIFVSTCB0byBuYXZpZ2F0ZSB0by4gSXQgY2FuIGFsc28gYmUgYW4gb2JqZWN0LlxuICAgKlxuICAgKiBAZXhhbXBsZSBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGluayN3aXRoLXVybC1vYmplY3RcbiAgICovXG4gIGhyZWY6IFVybFxuICAvKipcbiAgICogT3B0aW9uYWwgZGVjb3JhdG9yIGZvciB0aGUgcGF0aCB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIGJyb3dzZXIgVVJMIGJhci4gQmVmb3JlIE5leHQuanMgOS41LjMgdGhpcyB3YXMgdXNlZCBmb3IgZHluYW1pYyByb3V0ZXMsIGNoZWNrIG91ciBbcHJldmlvdXMgZG9jc10oaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Jsb2IvdjkuNS4yL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2xpbmsubWQjZHluYW1pYy1yb3V0ZXMpIHRvIHNlZSBob3cgaXQgd29ya2VkLiBOb3RlOiB3aGVuIHRoaXMgcGF0aCBkaWZmZXJzIGZyb20gdGhlIG9uZSBwcm92aWRlZCBpbiBgaHJlZmAgdGhlIHByZXZpb3VzIGBocmVmYC9gYXNgIGJlaGF2aW9yIGlzIHVzZWQgYXMgc2hvd24gaW4gdGhlIFtwcmV2aW91cyBkb2NzXShodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvYmxvYi92OS41LjIvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGluay5tZCNkeW5hbWljLXJvdXRlcykuXG4gICAqL1xuICBhcz86IFVybFxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgY3VycmVudCBgaGlzdG9yeWAgc3RhdGUgaW5zdGVhZCBvZiBhZGRpbmcgYSBuZXcgdXJsIGludG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcbiAgICovXG4gIHJlcGxhY2U/OiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHNjcm9sbCBiZWhhdmlvclxuICAgKlxuICAgKiBAZXhhbXBsZSBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGluayNkaXNhYmxlLXNjcm9sbGluZy10by10aGUtdG9wLW9mLXRoZS1wYWdlXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYHRydWVgXG4gICAqL1xuICBzY3JvbGw/OiBib29sZWFuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHBhdGggb2YgdGhlIGN1cnJlbnQgcGFnZSB3aXRob3V0IHJlcnVubmluZyBbYGdldFN0YXRpY1Byb3BzYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2dldC1zdGF0aWMtcHJvcHMpLCBbYGdldFNlcnZlclNpZGVQcm9wc2BdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9nZXQtc2VydmVyLXNpZGUtcHJvcHMpIG9yIFtgZ2V0SW5pdGlhbFByb3BzYF0oL2RvY3MvcGFnZXMvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvZ2V0LWluaXRpYWwtcHJvcHMpLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcbiAgICovXG4gIHNoYWxsb3c/OiBib29sZWFuXG4gIC8qKlxuICAgKiBGb3JjZXMgYExpbmtgIHRvIHNlbmQgdGhlIGBocmVmYCBwcm9wZXJ0eSB0byBpdHMgY2hpbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKi9cbiAgcGFzc0hyZWY/OiBib29sZWFuXG4gIC8qKlxuICAgKiBQcmVmZXRjaCB0aGUgcGFnZSBpbiB0aGUgYmFja2dyb3VuZC5cbiAgICogQW55IGA8TGluayAvPmAgdGhhdCBpcyBpbiB0aGUgdmlld3BvcnQgKGluaXRpYWxseSBvciB0aHJvdWdoIHNjcm9sbCkgd2lsbCBiZSBwcmVmZXRjaGVkLlxuICAgKiBQcmVmZXRjaCBjYW4gYmUgZGlzYWJsZWQgYnkgcGFzc2luZyBgcHJlZmV0Y2g9e2ZhbHNlfWAuIFByZWZldGNoaW5nIGlzIG9ubHkgZW5hYmxlZCBpbiBwcm9kdWN0aW9uLlxuICAgKlxuICAgKiBJbiBBcHAgUm91dGVyOlxuICAgKiAtIGBudWxsYCAoZGVmYXVsdCk6IEZvciBzdGF0aWNhbGx5IGdlbmVyYXRlZCBwYWdlcywgdGhpcyB3aWxsIHByZWZldGNoIHRoZSBmdWxsIFJlYWN0IFNlcnZlciBDb21wb25lbnQgZGF0YS4gRm9yIGR5bmFtaWMgcGFnZXMsIHRoaXMgd2lsbCBwcmVmZXRjaCB1cCB0byB0aGUgbmVhcmVzdCByb3V0ZSBzZWdtZW50IHdpdGggYSBbYGxvYWRpbmcuanNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL2xvYWRpbmcpIGZpbGUuIElmIHRoZXJlIGlzIG5vIGxvYWRpbmcgZmlsZSwgaXQgd2lsbCBub3QgZmV0Y2ggdGhlIGZ1bGwgdHJlZSB0byBhdm9pZCBmZXRjaGluZyB0b28gbXVjaCBkYXRhLlxuICAgKiAtIGB0cnVlYDogVGhpcyB3aWxsIHByZWZldGNoIHRoZSBmdWxsIFJlYWN0IFNlcnZlciBDb21wb25lbnQgZGF0YSBmb3IgYWxsIHJvdXRlIHNlZ21lbnRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhleSBjb250YWluIGEgc2VnbWVudCB3aXRoIGBsb2FkaW5nLmpzYC5cbiAgICogLSBgZmFsc2VgOiBUaGlzIHdpbGwgbm90IHByZWZldGNoIGFueSBkYXRhLCBldmVuIG9uIGhvdmVyLlxuICAgKlxuICAgKiBJbiBQYWdlcyBSb3V0ZXI6XG4gICAqIC0gYHRydWVgIChkZWZhdWx0KTogVGhlIGZ1bGwgcm91dGUgJiBpdHMgZGF0YSB3aWxsIGJlIHByZWZldGNoZWQuXG4gICAqIC0gYGZhbHNlYDogUHJlZmV0Y2hpbmcgd2lsbCBub3QgaGFwcGVuIHdoZW4gZW50ZXJpbmcgdGhlIHZpZXdwb3J0LCBidXQgd2lsbCBzdGlsbCBoYXBwZW4gb24gaG92ZXIuXG4gICAqIEBkZWZhdWx0VmFsdWUgYHRydWVgIChwYWdlcyByb3V0ZXIpIG9yIGBudWxsYCAoYXBwIHJvdXRlcilcbiAgICovXG4gIHByZWZldGNoPzogYm9vbGVhbiB8IG51bGxcbiAgLyoqXG4gICAqIFRoZSBhY3RpdmUgbG9jYWxlIGlzIGF1dG9tYXRpY2FsbHkgcHJlcGVuZGVkLiBgbG9jYWxlYCBhbGxvd3MgZm9yIHByb3ZpZGluZyBhIGRpZmZlcmVudCBsb2NhbGUuXG4gICAqIFdoZW4gYGZhbHNlYCBgaHJlZmAgaGFzIHRvIGluY2x1ZGUgdGhlIGxvY2FsZSBhcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBkaXNhYmxlZC5cbiAgICogTm90ZTogVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBpbiB0aGUgUGFnZXMgUm91dGVyLlxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2VcbiAgLyoqXG4gICAqIEVuYWJsZSBsZWdhY3kgbGluayBiZWhhdmlvci5cbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2NvbW1pdC80ODllNjVlZDk4NTQ0ZTY5YjBhZmQ3ZTBjZmMzZjlmNmMyYjgwM2I3XG4gICAqL1xuICBsZWdhY3lCZWhhdmlvcj86IGJvb2xlYW5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIG1vdXNlIHBvaW50ZXIgaXMgbW92ZWQgb250byBMaW5rXG4gICAqL1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gTGluayBpcyB0b3VjaGVkLlxuICAgKi9cbiAgb25Ub3VjaFN0YXJ0PzogUmVhY3QuVG91Y2hFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIExpbmsgaXMgY2xpY2tlZC5cbiAgICovXG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbn1cblxuLy8gVE9ETy1BUFA6IEluY2x1ZGUgdGhlIGZ1bGwgc2V0IG9mIEFuY2hvciBwcm9wc1xuLy8gYWRkaW5nIHRoaXMgdG8gdGhlIHB1YmxpY2x5IGV4cG9ydGVkIHR5cGUgY3VycmVudGx5IGJyZWFrcyBleGlzdGluZyBhcHBzXG5cbi8vIGBSb3V0ZUluZmVyVHlwZWAgaXMgYSBzdHViIGhlcmUgdG8gYXZvaWQgYnJlYWtpbmcgYHR5cGVkUm91dGVzYCB3aGVuIHRoZSB0eXBlXG4vLyBpc24ndCBnZW5lcmF0ZWQgeWV0LiBJdCB3aWxsIGJlIHJlcGxhY2VkIHdoZW4gdGhlIHdlYnBhY2sgcGx1Z2luIHJ1bnMuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5leHBvcnQgdHlwZSBMaW5rUHJvcHM8Um91dGVJbmZlclR5cGUgPSBhbnk+ID0gSW50ZXJuYWxMaW5rUHJvcHNcbnR5cGUgTGlua1Byb3BzUmVxdWlyZWQgPSBSZXF1aXJlZEtleXM8TGlua1Byb3BzPlxudHlwZSBMaW5rUHJvcHNPcHRpb25hbCA9IE9wdGlvbmFsS2V5czxPbWl0PEludGVybmFsTGlua1Byb3BzLCAnbG9jYWxlJz4+XG5cbmZ1bmN0aW9uIHByZWZldGNoKFxuICByb3V0ZXI6IEFwcFJvdXRlckluc3RhbmNlLFxuICBocmVmOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFByZWZldGNoT3B0aW9uc1xuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgZG9QcmVmZXRjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyBub3RlIHRoYXQgYGFwcFJvdXRlci5wcmVmZXRjaCgpYCBpcyBjdXJyZW50bHkgc3luYyxcbiAgICAvLyBzbyB3ZSBoYXZlIHRvIHdyYXAgdGhpcyBjYWxsIGluIGFuIGFzeW5jIGZ1bmN0aW9uIHRvIGJlIGFibGUgdG8gY2F0Y2goKSBlcnJvcnMgYmVsb3cuXG4gICAgcmV0dXJuIHJvdXRlci5wcmVmZXRjaChocmVmLCBvcHRpb25zKVxuICB9XG5cbiAgLy8gUHJlZmV0Y2ggdGhlIHBhZ2UgaWYgYXNrZWQgKG9ubHkgaW4gdGhlIGNsaWVudClcbiAgLy8gV2UgbmVlZCB0byBoYW5kbGUgYSBwcmVmZXRjaCBlcnJvciBoZXJlIHNpbmNlIHdlIG1heSBiZVxuICAvLyBsb2FkaW5nIHdpdGggcHJpb3JpdHkgd2hpY2ggY2FuIHJlamVjdCBidXQgd2UgZG9uJ3RcbiAgLy8gd2FudCB0byBmb3JjZSBuYXZpZ2F0aW9uIHNpbmNlIHRoaXMgaXMgb25seSBhIHByZWZldGNoXG4gIGRvUHJlZmV0Y2goKS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIHJldGhyb3cgdG8gc2hvdyBpbnZhbGlkIFVSTCBlcnJvcnNcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfSlcbn1cblxuZnVuY3Rpb24gaXNNb2RpZmllZEV2ZW50KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50XG4gIGNvbnN0IHRhcmdldCA9IGV2ZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgcmV0dXJuIChcbiAgICAodGFyZ2V0ICYmIHRhcmdldCAhPT0gJ19zZWxmJykgfHxcbiAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgZXZlbnQuY3RybEtleSB8fFxuICAgIGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgZXZlbnQuYWx0S2V5IHx8IC8vIHRyaWdnZXJzIHJlc291cmNlIGRvd25sb2FkXG4gICAgKGV2ZW50Lm5hdGl2ZUV2ZW50ICYmIGV2ZW50Lm5hdGl2ZUV2ZW50LndoaWNoID09PSAyKVxuICApXG59XG5cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKFxuICBlOiBSZWFjdC5Nb3VzZUV2ZW50LFxuICByb3V0ZXI6IE5leHRSb3V0ZXIgfCBBcHBSb3V0ZXJJbnN0YW5jZSxcbiAgaHJlZjogc3RyaW5nLFxuICBhczogc3RyaW5nLFxuICByZXBsYWNlPzogYm9vbGVhbixcbiAgc2hhbGxvdz86IGJvb2xlYW4sXG4gIHNjcm9sbD86IGJvb2xlYW5cbik6IHZvaWQge1xuICBjb25zdCB7IG5vZGVOYW1lIH0gPSBlLmN1cnJlbnRUYXJnZXRcblxuICAvLyBhbmNob3JzIGluc2lkZSBhbiBzdmcgaGF2ZSBhIGxvd2VyY2FzZSBub2RlTmFtZVxuICBjb25zdCBpc0FuY2hvck5vZGVOYW1lID0gbm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PT0gJ0EnXG5cbiAgaWYgKGlzQW5jaG9yTm9kZU5hbWUgJiYgaXNNb2RpZmllZEV2ZW50KGUpKSB7XG4gICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgcmV0dXJuXG4gIH1cblxuICBlLnByZXZlbnREZWZhdWx0KClcblxuICBjb25zdCBuYXZpZ2F0ZSA9ICgpID0+IHtcbiAgICAvLyBJZiB0aGUgcm91dGVyIGlzIGFuIE5leHRSb3V0ZXIgaW5zdGFuY2UgaXQgd2lsbCBoYXZlIGBiZWZvcmVQb3BTdGF0ZWBcbiAgICBjb25zdCByb3V0ZXJTY3JvbGwgPSBzY3JvbGwgPz8gdHJ1ZVxuICAgIGlmICgnYmVmb3JlUG9wU3RhdGUnIGluIHJvdXRlcikge1xuICAgICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGhyZWYsIGFzLCB7XG4gICAgICAgIHNoYWxsb3csXG4gICAgICAgIHNjcm9sbDogcm91dGVyU2Nyb2xsLFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyW3JlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCddKGFzIHx8IGhyZWYsIHtcbiAgICAgICAgc2Nyb2xsOiByb3V0ZXJTY3JvbGwsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbihuYXZpZ2F0ZSlcbn1cblxudHlwZSBMaW5rUHJvcHNSZWFsID0gUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48XG4gIE9taXQ8UmVhY3QuQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+LCBrZXlvZiBMaW5rUHJvcHM+ICZcbiAgICBMaW5rUHJvcHNcbj5cblxuZnVuY3Rpb24gZm9ybWF0U3RyaW5nT3JVcmwodXJsT2JqT3JTdHJpbmc6IFVybE9iamVjdCB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgdXJsT2JqT3JTdHJpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHVybE9iak9yU3RyaW5nXG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybE9iak9yU3RyaW5nKVxufVxuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgZXh0ZW5kcyB0aGUgSFRNTCBgPGE+YCBlbGVtZW50IHRvIHByb3ZpZGUgW3ByZWZldGNoaW5nXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL2xpbmtpbmctYW5kLW5hdmlnYXRpbmcjMi1wcmVmZXRjaGluZylcbiAqIGFuZCBjbGllbnQtc2lkZSBuYXZpZ2F0aW9uIGJldHdlZW4gcm91dGVzLlxuICpcbiAqIEl0IGlzIHRoZSBwcmltYXJ5IHdheSB0byBuYXZpZ2F0ZSBiZXR3ZWVuIHJvdXRlcyBpbiBOZXh0LmpzLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgZG9jczogYDxMaW5rPmBdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2NvbXBvbmVudHMvbGluaylcbiAqL1xuY29uc3QgTGluayA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIExpbmtQcm9wc1JlYWw+KFxuICBmdW5jdGlvbiBMaW5rQ29tcG9uZW50KHByb3BzLCBmb3J3YXJkZWRSZWYpIHtcbiAgICBsZXQgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuXG4gICAgY29uc3Qge1xuICAgICAgaHJlZjogaHJlZlByb3AsXG4gICAgICBhczogYXNQcm9wLFxuICAgICAgY2hpbGRyZW46IGNoaWxkcmVuUHJvcCxcbiAgICAgIHByZWZldGNoOiBwcmVmZXRjaFByb3AgPSBudWxsLFxuICAgICAgcGFzc0hyZWYsXG4gICAgICByZXBsYWNlLFxuICAgICAgc2hhbGxvdyxcbiAgICAgIHNjcm9sbCxcbiAgICAgIG9uQ2xpY2ssXG4gICAgICBvbk1vdXNlRW50ZXI6IG9uTW91c2VFbnRlclByb3AsXG4gICAgICBvblRvdWNoU3RhcnQ6IG9uVG91Y2hTdGFydFByb3AsXG4gICAgICBsZWdhY3lCZWhhdmlvciA9IGZhbHNlLFxuICAgICAgLi4ucmVzdFByb3BzXG4gICAgfSA9IHByb3BzXG5cbiAgICBjaGlsZHJlbiA9IGNoaWxkcmVuUHJvcFxuXG4gICAgaWYgKFxuICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ251bWJlcicpXG4gICAgKSB7XG4gICAgICBjaGlsZHJlbiA9IDxhPntjaGlsZHJlbn08L2E+XG4gICAgfVxuXG4gICAgY29uc3Qgcm91dGVyID0gUmVhY3QudXNlQ29udGV4dChBcHBSb3V0ZXJDb250ZXh0KVxuXG4gICAgY29uc3QgcHJlZmV0Y2hFbmFibGVkID0gcHJlZmV0Y2hQcm9wICE9PSBmYWxzZVxuICAgIC8qKlxuICAgICAqIFRoZSBwb3NzaWJsZSBzdGF0ZXMgZm9yIHByZWZldGNoIGFyZTpcbiAgICAgKiAtIG51bGw6IHRoaXMgaXMgdGhlIGRlZmF1bHQgXCJhdXRvXCIgbW9kZSwgd2hlcmUgd2Ugd2lsbCBwcmVmZXRjaCBwYXJ0aWFsbHkgaWYgdGhlIGxpbmsgaXMgaW4gdGhlIHZpZXdwb3J0XG4gICAgICogLSB0cnVlOiB3ZSB3aWxsIHByZWZldGNoIGlmIHRoZSBsaW5rIGlzIHZpc2libGUgYW5kIHByZWZldGNoIHRoZSBmdWxsIHBhZ2UsIG5vdCBqdXN0IHBhcnRpYWxseVxuICAgICAqIC0gZmFsc2U6IHdlIHdpbGwgbm90IHByZWZldGNoIGlmIGluIHRoZSB2aWV3cG9ydCBhdCBhbGxcbiAgICAgKi9cbiAgICBjb25zdCBhcHBQcmVmZXRjaEtpbmQgPVxuICAgICAgcHJlZmV0Y2hQcm9wID09PSBudWxsID8gUHJlZmV0Y2hLaW5kLkFVVE8gOiBQcmVmZXRjaEtpbmQuRlVMTFxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGZ1bmN0aW9uIGNyZWF0ZVByb3BFcnJvcihhcmdzOiB7XG4gICAgICAgIGtleTogc3RyaW5nXG4gICAgICAgIGV4cGVjdGVkOiBzdHJpbmdcbiAgICAgICAgYWN0dWFsOiBzdHJpbmdcbiAgICAgIH0pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICAgICAgICBgRmFpbGVkIHByb3AgdHlwZTogVGhlIHByb3AgXFxgJHthcmdzLmtleX1cXGAgZXhwZWN0cyBhICR7YXJncy5leHBlY3RlZH0gaW4gXFxgPExpbms+XFxgLCBidXQgZ290IFxcYCR7YXJncy5hY3R1YWx9XFxgIGluc3RlYWQuYCArXG4gICAgICAgICAgICAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCJcbiAgICAgICAgICAgICAgOiAnJylcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgY29uc3QgcmVxdWlyZWRQcm9wc0d1YXJkOiBSZWNvcmQ8TGlua1Byb3BzUmVxdWlyZWQsIHRydWU+ID0ge1xuICAgICAgICBocmVmOiB0cnVlLFxuICAgICAgfSBhcyBjb25zdFxuICAgICAgY29uc3QgcmVxdWlyZWRQcm9wczogTGlua1Byb3BzUmVxdWlyZWRbXSA9IE9iamVjdC5rZXlzKFxuICAgICAgICByZXF1aXJlZFByb3BzR3VhcmRcbiAgICAgICkgYXMgTGlua1Byb3BzUmVxdWlyZWRbXVxuICAgICAgcmVxdWlyZWRQcm9wcy5mb3JFYWNoKChrZXk6IExpbmtQcm9wc1JlcXVpcmVkKSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdocmVmJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHByb3BzW2tleV0gPT0gbnVsbCB8fFxuICAgICAgICAgICAgKHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgICBhY3R1YWw6IHByb3BzW2tleV0gPT09IG51bGwgPyAnbnVsbCcgOiB0eXBlb2YgcHJvcHNba2V5XSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgIGNvbnN0IF86IG5ldmVyID0ga2V5XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICBjb25zdCBvcHRpb25hbFByb3BzR3VhcmQ6IFJlY29yZDxMaW5rUHJvcHNPcHRpb25hbCwgdHJ1ZT4gPSB7XG4gICAgICAgIGFzOiB0cnVlLFxuICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICBzY3JvbGw6IHRydWUsXG4gICAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICAgIHBhc3NIcmVmOiB0cnVlLFxuICAgICAgICBwcmVmZXRjaDogdHJ1ZSxcbiAgICAgICAgb25DbGljazogdHJ1ZSxcbiAgICAgICAgb25Nb3VzZUVudGVyOiB0cnVlLFxuICAgICAgICBvblRvdWNoU3RhcnQ6IHRydWUsXG4gICAgICAgIGxlZ2FjeUJlaGF2aW9yOiB0cnVlLFxuICAgICAgfSBhcyBjb25zdFxuICAgICAgY29uc3Qgb3B0aW9uYWxQcm9wczogTGlua1Byb3BzT3B0aW9uYWxbXSA9IE9iamVjdC5rZXlzKFxuICAgICAgICBvcHRpb25hbFByb3BzR3VhcmRcbiAgICAgICkgYXMgTGlua1Byb3BzT3B0aW9uYWxbXVxuICAgICAgb3B0aW9uYWxQcm9wcy5mb3JFYWNoKChrZXk6IExpbmtQcm9wc09wdGlvbmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XVxuXG4gICAgICAgIGlmIChrZXkgPT09ICdhcycpIHtcbiAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAga2V5ID09PSAnb25DbGljaycgfHxcbiAgICAgICAgICBrZXkgPT09ICdvbk1vdXNlRW50ZXInIHx8XG4gICAgICAgICAga2V5ID09PSAnb25Ub3VjaFN0YXJ0J1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGZ1bmN0aW9uYCcsXG4gICAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ3JlcGxhY2UnIHx8XG4gICAgICAgICAga2V5ID09PSAnc2Nyb2xsJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3NoYWxsb3cnIHx8XG4gICAgICAgICAga2V5ID09PSAncGFzc0hyZWYnIHx8XG4gICAgICAgICAga2V5ID09PSAncHJlZmV0Y2gnIHx8XG4gICAgICAgICAga2V5ID09PSAnbGVnYWN5QmVoYXZpb3InXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChwcm9wc1trZXldICE9IG51bGwgJiYgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgY29uc3QgXzogbmV2ZXIgPSBrZXlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHByb3BzLmxvY2FsZSkge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAnVGhlIGBsb2NhbGVgIHByb3AgaXMgbm90IHN1cHBvcnRlZCBpbiBgbmV4dC9saW5rYCB3aGlsZSB1c2luZyB0aGUgYGFwcGAgcm91dGVyLiBSZWFkIG1vcmUgYWJvdXQgYXBwIHJvdXRlciBpbnRlcm5hbGl6YXRpb246IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvaW50ZXJuYXRpb25hbGl6YXRpb24nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmICghYXNQcm9wKSB7XG4gICAgICAgIGxldCBocmVmOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICAgICAgaWYgKHR5cGVvZiBocmVmUHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBocmVmID0gaHJlZlByb3BcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgaHJlZlByb3AgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgdHlwZW9mIGhyZWZQcm9wLnBhdGhuYW1lID09PSAnc3RyaW5nJ1xuICAgICAgICApIHtcbiAgICAgICAgICBocmVmID0gaHJlZlByb3AucGF0aG5hbWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChocmVmKSB7XG4gICAgICAgICAgY29uc3QgaGFzRHluYW1pY1NlZ21lbnQgPSBocmVmXG4gICAgICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAgICAgLnNvbWUoKHNlZ21lbnQpID0+IHNlZ21lbnQuc3RhcnRzV2l0aCgnWycpICYmIHNlZ21lbnQuZW5kc1dpdGgoJ10nKSlcblxuICAgICAgICAgIGlmIChoYXNEeW5hbWljU2VnbWVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgRHluYW1pYyBocmVmIFxcYCR7aHJlZn1cXGAgZm91bmQgaW4gPExpbms+IHdoaWxlIHVzaW5nIHRoZSBcXGAvYXBwXFxgIHJvdXRlciwgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2FwcC1kaXItZHluYW1pYy1ocmVmYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgaHJlZiwgYXMgfSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgcmVzb2x2ZWRIcmVmID0gZm9ybWF0U3RyaW5nT3JVcmwoaHJlZlByb3ApXG4gICAgICByZXR1cm4ge1xuICAgICAgICBocmVmOiByZXNvbHZlZEhyZWYsXG4gICAgICAgIGFzOiBhc1Byb3AgPyBmb3JtYXRTdHJpbmdPclVybChhc1Byb3ApIDogcmVzb2x2ZWRIcmVmLFxuICAgICAgfVxuICAgIH0sIFtocmVmUHJvcCwgYXNQcm9wXSlcblxuICAgIGNvbnN0IHByZXZpb3VzSHJlZiA9IFJlYWN0LnVzZVJlZjxzdHJpbmc+KGhyZWYpXG4gICAgY29uc3QgcHJldmlvdXNBcyA9IFJlYWN0LnVzZVJlZjxzdHJpbmc+KGFzKVxuXG4gICAgLy8gVGhpcyB3aWxsIHJldHVybiB0aGUgZmlyc3QgY2hpbGQsIGlmIG11bHRpcGxlIGFyZSBwcm92aWRlZCBpdCB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgbGV0IGNoaWxkOiBhbnlcbiAgICBpZiAobGVnYWN5QmVoYXZpb3IpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAob25DbGljaykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBcIm9uQ2xpY2tcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uQ2xpY2sgYmUgc2V0IG9uIHRoZSBjaGlsZCBvZiBuZXh0L2xpbmtgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChvbk1vdXNlRW50ZXJQcm9wKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFwib25Nb3VzZUVudGVyXCIgd2FzIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7aHJlZlByb3B9XFxgIGJ1dCBcImxlZ2FjeUJlaGF2aW9yXCIgd2FzIHNldC4gVGhlIGxlZ2FjeSBiZWhhdmlvciByZXF1aXJlcyBvbk1vdXNlRW50ZXIgYmUgc2V0IG9uIHRoZSBjaGlsZCBvZiBuZXh0L2xpbmtgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBObyBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7aHJlZlByb3B9XFxgIGJ1dCBvbmUgY2hpbGQgaXMgcmVxdWlyZWQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbGluay1uby1jaGlsZHJlbmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYE11bHRpcGxlIGNoaWxkcmVuIHdlcmUgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IG9ubHkgb25lIGNoaWxkIGlzIHN1cHBvcnRlZCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9saW5rLW11bHRpcGxlLWNoaWxkcmVuYCArXG4gICAgICAgICAgICAgICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIlxuICAgICAgICAgICAgICAgIDogJycpXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICBpZiAoKGNoaWxkcmVuIGFzIGFueSk/LnR5cGUgPT09ICdhJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdJbnZhbGlkIDxMaW5rPiB3aXRoIDxhPiBjaGlsZC4gUGxlYXNlIHJlbW92ZSA8YT4gb3IgdXNlIDxMaW5rIGxlZ2FjeUJlaGF2aW9yPi5cXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLW5ldy1saW5rLXdpdGgtZXh0cmEtYW5jaG9yJ1xuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkUmVmOiBhbnkgPSBsZWdhY3lCZWhhdmlvclxuICAgICAgPyBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZlxuICAgICAgOiBmb3J3YXJkZWRSZWZcblxuICAgIGNvbnN0IFtzZXRJbnRlcnNlY3Rpb25SZWYsIGlzVmlzaWJsZSwgcmVzZXRWaXNpYmxlXSA9IHVzZUludGVyc2VjdGlvbih7XG4gICAgICByb290TWFyZ2luOiAnMjAwcHgnLFxuICAgIH0pXG5cbiAgICBjb25zdCBzZXRJbnRlcnNlY3Rpb25XaXRoUmVzZXRSZWYgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChlbDogRWxlbWVudCkgPT4ge1xuICAgICAgICAvLyBCZWZvcmUgdGhlIGxpbmsgZ2V0dGluZyBvYnNlcnZlZCwgY2hlY2sgaWYgdmlzaWJsZSBzdGF0ZSBuZWVkIHRvIGJlIHJlc2V0XG4gICAgICAgIGlmIChwcmV2aW91c0FzLmN1cnJlbnQgIT09IGFzIHx8IHByZXZpb3VzSHJlZi5jdXJyZW50ICE9PSBocmVmKSB7XG4gICAgICAgICAgcmVzZXRWaXNpYmxlKClcbiAgICAgICAgICBwcmV2aW91c0FzLmN1cnJlbnQgPSBhc1xuICAgICAgICAgIHByZXZpb3VzSHJlZi5jdXJyZW50ID0gaHJlZlxuICAgICAgICB9XG5cbiAgICAgICAgc2V0SW50ZXJzZWN0aW9uUmVmKGVsKVxuICAgICAgfSxcbiAgICAgIFthcywgaHJlZiwgcmVzZXRWaXNpYmxlLCBzZXRJbnRlcnNlY3Rpb25SZWZdXG4gICAgKVxuXG4gICAgY29uc3Qgc2V0UmVmID0gdXNlTWVyZ2VkUmVmKHNldEludGVyc2VjdGlvbldpdGhSZXNldFJlZiwgY2hpbGRSZWYpXG5cbiAgICAvLyBQcmVmZXRjaCB0aGUgVVJMIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBhbmQgaXQncyB2aXNpYmxlLlxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBpbiBkZXYsIHdlIG9ubHkgcHJlZmV0Y2ggb24gaG92ZXIgdG8gYXZvaWQgd2FzdGluZyByZXNvdXJjZXMgYXMgdGhlIHByZWZldGNoIHdpbGwgdHJpZ2dlciBjb21waWxpbmcgdGhlIHBhZ2UuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHdlIGRvbid0IG5lZWQgdG8gcHJlZmV0Y2ggdGhlIFVSTCwgZG9uJ3QgZG8gcHJlZmV0Y2guXG4gICAgICBpZiAoIWlzVmlzaWJsZSB8fCAhcHJlZmV0Y2hFbmFibGVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBQcmVmZXRjaCB0aGUgVVJMLlxuICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCB7XG4gICAgICAgIGtpbmQ6IGFwcFByZWZldGNoS2luZCxcbiAgICAgIH0pXG4gICAgfSwgW2FzLCBocmVmLCBpc1Zpc2libGUsIHByZWZldGNoRW5hYmxlZCwgcm91dGVyLCBhcHBQcmVmZXRjaEtpbmRdKVxuXG4gICAgY29uc3QgY2hpbGRQcm9wczoge1xuICAgICAgb25Ub3VjaFN0YXJ0PzogUmVhY3QuVG91Y2hFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gICAgICBvbk1vdXNlRW50ZXI6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgICAgb25DbGljazogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG4gICAgICBocmVmPzogc3RyaW5nXG4gICAgICByZWY/OiBhbnlcbiAgICB9ID0ge1xuICAgICAgcmVmOiBzZXRSZWYsXG4gICAgICBvbkNsaWNrKGUpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoIWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYENvbXBvbmVudCByZW5kZXJlZCBpbnNpZGUgbmV4dC9saW5rIGhhcyB0byBwYXNzIGNsaWNrIGV2ZW50IHRvIFwib25DbGlja1wiIHByb3AuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbGVnYWN5QmVoYXZpb3IgJiYgdHlwZW9mIG9uQ2xpY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBvbkNsaWNrKGUpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgIHR5cGVvZiBjaGlsZC5wcm9wcy5vbkNsaWNrID09PSAnZnVuY3Rpb24nXG4gICAgICAgICkge1xuICAgICAgICAgIGNoaWxkLnByb3BzLm9uQ2xpY2soZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBsaW5rQ2xpY2tlZChlLCByb3V0ZXIsIGhyZWYsIGFzLCByZXBsYWNlLCBzaGFsbG93LCBzY3JvbGwpXG4gICAgICB9LFxuICAgICAgb25Nb3VzZUVudGVyKGUpIHtcbiAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Nb3VzZUVudGVyUHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIG9uTW91c2VFbnRlclByb3AoZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsZWdhY3lCZWhhdmlvciAmJlxuICAgICAgICAgIGNoaWxkLnByb3BzICYmXG4gICAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjaGlsZC5wcm9wcy5vbk1vdXNlRW50ZXIoZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXByZWZldGNoRW5hYmxlZCB8fCBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgcHJlZmV0Y2gocm91dGVyLCBocmVmLCB7XG4gICAgICAgICAga2luZDogYXBwUHJlZmV0Y2hLaW5kLFxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICAgIG9uVG91Y2hTdGFydDogcHJvY2Vzcy5lbnYuX19ORVhUX0xJTktfTk9fVE9VQ0hfU1RBUlRcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBmdW5jdGlvbiBvblRvdWNoU3RhcnQoZSkge1xuICAgICAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Ub3VjaFN0YXJ0UHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBvblRvdWNoU3RhcnRQcm9wKGUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydChlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwcmVmZXRjaEVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHByZWZldGNoKHJvdXRlciwgaHJlZiwge1xuICAgICAgICAgICAgICBraW5kOiBhcHBQcmVmZXRjaEtpbmQsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0sXG4gICAgfVxuXG4gICAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gICAgLy8gZGVmaW5lZCwgd2Ugc3BlY2lmeSB0aGUgY3VycmVudCAnaHJlZicsIHNvIHRoYXQgcmVwZXRpdGlvbiBpcyBub3QgbmVlZGVkIGJ5IHRoZSB1c2VyLlxuICAgIC8vIElmIHRoZSB1cmwgaXMgYWJzb2x1dGUsIHdlIGNhbiBieXBhc3MgdGhlIGxvZ2ljIHRvIHByZXBlbmQgdGhlIGJhc2VQYXRoLlxuICAgIGlmIChpc0Fic29sdXRlVXJsKGFzKSkge1xuICAgICAgY2hpbGRQcm9wcy5ocmVmID0gYXNcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgIWxlZ2FjeUJlaGF2aW9yIHx8XG4gICAgICBwYXNzSHJlZiB8fFxuICAgICAgKGNoaWxkLnR5cGUgPT09ICdhJyAmJiAhKCdocmVmJyBpbiBjaGlsZC5wcm9wcykpXG4gICAgKSB7XG4gICAgICBjaGlsZFByb3BzLmhyZWYgPSBhZGRCYXNlUGF0aChhcylcbiAgICB9XG5cbiAgICByZXR1cm4gbGVnYWN5QmVoYXZpb3IgPyAoXG4gICAgICBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpXG4gICAgKSA6IChcbiAgICAgIDxhIHsuLi5yZXN0UHJvcHN9IHsuLi5jaGlsZFByb3BzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9hPlxuICAgIClcbiAgfVxuKVxuXG5leHBvcnQgZGVmYXVsdCBMaW5rXG4iXSwibmFtZXMiOlsicHJlZmV0Y2giLCJyb3V0ZXIiLCJocmVmIiwib3B0aW9ucyIsIndpbmRvdyIsImRvUHJlZmV0Y2giLCJjYXRjaCIsImVyciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImlzTW9kaWZpZWRFdmVudCIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiZ2V0QXR0cmlidXRlIiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJhcyIsInJlcGxhY2UiLCJzaGFsbG93Iiwic2Nyb2xsIiwibm9kZU5hbWUiLCJpc0FuY2hvck5vZGVOYW1lIiwidG9VcHBlckNhc2UiLCJwcmV2ZW50RGVmYXVsdCIsIm5hdmlnYXRlIiwicm91dGVyU2Nyb2xsIiwiUmVhY3QiLCJzdGFydFRyYW5zaXRpb24iLCJmb3JtYXRTdHJpbmdPclVybCIsInVybE9iak9yU3RyaW5nIiwiZm9ybWF0VXJsIiwiTGluayIsImZvcndhcmRSZWYiLCJMaW5rQ29tcG9uZW50IiwicHJvcHMiLCJmb3J3YXJkZWRSZWYiLCJjaGlsZHJlbiIsImhyZWZQcm9wIiwiYXNQcm9wIiwiY2hpbGRyZW5Qcm9wIiwicHJlZmV0Y2hQcm9wIiwicGFzc0hyZWYiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUVudGVyUHJvcCIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hTdGFydFByb3AiLCJsZWdhY3lCZWhhdmlvciIsInJlc3RQcm9wcyIsImEiLCJ1c2VDb250ZXh0IiwiQXBwUm91dGVyQ29udGV4dCIsInByZWZldGNoRW5hYmxlZCIsImFwcFByZWZldGNoS2luZCIsIlByZWZldGNoS2luZCIsIkFVVE8iLCJGVUxMIiwiY3JlYXRlUHJvcEVycm9yIiwiYXJncyIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzR3VhcmQiLCJyZXF1aXJlZFByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJfIiwib3B0aW9uYWxQcm9wc0d1YXJkIiwib3B0aW9uYWxQcm9wcyIsInZhbFR5cGUiLCJsb2NhbGUiLCJ3YXJuT25jZSIsInBhdGhuYW1lIiwiaGFzRHluYW1pY1NlZ21lbnQiLCJzcGxpdCIsInNvbWUiLCJzZWdtZW50Iiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwidXNlTWVtbyIsInJlc29sdmVkSHJlZiIsInByZXZpb3VzSHJlZiIsInVzZVJlZiIsInByZXZpb3VzQXMiLCJjaGlsZCIsImNvbnNvbGUiLCJ3YXJuIiwiQ2hpbGRyZW4iLCJvbmx5IiwidHlwZSIsImNoaWxkUmVmIiwicmVmIiwic2V0SW50ZXJzZWN0aW9uUmVmIiwiaXNWaXNpYmxlIiwicmVzZXRWaXNpYmxlIiwidXNlSW50ZXJzZWN0aW9uIiwicm9vdE1hcmdpbiIsInNldEludGVyc2VjdGlvbldpdGhSZXNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJjdXJyZW50Iiwic2V0UmVmIiwidXNlTWVyZ2VkUmVmIiwidXNlRWZmZWN0Iiwia2luZCIsImNoaWxkUHJvcHMiLCJkZWZhdWx0UHJldmVudGVkIiwiX19ORVhUX0xJTktfTk9fVE9VQ0hfU1RBUlQiLCJ1bmRlZmluZWQiLCJpc0Fic29sdXRlVXJsIiwiYWRkQmFzZVBhdGgiLCJjbG9uZUVsZW1lbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtZmluZC1zb3VyY2UtbWFwLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQUdhQTs7O2VBQUFBOzs7QUFIYixNQUFNQyxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELE1BQU1HLFdBQVksS0FBRUosV0FBUztBQUV0QixNQUFNRCxtQkFDWEUsS0FBb0IsR0FDaEIsU0FBU0YsaUJBQWlCTyxRQUFnQjtJQUN4QyxJQUFJQSxhQUFhLElBQUk7UUFDbkIsT0FBTztJQUNUO0lBRUEsSUFDRUEsU0FBU0MsVUFBVSxDQUFDQyxTQUFTQyxRQUFRLENBQUNDLE1BQU0sS0FDNUNKLFNBQVNLLFFBQVEsQ0FBQyxrQkFDbEI7UUFDQSxrRUFBa0U7UUFDbEUsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxtRUFBbUU7UUFDbkUscUVBQXFFO1FBQ3JFLDREQUE0RDtRQUM1RCw2Q0FBNkM7UUFDN0MsT0FBUSxLQUFFTCxXQUFTO0lBQ3JCO0lBRUEsTUFBTU0sTUFBTSxJQUFJQyxJQUFJVCxVQUFVSSxTQUFTQyxRQUFRLENBQUNDLE1BQU07SUFDdERFLElBQUlFLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLFlBQVlUO0lBRWpDLE9BQU9NLElBQUlJLElBQUk7QUFDakIsSUFDQUMsQ0FBU0EiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXHNyY1xcY2xpZW50XFxhcHAtZmluZC1zb3VyY2UtbWFwLXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgJydcbmNvbnN0IHBhdGhuYW1lID0gYCR7YmFzZVBhdGh9L19fbmV4dGpzX3NvdXJjZS1tYXBgXG5cbmV4cG9ydCBjb25zdCBmaW5kU291cmNlTWFwVVJMID1cbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCdcbiAgICA/IGZ1bmN0aW9uIGZpbmRTb3VyY2VNYXBVUkwoZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoZmlsZW5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmaWxlbmFtZS5zdGFydHNXaXRoKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikgJiZcbiAgICAgICAgICBmaWxlbmFtZS5pbmNsdWRlcygnL19uZXh0L3N0YXRpYycpXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgYSByZXF1ZXN0IGZvciBhIGNsaWVudCBjaHVuay4gVGhpcyBjYW4gb25seSBoYXBwZW4gd2hlblxuICAgICAgICAgIC8vIHVzaW5nIFR1cmJvcGFjay4gSW4gdGhpcyBjYXNlLCBzaW5jZSB3ZSBjb250cm9sIGhvdyB0aG9zZSBzb3VyY2VcbiAgICAgICAgICAvLyBtYXBzIGFyZSBnZW5lcmF0ZWQsIHdlIGNhbiBzYWZlbHkgYXNzdW1lIHRoYXQgdGhlIHNvdXJjZU1hcHBpbmdVUkxcbiAgICAgICAgICAvLyBpcyByZWxhdGl2ZSB0byB0aGUgZmlsZW5hbWUsIHdpdGggYW4gYWRkZWQgYC5tYXBgIGV4dGVuc2lvbi4gVGhlXG4gICAgICAgICAgLy8gYnJvd3NlciBjYW4ganVzdCByZXF1ZXN0IHRoaXMgZmlsZSwgYW5kIGl0IGdldHMgc2VydmVkIHRocm91Z2ggdGhlXG4gICAgICAgICAgLy8gbm9ybWFsIGRldiBzZXJ2ZXIsIHdpdGhvdXQgdGhlIG5lZWQgdG8gcm91dGUgdGhpcyB0aHJvdWdoXG4gICAgICAgICAgLy8gdGhlIGAvX19uZXh0anNfc291cmNlLW1hcGAgZGV2IG1pZGRsZXdhcmUuXG4gICAgICAgICAgcmV0dXJuIGAke2ZpbGVuYW1lfS5tYXBgXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pXG4gICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdmaWxlbmFtZScsIGZpbGVuYW1lKVxuXG4gICAgICAgIHJldHVybiB1cmwuaHJlZlxuICAgICAgfVxuICAgIDogdW5kZWZpbmVkXG4iXSwibmFtZXMiOlsiZmluZFNvdXJjZU1hcFVSTCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRobmFtZSIsIk5PREVfRU5WIiwiZmlsZW5hbWUiLCJzdGFydHNXaXRoIiwiZG9jdW1lbnQiLCJsb2NhdGlvbiIsIm9yaWdpbiIsImluY2x1ZGVzIiwidXJsIiwiVVJMIiwic2VhcmNoUGFyYW1zIiwic2V0IiwiaHJlZiIsInVuZGVmaW5lZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-find-source-map-url.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_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\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_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_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_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFnQkFDLGNBQWM7ZUFBZEE7O0lBV0FDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLHVCQUF1QjtlQUF2QkE7O0lBZ0JBQyx3QkFBd0I7ZUFBeEJBOztJQXZCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFnQkFDLDZCQUE2QjtlQUE3QkE7O0lBdEJBQyw2QkFBNkI7ZUFBN0JBOztJQW9CQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFmQUMsVUFBVTtlQUFWQTs7O0FBQU4sTUFBTUEsYUFBYTtBQUNuQixNQUFNWixnQkFBZ0I7QUFJdEIsTUFBTVEsZ0NBQWdDO0FBQ3RDLE1BQU1ILDhCQUE4QjtBQUtwQyxNQUFNQyxzQ0FDWDtBQUNLLE1BQU1ILDBCQUEwQjtBQUNoQyxNQUFNTyxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNVixpQkFBaUI7SUFDNUJXO0lBQ0FKO0lBQ0FIO0lBQ0FGO0lBQ0FHO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1MLDJCQUEyQjtBQUNqQyxNQUFNRSwyQkFBMkIiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcYXBwLXJvdXRlci1oZWFkZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSU0NfSEVBREVSID0gJ1JTQycgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBBQ1RJT05fSEVBREVSID0gJ05leHQtQWN0aW9uJyBhcyBjb25zdFxuLy8gVE9ETzogSW5zdGVhZCBvZiBzZW5kaW5nIHRoZSBmdWxsIHJvdXRlciBzdGF0ZSwgd2Ugb25seSBuZWVkIHRvIHNlbmQgdGhlXG4vLyBzZWdtZW50IHBhdGguIFNhdmVzIGJ5dGVzLiBUaGVuIHdlIGNvdWxkIGFsc28gdXNlIHRoaXMgZmllbGQgZm9yIHNlZ21lbnRcbi8vIHByZWZldGNoZXMsIHdoaWNoIGFsc28gbmVlZCB0byBzcGVjaWZ5IGEgcGFydGljdWxhciBzZWdtZW50LlxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSID0gJ05leHQtUm91dGVyLVN0YXRlLVRyZWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSID0gJ05leHQtUm91dGVyLVByZWZldGNoJyBhcyBjb25zdFxuLy8gVGhpcyBjb250YWlucyB0aGUgcGF0aCB0byB0aGUgc2VnbWVudCBiZWluZyBwcmVmZXRjaGVkLlxuLy8gVE9ETzogSWYgd2UgY2hhbmdlIE5leHQtUm91dGVyLVN0YXRlLVRyZWUgdG8gYmUgYSBzZWdtZW50IHBhdGgsIHdlIGNhbiB1c2Vcbi8vIHRoYXQgaW5zdGVhZC4gVGhlbiBOZXh0LVJvdXRlci1QcmVmZXRjaCBhbmQgTmV4dC1Sb3V0ZXItU2VnbWVudC1QcmVmZXRjaCBjYW5cbi8vIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIGVudW0uXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIgPVxuICAnTmV4dC1Sb3V0ZXItU2VnbWVudC1QcmVmZXRjaCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX0hNUl9SRUZSRVNIX0hFQURFUiA9ICdOZXh0LUhNUi1SZWZyZXNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ05leHQtVXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIgPSAneC1uZXh0anMtcHJlcmVuZGVyJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiIsIk5FWFRfSE1SX1JFRlJFU0hfSEVBREVSIiwiTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSIiwiTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFMRV9USU1FX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJORVhUX1VSTCIsIlJTQ19DT05URU5UX1RZUEVfSEVBREVSIiwiUlNDX0hFQURFUiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-headers.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 */ \"../app-render/work-async-storage.external\");\nfunction bailoutToClientRendering(reason) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore == null ? void 0 : workStore.forceStatic) return;\n if (workStore == null ? void 0 : workStore.isStaticGeneration) throw new _bailouttocsr.BailoutToCSRError(reason);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcyIsIm1hcHBpbmdzIjoiOzs7OzREQUdnQkE7OztlQUFBQTs7OzBDQUhrQjtzREFDRDtBQUUxQixTQUFTQSx5QkFBeUJDLE1BQWM7SUFDckQsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBRTNDLElBQUlGLGFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFVBQVdHLFdBQVcsRUFBRTtJQUU1QixJQUFJSCxhQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxVQUFXSSxrQkFBa0IsRUFBRSxNQUFNLElBQUlDLGNBQUFBLGlCQUFpQixDQUFDTjtBQUNqRSIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxiYWlsb3V0LXRvLWNsaWVudC1yZW5kZXJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFpbG91dFRvQ1NSRXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzcidcbmltcG9ydCB7IHdvcmtBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmV4cG9ydCBmdW5jdGlvbiBiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmcocmVhc29uOiBzdHJpbmcpOiB2b2lkIHwgbmV2ZXIge1xuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAod29ya1N0b3JlPy5mb3JjZVN0YXRpYykgcmV0dXJuXG5cbiAgaWYgKHdvcmtTdG9yZT8uaXNTdGF0aWNHZW5lcmF0aW9uKSB0aHJvdyBuZXcgQmFpbG91dFRvQ1NSRXJyb3IocmVhc29uKVxufVxuIl0sIm5hbWVzIjpbImJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyIsInJlYXNvbiIsIndvcmtTdG9yZSIsIndvcmtBc3luY1N0b3JhZ2UiLCJnZXRTdG9yZSIsImZvcmNlU3RhdGljIiwiaXNTdGF0aWNHZW5lcmF0aW9uIiwiQmFpbG91dFRvQ1NSRXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.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 */ \"../app-render/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 new _invarianterror.InvariantError('Expected workStore to exist when handling searchParams in a client Page.');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBZWdCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGVBQWUsS0FXOUI7SUFYOEIsTUFDN0JDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyxNQUFNLEVBQ04sUUFDUSxFQU1ULEdBWDhCO0lBWTdCLElBQUksSUFBNkIsRUFBRTtRQUNqQyxNQUFNLEVBQUVHLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQyxzR0FBcUQ7UUFFL0QsSUFBSUM7UUFDSixJQUFJQztRQUNKLHlFQUF5RTtRQUN6RSx3RUFBd0U7UUFDeEUsTUFBTUMsUUFBUUosaUJBQWlCSyxRQUFRO1FBQ3ZDLElBQUksQ0FBQ0QsT0FBTztZQUNWLE1BQU0sSUFBSUUsZ0JBQUFBLGNBQWMsQ0FDdEI7UUFFSjtRQUVBLE1BQU0sRUFBRUMsNEJBQTRCLEVBQUUsR0FDcENOLG1CQUFPQSxDQUFDLDBHQUFvQztRQUM5Q0MscUJBQXFCSyw2QkFBNkJYLGNBQWNRO1FBRWhFLE1BQU0sRUFBRUksc0JBQXNCLEVBQUUsR0FDOUJQLG1CQUFPQSxDQUFDLDRGQUE2QjtRQUN2Q0UsZUFBZUssdUJBQXVCWCxRQUFRTztRQUU5QyxxQkFBTyxxQkFBQ1QsV0FBQUE7WUFBVUUsUUFBUU07WUFBY1AsY0FBY007O0lBQ3hELE9BQU8sRUFTTjtBQUNIIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXGNsaWVudC1wYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcblxuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbi8qKlxuICogV2hlbiB0aGUgUGFnZSBpcyBhIGNsaWVudCBjb21wb25lbnQgd2Ugc2VuZCB0aGUgcGFyYW1zIGFuZCBzZWFyY2hQYXJhbXMgdG8gdGhpcyBjbGllbnQgd3JhcHBlclxuICogd2hlcmUgdGhleSBhcmUgdHVybmVkIGludG8gZHluYW1pY2FsbHkgdHJhY2tlZCB2YWx1ZXMgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgYWN0dWFsIFBhZ2UgY29tcG9uZW50LlxuICpcbiAqIGFkZGl0aW9uYWxseSB3ZSBtYXkgc2VuZCBwcm9taXNlcyByZXByZXNlbnRpbmcgdGhlIHBhcmFtcyBhbmQgc2VhcmNoUGFyYW1zLiBXZSBkb24ndCBldmVyIHVzZSB0aGVzZSBwYXNzZWRcbiAqIHZhbHVlcyBidXQgaXQgY2FuIGJlIG5lY2Vzc2FyeSBmb3IgdGhlIHNlbmRlciB0byBzZW5kIGEgUHJvbWlzZSB0aGF0IGRvZXNuJ3QgcmVzb2x2ZSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMuXG4gKiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRlY2lkZSBpZiB0aGUgcHJvbWlzZXMgYXJlIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsaWVudFBhZ2VSb290KHtcbiAgQ29tcG9uZW50LFxuICBzZWFyY2hQYXJhbXMsXG4gIHBhcmFtcyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm9taXNlcyxcbn06IHtcbiAgQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgc2VhcmNoUGFyYW1zOiBQYXJzZWRVcmxRdWVyeVxuICBwYXJhbXM6IFBhcmFtc1xuICBwcm9taXNlcz86IEFycmF5PFByb21pc2U8YW55Pj5cbn0pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGxldCBjbGllbnRTZWFyY2hQYXJhbXM6IFByb21pc2U8UGFyc2VkVXJsUXVlcnk+XG4gICAgbGV0IGNsaWVudFBhcmFtczogUHJvbWlzZTxQYXJhbXM+XG4gICAgLy8gV2UgYXJlIGdvaW5nIHRvIGluc3RydW1lbnQgdGhlIHNlYXJjaFBhcmFtcyBwcm9wIHdpdGggdHJhY2tpbmcgZm9yIHRoZVxuICAgIC8vIGFwcHJvcHJpYXRlIGNvbnRleHQuIFdlIHdyYXAgZGlmZmVyZW50bHkgaW4gcHJlcmVuZGVyaW5nIHZzIHJlbmRlcmluZ1xuICAgIGNvbnN0IHN0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gICAgaWYgKCFzdG9yZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAnRXhwZWN0ZWQgd29ya1N0b3JlIHRvIGV4aXN0IHdoZW4gaGFuZGxpbmcgc2VhcmNoUGFyYW1zIGluIGEgY2xpZW50IFBhZ2UuJ1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHsgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zJylcbiAgICBjbGllbnRTZWFyY2hQYXJhbXMgPSBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHNlYXJjaFBhcmFtcywgc3RvcmUpXG5cbiAgICBjb25zdCB7IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKVxuICAgIGNsaWVudFBhcmFtcyA9IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQocGFyYW1zLCBzdG9yZSlcblxuICAgIHJldHVybiA8Q29tcG9uZW50IHBhcmFtcz17Y2xpZW50UGFyYW1zfSBzZWFyY2hQYXJhbXM9e2NsaWVudFNlYXJjaFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zLmJyb3dzZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zLmJyb3dzZXInKVxuICAgIGNvbnN0IGNsaWVudFNlYXJjaFBhcmFtcyA9IGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQoc2VhcmNoUGFyYW1zKVxuICAgIGNvbnN0IHsgY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zLmJyb3dzZXInKVxuICAgIGNvbnN0IGNsaWVudFBhcmFtcyA9IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQocGFyYW1zKVxuXG4gICAgcmV0dXJuIDxDb21wb25lbnQgcGFyYW1zPXtjbGllbnRQYXJhbXN9IHNlYXJjaFBhcmFtcz17Y2xpZW50U2VhcmNoUGFyYW1zfSAvPlxuICB9XG59XG4iXSwibmFtZXMiOlsiQ2xpZW50UGFnZVJvb3QiLCJDb21wb25lbnQiLCJzZWFyY2hQYXJhbXMiLCJwYXJhbXMiLCJwcm9taXNlcyIsIndpbmRvdyIsIndvcmtBc3luY1N0b3JhZ2UiLCJyZXF1aXJlIiwiY2xpZW50U2VhcmNoUGFyYW1zIiwiY2xpZW50UGFyYW1zIiwic3RvcmUiLCJnZXRTdG9yZSIsIkludmFyaWFudEVycm9yIiwiY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCIsImNyZWF0ZVBhcmFtc0Zyb21DbGllbnQiLCJjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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 */ \"../app-render/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 new _invarianterror.InvariantError('Expected workStore to exist when handling params in a client segment such as a Layout or Template.');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBY2dCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGtCQUFrQixLQVdqQztJQVhpQyxNQUNoQ0MsU0FBUyxFQUNUQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTixPQUNPLEVBTVIsR0FYaUM7SUFZaEMsSUFBSSxJQUE2QixFQUFFO1FBQ2pDLE1BQU0sRUFBRUcsZ0JBQWdCLEVBQUUsR0FDeEJDLG1CQUFPQSxDQUFDLHNHQUFxRDtRQUUvRCxJQUFJQztRQUNKLHlFQUF5RTtRQUN6RSx3RUFBd0U7UUFDeEUsTUFBTUMsUUFBUUgsaUJBQWlCSSxRQUFRO1FBQ3ZDLElBQUksQ0FBQ0QsT0FBTztZQUNWLE1BQU0sSUFBSUUsZ0JBQUFBLGNBQWMsQ0FDdEI7UUFFSjtRQUVBLE1BQU0sRUFBRUMsc0JBQXNCLEVBQUUsR0FDOUJMLG1CQUFPQSxDQUFDLDRGQUE2QjtRQUN2Q0MsZUFBZUksdUJBQXVCVCxRQUFRTTtRQUU5QyxxQkFBTyxxQkFBQ1IsV0FBQUE7WUFBVyxHQUFHQyxLQUFLO1lBQUVDLFFBQVFLOztJQUN2QyxPQUFPLEVBS047QUFDSCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxjbGllbnQtc2VnbWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IEludmFyaWFudEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3InXG5cbmltcG9ydCB0eXBlIHsgUGFyYW1zIH0gZnJvbSAnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJ1xuXG4vKipcbiAqIFdoZW4gdGhlIFBhZ2UgaXMgYSBjbGllbnQgY29tcG9uZW50IHdlIHNlbmQgdGhlIHBhcmFtcyB0byB0aGlzIGNsaWVudCB3cmFwcGVyXG4gKiB3aGVyZSB0aGV5IGFyZSB0dXJuZWQgaW50byBkeW5hbWljYWxseSB0cmFja2VkIHZhbHVlcyBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHRoZSBhY3R1YWwgU2VnbWVudCBjb21wb25lbnQuXG4gKlxuICogYWRkaXRpb25hbGx5IHdlIG1heSBzZW5kIGEgcHJvbWlzZSByZXByZXNlbnRpbmcgcGFyYW1zLiBXZSBkb24ndCBldmVyIHVzZSB0aGlzIHBhc3NlZFxuICogdmFsdWUgYnV0IGl0IGNhbiBiZSBuZWNlc3NhcnkgZm9yIHRoZSBzZW5kZXIgdG8gc2VuZCBhIFByb21pc2UgdGhhdCBkb2Vzbid0IHJlc29sdmUgaW4gY2VydGFpbiBzaXR1YXRpb25zXG4gKiBzdWNoIGFzIHdoZW4gZHluYW1pY0lPIGlzIGVuYWJsZWQuIEl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZGVjaWRlIGlmIHRoZSBwcm9taXNlcyBhcmUgbmVlZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2xpZW50U2VnbWVudFJvb3Qoe1xuICBDb21wb25lbnQsXG4gIHNsb3RzLFxuICBwYXJhbXMsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJvbWlzZSxcbn06IHtcbiAgQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgc2xvdHM6IHsgW2tleTogc3RyaW5nXTogUmVhY3QuUmVhY3ROb2RlIH1cbiAgcGFyYW1zOiBQYXJhbXNcbiAgcHJvbWlzZT86IFByb21pc2U8YW55PlxufSkge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zdCB7IHdvcmtBc3luY1N0b3JhZ2UgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnKVxuXG4gICAgbGV0IGNsaWVudFBhcmFtczogUHJvbWlzZTxQYXJhbXM+XG4gICAgLy8gV2UgYXJlIGdvaW5nIHRvIGluc3RydW1lbnQgdGhlIHNlYXJjaFBhcmFtcyBwcm9wIHdpdGggdHJhY2tpbmcgZm9yIHRoZVxuICAgIC8vIGFwcHJvcHJpYXRlIGNvbnRleHQuIFdlIHdyYXAgZGlmZmVyZW50bHkgaW4gcHJlcmVuZGVyaW5nIHZzIHJlbmRlcmluZ1xuICAgIGNvbnN0IHN0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gICAgaWYgKCFzdG9yZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAnRXhwZWN0ZWQgd29ya1N0b3JlIHRvIGV4aXN0IHdoZW4gaGFuZGxpbmcgcGFyYW1zIGluIGEgY2xpZW50IHNlZ21lbnQgc3VjaCBhcyBhIExheW91dCBvciBUZW1wbGF0ZS4nXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgeyBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJylcbiAgICBjbGllbnRQYXJhbXMgPSBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50KHBhcmFtcywgc3RvcmUpXG5cbiAgICByZXR1cm4gPENvbXBvbmVudCB7Li4uc2xvdHN9IHBhcmFtcz17Y2xpZW50UGFyYW1zfSAvPlxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHsgY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zLmJyb3dzZXInKVxuICAgIGNvbnN0IGNsaWVudFBhcmFtcyA9IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQocGFyYW1zKVxuICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5zbG90c30gcGFyYW1zPXtjbGllbnRQYXJhbXN9IC8+XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDbGllbnRTZWdtZW50Um9vdCIsIkNvbXBvbmVudCIsInNsb3RzIiwicGFyYW1zIiwicHJvbWlzZSIsIndpbmRvdyIsIndvcmtBc3luY1N0b3JhZ2UiLCJyZXF1aXJlIiwiY2xpZW50UGFyYW1zIiwic3RvcmUiLCJnZXRTdG9yZSIsIkludmFyaWFudEVycm9yIiwiY3JlYXRlUGFyYW1zRnJvbUNsaWVudCIsImNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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 GlobalError: function() {\n return GlobalError;\n },\n // Exported so that the import signature in the loaders can be identical to user\n // supplied custom global error signatures.\n default: function() {\n return _default;\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 _workasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"../app-render/work-async-storage.external\");\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n text: {\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '28px',\n margin: '0 8px'\n }\n};\n// if we are revalidating we want to re-throw the error so the\n// function crashes so we can maintain our previous cache\n// instead of caching the error page\nfunction HandleISRError(param) {\n let { error } = param;\n const store = _workasyncstorageexternal.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 return null;\n}\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 if (this.state.error) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(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 GlobalError(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, {\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.jsx)(\"h2\", {\n style: styles.text,\n children: \"Application error: a \" + (digest ? 'server' : 'client') + \"-side exception has occurred (see the \" + (digest ? 'server logs' : 'browser console') + \" for more information).\"\n }),\n digest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n style: styles.text,\n children: \"Digest: \" + digest\n }) : null\n ]\n })\n })\n ]\n })\n ]\n });\n}\nconst _default = GlobalError;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXFMZ0JBLGFBQWE7ZUFBYkE7O0lBdEhIQyxvQkFBb0I7ZUFBcEJBOztJQWlGR0MsV0FBVztlQUFYQTs7SUF3QmhCLGdGQUFnRjtJQUNoRiwyQ0FBMkM7SUFDM0MsT0FBMEI7ZUFBMUI7Ozs7OzRFQXhLZ0M7aURBQ0s7K0NBQ0g7K0NBQ0M7c0RBQ0Y7QUFFakMsTUFBTUMsU0FBUztJQUNiQyxPQUFPO1FBQ0wsMEZBQTBGO1FBQzFGQyxZQUNFO1FBQ0ZDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDbEI7SUFDQUMsTUFBTTtRQUNKQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsWUFBWTtRQUNaQyxRQUFRO0lBQ1Y7QUFDRjtBQXdCQSw4REFBOEQ7QUFDOUQseURBQXlEO0FBQ3pELG9DQUFvQztBQUNwQyxTQUFTQyxlQUFlLEtBQXlCO0lBQXpCLE1BQUViLEtBQUssRUFBa0IsR0FBekI7SUFDdEIsTUFBTWMsUUFBUUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBQ3ZDLElBQUlGLENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU9HLFlBQUFBLE1BQWdCSCxTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPSSxrQkFBQUEsR0FBb0I7UUFDcERDLFFBQVFuQixLQUFLLENBQUNBO1FBQ2QsTUFBTUE7SUFDUjtJQUVBLE9BQU87QUFDVDtBQUVPLE1BQU1ILDZCQUE2QnVCLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVN2RCxPQUFPQyx5QkFBeUJ0QixLQUFZLEVBQUU7UUFDNUMsSUFBSXVCLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0J2QixRQUFRO1lBQzVCLCtEQUErRDtZQUMvRCw0R0FBNEc7WUFDNUcsTUFB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QUNiQyxjQUFjQTtzQkFFYkk7O0lBR1A7SUFFQSxxQkFBTztrQkFBR0E7O0FBQ1oiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcZXJyb3ItYm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVVudHJhY2tlZFBhdGhuYW1lIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXVudHJhY2tlZCdcbmltcG9ydCB7IGlzTmV4dFJvdXRlckVycm9yIH0gZnJvbSAnLi9pcy1uZXh0LXJvdXRlci1lcnJvcidcbmltcG9ydCB7IGhhbmRsZUhhcmROYXZFcnJvciB9IGZyb20gJy4vbmF2LWZhaWx1cmUtaGFuZGxlcidcbmltcG9ydCB7IHdvcmtBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgZXJyb3I6IHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvYmxvYi9tYWluL21vZGVybi1ub3JtYWxpemUuY3NzI0wzOC1MNTJcbiAgICBmb250RmFtaWx5OlxuICAgICAgJ3N5c3RlbS11aSxcIlNlZ29lIFVJXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIH0sXG4gIHRleHQ6IHtcbiAgICBmb250U2l6ZTogJzE0cHgnLFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjhweCcsXG4gICAgbWFyZ2luOiAnMCA4cHgnLFxuICB9LFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBFcnJvckNvbXBvbmVudCA9IFJlYWN0LkNvbXBvbmVudFR5cGU8e1xuICBlcnJvcjogRXJyb3JcbiAgcmVzZXQ6ICgpID0+IHZvaWRcbn0+XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JCb3VuZGFyeVByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgZXJyb3JDb21wb25lbnQ6IEVycm9yQ29tcG9uZW50IHwgdW5kZWZpbmVkXG4gIGVycm9yU3R5bGVzPzogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIGVycm9yU2NyaXB0cz86IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxufVxuXG5pbnRlcmZhY2UgRXJyb3JCb3VuZGFyeUhhbmRsZXJQcm9wcyBleHRlbmRzIEVycm9yQm91bmRhcnlQcm9wcyB7XG4gIHBhdGhuYW1lOiBzdHJpbmcgfCBudWxsXG4gIGVycm9yQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudFxufVxuXG5pbnRlcmZhY2UgRXJyb3JCb3VuZGFyeUhhbmRsZXJTdGF0ZSB7XG4gIGVycm9yOiBFcnJvciB8IG51bGxcbiAgcHJldmlvdXNQYXRobmFtZTogc3RyaW5nIHwgbnVsbFxufVxuXG4vLyBpZiB3ZSBhcmUgcmV2YWxpZGF0aW5nIHdlIHdhbnQgdG8gcmUtdGhyb3cgdGhlIGVycm9yIHNvIHRoZVxuLy8gZnVuY3Rpb24gY3Jhc2hlcyBzbyB3ZSBjYW4gbWFpbnRhaW4gb3VyIHByZXZpb3VzIGNhY2hlXG4vLyBpbnN0ZWFkIG9mIGNhY2hpbmcgdGhlIGVycm9yIHBhZ2VcbmZ1bmN0aW9uIEhhbmRsZUlTUkVycm9yKHsgZXJyb3IgfTogeyBlcnJvcjogYW55IH0pIHtcbiAgY29uc3Qgc3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgaWYgKHN0b3JlPy5pc1JldmFsaWRhdGUgfHwgc3RvcmU/LmlzU3RhdGljR2VuZXJhdGlvbikge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvckJvdW5kYXJ5SGFuZGxlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgRXJyb3JCb3VuZGFyeUhhbmRsZXJQcm9wcyxcbiAgRXJyb3JCb3VuZGFyeUhhbmRsZXJTdGF0ZVxuPiB7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBFcnJvckJvdW5kYXJ5SGFuZGxlclByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5zdGF0ZSA9IHsgZXJyb3I6IG51bGwsIHByZXZpb3VzUGF0aG5hbWU6IHRoaXMucHJvcHMucGF0aG5hbWUgfVxuICB9XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcjogRXJyb3IpIHtcbiAgICBpZiAoaXNOZXh0Um91dGVyRXJyb3IoZXJyb3IpKSB7XG4gICAgICAvLyBSZS10aHJvdyBpZiBhbiBleHBlY3RlZCBpbnRlcm5hbCBOZXh0LmpzIHJvdXRlciBlcnJvciBvY2N1cnNcbiAgICAgIC8vIHRoaXMgbWVhbnMgaXQgc2hvdWxkIGJlIGhhbmRsZWQgYnkgYSBkaWZmZXJlbnQgYm91bmRhcnkgKHN1Y2ggYXMgYSBOb3RGb3VuZCBib3VuZGFyeSBpbiBhIHBhcmVudCBzZWdtZW50KVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG5cbiAgICByZXR1cm4geyBlcnJvciB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgIHByb3BzOiBFcnJvckJvdW5kYXJ5SGFuZGxlclByb3BzLFxuICAgIHN0YXRlOiBFcnJvckJvdW5kYXJ5SGFuZGxlclN0YXRlXG4gICk6IEVycm9yQm91bmRhcnlIYW5kbGVyU3RhdGUgfCBudWxsIHtcbiAgICBjb25zdCB7IGVycm9yIH0gPSBzdGF0ZVxuXG4gICAgLy8gaWYgd2UgZW5jb3VudGVyIGFuIGVycm9yIHdoaWxlXG4gICAgLy8gYSBuYXZpZ2F0aW9uIGlzIHBlbmRpbmcgd2Ugc2hvdWxkbid0IHJlbmRlclxuICAgIC8vIHRoZSBlcnJvciBib3VuZGFyeSBhbmQgaW5zdGVhZCBzaG91bGQgZmFsbGJhY2tcbiAgICAvLyB0byBhIGhhcmQgbmF2aWdhdGlvbiB0byBhdHRlbXB0IHJlY292ZXJpbmdcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0FQUF9OQVZfRkFJTF9IQU5ETElORykge1xuICAgICAgaWYgKGVycm9yICYmIGhhbmRsZUhhcmROYXZFcnJvcihlcnJvcikpIHtcbiAgICAgICAgLy8gY2xlYXIgZXJyb3Igc28gd2UgZG9uJ3QgcmVuZGVyIGFueXRoaW5nXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHJlc2V0IG9mIHRoZSBlcnJvciBib3VuZGFyeSB3aGVuIGEgbmF2aWdhdGlvbiBoYXBwZW5zLlxuICAgICAqIEVuc3VyZXMgdGhlIGVycm9yIGJvdW5kYXJ5IGRvZXMgbm90IHN0YXkgZW5hYmxlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS5cbiAgICAgKiBBcHByb2FjaCBvZiBzZXRTdGF0ZSBpbiByZW5kZXIgaXMgc2FmZSBhcyBpdCBjaGVja3MgdGhlIHByZXZpb3VzIHBhdGhuYW1lIGFuZCB0aGVuIG92ZXJyaWRlc1xuICAgICAqIGl0IGFzIG91dGxpbmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L3JlZmVyZW5jZS9yZWFjdC91c2VTdGF0ZSNzdG9yaW5nLWluZm9ybWF0aW9uLWZyb20tcHJldmlvdXMtcmVuZGVyc1xuICAgICAqL1xuICAgIGlmIChwcm9wcy5wYXRobmFtZSAhPT0gc3RhdGUucHJldmlvdXNQYXRobmFtZSAmJiBzdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIHByZXZpb3VzUGF0aG5hbWU6IHByb3BzLnBhdGhuYW1lLFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHN0YXRlLmVycm9yLFxuICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgfVxuICB9XG5cbiAgcmVzZXQgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBFeHBsaWNpdCB0eXBlIGlzIG5lZWRlZCB0byBhdm9pZCB0aGUgZ2VuZXJhdGVkIGAuZC50c2AgaGF2aW5nIGEgd2lkZSByZXR1cm4gdHlwZSB0aGF0IGNvdWxkIGJlIHNwZWNpZmljIHRvIHRoZSBgQHR5cGVzL3JlYWN0YCB2ZXJzaW9uLlxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8SGFuZGxlSVNSRXJyb3IgZXJyb3I9e3RoaXMuc3RhdGUuZXJyb3J9IC8+XG4gICAgICAgICAge3RoaXMucHJvcHMuZXJyb3JTdHlsZXN9XG4gICAgICAgICAge3RoaXMucHJvcHMuZXJyb3JTY3JpcHRzfVxuICAgICAgICAgIDx0aGlzLnByb3BzLmVycm9yQ29tcG9uZW50XG4gICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5lcnJvcn1cbiAgICAgICAgICAgIHJlc2V0PXt0aGlzLnJlc2V0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdsb2JhbEVycm9yKHsgZXJyb3IgfTogeyBlcnJvcjogYW55IH0pIHtcbiAgY29uc3QgZGlnZXN0OiBzdHJpbmcgfCB1bmRlZmluZWQgPSBlcnJvcj8uZGlnZXN0XG4gIHJldHVybiAoXG4gICAgPGh0bWwgaWQ9XCJfX25leHRfZXJyb3JfX1wiPlxuICAgICAgPGhlYWQ+PC9oZWFkPlxuICAgICAgPGJvZHk+XG4gICAgICAgIDxIYW5kbGVJU1JFcnJvciBlcnJvcj17ZXJyb3J9IC8+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5lcnJvcn0+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMiBzdHlsZT17c3R5bGVzLnRleHR9PlxuICAgICAgICAgICAgICB7YEFwcGxpY2F0aW9uIGVycm9yOiBhICR7XG4gICAgICAgICAgICAgICAgZGlnZXN0ID8gJ3NlcnZlcicgOiAnY2xpZW50J1xuICAgICAgICAgICAgICB9LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCAoc2VlIHRoZSAke1xuICAgICAgICAgICAgICAgIGRpZ2VzdCA/ICdzZXJ2ZXIgbG9ncycgOiAnYnJvd3NlciBjb25zb2xlJ1xuICAgICAgICAgICAgICB9IGZvciBtb3JlIGluZm9ybWF0aW9uKS5gfVxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIHtkaWdlc3QgPyA8cCBzdHlsZT17c3R5bGVzLnRleHR9PntgRGlnZXN0OiAke2RpZ2VzdH1gfTwvcD4gOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gIClcbn1cblxuLy8gRXhwb3J0ZWQgc28gdGhhdCB0aGUgaW1wb3J0IHNpZ25hdHVyZSBpbiB0aGUgbG9hZGVycyBjYW4gYmUgaWRlbnRpY2FsIHRvIHVzZXJcbi8vIHN1cHBsaWVkIGN1c3RvbSBnbG9iYWwgZXJyb3Igc2lnbmF0dXJlcy5cbmV4cG9ydCBkZWZhdWx0IEdsb2JhbEVycm9yXG5cbi8qKlxuICogSGFuZGxlcyBlcnJvcnMgdGhyb3VnaCBgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yYC5cbiAqIFJlbmRlcnMgdGhlIHByb3ZpZGVkIGVycm9yIGNvbXBvbmVudCBhbmQgcHJvdmlkZXMgYSB3YXkgdG8gYHJlc2V0YCB0aGUgZXJyb3IgYm91bmRhcnkgc3RhdGUuXG4gKi9cblxuLyoqXG4gKiBSZW5kZXJzIGVycm9yIGJvdW5kYXJ5IHdpdGggdGhlIHByb3ZpZGVkIFwiZXJyb3JDb21wb25lbnRcIiBwcm9wZXJ0eSBhcyB0aGUgZmFsbGJhY2suXG4gKiBJZiBubyBcImVycm9yQ29tcG9uZW50XCIgcHJvcGVydHkgaXMgcHJvdmlkZWQgaXQgcmVuZGVycyB0aGUgY2hpbGRyZW4gd2l0aG91dCBhbiBlcnJvciBib3VuZGFyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEVycm9yQm91bmRhcnkoe1xuICBlcnJvckNvbXBvbmVudCxcbiAgZXJyb3JTdHlsZXMsXG4gIGVycm9yU2NyaXB0cyxcbiAgY2hpbGRyZW4sXG59OiBFcnJvckJvdW5kYXJ5UHJvcHMgJiB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0pOiBKU1guRWxlbWVudCB7XG4gIC8vIFdoZW4gd2UncmUgcmVuZGVyaW5nIHRoZSBtaXNzaW5nIHBhcmFtcyBzaGVsbCwgdGhpcyB3aWxsIHJldHVybiBudWxsLiBUaGlzXG4gIC8vIGlzIGJlY2F1c2Ugd2Ugd29uJ3QgYmUgcmVuZGVyaW5nIGFueSBub3QgZm91bmQgYm91bmRhcmllcyBvciBlcnJvclxuICAvLyBib3VuZGFyaWVzIGZvciB0aGUgbWlzc2luZyBwYXJhbXMgc2hlbGwuIFdoZW4gdGhpcyBydW5zIG9uIHRoZSBjbGllbnRcbiAgLy8gKHdoZXJlIHRoZXNlIGVycm9ycyBjYW4gb2NjdXIpLCB3ZSB3aWxsIGdldCB0aGUgY29ycmVjdCBwYXRobmFtZS5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VVbnRyYWNrZWRQYXRobmFtZSgpXG4gIGlmIChlcnJvckNvbXBvbmVudCkge1xuICAgIHJldHVybiAoXG4gICAgICA8RXJyb3JCb3VuZGFyeUhhbmRsZXJcbiAgICAgICAgcGF0aG5hbWU9e3BhdGhuYW1lfVxuICAgICAgICBlcnJvckNvbXBvbmVudD17ZXJyb3JDb21wb25lbnR9XG4gICAgICAgIGVycm9yU3R5bGVzPXtlcnJvclN0eWxlc31cbiAgICAgICAgZXJyb3JTY3JpcHRzPXtlcnJvclNjcmlwdHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvRXJyb3JCb3VuZGFyeUhhbmRsZXI+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuIl0sIm5hbWVzIjpbIkVycm9yQm91bmRhcnkiLCJFcnJvckJvdW5kYXJ5SGFuZGxlciIsIkdsb2JhbEVycm9yIiwic3R5bGVzIiwiZXJyb3IiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJ0ZXh0IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCIsIm1hcmdpbiIsIkhhbmRsZUlTUkVycm9yIiwic3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJpc1JldmFsaWRhdGUiLCJpc1N0YXRpY0dlbmVyYXRpb24iLCJjb25zb2xlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJpc05leHRSb3V0ZXJFcnJvciIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInByb3BzIiwic3RhdGUiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FQUF9OQVZfRkFJTF9IQU5ETElORyIsImhhbmRsZUhhcmROYXZFcnJvciIsInByZXZpb3VzUGF0aG5hbWUiLCJwYXRobmFtZSIsInJlbmRlciIsImVycm9yU3R5bGVzIiwiZXJyb3JTY3JpcHRzIiwidGhpcyIsImVycm9yQ29tcG9uZW50IiwicmVzZXQiLCJjaGlsZHJlbiIsImNvbnN0cnVjdG9yIiwic2V0U3RhdGUiLCJkaWdlc3QiLCJodG1sIiwiaWQiLCJoZWFkIiwiYm9keSIsImRpdiIsInN0eWxlIiwiaDIiLCJwIiwidXNlVW50cmFja2VkUGF0aG5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/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 new Error(\"`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled.\");\n }\n // eslint-disable-next-line no-throw-literal\n const error = new Error(DIGEST);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2ZvcmJpZGRlbi5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQXFCZ0JBOzs7ZUFBQUE7OztnREFsQlQ7QUFFUCw2QkFBNkI7QUFDN0I7Ozs7Ozs7Ozs7O0NBV0MsR0FFRCxNQUFNQyxTQUFVLEtBQUVDLG9CQUFBQSw4QkFBOEIsR0FBQztBQUUxQyxTQUFTRjtJQUNkLElBQUksSUFBZ0QsRUFBRTtRQUNwRCxNQUFNLElBQUlNLE1BQ1A7SUFFTDtJQUVBLDRDQUE0QztJQUM1QyxNQUFNQyxRQUFRLElBQUlELE1BQU1MO0lBQ3RCTSxNQUFrQ0MsTUFBTSxHQUFHUDtJQUM3QyxNQUFNTTtBQUNSIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXGZvcmJpZGRlbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUsXG4gIHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IsXG59IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2snXG5cbi8vIFRPRE86IEFkZCBgZm9yYmlkZGVuYCBkb2NzXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byByZW5kZXIgdGhlIFtmb3JiaWRkZW4uanMgZmlsZV0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZmlsZS1jb252ZW50aW9ucy9mb3JiaWRkZW4pXG4gKiB3aXRoaW4gYSByb3V0ZSBzZWdtZW50IGFzIHdlbGwgYXMgaW5qZWN0IGEgdGFnLlxuICpcbiAqIGBmb3JiaWRkZW4oKWAgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYGZvcmJpZGRlbmBdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9mb3JiaWRkZW4pXG4gKi9cblxuY29uc3QgRElHRVNUID0gYCR7SFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFfTs0MDNgXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JiaWRkZW4oKTogbmV2ZXIge1xuICBpZiAoIXByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfQVVUSF9JTlRFUlJVUFRTKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFxcYGZvcmJpZGRlbigpXFxgIGlzIGV4cGVyaW1lbnRhbCBhbmQgb25seSBhbGxvd2VkIHRvIGJlIGVuYWJsZWQgd2hlbiBcXGBleHBlcmltZW50YWwuYXV0aEludGVycnVwdHNcXGAgaXMgZW5hYmxlZC5gXG4gICAgKVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoRElHRVNUKSBhcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvclxuICA7KGVycm9yIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yKS5kaWdlc3QgPSBESUdFU1RcbiAgdGhyb3cgZXJyb3Jcbn1cbiJdLCJuYW1lcyI6WyJmb3JiaWRkZW4iLCJESUdFU1QiLCJIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0VYUEVSSU1FTlRBTF9BVVRIX0lOVEVSUlVQVFMiLCJFcnJvciIsImVycm9yIiwiZGlnZXN0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/forbidden.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXGhvb2tzLXNlcnZlci1jb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERZTkFNSUNfRVJST1JfQ09ERSA9ICdEWU5BTUlDX1NFUlZFUl9VU0FHRSdcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZXJ2ZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGlnZXN0OiB0eXBlb2YgRFlOQU1JQ19FUlJPUl9DT0RFID0gRFlOQU1JQ19FUlJPUl9DT0RFXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgRHluYW1pYyBzZXJ2ZXIgdXNhZ2U6ICR7ZGVzY3JpcHRpb259YClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbWljU2VydmVyRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIER5bmFtaWNTZXJ2ZXJFcnJvciB7XG4gIGlmIChcbiAgICB0eXBlb2YgZXJyICE9PSAnb2JqZWN0JyB8fFxuICAgIGVyciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyKSB8fFxuICAgIHR5cGVvZiBlcnIuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnIuZGlnZXN0ID09PSBEWU5BTUlDX0VSUk9SX0NPREVcbn1cbiJdLCJuYW1lcyI6WyJEeW5hbWljU2VydmVyRXJyb3IiLCJpc0R5bmFtaWNTZXJ2ZXJFcnJvciIsIkRZTkFNSUNfRVJST1JfQ09ERSIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJkZXNjcmlwdGlvbiIsImRpZ2VzdCIsImVyciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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 && // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has('children')) {\n let warningMessage = 'No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n';\n if (this.props.missingSlots.size > 0) {\n const formattedSlots = Array.from(this.props.missingSlots).sort((a, b)=>a.localeCompare(b)).map((slot)=>\"@\" + slot).join(', ');\n warningMessage += 'Missing slots: ' + formattedSlots;\n }\n (0, _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: \"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7OERBd0pnQkE7OztlQUFBQTs7Ozs7NkVBM0lrQjtpREFDRztnREFNOUI7c0NBQ2tCOzJEQUNVO0FBcUJuQyxNQUFNQyx3Q0FBd0NDLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVkzREMsb0JBQTBCO1FBQ3hCLElBQzJCLEtBQUwsSUFDcEIsSUFBSSxDQUFDSSxLQUFLLENBQUNDLFlBQVksSUFDdkIsNEVBQTRFO1FBQzVFLENBQUMsSUFBSSxDQUFDRCxLQUFLLENBQUNDLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLGFBQzdCO1lBQ0EsSUFBSUMsaUJBQ0YsNEhBQ0E7WUFFRixJQUFJLElBQUksQ0FBQ0gsS0FBSyxDQUFDQyxZQUFZLENBQUNHLElBQUksR0FBRyxHQUFHO2dCQUNwQyxNQUFNQyxpQkFBaUJDLE1BQU1DLElBQUksQ0FBQyxJQUFJLENBQUNQLEtBQUssQ0FBQ0MsWUFBWSxFQUN0RE8sSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELEVBQUVFLGFBQWEsQ0FBQ0QsSUFDL0JFLEdBQUcsQ0FBQyxDQUFDQyxPQUFVLE1BQUdBLE1BQ2xCQyxJQUFJLENBQUM7Z0JBRVJYLGtCQUFrQixvQkFBb0JFO1lBQ3hDO1lBRUFVLENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBLEVBQVNaO1FBQ1g7SUFDRjtJQUVBLE9BQU9hLHlCQUF5QkMsS0FBVSxFQUFFO1FBQzFDLElBQUlDLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJELFFBQVE7WUFDcEMsTUFBTUUsYUFBYUMsQ0FBQUEsR0FBQUEsb0JBQUFBLDJCQUFBQSxFQUE0Qkg7WUFDL0MsT0FBTztnQkFDTEksaUJBQWlCRjtZQUNuQjtRQUNGO1FBQ0EsbUNBQW1DO1FBQ25DLE1BQU1GO0lBQ1I7SUFFQSxPQUFPSyx5QkFDTHRCLEtBQTJDLEVBQzNDdUIsS0FBOEIsRUFDRTtRQUNoQzs7Ozs7S0FLQyxHQUNELElBQUl2QixNQUFNd0IsUUFBUSxLQUFLRCxNQUFNRSxnQkFBZ0IsSUFBSUYsTUFBTUYsZUFBZSxFQUFFO1lBQ3RFLE9BQU87Z0JBQ0xBLGlCQUFpQks7Z0JBQ2pCRCxrQkFBa0J6QixNQUFNd0IsUUFBUTtZQUNsQztRQUNGO1FBQ0EsT0FBTztZQUNMSCxpQkFBaUJFLE1BQU1GLGVBQWU7WUFDdENJLGtCQUFrQnpCLE1BQU13QixRQUFRO1FBQ2xDO0lBQ0Y7SUFFQUcsU0FBUztRQUNQLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDL0IsS0FBSztRQUNsRSxNQUFNLEVBQUVxQixlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUNFLEtBQUs7UUFDdEMsTUFBTVMsa0JBQWtCO1lBQ3RCLENBQUNDLG9CQUFBQSxxQkFBcUIsQ0FBQ0MsU0FBUyxDQUFDLEVBQUVOO1lBQ25DLENBQUNLLG9CQUFBQSxxQkFBcUIsQ0FBQ0UsU0FBUyxDQUFDLEVBQUVOO1lBQ25DLENBQUNJLG9CQUFBQSxxQkFBcUIsQ0FBQ0csWUFBWSxDQUFDLEVBQUVOO1FBQ3hDO1FBRUEsSUFBSVQsaUJBQWlCO1lBQ25CLE1BQU1nQixhQUNKaEIsb0JBQW9CWSxvQkFBQUEscUJBQXFCLENBQUNDLFNBQVMsSUFBSU47WUFDekQsTUFBTVUsY0FDSmpCLG9CQUFvQlksb0JBQUFBLHFCQUFxQixDQUFDRSxTQUFTLElBQUlOO1lBQ3pELE1BQU1VLGlCQUNKbEIsb0JBQW9CWSxvQkFBQUEscUJBQXFCLENBQUNHLFlBQVksSUFBSU47WUFFNUQsa0dBQWtHO1lBQ2xHLElBQUksQ0FBRU8sQ0FBQUEsY0FBY0MsZUFBZUMsY0FBQUEsQ0FBYSxFQUFJO2dCQUNsRCxPQUFPUjtZQUNUO1lBRUEscUJBQ0U7O2tDQUNFLHFCQUFDUyxRQUFBQTt3QkFBS0MsTUFBSzt3QkFBU0MsU0FBUTs7b0JBL0VQLEtBZ0ZrQixJQUFiLGNBQ3hCLHFCQUFDRixRQUFBQTt3QkFDQ0MsTUFBSzt3QkFDTEMsU0FBU0MsQ0FBQUEsR0FBQUEsb0JBQUFBLGtDQUFBQSxFQUFtQ3RCOztvQkFHL0NXLGVBQWUsQ0FBQ1gsZ0JBQWdCOzs7UUFHdkM7UUFFQSxPQUFPVTtJQUNUO0lBdEdBYSxZQUFZNUMsS0FBMkMsQ0FBRTtRQUN2RCxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDdUIsS0FBSyxHQUFHO1lBQ1hGLGlCQUFpQks7WUFDakJELGtCQUFrQnpCLE1BQU13QixRQUFRO1FBQ2xDO0lBQ0Y7QUFpR0Y7QUFFTyxTQUFTaEMsMkJBQTJCLEtBS1Q7SUFMUyxNQUN6Q29DLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pDLFFBQVEsRUFDd0IsR0FMUztJQU16Qyw2RUFBNkU7SUFDN0UscUVBQXFFO0lBQ3JFLHdFQUF3RTtJQUN4RSxtRUFBbUU7SUFDbkUsTUFBTVAsV0FBV3FCLENBQUFBLEdBQUFBLHFCQUFBQSxvQkFBQUE7SUFDakIsTUFBTTVDLGVBQWU2QyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXQywrQkFBQUEsa0JBQWtCO0lBQ2xELE1BQU1DLG1CQUFtQixDQUFDLENBQUVwQixDQUFBQSxZQUFZQyxhQUFhQyxZQUFBQSxDQUFXO0lBRWhFLElBQUlrQixrQkFBa0I7UUFDcEIscUJBQ0UscUJBQUN2RCxpQ0FBQUE7WUFDQytCLFVBQVVBO1lBQ1ZJLFVBQVVBO1lBQ1ZDLFdBQVdBO1lBQ1hDLGNBQWNBO1lBQ2Q3QixjQUFjQTtzQkFFYjhCOztJQUdQO0lBRUEscUJBQU87a0JBQUdBOztBQUNaIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXGh0dHAtYWNjZXNzLWZhbGxiYWNrXFxlcnJvci1ib3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbi8qKlxuICogSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkgaXMgYSBib3VuZGFyeSB0aGF0IGNhdGNoZXMgZXJyb3JzIGFuZCByZW5kZXJzIGFcbiAqIGZhbGxiYWNrIGNvbXBvbmVudCBmb3IgSFRUUCBlcnJvcnMuXG4gKlxuICogSXQgcmVjZWl2ZXMgdGhlIHN0YXR1cyBjb2RlLCBhbmQgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCByZW5kZXIgZmFsbGJhY2tzIGZvciBmZXcgSFRUUCA0eHggZXJyb3JzLlxuICpcbiAqIGUuZy4gNDA0XG4gKiA0MDQgcmVwcmVzZW50cyBub3QgZm91bmQsIGFuZCB0aGUgZmFsbGJhY2sgY29tcG9uZW50IHBhaXIgY29udGFpbnMgdGhlIGNvbXBvbmVudCBhbmQgaXRzIHN0eWxlcy5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVVudHJhY2tlZFBhdGhuYW1lIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi11bnRyYWNrZWQnXG5pbXBvcnQge1xuICBIVFRQQWNjZXNzRXJyb3JTdGF0dXMsXG4gIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyxcbiAgZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyxcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UnXG5pbXBvcnQgeyBNaXNzaW5nU2xvdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcblxuaW50ZXJmYWNlIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMge1xuICBub3RGb3VuZD86IFJlYWN0LlJlYWN0Tm9kZVxuICBmb3JiaWRkZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgdW5hdXRob3JpemVkPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgbWlzc2luZ1Nsb3RzPzogU2V0PHN0cmluZz5cbn1cblxuaW50ZXJmYWNlIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wc1xuICBleHRlbmRzIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMge1xuICBwYXRobmFtZTogc3RyaW5nIHwgbnVsbFxuICBtaXNzaW5nU2xvdHM/OiBTZXQ8c3RyaW5nPlxufVxuXG5pbnRlcmZhY2UgSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGUge1xuICB0cmlnZ2VyZWRTdGF0dXM6IG51bWJlciB8IHVuZGVmaW5lZFxuICBwcmV2aW91c1BhdGhuYW1lOiBzdHJpbmcgfCBudWxsXG59XG5cbmNsYXNzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wcyxcbiAgSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGVcbj4ge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeVByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHRyaWdnZXJlZFN0YXR1czogdW5kZWZpbmVkLFxuICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkQ2F0Y2goKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgIHRoaXMucHJvcHMubWlzc2luZ1Nsb3RzICYmXG4gICAgICAvLyBBIG1pc3NpbmcgY2hpbGRyZW4gc2xvdCBpcyB0aGUgdHlwaWNhbCBub3QtZm91bmQgY2FzZSwgc28gbm8gbmVlZCB0byB3YXJuXG4gICAgICAhdGhpcy5wcm9wcy5taXNzaW5nU2xvdHMuaGFzKCdjaGlsZHJlbicpXG4gICAgKSB7XG4gICAgICBsZXQgd2FybmluZ01lc3NhZ2UgPVxuICAgICAgICAnTm8gZGVmYXVsdCBjb21wb25lbnQgd2FzIGZvdW5kIGZvciBhIHBhcmFsbGVsIHJvdXRlIHJlbmRlcmVkIG9uIHRoaXMgcGFnZS4gRmFsbGluZyBiYWNrIHRvIG5lYXJlc3QgTm90Rm91bmQgYm91bmRhcnkuXFxuJyArXG4gICAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3BhcmFsbGVsLXJvdXRlcyNkZWZhdWx0anNcXG5cXG4nXG5cbiAgICAgIGlmICh0aGlzLnByb3BzLm1pc3NpbmdTbG90cy5zaXplID4gMCkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRTbG90cyA9IEFycmF5LmZyb20odGhpcy5wcm9wcy5taXNzaW5nU2xvdHMpXG4gICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAgICAgICAubWFwKChzbG90KSA9PiBgQCR7c2xvdH1gKVxuICAgICAgICAgIC5qb2luKCcsICcpXG5cbiAgICAgICAgd2FybmluZ01lc3NhZ2UgKz0gJ01pc3Npbmcgc2xvdHM6ICcgKyBmb3JtYXR0ZWRTbG90c1xuICAgICAgfVxuXG4gICAgICB3YXJuT25jZSh3YXJuaW5nTWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcikpIHtcbiAgICAgIGNvbnN0IGh0dHBTdGF0dXMgPSBnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMoZXJyb3IpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmlnZ2VyZWRTdGF0dXM6IGh0dHBTdGF0dXMsXG4gICAgICB9XG4gICAgfVxuICAgIC8vIFJlLXRocm93IGlmIGVycm9yIGlzIG5vdCBmb3IgNDA0XG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoXG4gICAgcHJvcHM6IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wcyxcbiAgICBzdGF0ZTogSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGVcbiAgKTogSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGUgfCBudWxsIHtcbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHJlc2V0IG9mIHRoZSBlcnJvciBib3VuZGFyeSB3aGVuIGEgbmF2aWdhdGlvbiBoYXBwZW5zLlxuICAgICAqIEVuc3VyZXMgdGhlIGVycm9yIGJvdW5kYXJ5IGRvZXMgbm90IHN0YXkgZW5hYmxlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS5cbiAgICAgKiBBcHByb2FjaCBvZiBzZXRTdGF0ZSBpbiByZW5kZXIgaXMgc2FmZSBhcyBpdCBjaGVja3MgdGhlIHByZXZpb3VzIHBhdGhuYW1lIGFuZCB0aGVuIG92ZXJyaWRlc1xuICAgICAqIGl0IGFzIG91dGxpbmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L3JlZmVyZW5jZS9yZWFjdC91c2VTdGF0ZSNzdG9yaW5nLWluZm9ybWF0aW9uLWZyb20tcHJldmlvdXMtcmVuZGVyc1xuICAgICAqL1xuICAgIGlmIChwcm9wcy5wYXRobmFtZSAhPT0gc3RhdGUucHJldmlvdXNQYXRobmFtZSAmJiBzdGF0ZS50cmlnZ2VyZWRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyaWdnZXJlZFN0YXR1czogdW5kZWZpbmVkLFxuICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRyaWdnZXJlZFN0YXR1czogc3RhdGUudHJpZ2dlcmVkU3RhdHVzLFxuICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgbm90Rm91bmQsIGZvcmJpZGRlbiwgdW5hdXRob3JpemVkLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHsgdHJpZ2dlcmVkU3RhdHVzIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgZXJyb3JDb21wb25lbnRzID0ge1xuICAgICAgW0hUVFBBY2Nlc3NFcnJvclN0YXR1cy5OT1RfRk9VTkRdOiBub3RGb3VuZCxcbiAgICAgIFtIVFRQQWNjZXNzRXJyb3JTdGF0dXMuRk9SQklEREVOXTogZm9yYmlkZGVuLFxuICAgICAgW0hUVFBBY2Nlc3NFcnJvclN0YXR1cy5VTkFVVEhPUklaRURdOiB1bmF1dGhvcml6ZWQsXG4gICAgfVxuXG4gICAgaWYgKHRyaWdnZXJlZFN0YXR1cykge1xuICAgICAgY29uc3QgaXNOb3RGb3VuZCA9XG4gICAgICAgIHRyaWdnZXJlZFN0YXR1cyA9PT0gSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLk5PVF9GT1VORCAmJiBub3RGb3VuZFxuICAgICAgY29uc3QgaXNGb3JiaWRkZW4gPVxuICAgICAgICB0cmlnZ2VyZWRTdGF0dXMgPT09IEhUVFBBY2Nlc3NFcnJvclN0YXR1cy5GT1JCSURERU4gJiYgZm9yYmlkZGVuXG4gICAgICBjb25zdCBpc1VuYXV0aG9yaXplZCA9XG4gICAgICAgIHRyaWdnZXJlZFN0YXR1cyA9PT0gSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLlVOQVVUSE9SSVpFRCAmJiB1bmF1dGhvcml6ZWRcblxuICAgICAgLy8gSWYgdGhlcmUncyBubyBtYXRjaGVkIGJvdW5kYXJ5IGluIHRoaXMgbGF5ZXIsIGtlZXAgdGhyb3dpbmcgdGhlIGVycm9yIGJ5IHJlbmRlcmluZyB0aGUgY2hpbGRyZW5cbiAgICAgIGlmICghKGlzTm90Rm91bmQgfHwgaXNGb3JiaWRkZW4gfHwgaXNVbmF1dGhvcml6ZWQpKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlblxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxtZXRhIG5hbWU9XCJyb2JvdHNcIiBjb250ZW50PVwibm9pbmRleFwiIC8+XG4gICAgICAgICAge3Byb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIChcbiAgICAgICAgICAgIDxtZXRhXG4gICAgICAgICAgICAgIG5hbWU9XCJuZXh0LWVycm9yXCJcbiAgICAgICAgICAgICAgY29udGVudD17Z2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyh0cmlnZ2VyZWRTdGF0dXMpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtlcnJvckNvbXBvbmVudHNbdHJpZ2dlcmVkU3RhdHVzXX1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5KHtcbiAgbm90Rm91bmQsXG4gIGZvcmJpZGRlbixcbiAgdW5hdXRob3JpemVkLFxuICBjaGlsZHJlbixcbn06IEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMpIHtcbiAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgdGhlIG1pc3NpbmcgcGFyYW1zIHNoZWxsLCB0aGlzIHdpbGwgcmV0dXJuIG51bGwuIFRoaXNcbiAgLy8gaXMgYmVjYXVzZSB3ZSB3b24ndCBiZSByZW5kZXJpbmcgYW55IG5vdCBmb3VuZCBib3VuZGFyaWVzIG9yIGVycm9yXG4gIC8vIGJvdW5kYXJpZXMgZm9yIHRoZSBtaXNzaW5nIHBhcmFtcyBzaGVsbC4gV2hlbiB0aGlzIHJ1bnMgb24gdGhlIGNsaWVudFxuICAvLyAod2hlcmUgdGhlc2UgZXJyb3IgY2FuIG9jY3VyKSwgd2Ugd2lsbCBnZXQgdGhlIGNvcnJlY3QgcGF0aG5hbWUuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlVW50cmFja2VkUGF0aG5hbWUoKVxuICBjb25zdCBtaXNzaW5nU2xvdHMgPSB1c2VDb250ZXh0KE1pc3NpbmdTbG90Q29udGV4dClcbiAgY29uc3QgaGFzRXJyb3JGYWxsYmFjayA9ICEhKG5vdEZvdW5kIHx8IGZvcmJpZGRlbiB8fCB1bmF1dGhvcml6ZWQpXG5cbiAgaWYgKGhhc0Vycm9yRmFsbGJhY2spIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlcbiAgICAgICAgcGF0aG5hbWU9e3BhdGhuYW1lfVxuICAgICAgICBub3RGb3VuZD17bm90Rm91bmR9XG4gICAgICAgIGZvcmJpZGRlbj17Zm9yYmlkZGVufVxuICAgICAgICB1bmF1dGhvcml6ZWQ9e3VuYXV0aG9yaXplZH1cbiAgICAgICAgbWlzc2luZ1Nsb3RzPXttaXNzaW5nU2xvdHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeT5cbiAgICApXG4gIH1cblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+XG59XG4iXSwibmFtZXMiOlsiSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkiLCJIVFRQQWNjZXNzRmFsbGJhY2tFcnJvckJvdW5kYXJ5IiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb21wb25lbnREaWRDYXRjaCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3BzIiwibWlzc2luZ1Nsb3RzIiwiaGFzIiwid2FybmluZ01lc3NhZ2UiLCJzaXplIiwiZm9ybWF0dGVkU2xvdHMiLCJBcnJheSIsImZyb20iLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwibWFwIiwic2xvdCIsImpvaW4iLCJ3YXJuT25jZSIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsImVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciIsImh0dHBTdGF0dXMiLCJnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMiLCJ0cmlnZ2VyZWRTdGF0dXMiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJzdGF0ZSIsInBhdGhuYW1lIiwicHJldmlvdXNQYXRobmFtZSIsInVuZGVmaW5lZCIsInJlbmRlciIsIm5vdEZvdW5kIiwiZm9yYmlkZGVuIiwidW5hdXRob3JpemVkIiwiY2hpbGRyZW4iLCJlcnJvckNvbXBvbmVudHMiLCJIVFRQQWNjZXNzRXJyb3JTdGF0dXMiLCJOT1RfRk9VTkQiLCJGT1JCSURERU4iLCJVTkFVVEhPUklaRUQiLCJpc05vdEZvdW5kIiwiaXNGb3JiaWRkZW4iLCJpc1VuYXV0aG9yaXplZCIsIm1ldGEiLCJuYW1lIiwiY29udGVudCIsImdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMiLCJjb25zdHJ1Y3RvciIsInVzZVVudHJhY2tlZFBhdGhuYW1lIiwidXNlQ29udGV4dCIsIk1pc3NpbmdTbG90Q29udGV4dCIsImhhc0Vycm9yRmFsbGJhY2siXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcaHR0cC1hY2Nlc3MtZmFsbGJhY2tcXGh0dHAtYWNjZXNzLWZhbGxiYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBIVFRQQWNjZXNzRXJyb3JTdGF0dXMgPSB7XG4gIE5PVF9GT1VORDogNDA0LFxuICBGT1JCSURERU46IDQwMyxcbiAgVU5BVVRIT1JJWkVEOiA0MDEsXG59XG5cbmNvbnN0IEFMTE9XRURfQ09ERVMgPSBuZXcgU2V0KE9iamVjdC52YWx1ZXMoSFRUUEFjY2Vzc0Vycm9yU3RhdHVzKSlcblxuZXhwb3J0IGNvbnN0IEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSA9ICdORVhUX0hUVFBfRVJST1JfRkFMTEJBQ0snXG5cbmV4cG9ydCB0eXBlIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yID0gRXJyb3IgJiB7XG4gIGRpZ2VzdDogYCR7dHlwZW9mIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07JHtzdHJpbmd9YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnlcbiAqIHRoZSBIVFRQIG5hdmlnYXRpb24gQVBJcyBgbm90Rm91bmQoKWAsIGBmb3JiaWRkZW4oKWAgb3IgYHVuYXV0aG9yaXplZCgpYC5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgdGhlIGVycm9yIHRoYXQgbWF5IHJlZmVyZW5jZSBhIEhUVFAgYWNjZXNzIGVycm9yXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBlcnJvciBpcyBhIEhUVFAgYWNjZXNzIGVycm9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBbcHJlZml4LCBodHRwU3RhdHVzXSA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG5cbiAgcmV0dXJuIChcbiAgICBwcmVmaXggPT09IEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSAmJlxuICAgIEFMTE9XRURfQ09ERVMuaGFzKE51bWJlcihodHRwU3RhdHVzKSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzKFxuICBlcnJvcjogSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3Jcbik6IG51bWJlciB7XG4gIGNvbnN0IGh0dHBTdGF0dXMgPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVsxXVxuICByZXR1cm4gTnVtYmVyKGh0dHBTdGF0dXMpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzKFxuICBzdGF0dXM6IG51bWJlclxuKTogJ25vdC1mb3VuZCcgfCAnZm9yYmlkZGVuJyB8ICd1bmF1dGhvcml6ZWQnIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICBjYXNlIDQwMTpcbiAgICAgIHJldHVybiAndW5hdXRob3JpemVkJ1xuICAgIGNhc2UgNDAzOlxuICAgICAgcmV0dXJuICdmb3JiaWRkZW4nXG4gICAgY2FzZSA0MDQ6XG4gICAgICByZXR1cm4gJ25vdC1mb3VuZCdcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJIVFRQQWNjZXNzRXJyb3JTdGF0dXMiLCJIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUiLCJnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzIiwiZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciIsIk5PVF9GT1VORCIsIkZPUkJJRERFTiIsIlVOQVVUSE9SSVpFRCIsIkFMTE9XRURfQ09ERVMiLCJTZXQiLCJPYmplY3QiLCJ2YWx1ZXMiLCJlcnJvciIsImRpZ2VzdCIsInByZWZpeCIsImh0dHBTdGF0dXMiLCJzcGxpdCIsImhhcyIsIk51bWJlciIsInN0YXR1cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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-hydration-error.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/is-hydration-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 getDefaultHydrationErrorMessage: function() {\n return getDefaultHydrationErrorMessage;\n },\n getHydrationErrorStackInfo: function() {\n return getHydrationErrorStackInfo;\n },\n isHydrationError: function() {\n return isHydrationError;\n },\n isReactHydrationErrorMessage: function() {\n return isReactHydrationErrorMessage;\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\"));\nconst hydrationErrorRegex = /hydration failed|while hydrating|content does not match|did not match|HTML didn't match/i;\nconst reactUnifiedMismatchWarning = \"Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used\";\nconst reactHydrationStartMessages = [\n reactUnifiedMismatchWarning,\n \"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\"\n];\nconst reactHydrationErrorDocLink = 'https://react.dev/link/hydration-mismatch';\nconst getDefaultHydrationErrorMessage = ()=>{\n return reactUnifiedMismatchWarning;\n};\nfunction isHydrationError(error) {\n return (0, _iserror.default)(error) && hydrationErrorRegex.test(error.message);\n}\nfunction isReactHydrationErrorMessage(msg) {\n return reactHydrationStartMessages.some((prefix)=>msg.startsWith(prefix));\n}\nfunction getHydrationErrorStackInfo(rawMessage) {\n rawMessage = rawMessage.replace(/^Error: /, '');\n if (!isReactHydrationErrorMessage(rawMessage)) {\n return {\n message: null\n };\n }\n const firstLineBreak = rawMessage.indexOf('\\n');\n rawMessage = rawMessage.slice(firstLineBreak + 1).trim();\n const [message, trailing] = rawMessage.split(\"\" + reactHydrationErrorDocLink);\n const trimmedMessage = message.trim();\n // React built-in hydration diff starts with a newline, checking if length is > 1\n if (trailing && trailing.length > 1) {\n const stacks = [];\n const diffs = [];\n trailing.split('\\n').forEach((line)=>{\n if (line.trim() === '') return;\n if (line.trim().startsWith('at ')) {\n stacks.push(line);\n } else {\n diffs.push(line);\n }\n });\n return {\n message: trimmedMessage,\n link: reactHydrationErrorDocLink,\n diff: diffs.join('\\n'),\n stack: stacks.join('\\n')\n };\n } else {\n return {\n message: trimmedMessage,\n link: reactHydrationErrorDocLink,\n stack: trailing\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=is-hydration-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLWh5ZHJhdGlvbi1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFjYUEsK0JBQStCO2VBQS9CQTs7SUFZR0MsMEJBQTBCO2VBQTFCQTs7SUFSQUMsZ0JBQWdCO2VBQWhCQTs7SUFJQUMsNEJBQTRCO2VBQTVCQTs7Ozs4RUF0Qkk7QUFFcEIsTUFBTUMsc0JBQ0o7QUFFRixNQUFNQyw4QkFBK0I7QUFFckMsTUFBTUMsOEJBQThCO0lBQ2xDRDtJQUNDO0NBQ0Y7QUFFRCxNQUFNRSw2QkFBNkI7QUFFNUIsTUFBTVAsa0NBQWtDO0lBQzdDLE9BQU9LO0FBQ1Q7QUFFTyxTQUFTSCxpQkFBaUJNLEtBQWM7SUFDN0MsT0FBT0MsQ0FBQUEsR0FBQUEsU0FBQUEsT0FBQUEsRUFBUUQsVUFBVUosb0JBQW9CTSxJQUFJLENBQUNGLE1BQU1HLE9BQU87QUFDakU7QUFFTyxTQUFTUiw2QkFBNkJTLEdBQVc7SUFDdEQsT0FBT04sNEJBQTRCTyxJQUFJLENBQUMsQ0FBQ0MsU0FBV0YsSUFBSUcsVUFBVSxDQUFDRDtBQUNyRTtBQUVPLFNBQVNiLDJCQUEyQmUsVUFBa0I7SUFNM0RBLGFBQWFBLFdBQVdDLE9BQU8sQ0FBQyxZQUFZO0lBQzVDLElBQUksQ0FBQ2QsNkJBQTZCYSxhQUFhO1FBQzdDLE9BQU87WUFBRUwsU0FBUztRQUFLO0lBQ3pCO0lBQ0EsTUFBTU8saUJBQWlCRixXQUFXRyxPQUFPLENBQUM7SUFDMUNILGFBQWFBLFdBQVdJLEtBQUssQ0FBQ0YsaUJBQWlCLEdBQUdHLElBQUk7SUFFdEQsTUFBTSxDQUFDVixTQUFTVyxTQUFTLEdBQUdOLFdBQVdPLEtBQUssQ0FBRSxLQUFFaEI7SUFDaEQsTUFBTWlCLGlCQUFpQmIsUUFBUVUsSUFBSTtJQUNuQyxpRkFBaUY7SUFDakYsSUFBSUMsWUFBWUEsU0FBU0csTUFBTSxHQUFHLEdBQUc7UUFDbkMsTUFBTUMsU0FBbUIsRUFBRTtRQUMzQixNQUFNQyxRQUFrQixFQUFFO1FBQzFCTCxTQUFTQyxLQUFLLENBQUMsTUFBTUssT0FBTyxDQUFDLENBQUNDO1lBQzVCLElBQUlBLEtBQUtSLElBQUksT0FBTyxJQUFJO1lBQ3hCLElBQUlRLEtBQUtSLElBQUksR0FBR04sVUFBVSxDQUFDLFFBQVE7Z0JBQ2pDVyxPQUFPSSxJQUFJLENBQUNEO1lBQ2QsT0FBTztnQkFDTEYsTUFBTUcsSUFBSSxDQUFDRDtZQUNiO1FBQ0Y7UUFFQSxPQUFPO1lBQ0xsQixTQUFTYTtZQUNUTyxNQUFNeEI7WUFDTnlCLE1BQU1MLE1BQU1NLElBQUksQ0FBQztZQUNqQkMsT0FBT1IsT0FBT08sSUFBSSxDQUFDO1FBQ3JCO0lBQ0YsT0FBTztRQUNMLE9BQU87WUFDTHRCLFNBQVNhO1lBQ1RPLE1BQU14QjtZQUNOMkIsT0FBT1o7UUFDVDtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcaXMtaHlkcmF0aW9uLWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc0Vycm9yIGZyb20gJy4uLy4uL2xpYi9pcy1lcnJvcidcblxuY29uc3QgaHlkcmF0aW9uRXJyb3JSZWdleCA9XG4gIC9oeWRyYXRpb24gZmFpbGVkfHdoaWxlIGh5ZHJhdGluZ3xjb250ZW50IGRvZXMgbm90IG1hdGNofGRpZCBub3QgbWF0Y2h8SFRNTCBkaWRuJ3QgbWF0Y2gvaVxuXG5jb25zdCByZWFjdFVuaWZpZWRNaXNtYXRjaFdhcm5pbmcgPSBgSHlkcmF0aW9uIGZhaWxlZCBiZWNhdXNlIHRoZSBzZXJ2ZXIgcmVuZGVyZWQgSFRNTCBkaWRuJ3QgbWF0Y2ggdGhlIGNsaWVudC4gQXMgYSByZXN1bHQgdGhpcyB0cmVlIHdpbGwgYmUgcmVnZW5lcmF0ZWQgb24gdGhlIGNsaWVudC4gVGhpcyBjYW4gaGFwcGVuIGlmIGEgU1NSLWVkIENsaWVudCBDb21wb25lbnQgdXNlZGBcblxuY29uc3QgcmVhY3RIeWRyYXRpb25TdGFydE1lc3NhZ2VzID0gW1xuICByZWFjdFVuaWZpZWRNaXNtYXRjaFdhcm5pbmcsXG4gIGBBIHRyZWUgaHlkcmF0ZWQgYnV0IHNvbWUgYXR0cmlidXRlcyBvZiB0aGUgc2VydmVyIHJlbmRlcmVkIEhUTUwgZGlkbid0IG1hdGNoIHRoZSBjbGllbnQgcHJvcGVydGllcy4gVGhpcyB3b24ndCBiZSBwYXRjaGVkIHVwLiBUaGlzIGNhbiBoYXBwZW4gaWYgYSBTU1ItZWQgQ2xpZW50IENvbXBvbmVudCB1c2VkOmAsXG5dXG5cbmNvbnN0IHJlYWN0SHlkcmF0aW9uRXJyb3JEb2NMaW5rID0gJ2h0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaHlkcmF0aW9uLW1pc21hdGNoJ1xuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdEh5ZHJhdGlvbkVycm9yTWVzc2FnZSA9ICgpID0+IHtcbiAgcmV0dXJuIHJlYWN0VW5pZmllZE1pc21hdGNoV2FybmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIeWRyYXRpb25FcnJvcihlcnJvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNFcnJvcihlcnJvcikgJiYgaHlkcmF0aW9uRXJyb3JSZWdleC50ZXN0KGVycm9yLm1lc3NhZ2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlYWN0SHlkcmF0aW9uRXJyb3JNZXNzYWdlKG1zZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiByZWFjdEh5ZHJhdGlvblN0YXJ0TWVzc2FnZXMuc29tZSgocHJlZml4KSA9PiBtc2cuc3RhcnRzV2l0aChwcmVmaXgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SHlkcmF0aW9uRXJyb3JTdGFja0luZm8ocmF3TWVzc2FnZTogc3RyaW5nKToge1xuICBtZXNzYWdlOiBzdHJpbmcgfCBudWxsXG4gIGxpbms/OiBzdHJpbmdcbiAgc3RhY2s/OiBzdHJpbmdcbiAgZGlmZj86IHN0cmluZ1xufSB7XG4gIHJhd01lc3NhZ2UgPSByYXdNZXNzYWdlLnJlcGxhY2UoL15FcnJvcjogLywgJycpXG4gIGlmICghaXNSZWFjdEh5ZHJhdGlvbkVycm9yTWVzc2FnZShyYXdNZXNzYWdlKSkge1xuICAgIHJldHVybiB7IG1lc3NhZ2U6IG51bGwgfVxuICB9XG4gIGNvbnN0IGZpcnN0TGluZUJyZWFrID0gcmF3TWVzc2FnZS5pbmRleE9mKCdcXG4nKVxuICByYXdNZXNzYWdlID0gcmF3TWVzc2FnZS5zbGljZShmaXJzdExpbmVCcmVhayArIDEpLnRyaW0oKVxuXG4gIGNvbnN0IFttZXNzYWdlLCB0cmFpbGluZ10gPSByYXdNZXNzYWdlLnNwbGl0KGAke3JlYWN0SHlkcmF0aW9uRXJyb3JEb2NMaW5rfWApXG4gIGNvbnN0IHRyaW1tZWRNZXNzYWdlID0gbWVzc2FnZS50cmltKClcbiAgLy8gUmVhY3QgYnVpbHQtaW4gaHlkcmF0aW9uIGRpZmYgc3RhcnRzIHdpdGggYSBuZXdsaW5lLCBjaGVja2luZyBpZiBsZW5ndGggaXMgPiAxXG4gIGlmICh0cmFpbGluZyAmJiB0cmFpbGluZy5sZW5ndGggPiAxKSB7XG4gICAgY29uc3Qgc3RhY2tzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZGlmZnM6IHN0cmluZ1tdID0gW11cbiAgICB0cmFpbGluZy5zcGxpdCgnXFxuJykuZm9yRWFjaCgobGluZSkgPT4ge1xuICAgICAgaWYgKGxpbmUudHJpbSgpID09PSAnJykgcmV0dXJuXG4gICAgICBpZiAobGluZS50cmltKCkuc3RhcnRzV2l0aCgnYXQgJykpIHtcbiAgICAgICAgc3RhY2tzLnB1c2gobGluZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpZmZzLnB1c2gobGluZSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IHRyaW1tZWRNZXNzYWdlLFxuICAgICAgbGluazogcmVhY3RIeWRyYXRpb25FcnJvckRvY0xpbmssXG4gICAgICBkaWZmOiBkaWZmcy5qb2luKCdcXG4nKSxcbiAgICAgIHN0YWNrOiBzdGFja3Muam9pbignXFxuJyksXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlOiB0cmltbWVkTWVzc2FnZSxcbiAgICAgIGxpbms6IHJlYWN0SHlkcmF0aW9uRXJyb3JEb2NMaW5rLFxuICAgICAgc3RhY2s6IHRyYWlsaW5nLCAvLyB3aXRob3V0IGh5ZHJhdGlvbiBkaWZmXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0RGVmYXVsdEh5ZHJhdGlvbkVycm9yTWVzc2FnZSIsImdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvIiwiaXNIeWRyYXRpb25FcnJvciIsImlzUmVhY3RIeWRyYXRpb25FcnJvck1lc3NhZ2UiLCJoeWRyYXRpb25FcnJvclJlZ2V4IiwicmVhY3RVbmlmaWVkTWlzbWF0Y2hXYXJuaW5nIiwicmVhY3RIeWRyYXRpb25TdGFydE1lc3NhZ2VzIiwicmVhY3RIeWRyYXRpb25FcnJvckRvY0xpbmsiLCJlcnJvciIsImlzRXJyb3IiLCJ0ZXN0IiwibWVzc2FnZSIsIm1zZyIsInNvbWUiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicmF3TWVzc2FnZSIsInJlcGxhY2UiLCJmaXJzdExpbmVCcmVhayIsImluZGV4T2YiLCJzbGljZSIsInRyaW0iLCJ0cmFpbGluZyIsInNwbGl0IiwidHJpbW1lZE1lc3NhZ2UiLCJsZW5ndGgiLCJzdGFja3MiLCJkaWZmcyIsImZvckVhY2giLCJsaW5lIiwicHVzaCIsImxpbmsiLCJkaWZmIiwiam9pbiIsInN0YWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/is-hydration-error.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXGlzLW5leHQtcm91dGVyLWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IsXG4gIHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IsXG59IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2snXG5pbXBvcnQgeyBpc1JlZGlyZWN0RXJyb3IsIHR5cGUgUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vcmVkaXJlY3QtZXJyb3InXG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBlcnJvciBpcyBhIG5hdmlnYXRpb24gc2lnbmFsIGVycm9yLiBUaGVzZSBlcnJvcnMgYXJlXG4gKiB0aHJvd24gYnkgdXNlciBjb2RlIHRvIHBlcmZvcm0gbmF2aWdhdGlvbiBvcGVyYXRpb25zIGFuZCBpbnRlcnJ1cHQgdGhlIFJlYWN0XG4gKiByZW5kZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05leHRSb3V0ZXJFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3IgfCBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciB7XG4gIHJldHVybiBpc1JlZGlyZWN0RXJyb3IoZXJyb3IpIHx8IGlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IoZXJyb3IpXG59XG4iXSwibmFtZXMiOlsiaXNOZXh0Um91dGVyRXJyb3IiLCJlcnJvciIsImlzUmVkaXJlY3RFcnJvciIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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 _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 _handlesmoothscroll = __webpack_require__(/*! ../../shared/lib/router/utils/handle-smooth-scroll */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/handle-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 _getsegmentvalue = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.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\");\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 // 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, _handlesmoothscroll.handleSmoothScroll)(()=>{\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 `handleSmoothScroll`\n focusAndScrollRef.onlyHashChange = false;\n // Set focus on the element\n domNode.focus();\n }\n };\n }\n}\nfunction ScrollAndFocusHandler(param) {\n let { segmentPath, children } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw new Error('invariant global layout router not mounted');\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 { parallelRouterKey, url, childNodes, segmentPath, tree, // isActive,\n cacheKey } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw new Error('invariant global layout router not mounted');\n }\n const { changeByServerResponse, tree: fullTree } = context;\n // Read segment path from the parallel router cache node.\n let childNode = childNodes.get(cacheKey);\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n if (childNode === undefined) {\n const newLazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null\n };\n /**\n * Flight data fetch kicked off during render and put into the cache.\n */ childNode = newLazyCacheNode;\n childNodes.set(cacheKey, newLazyCacheNode);\n }\n // `rsc` represents the renderable node for this segment.\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc = childNode.prefetchRsc !== null ? childNode.prefetchRsc : childNode.rsc;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n //\n // @ts-expect-error The second argument to `useDeferredValue` is only\n // available in the experimental builds. When its disabled, it will always\n // return `rsc`.\n const rsc = (0, _react.useDeferredValue)(childNode.rsc, resolvedPrefetchRsc);\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n const resolvedRsc = typeof rsc === 'object' && rsc !== null && typeof rsc.then === 'function' ? (0, _react.use)(rsc) : rsc;\n if (!resolvedRsc) {\n // The data for this segment is not available, and there's no pending\n // navigation that will be able to fulfill it. We need to fetch more from\n // the server and patch the cache.\n // Check if there's already a pending request.\n let lazyData = childNode.lazyData;\n if (lazyData === null) {\n /**\n * Router state with refetch marker added\n */ // TODO-APP: remove ''\n const refetchTree = walkAddRefetch([\n '',\n ...segmentPath\n ], fullTree);\n const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(fullTree);\n childNode.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 changeByServerResponse({\n previousTree: fullTree,\n serverResponse\n });\n });\n return serverResponse;\n });\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 tree: tree[1][parallelRouterKey],\n childNodes: childNode.parallelRoutes,\n // TODO-APP: overriding of url for parallel routes\n url: url,\n loading: childNode.loading\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, segmentPath, error, errorStyles, errorScripts, templateStyles, templateScripts, template, notFound, forbidden, unauthorized } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n if (!context) {\n throw new Error('invariant expected layout router to be mounted');\n }\n const { childNodes, tree, url, loading } = context;\n // Get the current parallelRouter cache node\n let childNodesForParallelRouter = childNodes.get(parallelRouterKey);\n // If the parallel router cache node does not exist yet, create it.\n // This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.\n if (!childNodesForParallelRouter) {\n childNodesForParallelRouter = new Map();\n childNodes.set(parallelRouterKey, childNodesForParallelRouter);\n }\n // Get the active segment in the tree\n // The reason arrays are used in the data format is that these are transferred from the server to the browser so it's optimized to save bytes.\n const treeSegment = tree[1][parallelRouterKey][0];\n // If segment is an array it's a dynamic route and we want to read the dynamic route value as the segment to get from the cache.\n const currentChildSegmentValue = (0, _getsegmentvalue.getSegmentValue)(treeSegment);\n /**\n * Decides which segments to keep rendering, all segments that are not active will be wrapped in `<Offscreen>`.\n */ // TODO-APP: Add handling of `<Offscreen>` when it's available.\n const preservedSegments = [\n treeSegment\n ];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: preservedSegments.map((preservedSegment)=>{\n const preservedSegmentValue = (0, _getsegmentvalue.getSegmentValue)(preservedSegment);\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(preservedSegment);\n return(/*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */ /*#__PURE__*/ (0, _jsxruntime.jsxs)(_approutercontextsharedruntime.TemplateContext.Provider, {\n value: /*#__PURE__*/ (0, _jsxruntime.jsx)(ScrollAndFocusHandler, {\n segmentPath: segmentPath,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n errorComponent: error,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingBoundary, {\n loading: loading,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary1.HTTPAccessFallbackBoundary, {\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_redirectboundary.RedirectBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerLayoutRouter, {\n parallelRouterKey: parallelRouterKey,\n url: url,\n tree: tree,\n childNodes: childNodesForParallelRouter,\n segmentPath: segmentPath,\n cacheKey: cacheKey,\n isActive: currentChildSegmentValue === preservedSegmentValue\n })\n })\n })\n })\n })\n }),\n children: [\n templateStyles,\n templateScripts,\n template\n ]\n }, (0, _createroutercachekey.createRouterCacheKey)(preservedSegment, true)));\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=layout-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0F5ZkE7OztlQUF3QkE7Ozs7Ozs2RUFuZWpCOytFQUNjOzJEQUtkO2lEQUM2QjtnREFDRDsyQ0FDTDsyQ0FDRDtnREFDTTs4Q0FDRjs0Q0FDVTs2Q0FDWDtrREFDSzsrREFDYTtBQUVsRDs7O0NBR0MsR0FDRCxTQUFTQyxlQUNQQyxpQkFBZ0QsRUFDaERDLGNBQWlDO0lBRWpDLElBQUlELG1CQUFtQjtRQUNyQixNQUFNLENBQUNFLFNBQVNDLGlCQUFpQixHQUFHSDtRQUNwQyxNQUFNSSxTQUFTSixrQkFBa0JLLE1BQU0sS0FBSztRQUU1QyxJQUFJQyxDQUFBQSxHQUFBQSxlQUFBQSxZQUFBQSxFQUFhTCxjQUFjLENBQUMsRUFBRSxFQUFFQyxVQUFVO1lBQzVDLElBQUlELGNBQWMsQ0FBQyxFQUFFLENBQUNNLGNBQWMsQ0FBQ0osbUJBQW1CO2dCQUN0RCxJQUFJQyxRQUFRO29CQUNWLE1BQU1JLFVBQVVULGVBQ2RVLFdBQ0FSLGNBQWMsQ0FBQyxFQUFFLENBQUNFLGlCQUFpQjtvQkFFckMsT0FBTzt3QkFDTEYsY0FBYyxDQUFDLEVBQUU7d0JBQ2pCOzRCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFOzRCQUNwQixDQUFDRSxpQkFBaUIsRUFBRTtnQ0FDbEJLLE9BQU8sQ0FBQyxFQUFFO2dDQUNWQSxPQUFPLENBQUMsRUFBRTtnQ0FDVkEsT0FBTyxDQUFDLEVBQUU7Z0NBQ1Y7NkJBQ0Q7d0JBQ0g7cUJBQ0Q7Z0JBQ0g7Z0JBRUEsT0FBTztvQkFDTFAsY0FBYyxDQUFDLEVBQUU7b0JBQ2pCO3dCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFO3dCQUNwQixDQUFDRSxpQkFBaUIsRUFBRUosZUFDbEJDLGtCQUFrQlUsS0FBSyxDQUFDLElBQ3hCVCxjQUFjLENBQUMsRUFBRSxDQUFDRSxpQkFBaUI7b0JBRXZDO2lCQUNEO1lB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RyxrQkFBa0JDLEdBQUcsQ0FBQyxDQUFDQztZQUN0QixNQUFNQyx3QkFBd0JKLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQkc7WUFDOUMsTUFBTTVELFdBQVc4RCxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCRjtZQUV0QyxPQUNFOzs7Ozs7OztVQVFBLGlCQUNBLHNCQUFDRywrQkFBQUEsZUFBZSxDQUFDNUIsUUFBUTtnQkFFdkJDLE9BQ0UsV0FERkEsR0FDRSxxQkFBQzlDLHVCQUFBQTtvQkFBc0JsQixhQUFhQTs4QkFDbEMsbUNBQUM0RixlQUFBQSxhQUFhO3dCQUNaQyxnQkFBZ0JwQjt3QkFDaEJDLGFBQWFBO3dCQUNiQyxjQUFjQTtrQ0FFZCxtQ0FBQ1YsaUJBQUFBOzRCQUFnQnhCLFNBQVNBO3NDQUN4QixtQ0FBQ3FELGdCQUFBQSwwQkFBMEI7Z0NBQ3pCZixVQUFVQTtnQ0FDVkMsV0FBV0E7Z0NBQ1hDLGNBQWNBOzBDQUVkLG1DQUFDYyxrQkFBQUEsZ0JBQWdCOzhDQUNmLG1DQUFDeEUsbUJBQUFBO3dDQUNDQyxtQkFBbUJBO3dDQUNuQkMsS0FBS0E7d0NBQ0xFLE1BQU1BO3dDQUNORCxZQUFZd0Q7d0NBQ1psRixhQUFhQTt3Q0FDYjRCLFVBQVVBO3dDQUNWb0UsVUFDRVosNkJBQTZCSzs7Ozs7Ozs7b0JBVTVDYjtvQkFDQUM7b0JBQ0FDOztlQW5DSVksQ0FBQUEsR0FBQUEsc0JBQUFBLG9CQUFBQSxFQUFxQkYsa0JBQWtCO1FBc0NsRDs7QUFHTiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxsYXlvdXQtcm91dGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUge1xuICBDaGlsZFNlZ21lbnRNYXAsXG4gIExhenlDYWNoZU5vZGUsXG4gIExvYWRpbmdNb2R1bGVEYXRhLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxuICBTZWdtZW50LFxufSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2Vycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHR5cGUgeyBGb2N1c0FuZFNjcm9sbFJlZiB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5cbmltcG9ydCBSZWFjdCwge1xuICB1c2VDb250ZXh0LFxuICB1c2UsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgU3VzcGVuc2UsXG4gIHVzZURlZmVycmVkVmFsdWUsXG4gIHR5cGUgSlNYLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQge1xuICBMYXlvdXRSb3V0ZXJDb250ZXh0LFxuICBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0LFxuICBUZW1wbGF0ZUNvbnRleHQsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZmV0Y2hTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHsgdW5yZXNvbHZlZFRoZW5hYmxlIH0gZnJvbSAnLi91bnJlc29sdmVkLXRoZW5hYmxlJ1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gJy4vZXJyb3ItYm91bmRhcnknXG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tICcuL21hdGNoLXNlZ21lbnRzJ1xuaW1wb3J0IHsgaGFuZGxlU21vb3RoU2Nyb2xsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaGFuZGxlLXNtb290aC1zY3JvbGwnXG5pbXBvcnQgeyBSZWRpcmVjdEJvdW5kYXJ5IH0gZnJvbSAnLi9yZWRpcmVjdC1ib3VuZGFyeSdcbmltcG9ydCB7IEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IH0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeSdcbmltcG9ydCB7IGdldFNlZ21lbnRWYWx1ZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5pbXBvcnQgeyBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlJ1xuXG4vKipcbiAqIEFkZCByZWZldGNoIG1hcmtlciB0byByb3V0ZXIgc3RhdGUgYXQgdGhlIHBvaW50IG9mIHRoZSBjdXJyZW50IGxheW91dCBzZWdtZW50LlxuICogVGhpcyBlbnN1cmVzIHRoZSByZXNwb25zZSByZXR1cm5lZCBpcyBub3QgZnVydGhlciBkb3duIHRoYW4gdGhlIGN1cnJlbnQgbGF5b3V0IHNlZ21lbnQuXG4gKi9cbmZ1bmN0aW9uIHdhbGtBZGRSZWZldGNoKFxuICBzZWdtZW50UGF0aFRvV2FsazogRmxpZ2h0U2VnbWVudFBhdGggfCB1bmRlZmluZWQsXG4gIHRyZWVUb1JlY3JlYXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogRmxpZ2h0Um91dGVyU3RhdGUge1xuICBpZiAoc2VnbWVudFBhdGhUb1dhbGspIHtcbiAgICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZUtleV0gPSBzZWdtZW50UGF0aFRvV2Fsa1xuICAgIGNvbnN0IGlzTGFzdCA9IHNlZ21lbnRQYXRoVG9XYWxrLmxlbmd0aCA9PT0gMlxuXG4gICAgaWYgKG1hdGNoU2VnbWVudCh0cmVlVG9SZWNyZWF0ZVswXSwgc2VnbWVudCkpIHtcbiAgICAgIGlmICh0cmVlVG9SZWNyZWF0ZVsxXS5oYXNPd25Qcm9wZXJ0eShwYXJhbGxlbFJvdXRlS2V5KSkge1xuICAgICAgICBpZiAoaXNMYXN0KSB7XG4gICAgICAgICAgY29uc3Qgc3ViVHJlZSA9IHdhbGtBZGRSZWZldGNoKFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHJlZVRvUmVjcmVhdGVbMV1bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi50cmVlVG9SZWNyZWF0ZVsxXSxcbiAgICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiBbXG4gICAgICAgICAgICAgICAgc3ViVHJlZVswXSxcbiAgICAgICAgICAgICAgICBzdWJUcmVlWzFdLFxuICAgICAgICAgICAgICAgIHN1YlRyZWVbMl0sXG4gICAgICAgICAgICAgICAgJ3JlZmV0Y2gnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLnRyZWVUb1JlY3JlYXRlWzFdLFxuICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiB3YWxrQWRkUmVmZXRjaChcbiAgICAgICAgICAgICAgc2VnbWVudFBhdGhUb1dhbGsuc2xpY2UoMiksXG4gICAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzFdW3BhcmFsbGVsUm91dGVLZXldXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJlZVRvUmVjcmVhdGVcbn1cblxuY29uc3QgX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFID0gKFxuICBSZWFjdERPTSBhcyBhbnlcbikuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFXG5cbi8vIFRPRE8tQVBQOiBSZXBsYWNlIHdpdGggbmV3IFJlYWN0IEFQSSBmb3IgZmluZGluZyBkb20gbm9kZXMgd2l0aG91dCBhIGByZWZgIHdoZW4gYXZhaWxhYmxlXG4vKipcbiAqIFdyYXBzIFJlYWN0RE9NLmZpbmRET01Ob2RlIHdpdGggYWRkaXRpb25hbCBsb2dpYyB0byBoaWRlIFJlYWN0IFN0cmljdCBNb2RlIHdhcm5pbmdcbiAqL1xuZnVuY3Rpb24gZmluZERPTU5vZGUoXG4gIGluc3RhbmNlOiBSZWFjdC5SZWFjdEluc3RhbmNlIHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogRWxlbWVudCB8IFRleHQgfCBudWxsIHtcbiAgLy8gVHJlZS1zaGFrZSBmb3Igc2VydmVyIGJ1bmRsZVxuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsXG5cbiAgLy8gX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLmZpbmRET01Ob2RlIGlzIG51bGwgZHVyaW5nIG1vZHVsZSBpbml0LlxuICAvLyBXZSBuZWVkIHRvIGxhemlseSByZWZlcmVuY2UgaXQuXG4gIGNvbnN0IGludGVybmFsX3JlYWN0RE9NZmluZERPTU5vZGUgPVxuICAgIF9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERS5maW5kRE9NTm9kZVxuICByZXR1cm4gaW50ZXJuYWxfcmVhY3RET01maW5kRE9NTm9kZShpbnN0YW5jZSlcbn1cblxuY29uc3QgcmVjdFByb3BlcnRpZXMgPSBbXG4gICdib3R0b20nLFxuICAnaGVpZ2h0JyxcbiAgJ2xlZnQnLFxuICAncmlnaHQnLFxuICAndG9wJyxcbiAgJ3dpZHRoJyxcbiAgJ3gnLFxuICAneScsXG5dIGFzIGNvbnN0XG4vKipcbiAqIENoZWNrIGlmIGEgSFRNTEVsZW1lbnQgaXMgaGlkZGVuIG9yIGZpeGVkL3N0aWNreSBwb3NpdGlvblxuICovXG5mdW5jdGlvbiBzaG91bGRTa2lwRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAvLyB3ZSBpZ25vcmUgZml4ZWQgb3Igc3RpY2t5IHBvc2l0aW9uZWQgZWxlbWVudHMgc2luY2UgdGhleSdsbCBsaWtlbHkgcGFzcyB0aGUgXCJpbi12aWV3cG9ydFwiIGNoZWNrXG4gIC8vIGFuZCB3aWxsIHJlc3VsdCBpbiBhIHNpdHVhdGlvbiB3ZSBiYWlsIG9uIHNjcm9sbCBiZWNhdXNlIG9mIHNvbWV0aGluZyBsaWtlIGEgZml4ZWQgbmF2LFxuICAvLyBldmVuIHRob3VnaCB0aGUgYWN0dWFsIHBhZ2UgY29udGVudCBpcyBvZmZzY3JlZW5cbiAgaWYgKFsnc3RpY2t5JywgJ2ZpeGVkJ10uaW5jbHVkZXMoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbikpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1NraXBwaW5nIGF1dG8tc2Nyb2xsIGJlaGF2aW9yIGR1ZSB0byBgcG9zaXRpb246IHN0aWNreWAgb3IgYHBvc2l0aW9uOiBmaXhlZGAgb24gZWxlbWVudDonLFxuICAgICAgICBlbGVtZW50XG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBVc2VzIGBnZXRCb3VuZGluZ0NsaWVudFJlY3RgIHRvIGNoZWNrIGlmIHRoZSBlbGVtZW50IGlzIGhpZGRlbiBpbnN0ZWFkIG9mIGBvZmZzZXRQYXJlbnRgXG4gIC8vIGJlY2F1c2UgYG9mZnNldFBhcmVudGAgZG9lc24ndCBjb25zaWRlciBkb2N1bWVudC9ib2R5XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiByZWN0UHJvcGVydGllcy5ldmVyeSgoaXRlbSkgPT4gcmVjdFtpdGVtXSA9PT0gMClcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgdG9wIGNvcm5lciBvZiB0aGUgSFRNTEVsZW1lbnQgaXMgaW4gdGhlIHZpZXdwb3J0LlxuICovXG5mdW5jdGlvbiB0b3BPZkVsZW1lbnRJblZpZXdwb3J0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB2aWV3cG9ydEhlaWdodDogbnVtYmVyKSB7XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiByZWN0LnRvcCA+PSAwICYmIHJlY3QudG9wIDw9IHZpZXdwb3J0SGVpZ2h0XG59XG5cbi8qKlxuICogRmluZCB0aGUgRE9NIG5vZGUgZm9yIGEgaGFzaCBmcmFnbWVudC5cbiAqIElmIGB0b3BgIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZS4gVGhpcyBtaXJyb3JzIHRoZSBicm93c2VyJ3MgYmVoYXZpb3IuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhIG5hbWUsIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIGZpcnN0IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50OiBzdHJpbmcpIHtcbiAgLy8gSWYgdGhlIGhhc2ggZnJhZ21lbnQgaXMgYHRvcGAgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlLlxuICBpZiAoaGFzaEZyYWdtZW50ID09PSAndG9wJykge1xuICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gIH1cblxuICAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gIHJldHVybiAoXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaEZyYWdtZW50KSA/P1xuICAgIC8vIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGEgbmFtZSwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZmlyc3QgZWxlbWVudCB3aXRoIHRoYXQgbmFtZS5cbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoRnJhZ21lbnQpWzBdXG4gIClcbn1cbmludGVyZmFjZSBTY3JvbGxBbmRGb2N1c0hhbmRsZXJQcm9wcyB7XG4gIGZvY3VzQW5kU2Nyb2xsUmVmOiBGb2N1c0FuZFNjcm9sbFJlZlxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxufVxuY2xhc3MgSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8U2Nyb2xsQW5kRm9jdXNIYW5kbGVyUHJvcHM+IHtcbiAgaGFuZGxlUG90ZW50aWFsU2Nyb2xsID0gKCkgPT4ge1xuICAgIC8vIEhhbmRsZSBzY3JvbGwgYW5kIGZvY3VzLCBpdCdzIG9ubHkgYXBwbGllZCBvbmNlIGluIHRoZSBmaXJzdCB1c2VFZmZlY3QgdGhhdCB0cmlnZ2VycyB0aGF0IGNoYW5nZWQuXG4gICAgY29uc3QgeyBmb2N1c0FuZFNjcm9sbFJlZiwgc2VnbWVudFBhdGggfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChmb2N1c0FuZFNjcm9sbFJlZi5hcHBseSkge1xuICAgICAgLy8gc2VnbWVudFBhdGhzIGlzIGFuIGFycmF5IG9mIHNlZ21lbnQgcGF0aHMgdGhhdCBzaG91bGQgYmUgc2Nyb2xsZWQgdG9cbiAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHNlZ21lbnQgcGF0aCBpcyBub3QgaW4gdGhlIGFycmF5LCB0aGUgc2Nyb2xsIGlzIG5vdCBhcHBsaWVkXG4gICAgICAvLyB1bmxlc3MgdGhlIGFycmF5IGlzIGVtcHR5LCBpbiB3aGljaCBjYXNlIHRoZSBzY3JvbGwgaXMgYWx3YXlzIGFwcGxpZWRcbiAgICAgIGlmIChcbiAgICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICAhZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzLnNvbWUoKHNjcm9sbFJlZlNlZ21lbnRQYXRoKSA9PlxuICAgICAgICAgIHNlZ21lbnRQYXRoLmV2ZXJ5KChzZWdtZW50LCBpbmRleCkgPT5cbiAgICAgICAgICAgIG1hdGNoU2VnbWVudChzZWdtZW50LCBzY3JvbGxSZWZTZWdtZW50UGF0aFtpbmRleF0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkb21Ob2RlOlxuICAgICAgICB8IFJldHVyblR5cGU8dHlwZW9mIGdldEhhc2hGcmFnbWVudERvbU5vZGU+XG4gICAgICAgIHwgUmV0dXJuVHlwZTx0eXBlb2YgZmluZERPTU5vZGU+ID0gbnVsbFxuICAgICAgY29uc3QgaGFzaEZyYWdtZW50ID0gZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50XG5cbiAgICAgIGlmIChoYXNoRnJhZ21lbnQpIHtcbiAgICAgICAgZG9tTm9kZSA9IGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50KVxuICAgICAgfVxuXG4gICAgICAvLyBgZmluZERPTU5vZGVgIGlzIHRyaWNreSBiZWNhdXNlIGl0IHJldHVybnMganVzdCB0aGUgZmlyc3QgY2hpbGQgaWYgdGhlIGNvbXBvbmVudCBpcyBhIGZyYWdtZW50LlxuICAgICAgLy8gVGhpcyBhbHJlYWR5IGNhdXNlZCBhIGJ1ZyB3aGVyZSB0aGUgZmlyc3QgY2hpbGQgd2FzIGEgPGxpbmsvPiBpbiBoZWFkLlxuICAgICAgaWYgKCFkb21Ob2RlKSB7XG4gICAgICAgIGRvbU5vZGUgPSBmaW5kRE9NTm9kZSh0aGlzKVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGVyZSBpcyBubyBET00gbm9kZSB0aGlzIGxheW91dC1yb3V0ZXIgbGV2ZWwgaXMgc2tpcHBlZC4gSXQnbGwgYmUgaGFuZGxlZCBoaWdoZXItdXAgaW4gdGhlIHRyZWUuXG4gICAgICBpZiAoIShkb21Ob2RlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIFZlcmlmeSBpZiB0aGUgZWxlbWVudCBpcyBhIEhUTUxFbGVtZW50IGFuZCBpZiB3ZSB3YW50IHRvIGNvbnNpZGVyIGl0IGZvciBzY3JvbGwgYmVoYXZpb3IuXG4gICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBza2lwcGVkLCB0cnkgdG8gc2VsZWN0IHRoZSBuZXh0IHNpYmxpbmcgYW5kIHRyeSBhZ2Fpbi5cbiAgICAgIHdoaWxlICghKGRvbU5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgfHwgc2hvdWxkU2tpcEVsZW1lbnQoZG9tTm9kZSkpIHtcbiAgICAgICAgLy8gTm8gc2libGluZ3MgZm91bmQgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEgYXJlIGZvdW5kLCBzbyBoYW5kbGUgc2Nyb2xsIGhpZ2hlciB1cCBpbiB0aGUgdHJlZSBpbnN0ZWFkLlxuICAgICAgICBpZiAoZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBkb21Ob2RlID0gZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgIH1cblxuICAgICAgLy8gU3RhdGUgaXMgbXV0YXRlZCB0byBlbnN1cmUgdGhhdCB0aGUgZm9jdXMgYW5kIHNjcm9sbCBpcyBhcHBsaWVkIG9ubHkgb25jZS5cbiAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5ID0gZmFsc2VcbiAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLmhhc2hGcmFnbWVudCA9IG51bGxcbiAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLnNlZ21lbnRQYXRocyA9IFtdXG5cbiAgICAgIGhhbmRsZVNtb290aFNjcm9sbChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIEluIGNhc2Ugb2YgaGFzaCBzY3JvbGwsIHdlIG9ubHkgbmVlZCB0byBzY3JvbGwgdGhlIGVsZW1lbnQgaW50byB2aWV3XG4gICAgICAgICAgaWYgKGhhc2hGcmFnbWVudCkge1xuICAgICAgICAgICAgOyhkb21Ob2RlIGFzIEhUTUxFbGVtZW50KS5zY3JvbGxJbnRvVmlldygpXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTdG9yZSB0aGUgY3VycmVudCB2aWV3cG9ydCBoZWlnaHQgYmVjYXVzZSByZWFkaW5nIGBjbGllbnRIZWlnaHRgIGNhdXNlcyBhIHJlZmxvdyxcbiAgICAgICAgICAvLyBhbmQgaXQgd29uJ3QgY2hhbmdlIGR1cmluZyB0aGlzIGZ1bmN0aW9uLlxuICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSBodG1sRWxlbWVudC5jbGllbnRIZWlnaHRcblxuICAgICAgICAgIC8vIElmIHRoZSBlbGVtZW50J3MgdG9wIGVkZ2UgaXMgYWxyZWFkeSBpbiB0aGUgdmlld3BvcnQsIGV4aXQgZWFybHkuXG4gICAgICAgICAgaWYgKHRvcE9mRWxlbWVudEluVmlld3BvcnQoZG9tTm9kZSBhcyBIVE1MRWxlbWVudCwgdmlld3BvcnRIZWlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBPdGhlcndpc2UsIHRyeSBzY3JvbGxpbmcgZ28gdGhlIHRvcCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIHBhZ2VzXG4gICAgICAgICAgLy8gc2Nyb2xsSW50b1ZpZXcoKSBjYWxsZWQgb24gYDxodG1sLz5gIGVsZW1lbnQgc2Nyb2xscyBob3Jpem9udGFsbHkgb24gY2hyb21lIGFuZCBmaXJlZm94ICh0aGF0IHNob3VsZG4ndCBoYXBwZW4pXG4gICAgICAgICAgLy8gV2UgY291bGQgdXNlIGl0IHRvIHNjcm9sbCBob3Jpem9udGFsbHkgZm9sbG93aW5nIFJUTCBidXQgdGhhdCBhbHNvIHNlZW1zIHRvIGJlIGJyb2tlbiAtIGl0IHdpbGwgYWx3YXlzIHNjcm9sbCBsZWZ0XG4gICAgICAgICAgLy8gc2Nyb2xsTGVmdCA9IDAgYWxzbyBzZWVtcyB0byBpZ25vcmUgUlRMIGFuZCBtYW51YWxseSBjaGVja2luZyBmb3IgUlRMIGlzIHRvbyBtdWNoIGhhc3NsZSBzbyB3ZSB3aWxsIHNjcm9sbCBqdXN0IHZlcnRpY2FsbHlcbiAgICAgICAgICBodG1sRWxlbWVudC5zY3JvbGxUb3AgPSAwXG5cbiAgICAgICAgICAvLyBTY3JvbGwgdG8gZG9tTm9kZSBpZiBkb21Ob2RlIGlzIG5vdCBpbiB2aWV3cG9ydCB3aGVuIHNjcm9sbGVkIHRvIHRvcCBvZiBkb2N1bWVudFxuICAgICAgICAgIGlmICghdG9wT2ZFbGVtZW50SW5WaWV3cG9ydChkb21Ob2RlIGFzIEhUTUxFbGVtZW50LCB2aWV3cG9ydEhlaWdodCkpIHtcbiAgICAgICAgICAgIC8vIFNjcm9sbCBpbnRvIHZpZXcgZG9lc24ndCBzY3JvbGwgaG9yaXpvbnRhbGx5IGJ5IGRlZmF1bHQgd2hlbiBub3QgbmVlZGVkXG4gICAgICAgICAgICA7KGRvbU5vZGUgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbEludG9WaWV3KClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBXZSB3aWxsIGZvcmNlIGxheW91dCBieSBxdWVyeWluZyBkb21Ob2RlIHBvc2l0aW9uXG4gICAgICAgICAgZG9udEZvcmNlTGF5b3V0OiB0cnVlLFxuICAgICAgICAgIG9ubHlIYXNoQ2hhbmdlOiBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSxcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICAvLyBNdXRhdGUgYWZ0ZXIgc2Nyb2xsaW5nIHNvIHRoYXQgaXQgY2FuIGJlIHJlYWQgYnkgYGhhbmRsZVNtb290aFNjcm9sbGBcbiAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLm9ubHlIYXNoQ2hhbmdlID0gZmFsc2VcblxuICAgICAgLy8gU2V0IGZvY3VzIG9uIHRoZSBlbGVtZW50XG4gICAgICBkb21Ob2RlLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpXG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgLy8gQmVjYXVzZSB0aGlzIHByb3BlcnR5IGlzIG92ZXJ3cml0dGVuIGluIGhhbmRsZVBvdGVudGlhbFNjcm9sbCBpdCdzIGZpbmUgdG8gYWx3YXlzIHJ1biBpdCB3aGVuIHRydWUgYXMgaXQnbGwgYmUgc2V0IHRvIGZhbHNlIGZvciBzdWJzZXF1ZW50IHJlbmRlcnMuXG4gICAgaWYgKHRoaXMucHJvcHMuZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkpIHtcbiAgICAgIHRoaXMuaGFuZGxlUG90ZW50aWFsU2Nyb2xsKClcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG5mdW5jdGlvbiBTY3JvbGxBbmRGb2N1c0hhbmRsZXIoe1xuICBzZWdtZW50UGF0aCxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPElubmVyU2Nyb2xsQW5kRm9jdXNIYW5kbGVyXG4gICAgICBzZWdtZW50UGF0aD17c2VnbWVudFBhdGh9XG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZj17Y29udGV4dC5mb2N1c0FuZFNjcm9sbFJlZn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Jbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlcj5cbiAgKVxufVxuXG4vKipcbiAqIElubmVyTGF5b3V0Um91dGVyIGhhbmRsZXMgcmVuZGVyaW5nIHRoZSBwcm92aWRlZCBzZWdtZW50IGJhc2VkIG9uIHRoZSBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gSW5uZXJMYXlvdXRSb3V0ZXIoe1xuICBwYXJhbGxlbFJvdXRlcktleSxcbiAgdXJsLFxuICBjaGlsZE5vZGVzLFxuICBzZWdtZW50UGF0aCxcbiAgdHJlZSxcbiAgLy8gVE9ETy1BUFA6IGltcGxlbWVudCBgPE9mZnNjcmVlbj5gIHdoZW4gYXZhaWxhYmxlLlxuICAvLyBpc0FjdGl2ZSxcbiAgY2FjaGVLZXksXG59OiB7XG4gIHBhcmFsbGVsUm91dGVyS2V5OiBzdHJpbmdcbiAgdXJsOiBzdHJpbmdcbiAgY2hpbGROb2RlczogQ2hpbGRTZWdtZW50TWFwXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBpc0FjdGl2ZTogYm9vbGVhblxuICBjYWNoZUtleTogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlUm91dGVyQ2FjaGVLZXk+XG59KSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkJylcbiAgfVxuXG4gIGNvbnN0IHsgY2hhbmdlQnlTZXJ2ZXJSZXNwb25zZSwgdHJlZTogZnVsbFRyZWUgfSA9IGNvbnRleHRcblxuICAvLyBSZWFkIHNlZ21lbnQgcGF0aCBmcm9tIHRoZSBwYXJhbGxlbCByb3V0ZXIgY2FjaGUgbm9kZS5cbiAgbGV0IGNoaWxkTm9kZSA9IGNoaWxkTm9kZXMuZ2V0KGNhY2hlS2V5KVxuXG4gIC8vIFdoZW4gZGF0YSBpcyBub3QgYXZhaWxhYmxlIGR1cmluZyByZW5kZXJpbmcgY2xpZW50LXNpZGUgd2UgbmVlZCB0byBmZXRjaFxuICAvLyBpdCBmcm9tIHRoZSBzZXJ2ZXIuXG4gIGlmIChjaGlsZE5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IG5ld0xhenlDYWNoZU5vZGU6IExhenlDYWNoZU5vZGUgPSB7XG4gICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgIHJzYzogbnVsbCxcbiAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgaGVhZDogbnVsbCxcbiAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKCksXG4gICAgICBsb2FkaW5nOiBudWxsLFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZsaWdodCBkYXRhIGZldGNoIGtpY2tlZCBvZmYgZHVyaW5nIHJlbmRlciBhbmQgcHV0IGludG8gdGhlIGNhY2hlLlxuICAgICAqL1xuICAgIGNoaWxkTm9kZSA9IG5ld0xhenlDYWNoZU5vZGVcbiAgICBjaGlsZE5vZGVzLnNldChjYWNoZUtleSwgbmV3TGF6eUNhY2hlTm9kZSlcbiAgfVxuXG4gIC8vIGByc2NgIHJlcHJlc2VudHMgdGhlIHJlbmRlcmFibGUgbm9kZSBmb3IgdGhpcyBzZWdtZW50LlxuXG4gIC8vIElmIHRoaXMgc2VnbWVudCBoYXMgYSBgcHJlZmV0Y2hSc2NgLCBpdCdzIHRoZSBzdGF0aWNhbGx5IHByZWZldGNoZWQgZGF0YS5cbiAgLy8gV2Ugc2hvdWxkIHVzZSB0aGF0IG9uIGluaXRpYWwgcmVuZGVyIGluc3RlYWQgb2YgYHJzY2AuIFRoZW4gd2UnbGwgc3dpdGNoXG4gIC8vIHRvIGByc2NgIHdoZW4gdGhlIGR5bmFtaWMgcmVzcG9uc2Ugc3RyZWFtcyBpbi5cbiAgLy9cbiAgLy8gSWYgbm8gcHJlZmV0Y2ggZGF0YSBpcyBhdmFpbGFibGUsIHRoZW4gd2UgZ28gc3RyYWlnaHQgdG8gcmVuZGVyaW5nIGByc2NgLlxuICBjb25zdCByZXNvbHZlZFByZWZldGNoUnNjID1cbiAgICBjaGlsZE5vZGUucHJlZmV0Y2hSc2MgIT09IG51bGwgPyBjaGlsZE5vZGUucHJlZmV0Y2hSc2MgOiBjaGlsZE5vZGUucnNjXG5cbiAgLy8gV2UgdXNlIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBoYW5kbGUgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kXG4gIC8vIGZpbmFsIHZhbHVlcy4gVGhlIHNlY29uZCBhcmd1bWVudCBpcyByZXR1cm5lZCBvbiBpbml0aWFsIHJlbmRlciwgdGhlbiBpdFxuICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICAvL1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gYHVzZURlZmVycmVkVmFsdWVgIGlzIG9ubHlcbiAgLy8gYXZhaWxhYmxlIGluIHRoZSBleHBlcmltZW50YWwgYnVpbGRzLiBXaGVuIGl0cyBkaXNhYmxlZCwgaXQgd2lsbCBhbHdheXNcbiAgLy8gcmV0dXJuIGByc2NgLlxuICBjb25zdCByc2M6IGFueSA9IHVzZURlZmVycmVkVmFsdWUoY2hpbGROb2RlLnJzYywgcmVzb2x2ZWRQcmVmZXRjaFJzYylcblxuICAvLyBgcnNjYCBpcyBlaXRoZXIgYSBSZWFjdCBub2RlIG9yIGEgcHJvbWlzZSBmb3IgYSBSZWFjdCBub2RlLCBleGNlcHQgd2VcbiAgLy8gc3BlY2lhbCBjYXNlIGBudWxsYCB0byByZXByZXNlbnQgdGhhdCB0aGlzIHNlZ21lbnQncyBkYXRhIGlzIG1pc3NpbmcuIElmXG4gIC8vIGl0J3MgYSBwcm9taXNlLCB3ZSBuZWVkIHRvIHVud3JhcCBpdCBzbyB3ZSBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZVxuICAvLyBkYXRhIGlzIG1pc3NpbmcuXG4gIGNvbnN0IHJlc29sdmVkUnNjOiBSZWFjdC5SZWFjdE5vZGUgPVxuICAgIHR5cGVvZiByc2MgPT09ICdvYmplY3QnICYmIHJzYyAhPT0gbnVsbCAmJiB0eXBlb2YgcnNjLnRoZW4gPT09ICdmdW5jdGlvbidcbiAgICAgID8gdXNlKHJzYylcbiAgICAgIDogcnNjXG5cbiAgaWYgKCFyZXNvbHZlZFJzYykge1xuICAgIC8vIFRoZSBkYXRhIGZvciB0aGlzIHNlZ21lbnQgaXMgbm90IGF2YWlsYWJsZSwgYW5kIHRoZXJlJ3Mgbm8gcGVuZGluZ1xuICAgIC8vIG5hdmlnYXRpb24gdGhhdCB3aWxsIGJlIGFibGUgdG8gZnVsZmlsbCBpdC4gV2UgbmVlZCB0byBmZXRjaCBtb3JlIGZyb21cbiAgICAvLyB0aGUgc2VydmVyIGFuZCBwYXRjaCB0aGUgY2FjaGUuXG5cbiAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGFscmVhZHkgYSBwZW5kaW5nIHJlcXVlc3QuXG4gICAgbGV0IGxhenlEYXRhID0gY2hpbGROb2RlLmxhenlEYXRhXG4gICAgaWYgKGxhenlEYXRhID09PSBudWxsKSB7XG4gICAgICAvKipcbiAgICAgICAqIFJvdXRlciBzdGF0ZSB3aXRoIHJlZmV0Y2ggbWFya2VyIGFkZGVkXG4gICAgICAgKi9cbiAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgIGNvbnN0IHJlZmV0Y2hUcmVlID0gd2Fsa0FkZFJlZmV0Y2goWycnLCAuLi5zZWdtZW50UGF0aF0sIGZ1bGxUcmVlKVxuICAgICAgY29uc3QgaW5jbHVkZU5leHRVcmwgPSBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUoZnVsbFRyZWUpXG4gICAgICBjaGlsZE5vZGUubGF6eURhdGEgPSBsYXp5RGF0YSA9IGZldGNoU2VydmVyUmVzcG9uc2UoXG4gICAgICAgIG5ldyBVUkwodXJsLCBsb2NhdGlvbi5vcmlnaW4pLFxuICAgICAgICB7XG4gICAgICAgICAgZmxpZ2h0Um91dGVyU3RhdGU6IHJlZmV0Y2hUcmVlLFxuICAgICAgICAgIG5leHRVcmw6IGluY2x1ZGVOZXh0VXJsID8gY29udGV4dC5uZXh0VXJsIDogbnVsbCxcbiAgICAgICAgfVxuICAgICAgKS50aGVuKChzZXJ2ZXJSZXNwb25zZSkgPT4ge1xuICAgICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICAgIGNoYW5nZUJ5U2VydmVyUmVzcG9uc2Uoe1xuICAgICAgICAgICAgcHJldmlvdXNUcmVlOiBmdWxsVHJlZSxcbiAgICAgICAgICAgIHNlcnZlclJlc3BvbnNlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHNlcnZlclJlc3BvbnNlXG4gICAgICB9KVxuICAgIH1cbiAgICAvLyBTdXNwZW5kIGluZmluaXRlbHkgYXMgYGNoYW5nZUJ5U2VydmVyUmVzcG9uc2VgIHdpbGwgY2F1c2UgYSBkaWZmZXJlbnQgcGFydCBvZiB0aGUgdHJlZSB0byBiZSByZW5kZXJlZC5cbiAgICAvLyBBIGZhbHNleSBgcmVzb2x2ZWRSc2NgIGluZGljYXRlcyBtaXNzaW5nIGRhdGEgLS0gd2Ugc2hvdWxkIG5vdCBjb21taXQgdGhhdCBicmFuY2gsIGFuZCB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBkYXRhIHRvIGFycml2ZS5cbiAgICB1c2UodW5yZXNvbHZlZFRoZW5hYmxlKSBhcyBuZXZlclxuICB9XG5cbiAgLy8gSWYgd2UgZ2V0IHRvIHRoaXMgcG9pbnQsIHRoZW4gd2Uga25vdyB3ZSBoYXZlIHNvbWV0aGluZyB3ZSBjYW4gcmVuZGVyLlxuICBjb25zdCBzdWJ0cmVlID0gKFxuICAgIC8vIFRoZSBsYXlvdXQgcm91dGVyIGNvbnRleHQgbmFycm93cyBkb3duIHRyZWUgYW5kIGNoaWxkTm9kZXMgYXQgZWFjaCBsZXZlbC5cbiAgICA8TGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgdHJlZTogdHJlZVsxXVtwYXJhbGxlbFJvdXRlcktleV0sXG4gICAgICAgIGNoaWxkTm9kZXM6IGNoaWxkTm9kZS5wYXJhbGxlbFJvdXRlcyxcbiAgICAgICAgLy8gVE9ETy1BUFA6IG92ZXJyaWRpbmcgb2YgdXJsIGZvciBwYXJhbGxlbCByb3V0ZXNcbiAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgIGxvYWRpbmc6IGNoaWxkTm9kZS5sb2FkaW5nLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7cmVzb2x2ZWRSc2N9XG4gICAgPC9MYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICApXG4gIC8vIEVuc3VyZSByb290IGxheW91dCBpcyBub3Qgd3JhcHBlZCBpbiBhIGRpdiBhcyB0aGUgcm9vdCBsYXlvdXQgcmVuZGVycyBgPGh0bWw+YFxuICByZXR1cm4gc3VidHJlZVxufVxuXG4vKipcbiAqIFJlbmRlcnMgc3VzcGVuc2UgYm91bmRhcnkgd2l0aCB0aGUgcHJvdmlkZWQgXCJsb2FkaW5nXCIgcHJvcGVydHkgYXMgdGhlIGZhbGxiYWNrLlxuICogSWYgbm8gbG9hZGluZyBwcm9wZXJ0eSBpcyBwcm92aWRlZCBpdCByZW5kZXJzIHRoZSBjaGlsZHJlbiB3aXRob3V0IGEgc3VzcGVuc2UgYm91bmRhcnkuXG4gKi9cbmZ1bmN0aW9uIExvYWRpbmdCb3VuZGFyeSh7XG4gIGxvYWRpbmcsXG4gIGNoaWxkcmVuLFxufToge1xuICBsb2FkaW5nOiBMb2FkaW5nTW9kdWxlRGF0YSB8IFByb21pc2U8TG9hZGluZ01vZHVsZURhdGE+XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0pOiBKU1guRWxlbWVudCB7XG4gIC8vIElmIGxvYWRpbmcgaXMgYSBwcm9taXNlLCB1bndyYXAgaXQuIFRoaXMgaGFwcGVucyBpbiBjYXNlcyB3aGVyZSB3ZSBoYXZlbid0XG4gIC8vIHlldCByZWNlaXZlZCB0aGUgbG9hZGluZyBkYXRhIGZyb20gdGhlIHNlcnZlciDigJQgd2hpY2ggaW5jbHVkZXMgd2hldGhlciBvclxuICAvLyBub3QgdGhpcyBsYXlvdXQgaGFzIGEgbG9hZGluZyBjb21wb25lbnQgYXQgYWxsLlxuICAvL1xuICAvLyBJdCdzIE9LIHRvIHN1c3BlbmQgaGVyZSBpbnN0ZWFkIG9mIGluc2lkZSB0aGUgZmFsbGJhY2sgYmVjYXVzZSB0aGlzXG4gIC8vIHByb21pc2Ugd2lsbCByZXNvbHZlIHNpbXVsdGFuZW91c2x5IHdpdGggdGhlIGRhdGEgZm9yIHRoZSBzZWdtZW50IGl0c2VsZi5cbiAgLy8gU28gaXQgd2lsbCBuZXZlciBzdXNwZW5kIGZvciBsb25nZXIgdGhhbiBpdCB3b3VsZCBoYXZlIGlmIHdlIGRpZG4ndCB1c2VcbiAgLy8gYSBTdXNwZW5zZSBmYWxsYmFjayBhdCBhbGwuXG4gIGxldCBsb2FkaW5nTW9kdWxlRGF0YVxuICBpZiAoXG4gICAgdHlwZW9mIGxvYWRpbmcgPT09ICdvYmplY3QnICYmXG4gICAgbG9hZGluZyAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiAobG9hZGluZyBhcyBhbnkpLnRoZW4gPT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgY29uc3QgcHJvbWlzZUZvckxvYWRpbmcgPSBsb2FkaW5nIGFzIFByb21pc2U8TG9hZGluZ01vZHVsZURhdGE+XG4gICAgbG9hZGluZ01vZHVsZURhdGEgPSB1c2UocHJvbWlzZUZvckxvYWRpbmcpXG4gIH0gZWxzZSB7XG4gICAgbG9hZGluZ01vZHVsZURhdGEgPSBsb2FkaW5nIGFzIExvYWRpbmdNb2R1bGVEYXRhXG4gIH1cblxuICBpZiAobG9hZGluZ01vZHVsZURhdGEpIHtcbiAgICBjb25zdCBsb2FkaW5nUnNjID0gbG9hZGluZ01vZHVsZURhdGFbMF1cbiAgICBjb25zdCBsb2FkaW5nU3R5bGVzID0gbG9hZGluZ01vZHVsZURhdGFbMV1cbiAgICBjb25zdCBsb2FkaW5nU2NyaXB0cyA9IGxvYWRpbmdNb2R1bGVEYXRhWzJdXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdXNwZW5zZVxuICAgICAgICBmYWxsYmFjaz17XG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHtsb2FkaW5nU3R5bGVzfVxuICAgICAgICAgICAge2xvYWRpbmdTY3JpcHRzfVxuICAgICAgICAgICAge2xvYWRpbmdSc2N9XG4gICAgICAgICAgPC8+XG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TdXNwZW5zZT5cbiAgICApXG4gIH1cblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+XG59XG5cbi8qKlxuICogT3V0ZXJMYXlvdXRSb3V0ZXIgaGFuZGxlcyB0aGUgY3VycmVudCBzZWdtZW50IGFzIHdlbGwgYXMgPE9mZnNjcmVlbj4gcmVuZGVyaW5nIG9mIG90aGVyIHNlZ21lbnRzLlxuICogSXQgY2FuIGJlIHJlbmRlcmVkIG5leHQgdG8gZWFjaCBvdGhlciB3aXRoIGEgZGlmZmVyZW50IGBwYXJhbGxlbFJvdXRlcktleWAsIGFsbG93aW5nIGZvciBQYXJhbGxlbCByb3V0ZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE91dGVyTGF5b3V0Um91dGVyKHtcbiAgcGFyYWxsZWxSb3V0ZXJLZXksXG4gIHNlZ21lbnRQYXRoLFxuICBlcnJvcixcbiAgZXJyb3JTdHlsZXMsXG4gIGVycm9yU2NyaXB0cyxcbiAgdGVtcGxhdGVTdHlsZXMsXG4gIHRlbXBsYXRlU2NyaXB0cyxcbiAgdGVtcGxhdGUsXG4gIG5vdEZvdW5kLFxuICBmb3JiaWRkZW4sXG4gIHVuYXV0aG9yaXplZCxcbn06IHtcbiAgcGFyYWxsZWxSb3V0ZXJLZXk6IHN0cmluZ1xuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgZXJyb3I6IEVycm9yQ29tcG9uZW50IHwgdW5kZWZpbmVkXG4gIGVycm9yU3R5bGVzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgZXJyb3JTY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdGVtcGxhdGVTdHlsZXM6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICB0ZW1wbGF0ZVNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICB0ZW1wbGF0ZTogUmVhY3QuUmVhY3ROb2RlXG4gIG5vdEZvdW5kOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgZm9yYmlkZGVuOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdW5hdXRob3JpemVkOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbn0pIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoTGF5b3V0Um91dGVyQ29udGV4dClcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZXhwZWN0ZWQgbGF5b3V0IHJvdXRlciB0byBiZSBtb3VudGVkJylcbiAgfVxuXG4gIGNvbnN0IHsgY2hpbGROb2RlcywgdHJlZSwgdXJsLCBsb2FkaW5nIH0gPSBjb250ZXh0XG5cbiAgLy8gR2V0IHRoZSBjdXJyZW50IHBhcmFsbGVsUm91dGVyIGNhY2hlIG5vZGVcbiAgbGV0IGNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlciA9IGNoaWxkTm9kZXMuZ2V0KHBhcmFsbGVsUm91dGVyS2V5KVxuICAvLyBJZiB0aGUgcGFyYWxsZWwgcm91dGVyIGNhY2hlIG5vZGUgZG9lcyBub3QgZXhpc3QgeWV0LCBjcmVhdGUgaXQuXG4gIC8vIFRoaXMgd3JpdGVzIHRvIHRoZSBjYWNoZSB3aGVuIHRoZXJlIGlzIG5vIGl0ZW0gaW4gdGhlIGNhY2hlIHlldC4gSXQgbmV2ZXIgKm92ZXJ3cml0ZXMqIGV4aXN0aW5nIGNhY2hlIGl0ZW1zIHdoaWNoIGlzIHdoeSBpdCdzIHNhZmUgaW4gY29uY3VycmVudCBtb2RlLlxuICBpZiAoIWNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlcikge1xuICAgIGNoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlciA9IG5ldyBNYXAoKVxuICAgIGNoaWxkTm9kZXMuc2V0KHBhcmFsbGVsUm91dGVyS2V5LCBjaGlsZE5vZGVzRm9yUGFyYWxsZWxSb3V0ZXIpXG4gIH1cblxuICAvLyBHZXQgdGhlIGFjdGl2ZSBzZWdtZW50IGluIHRoZSB0cmVlXG4gIC8vIFRoZSByZWFzb24gYXJyYXlzIGFyZSB1c2VkIGluIHRoZSBkYXRhIGZvcm1hdCBpcyB0aGF0IHRoZXNlIGFyZSB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBzZXJ2ZXIgdG8gdGhlIGJyb3dzZXIgc28gaXQncyBvcHRpbWl6ZWQgdG8gc2F2ZSBieXRlcy5cbiAgY29uc3QgdHJlZVNlZ21lbnQgPSB0cmVlWzFdW3BhcmFsbGVsUm91dGVyS2V5XVswXVxuXG4gIC8vIElmIHNlZ21lbnQgaXMgYW4gYXJyYXkgaXQncyBhIGR5bmFtaWMgcm91dGUgYW5kIHdlIHdhbnQgdG8gcmVhZCB0aGUgZHluYW1pYyByb3V0ZSB2YWx1ZSBhcyB0aGUgc2VnbWVudCB0byBnZXQgZnJvbSB0aGUgY2FjaGUuXG4gIGNvbnN0IGN1cnJlbnRDaGlsZFNlZ21lbnRWYWx1ZSA9IGdldFNlZ21lbnRWYWx1ZSh0cmVlU2VnbWVudClcblxuICAvKipcbiAgICogRGVjaWRlcyB3aGljaCBzZWdtZW50cyB0byBrZWVwIHJlbmRlcmluZywgYWxsIHNlZ21lbnRzIHRoYXQgYXJlIG5vdCBhY3RpdmUgd2lsbCBiZSB3cmFwcGVkIGluIGA8T2Zmc2NyZWVuPmAuXG4gICAqL1xuICAvLyBUT0RPLUFQUDogQWRkIGhhbmRsaW5nIG9mIGA8T2Zmc2NyZWVuPmAgd2hlbiBpdCdzIGF2YWlsYWJsZS5cbiAgY29uc3QgcHJlc2VydmVkU2VnbWVudHM6IFNlZ21lbnRbXSA9IFt0cmVlU2VnbWVudF1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cHJlc2VydmVkU2VnbWVudHMubWFwKChwcmVzZXJ2ZWRTZWdtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXNlcnZlZFNlZ21lbnRWYWx1ZSA9IGdldFNlZ21lbnRWYWx1ZShwcmVzZXJ2ZWRTZWdtZW50KVxuICAgICAgICBjb25zdCBjYWNoZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHByZXNlcnZlZFNlZ21lbnQpXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAvKlxuICAgICAgICAgICAgLSBFcnJvciBib3VuZGFyeVxuICAgICAgICAgICAgICAtIE9ubHkgcmVuZGVycyBlcnJvciBib3VuZGFyeSBpZiBlcnJvciBjb21wb25lbnQgaXMgcHJvdmlkZWQuXG4gICAgICAgICAgICAgIC0gUmVuZGVyZWQgZm9yIGVhY2ggc2VnbWVudCB0byBlbnN1cmUgdGhleSBoYXZlIHRoZWlyIG93biBlcnJvciBzdGF0ZS5cbiAgICAgICAgICAgIC0gTG9hZGluZyBib3VuZGFyeVxuICAgICAgICAgICAgICAtIE9ubHkgcmVuZGVycyBzdXNwZW5zZSBib3VuZGFyeSBpZiBsb2FkaW5nIGNvbXBvbmVudHMgaXMgcHJvdmlkZWQuXG4gICAgICAgICAgICAgIC0gUmVuZGVyZWQgZm9yIGVhY2ggc2VnbWVudCB0byBlbnN1cmUgdGhleSBoYXZlIHRoZWlyIG93biBsb2FkaW5nIHN0YXRlLlxuICAgICAgICAgICAgICAtIFBhc3NlZCB0byB0aGUgcm91dGVyIGR1cmluZyByZW5kZXJpbmcgdG8gZW5zdXJlIGl0IGNhbiBiZSBpbW1lZGlhdGVseSByZW5kZXJlZCB3aGVuIHN1c3BlbmRpbmcgb24gYSBGbGlnaHQgZmV0Y2guXG4gICAgICAgICAgKi9cbiAgICAgICAgICA8VGVtcGxhdGVDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgICBrZXk9e2NyZWF0ZVJvdXRlckNhY2hlS2V5KHByZXNlcnZlZFNlZ21lbnQsIHRydWUpfVxuICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICA8U2Nyb2xsQW5kRm9jdXNIYW5kbGVyIHNlZ21lbnRQYXRoPXtzZWdtZW50UGF0aH0+XG4gICAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnlcbiAgICAgICAgICAgICAgICAgIGVycm9yQ29tcG9uZW50PXtlcnJvcn1cbiAgICAgICAgICAgICAgICAgIGVycm9yU3R5bGVzPXtlcnJvclN0eWxlc31cbiAgICAgICAgICAgICAgICAgIGVycm9yU2NyaXB0cz17ZXJyb3JTY3JpcHRzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxMb2FkaW5nQm91bmRhcnkgbG9hZGluZz17bG9hZGluZ30+XG4gICAgICAgICAgICAgICAgICAgIDxIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeVxuICAgICAgICAgICAgICAgICAgICAgIG5vdEZvdW5kPXtub3RGb3VuZH1cbiAgICAgICAgICAgICAgICAgICAgICBmb3JiaWRkZW49e2ZvcmJpZGRlbn1cbiAgICAgICAgICAgICAgICAgICAgICB1bmF1dGhvcml6ZWQ9e3VuYXV0aG9yaXplZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZWRpcmVjdEJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPElubmVyTGF5b3V0Um91dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFsbGVsUm91dGVyS2V5PXtwYXJhbGxlbFJvdXRlcktleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsPXt1cmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWU9e3RyZWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkTm9kZXM9e2NoaWxkTm9kZXNGb3JQYXJhbGxlbFJvdXRlciF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRQYXRoPXtzZWdtZW50UGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXk9e2NhY2hlS2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENoaWxkU2VnbWVudFZhbHVlID09PSBwcmVzZXJ2ZWRTZWdtZW50VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L1JlZGlyZWN0Qm91bmRhcnk+XG4gICAgICAgICAgICAgICAgICAgIDwvSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk+XG4gICAgICAgICAgICAgICAgICA8L0xvYWRpbmdCb3VuZGFyeT5cbiAgICAgICAgICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICAgICAgICAgIDwvU2Nyb2xsQW5kRm9jdXNIYW5kbGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0ZW1wbGF0ZVN0eWxlc31cbiAgICAgICAgICAgIHt0ZW1wbGF0ZVNjcmlwdHN9XG4gICAgICAgICAgICB7dGVtcGxhdGV9XG4gICAgICAgICAgPC9UZW1wbGF0ZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibmFtZXMiOlsiT3V0ZXJMYXlvdXRSb3V0ZXIiLCJ3YWxrQWRkUmVmZXRjaCIsInNlZ21lbnRQYXRoVG9XYWxrIiwidHJlZVRvUmVjcmVhdGUiLCJzZWdtZW50IiwicGFyYWxsZWxSb3V0ZUtleSIsImlzTGFzdCIsImxlbmd0aCIsIm1hdGNoU2VnbWVudCIsImhhc093blByb3BlcnR5Iiwic3ViVHJlZSIsInVuZGVmaW5lZCIsInNsaWNlIiwiX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFIiwiUmVhY3RET00iLCJmaW5kRE9NTm9kZSIsImluc3RhbmNlIiwid2luZG93IiwiaW50ZXJuYWxfcmVhY3RET01maW5kRE9NTm9kZSIsInJlY3RQcm9wZXJ0aWVzIiwic2hvdWxkU2tpcEVsZW1lbnQiLCJlbGVtZW50IiwiaW5jbHVkZXMiLCJnZXRDb21wdXRlZFN0eWxlIiwicG9zaXRpb24iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsInJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJldmVyeSIsIml0ZW0iLCJ0b3BPZkVsZW1lbnRJblZpZXdwb3J0Iiwidmlld3BvcnRIZWlnaHQiLCJ0b3AiLCJnZXRIYXNoRnJhZ21lbnREb21Ob2RlIiwiaGFzaEZyYWdtZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiZ2V0RWxlbWVudEJ5SWQiLCJnZXRFbGVtZW50c0J5TmFtZSIsIklubmVyU2Nyb2xsQW5kRm9jdXNIYW5kbGVyIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb21wb25lbnREaWRNb3VudCIsImhhbmRsZVBvdGVudGlhbFNjcm9sbCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByb3BzIiwiZm9jdXNBbmRTY3JvbGxSZWYiLCJhcHBseSIsInJlbmRlciIsImNoaWxkcmVuIiwic2VnbWVudFBhdGgiLCJzZWdtZW50UGF0aHMiLCJzb21lIiwic2Nyb2xsUmVmU2VnbWVudFBhdGgiLCJpbmRleCIsImRvbU5vZGUiLCJFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJuZXh0RWxlbWVudFNpYmxpbmciLCJoYW5kbGVTbW9vdGhTY3JvbGwiLCJzY3JvbGxJbnRvVmlldyIsImh0bWxFbGVtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsVG9wIiwiZG9udEZvcmNlTGF5b3V0Iiwib25seUhhc2hDaGFuZ2UiLCJmb2N1cyIsIlNjcm9sbEFuZEZvY3VzSGFuZGxlciIsImNvbnRleHQiLCJ1c2VDb250ZXh0IiwiR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCIsIkVycm9yIiwiSW5uZXJMYXlvdXRSb3V0ZXIiLCJwYXJhbGxlbFJvdXRlcktleSIsInVybCIsImNoaWxkTm9kZXMiLCJ0cmVlIiwiY2FjaGVLZXkiLCJjaGFuZ2VCeVNlcnZlclJlc3BvbnNlIiwiZnVsbFRyZWUiLCJjaGlsZE5vZGUiLCJnZXQiLCJuZXdMYXp5Q2FjaGVOb2RlIiwibGF6eURhdGEiLCJyc2MiLCJwcmVmZXRjaFJzYyIsImhlYWQiLCJwcmVmZXRjaEhlYWQiLCJwYXJhbGxlbFJvdXRlcyIsIk1hcCIsImxvYWRpbmciLCJzZXQiLCJyZXNvbHZlZFByZWZldGNoUnNjIiwidXNlRGVmZXJyZWRWYWx1ZSIsInJlc29sdmVkUnNjIiwidGhlbiIsInVzZSIsInJlZmV0Y2hUcmVlIiwiaW5jbHVkZU5leHRVcmwiLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiVVJMIiwibG9jYXRpb24iLCJvcmlnaW4iLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIm5leHRVcmwiLCJzZXJ2ZXJSZXNwb25zZSIsInN0YXJ0VHJhbnNpdGlvbiIsInByZXZpb3VzVHJlZSIsInVucmVzb2x2ZWRUaGVuYWJsZSIsInN1YnRyZWUiLCJMYXlvdXRSb3V0ZXJDb250ZXh0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsIkxvYWRpbmdCb3VuZGFyeSIsImxvYWRpbmdNb2R1bGVEYXRhIiwicHJvbWlzZUZvckxvYWRpbmciLCJsb2FkaW5nUnNjIiwibG9hZGluZ1N0eWxlcyIsImxvYWRpbmdTY3JpcHRzIiwiU3VzcGVuc2UiLCJmYWxsYmFjayIsImVycm9yIiwiZXJyb3JTdHlsZXMiLCJlcnJvclNjcmlwdHMiLCJ0ZW1wbGF0ZVN0eWxlcyIsInRlbXBsYXRlU2NyaXB0cyIsInRlbXBsYXRlIiwibm90Rm91bmQiLCJmb3JiaWRkZW4iLCJ1bmF1dGhvcml6ZWQiLCJjaGlsZE5vZGVzRm9yUGFyYWxsZWxSb3V0ZXIiLCJ0cmVlU2VnbWVudCIsImN1cnJlbnRDaGlsZFNlZ21lbnRWYWx1ZSIsImdldFNlZ21lbnRWYWx1ZSIsInByZXNlcnZlZFNlZ21lbnRzIiwibWFwIiwicHJlc2VydmVkU2VnbWVudCIsInByZXNlcnZlZFNlZ21lbnRWYWx1ZSIsImNyZWF0ZVJvdXRlckNhY2hlS2V5IiwiVGVtcGxhdGVDb250ZXh0IiwiRXJyb3JCb3VuZGFyeSIsImVycm9yQ29tcG9uZW50IiwiSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkiLCJSZWRpcmVjdEJvdW5kYXJ5IiwiaXNBY3RpdmUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/layout-router.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/match-segments.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/match-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 canSegmentBeOverridden: function() {\n return canSegmentBeOverridden;\n },\n matchSegment: function() {\n return matchSegment;\n }\n});\nconst _getsegmentparam = __webpack_require__(/*! ../../server/app-render/get-segment-param */ \"(ssr)/./node_modules/next/dist/server/app-render/get-segment-param.js\");\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};\nconst canSegmentBeOverridden = (existingSegment, segment)=>{\n var _getSegmentParam;\n if (Array.isArray(existingSegment) || !Array.isArray(segment)) {\n return false;\n }\n return ((_getSegmentParam = (0, _getsegmentparam.getSegmentParam)(existingSegment)) == null ? void 0 : _getSegmentParam.param) === segment[0];\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXlCYUEsc0JBQXNCO2VBQXRCQTs7SUF0QkFDLFlBQVk7ZUFBWkE7Ozs2Q0FIbUI7QUFHekIsTUFBTUEsZUFBZSxDQUMxQkMsaUJBQ0FDO0lBRUEsb0NBQW9DO0lBQ3BDLElBQUksT0FBT0Qsb0JBQW9CLFVBQVU7UUFDdkMsSUFBSSxPQUFPQyxZQUFZLFVBQVU7WUFDL0Isd0NBQXdDO1lBQ3hDLE9BQU9ELG9CQUFvQkM7UUFDN0I7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJLE9BQU9BLFlBQVksVUFBVTtRQUMvQixPQUFPO0lBQ1Q7SUFDQSxPQUFPRCxlQUFlLENBQUMsRUFBRSxLQUFLQyxPQUFPLENBQUMsRUFBRSxJQUFJRCxlQUFlLENBQUMsRUFBRSxLQUFLQyxPQUFPLENBQUMsRUFBRTtBQUMvRTtBQUtPLE1BQU1ILHlCQUF5QixDQUNwQ0UsaUJBQ0FDO1FBTU9DO0lBSlAsSUFBSUMsTUFBTUMsT0FBTyxDQUFDSixvQkFBb0IsQ0FBQ0csTUFBTUMsT0FBTyxDQUFDSCxVQUFVO1FBQzdELE9BQU87SUFDVDtJQUVBLE9BQU9DLENBQUFBLENBQUFBLG1CQUFBQSxDQUFBQSxHQUFBQSxpQkFBQUEsZUFBQUEsRUFBZ0JGLGdCQUFBQSxLQUFBQSxPQUFBQSxLQUFBQSxJQUFoQkUsaUJBQWtDRyxLQUFBQSxNQUFVSixPQUFPLENBQUMsRUFBRTtBQUMvRCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxtYXRjaC1zZWdtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTZWdtZW50UGFyYW0gfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9nZXQtc2VnbWVudC1wYXJhbSdcbmltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgbWF0Y2hTZWdtZW50ID0gKFxuICBleGlzdGluZ1NlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlZ21lbnQ6IFNlZ21lbnRcbik6IGJvb2xlYW4gPT4ge1xuICAvLyBzZWdtZW50IGlzIGVpdGhlciBBcnJheSBvciBzdHJpbmdcbiAgaWYgKHR5cGVvZiBleGlzdGluZ1NlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQ29tbW9uIGNhc2U6IHNlZ21lbnQgaXMganVzdCBhIHN0cmluZ1xuICAgICAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudCA9PT0gc2VnbWVudFxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gZXhpc3RpbmdTZWdtZW50WzBdID09PSBzZWdtZW50WzBdICYmIGV4aXN0aW5nU2VnbWVudFsxXSA9PT0gc2VnbWVudFsxXVxufVxuXG4vKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhbiBleGlzdGluZyBzZWdtZW50IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBpbmNvbWluZyBzZWdtZW50LlxuICovXG5leHBvcnQgY29uc3QgY2FuU2VnbWVudEJlT3ZlcnJpZGRlbiA9IChcbiAgZXhpc3RpbmdTZWdtZW50OiBTZWdtZW50LFxuICBzZWdtZW50OiBTZWdtZW50XG4pOiBib29sZWFuID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmdTZWdtZW50KSB8fCAhQXJyYXkuaXNBcnJheShzZWdtZW50KSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGdldFNlZ21lbnRQYXJhbShleGlzdGluZ1NlZ21lbnQpPy5wYXJhbSA9PT0gc2VnbWVudFswXVxufVxuIl0sIm5hbWVzIjpbImNhblNlZ21lbnRCZU92ZXJyaWRkZW4iLCJtYXRjaFNlZ21lbnQiLCJleGlzdGluZ1NlZ21lbnQiLCJzZWdtZW50IiwiZ2V0U2VnbWVudFBhcmFtIiwiQXJyYXkiLCJpc0FycmF5IiwicGFyYW0iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/match-segments.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdi1mYWlsdXJlLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2dCQSxrQkFBa0I7ZUFBbEJBOztJQWtCQUMsb0JBQW9CO2VBQXBCQTs7O21DQXJCVTsrQ0FDUTtBQUUzQixTQUFTRCxtQkFBbUJFLEtBQWM7SUFDL0MsSUFDRUEsU0FDQSxPQUFPQyxTQUFXLGVBQ2xCQSxDQUF3QixJQUN4QkcsQ0FDNkMsRUFDN0MsRUFPRDtJQUNELE9BQU87QUFDVDtBQUVPLFNBQVNMO0lBQ2QsSUFBSVcsS0FBd0MsRUFBRSxFQXVCN0M7QUFDSCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxuYXYtZmFpbHVyZS1oYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1ocmVmLWZyb20tdXJsJ1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlSGFyZE5hdkVycm9yKGVycm9yOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBlcnJvciAmJlxuICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgd2luZG93Lm5leHQuX19wZW5kaW5nVXJsICYmXG4gICAgY3JlYXRlSHJlZkZyb21VcmwobmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikpICE9PVxuICAgICAgY3JlYXRlSHJlZkZyb21Vcmwod2luZG93Lm5leHQuX19wZW5kaW5nVXJsKVxuICApIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgYEVycm9yIG9jY3VycmVkIGR1cmluZyBuYXZpZ2F0aW9uLCBmYWxsaW5nIGJhY2sgdG8gaGFyZCBuYXZpZ2F0aW9uYCxcbiAgICAgIGVycm9yXG4gICAgKVxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93Lm5leHQuX19wZW5kaW5nVXJsLnRvU3RyaW5nKClcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlTmF2RmFpbHVyZUhhbmRsZXIoKSB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HKSB7XG4gICAgLy8gdGhpcyBpZiBpcyBvbmx5IGZvciBEQ0Ugb2YgdGhlIGZlYXR1cmUgZmxhZyBub3QgY29uZGl0aW9uYWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyID0gKFxuICAgICAgICBldnQ6IEVycm9yRXZlbnQgfCBQcm9taXNlUmVqZWN0aW9uRXZlbnRcbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvciA9ICdyZWFzb24nIGluIGV2dCA/IGV2dC5yZWFzb24gOiBldnQuZXJyb3JcbiAgICAgICAgLy8gaWYgd2UgaGF2ZSBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uL3JlamVjdGlvbiBkdXJpbmdcbiAgICAgICAgLy8gYSBuYXZpZ2F0aW9uIHdlIGZhbGwgYmFjayB0byBhIGhhcmQgbmF2aWdhdGlvbiB0b1xuICAgICAgICAvLyBhdHRlbXB0IHJlY292ZXJpbmcgdG8gYSBnb29kIHN0YXRlXG4gICAgICAgIGhhbmRsZUhhcmROYXZFcnJvcihlcnJvcilcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIpXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIpXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIpXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICd1bmhhbmRsZWRyZWplY3Rpb24nLFxuICAgICAgICAgIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlclxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW10pXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJoYW5kbGVIYXJkTmF2RXJyb3IiLCJ1c2VOYXZGYWlsdXJlSGFuZGxlciIsImVycm9yIiwid2luZG93IiwibmV4dCIsIl9fcGVuZGluZ1VybCIsImNyZWF0ZUhyZWZGcm9tVXJsIiwiVVJMIiwibG9jYXRpb24iLCJocmVmIiwiY29uc29sZSIsInRvU3RyaW5nIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9BUFBfTkFWX0ZBSUxfSEFORExJTkciLCJ1c2VFZmZlY3QiLCJ1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIiLCJldnQiLCJyZWFzb24iLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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 { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"../app-render/work-async-storage.external\");\n const workStore = workAsyncStorage.getStore();\n if (!workStore) return false;\n const { fallbackRouteParams } = workStore;\n if (!fallbackRouteParams || fallbackRouteParams.size === 0) return false;\n return true;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24tdW50cmFja2VkLmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBc0NnQkE7OztlQUFBQTs7O21DQXRDVzs2REFDSztBQUVoQzs7Ozs7Q0FLQyxHQUNELFNBQVNDO0lBQ1AsSUFBSSxJQUE2QixFQUFFO1FBQ2pDLGlFQUFpRTtRQUNqRSxNQUFNLEVBQUVFLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQyxzR0FBcUQ7UUFFL0QsTUFBTUMsWUFBWUYsaUJBQWlCRyxRQUFRO1FBQzNDLElBQUksQ0FBQ0QsV0FBVyxPQUFPO1FBRXZCLE1BQU0sRUFBRUUsbUJBQW1CLEVBQUUsR0FBR0Y7UUFDaEMsSUFBSSxDQUFDRSx1QkFBdUJBLG9CQUFvQkMsSUFBSSxLQUFLLEdBQUcsT0FBTztRQUVuRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFhTyxTQUFTUjtJQUNkLHFFQUFxRTtJQUNyRSw4RUFBOEU7SUFDOUUsOEVBQThFO0lBQzlFLHVCQUF1QjtJQUN2QixJQUFJQywwQkFBMEI7UUFDNUIsT0FBTztJQUNUO0lBRUEsMkVBQTJFO0lBQzNFLHFEQUFxRDtJQUNyRCxzREFBc0Q7SUFDdEQsT0FBT1EsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLGVBQWU7QUFDbkMiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcbmF2aWdhdGlvbi11bnRyYWNrZWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgUGF0aG5hbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZSdcblxuLyoqXG4gKiBUaGlzIGNoZWNrcyB0byBzZWUgaWYgdGhlIGN1cnJlbnQgcmVuZGVyIGhhcyBhbnkgdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLlxuICogSXQncyB1c2VkIHRvIHRyaWdnZXIgYSBkaWZmZXJlbnQgcmVuZGVyIHBhdGggaW4gdGhlIGVycm9yIGJvdW5kYXJ5LlxuICpcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlcmUgYXJlIGFueSB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMsIGZhbHNlIG90aGVyd2lzZVxuICovXG5mdW5jdGlvbiBoYXNGYWxsYmFja1JvdXRlUGFyYW1zKCkge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBBc3luY0xvY2FsU3RvcmFnZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBjbGllbnQgYnVuZGxlLlxuICAgIGNvbnN0IHsgd29ya0FzeW5jU3RvcmFnZSB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCcpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCcpXG5cbiAgICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgICBpZiAoIXdvcmtTdG9yZSkgcmV0dXJuIGZhbHNlXG5cbiAgICBjb25zdCB7IGZhbGxiYWNrUm91dGVQYXJhbXMgfSA9IHdvcmtTdG9yZVxuICAgIGlmICghZmFsbGJhY2tSb3V0ZVBhcmFtcyB8fCBmYWxsYmFja1JvdXRlUGFyYW1zLnNpemUgPT09IDApIHJldHVybiBmYWxzZVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIFRoaXMgcmV0dXJucyBhIGBudWxsYCB2YWx1ZSBpZiB0aGVyZSBhcmUgYW55IHVua25vd24gcm91dGUgcGFyYW1ldGVycywgYW5kXG4gKiBvdGhlcndpc2UgcmV0dXJucyB0aGUgcGF0aG5hbWUgZnJvbSB0aGUgY29udGV4dC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0b1xuICogYHVzZVBhdGhuYW1lYCB0aGF0IGlzIHVzZWQgaW4gdGhlIGVycm9yIGJvdW5kYXJ5IHRvIGF2b2lkIHJlbmRlcmluZyB0aGVcbiAqIGVycm9yIGJvdW5kYXJ5IHdoZW4gdGhlcmUgYXJlIHVua25vd24gcm91dGUgcGFyYW1ldGVycy4gVGhpcyBkb2Vzbid0IHRocm93XG4gKiB3aGVuIGFjY2Vzc2VkIHdpdGggdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLlxuICpcbiAqIEByZXR1cm5zXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVbnRyYWNrZWRQYXRobmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gSWYgdGhlcmUgYXJlIGFueSB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMgd2Ugd291bGQgdHlwaWNhbGx5IHRocm93XG4gIC8vIGFuIGVycm9yLCBidXQgdGhpcyBpbnRlcm5hbCBtZXRob2QgYWxsb3dzIHVzIHRvIHJldHVybiBhIG51bGwgdmFsdWUgaW5zdGVhZFxuICAvLyBmb3IgY29tcG9uZW50cyB0aGF0IGRvIG5vdCBwcm9wYWdhdGUgdGhlIHBhdGhuYW1lIHRvIHRoZSBzdGF0aWMgc2hlbGwgKGxpa2VcbiAgLy8gdGhlIGVycm9yIGJvdW5kYXJ5KS5cbiAgaWYgKGhhc0ZhbGxiYWNrUm91dGVQYXJhbXMoKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBUaGlzIHNob3VsZG4ndCBjYXVzZSBhbnkgaXNzdWVzIHJlbGF0ZWQgdG8gY29uZGl0aW9uYWwgcmVuZGVyaW5nIGJlY2F1c2VcbiAgLy8gdGhlIGVudmlyb25tZW50IHdpbGwgYmUgY29uc2lzdGVudCBmb3IgdGhlIHJlbmRlci5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gIHJldHVybiB1c2VDb250ZXh0KFBhdGhuYW1lQ29udGV4dClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VVbnRyYWNrZWRQYXRobmFtZSIsImhhc0ZhbGxiYWNrUm91dGVQYXJhbXMiLCJ3aW5kb3ciLCJ3b3JrQXN5bmNTdG9yYWdlIiwicmVxdWlyZSIsIndvcmtTdG9yZSIsImdldFN0b3JlIiwiZmFsbGJhY2tSb3V0ZVBhcmFtcyIsInNpemUiLCJ1c2VDb250ZXh0IiwiUGF0aG5hbWVDb250ZXh0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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_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 _dynamicrendering = __webpack_require__(/*! ../../server/app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.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\");\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 (0, _dynamicrendering.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 new Error('invariant expected app router to be mounted');\n }\n return router;\n}\nfunction useParams() {\n (0, _dynamicrendering.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 (0, _dynamicrendering.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.tree, parallelRouteKey);\n}\nfunction useSelectedLayoutSegment(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = 'children';\n (0, _dynamicrendering.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb1JFQSx1QkFBdUI7ZUFBdkJBLHVCQUFBQSx1QkFBdUI7O0lBRHZCQyxZQUFZO2VBQVpBLHVCQUFBQSxZQUFZOztJQXBMWkMseUJBQXlCO2VBQXpCQSxpQ0FBQUEseUJBQXlCOztJQWdMekJDLFNBQVM7ZUFBVEEsdUJBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBSVJDLGlCQUFpQjtlQUFqQkEsdUJBQUFBLGlCQUFpQjs7SUFEakJDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBRFJDLFlBQVk7ZUFBWkEsdUJBQUFBLFlBQVk7O0lBS1pDLGdCQUFnQjtlQUFoQkEsdUJBQUFBLGdCQUFnQjs7SUFwSUZDLFNBQVM7ZUFBVEE7O0lBNURBQyxXQUFXO2VBQVhBOztJQWlDQUMsU0FBUztlQUFUQTs7SUE5RUFDLGVBQWU7ZUFBZkE7O0lBNk1BQyx3QkFBd0I7ZUFBeEJBOztJQS9CQUMseUJBQXlCO2VBQXpCQTs7SUF0SGRDLHFCQUFxQjtlQUFyQkEsaUNBQUFBLHFCQUFxQjs7O21DQTdGYTsyREFLN0I7NkRBS0E7NkNBQ3lCO3FDQUNzQjttREFDZDs4Q0FDRjs2REFnRi9CO0FBekRBLFNBQVNIO0lBQ2QsTUFBTUksZUFBZUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLG1CQUFtQjtJQUVuRCw4REFBOEQ7SUFDOUQsMEVBQTBFO0lBQzFFLGtCQUFrQjtJQUNsQixNQUFNQyx1QkFBdUJDLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7UUFDbkMsSUFBSSxDQUFDSixjQUFjO1lBQ2pCLHlFQUF5RTtZQUN6RSxhQUFhO1lBQ2IsT0FBTztRQUNUO1FBRUEsT0FBTyxJQUFJaEIsdUJBQUFBLHVCQUF1QixDQUFDZ0I7SUFDckMsR0FBRztRQUFDQTtLQUFhO0lB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LE9BQ0FEO0FBQ04iLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcbmF2aWdhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcblxuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQXBwUm91dGVyQ29udGV4dCxcbiAgTGF5b3V0Um91dGVyQ29udGV4dCxcbiAgdHlwZSBBcHBSb3V0ZXJJbnN0YW5jZSxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQge1xuICBTZWFyY2hQYXJhbXNDb250ZXh0LFxuICBQYXRobmFtZUNvbnRleHQsXG4gIFBhdGhQYXJhbXNDb250ZXh0LFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZ2V0U2VnbWVudFZhbHVlIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9nZXQtc2VnbWVudC12YWx1ZSdcbmltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVksIERFRkFVTFRfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyB9IGZyb20gJy4vbmF2aWdhdGlvbi5yZWFjdC1zZXJ2ZXInXG5pbXBvcnQgeyB1c2VEeW5hbWljUm91dGVQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZydcblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgKnJlYWQqIHRoZSBjdXJyZW50IFVSTCdzIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICpcbiAqIExlYXJuIG1vcmUgYWJvdXQgW2BVUkxTZWFyY2hQYXJhbXNgIG9uIE1ETl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1VSTFNlYXJjaFBhcmFtcylcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdXNlU2VhcmNoUGFyYW1zKClcbiAqICAgc2VhcmNoUGFyYW1zLmdldCgnZm9vJykgLy8gcmV0dXJucyAnYmFyJyB3aGVuID9mb289YmFyXG4gKiAgIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlU2VhcmNoUGFyYW1zYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWFyY2hQYXJhbXMoKTogUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VDb250ZXh0KFNlYXJjaFBhcmFtc0NvbnRleHQpXG5cbiAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW5cbiAgLy8gYG5leHQtZW52LmQudHNgIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG9cbiAgLy8gaW5jbHVkZSBgbnVsbGAuXG4gIGNvbnN0IHJlYWRvbmx5U2VhcmNoUGFyYW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgIC8vIFdoZW4gdGhlIHJvdXRlciBpcyBub3QgcmVhZHkgaW4gcGFnZXMsIHdlIHdvbid0IGhhdmUgdGhlIHNlYXJjaCBwYXJhbXNcbiAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMpXG4gIH0sIFtzZWFyY2hQYXJhbXNdKSBhcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc1xuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgY29uc3QgeyBiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmcgfSA9XG4gICAgICByZXF1aXJlKCcuL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZycpIGFzIHR5cGVvZiBpbXBvcnQoJy4vYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nJylcbiAgICAvLyBUT0RPLUFQUDogaGFuZGxlIGR5bmFtaWMgPSAnZm9yY2Utc3RhdGljJyBoZXJlIGFuZCBvbiB0aGUgY2xpZW50XG4gICAgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nKCd1c2VTZWFyY2hQYXJhbXMoKScpXG4gIH1cblxuICByZXR1cm4gcmVhZG9ubHlTZWFyY2hQYXJhbXNcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgY3VycmVudCBVUkwncyBwYXRobmFtZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICogIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKSAvLyByZXR1cm5zIFwiL2Rhc2hib2FyZFwiIG9uIC9kYXNoYm9hcmQ/Zm9vPWJhclxuICogIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlUGF0aG5hbWVgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXBhdGhuYW1lKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VQYXRobmFtZSgpOiBzdHJpbmcge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXMoJ3VzZVBhdGhuYW1lKCknKVxuXG4gIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoaXMgaXMgYG51bGxgLCB0aGUgY29tcGF0IHR5cGVzIGFkZGVkIGluIGBuZXh0LWVudi5kLnRzYFxuICAvLyB3aWxsIGFkZCBhIG5ldyBvdmVybG9hZCB0aGF0IGNoYW5nZXMgdGhlIHJldHVybiB0eXBlIHRvIGluY2x1ZGUgYG51bGxgLlxuICByZXR1cm4gdXNlQ29udGV4dChQYXRobmFtZUNvbnRleHQpIGFzIHN0cmluZ1xufVxuXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCB7XG4gIFNlcnZlckluc2VydGVkSFRNTENvbnRleHQsXG4gIHVzZVNlcnZlckluc2VydGVkSFRNTCxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5zaGFyZWQtcnVudGltZSdcblxuLyoqXG4gKlxuICogVGhpcyBob29rIGFsbG93cyB5b3UgdG8gcHJvZ3JhbW1hdGljYWxseSBjaGFuZ2Ugcm91dGVzIGluc2lkZSBbQ2xpZW50IENvbXBvbmVudF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL2NsaWVudC1jb21wb25lbnRzKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuICogIC8vIC4uLlxuICogIHJvdXRlci5wdXNoKCcvZGFzaGJvYXJkJykgLy8gTmF2aWdhdGUgdG8gL2Rhc2hib2FyZFxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlUm91dGVyYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1yb3V0ZXIpXG4gKi9cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlcigpOiBBcHBSb3V0ZXJJbnN0YW5jZSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZUNvbnRleHQoQXBwUm91dGVyQ29udGV4dClcbiAgaWYgKHJvdXRlciA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IGV4cGVjdGVkIGFwcCByb3V0ZXIgdG8gYmUgbW91bnRlZCcpXG4gIH1cblxuICByZXR1cm4gcm91dGVyXG59XG5cbi8qKlxuICogQSBbQ2xpZW50IENvbXBvbmVudF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL2NsaWVudC1jb21wb25lbnRzKSBob29rXG4gKiB0aGF0IGxldHMgeW91IHJlYWQgYSByb3V0ZSdzIGR5bmFtaWMgcGFyYW1zIGZpbGxlZCBpbiBieSB0aGUgY3VycmVudCBVUkwuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBcInVzZSBjbGllbnRcIlxuICogaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBhZ2UoKSB7XG4gKiAgIC8vIG9uIC9kYXNoYm9hcmQvW3RlYW1dIHdoZXJlIHBhdGhuYW1lIGlzIC9kYXNoYm9hcmQvbmV4dGpzXG4gKiAgIGNvbnN0IHsgdGVhbSB9ID0gdXNlUGFyYW1zKCkgLy8gdGVhbSA9PT0gXCJuZXh0anNcIlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlUGFyYW1zYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1wYXJhbXMpXG4gKi9cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZXhwb3J0IGZ1bmN0aW9uIHVzZVBhcmFtczxUIGV4dGVuZHMgUGFyYW1zID0gUGFyYW1zPigpOiBUIHtcbiAgdXNlRHluYW1pY1JvdXRlUGFyYW1zKCd1c2VQYXJhbXMoKScpXG5cbiAgcmV0dXJuIHVzZUNvbnRleHQoUGF0aFBhcmFtc0NvbnRleHQpIGFzIFRcbn1cblxuLyoqIEdldCB0aGUgY2Fub25pY2FsIHBhcmFtZXRlcnMgZnJvbSB0aGUgY3VycmVudCBsZXZlbCB0byB0aGUgbGVhZiBub2RlLiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5mdW5jdGlvbiBnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoKFxuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcGFyYWxsZWxSb3V0ZUtleTogc3RyaW5nLFxuICBmaXJzdCA9IHRydWUsXG4gIHNlZ21lbnRQYXRoOiBzdHJpbmdbXSA9IFtdXG4pOiBzdHJpbmdbXSB7XG4gIGxldCBub2RlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBpZiAoZmlyc3QpIHtcbiAgICAvLyBVc2UgdGhlIHByb3ZpZGVkIHBhcmFsbGVsIHJvdXRlIGtleSBvbiB0aGUgZmlyc3QgcGFyYWxsZWwgcm91dGVcbiAgICBub2RlID0gdHJlZVsxXVtwYXJhbGxlbFJvdXRlS2V5XVxuICB9IGVsc2Uge1xuICAgIC8vIEFmdGVyIGZpcnN0IHBhcmFsbGVsIHJvdXRlIHByZWZlciBjaGlsZHJlbiwgaWYgdGhlcmUncyBubyBjaGlsZHJlbiBwaWNrIHRoZSBmaXJzdCBwYXJhbGxlbCByb3V0ZS5cbiAgICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IHRyZWVbMV1cbiAgICBub2RlID0gcGFyYWxsZWxSb3V0ZXMuY2hpbGRyZW4gPz8gT2JqZWN0LnZhbHVlcyhwYXJhbGxlbFJvdXRlcylbMF1cbiAgfVxuXG4gIGlmICghbm9kZSkgcmV0dXJuIHNlZ21lbnRQYXRoXG4gIGNvbnN0IHNlZ21lbnQgPSBub2RlWzBdXG5cbiAgbGV0IHNlZ21lbnRWYWx1ZSA9IGdldFNlZ21lbnRWYWx1ZShzZWdtZW50KVxuXG4gIGlmICghc2VnbWVudFZhbHVlIHx8IHNlZ21lbnRWYWx1ZS5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSB7XG4gICAgcmV0dXJuIHNlZ21lbnRQYXRoXG4gIH1cblxuICBzZWdtZW50UGF0aC5wdXNoKHNlZ21lbnRWYWx1ZSlcblxuICByZXR1cm4gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChcbiAgICBub2RlLFxuICAgIHBhcmFsbGVsUm91dGVLZXksXG4gICAgZmFsc2UsXG4gICAgc2VnbWVudFBhdGhcbiAgKVxufVxuXG4vKipcbiAqIEEgW0NsaWVudCBDb21wb25lbnRdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9jbGllbnQtY29tcG9uZW50cykgaG9va1xuICogdGhhdCBsZXRzIHlvdSByZWFkIHRoZSBhY3RpdmUgcm91dGUgc2VnbWVudHMgKipiZWxvdyoqIHRoZSBMYXlvdXQgaXQgaXMgY2FsbGVkIGZyb20uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAndXNlIGNsaWVudCdcbiAqXG4gKiBpbXBvcnQgeyB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzIH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEV4YW1wbGVDbGllbnRDb21wb25lbnQoKSB7XG4gKiAgIGNvbnN0IHNlZ21lbnRzID0gdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cygpXG4gKlxuICogICByZXR1cm4gKFxuICogICAgIDx1bD5cbiAqICAgICAgIHtzZWdtZW50cy5tYXAoKHNlZ21lbnQsIGluZGV4KSA9PiAoXG4gKiAgICAgICAgIDxsaSBrZXk9e2luZGV4fT57c2VnbWVudH08L2xpPlxuICogICAgICAgKSl9XG4gKiAgICAgPC91bD5cbiAqICAgKVxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50c2BdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utc2VsZWN0ZWQtbGF5b3V0LXNlZ21lbnRzKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzKFxuICBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcgPSAnY2hpbGRyZW4nXG4pOiBzdHJpbmdbXSB7XG4gIHVzZUR5bmFtaWNSb3V0ZVBhcmFtcygndXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cygpJylcblxuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICAvLyBAdHMtZXhwZWN0LWVycm9yIFRoaXMgb25seSBoYXBwZW5zIGluIGBwYWdlc2AuIFR5cGUgaXMgb3ZlcndyaXR0ZW4gaW4gbmF2aWdhdGlvbi5kLnRzXG4gIGlmICghY29udGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChjb250ZXh0LnRyZWUsIHBhcmFsbGVsUm91dGVLZXkpXG59XG5cbi8qKlxuICogQSBbQ2xpZW50IENvbXBvbmVudF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL2NsaWVudC1jb21wb25lbnRzKSBob29rXG4gKiB0aGF0IGxldHMgeW91IHJlYWQgdGhlIGFjdGl2ZSByb3V0ZSBzZWdtZW50ICoqb25lIGxldmVsIGJlbG93KiogdGhlIExheW91dCBpdCBpcyBjYWxsZWQgZnJvbS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqICd1c2UgY2xpZW50J1xuICogaW1wb3J0IHsgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50IH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEV4YW1wbGVDbGllbnRDb21wb25lbnQoKSB7XG4gKiAgIGNvbnN0IHNlZ21lbnQgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoKVxuICpcbiAqICAgcmV0dXJuIDxwPkFjdGl2ZSBzZWdtZW50OiB7c2VnbWVudH08L3A+XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlbGVjdGVkLWxheW91dC1zZWdtZW50KVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyA9ICdjaGlsZHJlbidcbik6IHN0cmluZyB8IG51bGwge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXMoJ3VzZVNlbGVjdGVkTGF5b3V0U2VnbWVudCgpJylcblxuICBjb25zdCBzZWxlY3RlZExheW91dFNlZ21lbnRzID0gdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyhwYXJhbGxlbFJvdXRlS2V5KVxuXG4gIGlmICghc2VsZWN0ZWRMYXlvdXRTZWdtZW50cyB8fCBzZWxlY3RlZExheW91dFNlZ21lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBzZWxlY3RlZExheW91dFNlZ21lbnQgPVxuICAgIHBhcmFsbGVsUm91dGVLZXkgPT09ICdjaGlsZHJlbidcbiAgICAgID8gc2VsZWN0ZWRMYXlvdXRTZWdtZW50c1swXVxuICAgICAgOiBzZWxlY3RlZExheW91dFNlZ21lbnRzW3NlbGVjdGVkTGF5b3V0U2VnbWVudHMubGVuZ3RoIC0gMV1cblxuICAvLyBpZiB0aGUgZGVmYXVsdCBzbG90IGlzIHNob3dpbmcsIHdlIHJldHVybiBudWxsIHNpbmNlIGl0J3Mgbm90IHRlY2huaWNhbGx5IFwic2VsZWN0ZWRcIiAoaXQncyBhIGZhbGxiYWNrKVxuICAvLyBhbmQgcmV0dXJuaW5nIGFuIGludGVybmFsIHZhbHVlIGxpa2UgYF9fREVGQVVMVF9fYCB3b3VsZCBiZSBjb25mdXNpbmcuXG4gIHJldHVybiBzZWxlY3RlZExheW91dFNlZ21lbnQgPT09IERFRkFVTFRfU0VHTUVOVF9LRVlcbiAgICA/IG51bGxcbiAgICA6IHNlbGVjdGVkTGF5b3V0U2VnbWVudFxufVxuXG4vLyBTaGFyZWQgY29tcG9uZW50cyBBUElzXG5leHBvcnQge1xuICBub3RGb3VuZCxcbiAgZm9yYmlkZGVuLFxuICB1bmF1dGhvcml6ZWQsXG4gIHJlZGlyZWN0LFxuICBwZXJtYW5lbnRSZWRpcmVjdCxcbiAgUmVkaXJlY3RUeXBlLFxuICBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyxcbiAgdW5zdGFibGVfcmV0aHJvdyxcbn0gZnJvbSAnLi9uYXZpZ2F0aW9uLnJlYWN0LXNlcnZlcidcbiJdLCJuYW1lcyI6WyJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyIsIlJlZGlyZWN0VHlwZSIsIlNlcnZlckluc2VydGVkSFRNTENvbnRleHQiLCJmb3JiaWRkZW4iLCJub3RGb3VuZCIsInBlcm1hbmVudFJlZGlyZWN0IiwicmVkaXJlY3QiLCJ1bmF1dGhvcml6ZWQiLCJ1bnN0YWJsZV9yZXRocm93IiwidXNlUGFyYW1zIiwidXNlUGF0aG5hbWUiLCJ1c2VSb3V0ZXIiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnQiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzIiwidXNlU2VydmVySW5zZXJ0ZWRIVE1MIiwic2VhcmNoUGFyYW1zIiwidXNlQ29udGV4dCIsIlNlYXJjaFBhcmFtc0NvbnRleHQiLCJyZWFkb25seVNlYXJjaFBhcmFtcyIsInVzZU1lbW8iLCJ3aW5kb3ciLCJiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmciLCJyZXF1aXJlIiwidXNlRHluYW1pY1JvdXRlUGFyYW1zIiwiUGF0aG5hbWVDb250ZXh0Iiwicm91dGVyIiwiQXBwUm91dGVyQ29udGV4dCIsIkVycm9yIiwiUGF0aFBhcmFtc0NvbnRleHQiLCJnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoIiwidHJlZSIsInBhcmFsbGVsUm91dGVLZXkiLCJmaXJzdCIsInNlZ21lbnRQYXRoIiwibm9kZSIsInBhcmFsbGVsUm91dGVzIiwiY2hpbGRyZW4iLCJPYmplY3QiLCJ2YWx1ZXMiLCJzZWdtZW50Iiwic2VnbWVudFZhbHVlIiwiZ2V0U2VnbWVudFZhbHVlIiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJwdXNoIiwiY29udGV4dCIsIkxheW91dFJvdXRlckNvbnRleHQiLCJzZWxlY3RlZExheW91dFNlZ21lbnRzIiwibGVuZ3RoIiwic2VsZWN0ZWRMYXlvdXRTZWdtZW50IiwiREVGQVVMVF9TRUdNRU5UX0tFWSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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_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}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWM7Ozs7Ozs7Ozs7OztJQWtDTEEsdUJBQXVCO2VBQXZCQTs7SUFMQUMsWUFBWTtlQUFaQSxlQUFBQSxZQUFZOztJQUVaQyxTQUFTO2VBQVRBLFdBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsVUFBQUEsUUFBUTs7SUFGRUMsaUJBQWlCO2VBQWpCQSxVQUFBQSxpQkFBaUI7O0lBQTNCQyxRQUFRO2VBQVJBLFVBQUFBLFFBQVE7O0lBSVJDLFlBQVk7ZUFBWkEsY0FBQUEsWUFBWTs7SUFDWkMsZ0JBQWdCO2VBQWhCQSxpQkFBQUEsZ0JBQWdCOzs7c0NBTG1COzJDQUNmO3NDQUNKO3VDQUNDOzBDQUNHOzZDQUNJO0FBaENqQyxNQUFNQyxxQ0FBcUNDO0lBQ3pDQyxhQUFjO1FBQ1osS0FBSyxDQUNIO0lBRUo7QUFDRjtBQUVBLE1BQU1WLGdDQUFnQ1c7SUFDcEMsd0tBQXdLLEdBQ3hLQyxTQUFTO1FBQ1AsTUFBTSxJQUFJSjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLSyxTQUFTO1FBQ1AsTUFBTSxJQUFJTDtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTSxNQUFNO1FBQ0osTUFBTSxJQUFJTjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTyxPQUFPO1FBQ0wsTUFBTSxJQUFJUDtJQUNaO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcbmF2aWdhdGlvbi5yZWFjdC1zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXG4gICAgICAnTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcydcbiAgICApXG4gIH1cbn1cblxuY2xhc3MgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgZXh0ZW5kcyBVUkxTZWFyY2hQYXJhbXMge1xuICAvKiogQGRlcHJlY2F0ZWQgTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcyAqL1xuICBhcHBlbmQoKSB7XG4gICAgdGhyb3cgbmV3IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKVxuICB9XG4gIC8qKiBAZGVwcmVjYXRlZCBNZXRob2QgdW5hdmFpbGFibGUgb24gYFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zYC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlYXJjaC1wYXJhbXMjdXBkYXRpbmctc2VhcmNocGFyYW1zICovXG4gIGRlbGV0ZSgpIHtcbiAgICB0aHJvdyBuZXcgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpXG4gIH1cbiAgLyoqIEBkZXByZWNhdGVkIE1ldGhvZCB1bmF2YWlsYWJsZSBvbiBgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNgLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utc2VhcmNoLXBhcmFtcyN1cGRhdGluZy1zZWFyY2hwYXJhbXMgKi9cbiAgc2V0KCkge1xuICAgIHRocm93IG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKClcbiAgfVxuICAvKiogQGRlcHJlY2F0ZWQgTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcyAqL1xuICBzb3J0KCkge1xuICAgIHRocm93IG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKClcbiAgfVxufVxuXG5leHBvcnQgeyByZWRpcmVjdCwgcGVybWFuZW50UmVkaXJlY3QgfSBmcm9tICcuL3JlZGlyZWN0J1xuZXhwb3J0IHsgUmVkaXJlY3RUeXBlIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcbmV4cG9ydCB7IG5vdEZvdW5kIH0gZnJvbSAnLi9ub3QtZm91bmQnXG5leHBvcnQgeyBmb3JiaWRkZW4gfSBmcm9tICcuL2ZvcmJpZGRlbidcbmV4cG9ydCB7IHVuYXV0aG9yaXplZCB9IGZyb20gJy4vdW5hdXRob3JpemVkJ1xuZXhwb3J0IHsgdW5zdGFibGVfcmV0aHJvdyB9IGZyb20gJy4vdW5zdGFibGUtcmV0aHJvdydcbmV4cG9ydCB7IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIH1cbiJdLCJuYW1lcyI6WyJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyIsIlJlZGlyZWN0VHlwZSIsImZvcmJpZGRlbiIsIm5vdEZvdW5kIiwicGVybWFuZW50UmVkaXJlY3QiLCJyZWRpcmVjdCIsInVuYXV0aG9yaXplZCIsInVuc3RhYmxlX3JldGhyb3ciLCJSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsImRlbGV0ZSIsInNldCIsInNvcnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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 = new Error(DIGEST);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUDs7Ozs7Ozs7Ozs7OztDQWFDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCw0Q0FBNEM7SUFDNUMsTUFBTUcsUUFBUSxJQUFJQyxNQUFNSDtJQUN0QkUsTUFBa0NFLE1BQU0sR0FBR0o7SUFFN0MsTUFBTUU7QUFDUiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxub3QtZm91bmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFLFxuICB0eXBlIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yLFxufSBmcm9tICcuL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrJ1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byByZW5kZXIgdGhlIFtub3QtZm91bmQuanMgZmlsZV0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZmlsZS1jb252ZW50aW9ucy9ub3QtZm91bmQpXG4gKiB3aXRoaW4gYSByb3V0ZSBzZWdtZW50IGFzIHdlbGwgYXMgaW5qZWN0IGEgdGFnLlxuICpcbiAqIGBub3RGb3VuZCgpYCBjYW4gYmUgdXNlZCBpblxuICogW1NlcnZlciBDb21wb25lbnRzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMpLFxuICogW1JvdXRlIEhhbmRsZXJzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3JvdXRlLWhhbmRsZXJzKSwgYW5kXG4gKiBbU2VydmVyIEFjdGlvbnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvc2VydmVyLWFjdGlvbnMtYW5kLW11dGF0aW9ucykuXG4gKlxuICogLSBJbiBhIFNlcnZlciBDb21wb25lbnQsIHRoaXMgd2lsbCBpbnNlcnQgYSBgPG1ldGEgbmFtZT1cInJvYm90c1wiIGNvbnRlbnQ9XCJub2luZGV4XCIgLz5gIG1ldGEgdGFnIGFuZCBzZXQgdGhlIHN0YXR1cyBjb2RlIHRvIDQwNC5cbiAqIC0gSW4gYSBSb3V0ZSBIYW5kbGVyIG9yIFNlcnZlciBBY3Rpb24sIGl0IHdpbGwgc2VydmUgYSA0MDQgdG8gdGhlIGNhbGxlci5cbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGBub3RGb3VuZGBdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9ub3QtZm91bmQpXG4gKi9cblxuY29uc3QgRElHRVNUID0gYCR7SFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFfTs0MDRgXG5cbmV4cG9ydCBmdW5jdGlvbiBub3RGb3VuZCgpOiBuZXZlciB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10aHJvdy1saXRlcmFsXG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKERJR0VTVCkgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JcbiAgOyhlcnJvciBhcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcikuZGlnZXN0ID0gRElHRVNUXG5cbiAgdGhyb3cgZXJyb3Jcbn1cbiJdLCJuYW1lcyI6WyJub3RGb3VuZCIsIkRJR0VTVCIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsImVycm9yIiwiRXJyb3IiLCJkaWdlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/not-found.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js":
|
||
/*!*******************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/app/ReactDevOverlay.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 ReactDevOverlay;\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 _ShadowPortal = __webpack_require__(/*! ../internal/components/ShadowPortal */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js\");\nconst _BuildError = __webpack_require__(/*! ../internal/container/BuildError */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js\");\nconst _Errors = __webpack_require__(/*! ../internal/container/Errors */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js\");\nconst _StaticIndicator = __webpack_require__(/*! ../internal/container/StaticIndicator */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/StaticIndicator.js\");\nconst _Base = __webpack_require__(/*! ../internal/styles/Base */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js\");\nconst _ComponentStyles = __webpack_require__(/*! ../internal/styles/ComponentStyles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js\");\nconst _CssReset = __webpack_require__(/*! ../internal/styles/CssReset */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js\");\nconst _rootlayoutmissingtagserror = __webpack_require__(/*! ../internal/container/root-layout-missing-tags-error */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/root-layout-missing-tags-error.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../internal/helpers/runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js\");\nclass ReactDevOverlay extends _react.default.PureComponent {\n static getDerivedStateFromError(error) {\n if (!error.stack) return {\n isReactError: false\n };\n _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true;\n return {\n isReactError: true\n };\n }\n render() {\n var _state_rootLayoutMissingTags;\n const { state, children, dispatcher } = this.props;\n const { isReactError } = this.state;\n const hasBuildError = state.buildError != null;\n const hasRuntimeErrors = Boolean(state.errors.length);\n const hasStaticIndicator = state.staticIndicator;\n const debugInfo = state.debugInfo;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n isReactError ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"body\", {})\n ]\n }) : children,\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_ShadowPortal.ShadowPortal, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_CssReset.CssReset, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_Base.Base, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_ComponentStyles.ComponentStyles, {}),\n ((_state_rootLayoutMissingTags = state.rootLayoutMissingTags) == null ? void 0 : _state_rootLayoutMissingTags.length) ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_rootlayoutmissingtagserror.RootLayoutMissingTagsError, {\n missingTags: state.rootLayoutMissingTags\n }) : hasBuildError ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_BuildError.BuildError, {\n message: state.buildError,\n versionInfo: state.versionInfo\n }) : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n hasRuntimeErrors ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Errors.Errors, {\n isAppDir: true,\n initialDisplayState: isReactError ? 'fullscreen' : 'minimized',\n errors: state.errors,\n versionInfo: state.versionInfo,\n hasStaticIndicator: hasStaticIndicator,\n debugInfo: debugInfo\n }) : null,\n hasStaticIndicator && /*#__PURE__*/ (0, _jsxruntime.jsx)(_StaticIndicator.StaticIndicator, {\n dispatcher: dispatcher\n })\n ]\n })\n ]\n })\n ]\n });\n }\n constructor(...args){\n super(...args), this.state = {\n isReactError: false\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=ReactDevOverlay.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2FwcC9SZWFjdERldk92ZXJsYXkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztlQWdCcUJBOzs7Ozs0RUFoQkg7MENBRVc7d0NBQ0Y7b0NBQ0o7NkNBQ1M7a0NBQ1g7NkNBQ1c7c0NBQ1A7d0RBQ2tCO2lEQUVQO0FBS3JCLE1BQU1BLHdCQUF3QkMsT0FBQUEsT0FBSyxDQUFDQyxhQUFhO0lBVTlELE9BQU9DLHlCQUF5QkMsS0FBWSxFQUF3QjtRQUNsRSxJQUFJLENBQUNBLE1BQU1DLEtBQUssRUFBRSxPQUFPO1lBQUVDLGNBQWM7UUFBTTtRQUUvQ0MscUJBQUFBLG1CQUFtQixDQUFDQyxlQUFlLEdBQUc7UUFDdEMsT0FBTztZQUNMRixjQUFjO1FBQ2hCO0lBQ0Y7SUFFQUcsU0FBUztZQXVCQUM7UUF0QlAsTUFBTSxFQUFFQSxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDQyxLQUFLO1FBQ2xELE1BQU0sRUFBRVAsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDSSxLQUFLO1FBRW5DLE1BQU1JLGdCQUFnQkosTUFBTUssVUFBVSxJQUFJO1FBQzFDLE1BQU1DLG1CQUFtQkMsUUFBUVAsTUFBTVEsTUFBTSxDQUFDQyxNQUFNO1FBQ3BELE1BQU1DLHFCQUFxQlYsTUFBTVcsZUFBZTtRQUNoRCxNQUFNQyxZQUFZWixNQUFNWSxTQUFTO1FBRWpDLE9BQ0UsV0FERixHQUNFOztnQkFDR2hCLGVBQUFBLFdBQUFBLEdBQ0Msc0JBQUNpQixRQUFBQTs7c0NBQ0MscUJBQUNDLFFBQUFBLENBQUFBO3NDQUNELHFCQUFDQyxRQUFBQSxDQUFBQTs7cUJBR0hkOzhCQUVGLHNCQUFDZSxjQUFBQSxZQUFZOztzQ0FDWCxxQkFBQ0MsVUFBQUEsUUFBUTtzQ0FDVCxxQkFBQ0MsTUFBQUEsSUFBSTtzQ0FDTCxxQkFBQ0MsaUJBQUFBLGVBQWU7d0JBQ2ZuQixDQUFBQSxDQUFBQSwrQkFBQUEsTUFBTW9CLHFCQUFBQSxLQUFxQixnQkFBM0JwQiw2QkFBNkJTLE1BQUFBLElBQU0sY0FDbEMscUJBQUNZLDRCQUFBQSwwQkFBMEI7NEJBQ3pCQyxhQUFhdEIsTUFBTW9CLHFCQUFxQjs2QkFFeENoQixnQkFBQUEsV0FBQUEsR0FDRixxQkFBQ21CLFlBQUFBLFVBQVU7NEJBQ1RDLFNBQVN4QixNQUFNSyxVQUFVOzRCQUN6Qm9CLGFBQWF6QixNQUFNeUIsV0FBVzs2QkFHaEM7O2dDQUNHbkIsbUJBQUFBLFdBQUFBLEdBQ0MscUJBQUNvQixRQUFBQSxNQUFNO29DQUNMQyxVQUFVO29DQUNWQyxxQkFDRWhDLGVBQWUsZUFBZTtvQ0FFaENZLFFBQVFSLE1BQU1RLE1BQU07b0NBQ3BCaUIsYUFBYXpCLE1BQU15QixXQUFXO29DQUM5QmYsb0JBQW9CQTtvQ0FDcEJFLFdBQVdBO3FDQUVYO2dDQUVIRixzQkFBQUEsV0FBQUEsR0FDQyxxQkFBQ21CLGlCQUFBQSxlQUFlO29DQUFDM0IsWUFBWUE7Ozs7Ozs7O0lBTzNDOztRQTFFYSxxQkFRYkYsS0FBQUEsR0FBUTtZQUFFSixjQUFjO1FBQU07O0FBbUVoQyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcYXBwXFxSZWFjdERldk92ZXJsYXkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgT3ZlcmxheVN0YXRlIH0gZnJvbSAnLi4vc2hhcmVkJ1xuaW1wb3J0IHsgU2hhZG93UG9ydGFsIH0gZnJvbSAnLi4vaW50ZXJuYWwvY29tcG9uZW50cy9TaGFkb3dQb3J0YWwnXG5pbXBvcnQgeyBCdWlsZEVycm9yIH0gZnJvbSAnLi4vaW50ZXJuYWwvY29udGFpbmVyL0J1aWxkRXJyb3InXG5pbXBvcnQgeyBFcnJvcnMgfSBmcm9tICcuLi9pbnRlcm5hbC9jb250YWluZXIvRXJyb3JzJ1xuaW1wb3J0IHsgU3RhdGljSW5kaWNhdG9yIH0gZnJvbSAnLi4vaW50ZXJuYWwvY29udGFpbmVyL1N0YXRpY0luZGljYXRvcidcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi9pbnRlcm5hbC9zdHlsZXMvQmFzZSdcbmltcG9ydCB7IENvbXBvbmVudFN0eWxlcyB9IGZyb20gJy4uL2ludGVybmFsL3N0eWxlcy9Db21wb25lbnRTdHlsZXMnXG5pbXBvcnQgeyBDc3NSZXNldCB9IGZyb20gJy4uL2ludGVybmFsL3N0eWxlcy9Dc3NSZXNldCdcbmltcG9ydCB7IFJvb3RMYXlvdXRNaXNzaW5nVGFnc0Vycm9yIH0gZnJvbSAnLi4vaW50ZXJuYWwvY29udGFpbmVyL3Jvb3QtbGF5b3V0LW1pc3NpbmctdGFncy1lcnJvcidcbmltcG9ydCB0eXBlIHsgRGlzcGF0Y2hlciB9IGZyb20gJy4vaG90LXJlbG9hZGVyLWNsaWVudCdcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL3J1bnRpbWUtZXJyb3ItaGFuZGxlcidcblxuaW50ZXJmYWNlIFJlYWN0RGV2T3ZlcmxheVN0YXRlIHtcbiAgaXNSZWFjdEVycm9yOiBib29sZWFuXG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWFjdERldk92ZXJsYXkgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PFxuICB7XG4gICAgc3RhdGU6IE92ZXJsYXlTdGF0ZVxuICAgIGRpc3BhdGNoZXI/OiBEaXNwYXRjaGVyXG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICB9LFxuICBSZWFjdERldk92ZXJsYXlTdGF0ZVxuPiB7XG4gIHN0YXRlID0geyBpc1JlYWN0RXJyb3I6IGZhbHNlIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yOiBFcnJvcik6IFJlYWN0RGV2T3ZlcmxheVN0YXRlIHtcbiAgICBpZiAoIWVycm9yLnN0YWNrKSByZXR1cm4geyBpc1JlYWN0RXJyb3I6IGZhbHNlIH1cblxuICAgIFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yID0gdHJ1ZVxuICAgIHJldHVybiB7XG4gICAgICBpc1JlYWN0RXJyb3I6IHRydWUsXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgc3RhdGUsIGNoaWxkcmVuLCBkaXNwYXRjaGVyIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyBpc1JlYWN0RXJyb3IgfSA9IHRoaXMuc3RhdGVcblxuICAgIGNvbnN0IGhhc0J1aWxkRXJyb3IgPSBzdGF0ZS5idWlsZEVycm9yICE9IG51bGxcbiAgICBjb25zdCBoYXNSdW50aW1lRXJyb3JzID0gQm9vbGVhbihzdGF0ZS5lcnJvcnMubGVuZ3RoKVxuICAgIGNvbnN0IGhhc1N0YXRpY0luZGljYXRvciA9IHN0YXRlLnN0YXRpY0luZGljYXRvclxuICAgIGNvbnN0IGRlYnVnSW5mbyA9IHN0YXRlLmRlYnVnSW5mb1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtpc1JlYWN0RXJyb3IgPyAoXG4gICAgICAgICAgPGh0bWw+XG4gICAgICAgICAgICA8aGVhZD48L2hlYWQ+XG4gICAgICAgICAgICA8Ym9keT48L2JvZHk+XG4gICAgICAgICAgPC9odG1sPlxuICAgICAgICApIDogKFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICl9XG4gICAgICAgIDxTaGFkb3dQb3J0YWw+XG4gICAgICAgICAgPENzc1Jlc2V0IC8+XG4gICAgICAgICAgPEJhc2UgLz5cbiAgICAgICAgICA8Q29tcG9uZW50U3R5bGVzIC8+XG4gICAgICAgICAge3N0YXRlLnJvb3RMYXlvdXRNaXNzaW5nVGFncz8ubGVuZ3RoID8gKFxuICAgICAgICAgICAgPFJvb3RMYXlvdXRNaXNzaW5nVGFnc0Vycm9yXG4gICAgICAgICAgICAgIG1pc3NpbmdUYWdzPXtzdGF0ZS5yb290TGF5b3V0TWlzc2luZ1RhZ3N9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBoYXNCdWlsZEVycm9yID8gKFxuICAgICAgICAgICAgPEJ1aWxkRXJyb3JcbiAgICAgICAgICAgICAgbWVzc2FnZT17c3RhdGUuYnVpbGRFcnJvciF9XG4gICAgICAgICAgICAgIHZlcnNpb25JbmZvPXtzdGF0ZS52ZXJzaW9uSW5mb31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHtoYXNSdW50aW1lRXJyb3JzID8gKFxuICAgICAgICAgICAgICAgIDxFcnJvcnNcbiAgICAgICAgICAgICAgICAgIGlzQXBwRGlyPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgaW5pdGlhbERpc3BsYXlTdGF0ZT17XG4gICAgICAgICAgICAgICAgICAgIGlzUmVhY3RFcnJvciA/ICdmdWxsc2NyZWVuJyA6ICdtaW5pbWl6ZWQnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBlcnJvcnM9e3N0YXRlLmVycm9yc31cbiAgICAgICAgICAgICAgICAgIHZlcnNpb25JbmZvPXtzdGF0ZS52ZXJzaW9uSW5mb31cbiAgICAgICAgICAgICAgICAgIGhhc1N0YXRpY0luZGljYXRvcj17aGFzU3RhdGljSW5kaWNhdG9yfVxuICAgICAgICAgICAgICAgICAgZGVidWdJbmZvPXtkZWJ1Z0luZm99XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICAgICAge2hhc1N0YXRpY0luZGljYXRvciAmJiAoXG4gICAgICAgICAgICAgICAgPFN0YXRpY0luZGljYXRvciBkaXNwYXRjaGVyPXtkaXNwYXRjaGVyfSAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TaGFkb3dQb3J0YWw+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSZWFjdERldk92ZXJsYXkiLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsInN0YWNrIiwiaXNSZWFjdEVycm9yIiwiUnVudGltZUVycm9ySGFuZGxlciIsImhhZFJ1bnRpbWVFcnJvciIsInJlbmRlciIsInN0YXRlIiwiY2hpbGRyZW4iLCJkaXNwYXRjaGVyIiwicHJvcHMiLCJoYXNCdWlsZEVycm9yIiwiYnVpbGRFcnJvciIsImhhc1J1bnRpbWVFcnJvcnMiLCJCb29sZWFuIiwiZXJyb3JzIiwibGVuZ3RoIiwiaGFzU3RhdGljSW5kaWNhdG9yIiwic3RhdGljSW5kaWNhdG9yIiwiZGVidWdJbmZvIiwiaHRtbCIsImhlYWQiLCJib2R5IiwiU2hhZG93UG9ydGFsIiwiQ3NzUmVzZXQiLCJCYXNlIiwiQ29tcG9uZW50U3R5bGVzIiwicm9vdExheW91dE1pc3NpbmdUYWdzIiwiUm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3IiLCJtaXNzaW5nVGFncyIsIkJ1aWxkRXJyb3IiLCJtZXNzYWdlIiwidmVyc2lvbkluZm8iLCJFcnJvcnMiLCJpc0FwcERpciIsImluaXRpYWxEaXNwbGF5U3RhdGUiLCJTdGF0aWNJbmRpY2F0b3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/app/hot-reloader-client.js":
|
||
/*!***********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/app/hot-reloader-client.js ***!
|
||
\***********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* module decorator */ module = __webpack_require__.nmd(module);\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__(/*! ../internal/helpers/format-webpack-messages */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js\"));\nconst _navigation = __webpack_require__(/*! ../../navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _parsestack = __webpack_require__(/*! ../internal/helpers/parse-stack */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js\");\nconst _ReactDevOverlay = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./ReactDevOverlay */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js\"));\nconst _useerrorhandler = __webpack_require__(/*! ../internal/helpers/use-error-handler */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-error-handler.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../internal/helpers/runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js\");\nconst _usewebsocket = __webpack_require__(/*! ../internal/helpers/use-websocket */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.js\");\nconst _parsecomponentstack = __webpack_require__(/*! ../internal/helpers/parse-component-stack */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _extractmodulesfromturbopackmessage = __webpack_require__(/*! ../../../../server/dev/extract-modules-from-turbopack-message */ \"(ssr)/./node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js\");\nconst _navigationuntracked = __webpack_require__(/*! ../../navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _stitchederror = __webpack_require__(/*! ../internal/helpers/stitched-error */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js\");\nlet mostRecentCompilationHash = null;\nlet __nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet reloading = false;\nlet startLatency = 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}\nfunction handleBeforeHotUpdateWebpack(dispatcher, hasUpdates) {\n if (hasUpdates) {\n dispatcher.onBeforeRefresh();\n }\n}\nfunction handleSuccessfulHotUpdateWebpack(dispatcher, sendMessage, updatedModules) {\n resolvePendingHotUpdateWebpack();\n dispatcher.onBuildOk();\n reportHmrLatency(sendMessage, updatedModules);\n dispatcher.onRefresh();\n}\nfunction reportHmrLatency(sendMessage, updatedModules) {\n if (!startLatency) return;\n let endLatency = Date.now();\n const latency = endLatency - startLatency;\n console.log(\"[Fast Refresh] done in \" + latency + \"ms\");\n sendMessage(JSON.stringify({\n event: 'client-hmr-latency',\n id: window.__nextDevClientId,\n startTime: startLatency,\n endTime: endLatency,\n page: window.location.pathname,\n updatedModules,\n // Whether the page (tab) was hidden at the time the event occurred.\n // This can impact the accuracy of the event's timing.\n isPageHidden: document.visibilityState === 'hidden'\n }));\n}\n// There is a newer version of the code available.\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n}\n/**\n * Is there a newer version of this code available?\n * For webpack: Check if the hash changed compared to __webpack_hash__\n * For Turbopack: Always true because it doesn't have __webpack_hash__\n */ function isUpdateAvailable() {\n if (false) {}\n /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n return mostRecentCompilationHash !== __webpack_require__.h();\n}\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n // @ts-expect-error module.hot exists\n return module.hot.status() === 'idle';\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === 'idle') {\n // @ts-expect-error module.hot exists\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n // @ts-expect-error module.hot exists\n module.hot.addStatusHandler(handler);\n }\n}\nfunction performFullReload(err, sendMessage) {\n const stackTrace = err && (err.stack && err.stack.split('\\n').slice(0, 5).join('\\n') || err.message || err + '');\n sendMessage(JSON.stringify({\n event: 'client-full-reload',\n stackTrace,\n hadRuntimeError: !!_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 tryApplyUpdates(onBeforeUpdate, onHotUpdateSuccess, sendMessage, dispatcher) {\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n resolvePendingHotUpdateWebpack();\n dispatcher.onBuildOk();\n reportHmrLatency(sendMessage, []);\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || !updatedModules) {\n if (err) {\n console.warn('[Fast Refresh] performing full reload\\n\\n' + \"Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\\n\" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\\n\\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\\n' + 'Fast Refresh requires at least one parent function component in your React tree.');\n } else if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n }\n performFullReload(err, sendMessage);\n return;\n }\n const hasUpdates = Boolean(updatedModules.length);\n if (typeof onHotUpdateSuccess === 'function') {\n // Maybe we want to do something.\n onHotUpdateSuccess(updatedModules);\n }\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdates(hasUpdates ? ()=>{} : onBeforeUpdate, hasUpdates ? ()=>dispatcher.onBuildOk() : onHotUpdateSuccess, sendMessage, dispatcher);\n } else {\n dispatcher.onBuildOk();\n if (false) {}\n }\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n // @ts-expect-error module.hot exists\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (!updatedModules) {\n return null;\n }\n if (typeof onBeforeUpdate === 'function') {\n const hasUpdates = Boolean(updatedModules.length);\n onBeforeUpdate(hasUpdates);\n }\n // https://webpack.js.org/api/hot-module-replacement/#apply\n // @ts-expect-error module.hot exists\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\n/** Handles messages from the sevrer for the App Router. */ function processMessage(obj, sendMessage, processTurbopackMessage, router, dispatcher, 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 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 tryApplyUpdates(function onBeforeHotUpdate(hasUpdates) {\n handleBeforeHotUpdateWebpack(dispatcher, hasUpdates);\n }, function onSuccessfulHotUpdate(webpackUpdatedModules) {\n // Only dismiss it when we're sure it's a hot update.\n // Otherwise it would flicker right before the reload.\n handleSuccessfulHotUpdateWebpack(dispatcher, sendMessage, webpackUpdatedModules);\n }, sendMessage, dispatcher);\n }\n }\n switch(obj.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.APP_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 var _localStorage;\n // the indicator can be hidden for an hour.\n // check if it's still hidden\n const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));\n const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;\n if (!isHidden) {\n dispatcher.onStaticIndicator(true);\n }\n } else {\n dispatcher.onStaticIndicator(false);\n }\n }\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n {\n startLatency = Date.now();\n if (true) {\n setPendingHotUpdateWebpack();\n }\n console.log('[Fast Refresh] rebuilding');\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n {\n if (obj.hash) {\n handleAvailableHash(obj.hash);\n }\n const { errors, warnings } = obj;\n // Is undefined when it's a 'built' event\n if ('versionInfo' in obj) dispatcher.onVersionInfo(obj.versionInfo);\n if ('debug' in obj && obj.debug) dispatcher.onDebugInfo(obj.debug);\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 // Handle hot updates\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 const updatedModules = (0, _extractmodulesfromturbopackmessage.extractModulesFromTurbopackMessage)(obj.data);\n dispatcher.onBeforeRefresh();\n processTurbopackMessage({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: obj.data\n });\n dispatcher.onRefresh();\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n performFullReload(null, sendMessage);\n }\n reportHmrLatency(sendMessage, updatedModules);\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 sendMessage(JSON.stringify({\n event: 'server-component-reload-page',\n clientId: __nextDevClientId\n }));\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n (0, _react.startTransition)(()=>{\n router.hmrRefresh();\n dispatcher.onRefresh();\n });\n if (false) {}\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n sendMessage(JSON.stringify({\n event: 'client-reload-page',\n clientId: __nextDevClientId\n }));\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ADDED_PAGE:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.REMOVED_PAGE:\n {\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 = new Error(message);\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 default:\n {}\n }\n}\nfunction HotReload(param) {\n let { assetPrefix, children } = param;\n const [state, dispatch] = (0, _shared.useErrorOverlayReducer)();\n const dispatcher = (0, _react.useMemo)(()=>{\n return {\n onBuildOk () {\n dispatch({\n type: _shared.ACTION_BUILD_OK\n });\n },\n onBuildError (message) {\n dispatch({\n type: _shared.ACTION_BUILD_ERROR,\n message\n });\n },\n onBeforeRefresh () {\n dispatch({\n type: _shared.ACTION_BEFORE_REFRESH\n });\n },\n onRefresh () {\n dispatch({\n type: _shared.ACTION_REFRESH\n });\n },\n onVersionInfo (versionInfo) {\n dispatch({\n type: _shared.ACTION_VERSION_INFO,\n versionInfo\n });\n },\n onStaticIndicator (status) {\n dispatch({\n type: _shared.ACTION_STATIC_INDICATOR,\n staticIndicator: status\n });\n },\n onDebugInfo (debugInfo) {\n dispatch({\n type: _shared.ACTION_DEBUG_INFO,\n debugInfo\n });\n }\n };\n }, [\n dispatch\n ]);\n const handleOnUnhandledError = (0, _react.useCallback)((error)=>{\n const errorDetails = error.details;\n // Component stack is added to the error in use-error-handler in case there was a hydration error\n const componentStackTrace = error._componentStack || (errorDetails == null ? void 0 : errorDetails.componentStack);\n const warning = errorDetails == null ? void 0 : errorDetails.warning;\n const stitchedError = (0, _stitchederror.getReactStitchedError)(error);\n dispatch({\n type: _shared.ACTION_UNHANDLED_ERROR,\n reason: stitchedError,\n frames: (0, _parsestack.parseStack)(stitchedError.stack || ''),\n componentStackFrames: typeof componentStackTrace === 'string' ? (0, _parsecomponentstack.parseComponentStack)(componentStackTrace) : undefined,\n warning\n });\n }, [\n dispatch\n ]);\n const handleOnUnhandledRejection = (0, _react.useCallback)((reason)=>{\n const stitchedError = (0, _stitchederror.getReactStitchedError)(reason);\n dispatch({\n type: _shared.ACTION_UNHANDLED_REJECTION,\n reason: stitchedError,\n frames: (0, _parsestack.parseStack)(stitchedError.stack || '')\n });\n }, [\n dispatch\n ]);\n (0, _useerrorhandler.useErrorHandler)(handleOnUnhandledError, handleOnUnhandledRejection);\n const webSocketRef = (0, _usewebsocket.useWebsocket)(assetPrefix);\n (0, _usewebsocket.useWebsocketPing)(webSocketRef);\n const sendMessage = (0, _usewebsocket.useSendMessage)(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 var _localStorage;\n const indicatorHiddenAt = Number((_localStorage = localStorage) == null ? void 0 : _localStorage.getItem('__NEXT_DISMISS_PRERENDER_INDICATOR'));\n const isHidden = indicatorHiddenAt && !isNaN(indicatorHiddenAt) && Date.now() < indicatorHiddenAt;\n if (!isHidden) {\n dispatcher.onStaticIndicator(true);\n }\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 dispatcher.onStaticIndicator(false);\n }\n }\n }, [\n pathname,\n dispatcher\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, dispatcher, appIsrManifestRef, pathnameRef);\n } catch (err) {\n var _err_stack;\n console.warn('[HMR] Invalid message: ' + JSON.stringify(event.data) + '\\n' + ((_err_stack = err == null ? void 0 : err.stack) != null ? _err_stack : ''));\n }\n };\n websocket.addEventListener('message', handler);\n return ()=>websocket.removeEventListener('message', handler);\n }, [\n sendMessage,\n router,\n webSocketRef,\n dispatcher,\n processTurbopackMessage,\n appIsrManifestRef\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_ReactDevOverlay.default, {\n state: state,\n dispatcher: dispatcher,\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=hot-reloader-client.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2FwcC9ob3QtcmVsb2FkZXItY2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUF5Z0JBLE9BK0tDO2VBL0t1QkE7O0lBdmNSQyw4QkFBOEI7ZUFBOUJBOzs7OzttQ0FqRXlEO2dGQUNuRDs0RkFDWTt3Q0FDUjtvQ0FZbkI7d0NBQ29CO3NGQUNDOzZDQUNJO2lEQUNJOzBDQU03QjtpREFDNkI7OENBRVE7Z0VBS087aURBSWQ7MkNBQ0M7QUFZdEMsSUFBSUMsNEJBQWlDO0FBQ3JDLElBQUlDLG9CQUFvQkMsS0FBS0MsS0FBSyxDQUFDRCxLQUFLRSxNQUFNLEtBQUssTUFBTUMsS0FBS0MsR0FBRztBQUNqRSxJQUFJQyxZQUFZO0FBQ2hCLElBQUlDLGVBQThCO0FBRWxDLElBQUlDLDBCQUEwQkMsUUFBUUMsT0FBTztBQUM3QyxJQUFJQyxpQ0FBNkMsS0FBTztBQUN4RCxTQUFTQztJQUNQSiwwQkFBMEIsSUFBSUMsUUFBUSxDQUFDQztRQUNyQ0MsaUNBQWlDO1lBQy9CRDtRQUNGO0lBQ0Y7QUFDRjtBQUVPLFNBQVNaO0lBQ2QsT0FBT1U7QUFDVDtBQUVBLFNBQVNLLDZCQUNQQyxVQUFzQixFQUN0QkMsVUFBbUI7SUFFbkIsSUFBSUEsWUFBWTtRQUNkRCxXQUFXRSxlQUFlO0lBQzVCO0FBQ0Y7QUFFQSxTQUFTQyxpQ0FDUEgsVUFBc0IsRUFDdEJJLFdBQXNDLEVBQ3RDQyxjQUFxQztJQUVyQ1I7SUFDQUcsV0FBV00sU0FBUztJQUNwQkMsaUJBQWlCSCxhQUFhQztJQUU5QkwsV0FBV1EsU0FBUztBQUN0QjtBQUVBLFNBQVNELGlCQUNQSCxXQUFzQyxFQUN0Q0MsY0FBcUM7SUFFckMsSUFBSSxDQUFDWixjQUFjO0lBQ25CLElBQUlnQixhQUFhbkIsS0FBS0MsR0FBRztJQUN6QixNQUFNbUIsVUFBVUQsYUFBYWhCO0lBQzdCa0IsUUFBUUMs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VUUsbUJBQW1CLENBQUMsV0FBVzFJO0lBQ3hELEdBQUc7UUFDRG5DO1FBQ0FvRTtRQUNBNEY7UUFDQXBLO1FBQ0F1RTtRQUNBRTtLQUNEO0lBRUQsT0FDRSxXQURGLEdBQ0UscUJBQUN5RyxpQkFBQUEsT0FBZTtRQUFDOUMsT0FBT0E7UUFBT3BJLFlBQVlBO2tCQUN4Q21JOztBQUdQIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxhcHBcXGhvdC1yZWxvYWRlci1jbGllbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCBzdGFydFRyYW5zaXRpb24sIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHN0cmlwQW5zaSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaSdcbmltcG9ydCBmb3JtYXRXZWJwYWNrTWVzc2FnZXMgZnJvbSAnLi4vaW50ZXJuYWwvaGVscGVycy9mb3JtYXQtd2VicGFjay1tZXNzYWdlcydcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJy4uLy4uL25hdmlnYXRpb24nXG5pbXBvcnQge1xuICBBQ1RJT05fQkVGT1JFX1JFRlJFU0gsXG4gIEFDVElPTl9CVUlMRF9FUlJPUixcbiAgQUNUSU9OX0JVSUxEX09LLFxuICBBQ1RJT05fREVCVUdfSU5GTyxcbiAgQUNUSU9OX1JFRlJFU0gsXG4gIEFDVElPTl9TVEFUSUNfSU5ESUNBVE9SLFxuICBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SLFxuICBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTixcbiAgQUNUSU9OX1ZFUlNJT05fSU5GTyxcbiAgdXNlRXJyb3JPdmVybGF5UmVkdWNlcixcbn0gZnJvbSAnLi4vc2hhcmVkJ1xuaW1wb3J0IHsgcGFyc2VTdGFjayB9IGZyb20gJy4uL2ludGVybmFsL2hlbHBlcnMvcGFyc2Utc3RhY2snXG5pbXBvcnQgUmVhY3REZXZPdmVybGF5IGZyb20gJy4vUmVhY3REZXZPdmVybGF5J1xuaW1wb3J0IHsgdXNlRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi4vaW50ZXJuYWwvaGVscGVycy91c2UtZXJyb3ItaGFuZGxlcidcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL3J1bnRpbWUtZXJyb3ItaGFuZGxlcidcbmltcG9ydCB7XG4gIHVzZVNlbmRNZXNzYWdlLFxuICB1c2VUdXJib3BhY2ssXG4gIHVzZVdlYnNvY2tldCxcbiAgdXNlV2Vic29ja2V0UGluZyxcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaGVscGVycy91c2Utd2Vic29ja2V0J1xuaW1wb3J0IHsgcGFyc2VDb21wb25lbnRTdGFjayB9IGZyb20gJy4uL2ludGVybmFsL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrJ1xuaW1wb3J0IHR5cGUgeyBWZXJzaW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvcGFyc2UtdmVyc2lvbi1pbmZvJ1xuaW1wb3J0IHsgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7XG4gIEhNUl9BQ1RJT05fVFlQRVMsXG4gIFR1cmJvcGFja01zZ1RvQnJvd3Nlcixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgeyBleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9leHRyYWN0LW1vZHVsZXMtZnJvbS10dXJib3BhY2stbWVzc2FnZSdcbmltcG9ydCB7IFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiB9IGZyb20gJy4uL3NoYXJlZCdcbmltcG9ydCB0eXBlIHsgSHlkcmF0aW9uRXJyb3JTdGF0ZSB9IGZyb20gJy4uL2ludGVybmFsL2hlbHBlcnMvaHlkcmF0aW9uLWVycm9yLWluZm8nXG5pbXBvcnQgdHlwZSB7IERlYnVnSW5mbyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uLXVudHJhY2tlZCdcbmltcG9ydCB7IGdldFJlYWN0U3RpdGNoZWRFcnJvciB9IGZyb20gJy4uL2ludGVybmFsL2hlbHBlcnMvc3RpdGNoZWQtZXJyb3InXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcGF0Y2hlciB7XG4gIG9uQnVpbGRPaygpOiB2b2lkXG4gIG9uQnVpbGRFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkXG4gIG9uVmVyc2lvbkluZm8odmVyc2lvbkluZm86IFZlcnNpb25JbmZvKTogdm9pZFxuICBvbkRlYnVnSW5mbyhkZWJ1Z0luZm86IERlYnVnSW5mbyk6IHZvaWRcbiAgb25CZWZvcmVSZWZyZXNoKCk6IHZvaWRcbiAgb25SZWZyZXNoKCk6IHZvaWRcbiAgb25TdGF0aWNJbmRpY2F0b3Ioc3RhdHVzOiBib29sZWFuKTogdm9pZFxufVxuXG5sZXQgbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaDogYW55ID0gbnVsbFxubGV0IF9fbmV4dERldkNsaWVudElkID0gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMTAwICsgRGF0ZS5ub3coKSlcbmxldCByZWxvYWRpbmcgPSBmYWxzZVxubGV0IHN0YXJ0TGF0ZW5jeTogbnVtYmVyIHwgbnVsbCA9IG51bGxcblxubGV0IHBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrID0gUHJvbWlzZS5yZXNvbHZlKClcbmxldCByZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7fVxuZnVuY3Rpb24gc2V0UGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKSB7XG4gIHBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICByZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2sgPSAoKSA9PiB7XG4gICAgICByZXNvbHZlKClcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWl0Rm9yV2VicGFja1J1bnRpbWVIb3RVcGRhdGUoKSB7XG4gIHJldHVybiBwZW5kaW5nSG90VXBkYXRlV2VicGFja1xufVxuXG5mdW5jdGlvbiBoYW5kbGVCZWZvcmVIb3RVcGRhdGVXZWJwYWNrKFxuICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyLFxuICBoYXNVcGRhdGVzOiBib29sZWFuXG4pIHtcbiAgaWYgKGhhc1VwZGF0ZXMpIHtcbiAgICBkaXNwYXRjaGVyLm9uQmVmb3JlUmVmcmVzaCgpXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlU3VjY2Vzc2Z1bEhvdFVwZGF0ZVdlYnBhY2soXG4gIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIsXG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICB1cGRhdGVkTW9kdWxlczogUmVhZG9ubHlBcnJheTxzdHJpbmc+XG4pIHtcbiAgcmVzb2x2ZVBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrKClcbiAgZGlzcGF0Y2hlci5vbkJ1aWxkT2soKVxuICByZXBvcnRIbXJMYXRlbmN5KHNlbmRNZXNzYWdlLCB1cGRhdGVkTW9kdWxlcylcblxuICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG59XG5cbmZ1bmN0aW9uIHJlcG9ydEhtckxhdGVuY3koXG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICB1cGRhdGVkTW9kdWxlczogUmVhZG9ubHlBcnJheTxzdHJpbmc+XG4pIHtcbiAgaWYgKCFzdGFydExhdGVuY3kpIHJldHVyblxuICBsZXQgZW5kTGF0ZW5jeSA9IERhdGUubm93KClcbiAgY29uc3QgbGF0ZW5jeSA9IGVuZExhdGVuY3kgLSBzdGFydExhdGVuY3lcbiAgY29uc29sZS5sb2coYFtGYXN0IFJlZnJlc2hdIGRvbmUgaW4gJHtsYXRlbmN5fW1zYClcbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtaG1yLWxhdGVuY3knLFxuICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgIHN0YXJ0VGltZTogc3RhcnRMYXRlbmN5LFxuICAgICAgZW5kVGltZTogZW5kTGF0ZW5jeSxcbiAgICAgIHBhZ2U6IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICAgIHVwZGF0ZWRNb2R1bGVzLFxuICAgICAgLy8gV2hldGhlciB0aGUgcGFnZSAodGFiKSB3YXMgaGlkZGVuIGF0IHRoZSB0aW1lIHRoZSBldmVudCBvY2N1cnJlZC5cbiAgICAgIC8vIFRoaXMgY2FuIGltcGFjdCB0aGUgYWNjdXJhY3kgb2YgdGhlIGV2ZW50J3MgdGltaW5nLlxuICAgICAgaXNQYWdlSGlkZGVuOiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nLFxuICAgIH0pXG4gIClcbn1cblxuLy8gVGhlcmUgaXMgYSBuZXdlciB2ZXJzaW9uIG9mIHRoZSBjb2RlIGF2YWlsYWJsZS5cbmZ1bmN0aW9uIGhhbmRsZUF2YWlsYWJsZUhhc2goaGFzaDogc3RyaW5nKSB7XG4gIC8vIFVwZGF0ZSBsYXN0IGtub3duIGNvbXBpbGF0aW9uIGhhc2guXG4gIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggPSBoYXNoXG59XG5cbi8qKlxuICogSXMgdGhlcmUgYSBuZXdlciB2ZXJzaW9uIG9mIHRoaXMgY29kZSBhdmFpbGFibGU/XG4gKiBGb3Igd2VicGFjazogQ2hlY2sgaWYgdGhlIGhhc2ggY2hhbmdlZCBjb21wYXJlZCB0byBfX3dlYnBhY2tfaGFzaF9fXG4gKiBGb3IgVHVyYm9wYWNrOiBBbHdheXMgdHJ1ZSBiZWNhdXNlIGl0IGRvZXNuJ3QgaGF2ZSBfX3dlYnBhY2tfaGFzaF9fXG4gKi9cbmZ1bmN0aW9uIGlzVXBkYXRlQXZhaWxhYmxlKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qIGdsb2JhbHMgX193ZWJwYWNrX2hhc2hfXyAqL1xuICAvLyBfX3dlYnBhY2tfaGFzaF9fIGlzIHRoZSBoYXNoIG9mIHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uLlxuICAvLyBJdCdzIGEgZ2xvYmFsIHZhcmlhYmxlIGluamVjdGVkIGJ5IFdlYnBhY2suXG4gIHJldHVybiBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fXG59XG5cbi8vIFdlYnBhY2sgZGlzYWxsb3dzIHVwZGF0ZXMgaW4gb3RoZXIgc3RhdGVzLlxuZnVuY3Rpb24gY2FuQXBwbHlVcGRhdGVzKCkge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIG1vZHVsZS5ob3QgZXhpc3RzXG4gIHJldHVybiBtb2R1bGUuaG90LnN0YXR1cygpID09PSAnaWRsZSdcbn1cbmZ1bmN0aW9uIGFmdGVyQXBwbHlVcGRhdGVzKGZuOiBhbnkpIHtcbiAgaWYgKGNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgZm4oKVxuICB9IGVsc2Uge1xuICAgIGZ1bmN0aW9uIGhhbmRsZXIoc3RhdHVzOiBhbnkpIHtcbiAgICAgIGlmIChzdGF0dXMgPT09ICdpZGxlJykge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG1vZHVsZS5ob3QgZXhpc3RzXG4gICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKVxuICAgICAgICBmbigpXG4gICAgICB9XG4gICAgfVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgbW9kdWxlLmhvdCBleGlzdHNcbiAgICBtb2R1bGUuaG90LmFkZFN0YXR1c0hhbmRsZXIoaGFuZGxlcilcbiAgfVxufVxuXG5mdW5jdGlvbiBwZXJmb3JtRnVsbFJlbG9hZChlcnI6IGFueSwgc2VuZE1lc3NhZ2U6IGFueSkge1xuICBjb25zdCBzdGFja1RyYWNlID1cbiAgICBlcnIgJiZcbiAgICAoKGVyci5zdGFjayAmJiBlcnIuc3RhY2suc3BsaXQoJ1xcbicpLnNsaWNlKDAsIDUpLmpvaW4oJ1xcbicpKSB8fFxuICAgICAgZXJyLm1lc3NhZ2UgfHxcbiAgICAgIGVyciArICcnKVxuXG4gIHNlbmRNZXNzYWdlKFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGV2ZW50OiAnY2xpZW50LWZ1bGwtcmVsb2FkJyxcbiAgICAgIHN0YWNrVHJhY2UsXG4gICAgICBoYWRSdW50aW1lRXJyb3I6ICEhUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IsXG4gICAgICBkZXBlbmRlbmN5Q2hhaW46IGVyciA/IGVyci5kZXBlbmRlbmN5Q2hhaW4gOiB1bmRlZmluZWQsXG4gICAgfSlcbiAgKVxuXG4gIGlmIChyZWxvYWRpbmcpIHJldHVyblxuICByZWxvYWRpbmcgPSB0cnVlXG4gIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxufVxuXG4vLyBBdHRlbXB0IHRvIHVwZGF0ZSBjb2RlIG9uIHRoZSBmbHksIGZhbGwgYmFjayB0byBhIGhhcmQgcmVsb2FkLlxuZnVuY3Rpb24gdHJ5QXBwbHlVcGRhdGVzKFxuICBvbkJlZm9yZVVwZGF0ZTogKGhhc1VwZGF0ZXM6IGJvb2xlYW4pID0+IHZvaWQsXG4gIG9uSG90VXBkYXRlU3VjY2VzczogKHVwZGF0ZWRNb2R1bGVzOiBzdHJpbmdbXSkgPT4gdm9pZCxcbiAgc2VuZE1lc3NhZ2U6IGFueSxcbiAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlclxuKSB7XG4gIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICByZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKVxuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICByZXBvcnRIbXJMYXRlbmN5KHNlbmRNZXNzYWdlLCBbXSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhlcnI6IGFueSwgdXBkYXRlZE1vZHVsZXM6IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgIGlmIChlcnIgfHwgUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IgfHwgIXVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZFxcblxcbicgK1xuICAgICAgICAgICAgXCJGYXN0IFJlZnJlc2ggd2lsbCBwZXJmb3JtIGEgZnVsbCByZWxvYWQgd2hlbiB5b3UgZWRpdCBhIGZpbGUgdGhhdCdzIGltcG9ydGVkIGJ5IG1vZHVsZXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyaW5nIHRyZWUuXFxuXCIgK1xuICAgICAgICAgICAgJ1lvdSBtaWdodCBoYXZlIGEgZmlsZSB3aGljaCBleHBvcnRzIGEgUmVhY3QgY29tcG9uZW50IGJ1dCBhbHNvIGV4cG9ydHMgYSB2YWx1ZSB0aGF0IGlzIGltcG9ydGVkIGJ5IGEgbm9uLVJlYWN0IGNvbXBvbmVudCBmaWxlLlxcbicgK1xuICAgICAgICAgICAgJ0NvbnNpZGVyIG1pZ3JhdGluZyB0aGUgbm9uLVJlYWN0IGNvbXBvbmVudCBleHBvcnQgdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBpbXBvcnRpbmcgaXQgaW50byBib3RoIGZpbGVzLlxcblxcbicgK1xuICAgICAgICAgICAgJ0l0IGlzIGFsc28gcG9zc2libGUgdGhlIHBhcmVudCBjb21wb25lbnQgb2YgdGhlIGNvbXBvbmVudCB5b3UgZWRpdGVkIGlzIGEgY2xhc3MgY29tcG9uZW50LCB3aGljaCBkaXNhYmxlcyBGYXN0IFJlZnJlc2guXFxuJyArXG4gICAgICAgICAgICAnRmFzdCBSZWZyZXNoIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJlbnQgZnVuY3Rpb24gY29tcG9uZW50IGluIHlvdXIgUmVhY3QgdHJlZS4nXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAoUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUilcbiAgICAgIH1cbiAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKGVyciwgc2VuZE1lc3NhZ2UpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBoYXNVcGRhdGVzID0gQm9vbGVhbih1cGRhdGVkTW9kdWxlcy5sZW5ndGgpXG4gICAgaWYgKHR5cGVvZiBvbkhvdFVwZGF0ZVN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIE1heWJlIHdlIHdhbnQgdG8gZG8gc29tZXRoaW5nLlxuICAgICAgb25Ib3RVcGRhdGVTdWNjZXNzKHVwZGF0ZWRNb2R1bGVzKVxuICAgIH1cblxuICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgIHRyeUFwcGx5VXBkYXRlcyhcbiAgICAgICAgaGFzVXBkYXRlcyA/ICgpID0+IHt9IDogb25CZWZvcmVVcGRhdGUsXG4gICAgICAgIGhhc1VwZGF0ZXMgPyAoKSA9PiBkaXNwYXRjaGVyLm9uQnVpbGRPaygpIDogb25Ib3RVcGRhdGVTdWNjZXNzLFxuICAgICAgICBzZW5kTWVzc2FnZSxcbiAgICAgICAgZGlzcGF0Y2hlclxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaGVyLm9uQnVpbGRPaygpXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICBhZnRlckFwcGx5VXBkYXRlcygoKSA9PiB7XG4gICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKClcbiAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvaG90LW1vZHVsZS1yZXBsYWNlbWVudC8jY2hlY2tcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBtb2R1bGUuaG90IGV4aXN0c1xuICBtb2R1bGUuaG90XG4gICAgLmNoZWNrKC8qIGF1dG9BcHBseSAqLyBmYWxzZSlcbiAgICAudGhlbigodXBkYXRlZE1vZHVsZXM6IGFueVtdIHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKCF1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG9uQmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGhhc1VwZGF0ZXMgPSBCb29sZWFuKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aClcbiAgICAgICAgb25CZWZvcmVVcGRhdGUoaGFzVXBkYXRlcylcbiAgICAgIH1cbiAgICAgIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2FwcGx5XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG1vZHVsZS5ob3QgZXhpc3RzXG4gICAgICByZXR1cm4gbW9kdWxlLmhvdC5hcHBseSgpXG4gICAgfSlcbiAgICAudGhlbihcbiAgICAgICh1cGRhdGVkTW9kdWxlczogYW55W10gfCBudWxsKSA9PiB7XG4gICAgICAgIGhhbmRsZUFwcGx5VXBkYXRlcyhudWxsLCB1cGRhdGVkTW9kdWxlcylcbiAgICAgIH0sXG4gICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKGVyciwgbnVsbClcbiAgICAgIH1cbiAgICApXG59XG5cbi8qKiBIYW5kbGVzIG1lc3NhZ2VzIGZyb20gdGhlIHNldnJlciBmb3IgdGhlIEFwcCBSb3V0ZXIuICovXG5mdW5jdGlvbiBwcm9jZXNzTWVzc2FnZShcbiAgb2JqOiBITVJfQUNUSU9OX1RZUEVTLFxuICBzZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCxcbiAgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2U6IChtc2c6IFR1cmJvcGFja01zZ1RvQnJvd3NlcikgPT4gdm9pZCxcbiAgcm91dGVyOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VSb3V0ZXI+LFxuICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyLFxuICBhcHBJc3JNYW5pZmVzdFJlZjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlUmVmPixcbiAgcGF0aG5hbWVSZWY6IFJldHVyblR5cGU8dHlwZW9mIHVzZVJlZj5cbikge1xuICBpZiAoISgnYWN0aW9uJyBpbiBvYmopKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnMoZXJyb3JzOiBSZWFkb25seUFycmF5PHVua25vd24+KSB7XG4gICAgLy8gXCJNYXNzYWdlXCIgd2VicGFjayBtZXNzYWdlcy5cbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRXZWJwYWNrTWVzc2FnZXMoe1xuICAgICAgZXJyb3JzOiBlcnJvcnMsXG4gICAgICB3YXJuaW5nczogW10sXG4gICAgfSlcblxuICAgIC8vIE9ubHkgc2hvdyB0aGUgZmlyc3QgZXJyb3IuXG4gICAgZGlzcGF0Y2hlci5vbkJ1aWxkRXJyb3IoZm9ybWF0dGVkLmVycm9yc1swXSlcblxuICAgIC8vIEFsc28gbG9nIHRoZW0gdG8gdGhlIGNvbnNvbGUuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWQuZXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHN0cmlwQW5zaShmb3JtYXR0ZWQuZXJyb3JzW2ldKSlcbiAgICB9XG5cbiAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByZWxvYWQgbm93LlxuICAgIC8vIFdlIHdpbGwgcmVsb2FkIG9uIG5leHQgc3VjY2VzcyBpbnN0ZWFkLlxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICBpZiAoc2VsZi5fX05FWFRfSE1SX0NCKSB7XG4gICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQihmb3JtYXR0ZWQuZXJyb3JzWzBdKVxuICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlSG90VXBkYXRlKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5QXBwbHlVcGRhdGVzKFxuICAgICAgICBmdW5jdGlvbiBvbkJlZm9yZUhvdFVwZGF0ZShoYXNVcGRhdGVzOiBib29sZWFuKSB7XG4gICAgICAgICAgaGFuZGxlQmVmb3JlSG90VXBkYXRlV2VicGFjayhkaXNwYXRjaGVyLCBoYXNVcGRhdGVzKVxuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiBvblN1Y2Nlc3NmdWxIb3RVcGRhdGUod2VicGFja1VwZGF0ZWRNb2R1bGVzOiBzdHJpbmdbXSkge1xuICAgICAgICAgIC8vIE9ubHkgZGlzbWlzcyBpdCB3aGVuIHdlJ3JlIHN1cmUgaXQncyBhIGhvdCB1cGRhdGUuXG4gICAgICAgICAgLy8gT3RoZXJ3aXNlIGl0IHdvdWxkIGZsaWNrZXIgcmlnaHQgYmVmb3JlIHRoZSByZWxvYWQuXG4gICAgICAgICAgaGFuZGxlU3VjY2Vzc2Z1bEhvdFVwZGF0ZVdlYnBhY2soXG4gICAgICAgICAgICBkaXNwYXRjaGVyLFxuICAgICAgICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICAgICAgICB3ZWJwYWNrVXBkYXRlZE1vZHVsZXNcbiAgICAgICAgICApXG4gICAgICAgIH0sXG4gICAgICAgIHNlbmRNZXNzYWdlLFxuICAgICAgICBkaXNwYXRjaGVyXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgc3dpdGNoIChvYmouYWN0aW9uKSB7XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQVBQX0lTUl9NQU5JRkVTVDoge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9BUFBfSVNSX0lORElDQVRPUikge1xuICAgICAgICBpZiAoYXBwSXNyTWFuaWZlc3RSZWYpIHtcbiAgICAgICAgICBhcHBJc3JNYW5pZmVzdFJlZi5jdXJyZW50ID0gb2JqLmRhdGFcblxuICAgICAgICAgIC8vIGhhbmRsZSBpbml0aWFsIHN0YXR1cyBvbiByZWNlaXZpbmcgbWFuaWZlc3RcbiAgICAgICAgICAvLyBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQgaW4gdXNlRWZmZWN0IGZvciBwYXRobmFtZSBjaGFuZ2VzXG4gICAgICAgICAgLy8gYXMgd2UnbGwgcmVjZWl2ZSB0aGUgdXBkYXRlZCBtYW5pZmVzdCBiZWZvcmUgdXNlUGF0aG5hbWVcbiAgICAgICAgICAvLyB0cmlnZ2VycyBmb3IgbmV3IHZhbHVlXG4gICAgICAgICAgaWYgKChwYXRobmFtZVJlZi5jdXJyZW50IGFzIHN0cmluZykgaW4gb2JqLmRhdGEpIHtcbiAgICAgICAgICAgIC8vIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGhpZGRlbiBmb3IgYW4gaG91ci5cbiAgICAgICAgICAgIC8vIGNoZWNrIGlmIGl0J3Mgc3RpbGwgaGlkZGVuXG4gICAgICAgICAgICBjb25zdCBpbmRpY2F0b3JIaWRkZW5BdCA9IE51bWJlcihcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlPy5nZXRJdGVtKCdfX05FWFRfRElTTUlTU19QUkVSRU5ERVJfSU5ESUNBVE9SJylcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPVxuICAgICAgICAgICAgICBpbmRpY2F0b3JIaWRkZW5BdCAmJlxuICAgICAgICAgICAgICAhaXNOYU4oaW5kaWNhdG9ySGlkZGVuQXQpICYmXG4gICAgICAgICAgICAgIERhdGUubm93KCkgPCBpbmRpY2F0b3JIaWRkZW5BdFxuXG4gICAgICAgICAgICBpZiAoIWlzSGlkZGVuKSB7XG4gICAgICAgICAgICAgIGRpc3BhdGNoZXIub25TdGF0aWNJbmRpY2F0b3IodHJ1ZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5vblN0YXRpY0luZGljYXRvcihmYWxzZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxESU5HOiB7XG4gICAgICBzdGFydExhdGVuY3kgPSBEYXRlLm5vdygpXG4gICAgICBpZiAoIXByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICBzZXRQZW5kaW5nSG90VXBkYXRlV2VicGFjaygpXG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnW0Zhc3QgUmVmcmVzaF0gcmVidWlsZGluZycpXG4gICAgICBicmVha1xuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5CVUlMVDpcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TWU5DOiB7XG4gICAgICBpZiAob2JqLmhhc2gpIHtcbiAgICAgICAgaGFuZGxlQXZhaWxhYmxlSGFzaChvYmouaGFzaClcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBlcnJvcnMsIHdhcm5pbmdzIH0gPSBvYmpcblxuICAgICAgLy8gSXMgdW5kZWZpbmVkIHdoZW4gaXQncyBhICdidWlsdCcgZXZlbnRcbiAgICAgIGlmICgndmVyc2lvbkluZm8nIGluIG9iaikgZGlzcGF0Y2hlci5vblZlcnNpb25JbmZvKG9iai52ZXJzaW9uSW5mbylcbiAgICAgIGlmICgnZGVidWcnIGluIG9iaiAmJiBvYmouZGVidWcpIGRpc3BhdGNoZXIub25EZWJ1Z0luZm8ob2JqLmRlYnVnKVxuXG4gICAgICBjb25zdCBoYXNFcnJvcnMgPSBCb29sZWFuKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKVxuICAgICAgLy8gQ29tcGlsYXRpb24gd2l0aCBlcnJvcnMgKGUuZy4gc3ludGF4IGVycm9yIG9yIG1pc3NpbmcgbW9kdWxlcykuXG4gICAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgICAgIGVycm9yQ291bnQ6IGVycm9ycy5sZW5ndGgsXG4gICAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuXG4gICAgICAgIGhhbmRsZUVycm9ycyhlcnJvcnMpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYXNXYXJuaW5ncyA9IEJvb2xlYW4od2FybmluZ3MgJiYgd2FybmluZ3MubGVuZ3RoKVxuICAgICAgaWYgKGhhc1dhcm5pbmdzKSB7XG4gICAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXdhcm5pbmcnLFxuICAgICAgICAgICAgd2FybmluZ0NvdW50OiB3YXJuaW5ncy5sZW5ndGgsXG4gICAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFByaW50IHdhcm5pbmdzIHRvIHRoZSBjb25zb2xlLlxuICAgICAgICBjb25zdCBmb3JtYXR0ZWRNZXNzYWdlcyA9IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyh7XG4gICAgICAgICAgd2FybmluZ3M6IHdhcm5pbmdzLFxuICAgICAgICAgIGVycm9yczogW10sXG4gICAgICAgIH0pXG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWRNZXNzYWdlcy53YXJuaW5ncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChpID09PSA1KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICdUaGVyZSB3ZXJlIG1vcmUgd2FybmluZ3MgaW4gb3RoZXIgZmlsZXMuXFxuJyArXG4gICAgICAgICAgICAgICAgJ1lvdSBjYW4gZmluZCBhIGNvbXBsZXRlIGxvZyBpbiB0aGUgdGVybWluYWwuJ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc29sZS53YXJuKHN0cmlwQW5zaShmb3JtYXR0ZWRNZXNzYWdlcy53YXJuaW5nc1tpXSkpXG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyBlYXJseSByZXR1cm4gaGVyZSBhcyB3ZSBuZWVkIHRvIGFwcGx5IG1vZHVsZXMgaW4gdGhlIHNhbWUgd2F5IGJldHdlZW4gd2FybmluZ3Mgb25seSBhbmQgY29tcGlsZXMgd2l0aG91dCB3YXJuaW5nc1xuICAgICAgfVxuXG4gICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXN1Y2Nlc3MnLFxuICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgaWYgKG9iai5hY3Rpb24gPT09IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5CVUlMVCkge1xuICAgICAgICAvLyBIYW5kbGUgaG90IHVwZGF0ZXNcbiAgICAgICAgaGFuZGxlSG90VXBkYXRlKClcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfQ09OTkVDVEVEOiB7XG4gICAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSh7XG4gICAgICAgIHR5cGU6IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfQ09OTkVDVEVELFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc2Vzc2lvbklkOiBvYmouZGF0YS5zZXNzaW9uSWQsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX01FU1NBR0U6IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWRNb2R1bGVzID0gZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZShvYmouZGF0YSlcbiAgICAgIGRpc3BhdGNoZXIub25CZWZvcmVSZWZyZXNoKClcbiAgICAgIHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlKHtcbiAgICAgICAgdHlwZTogSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlRVUkJPUEFDS19NRVNTQUdFLFxuICAgICAgICBkYXRhOiBvYmouZGF0YSxcbiAgICAgIH0pXG4gICAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgICBpZiAoUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUilcbiAgICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQobnVsbCwgc2VuZE1lc3NhZ2UpXG4gICAgICB9XG4gICAgICByZXBvcnRIbXJMYXRlbmN5KHNlbmRNZXNzYWdlLCB1cGRhdGVkTW9kdWxlcylcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIC8vIFRPRE8tQVBQOiBtYWtlIHNlcnZlciBjb21wb25lbnQgY2hhbmdlIG1vcmUgZ3JhbnVsYXJcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TRVJWRVJfQ09NUE9ORU5UX0NIQU5HRVM6IHtcbiAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZXZlbnQ6ICdzZXJ2ZXItY29tcG9uZW50LXJlbG9hZC1wYWdlJyxcbiAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBpZiAoUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IpIHtcbiAgICAgICAgaWYgKHJlbG9hZGluZykgcmV0dXJuXG4gICAgICAgIHJlbG9hZGluZyA9IHRydWVcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgfVxuICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgcm91dGVyLmhtclJlZnJlc2goKVxuICAgICAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgICB9KVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICBpZiAoc2VsZi5fX05FWFRfSE1SX0NCKSB7XG4gICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKClcbiAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlJFTE9BRF9QQUdFOiB7XG4gICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXJlbG9hZC1wYWdlJyxcbiAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBpZiAocmVsb2FkaW5nKSByZXR1cm5cbiAgICAgIHJlbG9hZGluZyA9IHRydWVcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQURERURfUEFHRTpcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5SRU1PVkVEX1BBR0U6IHtcbiAgICAgIC8vIFRPRE8tQVBQOiBwb3RlbnRpYWxseSBvbmx5IHJlZnJlc2ggaWYgdGhlIGN1cnJlbnRseSB2aWV3ZWQgcGFnZSB3YXMgYWRkZWQvcmVtb3ZlZC5cbiAgICAgIHJldHVybiByb3V0ZXIuaG1yUmVmcmVzaCgpXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9FUlJPUjoge1xuICAgICAgY29uc3QgeyBlcnJvckpTT04gfSA9IG9ialxuICAgICAgaWYgKGVycm9ySlNPTikge1xuICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIHN0YWNrIH0gPSBKU09OLnBhcnNlKGVycm9ySlNPTilcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICAgICAgZXJyb3Iuc3RhY2sgPSBzdGFja1xuICAgICAgICBoYW5kbGVFcnJvcnMoW2Vycm9yXSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5ERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFOiB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb3RSZWxvYWQoe1xuICBhc3NldFByZWZpeCxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIGFzc2V0UHJlZml4OiBzdHJpbmdcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgW3N0YXRlLCBkaXNwYXRjaF0gPSB1c2VFcnJvck92ZXJsYXlSZWR1Y2VyKClcblxuICBjb25zdCBkaXNwYXRjaGVyID0gdXNlTWVtbzxEaXNwYXRjaGVyPigoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9uQnVpbGRPaygpIHtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBBQ1RJT05fQlVJTERfT0sgfSlcbiAgICAgIH0sXG4gICAgICBvbkJ1aWxkRXJyb3IobWVzc2FnZSkge1xuICAgICAgICBkaXNwYXRjaCh7IHR5cGU6IEFDVElPTl9CVUlMRF9FUlJPUiwgbWVzc2FnZSB9KVxuICAgICAgfSxcbiAgICAgIG9uQmVmb3JlUmVmcmVzaCgpIHtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBBQ1RJT05fQkVGT1JFX1JFRlJFU0ggfSlcbiAgICAgIH0sXG4gICAgICBvblJlZnJlc2goKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogQUNUSU9OX1JFRlJFU0ggfSlcbiAgICAgIH0sXG4gICAgICBvblZlcnNpb25JbmZvKHZlcnNpb25JbmZvKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogQUNUSU9OX1ZFUlNJT05fSU5GTywgdmVyc2lvbkluZm8gfSlcbiAgICAgIH0sXG4gICAgICBvblN0YXRpY0luZGljYXRvcihzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBBQ1RJT05fU1RBVElDX0lORElDQVRPUiwgc3RhdGljSW5kaWNhdG9yOiBzdGF0dXMgfSlcbiAgICAgIH0sXG4gICAgICBvbkRlYnVnSW5mbyhkZWJ1Z0luZm8pIHtcbiAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiBBQ1RJT05fREVCVUdfSU5GTywgZGVidWdJbmZvIH0pXG4gICAgICB9LFxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoXSlcblxuICBjb25zdCBoYW5kbGVPblVuaGFuZGxlZEVycm9yID0gdXNlQ2FsbGJhY2soXG4gICAgKGVycm9yOiBFcnJvcik6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEZXRhaWxzID0gKGVycm9yIGFzIGFueSkuZGV0YWlscyBhc1xuICAgICAgICB8IEh5ZHJhdGlvbkVycm9yU3RhdGVcbiAgICAgICAgfCB1bmRlZmluZWRcbiAgICAgIC8vIENvbXBvbmVudCBzdGFjayBpcyBhZGRlZCB0byB0aGUgZXJyb3IgaW4gdXNlLWVycm9yLWhhbmRsZXIgaW4gY2FzZSB0aGVyZSB3YXMgYSBoeWRyYXRpb24gZXJyb3JcbiAgICAgIGNvbnN0IGNvbXBvbmVudFN0YWNrVHJhY2UgPVxuICAgICAgICAoZXJyb3IgYXMgYW55KS5fY29tcG9uZW50U3RhY2sgfHwgZXJyb3JEZXRhaWxzPy5jb21wb25lbnRTdGFja1xuICAgICAgY29uc3Qgd2FybmluZyA9IGVycm9yRGV0YWlscz8ud2FybmluZ1xuICAgICAgY29uc3Qgc3RpdGNoZWRFcnJvciA9IGdldFJlYWN0U3RpdGNoZWRFcnJvcihlcnJvcilcblxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SLFxuICAgICAgICByZWFzb246IHN0aXRjaGVkRXJyb3IsXG4gICAgICAgIGZyYW1lczogcGFyc2VTdGFjayhzdGl0Y2hlZEVycm9yLnN0YWNrIHx8ICcnKSxcbiAgICAgICAgY29tcG9uZW50U3RhY2tGcmFtZXM6XG4gICAgICAgICAgdHlwZW9mIGNvbXBvbmVudFN0YWNrVHJhY2UgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IHBhcnNlQ29tcG9uZW50U3RhY2soY29tcG9uZW50U3RhY2tUcmFjZSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB3YXJuaW5nLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZU9uVW5oYW5kbGVkUmVqZWN0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKHJlYXNvbjogRXJyb3IpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IHN0aXRjaGVkRXJyb3IgPSBnZXRSZWFjdFN0aXRjaGVkRXJyb3IocmVhc29uKVxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTixcbiAgICAgICAgcmVhc29uOiBzdGl0Y2hlZEVycm9yLFxuICAgICAgICBmcmFtZXM6IHBhcnNlU3RhY2soc3RpdGNoZWRFcnJvci5zdGFjayB8fCAnJyksXG4gICAgICB9KVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoXVxuICApXG4gIHVzZUVycm9ySGFuZGxlcihoYW5kbGVPblVuaGFuZGxlZEVycm9yLCBoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbilcblxuICBjb25zdCB3ZWJTb2NrZXRSZWYgPSB1c2VXZWJzb2NrZXQoYXNzZXRQcmVmaXgpXG4gIHVzZVdlYnNvY2tldFBpbmcod2ViU29ja2V0UmVmKVxuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZVNlbmRNZXNzYWdlKHdlYlNvY2tldFJlZilcbiAgY29uc3QgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UgPSB1c2VUdXJib3BhY2soc2VuZE1lc3NhZ2UsIChlcnIpID0+XG4gICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyLCBzZW5kTWVzc2FnZSlcbiAgKVxuXG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBhY2Nlc3Mgb2YgdGhlIHBhdGhuYW1lIGZvciB0aGUgZGV2IHRvb2xzIHRvIHRyaWdnZXIgYSBkeW5hbWljXG4gIC8vIGFjY2VzcyAoYXMgdGhlIGRldiBvdmVybGF5IHdpbGwgbmV2ZXIgYmUgcHJlc2VudCBpbiBwcm9kdWN0aW9uKS5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VVbnRyYWNrZWRQYXRobmFtZSgpXG4gIGNvbnN0IGFwcElzck1hbmlmZXN0UmVmID0gdXNlUmVmPFJlY29yZDxzdHJpbmcsIGZhbHNlIHwgbnVtYmVyPj4oe30pXG4gIGNvbnN0IHBhdGhuYW1lUmVmID0gdXNlUmVmKHBhdGhuYW1lKVxuXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQVBQX0lTUl9JTkRJQ0FUT1IpIHtcbiAgICAvLyB0aGlzIGNvbmRpdGlvbmFsIGlzIG9ubHkgZm9yIGRlYWQtY29kZSBlbGltaW5hdGlvbiB3aGljaFxuICAgIC8vIGlzbid0IGEgcnVudGltZSBjb25kaXRpb25hbCBvbmx5IGJ1aWxkLXRpbWUgc28gaWdub3JlIGhvb2tzIHJ1bGVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcGF0aG5hbWVSZWYuY3VycmVudCA9IHBhdGhuYW1lXG5cbiAgICAgIGNvbnN0IGFwcElzck1hbmlmZXN0ID0gYXBwSXNyTWFuaWZlc3RSZWYuY3VycmVudFxuXG4gICAgICBpZiAoYXBwSXNyTWFuaWZlc3QpIHtcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lIGluIGFwcElzck1hbmlmZXN0KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGljYXRvckhpZGRlbkF0ID0gTnVtYmVyKFxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2U/LmdldEl0ZW0oJ19fTkVYVF9ESVNNSVNTX1BSRVJFTkRFUl9JTkRJQ0FUT1InKVxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9XG4gICAgICAgICAgICAgIGluZGljYXRvckhpZGRlbkF0ICYmXG4gICAgICAgICAgICAgICFpc05hTihpbmRpY2F0b3JIaWRkZW5BdCkgJiZcbiAgICAgICAgICAgICAgRGF0ZS5ub3coKSA8IGluZGljYXRvckhpZGRlbkF0XG5cbiAgICAgICAgICAgIGlmICghaXNIaWRkZW4pIHtcbiAgICAgICAgICAgICAgZGlzcGF0Y2hlci5vblN0YXRpY0luZGljYXRvcih0cnVlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKHJlYXNvbikge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gICAgICAgICAgICBpZiAocmVhc29uIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICAgIC8vIE1vc3QgbGlrZWx5IGEgU2VjdXJpdHlFcnJvciwgYmVjYXVzZSBvZiBhbiB1bmF2YWlsYWJsZSBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IHJlYXNvbi5zdGFjayA/PyByZWFzb24ubWVzc2FnZVxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICBtZXNzYWdlID0gJ0Vycm9yOiAnICsgcmVhc29uLm1lc3NhZ2UgKyAnXFxuJyArIChyZWFzb24uc3RhY2sgPz8gJycpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtZXNzYWdlID0gJ1VuZXhwZWN0ZWQgRXhjZXB0aW9uOiAnICsgcmVhc29uXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW0hNUl0gJyArIG1lc3NhZ2UpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRpc3BhdGNoZXIub25TdGF0aWNJbmRpY2F0b3IoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbcGF0aG5hbWUsIGRpc3BhdGNoZXJdKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB3ZWJzb2NrZXQgPSB3ZWJTb2NrZXRSZWYuY3VycmVudFxuICAgIGlmICghd2Vic29ja2V0KSByZXR1cm5cblxuICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudDxhbnk+KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpXG4gICAgICAgIHByb2Nlc3NNZXNzYWdlKFxuICAgICAgICAgIG9iaixcbiAgICAgICAgICBzZW5kTWVzc2FnZSxcbiAgICAgICAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSxcbiAgICAgICAgICByb3V0ZXIsXG4gICAgICAgICAgZGlzcGF0Y2hlcixcbiAgICAgICAgICBhcHBJc3JNYW5pZmVzdFJlZixcbiAgICAgICAgICBwYXRobmFtZVJlZlxuICAgICAgICApXG4gICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1tITVJdIEludmFsaWQgbWVzc2FnZTogJyArXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShldmVudC5kYXRhKSArXG4gICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAoZXJyPy5zdGFjayA/PyAnJylcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIHdlYnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlcilcbiAgICByZXR1cm4gKCkgPT4gd2Vic29ja2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBoYW5kbGVyKVxuICB9LCBbXG4gICAgc2VuZE1lc3NhZ2UsXG4gICAgcm91dGVyLFxuICAgIHdlYlNvY2tldFJlZixcbiAgICBkaXNwYXRjaGVyLFxuICAgIHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlLFxuICAgIGFwcElzck1hbmlmZXN0UmVmLFxuICBdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0RGV2T3ZlcmxheSBzdGF0ZT17c3RhdGV9IGRpc3BhdGNoZXI9e2Rpc3BhdGNoZXJ9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvUmVhY3REZXZPdmVybGF5PlxuICApXG59XG4iXSwibmFtZXMiOlsiSG90UmVsb2FkIiwid2FpdEZvcldlYnBhY2tSdW50aW1lSG90VXBkYXRlIiwibW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCIsIl9fbmV4dERldkNsaWVudElkIiwiTWF0aCIsInJvdW5kIiwicmFuZG9tIiwiRGF0ZSIsIm5vdyIsInJlbG9hZGluZyIsInN0YXJ0TGF0ZW5jeSIsInBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2siLCJzZXRQZW5kaW5nSG90VXBkYXRlV2VicGFjayIsImhhbmRsZUJlZm9yZUhvdFVwZGF0ZVdlYnBhY2siLCJkaXNwYXRjaGVyIiwiaGFzVXBkYXRlcyIsIm9uQmVmb3JlUmVmcmVzaCIsImhhbmRsZVN1Y2Nlc3NmdWxIb3RVcGRhdGVXZWJwYWNrIiwic2VuZE1lc3NhZ2UiLCJ1cGRhdGVkTW9kdWxlcyIsIm9uQnVpbGRPayIsInJlcG9ydEhtckxhdGVuY3kiLCJvblJlZnJlc2giLCJlbmRMYXRlbmN5IiwibGF0ZW5jeSIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJpZCIsIndpbmRvdyIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwYWdlIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImlzUGFnZUhpZGRlbiIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwiaGFuZGxlQXZhaWxhYmxlSGFzaCIsImhhc2giLCJpc1VwZGF0ZUF2YWlsYWJsZSIsInByb2Nlc3MiLCJlbnYiLCJUVVJCT1BBQ0siLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsImhhbmRsZXIiLCJyZW1vdmVTdGF0dXNIYW5kbGVyIiwiYWRkU3RhdHVzSGFuZGxlciIsInBlcmZvcm1GdWxsUmVsb2FkIiwiZXJyIiwic3RhY2tUcmFjZSIsInN0YWNrIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJtZXNzYWdlIiwiaGFkUnVudGltZUVycm9yIiwiUnVudGltZUVycm9ySGFuZGxlciIsImRlcGVuZGVuY3lDaGFpbiIsInVuZGVmaW5lZCIsInJlbG9hZCIsInRyeUFwcGx5VXBkYXRlcyIsIm9uQmVmb3JlVXBkYXRlIiwib25Ib3RVcGRhdGVTdWNjZXNzIiwiaGFuZGxlQXBwbHlVcGRhdGVzIiwid2FybiIsIlJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiIsIkJvb2xlYW4iLCJsZW5ndGgiLCJfX05FWFRfVEVTVF9NT0RFIiwic2VsZiIsIl9fTkVYVF9ITVJfQ0IiLCJjaGVjayIsInRoZW4iLCJhcHBseSIsInByb2Nlc3NNZXNzYWdlIiwib2JqIiwicHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UiLCJyb3V0ZXIiLCJhcHBJc3JNYW5pZmVzdFJlZiIsInBhdGhuYW1lUmVmIiwiaGFuZGxlRXJyb3JzIiwiZXJyb3JzIiwiZm9ybWF0dGVkIiwiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwid2FybmluZ3MiLCJvbkJ1aWxkRXJyb3IiLCJpIiwiZXJyb3IiLCJzdHJpcEFuc2kiLCJoYW5kbGVIb3RVcGRhdGUiLCJvbkJlZm9yZUhvdFVwZGF0ZSIsIm9uU3VjY2Vzc2Z1bEhvdFVwZGF0ZSIsIndlYnBhY2tVcGRhdGVkTW9kdWxlcyIsImFjdGlvbiIsIkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiIsIkFQUF9JU1JfTUFOSUZFU1QiLCJfX05FWFRfQVBQX0lTUl9JTkRJQ0FUT1IiLCJjdXJyZW50IiwiZGF0YSIsImxvY2FsU3RvcmFnZSIsImluZGljYXRvckhpZGRlbkF0IiwiTnVtYmVyIiwiZ2V0SXRlbSIsImlzSGlkZGVuIiwiaXNOYU4iLCJvblN0YXRpY0luZGljYXRvciIsIkJVSUxESU5HIiwiQlVJTFQiLCJTWU5DIiwib25WZXJzaW9uSW5mbyIsInZlcnNpb25JbmZvIiwiZGVidWciLCJvbkRlYnVnSW5mbyIsImhhc0Vycm9ycyIsImVycm9yQ291bnQiLCJjbGllbnRJZCIsImhhc1dhcm5pbmdzIiwid2FybmluZ0NvdW50IiwiZm9ybWF0dGVkTWVzc2FnZXMiLCJUVVJCT1BBQ0tfQ09OTkVDVEVEIiwidHlwZSIsInNlc3Npb25JZCIsIlRVUkJPUEFDS19NRVNTQUdFIiwiZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZSIsIlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUyIsInN0YXJ0VHJhbnNpdGlvbiIsImhtclJlZnJlc2giLCJSRUxPQURfUEFHRSIsIkFEREVEX1BBR0UiLCJSRU1PVkVEX1BBR0UiLCJTRVJWRVJfRVJST1IiLCJlcnJvckpTT04iLCJwYXJzZSIsIkVycm9yIiwiREVWX1BBR0VTX01BTklGRVNUX1VQREFURSIsImFzc2V0UHJlZml4IiwiY2hpbGRyZW4iLCJzdGF0ZSIsImRpc3BhdGNoIiwidXNlRXJyb3JPdmVybGF5UmVkdWNlciIsInVzZU1lbW8iLCJBQ1RJT05fQlVJTERfT0siLCJBQ1RJT05fQlVJTERfRVJST1IiLCJBQ1RJT05fQkVGT1JFX1JFRlJFU0giLCJBQ1RJT05fUkVGUkVTSCIsIkFDVElPTl9WRVJTSU9OX0lORk8iLCJBQ1RJT05fU1RBVElDX0lORElDQVRPUiIsInN0YXRpY0luZGljYXRvciIsImRlYnVnSW5mbyIsIkFDVElPTl9ERUJVR19JTkZPIiwiaGFuZGxlT25VbmhhbmRsZWRFcnJvciIsInVzZUNhbGxiYWNrIiwiZXJyb3JEZXRhaWxzIiwiZGV0YWlscyIsImNvbXBvbmVudFN0YWNrVHJhY2UiLCJfY29tcG9uZW50U3RhY2siLCJjb21wb25lbnRTdGFjayIsIndhcm5pbmciLCJzdGl0Y2hlZEVycm9yIiwiZ2V0UmVhY3RTdGl0Y2hlZEVycm9yIiwiQUNUSU9OX1VOSEFORExFRF9FUlJPUiIsInJlYXNvbiIsImZyYW1lcyIsInBhcnNlU3RhY2siLCJjb21wb25lbnRTdGFja0ZyYW1lcyIsInBhcnNlQ29tcG9uZW50U3RhY2siLCJoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbiIsIkFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OIiwidXNlRXJyb3JIYW5kbGVyIiwid2ViU29ja2V0UmVmIiwidXNlV2Vic29ja2V0IiwidXNlV2Vic29ja2V0UGluZyIsInVzZVNlbmRNZXNzYWdlIiwidXNlVHVyYm9wYWNrIiwidXNlUm91dGVyIiwidXNlVW50cmFja2VkUGF0aG5hbWUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJhcHBJc3JNYW5pZmVzdCIsIkRPTUV4Y2VwdGlvbiIsIndlYnNvY2tldCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiUmVhY3REZXZPdmVybGF5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/app/hot-reloader-client.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js":
|
||
/*!***************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js ***!
|
||
\***************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CodeFrame\", ({\n enumerable: true,\n get: function() {\n return CodeFrame;\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 _anser = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/anser */ \"(ssr)/./node_modules/next/dist/compiled/anser/index.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 _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _stackframe = __webpack_require__(/*! ../../helpers/stack-frame */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\nconst _useopenineditor = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\nconst _hotlinkedtext = __webpack_require__(/*! ../hot-linked-text */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst CodeFrame = function CodeFrame(param) {\n let { stackFrame, codeFrame } = param;\n // Strip leading spaces out of the code frame:\n const formattedFrame = _react.useMemo({\n \"CodeFrame.useMemo[formattedFrame]\": ()=>{\n const lines = codeFrame.split(/\\r?\\n/g);\n // Find the minimum length of leading spaces after `|` in the code frame\n const miniLeadingSpacesLength = lines.map({\n \"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\": (line)=>/^>? +\\d+ +\\| [ ]+/.exec((0, _stripansi.default)(line)) === null ? null : /^>? +\\d+ +\\| ( *)/.exec((0, _stripansi.default)(line))\n }[\"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\"]).filter(Boolean).map({\n \"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\": (v)=>v.pop()\n }[\"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\"]).reduce({\n \"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\": (c, n)=>isNaN(c) ? n.length : Math.min(c, n.length)\n }[\"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\"], NaN);\n // When the minimum length of leading spaces is greater than 1, remove them\n // from the code frame to help the indentation looks better when there's a lot leading spaces.\n if (miniLeadingSpacesLength > 1) {\n return lines.map({\n \"CodeFrame.useMemo[formattedFrame]\": (line, a)=>~(a = line.indexOf('|')) ? line.substring(0, a) + line.substring(a).replace(\"^\\\\ {\" + miniLeadingSpacesLength + \"}\", '') : line\n }[\"CodeFrame.useMemo[formattedFrame]\"]).join('\\n');\n }\n return lines.join('\\n');\n }\n }[\"CodeFrame.useMemo[formattedFrame]\"], [\n codeFrame\n ]);\n const decoded = _react.useMemo({\n \"CodeFrame.useMemo[decoded]\": ()=>{\n return _anser.default.ansiToJson(formattedFrame, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }\n }[\"CodeFrame.useMemo[decoded]\"], [\n formattedFrame\n ]);\n const open = (0, _useopenineditor.useOpenInEditor)({\n file: stackFrame.file,\n lineNumber: stackFrame.lineNumber,\n column: stackFrame.column\n });\n // TODO: make the caret absolute\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-codeframe\": true,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"p\", {\n role: \"link\",\n onClick: open,\n tabIndex: 1,\n title: \"Click to open in your editor\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n (0, _stackframe.getFrameSource)(stackFrame),\n \" @\",\n ' ',\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: stackFrame.methodName\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"pre\", {\n children: decoded.map((entry, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n style: {\n color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined,\n ...entry.decoration === 'bold' ? {\n fontWeight: 800\n } : entry.decoration === 'italic' ? {\n fontStyle: 'italic'\n } : undefined\n },\n children: entry.content\n }, \"frame-\" + index))\n })\n ]\n });\n};\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=CodeFrame.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL0NvZGVGcmFtZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQVVhQTs7O2VBQUFBOzs7Ozs7NEVBVks7NkVBQ0s7Z0ZBRUQ7d0NBQ1M7NkNBQ0M7MkNBQ0Y7QUFJdkIsTUFBTUEsWUFBc0MsU0FBU0EsVUFBVSxLQUdyRTtJQUhxRSxNQUNwRUMsVUFBVSxFQUNWQyxTQUFTLEVBQ1YsR0FIcUU7SUFJcEUsOENBQThDO0lBQzlDLE1BQU1DLGlCQUFpQkMsT0FBTUMsT0FBTzs2Q0FBUztZQUMzQyxNQUFNQyxRQUFRSixVQUFVSyxLQUFLLENBQUM7WUFFOUIsd0VBQXdFO1lBQ3hFLE1BQU1DLDBCQUEwQkYsTUFDN0JHLEdBQUc7NkVBQUMsQ0FBQ0MsT0FDSixvQkFBb0JDLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsV0FBQUEsT0FBQUEsRUFBVUYsV0FBVyxPQUMxQyxPQUNBLG9CQUFvQkMsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRjs0RUFFeENHLE1BQU0sQ0FBQ0MsU0FDUEwsR0FBRzs2RUFBQyxDQUFDTSxJQUFNQSxFQUFHQyxHQUFHOzRFQUNqQkMsTUFBTTs2RUFBQyxDQUFDQyxHQUFHQyxJQUFPQyxNQUFNRixLQUFLQyxFQUFFRSxNQUFNLEdBQUdDLEtBQUtDLEdBQUcsQ0FBQ0wsR0FBR0MsRUFBRUUsTUFBTTs0RUFBSUc7WUFFbkUsMkVBQTJFO1lBQzNFLDhGQUE4RjtZQUM5RixJQUFJaEIsMEJBQTBCLEdBQUc7Z0JBQy9CLE9BQU9GLE1BQ0pHLEdBQUc7eURBQUMsQ0FBQ0MsTUFBTWUsSUFDVixDQUFFQSxDQUFBQSxJQUFJZixLQUFLZ0IsT0FBTyxDQUFDLEtBQUcsR0FDbEJoQixLQUFLaUIsU0FBUyxDQUFDLEdBQUdGLEtBQ2xCZixLQUFLaUIsU0FBUyxDQUFDRixHQUFHRyxPQUFPLENBQUUsVUFBT3BCLDBCQUF3QixLQUFJLE1BQzlERTt3REFFTG1CLElBQUksQ0FBQztZQUNWO1lBQ0EsT0FBT3ZCLE1BQU11QixJQUFJLENBQUM7UUFDcEI7NENBQUc7UUFBQzNCO0tBQVU7SUFFZCxNQUFNNEIsVUFBVTFCLE9BQU1DLE9BQU87c0NBQUM7WUFDNUIsT0FBTzBCLE9BQUFBLE9BQUssQ0FBQ0MsVUFBVSxDQUFDN0IsZ0JBQWdCO2dCQUN0QzhCLE1BQU07Z0JBQ05DLGFBQWE7Z0JBQ2JDLGNBQWM7WUFDaEI7UUFDRjtxQ0FBRztRQUFDaEM7S0FBZTtJQUVuQixNQUFNaUMsT0FBT0MsQ0FBQUEsR0FBQUEsaUJBQUFBLGVBQUFBLEVBQWdCO1FBQzNCQyxNQUFNckMsV0FBV3FDLElBQUk7UUFDckJDLFlBQVl0QyxXQUFXc0MsVUFBVTtRQUNqQ0MsUUFBUXZDLFdBQVd1QyxNQUFNO0lBQzNCO0lBRUEsZ0NBQWdDO0lBQ2hDLHFCQUNFLHNCQUFDQyxPQUFBQTtRQUFJQyx1QkFBcUI7OzBCQUN4QixxQkFBQ0QsT0FBQUE7MEJBQ0Msb0NBQUNFLEtBQUFBO29CQUNDQyxNQUFLO29CQUNMQyxTQUFTVDtvQkFDVFUsVUFBVTtvQkFDVkMsT0FBTTs7c0NBRU4sc0JBQUNDLFFBQUFBOztnQ0FDRUMsQ0FBQUEsR0FBQUEsWUFBQUEsY0FBQUEsRUFBZWhEO2dDQUFZO2dDQUFHOzhDQUMvQixxQkFBQ2lELGVBQUFBLGFBQWE7b0NBQUNDLE1BQU1sRCxXQUFXbUQsVUFBVTs7OztzQ0FFNUMsc0JBQUNDLE9BQUFBOzRCQUNDQyxPQUFNOzRCQUNOQyxTQUFROzRCQUNSQyxNQUFLOzRCQUNMQyxRQUFPOzRCQUNQQyxhQUFZOzRCQUNaQyxlQUFjOzRCQUNkQyxnQkFBZTs7OENBRWYscUJBQUNDLFFBQUFBO29DQUFLQyxHQUFFOzs4Q0FDUixxQkFBQ0MsWUFBQUE7b0NBQVNDLFFBQU87OzhDQUNqQixxQkFBQ3RELFFBQUFBO29DQUFLdUQsSUFBRztvQ0FBS0MsSUFBRztvQ0FBS0MsSUFBRztvQ0FBS0MsSUFBRzs7Ozs7OzswQkFJdkMscUJBQUNDLE9BQUFBOzBCQUNFdkMsUUFBUXJCLEdBQUcsQ0FBQyxDQUFDNkQsT0FBT0MsUUFBQUEsV0FBQUEsR0FDbkIscUJBQUN2QixRQUFBQTt3QkFFQ3dCLE9BQU87NEJBQ0xDLE9BQU9ILE1BQU1JLEVBQUUsR0FBSSxpQkFBY0osTUFBTUksRUFBRSxHQUFDLE1BQUtDOzRCQUMvQyxHQUFJTCxNQUFNTSxVQUFVLEtBQUssU0FDckI7Z0NBQUVDLFlBQVk7NEJBQUksSUFDbEJQLE1BQU1NLFVBQVUsS0FBSyxXQUNuQjtnQ0FBRUUsV0FBVzs0QkFBUyxJQUN0QkgsU0FBUzt3QkFDakI7a0NBRUNMLE1BQU1TLE9BQU87dUJBVlIsV0FBUVI7Ozs7QUFnQjFCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcQ29kZUZyYW1lXFxDb2RlRnJhbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBbnNlciBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvYW5zZXInXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgU3RhY2tGcmFtZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2knXG5pbXBvcnQgeyBnZXRGcmFtZVNvdXJjZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvc3RhY2stZnJhbWUnXG5pbXBvcnQgeyB1c2VPcGVuSW5FZGl0b3IgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3VzZS1vcGVuLWluLWVkaXRvcidcbmltcG9ydCB7IEhvdGxpbmtlZFRleHQgfSBmcm9tICcuLi9ob3QtbGlua2VkLXRleHQnXG5cbmV4cG9ydCB0eXBlIENvZGVGcmFtZVByb3BzID0geyBzdGFja0ZyYW1lOiBTdGFja0ZyYW1lOyBjb2RlRnJhbWU6IHN0cmluZyB9XG5cbmV4cG9ydCBjb25zdCBDb2RlRnJhbWU6IFJlYWN0LkZDPENvZGVGcmFtZVByb3BzPiA9IGZ1bmN0aW9uIENvZGVGcmFtZSh7XG4gIHN0YWNrRnJhbWUsXG4gIGNvZGVGcmFtZSxcbn0pIHtcbiAgLy8gU3RyaXAgbGVhZGluZyBzcGFjZXMgb3V0IG9mIHRoZSBjb2RlIGZyYW1lOlxuICBjb25zdCBmb3JtYXR0ZWRGcmFtZSA9IFJlYWN0LnVzZU1lbW88c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3QgbGluZXMgPSBjb2RlRnJhbWUuc3BsaXQoL1xccj9cXG4vZylcblxuICAgIC8vIEZpbmQgdGhlIG1pbmltdW0gbGVuZ3RoIG9mIGxlYWRpbmcgc3BhY2VzIGFmdGVyIGB8YCBpbiB0aGUgY29kZSBmcmFtZVxuICAgIGNvbnN0IG1pbmlMZWFkaW5nU3BhY2VzTGVuZ3RoID0gbGluZXNcbiAgICAgIC5tYXAoKGxpbmUpID0+XG4gICAgICAgIC9ePj8gK1xcZCsgK1xcfCBbIF0rLy5leGVjKHN0cmlwQW5zaShsaW5lKSkgPT09IG51bGxcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IC9ePj8gK1xcZCsgK1xcfCAoICopLy5leGVjKHN0cmlwQW5zaShsaW5lKSlcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5tYXAoKHYpID0+IHYhLnBvcCgpISlcbiAgICAgIC5yZWR1Y2UoKGMsIG4pID0+IChpc05hTihjKSA/IG4ubGVuZ3RoIDogTWF0aC5taW4oYywgbi5sZW5ndGgpKSwgTmFOKVxuXG4gICAgLy8gV2hlbiB0aGUgbWluaW11bSBsZW5ndGggb2YgbGVhZGluZyBzcGFjZXMgaXMgZ3JlYXRlciB0aGFuIDEsIHJlbW92ZSB0aGVtXG4gICAgLy8gZnJvbSB0aGUgY29kZSBmcmFtZSB0byBoZWxwIHRoZSBpbmRlbnRhdGlvbiBsb29rcyBiZXR0ZXIgd2hlbiB0aGVyZSdzIGEgbG90IGxlYWRpbmcgc3BhY2VzLlxuICAgIGlmIChtaW5pTGVhZGluZ1NwYWNlc0xlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBsaW5lc1xuICAgICAgICAubWFwKChsaW5lLCBhKSA9PlxuICAgICAgICAgIH4oYSA9IGxpbmUuaW5kZXhPZignfCcpKVxuICAgICAgICAgICAgPyBsaW5lLnN1YnN0cmluZygwLCBhKSArXG4gICAgICAgICAgICAgIGxpbmUuc3Vic3RyaW5nKGEpLnJlcGxhY2UoYF5cXFxcIHske21pbmlMZWFkaW5nU3BhY2VzTGVuZ3RofX1gLCAnJylcbiAgICAgICAgICAgIDogbGluZVxuICAgICAgICApXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgIH1cbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJylcbiAgfSwgW2NvZGVGcmFtZV0pXG5cbiAgY29uc3QgZGVjb2RlZCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBbnNlci5hbnNpVG9Kc29uKGZvcm1hdHRlZEZyYW1lLCB7XG4gICAgICBqc29uOiB0cnVlLFxuICAgICAgdXNlX2NsYXNzZXM6IHRydWUsXG4gICAgICByZW1vdmVfZW1wdHk6IHRydWUsXG4gICAgfSlcbiAgfSwgW2Zvcm1hdHRlZEZyYW1lXSlcblxuICBjb25zdCBvcGVuID0gdXNlT3BlbkluRWRpdG9yKHtcbiAgICBmaWxlOiBzdGFja0ZyYW1lLmZpbGUsXG4gICAgbGluZU51bWJlcjogc3RhY2tGcmFtZS5saW5lTnVtYmVyLFxuICAgIGNvbHVtbjogc3RhY2tGcmFtZS5jb2x1bW4sXG4gIH0pXG5cbiAgLy8gVE9ETzogbWFrZSB0aGUgY2FyZXQgYWJzb2x1dGVcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGRhdGEtbmV4dGpzLWNvZGVmcmFtZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwXG4gICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgIG9uQ2xpY2s9e29wZW59XG4gICAgICAgICAgdGFiSW5kZXg9ezF9XG4gICAgICAgICAgdGl0bGU9XCJDbGljayB0byBvcGVuIGluIHlvdXIgZWRpdG9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge2dldEZyYW1lU291cmNlKHN0YWNrRnJhbWUpfSBAeycgJ31cbiAgICAgICAgICAgIDxIb3RsaW5rZWRUZXh0IHRleHQ9e3N0YWNrRnJhbWUubWV0aG9kTmFtZX0gLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNlwiPjwvcGF0aD5cbiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIxNSAzIDIxIDMgMjEgOVwiPjwvcG9seWxpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjEwXCIgeTE9XCIxNFwiIHgyPVwiMjFcIiB5Mj1cIjNcIj48L2xpbmU+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPHByZT5cbiAgICAgICAge2RlY29kZWQubWFwKChlbnRyeSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAga2V5PXtgZnJhbWUtJHtpbmRleH1gfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgY29sb3I6IGVudHJ5LmZnID8gYHZhcigtLWNvbG9yLSR7ZW50cnkuZmd9KWAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIC4uLihlbnRyeS5kZWNvcmF0aW9uID09PSAnYm9sZCdcbiAgICAgICAgICAgICAgICA/IHsgZm9udFdlaWdodDogODAwIH1cbiAgICAgICAgICAgICAgICA6IGVudHJ5LmRlY29yYXRpb24gPT09ICdpdGFsaWMnXG4gICAgICAgICAgICAgICAgICA/IHsgZm9udFN0eWxlOiAnaXRhbGljJyB9XG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlbnRyeS5jb250ZW50fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKSl9XG4gICAgICA8L3ByZT5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkNvZGVGcmFtZSIsInN0YWNrRnJhbWUiLCJjb2RlRnJhbWUiLCJmb3JtYXR0ZWRGcmFtZSIsIlJlYWN0IiwidXNlTWVtbyIsImxpbmVzIiwic3BsaXQiLCJtaW5pTGVhZGluZ1NwYWNlc0xlbmd0aCIsIm1hcCIsImxpbmUiLCJleGVjIiwic3RyaXBBbnNpIiwiZmlsdGVyIiwiQm9vbGVhbiIsInYiLCJwb3AiLCJyZWR1Y2UiLCJjIiwibiIsImlzTmFOIiwibGVuZ3RoIiwiTWF0aCIsIm1pbiIsIk5hTiIsImEiLCJpbmRleE9mIiwic3Vic3RyaW5nIiwicmVwbGFjZSIsImpvaW4iLCJkZWNvZGVkIiwiQW5zZXIiLCJhbnNpVG9Kc29uIiwianNvbiIsInVzZV9jbGFzc2VzIiwicmVtb3ZlX2VtcHR5Iiwib3BlbiIsInVzZU9wZW5JbkVkaXRvciIsImZpbGUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwiZGl2IiwiZGF0YS1uZXh0anMtY29kZWZyYW1lIiwicCIsInJvbGUiLCJvbkNsaWNrIiwidGFiSW5kZXgiLCJ0aXRsZSIsInNwYW4iLCJnZXRGcmFtZVNvdXJjZSIsIkhvdGxpbmtlZFRleHQiLCJ0ZXh0IiwibWV0aG9kTmFtZSIsInN2ZyIsInhtbG5zIiwidmlld0JveCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInBhdGgiLCJkIiwicG9seWxpbmUiLCJwb2ludHMiLCJ4MSIsInkxIiwieDIiLCJ5MiIsInByZSIsImVudHJ5IiwiaW5kZXgiLCJzdHlsZSIsImNvbG9yIiwiZmciLCJ1bmRlZmluZWQiLCJkZWNvcmF0aW9uIiwiZm9udFdlaWdodCIsImZvbnRTdHlsZSIsImNvbnRlbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js":
|
||
/*!***********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js ***!
|
||
\***********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CodeFrame\", ({\n enumerable: true,\n get: function() {\n return _CodeFrame.CodeFrame;\n }\n}));\nconst _CodeFrame = __webpack_require__(/*! ./CodeFrame */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js\");\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7NkNBQVNBOzs7ZUFBQUEsV0FBQUEsU0FBUzs7O3VDQUFRIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcQ29kZUZyYW1lXFxpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ29kZUZyYW1lIH0gZnJvbSAnLi9Db2RlRnJhbWUnXG4iXSwibmFtZXMiOlsiQ29kZUZyYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js":
|
||
/*!************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js ***!
|
||
\************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"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 _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-codeframe] {\\n overflow: auto;\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-codeframe] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n [data-nextjs-codeframe] > div {\\n display: inline-block;\\n width: auto;\\n min-width: 100%;\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n }\\n [data-nextjs-codeframe] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-codeframe] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-codeframe] div > p > svg {\\n width: auto;\\n height: 1em;\\n margin-left: 8px;\\n }\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQW9EU0E7OztlQUFBQTs7OzswQ0FwRG1COzs7Ozs7Ozs7O0FBRTVCLE1BQU1BLFNBQUFBLENBQUFBLEdBQVNDLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxDb2RlRnJhbWVcXHN0eWxlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5cbmNvbnN0IHN0eWxlcyA9IGNzc2BcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0ge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdOjpzZWxlY3Rpb24sXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICoge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+ICoge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gZGl2IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjayk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcCA+IHN2ZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwcmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5gXG5cbmV4cG9ydCB7IHN0eWxlcyB9XG4iXSwibmFtZXMiOlsic3R5bGVzIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js":
|
||
/*!*********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js ***!
|
||
\*********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Dialog\", ({\n enumerable: true,\n get: function() {\n return Dialog;\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 _useonclickoutside = __webpack_require__(/*! ../../hooks/use-on-click-outside */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js\");\nconst Dialog = function Dialog(param) {\n let { children, type, onClose, ...props } = param;\n const [dialog, setDialog] = _react.useState(null);\n const [role, setRole] = _react.useState(typeof document !== 'undefined' && document.hasFocus() ? 'dialog' : undefined);\n const onDialog = _react.useCallback({\n \"Dialog.useCallback[onDialog]\": (node)=>{\n setDialog(node);\n }\n }[\"Dialog.useCallback[onDialog]\"], []);\n (0, _useonclickoutside.useOnClickOutside)(dialog, (e)=>{\n e.preventDefault();\n return onClose == null ? void 0 : onClose();\n });\n // Make HTMLElements with `role=link` accessible to be triggered by the\n // keyboard, i.e. [Enter].\n _react.useEffect({\n \"Dialog.useEffect\": ()=>{\n if (dialog == null) {\n return;\n }\n const root = dialog.getRootNode();\n // Always true, but we do this for TypeScript:\n if (!(root instanceof ShadowRoot)) {\n return;\n }\n const shadowRoot = root;\n function handler(e) {\n const el = shadowRoot.activeElement;\n if (e.key === 'Enter' && el instanceof HTMLElement && el.getAttribute('role') === 'link') {\n e.preventDefault();\n e.stopPropagation();\n el.click();\n }\n }\n function handleFocus() {\n // safari will force itself as the active application when a background page triggers any sort of autofocus\n // this is a workaround to only set the dialog role if the document has focus\n setRole(document.hasFocus() ? 'dialog' : undefined);\n }\n shadowRoot.addEventListener('keydown', handler);\n window.addEventListener('focus', handleFocus);\n window.addEventListener('blur', handleFocus);\n return ({\n \"Dialog.useEffect\": ()=>{\n shadowRoot.removeEventListener('keydown', handler);\n window.removeEventListener('focus', handleFocus);\n window.removeEventListener('blur', handleFocus);\n }\n })[\"Dialog.useEffect\"];\n }\n }[\"Dialog.useEffect\"], [\n dialog\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n ref: onDialog,\n \"data-nextjs-dialog\": true,\n tabIndex: -1,\n role: role,\n \"aria-labelledby\": props['aria-labelledby'],\n \"aria-describedby\": props['aria-describedby'],\n \"aria-modal\": \"true\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-banner\": true,\n className: \"banner-\" + type\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=Dialog.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQTBGU0E7OztlQUFBQTs7Ozs7NkVBMUZjOytDQUNXO0FBVWxDLE1BQU1BLFNBQWdDLFNBQVNBLE9BQU8sS0FLckQ7SUFMcUQsTUFDcERDLFFBQVEsRUFDUkMsSUFBSSxFQUNKQyxPQUFPLEVBQ1AsR0FBR0MsT0FDSixHQUxxRDtJQU1wRCxNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR0MsT0FBTUMsUUFBUSxDQUF3QjtJQUNsRSxNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR0gsT0FBTUMsUUFBUSxDQUNwQyxPQUFPRyxhQUFhLGVBQWVBLFNBQVNDLFFBQVEsS0FDaEQsV0FDQUM7SUFFTixNQUFNQyxXQUFXUCxPQUFNUSxXQUFXO3dDQUFDLENBQUNDO1lBQ2xDVixVQUFVVTtRQUNaO3VDQUFHLEVBQUU7SUFDTEMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQlosUUFBUSxDQUFDYTtRQUN6QkEsRUFBRUMsY0FBYztRQUNoQixPQUFPaEIsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUE7SUFDVDtJQUVBLHVFQUF1RTtJQUN2RSwwQkFBMEI7SUFDMUJJLE9BQU1hLFNBQVM7NEJBQUM7WUFDZCxJQUFJZixVQUFVLE1BQU07Z0JBQ2xCO1lBQ0Y7WUFFQSxNQUFNZ0IsT0FBT2hCLE9BQU9pQixXQUFXO1lBQy9CLDhDQUE4QztZQUM5QyxJQUFJLENBQUVELENBQUFBLGdCQUFnQkUsVUFBQUEsQ0FBUyxFQUFJO2dCQUNqQztZQUNGO1lBQ0EsTUFBTUMsYUFBYUg7WUFDbkIsU0FBU0ksUUFBUVAsQ0FBZ0I7Z0JBQy9CLE1BQU1RLEtBQUtGLFdBQVdHLGFBQWE7Z0JBQ25DLElBQ0VULEVBQUVVLEdBQUcsS0FBSyxXQUNWRixjQUFjRyxlQUNkSCxHQUFHSSxZQUFZLENBQUMsWUFBWSxRQUM1QjtvQkFDQVosRUFBRUMsY0FBYztvQkFDaEJELEVBQUVhLGVBQWU7b0JBRWpCTCxHQUFHTSxLQUFLO2dCQUNWO1lBQ0Y7WUFFQSxTQUFTQztnQkFDUCwyR0FBMkc7Z0JBQzNHLDZFQUE2RTtnQkFDN0V2QixRQUFRQyxTQUFTQyxRQUFRLEtBQUssV0FBV0M7WUFDM0M7WUFFQVcsV0FBV1UsZ0JBQWdCLENBQUMsV0FBV1Q7WUFDdkNVLE9BQU9ELGdCQUFnQixDQUFDLFNBQVNEO1lBQ2pDRSxPQUFPRCxnQkFBZ0IsQ0FBQyxRQUFRRDtZQUNoQztvQ0FBTztvQkFDTFQsV0FBV1ksbUJBQW1CLENBQUMsV0FBV1g7b0JBQzFDVSxPQUFPQyxtQkFBbUIsQ0FBQyxTQUFTSDtvQkFDcENFLE9BQU9DLG1CQUFtQixDQUFDLFFBQVFIO2dCQUNyQzs7UUFDRjsyQkFBRztRQUFDNUI7S0FBTztJQUVYLHFCQUNFLHNCQUFDZ0MsT0FBQUE7UUFDQ0MsS0FBS3hCO1FBQ0x5QixvQkFBa0I7UUFDbEJDLFVBQVUsQ0FBQztRQUNYL0IsTUFBTUE7UUFDTmdDLG1CQUFpQnJDLEtBQUssQ0FBQyxrQkFBa0I7UUFDekNzQyxvQkFBa0J0QyxLQUFLLENBQUMsbUJBQW1CO1FBQzNDdUMsY0FBVzs7MEJBRVgscUJBQUNOLE9BQUFBO2dCQUFJTywyQkFBeUI7Z0JBQUNDLFdBQVksWUFBUzNDOztZQUNuREQ7OztBQUdQIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcRGlhbG9nXFxEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlT25DbGlja091dHNpZGUgfSBmcm9tICcuLi8uLi9ob29rcy91c2Utb24tY2xpY2stb3V0c2lkZSdcblxuZXhwb3J0IHR5cGUgRGlhbG9nUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIHR5cGU6ICdlcnJvcicgfCAnd2FybmluZydcbiAgJ2FyaWEtbGFiZWxsZWRieSc6IHN0cmluZ1xuICAnYXJpYS1kZXNjcmliZWRieSc6IHN0cmluZ1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBEaWFsb2c6IFJlYWN0LkZDPERpYWxvZ1Byb3BzPiA9IGZ1bmN0aW9uIERpYWxvZyh7XG4gIGNoaWxkcmVuLFxuICB0eXBlLFxuICBvbkNsb3NlLFxuICAuLi5wcm9wc1xufSkge1xuICBjb25zdCBbZGlhbG9nLCBzZXREaWFsb2ddID0gUmVhY3QudXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbcm9sZSwgc2V0Um9sZV0gPSBSZWFjdC51c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICAgIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZG9jdW1lbnQuaGFzRm9jdXMoKVxuICAgICAgPyAnZGlhbG9nJ1xuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuICBjb25zdCBvbkRpYWxvZyA9IFJlYWN0LnVzZUNhbGxiYWNrKChub2RlOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICBzZXREaWFsb2cobm9kZSlcbiAgfSwgW10pXG4gIHVzZU9uQ2xpY2tPdXRzaWRlKGRpYWxvZywgKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICByZXR1cm4gb25DbG9zZT8uKClcbiAgfSlcblxuICAvLyBNYWtlIEhUTUxFbGVtZW50cyB3aXRoIGByb2xlPWxpbmtgIGFjY2Vzc2libGUgdG8gYmUgdHJpZ2dlcmVkIGJ5IHRoZVxuICAvLyBrZXlib2FyZCwgaS5lLiBbRW50ZXJdLlxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkaWFsb2cgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdCA9IGRpYWxvZy5nZXRSb290Tm9kZSgpXG4gICAgLy8gQWx3YXlzIHRydWUsIGJ1dCB3ZSBkbyB0aGlzIGZvciBUeXBlU2NyaXB0OlxuICAgIGlmICghKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSByb290XG4gICAgZnVuY3Rpb24gaGFuZGxlcihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICBjb25zdCBlbCA9IHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudFxuICAgICAgaWYgKFxuICAgICAgICBlLmtleSA9PT0gJ0VudGVyJyAmJlxuICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgIGVsLmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnbGluaydcbiAgICAgICkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuXG4gICAgICAgIGVsLmNsaWNrKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVGb2N1cygpIHtcbiAgICAgIC8vIHNhZmFyaSB3aWxsIGZvcmNlIGl0c2VsZiBhcyB0aGUgYWN0aXZlIGFwcGxpY2F0aW9uIHdoZW4gYSBiYWNrZ3JvdW5kIHBhZ2UgdHJpZ2dlcnMgYW55IHNvcnQgb2YgYXV0b2ZvY3VzXG4gICAgICAvLyB0aGlzIGlzIGEgd29ya2Fyb3VuZCB0byBvbmx5IHNldCB0aGUgZGlhbG9nIHJvbGUgaWYgdGhlIGRvY3VtZW50IGhhcyBmb2N1c1xuICAgICAgc2V0Um9sZShkb2N1bWVudC5oYXNGb2N1cygpID8gJ2RpYWxvZycgOiB1bmRlZmluZWQpXG4gICAgfVxuXG4gICAgc2hhZG93Um9vdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlciBhcyBFdmVudExpc3RlbmVyKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgaGFuZGxlRm9jdXMpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHNoYWRvd1Jvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1cycsIGhhbmRsZUZvY3VzKVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVGb2N1cylcbiAgICB9XG4gIH0sIFtkaWFsb2ddKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtvbkRpYWxvZ31cbiAgICAgIGRhdGEtbmV4dGpzLWRpYWxvZ1xuICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgcm9sZT17cm9sZX1cbiAgICAgIGFyaWEtbGFiZWxsZWRieT17cHJvcHNbJ2FyaWEtbGFiZWxsZWRieSddfVxuICAgICAgYXJpYS1kZXNjcmliZWRieT17cHJvcHNbJ2FyaWEtZGVzY3JpYmVkYnknXX1cbiAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8ZGl2IGRhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXIgY2xhc3NOYW1lPXtgYmFubmVyLSR7dHlwZX1gfSAvPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCB7IERpYWxvZyB9XG4iXSwibmFtZXMiOlsiRGlhbG9nIiwiY2hpbGRyZW4iLCJ0eXBlIiwib25DbG9zZSIsInByb3BzIiwiZGlhbG9nIiwic2V0RGlhbG9nIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsInJvbGUiLCJzZXRSb2xlIiwiZG9jdW1lbnQiLCJoYXNGb2N1cyIsInVuZGVmaW5lZCIsIm9uRGlhbG9nIiwidXNlQ2FsbGJhY2siLCJub2RlIiwidXNlT25DbGlja091dHNpZGUiLCJlIiwicHJldmVudERlZmF1bHQiLCJ1c2VFZmZlY3QiLCJyb290IiwiZ2V0Um9vdE5vZGUiLCJTaGFkb3dSb290Iiwic2hhZG93Um9vdCIsImhhbmRsZXIiLCJlbCIsImFjdGl2ZUVsZW1lbnQiLCJrZXkiLCJIVE1MRWxlbWVudCIsImdldEF0dHJpYnV0ZSIsInN0b3BQcm9wYWdhdGlvbiIsImNsaWNrIiwiaGFuZGxlRm9jdXMiLCJhZGRFdmVudExpc3RlbmVyIiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRpdiIsInJlZiIsImRhdGEtbmV4dGpzLWRpYWxvZyIsInRhYkluZGV4IiwiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYS1kZXNjcmliZWRieSIsImFyaWEtbW9kYWwiLCJkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyIiwiY2xhc3NOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js":
|
||
/*!*************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js ***!
|
||
\*************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DialogBody\", ({\n enumerable: true,\n get: function() {\n return DialogBody;\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 DialogBody = function DialogBody(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-body\": true,\n className: className,\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=DialogBody.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0JvZHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FrQlNBOzs7ZUFBQUE7Ozs7OzZFQWxCYztBQU92QixNQUFNQSxhQUF3QyxTQUFTQSxXQUFXLEtBR2pFO0lBSGlFLE1BQ2hFQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVixHQUhpRTtJQUloRSxxQkFDRSxxQkFBQ0MsT0FBQUE7UUFBSUMseUJBQXVCO1FBQUNGLFdBQVdBO2tCQUNyQ0Q7O0FBR1AiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxEaWFsb2dcXERpYWxvZ0JvZHkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgdHlwZSBEaWFsb2dCb2R5UHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5jb25zdCBEaWFsb2dCb2R5OiBSZWFjdC5GQzxEaWFsb2dCb2R5UHJvcHM+ID0gZnVuY3Rpb24gRGlhbG9nQm9keSh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy1kaWFsb2ctYm9keSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IHsgRGlhbG9nQm9keSB9XG4iXSwibmFtZXMiOlsiRGlhbG9nQm9keSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGl2IiwiZGF0YS1uZXh0anMtZGlhbG9nLWJvZHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js":
|
||
/*!****************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js ***!
|
||
\****************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DialogContent\", ({\n enumerable: true,\n get: function() {\n return DialogContent;\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 DialogContent = function DialogContent(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-content\": true,\n className: className,\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=DialogContent.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFrQlNBOzs7ZUFBQUE7Ozs7OzZFQWxCYztBQU92QixNQUFNQSxnQkFBOEMsU0FBU0EsY0FBYyxLQUcxRTtJQUgwRSxNQUN6RUMsUUFBUSxFQUNSQyxTQUFTLEVBQ1YsR0FIMEU7SUFJekUscUJBQ0UscUJBQUNDLE9BQUFBO1FBQUlDLDRCQUEwQjtRQUFDRixXQUFXQTtrQkFDeENEOztBQUdQIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcRGlhbG9nXFxEaWFsb2dDb250ZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IHR5cGUgRGlhbG9nQ29udGVudFByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbn1cblxuY29uc3QgRGlhbG9nQ29udGVudDogUmVhY3QuRkM8RGlhbG9nQ29udGVudFByb3BzPiA9IGZ1bmN0aW9uIERpYWxvZ0NvbnRlbnQoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxufSkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnQgY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCB7IERpYWxvZ0NvbnRlbnQgfVxuIl0sIm5hbWVzIjpbIkRpYWxvZ0NvbnRlbnQiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImRpdiIsImRhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js":
|
||
/*!***************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js ***!
|
||
\***************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DialogHeader\", ({\n enumerable: true,\n get: function() {\n return DialogHeader;\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 DialogHeader = function DialogHeader(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-header\": true,\n className: className,\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=DialogHeader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0hlYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQWtCU0E7OztlQUFBQTs7Ozs7NkVBbEJjO0FBT3ZCLE1BQU1BLGVBQTRDLFNBQVNBLGFBQWEsS0FHdkU7SUFIdUUsTUFDdEVDLFFBQVEsRUFDUkMsU0FBUyxFQUNWLEdBSHVFO0lBSXRFLHFCQUNFLHFCQUFDQyxPQUFBQTtRQUFJQywyQkFBeUI7UUFBQ0YsV0FBV0E7a0JBQ3ZDRDs7QUFHUCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXERpYWxvZ1xcRGlhbG9nSGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IHR5cGUgRGlhbG9nSGVhZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5jb25zdCBEaWFsb2dIZWFkZXI6IFJlYWN0LkZDPERpYWxvZ0hlYWRlclByb3BzPiA9IGZ1bmN0aW9uIERpYWxvZ0hlYWRlcih7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgeyBEaWFsb2dIZWFkZXIgfVxuIl0sIm5hbWVzIjpbIkRpYWxvZ0hlYWRlciIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGl2IiwiZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js":
|
||
/*!********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.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 Dialog: function() {\n return _Dialog.Dialog;\n },\n DialogBody: function() {\n return _DialogBody.DialogBody;\n },\n DialogContent: function() {\n return _DialogContent.DialogContent;\n },\n DialogHeader: function() {\n return _DialogHeader.DialogHeader;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _Dialog = __webpack_require__(/*! ./Dialog */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\");\nconst _DialogBody = __webpack_require__(/*! ./DialogBody */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\");\nconst _DialogContent = __webpack_require__(/*! ./DialogContent */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\");\nconst _DialogHeader = __webpack_require__(/*! ./DialogHeader */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\");\nconst _styles = __webpack_require__(/*! ./styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js\");\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFTQSxNQUFNO2VBQU5BLFFBQUFBLE1BQU07O0lBQ05DLFVBQVU7ZUFBVkEsWUFBQUEsVUFBVTs7SUFDVkMsYUFBYTtlQUFiQSxlQUFBQSxhQUFhOztJQUNiQyxZQUFZO2VBQVpBLGNBQUFBLFlBQVk7O0lBQ1pDLE1BQU07ZUFBTkEsUUFBQUEsTUFBTTs7O29DQUpRO3dDQUNJOzJDQUNHOzBDQUNEO29DQUNOIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcRGlhbG9nXFxpbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEaWFsb2cgfSBmcm9tICcuL0RpYWxvZydcbmV4cG9ydCB7IERpYWxvZ0JvZHkgfSBmcm9tICcuL0RpYWxvZ0JvZHknXG5leHBvcnQgeyBEaWFsb2dDb250ZW50IH0gZnJvbSAnLi9EaWFsb2dDb250ZW50J1xuZXhwb3J0IHsgRGlhbG9nSGVhZGVyIH0gZnJvbSAnLi9EaWFsb2dIZWFkZXInXG5leHBvcnQgeyBzdHlsZXMgfSBmcm9tICcuL3N0eWxlcydcbiJdLCJuYW1lcyI6WyJEaWFsb2ciLCJEaWFsb2dCb2R5IiwiRGlhbG9nQ29udGVudCIsIkRpYWxvZ0hlYWRlciIsInN0eWxlcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js":
|
||
/*!*********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js ***!
|
||
\*********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"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 _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-dialog] {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n outline: none;\\n background: var(--color-background);\\n border-radius: var(--size-gap);\\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\\n rgba(0, 0, 0, 0.25);\\n max-height: calc(100% - 56px);\\n overflow-y: hidden;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n max-height: calc(100% - 15px);\\n }\\n }\\n\\n @media (min-width: 576px) {\\n [data-nextjs-dialog] {\\n max-width: 540px;\\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog] {\\n max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog] {\\n max-width: 960px;\\n }\\n }\\n\\n [data-nextjs-dialog-banner] {\\n position: relative;\\n }\\n [data-nextjs-dialog-banner].banner-warning {\\n border-color: var(--color-ansi-yellow);\\n }\\n [data-nextjs-dialog-banner].banner-error {\\n border-color: var(--color-ansi-red);\\n }\\n\\n [data-nextjs-dialog-banner]::after {\\n z-index: 2;\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n /* banner width: */\\n border-top-width: var(--size-gap-half);\\n border-bottom-width: 0;\\n border-top-style: solid;\\n border-bottom-style: solid;\\n border-top-color: inherit;\\n border-bottom-color: transparent;\\n }\\n\\n [data-nextjs-dialog-content] {\\n overflow-y: auto;\\n border: none;\\n margin: 0;\\n /* calc(padding + banner width offset) */\\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\\n var(--size-gap-double);\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQTBGU0E7OztlQUFBQTs7OzswQ0ExRm1COzs7Ozs7Ozs7O0FBRTVCLE1BQU1BLFNBQUFBLENBQUFBLEdBQVNDLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxEaWFsb2dcXHN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwKTtcbiAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtZ2FwLWhhbGYpIHZhcigtLXNpemUtZ2FwLWRvdWJsZSlcbiAgICAgIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICB9XG5cbiAgQG1lZGlhIChtYXgtaGVpZ2h0OiA4MTJweCkge1xuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTVweCk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xuICAgICAgbWF4LXdpZHRoOiA1NDBweDtcbiAgICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tc2l6ZS1nYXApIHZhcigtLXNpemUtZ2FwLXF1YWQpIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xuICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XG4gICAgICBtYXgtd2lkdGg6IDk2MHB4O1xuICAgIH1cbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXS5iYW5uZXItd2FybmluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXllbGxvdyk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci1lcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl06OmFmdGVyIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLyogYmFubmVyIHdpZHRoOiAqL1xuICAgIGJvcmRlci10b3Atd2lkdGg6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0ge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICAvKiBjYWxjKHBhZGRpbmcgKyBiYW5uZXIgd2lkdGggb2Zmc2V0KSAqL1xuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxuICAgICAgdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlcl0ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctYm9keV0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuYFxuXG5leHBvcnQgeyBzdHlsZXMgfVxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js":
|
||
/*!***************************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js ***!
|
||
\***************************************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"LeftRightDialogHeader\", ({\n enumerable: true,\n get: function() {\n return LeftRightDialogHeader;\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 _CloseIcon = __webpack_require__(/*! ../../icons/CloseIcon */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\nconst LeftRightDialogHeader = function LeftRightDialogHeader(param) {\n let { children, className, previous, next, close } = param;\n const buttonLeft = _react.useRef(null);\n const buttonRight = _react.useRef(null);\n const buttonClose = _react.useRef(null);\n const [nav, setNav] = _react.useState(null);\n const onNav = _react.useCallback({\n \"LeftRightDialogHeader.useCallback[onNav]\": (el)=>{\n setNav(el);\n }\n }[\"LeftRightDialogHeader.useCallback[onNav]\"], []);\n _react.useEffect({\n \"LeftRightDialogHeader.useEffect\": ()=>{\n if (nav == null) {\n return;\n }\n const root = nav.getRootNode();\n const d = self.document;\n function handler(e) {\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n e.stopPropagation();\n if (buttonLeft.current) {\n buttonLeft.current.focus();\n }\n previous && previous();\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n e.stopPropagation();\n if (buttonRight.current) {\n buttonRight.current.focus();\n }\n next && next();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n if (root instanceof ShadowRoot) {\n const a = root.activeElement;\n if (a && a !== buttonClose.current && a instanceof HTMLElement) {\n a.blur();\n return;\n }\n }\n close == null ? void 0 : close();\n }\n }\n root.addEventListener('keydown', handler);\n if (root !== d) {\n d.addEventListener('keydown', handler);\n }\n return ({\n \"LeftRightDialogHeader.useEffect\": function() {\n root.removeEventListener('keydown', handler);\n if (root !== d) {\n d.removeEventListener('keydown', handler);\n }\n }\n })[\"LeftRightDialogHeader.useEffect\"];\n }\n }[\"LeftRightDialogHeader.useEffect\"], [\n close,\n nav,\n next,\n previous\n ]);\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n _react.useEffect({\n \"LeftRightDialogHeader.useEffect\": ()=>{\n if (nav == null) {\n return;\n }\n const root = nav.getRootNode();\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n const a = root.activeElement;\n if (previous == null) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur();\n }\n } else if (next == null) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur();\n }\n }\n }\n }\n }[\"LeftRightDialogHeader.useEffect\"], [\n nav,\n next,\n previous\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-dialog-left-right\": true,\n className: className,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"nav\", {\n ref: onNav,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n ref: buttonLeft,\n type: \"button\",\n disabled: previous == null ? true : undefined,\n \"aria-disabled\": previous == null ? true : undefined,\n onClick: previous != null ? previous : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: \"previous\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M6.99996 1.16666L1.16663 6.99999L6.99996 12.8333M12.8333 6.99999H1.99996H12.8333Z\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n ref: buttonRight,\n type: \"button\",\n disabled: next == null ? true : undefined,\n \"aria-disabled\": next == null ? true : undefined,\n onClick: next != null ? next : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: \"next\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M6.99996 1.16666L12.8333 6.99999L6.99996 12.8333M1.16663 6.99999H12H1.16663Z\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n })\n }),\n children\n ]\n }),\n close ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n \"data-nextjs-errors-dialog-left-right-close-button\": true,\n ref: buttonClose,\n type: \"button\",\n onClick: close,\n \"aria-label\": \"Close\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"aria-hidden\": \"true\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_CloseIcon.CloseIcon, {})\n })\n }) : 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=LeftRightDialogHeader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL0xlZnRSaWdodERpYWxvZ0hlYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7O3lEQXdLU0E7OztlQUFBQTs7Ozs7NkVBeEtjO3VDQUNHO0FBVTFCLE1BQU1BLHdCQUNKLFNBQVNBLHNCQUFzQixLQU05QjtJQU44QixNQUM3QkMsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLFFBQVEsRUFDUkMsSUFBSSxFQUNKQyxLQUFLLEVBQ04sR0FOOEI7SUFPN0IsTUFBTUMsYUFBYUMsT0FBTUMsTUFBTSxDQUEyQjtJQUMxRCxNQUFNQyxjQUFjRixPQUFNQyxNQUFNLENBQTJCO0lBQzNELE1BQU1FLGNBQWNILE9BQU1DLE1BQU0sQ0FBMkI7SUFFM0QsTUFBTSxDQUFDRyxLQUFLQyxPQUFPLEdBQUdMLE9BQU1NLFFBQVEsQ0FBcUI7SUFDekQsTUFBTUMsUUFBUVAsT0FBTVEsV0FBVztvREFBQyxDQUFDQztZQUMvQkosT0FBT0k7UUFDVDttREFBRyxFQUFFO0lBRUxULE9BQU1VLFNBQVM7MkNBQUM7WUFDZCxJQUFJTixPQUFPLE1BQU07Z0JBQ2Y7WUFDRjtZQUVBLE1BQU1PLE9BQU9QLElBQUlRLFdBQVc7WUFDNUIsTUFBTUMsSUFBSUMsS0FBS0MsUUFBUTtZQUV2QixTQUFTQyxRQUFRQyxDQUFnQjtnQkFDL0IsSUFBSUEsRUFBRUMsR0FBRyxLQUFLLGFBQWE7b0JBQ3pCRCxFQUFFRSxjQUFjO29CQUNoQkYsRUFBRUcsZUFBZTtvQkFDakIsSUFBSXJCLFdBQVdzQixPQUFPLEVBQUU7d0JBQ3RCdEIsV0FBV3NCLE9BQU8sQ0FBQ0MsS0FBSztvQkFDMUI7b0JBQ0ExQixZQUFZQTtnQkFDZCxPQUFPLElBQUlxQixFQUFFQyxHQUFHLEtBQUssY0FBYztvQkFDakNELEVBQUVFLGNBQWM7b0JBQ2hCRixF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SXBCdEQ7OztZQUVGSSxRQUFBQSxXQUFBQSxHQUNDLHFCQUFDbUMsVUFBQUE7Z0JBQ0NnQixtREFBaUQ7Z0JBQ2pEakIsS0FBSzdCO2dCQUNMK0IsTUFBSztnQkFDTEksU0FBU3hDO2dCQUNUb0QsY0FBVzswQkFFWCxtQ0FBQ0MsUUFBQUE7b0JBQUtDLGVBQVk7OEJBQ2hCLG1DQUFDQyxXQUFBQSxTQUFTOztpQkFHWjs7O0FBR1YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxMZWZ0UmlnaHREaWFsb2dIZWFkZXJcXExlZnRSaWdodERpYWxvZ0hlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDbG9zZUljb24gfSBmcm9tICcuLi8uLi9pY29ucy9DbG9zZUljb24nXG5cbmV4cG9ydCB0eXBlIExlZnRSaWdodERpYWxvZ0hlYWRlclByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgcHJldmlvdXM6ICgoKSA9PiB2b2lkKSB8IG51bGxcbiAgbmV4dDogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjbG9zZT86ICgpID0+IHZvaWRcbn1cblxuY29uc3QgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyOiBSZWFjdC5GQzxMZWZ0UmlnaHREaWFsb2dIZWFkZXJQcm9wcz4gPVxuICBmdW5jdGlvbiBMZWZ0UmlnaHREaWFsb2dIZWFkZXIoe1xuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBwcmV2aW91cyxcbiAgICBuZXh0LFxuICAgIGNsb3NlLFxuICB9KSB7XG4gICAgY29uc3QgYnV0dG9uTGVmdCA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw+KG51bGwpXG4gICAgY29uc3QgYnV0dG9uUmlnaHQgPSBSZWFjdC51c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICAgIGNvbnN0IGJ1dHRvbkNsb3NlID0gUmVhY3QudXNlUmVmPEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbD4obnVsbClcblxuICAgIGNvbnN0IFtuYXYsIHNldE5hdl0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpXG4gICAgY29uc3Qgb25OYXYgPSBSZWFjdC51c2VDYWxsYmFjaygoZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICBzZXROYXYoZWwpXG4gICAgfSwgW10pXG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKG5hdiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCByb290ID0gbmF2LmdldFJvb3ROb2RlKClcbiAgICAgIGNvbnN0IGQgPSBzZWxmLmRvY3VtZW50XG5cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZXIoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGlmIChidXR0b25MZWZ0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGJ1dHRvbkxlZnQuY3VycmVudC5mb2N1cygpXG4gICAgICAgICAgfVxuICAgICAgICAgIHByZXZpb3VzICYmIHByZXZpb3VzKClcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93UmlnaHQnKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGlmIChidXR0b25SaWdodC5jdXJyZW50KSB7XG4gICAgICAgICAgICBidXR0b25SaWdodC5jdXJyZW50LmZvY3VzKClcbiAgICAgICAgICB9XG4gICAgICAgICAgbmV4dCAmJiBuZXh0KClcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgaWYgKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgICAgICAgICBjb25zdCBhID0gcm9vdC5hY3RpdmVFbGVtZW50XG4gICAgICAgICAgICBpZiAoYSAmJiBhICE9PSBidXR0b25DbG9zZS5jdXJyZW50ICYmIGEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICBhLmJsdXIoKVxuICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjbG9zZT8uKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgICBpZiAocm9vdCAhPT0gZCkge1xuICAgICAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlciBhcyBFdmVudExpc3RlbmVyKVxuICAgICAgICBpZiAocm9vdCAhPT0gZCkge1xuICAgICAgICAgIGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbY2xvc2UsIG5hdiwgbmV4dCwgcHJldmlvdXNdKVxuXG4gICAgLy8gVW5sb2NrIGZvY3VzIGZvciBicm93c2VycyBsaWtlIEZpcmVmb3gsIHRoYXQgYnJlYWsgYWxsIHVzZXIgZm9jdXMgaWYgdGhlXG4gICAgLy8gY3VycmVudGx5IGZvY3VzZWQgaXRlbSBiZWNvbWVzIGRpc2FibGVkLlxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAobmF2ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJvb3QgPSBuYXYuZ2V0Um9vdE5vZGUoKVxuICAgICAgLy8gQWx3YXlzIHRydWUsIGJ1dCB3ZSBkbyB0aGlzIGZvciBUeXBlU2NyaXB0OlxuICAgICAgaWYgKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgICAgIGNvbnN0IGEgPSByb290LmFjdGl2ZUVsZW1lbnRcblxuICAgICAgICBpZiAocHJldmlvdXMgPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChidXR0b25MZWZ0LmN1cnJlbnQgJiYgYSA9PT0gYnV0dG9uTGVmdC5jdXJyZW50KSB7XG4gICAgICAgICAgICBidXR0b25MZWZ0LmN1cnJlbnQuYmx1cigpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG5leHQgPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChidXR0b25SaWdodC5jdXJyZW50ICYmIGEgPT09IGJ1dHRvblJpZ2h0LmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGJ1dHRvblJpZ2h0LmN1cnJlbnQuYmx1cigpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW25hdiwgbmV4dCwgcHJldmlvdXNdKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHQgY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICA8bmF2IHJlZj17b25OYXZ9PlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHJlZj17YnV0dG9uTGVmdH1cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgZGlzYWJsZWQ9e3ByZXZpb3VzID09IG51bGwgPyB0cnVlIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD17cHJldmlvdXMgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtwcmV2aW91cyA/PyB1bmRlZmluZWR9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE0IDE0XCJcbiAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHRpdGxlPnByZXZpb3VzPC90aXRsZT5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTYuOTk5OTYgMS4xNjY2NkwxLjE2NjYzIDYuOTk5OTlMNi45OTk5NiAxMi44MzMzTTEyLjgzMzMgNi45OTk5OUgxLjk5OTk2SDEyLjgzMzNaXCJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHJlZj17YnV0dG9uUmlnaHR9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtuZXh0ID09IG51bGwgPyB0cnVlIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgYXJpYS1kaXNhYmxlZD17bmV4dCA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e25leHQgPz8gdW5kZWZpbmVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNCAxNFwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx0aXRsZT5uZXh0PC90aXRsZT5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTYuOTk5OTYgMS4xNjY2NkwxMi44MzMzIDYuOTk5OTlMNi45OTk5NiAxMi44MzMzTTEuMTY2NjMgNi45OTk5OUgxMkgxLjE2NjYzWlwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvbmF2PlxuICAgICAgICB7Y2xvc2UgPyAoXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZGF0YS1uZXh0anMtZXJyb3JzLWRpYWxvZy1sZWZ0LXJpZ2h0LWNsb3NlLWJ1dHRvblxuICAgICAgICAgICAgcmVmPXtidXR0b25DbG9zZX1cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17Y2xvc2V9XG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8Q2xvc2VJY29uIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbmV4cG9ydCB7IExlZnRSaWdodERpYWxvZ0hlYWRlciB9XG4iXSwibmFtZXMiOlsiTGVmdFJpZ2h0RGlhbG9nSGVhZGVyIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJwcmV2aW91cyIsIm5leHQiLCJjbG9zZSIsImJ1dHRvbkxlZnQiLCJSZWFjdCIsInVzZVJlZiIsImJ1dHRvblJpZ2h0IiwiYnV0dG9uQ2xvc2UiLCJuYXYiLCJzZXROYXYiLCJ1c2VTdGF0ZSIsIm9uTmF2IiwidXNlQ2FsbGJhY2siLCJlbCIsInVzZUVmZmVjdCIsInJvb3QiLCJnZXRSb290Tm9kZSIsImQiLCJzZWxmIiwiZG9jdW1lbnQiLCJoYW5kbGVyIiwiZSIsImtleSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY3VycmVudCIsImZvY3VzIiwiU2hhZG93Um9vdCIsImEiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJibHVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkaXYiLCJkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodCIsInJlZiIsImJ1dHRvbiIsInR5cGUiLCJkaXNhYmxlZCIsInVuZGVmaW5lZCIsImFyaWEtZGlzYWJsZWQiLCJvbkNsaWNrIiwic3ZnIiwidmlld0JveCIsImZpbGwiLCJ4bWxucyIsInRpdGxlIiwicGF0aCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiZGF0YS1uZXh0anMtZXJyb3JzLWRpYWxvZy1sZWZ0LXJpZ2h0LWNsb3NlLWJ1dHRvbiIsImFyaWEtbGFiZWwiLCJzcGFuIiwiYXJpYS1oaWRkZW4iLCJDbG9zZUljb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js":
|
||
/*!***********************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.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 LeftRightDialogHeader: function() {\n return _LeftRightDialogHeader.LeftRightDialogHeader;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _LeftRightDialogHeader = __webpack_require__(/*! ./LeftRightDialogHeader */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\");\nconst _styles = __webpack_require__(/*! ./styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\");\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFTQSxxQkFBcUI7ZUFBckJBLHVCQUFBQSxxQkFBcUI7O0lBQ3JCQyxNQUFNO2VBQU5BLFFBQUFBLE1BQU07OzttREFEdUI7b0NBQ2YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxMZWZ0UmlnaHREaWFsb2dIZWFkZXJcXGluZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IExlZnRSaWdodERpYWxvZ0hlYWRlciB9IGZyb20gJy4vTGVmdFJpZ2h0RGlhbG9nSGVhZGVyJ1xuZXhwb3J0IHsgc3R5bGVzIH0gZnJvbSAnLi9zdHlsZXMnXG4iXSwibmFtZXMiOlsiTGVmdFJpZ2h0RGlhbG9nSGVhZGVyIiwic3R5bGVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js":
|
||
/*!************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js ***!
|
||
\************************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"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 _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-dialog-left-right] {\\n display: flex;\\n flex-direction: row;\\n align-content: center;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-nextjs-dialog-left-right] > nav {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n margin-right: var(--size-gap);\\n }\\n [data-nextjs-dialog-left-right] > nav > button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n width: calc(var(--size-gap-double) + var(--size-gap));\\n height: calc(var(--size-gap-double) + var(--size-gap));\\n font-size: 0;\\n border: none;\\n background-color: rgba(255, 85, 85, 0.1);\\n color: var(--color-ansi-red);\\n cursor: pointer;\\n transition: background-color 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > nav > button > svg {\\n width: auto;\\n height: calc(var(--size-gap) + var(--size-gap-half));\\n }\\n [data-nextjs-dialog-left-right] > nav > button:hover {\\n background-color: rgba(255, 85, 85, 0.2);\\n }\\n [data-nextjs-dialog-left-right] > nav > button:disabled {\\n background-color: rgba(255, 85, 85, 0.1);\\n color: rgba(255, 85, 85, 0.4);\\n cursor: not-allowed;\\n }\\n\\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\\n margin-right: 1px;\\n }\\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\\n }\\n\\n [data-nextjs-dialog-left-right] > button:last-of-type {\\n border: 0;\\n padding: 0;\\n\\n background-color: transparent;\\n appearance: none;\\n\\n opacity: 0.4;\\n transition: opacity 0.25s ease;\\n\\n color: var(--color-font);\\n }\\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\\n opacity: 0.7;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQW9FU0E7OztlQUFBQTs7OzswQ0FwRW1COzs7Ozs7Ozs7O0FBRTVCLE1BQU1BLFNBQUFBLENBQUFBLEdBQVNDLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxMZWZ0UmlnaHREaWFsb2dIZWFkZXJcXHN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc2l6ZS1nYXApO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICB3aWR0aDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjEpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uID4gc3ZnIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMik7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4xKTtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC40KTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKSAwIDAgdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tc2l6ZS1nYXAtaGFsZikgdmFyKC0tc2l6ZS1nYXAtaGFsZikgMDtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBidXR0b246bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICBvcGFjaXR5OiAwLjQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBidXR0b246bGFzdC1vZi10eXBlOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbmBcblxuZXhwb3J0IHsgc3R5bGVzIH1cbiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJjc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js":
|
||
/*!***********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js ***!
|
||
\***********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Overlay\", ({\n enumerable: true,\n get: function() {\n return Overlay;\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 _maintaintabfocus = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./maintain--tab-focus */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.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 _bodylocker = __webpack_require__(/*! ./body-locker */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\");\nconst Overlay = function Overlay(param) {\n let { className, children, fixed } = param;\n _react.useEffect({\n \"Overlay.useEffect\": ()=>{\n (0, _bodylocker.lock)();\n return ({\n \"Overlay.useEffect\": ()=>{\n (0, _bodylocker.unlock)();\n }\n })[\"Overlay.useEffect\"];\n }\n }[\"Overlay.useEffect\"], []);\n const [overlay, setOverlay] = _react.useState(null);\n const onOverlay = _react.useCallback({\n \"Overlay.useCallback[onOverlay]\": (el)=>{\n setOverlay(el);\n }\n }[\"Overlay.useCallback[onOverlay]\"], []);\n _react.useEffect({\n \"Overlay.useEffect\": ()=>{\n if (overlay == null) {\n return;\n }\n const handle2 = (0, _maintaintabfocus.default)({\n context: overlay\n });\n return ({\n \"Overlay.useEffect\": ()=>{\n handle2.disengage();\n }\n })[\"Overlay.useEffect\"];\n }\n }[\"Overlay.useEffect\"], [\n overlay\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-dialog-overlay\": true,\n className: className,\n ref: onOverlay,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-backdrop\": true,\n \"data-nextjs-dialog-backdrop-fixed\": fixed ? true : undefined\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=Overlay.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBaURTQTs7O2VBQUFBOzs7Ozs7dUZBakRZOzZFQUNFO3dDQUNNO0FBUTdCLE1BQU1BLFVBQWtDLFNBQVNBLFFBQVEsS0FJeEQ7SUFKd0QsTUFDdkRDLFNBQVMsRUFDVEMsUUFBUSxFQUNSQyxLQUFLLEVBQ04sR0FKd0Q7SUFLdkRDLE9BQU1DLFNBQVM7NkJBQUM7WUFDZEMsQ0FBQUEsR0FBQUEsWUFBQUEsSUFBQUE7WUFDQTtxQ0FBTztvQkFDTEMsQ0FBQUEsR0FBQUEsWUFBQUEsTUFBQUE7Z0JBQ0Y7O1FBQ0Y7NEJBQUcsRUFBRTtJQUVMLE1BQU0sQ0FBQ0MsU0FBU0MsV0FBVyxHQUFHTCxPQUFNTSxRQUFRLENBQXdCO0lBQ3BFLE1BQU1DLFlBQVlQLE9BQU1RLFdBQVc7MENBQUMsQ0FBQ0M7WUFDbkNKLFdBQVdJO1FBQ2I7eUNBQUcsRUFBRTtJQUVMVCxPQUFNQyxTQUFTOzZCQUFDO1lBQ2QsSUFBSUcsV0FBVyxNQUFNO2dCQUNuQjtZQUNGO1lBRUEsTUFBTU0sVUFBVUMsQ0FBQUEsR0FBQUEsa0JBQUFBLE9BQUFBLEVBQVM7Z0JBQUVDLFNBQVNSO1lBQVE7WUFDNUM7cUNBQU87b0JBQ0xNLFFBQVFHLFNBQVM7Z0JBQ25COztRQUNGOzRCQUFHO1FBQUNUO0tBQVE7SUFFWixPQUNFLFdBREYsR0FDRSxzQkFBQ1UsT0FBQUE7UUFBSUMsNEJBQTBCO1FBQUNsQixXQUFXQTtRQUFXbUIsS0FBS1Q7OzBCQUN6RCxxQkFBQ08sT0FBQUE7Z0JBQ0NHLDZCQUEyQjtnQkFDM0JDLHFDQUFtQ25CLFFBQVEsT0FBT29COztZQUVuRHJCOzs7QUFHUCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXE92ZXJsYXlcXE92ZXJsYXkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbGx5VHJhcCBmcm9tICcuL21haW50YWluLS10YWItZm9jdXMnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGxvY2ssIHVubG9jayB9IGZyb20gJy4vYm9keS1sb2NrZXInXG5cbmV4cG9ydCB0eXBlIE92ZXJsYXlQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGZpeGVkPzogYm9vbGVhblxufVxuXG5jb25zdCBPdmVybGF5OiBSZWFjdC5GQzxPdmVybGF5UHJvcHM+ID0gZnVuY3Rpb24gT3ZlcmxheSh7XG4gIGNsYXNzTmFtZSxcbiAgY2hpbGRyZW4sXG4gIGZpeGVkLFxufSkge1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvY2soKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB1bmxvY2soKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgW292ZXJsYXksIHNldE92ZXJsYXldID0gUmVhY3QudXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBvbk92ZXJsYXkgPSBSZWFjdC51c2VDYWxsYmFjaygoZWw6IEhUTUxEaXZFbGVtZW50KSA9PiB7XG4gICAgc2V0T3ZlcmxheShlbClcbiAgfSwgW10pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob3ZlcmxheSA9PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGUyID0gYWxseVRyYXAoeyBjb250ZXh0OiBvdmVybGF5IH0pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGhhbmRsZTIuZGlzZW5nYWdlKClcbiAgICB9XG4gIH0sIFtvdmVybGF5XSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXkgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHJlZj17b25PdmVybGF5fT5cbiAgICAgIDxkaXZcbiAgICAgICAgZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXG4gICAgICAgIGRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZD17Zml4ZWQgPyB0cnVlIDogdW5kZWZpbmVkfVxuICAgICAgLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgeyBPdmVybGF5IH1cbiJdLCJuYW1lcyI6WyJPdmVybGF5IiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJmaXhlZCIsIlJlYWN0IiwidXNlRWZmZWN0IiwibG9jayIsInVubG9jayIsIm92ZXJsYXkiLCJzZXRPdmVybGF5IiwidXNlU3RhdGUiLCJvbk92ZXJsYXkiLCJ1c2VDYWxsYmFjayIsImVsIiwiaGFuZGxlMiIsImFsbHlUcmFwIiwiY29udGV4dCIsImRpc2VuZ2FnZSIsImRpdiIsImRhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5IiwicmVmIiwiZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wIiwiZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkIiwidW5kZWZpbmVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js":
|
||
/*!***************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.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 lock: function() {\n return lock;\n },\n unlock: function() {\n return unlock;\n }\n});\nlet previousBodyPaddingRight;\nlet previousBodyOverflowSetting;\nlet activeLocks = 0;\nfunction lock() {\n setTimeout(()=>{\n if (activeLocks++ > 0) {\n return;\n }\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = \"\" + scrollBarGap + \"px\";\n }\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n });\n}\nfunction unlock() {\n setTimeout(()=>{\n if (activeLocks === 0 || --activeLocks !== 0) {\n return;\n }\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n previousBodyPaddingRight = undefined;\n }\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n previousBodyOverflowSetting = undefined;\n }\n });\n}\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=body-locker.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9ib2R5LWxvY2tlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFLZ0JBLElBQUk7ZUFBSkE7O0lBbUJBQyxNQUFNO2VBQU5BOzs7QUF4QmhCLElBQUlDO0FBQ0osSUFBSUM7QUFFSixJQUFJQyxjQUFjO0FBRVgsU0FBU0o7SUFDZEssV0FBVztRQUNULElBQUlELGdCQUFnQixHQUFHO1lBQ3JCO1FBQ0Y7UUFFQSxNQUFNRSxlQUNKQyxPQUFPQyxVQUFVLEdBQUdDLFNBQVNDLGVBQWUsQ0FBQ0MsV0FBVztRQUUxRCxJQUFJTCxlQUFlLEdBQUc7WUFDcEJKLDJCQUEyQk8sU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNDLFlBQVk7WUFDM0RMLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxZQUFZLEdBQUksS0FBRVIsZUFBYTtRQUNyRDtRQUVBSCw4QkFBOEJNLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxRQUFRO1FBQzFETixTQUFTRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0UsUUFBUSxHQUFHO0lBQ2pDO0FBQ0Y7QUFFTyxTQUFTZDtJQUNkSSxXQUFXO1FBQ1QsSUFBSUQsZ0JBQWdCLEtBQUssRUFBRUEsZ0JBQWdCLEdBQUc7WUFDNUM7UUFDRjtRQUVBLElBQUlGLDZCQUE2QmMsV0FBVztZQUMxQ1AsU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNDLFlBQVksR0FBR1o7WUFDbkNBLDJCQUEyQmM7UUFDN0I7UUFFQSxJQUFJYixnQ0FBZ0NhLFdBQVc7WUFDN0NQLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxRQUFRLEdBQUdaO1lBQy9CQSw4QkFBOEJhO1FBQ2hDO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXE92ZXJsYXlcXGJvZHktbG9ja2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQ6IHN0cmluZyB8IHVuZGVmaW5lZFxubGV0IHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZzogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbmxldCBhY3RpdmVMb2NrcyA9IDBcblxuZXhwb3J0IGZ1bmN0aW9uIGxvY2soKSB7XG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGlmIChhY3RpdmVMb2NrcysrID4gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsQmFyR2FwID1cbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoXG5cbiAgICBpZiAoc2Nyb2xsQmFyR2FwID4gMCkge1xuICAgICAgcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ID0gZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHRcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0ID0gYCR7c2Nyb2xsQmFyR2FwfXB4YFxuICAgIH1cblxuICAgIHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3dcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbidcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVubG9jaygpIHtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKGFjdGl2ZUxvY2tzID09PSAwIHx8IC0tYWN0aXZlTG9ja3MgIT09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHRcbiAgICAgIHByZXZpb3VzQm9keVBhZGRpbmdSaWdodCA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGlmIChwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZ1xuICAgICAgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nID0gdW5kZWZpbmVkXG4gICAgfVxuICB9KVxufVxuIl0sIm5hbWVzIjpbImxvY2siLCJ1bmxvY2siLCJwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQiLCJwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmciLCJhY3RpdmVMb2NrcyIsInNldFRpbWVvdXQiLCJzY3JvbGxCYXJHYXAiLCJ3aW5kb3ciLCJpbm5lcldpZHRoIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRXaWR0aCIsImJvZHkiLCJzdHlsZSIsInBhZGRpbmdSaWdodCIsIm92ZXJmbG93IiwidW5kZWZpbmVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js":
|
||
/*!*********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js ***!
|
||
\*********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Overlay\", ({\n enumerable: true,\n get: function() {\n return _Overlay.Overlay;\n }\n}));\nconst _Overlay = __webpack_require__(/*! ./Overlay */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js\");\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQUFTQTs7O2VBQUFBLFNBQUFBLE9BQU87OztxQ0FBUSIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXE92ZXJsYXlcXGluZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi9PdmVybGF5J1xuIl0sIm5hbWVzIjpbIk92ZXJsYXkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js":
|
||
/*!***********************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js ***!
|
||
\***********************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* eslint-disable */ // @ts-nocheck\n// Copied from https://github.com/medialize/ally.js\n// License: MIT\n// Copyright (c) 2015 Rodney Rehm\n//\n// Entrypoint: ally.js/maintain/tab-focus\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _platform = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/platform */ \"(ssr)/./node_modules/next/dist/compiled/platform/platform.js\"));\nconst _cssescape = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/css.escape */ \"(ssr)/./node_modules/next/dist/compiled/css.escape/css.escape.js\"));\n// input may be undefined, selector-tring, Node, NodeList, HTMLCollection, array of Nodes\n// yes, to some extent this is a bad replica of jQuery's constructor function\nfunction nodeArray(input) {\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [\n input\n ];\n }\n if (typeof input === 'string') {\n input = document.querySelectorAll(input);\n }\n if (input.length !== undefined) {\n return [].slice.call(input, 0);\n }\n throw new TypeError('unexpected input ' + String(input));\n}\nfunction contextToElement(_ref) {\n var context = _ref.context, _ref$label = _ref.label, label = _ref$label === undefined ? 'context-to-element' : _ref$label, resolveDocument = _ref.resolveDocument, defaultToDocument = _ref.defaultToDocument;\n var element = nodeArray(context)[0];\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n if (!element) {\n throw new TypeError(label + ' requires valid options.context');\n }\n if (element.nodeType !== Node.ELEMENT_NODE && element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + ' requires options.context to be an Element');\n }\n return element;\n}\nfunction getShadowHost() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var element = contextToElement({\n label: 'get/shadow-host',\n context: context\n });\n // walk up to the root\n var container = null;\n while(element){\n container = element;\n element = element.parentNode;\n }\n // https://developer.mozilla.org/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (container.nodeType === container.DOCUMENT_FRAGMENT_NODE && container.host) {\n // the root is attached to a fragment node that has a host\n return container.host;\n }\n return null;\n}\nfunction getDocument(node) {\n if (!node) {\n return document;\n }\n if (node.nodeType === Node.DOCUMENT_NODE) {\n return node;\n }\n return node.ownerDocument || document;\n}\nfunction isActiveElement(context) {\n var element = contextToElement({\n label: 'is/active-element',\n resolveDocument: true,\n context: context\n });\n var _document = getDocument(element);\n if (_document.activeElement === element) {\n return true;\n }\n var shadowHost = getShadowHost({\n context: element\n });\n if (shadowHost && shadowHost.shadowRoot.activeElement === element) {\n return true;\n }\n return false;\n}\n// [elem, elem.parent, elem.parent.parent, …, html]\n// will not contain the shadowRoot (DOCUMENT_FRAGMENT_NODE) and shadowHost\nfunction getParents() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var list = [];\n var element = contextToElement({\n label: 'get/parents',\n context: context\n });\n while(element){\n list.push(element);\n // IE does know support parentElement on SVGElement\n element = element.parentNode;\n if (element && element.nodeType !== Node.ELEMENT_NODE) {\n element = null;\n }\n }\n return list;\n}\n// Element.prototype.matches may be available at a different name\n// https://developer.mozilla.org/en/docs/Web/API/Element/matches\nvar names = [\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector'\n];\nvar name = null;\nfunction findMethodName(element) {\n names.some(function(_name) {\n if (!element[_name]) {\n return false;\n }\n name = _name;\n return true;\n });\n}\nfunction elementMatches(element, selector) {\n if (!name) {\n findMethodName(element);\n }\n return element[name](selector);\n}\n// deep clone of original platform\nvar platform = JSON.parse(JSON.stringify(_platform.default));\n// operating system\nvar os = platform.os.family || '';\nvar ANDROID = os === 'Android';\nvar WINDOWS = os.slice(0, 7) === 'Windows';\nvar OSX = os === 'OS X';\nvar IOS = os === 'iOS';\n// layout\nvar BLINK = platform.layout === 'Blink';\nvar GECKO = platform.layout === 'Gecko';\nvar TRIDENT = platform.layout === 'Trident';\nvar EDGE = platform.layout === 'EdgeHTML';\nvar WEBKIT = platform.layout === 'WebKit';\n// browser version (not layout engine version!)\nvar version = parseFloat(platform.version);\nvar majorVersion = Math.floor(version);\nplatform.majorVersion = majorVersion;\nplatform.is = {\n // operating system\n ANDROID: ANDROID,\n WINDOWS: WINDOWS,\n OSX: OSX,\n IOS: IOS,\n // layout\n BLINK: BLINK,\n GECKO: GECKO,\n TRIDENT: TRIDENT,\n EDGE: EDGE,\n WEBKIT: WEBKIT,\n // INTERNET EXPLORERS\n IE9: TRIDENT && majorVersion === 9,\n IE10: TRIDENT && majorVersion === 10,\n IE11: TRIDENT && majorVersion === 11\n};\nfunction before() {\n var data = {\n // remember what had focus to restore after test\n activeElement: document.activeElement,\n // remember scroll positions to restore after test\n windowScrollTop: window.scrollTop,\n windowScrollLeft: window.scrollLeft,\n bodyScrollTop: document.body.scrollTop,\n bodyScrollLeft: document.body.scrollLeft\n };\n // wrap tests in an element hidden from screen readers to prevent them\n // from announcing focus, which can be quite irritating to the user\n var iframe = document.createElement('iframe');\n iframe.setAttribute('style', 'position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;');\n iframe.setAttribute('aria-live', 'off');\n iframe.setAttribute('aria-busy', 'true');\n iframe.setAttribute('aria-hidden', 'true');\n document.body.appendChild(iframe);\n var _window = iframe.contentWindow;\n var _document = _window.document;\n _document.open();\n _document.close();\n var wrapper = _document.createElement('div');\n _document.body.appendChild(wrapper);\n data.iframe = iframe;\n data.wrapper = wrapper;\n data.window = _window;\n data.document = _document;\n return data;\n}\n// options.element:\n// {string} element name\n// {function} callback(wrapper, document) to generate an element\n// options.mutate: (optional)\n// {function} callback(element, wrapper, document) to manipulate element prior to focus-test.\n// Can return DOMElement to define focus target (default: element)\n// options.validate: (optional)\n// {function} callback(element, focusTarget, document) to manipulate test-result\nfunction test(data, options) {\n // make sure we operate on a clean slate\n data.wrapper.innerHTML = '';\n // create dummy element to test focusability of\n var element = typeof options.element === 'string' ? data.document.createElement(options.element) : options.element(data.wrapper, data.document);\n // allow callback to further specify dummy element\n // and optionally define element to focus\n var focus = options.mutate && options.mutate(element, data.wrapper, data.document);\n if (!focus && focus !== false) {\n focus = element;\n }\n // element needs to be part of the DOM to be focusable\n !element.parentNode && data.wrapper.appendChild(element);\n // test if the element with invalid tabindex can be focused\n focus && focus.focus && focus.focus();\n // validate test's result\n return options.validate ? options.validate(element, focus, data.document) : data.document.activeElement === focus;\n}\nfunction after(data) {\n // restore focus to what it was before test and cleanup\n if (data.activeElement === document.body) {\n document.activeElement && document.activeElement.blur && document.activeElement.blur();\n if (platform.is.IE10) {\n // IE10 does not redirect focus to <body> when the activeElement is removed\n document.body.focus();\n }\n } else {\n data.activeElement && data.activeElement.focus && data.activeElement.focus();\n }\n document.body.removeChild(data.iframe);\n // restore scroll position\n window.scrollTop = data.windowScrollTop;\n window.scrollLeft = data.windowScrollLeft;\n document.body.scrollTop = data.bodyScrollTop;\n document.body.scrollLeft = data.bodyScrollLeft;\n}\nfunction detectFocus(tests) {\n var data = before();\n var results = {};\n Object.keys(tests).map(function(key) {\n results[key] = test(data, tests[key]);\n });\n after(data);\n return results;\n}\n// this file is overwritten by `npm run build:pre`\nvar version$1 = '1.4.1';\n/*\n Facility to cache test results in localStorage.\n\n USAGE:\n cache.get('key');\n cache.set('key', 'value');\n */ function readLocalStorage(key) {\n // allow reading from storage to retrieve previous support results\n // even while the document does not have focus\n var data = void 0;\n try {\n data = window.localStorage && window.localStorage.getItem(key);\n data = data ? JSON.parse(data) : {};\n } catch (e) {\n data = {};\n }\n return data;\n}\nfunction writeLocalStorage(key, value) {\n if (!document.hasFocus()) {\n // if the document does not have focus when tests are executed, focus() may\n // not be handled properly and events may not be dispatched immediately.\n // This can happen when a document is reloaded while Developer Tools have focus.\n try {\n window.localStorage && window.localStorage.removeItem(key);\n } catch (e) {\n // ignore\n }\n return;\n }\n try {\n window.localStorage && window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n // ignore\n }\n}\nvar userAgent = false || '';\nvar cacheKey = 'ally-supports-cache';\nvar cache = readLocalStorage(cacheKey);\n// update the cache if ally or the user agent changed (newer version, etc)\nif (cache.userAgent !== userAgent || cache.version !== version$1) {\n cache = {};\n}\ncache.userAgent = userAgent;\ncache.version = version$1;\nvar cache$1 = {\n get: function get() {\n return cache;\n },\n set: function set(values) {\n Object.keys(values).forEach(function(key) {\n cache[key] = values[key];\n });\n cache.time = new Date().toISOString();\n writeLocalStorage(cacheKey, cache);\n }\n};\nfunction cssShadowPiercingDeepCombinator() {\n var combinator = void 0;\n // see https://dev.w3.org/csswg/css-scoping-1/#deep-combinator\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1117572\n // https://code.google.com/p/chromium/issues/detail?id=446051\n try {\n document.querySelector('html >>> :first-child');\n combinator = '>>>';\n } catch (noArrowArrowArrow) {\n try {\n // old syntax supported at least up to Chrome 41\n // https://code.google.com/p/chromium/issues/detail?id=446051\n document.querySelector('html /deep/ :first-child');\n combinator = '/deep/';\n } catch (noDeep) {\n combinator = '';\n }\n }\n return combinator;\n}\nvar gif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaImgTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\">' + '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" src=\"' + gif + '\">';\n return element.querySelector('area');\n }\n};\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\">' + '<area href=\"#void\" tabindex=\"-1\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" alt=\"\" src=\"' + gif + '\">';\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n var focus = element.querySelector('area');\n focus.focus();\n return _document.activeElement === focus;\n }\n};\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaWithoutHref = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-area-href-test\">' + '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-area-href-test\" alt=\"\" src=\"' + gif + '\">';\n return element.querySelector('area');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n return _document.activeElement === focusTarget;\n }\n};\nvar focusAudioWithoutControls = {\n name: 'can-focus-audio-without-controls',\n element: 'audio',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\nvar invalidGif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ';\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusBrokenImageMap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"broken-image-map-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#broken-image-map-test\" alt=\"\" src=\"' + invalidGif + '\">';\n return element.querySelector('area');\n }\n};\n// Children of focusable elements with display:flex are focusable in IE10-11\nvar focusChildrenOfFocusableFlexbox = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n return element.querySelector('span');\n }\n};\n// fieldset[tabindex=0][disabled] should not be focusable, but Blink and WebKit disagree\n// @specification https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\n// @browser-issue Chromium https://crbug.com/453847\n// @browser-issue WebKit https://bugs.webkit.org/show_bug.cgi?id=141086\nvar focusFieldsetDisabled = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\nvar focusFieldset = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML = '<legend>legend</legend><p>content</p>';\n }\n};\n// elements with display:flex are focusable in IE10-11\nvar focusFlexboxContainer = {\n element: 'span',\n mutate: function mutate(element) {\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n }\n};\n// form[tabindex=0][disabled] should be focusable as the\n// specification doesn't know the disabled attribute on the form element\n// @specification https://www.w3.org/TR/html5/forms.html#the-form-element\nvar focusFormDisabled = {\n element: 'form',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// fixes https://github.com/medialize/ally.js/issues/20\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-ismap\nvar focusImgIsmap = {\n element: 'a',\n mutate: function mutate(element) {\n element.href = '#void';\n element.innerHTML = '<img ismap src=\"' + gif + '\" alt=\"\">';\n return element.querySelector('img');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusImgUsemapTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" ' + 'src=\"' + gif + '\">';\n return element.querySelector('img');\n }\n};\nvar focusInHiddenIframe = {\n element: function element(wrapper, _document) {\n var iframe = _document.createElement('iframe');\n // iframe must be part of the DOM before accessing the contentWindow is possible\n wrapper.appendChild(iframe);\n // create the iframe's default document (<html><head></head><body></body></html>)\n var iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.close();\n return iframe;\n },\n mutate: function mutate(iframe) {\n iframe.style.visibility = 'hidden';\n var iframeDocument = iframe.contentWindow.document;\n var input = iframeDocument.createElement('input');\n iframeDocument.body.appendChild(input);\n return input;\n },\n validate: function validate(iframe) {\n var iframeDocument = iframe.contentWindow.document;\n var focus = iframeDocument.querySelector('input');\n return iframeDocument.activeElement === focus;\n }\n};\nvar result = !platform.is.WEBKIT;\nfunction focusInZeroDimensionObject() {\n return result;\n}\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusInvalidTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 'invalid-value');\n }\n};\nvar focusLabelTabindex = {\n element: 'label',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n },\n validate: function validate(element, focusTarget, _document) {\n // force layout in Chrome 49, otherwise the element won't be focusable\n /* eslint-disable no-unused-vars */ var variableToPreventDeadCodeElimination = element.offsetHeight;\n /* eslint-enable no-unused-vars */ element.focus();\n return _document.activeElement === element;\n }\n};\nvar svg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb' + 'G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ' + 'zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg==';\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvgHidden = {\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n element.style.visibility = 'hidden';\n }\n};\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvg = {\n name: 'can-focus-object-svg',\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // Firefox seems to be handling the object creation asynchronously and thereby produces a false negative test result.\n // Because we know Firefox is able to focus object elements referencing SVGs, we simply cheat by sniffing the user agent string\n return true;\n }\n return _document.activeElement === element;\n }\n};\n// Every Environment except IE9 considers SWF objects focusable\nvar result$1 = !platform.is.IE9;\nfunction focusObjectSwf() {\n return result$1;\n}\nvar focusRedirectImgUsemap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"focus-redirect-img-usemap\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#focus-redirect-img-usemap\" alt=\"\" ' + 'src=\"' + gif + '\">';\n // focus the <img>, not the <div>\n return element.querySelector('img');\n },\n validate: function validate(element, focusTarget, _document) {\n var target = element.querySelector('area');\n return _document.activeElement === target;\n }\n};\n// see https://jsbin.com/nenirisage/edit?html,js,console,output\nvar focusRedirectLegend = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML = '<legend>legend</legend><input tabindex=\"-1\"><input tabindex=\"0\">';\n // take care of focus in validate();\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n var focusable = element.querySelector('input[tabindex=\"-1\"]');\n var tabbable = element.querySelector('input[tabindex=\"0\"]');\n // Firefox requires this test to focus the <fieldset> first, while this is not necessary in\n // https://jsbin.com/nenirisage/edit?html,js,console,output\n element.focus();\n element.querySelector('legend').focus();\n return _document.activeElement === focusable && 'focusable' || _document.activeElement === tabbable && 'tabbable' || '';\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollBody = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n return element.querySelector('div');\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainerWithoutOverflow = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px;');\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainer = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\nvar focusSummary = {\n element: 'details',\n mutate: function mutate(element) {\n element.innerHTML = '<summary>foo</summary><p>content</p>';\n return element.firstElementChild;\n }\n};\nfunction makeFocusableForeignObject() {\n // Constructs <foreignObject width=\"30\" height=\"30\"><input type=\"text\"/></foreignObject>\n // without raising a Trusted Types violation\n var foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');\n foreignObject.width.baseVal.value = 30;\n foreignObject.height.baseVal.value = 30;\n foreignObject.appendChild(document.createElement('input'));\n foreignObject.lastChild.type = 'text';\n return foreignObject;\n}\nfunction focusSvgForeignObjectHack(element) {\n // Edge13, Edge14: foreignObject focus hack\n // https://jsbin.com/kunehinugi/edit?html,js,output\n // https://jsbin.com/fajagi/3/edit?html,js,output\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (!isSvgElement) {\n return false;\n }\n // inject and focus an <input> element into the SVG element to receive focus\n var foreignObject = makeFocusableForeignObject();\n element.appendChild(foreignObject);\n var input = foreignObject.querySelector('input');\n input.focus();\n // upon disabling the activeElement, IE and Edge\n // will not shift focus to <body> like all the other\n // browsers, but instead find the first focusable\n // ancestor and shift focus to that\n input.disabled = true;\n // clean up\n element.removeChild(foreignObject);\n return true;\n}\nfunction generate(element) {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' + element + '</svg>';\n}\nfunction focus(element) {\n if (element.focus) {\n return;\n }\n try {\n HTMLElement.prototype.focus.call(element);\n } catch (e) {\n focusSvgForeignObjectHack(element);\n }\n}\nfunction validate(element, focusTarget, _document) {\n focus(focusTarget);\n return _document.activeElement === focusTarget;\n}\nvar focusSvgFocusableAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text focusable=\"true\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"0\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgNegativeTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"-1\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgUseTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate([\n '<g id=\"ally-test-target\"><a xlink:href=\"#void\"><text>link</text></a></g>',\n '<use xlink:href=\"#ally-test-target\" x=\"0\" y=\"0\" tabindex=\"-1\" />'\n ].join(''));\n return element.querySelector('use');\n },\n validate: validate\n};\nvar focusSvgForeignobjectTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<foreignObject tabindex=\"-1\"><input type=\"text\" /></foreignObject>');\n // Safari 8's querySelector() can't identify foreignObject, but getElementsByTagName() can\n return element.querySelector('foreignObject') || element.getElementsByTagName('foreignObject')[0];\n },\n validate: validate\n};\n// Firefox seems to be handling the SVG-document-in-iframe creation asynchronously\n// and thereby produces a false negative test result. Thus the test is pointless\n// and we resort to UA sniffing once again.\n// see http://jsbin.com/vunadohoko/1/edit?js,console,output\nvar result$2 = Boolean(platform.is.GECKO && typeof SVGElement !== 'undefined' && SVGElement.prototype.focus);\nfunction focusSvgInIframe() {\n return result$2;\n}\nvar focusSvg = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('');\n return element.firstChild;\n },\n validate: validate\n};\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusTabindexTrailingCharacters = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '3x');\n }\n};\nvar focusTable = {\n element: 'table',\n mutate: function mutate(element, wrapper, _document) {\n // IE9 has a problem replacing TBODY contents with innerHTML.\n // https://stackoverflow.com/a/8097055/515124\n // element.innerHTML = '<tr><td>cell</td></tr>';\n var fragment = _document.createDocumentFragment();\n fragment.innerHTML = '<tr><td>cell</td></tr>';\n element.appendChild(fragment);\n }\n};\nvar focusVideoWithoutControls = {\n element: 'video',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\n// https://jsbin.com/vafaba/3/edit?html,js,console,output\nvar result$3 = platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE;\nfunction tabsequenceAreaAtImgPosition() {\n return result$3;\n}\nvar testCallbacks = {\n cssShadowPiercingDeepCombinator: cssShadowPiercingDeepCombinator,\n focusInZeroDimensionObject: focusInZeroDimensionObject,\n focusObjectSwf: focusObjectSwf,\n focusSvgInIframe: focusSvgInIframe,\n tabsequenceAreaAtImgPosition: tabsequenceAreaAtImgPosition\n};\nvar testDescriptions = {\n focusAreaImgTabindex: focusAreaImgTabindex,\n focusAreaTabindex: focusAreaTabindex,\n focusAreaWithoutHref: focusAreaWithoutHref,\n focusAudioWithoutControls: focusAudioWithoutControls,\n focusBrokenImageMap: focusBrokenImageMap,\n focusChildrenOfFocusableFlexbox: focusChildrenOfFocusableFlexbox,\n focusFieldsetDisabled: focusFieldsetDisabled,\n focusFieldset: focusFieldset,\n focusFlexboxContainer: focusFlexboxContainer,\n focusFormDisabled: focusFormDisabled,\n focusImgIsmap: focusImgIsmap,\n focusImgUsemapTabindex: focusImgUsemapTabindex,\n focusInHiddenIframe: focusInHiddenIframe,\n focusInvalidTabindex: focusInvalidTabindex,\n focusLabelTabindex: focusLabelTabindex,\n focusObjectSvg: focusObjectSvg,\n focusObjectSvgHidden: focusObjectSvgHidden,\n focusRedirectImgUsemap: focusRedirectImgUsemap,\n focusRedirectLegend: focusRedirectLegend,\n focusScrollBody: focusScrollBody,\n focusScrollContainerWithoutOverflow: focusScrollContainerWithoutOverflow,\n focusScrollContainer: focusScrollContainer,\n focusSummary: focusSummary,\n focusSvgFocusableAttribute: focusSvgFocusableAttribute,\n focusSvgTabindexAttribute: focusSvgTabindexAttribute,\n focusSvgNegativeTabindexAttribute: focusSvgNegativeTabindexAttribute,\n focusSvgUseTabindex: focusSvgUseTabindex,\n focusSvgForeignobjectTabindex: focusSvgForeignobjectTabindex,\n focusSvg: focusSvg,\n focusTabindexTrailingCharacters: focusTabindexTrailingCharacters,\n focusTable: focusTable,\n focusVideoWithoutControls: focusVideoWithoutControls\n};\nfunction executeTests() {\n var results = detectFocus(testDescriptions);\n Object.keys(testCallbacks).forEach(function(key) {\n results[key] = testCallbacks[key]();\n });\n return results;\n}\nvar supportsCache = null;\nfunction _supports() {\n if (supportsCache) {\n return supportsCache;\n }\n supportsCache = cache$1.get();\n if (!supportsCache.time) {\n cache$1.set(executeTests());\n supportsCache = cache$1.get();\n }\n return supportsCache;\n}\nvar supports = void 0;\n// https://www.w3.org/TR/html5/infrastructure.html#rules-for-parsing-integers\n// NOTE: all browsers agree to allow trailing spaces as well\nvar validIntegerPatternNoTrailing = /^\\s*(-|\\+)?[0-9]+\\s*$/;\nvar validIntegerPatternWithTrailing = /^\\s*(-|\\+)?[0-9]+.*$/;\nfunction isValidTabindex(context) {\n if (!supports) {\n supports = _supports();\n }\n var validIntegerPattern = supports.focusTabindexTrailingCharacters ? validIntegerPatternWithTrailing : validIntegerPatternNoTrailing;\n var element = contextToElement({\n label: 'is/valid-tabindex',\n resolveDocument: true,\n context: context\n });\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var hasTabIndex = element.hasAttribute('tabIndex');\n if (!hasTabindex && !hasTabIndex) {\n return false;\n }\n // older Firefox and Internet Explorer don't support tabindex on SVG elements\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (isSvgElement && !supports.focusSvgTabindexAttribute) {\n return false;\n }\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n if (supports.focusInvalidTabindex) {\n return true;\n }\n // an element matches the tabindex selector even if its value is invalid\n var tabindex = element.getAttribute(hasTabindex ? 'tabindex' : 'tabIndex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n // @browser-issue Trident https://connect.microsoft.com/IE/feedback/details/1072965\n if (tabindex === '-32768') {\n return false;\n }\n return Boolean(tabindex && validIntegerPattern.test(tabindex));\n}\nfunction tabindexValue(element) {\n if (!isValidTabindex(element)) {\n return null;\n }\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var attributeName = hasTabindex ? 'tabindex' : 'tabIndex';\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n var tabindex = parseInt(element.getAttribute(attributeName), 10);\n return isNaN(tabindex) ? -1 : tabindex;\n}\n// this is a shared utility file for focus-relevant.js and tabbable.js\n// separate testing of this file's functions is not necessary,\n// as they're implicitly tested by way of the consumers\nfunction isUserModifyWritable(style) {\n // https://www.w3.org/TR/1999/WD-css3-userint-19990916#user-modify\n // https://github.com/medialize/ally.js/issues/17\n var userModify = style.webkitUserModify || '';\n return Boolean(userModify && userModify.indexOf('write') !== -1);\n}\nfunction hasCssOverflowScroll(style) {\n return [\n style.getPropertyValue('overflow'),\n style.getPropertyValue('overflow-x'),\n style.getPropertyValue('overflow-y')\n ].some(function(overflow) {\n return overflow === 'auto' || overflow === 'scroll';\n });\n}\nfunction hasCssDisplayFlex(style) {\n return style.display.indexOf('flex') > -1;\n}\nfunction isScrollableContainer(element, nodeName, parentNodeName, parentStyle) {\n if (nodeName !== 'div' && nodeName !== 'span') {\n // Internet Explorer advances scrollable containers and bodies to focusable\n // only if the scrollable container is <div> or <span> - this does *not*\n // happen for <section>, <article>, …\n return false;\n }\n if (parentNodeName && parentNodeName !== 'div' && parentNodeName !== 'span' && !hasCssOverflowScroll(parentStyle)) {\n return false;\n }\n return element.offsetHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth;\n}\nvar supports$1 = void 0;\nfunction isFocusRelevantRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n flexbox: false,\n scrollable: false,\n shadow: false\n } : _ref$except;\n if (!supports$1) {\n supports$1 = _supports();\n }\n var element = contextToElement({\n label: 'is/focus-relevant',\n resolveDocument: true,\n context: context\n });\n if (!except.shadow && element.shadowRoot) {\n // a ShadowDOM host receives focus when the focus moves to its content\n return true;\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'input' && element.type === 'hidden') {\n // input[type=\"hidden\"] supports.cannot be focused\n return false;\n }\n if (nodeName === 'input' || nodeName === 'select' || nodeName === 'button' || nodeName === 'textarea') {\n return true;\n }\n if (nodeName === 'legend' && supports$1.focusRedirectLegend) {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'label') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'area') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'a' && element.hasAttribute('href')) {\n return true;\n }\n if (nodeName === 'object' && element.hasAttribute('usemap')) {\n // object[usemap] is not focusable in any browser\n return false;\n }\n if (nodeName === 'object') {\n var svgType = element.getAttribute('type');\n if (!supports$1.focusObjectSvg && svgType === 'image/svg+xml') {\n // object[type=\"image/svg+xml\"] is not focusable in Internet Explorer\n return false;\n } else if (!supports$1.focusObjectSwf && svgType === 'application/x-shockwave-flash') {\n // object[type=\"application/x-shockwave-flash\"] is not focusable in Internet Explorer 9\n return false;\n }\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // browsing context containers\n return true;\n }\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n if (element.hasAttribute('contenteditable')) {\n // also see CSS property user-modify below\n return true;\n }\n if (nodeName === 'audio' && (supports$1.focusAudioWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (nodeName === 'video' && (supports$1.focusVideoWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (supports$1.focusSummary && nodeName === 'summary') {\n return true;\n }\n var validTabindex = isValidTabindex(element);\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return validTabindex && supports$1.focusImgUsemapTabindex || supports$1.focusRedirectImgUsemap;\n }\n if (supports$1.focusTable && (nodeName === 'table' || nodeName === 'td')) {\n // IE10-11 supports.can focus <table> and <td>\n return true;\n }\n if (supports$1.focusFieldset && nodeName === 'fieldset') {\n // IE10-11 supports.can focus <fieldset>\n return true;\n }\n var isSvgElement = nodeName === 'svg';\n var isSvgContent = element.ownerSVGElement;\n var focusableAttribute = element.getAttribute('focusable');\n var tabindex = tabindexValue(element);\n if (nodeName === 'use' && tabindex !== null && !supports$1.focusSvgUseTabindex) {\n // <use> cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false;\n }\n if (nodeName === 'foreignobject') {\n // <use> can only be made focusable in Blink and WebKit\n return tabindex !== null && supports$1.focusSvgForeignobjectTabindex;\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n return true;\n }\n if ((isSvgElement || isSvgContent) && element.focus && !supports$1.focusSvgNegativeTabindexAttribute && tabindex < 0) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return false;\n }\n if (isSvgElement) {\n return validTabindex || supports$1.focusSvg || supports$1.focusSvgInIframe || // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n Boolean(supports$1.focusSvgFocusableAttribute && focusableAttribute && focusableAttribute === 'true');\n }\n if (isSvgContent) {\n if (supports$1.focusSvgTabindexAttribute && validTabindex) {\n return true;\n }\n if (supports$1.focusSvgFocusableAttribute) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n return focusableAttribute === 'true';\n }\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n if (validTabindex) {\n return true;\n }\n var style = window.getComputedStyle(element, null);\n if (isUserModifyWritable(style)) {\n return true;\n }\n if (supports$1.focusImgIsmap && nodeName === 'img' && element.hasAttribute('ismap')) {\n // IE10-11 considers the <img> in <a href><img ismap> focusable\n // https://github.com/medialize/ally.js/issues/20\n var hasLinkParent = getParents({\n context: element\n }).some(function(parent) {\n return parent.nodeName.toLowerCase() === 'a' && parent.hasAttribute('href');\n });\n if (hasLinkParent) {\n return true;\n }\n }\n // https://github.com/medialize/ally.js/issues/21\n if (!except.scrollable && supports$1.focusScrollContainer) {\n if (supports$1.focusScrollContainerWithoutOverflow) {\n // Internet Explorer does will consider the scrollable area focusable\n // if the element is a <div> or a <span> and it is in fact scrollable,\n // regardless of the CSS overflow property\n if (isScrollableContainer(element, nodeName)) {\n return true;\n }\n } else if (hasCssOverflowScroll(style)) {\n // Firefox requires proper overflow setting, IE does not necessarily\n // https://developer.mozilla.org/docs/Web/CSS/overflow\n return true;\n }\n }\n if (!except.flexbox && supports$1.focusFlexboxContainer && hasCssDisplayFlex(style)) {\n // elements with display:flex are focusable in IE10-11\n return true;\n }\n var parent = element.parentElement;\n if (!except.scrollable && parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n if (supports$1.focusScrollBody && isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n // scrollable bodies are focusable Internet Explorer\n // https://github.com/medialize/ally.js/issues/21\n return true;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11\n if (supports$1.focusChildrenOfFocusableFlexbox) {\n if (hasCssDisplayFlex(parentStyle)) {\n return true;\n }\n }\n }\n // NOTE: elements marked as inert are not focusable,\n // but that property is not exposed to the DOM\n // https://www.w3.org/TR/html5/editing.html#inert\n return false;\n}\n// bind exceptions to an iterator callback\nisFocusRelevantRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusRelevant = function isFocusRelevant(context) {\n return isFocusRelevantRules({\n context: context,\n except: except\n });\n };\n isFocusRelevant.rules = isFocusRelevantRules;\n return isFocusRelevant;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusRelevant = isFocusRelevantRules.except({});\nfunction findIndex(array, callback) {\n // attempt to use native or polyfilled Array#findIndex first\n if (array.findIndex) {\n return array.findIndex(callback);\n }\n var length = array.length;\n // shortcut if the array is empty\n if (length === 0) {\n return -1;\n }\n // otherwise loop over array\n for(var i = 0; i < length; i++){\n if (callback(array[i], i, array)) {\n return i;\n }\n }\n return -1;\n}\nfunction getContentDocument(node) {\n try {\n // works on <object> and <iframe>\n return node.contentDocument || // works on <object> and <iframe>\n node.contentWindow && node.contentWindow.document || // works on <object> and <iframe> that contain SVG\n node.getSVGDocument && node.getSVGDocument() || null;\n } catch (e) {\n // SecurityError: Failed to read the 'contentDocument' property from 'HTMLObjectElement'\n // also IE may throw member not found exception e.g. on <object type=\"image/png\">\n return null;\n }\n}\nfunction getWindow(node) {\n var _document = getDocument(node);\n return _document.defaultView || window;\n}\nvar shadowPrefix = void 0;\nfunction selectInShadows(selector) {\n if (typeof shadowPrefix !== 'string') {\n var operator = cssShadowPiercingDeepCombinator();\n if (operator) {\n shadowPrefix = ', html ' + operator + ' ';\n }\n }\n if (!shadowPrefix) {\n return selector;\n }\n return selector + shadowPrefix + selector.replace(/\\s*,\\s*/g, ',').split(',').join(shadowPrefix);\n}\nvar selector = void 0;\nfunction findDocumentHostElement(_window) {\n if (!selector) {\n selector = selectInShadows('object, iframe');\n }\n if (_window._frameElement !== undefined) {\n return _window._frameElement;\n }\n _window._frameElement = null;\n var potentialHosts = _window.parent.document.querySelectorAll(selector);\n [].some.call(potentialHosts, function(element) {\n var _document = getContentDocument(element);\n if (_document !== _window.document) {\n return false;\n }\n _window._frameElement = element;\n return true;\n });\n return _window._frameElement;\n}\nfunction getFrameElement(element) {\n var _window = getWindow(element);\n if (!_window.parent || _window.parent === _window) {\n // if there is no parent browsing context,\n // we're not going to get a frameElement either way\n return null;\n }\n try {\n // see https://developer.mozilla.org/docs/Web/API/Window/frameElement\n // does not work within <embed> anywhere, and not within in <object> in IE\n return _window.frameElement || findDocumentHostElement(_window);\n } catch (e) {\n return null;\n }\n}\n// https://www.w3.org/TR/html5/rendering.html#being-rendered\n// <area> is not rendered, but we *consider* it visible to simplfiy this function's usage\nvar notRenderedElementsPattern = /^(area)$/;\nfunction computedStyle(element, property) {\n return window.getComputedStyle(element, null).getPropertyValue(property);\n}\nfunction notDisplayed(_path) {\n return _path.some(function(element) {\n // display:none is not visible (optimized away at layout)\n return computedStyle(element, 'display') === 'none';\n });\n}\nfunction notVisible(_path) {\n // https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L109-L114\n // NOTE: a nested element can reverse visibility:hidden|collapse by explicitly setting visibility:visible\n // NOTE: visibility can be [\"\", \"visible\", \"hidden\", \"collapse\"]\n var hidden = findIndex(_path, function(element) {\n var visibility = computedStyle(element, 'visibility');\n return visibility === 'hidden' || visibility === 'collapse';\n });\n if (hidden === -1) {\n // there is no hidden element\n return false;\n }\n var visible = findIndex(_path, function(element) {\n return computedStyle(element, 'visibility') === 'visible';\n });\n if (visible === -1) {\n // there is no visible element (but a hidden element)\n return true;\n }\n if (hidden < visible) {\n // there is a hidden element and it's closer than the first visible element\n return true;\n }\n // there may be a hidden element, but the closest element is visible\n return false;\n}\nfunction collapsedParent(_path) {\n var offset = 1;\n if (_path[0].nodeName.toLowerCase() === 'summary') {\n offset = 2;\n }\n return _path.slice(offset).some(function(element) {\n // \"content children\" of a closed details element are not visible\n return element.nodeName.toLowerCase() === 'details' && element.open === false;\n });\n}\nfunction isVisibleRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n notRendered: false,\n cssDisplay: false,\n cssVisibility: false,\n detailsElement: false,\n browsingContext: false\n } : _ref$except;\n var element = contextToElement({\n label: 'is/visible',\n resolveDocument: true,\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (!except.notRendered && notRenderedElementsPattern.test(nodeName)) {\n return true;\n }\n var _path = getParents({\n context: element\n });\n // in Internet Explorer <audio> has a default display: none, where others have display: inline\n // but IE allows focusing <audio style=\"display:none\">, but not <div display:none><audio>\n // this is irrelevant to other browsers, as the controls attribute is required to make <audio> focusable\n var isAudioWithoutControls = nodeName === 'audio' && !element.hasAttribute('controls');\n if (!except.cssDisplay && notDisplayed(isAudioWithoutControls ? _path.slice(1) : _path)) {\n return false;\n }\n if (!except.cssVisibility && notVisible(_path)) {\n return false;\n }\n if (!except.detailsElement && collapsedParent(_path)) {\n return false;\n }\n if (!except.browsingContext) {\n // elements within a browsing context are affected by the\n // browsing context host element's visibility and tabindex\n var frameElement = getFrameElement(element);\n var _isVisible = isVisibleRules.except(except);\n if (frameElement && !_isVisible(frameElement)) {\n return false;\n }\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisVisibleRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isVisible = function isVisible(context) {\n return isVisibleRules({\n context: context,\n except: except\n });\n };\n isVisible.rules = isVisibleRules;\n return isVisible;\n};\n// provide isVisible(context) as default iterator callback\nvar isVisible = isVisibleRules.except({});\nfunction getMapByName(name, _document) {\n // apparently getElementsByName() also considers id attribute in IE & opera\n // https://developer.mozilla.org/docs/Web/API/Document/getElementsByName\n var map = _document.querySelector('map[name=\"' + (0, _cssescape.default)(name) + '\"]');\n return map || null;\n}\nfunction getImageOfArea(element) {\n var map = element.parentElement;\n if (!map.name || map.nodeName.toLowerCase() !== 'map') {\n return null;\n }\n // NOTE: image maps can also be applied to <object> with image content,\n // but no browser supports this at the moment\n // HTML5 specifies HTMLMapElement.images to be an HTMLCollection of all\n // <img> and <object> referencing the <map> element, but no browser implements this\n // https://www.w3.org/TR/html5/embedded-content-0.html#the-map-element\n // https://developer.mozilla.org/docs/Web/API/HTMLMapElement\n // the image must be valid and loaded for the map to take effect\n var _document = getDocument(element);\n return _document.querySelector('img[usemap=\"#' + (0, _cssescape.default)(map.name) + '\"]') || null;\n}\nvar supports$2 = void 0;\n// https://developer.mozilla.org/docs/Web/HTML/Element/map\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\n// https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L88-L107\nfunction isValidArea(context) {\n if (!supports$2) {\n supports$2 = _supports();\n }\n var element = contextToElement({\n label: 'is/valid-area',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return false;\n }\n var hasTabindex = element.hasAttribute('tabindex');\n if (!supports$2.focusAreaTabindex && hasTabindex) {\n // Blink and WebKit do not consider <area tabindex=\"-1\" href=\"#void\"> focusable\n return false;\n }\n var img = getImageOfArea(element);\n if (!img || !isVisible(img)) {\n return false;\n }\n // Firefox only allows fully loaded images to reference image maps\n // https://stereochro.me/ideas/detecting-broken-images-js\n if (!supports$2.focusBrokenImageMap && (!img.complete || !img.naturalHeight || img.offsetWidth <= 0 || img.offsetHeight <= 0)) {\n return false;\n }\n // Firefox supports.can focus area elements even if they don't have an href attribute\n if (!supports$2.focusAreaWithoutHref && !element.href) {\n // Internet explorer supports.can focus area elements without href if either\n // the area element or the image element has a tabindex attribute\n return supports$2.focusAreaTabindex && hasTabindex || supports$2.focusAreaImgTabindex && img.hasAttribute('tabindex');\n }\n // https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\n var childOfInteractive = getParents({\n context: img\n }).slice(1).some(function(_element) {\n var name = _element.nodeName.toLowerCase();\n return name === 'button' || name === 'a';\n });\n if (childOfInteractive) {\n return false;\n }\n return true;\n}\nvar supports$3 = void 0;\n// https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\nvar disabledElementsPattern = void 0;\nvar disabledElements = {\n input: true,\n select: true,\n textarea: true,\n button: true,\n fieldset: true,\n form: true\n};\nfunction isNativeDisabledSupported(context) {\n if (!supports$3) {\n supports$3 = _supports();\n if (supports$3.focusFieldsetDisabled) {\n delete disabledElements.fieldset;\n }\n if (supports$3.focusFormDisabled) {\n delete disabledElements.form;\n }\n disabledElementsPattern = new RegExp('^(' + Object.keys(disabledElements).join('|') + ')$');\n }\n var element = contextToElement({\n label: 'is/native-disabled-supported',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n return Boolean(disabledElementsPattern.test(nodeName));\n}\nvar supports$4 = void 0;\nfunction isDisabledFieldset(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'fieldset' && element.disabled;\n}\nfunction isDisabledForm(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'form' && element.disabled;\n}\nfunction isDisabled(context) {\n if (!supports$4) {\n supports$4 = _supports();\n }\n var element = contextToElement({\n label: 'is/disabled',\n context: context\n });\n if (element.hasAttribute('data-ally-disabled')) {\n // treat ally's element/disabled like the DOM native element.disabled\n return true;\n }\n if (!isNativeDisabledSupported(element)) {\n // non-form elements do not support the disabled attribute\n return false;\n }\n if (element.disabled) {\n // the element itself is disabled\n return true;\n }\n var parents = getParents({\n context: element\n });\n if (parents.some(isDisabledFieldset)) {\n // a parental <fieldset> is disabld and inherits the state onto this element\n return true;\n }\n if (!supports$4.focusFormDisabled && parents.some(isDisabledForm)) {\n // a parental <form> is disabld and inherits the state onto this element\n return true;\n }\n return false;\n}\nfunction isOnlyTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n onlyFocusableBrowsingContext: false,\n visible: false\n } : _ref$except;\n var element = contextToElement({\n label: 'is/only-tabbable',\n resolveDocument: true,\n context: context\n });\n if (!except.visible && !isVisible(element)) {\n return false;\n }\n if (!except.onlyFocusableBrowsingContext && (platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE)) {\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (tabindexValue(frameElement) < 0) {\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var tabindex = tabindexValue(element);\n if (nodeName === 'label' && platform.is.GECKO) {\n // Firefox cannot focus, but tab to: label[tabindex=0]\n return tabindex !== null && tabindex >= 0;\n }\n // SVG Elements were keyboard focusable but not script focusable before Firefox 51.\n // Firefox 51 added the focus management DOM API (.focus and .blur) to SVGElement,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=778654\n if (platform.is.GECKO && element.ownerSVGElement && !element.focus) {\n if (nodeName === 'a' && element.hasAttribute('xlink:href')) {\n // any focusable child of <svg> cannot be focused, but tabbed to\n if (platform.is.GECKO) {\n return true;\n }\n }\n }\n return false;\n}\n// bind exceptions to an iterator callback\nisOnlyTabbableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isOnlyTabbable = function isOnlyTabbable(context) {\n return isOnlyTabbableRules({\n context: context,\n except: except\n });\n };\n isOnlyTabbable.rules = isOnlyTabbableRules;\n return isOnlyTabbable;\n};\n// provide isOnlyTabbable(context) as default iterator callback\nvar isOnlyTabbable = isOnlyTabbableRules.except({});\nvar supports$5 = void 0;\nfunction isOnlyFocusRelevant(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n var _tabindex = tabindexValue(element);\n if (element.shadowRoot && _tabindex === null) {\n // ShadowDOM host elements *may* receive focus\n // even though they are not considered focuable\n return true;\n }\n if (nodeName === 'label') {\n // <label tabindex=\"0\"> is only tabbable in Firefox, not script-focusable\n // there's no way to make an element focusable other than by adding a tabindex,\n // and focus behavior of the label element seems hard-wired to ignore tabindex\n // in some browsers (like Gecko, Blink and WebKit)\n return !supports$5.focusLabelTabindex || _tabindex === null;\n }\n if (nodeName === 'legend') {\n return _tabindex === null;\n }\n if (supports$5.focusSvgFocusableAttribute && (element.ownerSVGElement || nodeName === 'svg')) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n var focusableAttribute = element.getAttribute('focusable');\n return focusableAttribute && focusableAttribute === 'false';\n }\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return _tabindex === null || !supports$5.focusImgUsemapTabindex;\n }\n if (nodeName === 'area') {\n // all <area>s are considered relevant,\n // but only the valid <area>s are focusable\n return !isValidArea(element);\n }\n return false;\n}\nfunction isFocusableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n disabled: false,\n visible: false,\n onlyTabbable: false\n } : _ref$except;\n if (!supports$5) {\n supports$5 = _supports();\n }\n var _isOnlyTabbable = isOnlyTabbable.rules.except({\n onlyFocusableBrowsingContext: true,\n visible: except.visible\n });\n var element = contextToElement({\n label: 'is/focusable',\n resolveDocument: true,\n context: context\n });\n var focusRelevant = isFocusRelevant.rules({\n context: element,\n except: except\n });\n if (!focusRelevant || isOnlyFocusRelevant(element)) {\n return false;\n }\n if (!except.disabled && isDisabled(element)) {\n return false;\n }\n if (!except.onlyTabbable && _isOnlyTabbable(element)) {\n // some elements may be keyboard focusable, but not script focusable\n return false;\n }\n // elements that are not rendered, cannot be focused\n if (!except.visible) {\n var visibilityOptions = {\n context: element,\n except: {}\n };\n if (supports$5.focusInHiddenIframe) {\n // WebKit and Blink can focus content in hidden <iframe> and <object>\n visibilityOptions.except.browsingContext = true;\n }\n if (supports$5.focusObjectSvgHidden) {\n // Blink allows focusing the object element, even if it has visibility: hidden;\n // @browser-issue Blink https://code.google.com/p/chromium/issues/detail?id=586191\n var _nodeName2 = element.nodeName.toLowerCase();\n if (_nodeName2 === 'object') {\n visibilityOptions.except.cssVisibility = true;\n }\n }\n if (!isVisible.rules(visibilityOptions)) {\n return false;\n }\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n var _nodeName = frameElement.nodeName.toLowerCase();\n if (_nodeName === 'object' && !supports$5.focusInZeroDimensionObject) {\n if (!frameElement.offsetWidth || !frameElement.offsetHeight) {\n // WebKit can not focus content in <object> if it doesn't have dimensions\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'svg' && supports$5.focusSvgInIframe && !frameElement && element.getAttribute('tabindex') === null) {\n return false;\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisFocusableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusable = function isFocusable(context) {\n return isFocusableRules({\n context: context,\n except: except\n });\n };\n isFocusable.rules = isFocusableRules;\n return isFocusable;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusable = isFocusableRules.except({});\nfunction createFilter(condition) {\n // see https://developer.mozilla.org/docs/Web/API/NodeFilter\n var filter = function filter(node) {\n if (node.shadowRoot) {\n // return ShadowRoot elements regardless of them being focusable,\n // so they can be walked recursively later\n return NodeFilter.FILTER_ACCEPT;\n }\n if (condition(node)) {\n // finds elements that could have been found by document.querySelectorAll()\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n };\n // IE requires a function, Browsers require {acceptNode: function}\n // see http://www.bennadel.com/blog/2607-finding-html-comment-nodes-in-the-dom-using-treewalker.htm\n filter.acceptNode = filter;\n return filter;\n}\nvar PossiblyFocusableFilter = createFilter(isFocusRelevant);\nfunction queryFocusableStrict() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!context) {\n context = document.documentElement;\n }\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var _document = getDocument(context);\n // see https://developer.mozilla.org/docs/Web/API/Document/createTreeWalker\n var walker = _document.createTreeWalker(context, NodeFilter.SHOW_ELEMENT, strategy === 'all' ? PossiblyFocusableFilter : createFilter(_isFocusable), false);\n var list = [];\n while(walker.nextNode()){\n if (walker.currentNode.shadowRoot) {\n if (_isFocusable(walker.currentNode)) {\n list.push(walker.currentNode);\n }\n list = list.concat(queryFocusableStrict({\n context: walker.currentNode.shadowRoot,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }));\n } else {\n list.push(walker.currentNode);\n }\n }\n // add context if requested and focusable\n if (includeContext) {\n if (strategy === 'all') {\n if (isFocusRelevant(context)) {\n list.unshift(context);\n }\n } else if (_isFocusable(context)) {\n list.unshift(context);\n }\n }\n return list;\n}\n// NOTE: this selector MUST *never* be used directly,\nvar supports$6 = void 0;\nvar selector$1 = void 0;\nfunction selector$2() {\n if (!supports$6) {\n supports$6 = _supports();\n }\n if (typeof selector$1 === 'string') {\n return selector$1;\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n selector$1 = '' + // IE11 supports.can focus <table> and <td>\n (supports$6.focusTable ? 'table, td,' : '') + // IE11 supports.can focus <fieldset>\n (supports$6.focusFieldset ? 'fieldset,' : '') + // Namespace problems of [xlink:href] explained in https://stackoverflow.com/a/23047888/515124\n // svg a[*|href] does not match in IE9, but since we're filtering\n // through is/focusable we can include all <a> from SVG\n 'svg a,' + // may behave as 'svg, svg *,' in chrome as *every* svg element with a focus event listener is focusable\n // navigational elements\n 'a[href],' + // validity determined by is/valid-area.js\n 'area[href],' + // validity determined by is/disabled.js\n 'input, select, textarea, button,' + // browsing context containers\n 'iframe, object, embed,' + // interactive content\n 'keygen,' + (supports$6.focusAudioWithoutControls ? 'audio,' : 'audio[controls],') + (supports$6.focusVideoWithoutControls ? 'video,' : 'video[controls],') + (supports$6.focusSummary ? 'summary,' : '') + // validity determined by is/valid-tabindex.js\n '[tabindex],' + // editing hosts\n '[contenteditable]';\n // where ShadowDOM is supported, we also want the shadowed focusable elements (via \">>>\" or \"/deep/\")\n selector$1 = selectInShadows(selector$1);\n return selector$1;\n}\nfunction queryFocusableQuick() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable;\n var _selector = selector$2();\n var elements = context.querySelectorAll(_selector);\n // the selector potentially matches more than really is focusable\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var result = [].filter.call(elements, _isFocusable);\n // add context if requested and focusable\n if (includeContext && _isFocusable(context)) {\n result.unshift(context);\n }\n return result;\n}\nfunction queryFocusable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, _ref$strategy = _ref.strategy, strategy = _ref$strategy === undefined ? 'quick' : _ref$strategy;\n var element = contextToElement({\n label: 'query/focusable',\n resolveDocument: true,\n defaultToDocument: true,\n context: context\n });\n var options = {\n context: element,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n };\n if (strategy === 'quick') {\n return queryFocusableQuick(options);\n } else if (strategy === 'strict' || strategy === 'all') {\n return queryFocusableStrict(options);\n }\n throw new TypeError('query/focusable requires option.strategy to be one of [\"quick\", \"strict\", \"all\"]');\n}\nvar supports$7 = void 0;\n// Internet Explorer 11 considers fieldset, table, td focusable, but not tabbable\n// Internet Explorer 11 considers body to have [tabindex=0], but does not allow tabbing to it\nvar focusableElementsPattern = /^(fieldset|table|td|body)$/;\nfunction isTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n flexbox: false,\n scrollable: false,\n shadow: false,\n visible: false,\n onlyTabbable: false\n } : _ref$except;\n if (!supports$7) {\n supports$7 = _supports();\n }\n var element = contextToElement({\n label: 'is/tabbable',\n resolveDocument: true,\n context: context\n });\n if (platform.is.BLINK && platform.is.ANDROID && platform.majorVersion > 42) {\n // External keyboard support worked fine in CHrome 42, but stopped working in Chrome 45.\n // The on-screen keyboard does not provide a way to focus the next input element (like iOS does).\n // That leaves us with no option to advance focus by keyboard, ergo nothing is tabbable (keyboard focusable).\n return false;\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only does not consider anything from another browsing context keyboard focusable\n return false;\n }\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n if (tabindexValue(frameElement) < 0) {\n return false;\n }\n if (!except.visible && (platform.is.BLINK || platform.is.WEBKIT) && !isVisible(frameElement)) {\n // Blink and WebKit consider elements in hidden browsing contexts focusable, but not tabbable\n return false;\n }\n // Webkit and Blink don't consider anything in <object> tabbable\n // Blink fixed that fixed in Chrome 54, Opera 41\n var frameNodeName = frameElement.nodeName.toLowerCase();\n if (frameNodeName === 'object') {\n var isFixedBlink = platform.name === 'Chrome' && platform.majorVersion >= 54 || platform.name === 'Opera' && platform.majorVersion >= 41;\n if (platform.is.WEBKIT || platform.is.BLINK && !isFixedBlink) {\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var _tabindex = tabindexValue(element);\n var tabindex = _tabindex === null ? null : _tabindex >= 0;\n if (platform.is.EDGE && platform.majorVersion >= 14 && frameElement && element.ownerSVGElement && _tabindex < 0) {\n // Edge 14+ considers <a xlink:href=\"…\" tabindex=\"-1\"> keyboard focusable\n // if the element is in a nested browsing context\n return true;\n }\n var hasTabbableTabindexOrNone = tabindex !== false;\n var hasTabbableTabindex = _tabindex !== null && _tabindex >= 0;\n // NOTE: Firefox 31 considers [contenteditable] to have [tabindex=-1], but allows tabbing to it\n // fixed in Firefox 40 the latest - https://bugzilla.mozilla.org/show_bug.cgi?id=1185657\n if (element.hasAttribute('contenteditable')) {\n // tabbing can still be disabled by explicitly providing [tabindex=\"-1\"]\n return hasTabbableTabindexOrNone;\n }\n if (focusableElementsPattern.test(nodeName) && tabindex !== true) {\n return false;\n }\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only considers a hand full of elements tabbable (keyboard focusable)\n // this holds true even with external keyboards\n var potentiallyTabbable = nodeName === 'input' && element.type === 'text' || element.type === 'password' || nodeName === 'select' || nodeName === 'textarea' || element.hasAttribute('contenteditable');\n if (!potentiallyTabbable) {\n var style = window.getComputedStyle(element, null);\n potentiallyTabbable = isUserModifyWritable(style);\n }\n if (!potentiallyTabbable) {\n return false;\n }\n }\n if (nodeName === 'use' && _tabindex !== null) {\n if (platform.is.BLINK || platform.is.WEBKIT && platform.majorVersion === 9) {\n // In Chrome and Safari 9 the <use> element is keyboard focusable even for tabindex=\"-1\"\n return true;\n }\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n if (hasTabbableTabindexOrNone) {\n // in Trident and Gecko SVGElement does not handle the tabIndex property properly\n return true;\n }\n if (element.focus && !supports$7.focusSvgNegativeTabindexAttribute) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return true;\n }\n }\n if (nodeName === 'svg' && supports$7.focusSvgInIframe && hasTabbableTabindexOrNone) {\n return true;\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n if (nodeName === 'svg') {\n if (supports$7.focusSvg) {\n // older Internet Explorers consider <svg> keyboard focusable\n // unless they have focsable=\"false\", but then they wouldn't\n // be focusable and thus not even reach this filter\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable') || hasTabbableTabindex;\n }\n if (element.ownerSVGElement) {\n if (supports$7.focusSvgTabindexAttribute && hasTabbableTabindex) {\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable');\n }\n }\n if (element.tabIndex === undefined) {\n return Boolean(except.onlyTabbable);\n }\n if (nodeName === 'audio') {\n if (!element.hasAttribute('controls')) {\n // In Internet Explorer the <audio> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n } else if (platform.is.BLINK) {\n // In Chrome <audio controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'video') {\n if (!element.hasAttribute('controls')) {\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // In Internet Explorer and Edge the <video> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n }\n } else if (platform.is.BLINK || platform.is.GECKO) {\n // In Chrome and Firefox <video controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'object') {\n if (platform.is.BLINK || platform.is.WEBKIT) {\n // In all Blink and WebKit based browsers <embed> and <object> are never keyboard focusable, even with tabindex=\"0\" set\n return false;\n }\n }\n if (nodeName === 'iframe') {\n // In Internet Explorer all iframes are only focusable\n // In WebKit, Blink and Gecko iframes may be tabbable depending on content.\n // Since we can't reliably investigate iframe documents because of the\n // SameOriginPolicy, we're declaring everything only focusable.\n return false;\n }\n if (!except.scrollable && platform.is.GECKO) {\n // Firefox considers scrollable containers keyboard focusable,\n // even though their tabIndex property is -1\n var _style = window.getComputedStyle(element, null);\n if (hasCssOverflowScroll(_style)) {\n return hasTabbableTabindexOrNone;\n }\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // IE and Edge degrade <area> to script focusable, if the image\n // using the <map> has been given tabindex=\"-1\"\n if (nodeName === 'area') {\n var img = getImageOfArea(element);\n if (img && tabindexValue(img) < 0) {\n return false;\n }\n }\n var _style2 = window.getComputedStyle(element, null);\n if (isUserModifyWritable(_style2)) {\n // prevent being swallowed by the overzealous isScrollableContainer() below\n return element.tabIndex >= 0;\n }\n if (!except.flexbox && hasCssDisplayFlex(_style2)) {\n if (_tabindex !== null) {\n return hasTabbableTabindex;\n }\n return isFocusRelevantWithoutFlexbox(element) && isTabbableWithoutFlexbox(element);\n }\n // IE considers scrollable containers script focusable only,\n // even though their tabIndex property is 0\n if (isScrollableContainer(element, nodeName)) {\n return false;\n }\n var parent = element.parentElement;\n if (parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n // IE considers scrollable bodies script focusable only,\n if (isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n return false;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11,\n // even though their tabIndex property suggests otherwise\n if (hasCssDisplayFlex(parentStyle)) {\n // value of tabindex takes precedence\n return hasTabbableTabindex;\n }\n }\n }\n // https://www.w3.org/WAI/PF/aria-practices/#focus_tabindex\n return element.tabIndex >= 0;\n}\n// bind exceptions to an iterator callback\nisTabbableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isTabbable = function isTabbable(context) {\n return isTabbableRules({\n context: context,\n except: except\n });\n };\n isTabbable.rules = isTabbableRules;\n return isTabbable;\n};\nvar isFocusRelevantWithoutFlexbox = isFocusRelevant.rules.except({\n flexbox: true\n});\nvar isTabbableWithoutFlexbox = isTabbableRules.except({\n flexbox: true\n});\n// provide isTabbable(context) as default iterator callback\nvar isTabbable = isTabbableRules.except({});\nfunction queryTabbable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n var _isTabbable = isTabbable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n return queryFocusable({\n context: context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }).filter(_isTabbable);\n}\n// sorts a list of elements according to their order in the DOM\nfunction compareDomPosition(a, b) {\n return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}\nfunction sortDomOrder(elements) {\n return elements.sort(compareDomPosition);\n}\nfunction getFirstSuccessorOffset(list, target) {\n // find the first element that comes AFTER the target element\n return findIndex(list, function(element) {\n return target.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_FOLLOWING;\n });\n}\nfunction findInsertionOffsets(list, elements, resolveElement) {\n // instead of mutating the elements list directly, remember position and map\n // to inject later, when we can do this more efficiently\n var insertions = [];\n elements.forEach(function(element) {\n var replace = true;\n var offset = list.indexOf(element);\n if (offset === -1) {\n // element is not in target list\n offset = getFirstSuccessorOffset(list, element);\n replace = false;\n }\n if (offset === -1) {\n // there is no successor in the tabsequence,\n // meaning the image must be the last element\n offset = list.length;\n }\n // allow the consumer to replace the injected element\n var injections = nodeArray(resolveElement ? resolveElement(element) : element);\n if (!injections.length) {\n // we can't inject zero elements\n return;\n }\n insertions.push({\n offset: offset,\n replace: replace,\n elements: injections\n });\n });\n return insertions;\n}\nfunction insertElementsAtOffsets(list, insertions) {\n // remember the number of elements we have already injected\n // so we account for the caused index offset\n var inserted = 0;\n // make sure that we insert the elements in sequence,\n // otherwise the offset compensation won't work\n insertions.sort(function(a, b) {\n return a.offset - b.offset;\n });\n insertions.forEach(function(insertion) {\n // array.splice has an annoying function signature :(\n var remove = insertion.replace ? 1 : 0;\n var args = [\n insertion.offset + inserted,\n remove\n ].concat(insertion.elements);\n list.splice.apply(list, args);\n inserted += insertion.elements.length - remove;\n });\n}\nfunction mergeInDomOrder() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, list = _ref.list, elements = _ref.elements, resolveElement = _ref.resolveElement;\n // operate on a copy so we don't mutate the original array\n var _list = list.slice(0);\n // make sure the elements we're injecting are provided in DOM order\n var _elements = nodeArray(elements).slice(0);\n sortDomOrder(_elements);\n // find the offsets within the target array (list) at which to inject\n // each individual element (from elements)\n var insertions = findInsertionOffsets(_list, _elements, resolveElement);\n // actually inject the elements into the target array at the identified positions\n insertElementsAtOffsets(_list, insertions);\n return _list;\n}\nvar _createClass = function() {\n function defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Maps = function() {\n function Maps(context) {\n _classCallCheck(this, Maps);\n this._document = getDocument(context);\n this.maps = {};\n }\n _createClass(Maps, [\n {\n key: 'getAreasFor',\n value: function getAreasFor(name) {\n if (!this.maps[name]) {\n // the map is not defined within the context, so we\n // have to go find it elsewhere in the document\n this.addMapByName(name);\n }\n return this.maps[name];\n }\n },\n {\n key: 'addMapByName',\n value: function addMapByName(name) {\n var map = getMapByName(name, this._document);\n if (!map) {\n // if there is no map, the img[usemap] wasn't doing anything anyway\n return;\n }\n this.maps[map.name] = queryTabbable({\n context: map\n });\n }\n },\n {\n key: 'extractAreasFromList',\n value: function extractAreasFromList(elements) {\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n return elements.filter(function(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return true;\n }\n var map = element.parentNode;\n if (!this.maps[map.name]) {\n this.maps[map.name] = [];\n }\n this.maps[map.name].push(element);\n return false;\n }, this);\n }\n }\n ]);\n return Maps;\n}();\nfunction sortArea(elements, context) {\n // images - unless they are focusable themselves, likely not\n // part of the elements list, so we'll have to find them and\n // sort them into the elements list manually\n var usemaps = context.querySelectorAll('img[usemap]');\n var maps = new Maps(context);\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n var _elements = maps.extractAreasFromList(elements);\n if (!usemaps.length) {\n // the context does not contain any <area>s so no need\n // to replace anything, just remove any maps\n return _elements;\n }\n return mergeInDomOrder({\n list: _elements,\n elements: usemaps,\n resolveElement: function resolveElement(image) {\n var name = image.getAttribute('usemap').slice(1);\n return maps.getAreasFor(name);\n }\n });\n}\nvar _createClass$1 = function() {\n function defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Shadows = function() {\n function Shadows(context, sortElements) {\n _classCallCheck$1(this, Shadows);\n // document context we're working with\n this.context = context;\n // callback that sorts an array of elements\n this.sortElements = sortElements;\n // reference to create unique IDs for each ShadowHost\n this.hostCounter = 1;\n // reference map for child-ShadowHosts of a ShadowHost\n this.inHost = {};\n // reference map for child-ShadowHost of the document\n this.inDocument = [];\n // reference map for ShadowHosts\n this.hosts = {};\n // reference map for tabbable elements of a ShadowHost\n this.elements = {};\n }\n // remember which hosts we have to sort within later\n _createClass$1(Shadows, [\n {\n key: '_registerHost',\n value: function _registerHost(host) {\n if (host._sortingId) {\n return;\n }\n // make the ShadowHost identifiable (see cleanup() for undo)\n host._sortingId = 'shadow-' + this.hostCounter++;\n this.hosts[host._sortingId] = host;\n // hosts may contain other hosts\n var parentHost = getShadowHost({\n context: host\n });\n if (parentHost) {\n this._registerHost(parentHost);\n this._registerHostParent(host, parentHost);\n } else {\n this.inDocument.push(host);\n }\n }\n },\n {\n key: '_registerHostParent',\n value: function _registerHostParent(host, parent) {\n if (!this.inHost[parent._sortingId]) {\n this.inHost[parent._sortingId] = [];\n }\n this.inHost[parent._sortingId].push(host);\n }\n },\n {\n key: '_registerElement',\n value: function _registerElement(element, host) {\n if (!this.elements[host._sortingId]) {\n this.elements[host._sortingId] = [];\n }\n this.elements[host._sortingId].push(element);\n }\n },\n {\n key: 'extractElements',\n value: function extractElements(elements) {\n return elements.filter(function(element) {\n var host = getShadowHost({\n context: element\n });\n if (!host) {\n return true;\n }\n this._registerHost(host);\n this._registerElement(element, host);\n return false;\n }, this);\n }\n },\n {\n key: 'sort',\n value: function sort(elements) {\n var _elements = this._injectHosts(elements);\n _elements = this._replaceHosts(_elements);\n this._cleanup();\n return _elements;\n }\n },\n {\n key: '_injectHosts',\n value: function _injectHosts(elements) {\n Object.keys(this.hosts).forEach(function(_sortingId) {\n var _list = this.elements[_sortingId];\n var _elements = this.inHost[_sortingId];\n var _context = this.hosts[_sortingId].shadowRoot;\n this.elements[_sortingId] = this._merge(_list, _elements, _context);\n }, this);\n return this._merge(elements, this.inDocument, this.context);\n }\n },\n {\n key: '_merge',\n value: function _merge(list, elements, context) {\n var merged = mergeInDomOrder({\n list: list,\n elements: elements\n });\n return this.sortElements(merged, context);\n }\n },\n {\n key: '_replaceHosts',\n value: function _replaceHosts(elements) {\n return mergeInDomOrder({\n list: elements,\n elements: this.inDocument,\n resolveElement: this._resolveHostElement.bind(this)\n });\n }\n },\n {\n key: '_resolveHostElement',\n value: function _resolveHostElement(host) {\n var merged = mergeInDomOrder({\n list: this.elements[host._sortingId],\n elements: this.inHost[host._sortingId],\n resolveElement: this._resolveHostElement.bind(this)\n });\n var _tabindex = tabindexValue(host);\n if (_tabindex !== null && _tabindex > -1) {\n return [\n host\n ].concat(merged);\n }\n return merged;\n }\n },\n {\n key: '_cleanup',\n value: function _cleanup() {\n // remove those identifers we put on the ShadowHost to avoid using Map()\n Object.keys(this.hosts).forEach(function(key) {\n delete this.hosts[key]._sortingId;\n }, this);\n }\n }\n ]);\n return Shadows;\n}();\nfunction sortShadowed(elements, context, sortElements) {\n var shadows = new Shadows(context, sortElements);\n var _elements = shadows.extractElements(elements);\n if (_elements.length === elements.length) {\n // no shadowed content found, no need to continue\n return sortElements(elements);\n }\n return shadows.sort(_elements);\n}\nfunction sortTabindex(elements) {\n // https://developer.mozilla.org/docs/Web/API/HTMLElement.tabIndex\n // elements with tabIndex \"0\" (including tabbableElements without tabIndex) should be navigated in the order they appear.\n // elements with a positive tabIndex:\n // Elements that have identical tabIndexes should be navigated in the order they appear.\n // Navigation proceeds from the lowest tabIndex to the highest tabIndex.\n // NOTE: sort implementation may be unstable and thus mess up DOM order,\n // that's why we build a map that's being sorted instead. If we were able to rely\n // on a stable sorting algorithm, sortTabindex() could be as simple as\n // elements.sort(function(a, b) { return a.tabIndex - b.tabIndex; });\n // at this time Chrome does not use a stable sorting algorithm\n // see http://blog.rodneyrehm.de/archives/14-Sorting-Were-Doing-It-Wrong.html#stability\n // NOTE: compareDocumentPosition seemed like more overhead than just sorting this with buckets\n // https://developer.mozilla.org/docs/Web/API/Node.compareDocumentPosition\n var map = {};\n var indexes = [];\n var normal = elements.filter(function(element) {\n // in Trident and Gecko SVGElement does not know about the tabIndex property\n var tabIndex = element.tabIndex;\n if (tabIndex === undefined) {\n tabIndex = tabindexValue(element);\n }\n // extract elements that don't need sorting\n if (tabIndex <= 0 || tabIndex === null || tabIndex === undefined) {\n return true;\n }\n if (!map[tabIndex]) {\n // create sortable bucket for dom-order-preservation of elements with the same tabIndex\n map[tabIndex] = [];\n // maintain a list of unique tabIndexes\n indexes.push(tabIndex);\n }\n // sort element into the proper bucket\n map[tabIndex].push(element);\n // element moved to sorting map, so not \"normal\" anymore\n return false;\n });\n // sort the tabindex ascending,\n // then resolve them to their appropriate buckets,\n // then flatten the array of arrays to an array\n var _elements = indexes.sort().map(function(tabIndex) {\n return map[tabIndex];\n }).reduceRight(function(previous, current) {\n return current.concat(previous);\n }, normal);\n return _elements;\n}\nvar supports$8 = void 0;\nfunction moveContextToBeginning(elements, context) {\n var pos = elements.indexOf(context);\n if (pos > 0) {\n var tmp = elements.splice(pos, 1);\n return tmp.concat(elements);\n }\n return elements;\n}\nfunction sortElements(elements, _context) {\n if (supports$8.tabsequenceAreaAtImgPosition) {\n // Some browsers sort <area> in DOM order, some place the <area>s\n // where the <img> referecing them would've been in DOM order.\n // https://github.com/medialize/ally.js/issues/5\n elements = sortArea(elements, _context);\n }\n elements = sortTabindex(elements);\n return elements;\n}\nfunction queryTabsequence() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!supports$8) {\n supports$8 = _supports();\n }\n var _context = nodeArray(context)[0] || document.documentElement;\n var elements = queryTabbable({\n context: _context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n });\n if (document.body.createShadowRoot && platform.is.BLINK) {\n // sort tabindex localized to shadow dom\n // see https://github.com/medialize/ally.js/issues/6\n elements = sortShadowed(elements, _context, sortElements);\n } else {\n elements = sortElements(elements, _context);\n }\n if (includeContext) {\n // if we include the context itself, it has to be the first\n // element of the sequence\n elements = moveContextToBeginning(elements, _context);\n }\n return elements;\n}\n// codes mostly cloned from https://github.com/keithamus/jwerty/blob/master/jwerty.js\n// deliberately not exposing characters like <,.-#* because they vary *wildly*\n// across keyboard layouts and may cause various problems\n// (e.g. \"*\" is \"Shift +\" on a German Mac keyboard)\n// (e.g. \"@\" is \"Alt L\" on a German Mac keyboard)\nvar keycode = {\n // Element Focus\n tab: 9,\n // Navigation\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n pageUp: 33,\n 'page-up': 33,\n pageDown: 34,\n 'page-down': 34,\n end: 35,\n home: 36,\n // Action\n enter: 13,\n escape: 27,\n space: 32,\n // Modifier\n shift: 16,\n capsLock: 20,\n 'caps-lock': 20,\n ctrl: 17,\n alt: 18,\n meta: 91,\n // in firefox: 224\n // on mac (chrome): meta-left=91, meta-right=93\n // on win (IE11): meta-left=91, meta-right=92\n pause: 19,\n // Content Manipulation\n insert: 45,\n delete: 46,\n backspace: 8,\n // the same logical key may be identified through different keyCodes\n _alias: {\n 91: [\n 92,\n 93,\n 224\n ]\n }\n};\n// Function keys (112 - 137)\n// NOTE: not every keyboard knows F13+\nfor(var n = 1; n < 26; n++){\n keycode['f' + n] = n + 111;\n}\n// Number keys (48-57, numpad 96-105)\n// NOTE: not every keyboard knows num-0+\nfor(var _n = 0; _n < 10; _n++){\n var code = _n + 48;\n var numCode = _n + 96;\n keycode[_n] = code;\n keycode['num-' + _n] = numCode;\n keycode._alias[code] = [\n numCode\n ];\n}\n// Latin characters (65 - 90)\nfor(var _n2 = 0; _n2 < 26; _n2++){\n var _code = _n2 + 65;\n var name$1 = String.fromCharCode(_code).toLowerCase();\n keycode[name$1] = _code;\n}\nvar modifier = {\n alt: 'altKey',\n ctrl: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\nvar modifierSequence = Object.keys(modifier).map(function(name) {\n return modifier[name];\n});\nfunction createExpectedModifiers(ignoreModifiers) {\n var value = ignoreModifiers ? null : false;\n return {\n altKey: value,\n ctrlKey: value,\n metaKey: value,\n shiftKey: value\n };\n}\nfunction resolveModifiers(modifiers) {\n var ignoreModifiers = modifiers.indexOf('*') !== -1;\n var expected = createExpectedModifiers(ignoreModifiers);\n modifiers.forEach(function(token) {\n if (token === '*') {\n // we've already covered the all-in operator\n return;\n }\n // we want the modifier pressed\n var value = true;\n var operator = token.slice(0, 1);\n if (operator === '?') {\n // we don't care if the modifier is pressed\n value = null;\n } else if (operator === '!') {\n // we do not want the modifier pressed\n value = false;\n }\n if (value !== true) {\n // compensate for the modifier's operator\n token = token.slice(1);\n }\n var propertyName = modifier[token];\n if (!propertyName) {\n throw new TypeError('Unknown modifier \"' + token + '\"');\n }\n expected[propertyName] = value;\n });\n return expected;\n}\nfunction resolveKey(key) {\n var code = keycode[key] || parseInt(key, 10);\n if (!code || typeof code !== 'number' || isNaN(code)) {\n throw new TypeError('Unknown key \"' + key + '\"');\n }\n return [\n code\n ].concat(keycode._alias[code] || []);\n}\nfunction matchModifiers(expected, event) {\n // returns true on match\n return !modifierSequence.some(function(prop) {\n // returns true on mismatch\n return typeof expected[prop] === 'boolean' && Boolean(event[prop]) !== expected[prop];\n });\n}\nfunction keyBinding(text) {\n return text.split(/\\s+/).map(function(_text) {\n var tokens = _text.split('+');\n var _modifiers = resolveModifiers(tokens.slice(0, -1));\n var _keyCodes = resolveKey(tokens.slice(-1));\n return {\n keyCodes: _keyCodes,\n modifiers: _modifiers,\n matchModifiers: matchModifiers.bind(null, _modifiers)\n };\n });\n}\n// Node.compareDocumentPosition is available since IE9\n// see https://developer.mozilla.org/docs/Web/API/Node.compareDocumentPosition\n// callback returns true when element is contained by parent or is the parent suited for use with Array.some()\n/*\n USAGE:\n var isChildOf = getParentComparator({parent: someNode});\n listOfElements.some(isChildOf)\n*/ function getParentComparator() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, parent = _ref.parent, element = _ref.element, includeSelf = _ref.includeSelf;\n if (parent) {\n return function isChildOf(node) {\n return Boolean(includeSelf && node === parent || parent.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n } else if (element) {\n return function isParentOf(node) {\n return Boolean(includeSelf && element === node || node.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n }\n throw new TypeError('util/compare-position#getParentComparator required either options.parent or options.element');\n}\n// Bug 286933 - Key events in the autocomplete popup should be hidden from page scripts\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=286933\nfunction whenKey() {\n var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var bindings = {};\n var context = nodeArray(map.context)[0] || document.documentElement;\n delete map.context;\n var filter = nodeArray(map.filter);\n delete map.filter;\n var mapKeys = Object.keys(map);\n if (!mapKeys.length) {\n throw new TypeError('when/key requires at least one option key');\n }\n var registerBinding = function registerBinding(event) {\n event.keyCodes.forEach(function(code) {\n if (!bindings[code]) {\n bindings[code] = [];\n }\n bindings[code].push(event);\n });\n };\n mapKeys.forEach(function(text) {\n if (typeof map[text] !== 'function') {\n throw new TypeError('when/key requires option[\"' + text + '\"] to be a function');\n }\n var addCallback = function addCallback(event) {\n event.callback = map[text];\n return event;\n };\n keyBinding(text).map(addCallback).forEach(registerBinding);\n });\n var handleKeyDown = function handleKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (filter.length) {\n // ignore elements within the exempted sub-trees\n var isParentOfElement = getParentComparator({\n element: event.target,\n includeSelf: true\n });\n if (filter.some(isParentOfElement)) {\n return;\n }\n }\n var key = event.keyCode || event.which;\n if (!bindings[key]) {\n return;\n }\n bindings[key].forEach(function(_event) {\n if (!_event.matchModifiers(event)) {\n return;\n }\n _event.callback.call(context, event, disengage);\n });\n };\n context.addEventListener('keydown', handleKeyDown, false);\n var disengage = function disengage() {\n context.removeEventListener('keydown', handleKeyDown, false);\n };\n return {\n disengage: disengage\n };\n}\nfunction _default(param) {\n let { context } = param === void 0 ? {} : param;\n if (!context) {\n context = document.documentElement;\n }\n // Make sure the supports tests are run before intercepting the Tab key,\n // or IE10 and IE11 will fail to process the first Tab key event. Not\n // limiting this warm-up to IE because it may be a problem elsewhere, too.\n queryTabsequence();\n return whenKey({\n // Safari on OSX may require ALT+TAB to reach links,\n // see https://github.com/medialize/ally.js/issues/146\n '?alt+?shift+tab': function altShiftTab(event) {\n // we're completely taking over the Tab key handling\n event.preventDefault();\n var sequence = queryTabsequence({\n context: context\n });\n var backward = event.shiftKey;\n var first = sequence[0];\n var last = sequence[sequence.length - 1];\n // wrap around first to last, last to first\n var source = backward ? first : last;\n var target = backward ? last : first;\n if (isActiveElement(source)) {\n target.focus();\n return;\n }\n // find current position in tabsequence\n var currentIndex = void 0;\n var found = sequence.some(function(element, index) {\n if (!isActiveElement(element)) {\n return false;\n }\n currentIndex = index;\n return true;\n });\n if (!found) {\n // redirect to first as we're not in our tabsequence\n first.focus();\n return;\n }\n // shift focus to previous/next element in the sequence\n var offset = backward ? -1 : 1;\n sequence[currentIndex + offset].focus();\n }\n });\n}\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=maintain--tab-focus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9tYWludGFpbi0tdGFiLWZvY3VzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGtCQUFrQixHQUNsQixjQUFjO0FBQ2QsbURBQW1EO0FBQ25ELGVBQWU7QUFDZixpQ0FBaUM7QUFDakMsRUFBRTtBQUNGLHlDQUF5Qzs7Ozs7MkNBbTdHekM7OztlQUFBOzs7OytFQWo3R3NCO2dGQUNBO0FBRXRCLHlGQUF5RjtBQUN6Riw2RUFBNkU7QUFDN0UsU0FBU0EsVUFBVUMsS0FBSztJQUN0QixJQUFJLENBQUNBLE9BQU87UUFDVixPQUFPLEVBQUU7SUFDWDtJQUVBLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsUUFBUTtRQUN4QixPQUFPQTtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLElBQUlBLE1BQU1HLFFBQVEsS0FBS0MsV0FBVztRQUNoQyxPQUFPO1lBQUNKO1NBQU07SUFDaEI7SUFFQSxJQUFJLE9BQU9BLFVBQVUsVUFBVTtRQUM3QkEsUUFBUUssU0FBU0MsZ0JBQWdCLENBQUNOO0lBQ3BDO0lBRUEsSUFBSUEsTUFBTU8sTUFBTSxLQUFLSCxXQUFXO1FBQzlCLE9BQU8sRUFBRSxDQUFDSSxLQUFLLENBQUNDLElBQUksQ0FBQ1QsT0FBTztJQUM5QjtJQUVBLE1BQU0sSUFBSVUsVUFBVSxzQkFBc0JDLE9BQU9YO0FBQ25EO0FBRUEsU0FBU1ksaUJBQWlCQyxJQUFJO0lBQzVCLElBQUlDLFVBQVVELEtBQUtDLE9BQU8sRUFDeEJDLGFBQWFGLEtBQUtHLEtBQUssRUFDdkJBLFFBQVFELGVBQWVYLFlBQVksdUJBQXVCVyxZQUMxREUsa0JBQWtCSixLQUFLSSxlQUFlLEVBQ3RDQyxvQkFBb0JMLEtBQUtLLGlCQUFpQjtJQUU1QyxJQUFJQyxVQUFVcEIsVUFBVWUsUUFBUSxDQUFDLEVBQUU7SUFFbkMsSUFBSUcsbUJBQW1C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QUFLO1lBQ3hCLElBQUlDLFFBQVFOLFNBQVNqZixJQUFJLENBQUMsU0FBVXpCLE9BQU8sRUFBRWloQixLQUFLO2dCQUNoRCxJQUFJLENBQUNuZ0IsZ0JBQWdCZCxVQUFVO29CQUM3QixPQUFPO2dCQUNUO2dCQUVBK2dCLGVBQWVFO2dCQUNmLE9BQU87WUFDVDtZQUVBLElBQUksQ0FBQ0QsT0FBTztnQkFDVixvREFBb0Q7Z0JBQ3BESixNQUFNL2IsS0FBSztnQkFDWDtZQUNGO1lBRUEsdURBQXVEO1lBQ3ZELElBQUlxTSxTQUFTeVAsV0FBVyxDQUFDLElBQUk7WUFDN0JELFFBQVEsQ0FBQ0ssZUFBZTdQLE9BQU8sQ0FBQ3JNLEtBQUs7UUFDdkM7SUFDRjtBQUNGIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcT3ZlcmxheVxcbWFpbnRhaW4tLXRhYi1mb2N1cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gQHRzLW5vY2hlY2tcbi8vIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qc1xuLy8gTGljZW5zZTogTUlUXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTUgUm9kbmV5IFJlaG1cbi8vXG4vLyBFbnRyeXBvaW50OiBhbGx5LmpzL21haW50YWluL3RhYi1mb2N1c1xuXG5pbXBvcnQgX3BsYXRmb3JtIGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9wbGF0Zm9ybSdcbmltcG9ydCBjc3NFc2NhcGUgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL2Nzcy5lc2NhcGUnXG5cbi8vIGlucHV0IG1heSBiZSB1bmRlZmluZWQsIHNlbGVjdG9yLXRyaW5nLCBOb2RlLCBOb2RlTGlzdCwgSFRNTENvbGxlY3Rpb24sIGFycmF5IG9mIE5vZGVzXG4vLyB5ZXMsIHRvIHNvbWUgZXh0ZW50IHRoaXMgaXMgYSBiYWQgcmVwbGljYSBvZiBqUXVlcnkncyBjb25zdHJ1Y3RvciBmdW5jdGlvblxuZnVuY3Rpb24gbm9kZUFycmF5KGlucHV0KSB7XG4gIGlmICghaW5wdXQpIHtcbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgIHJldHVybiBpbnB1dFxuICB9XG5cbiAgLy8gaW5zdGFuY2VvZiBOb2RlIC0gZG9lcyBub3Qgd29yayB3aXRoIGlmcmFtZXNcbiAgaWYgKGlucHV0Lm5vZGVUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gW2lucHV0XVxuICB9XG5cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoaW5wdXQpXG4gIH1cblxuICBpZiAoaW5wdXQubGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gW10uc2xpY2UuY2FsbChpbnB1dCwgMClcbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ3VuZXhwZWN0ZWQgaW5wdXQgJyArIFN0cmluZyhpbnB1dCkpXG59XG5cbmZ1bmN0aW9uIGNvbnRleHRUb0VsZW1lbnQoX3JlZikge1xuICB2YXIgY29udGV4dCA9IF9yZWYuY29udGV4dCxcbiAgICBfcmVmJGxhYmVsID0gX3JlZi5sYWJlbCxcbiAgICBsYWJlbCA9IF9yZWYkbGFiZWwgPT09IHVuZGVmaW5lZCA/ICdjb250ZXh0LXRvLWVsZW1lbnQnIDogX3JlZiRsYWJlbCxcbiAgICByZXNvbHZlRG9jdW1lbnQgPSBfcmVmLnJlc29sdmVEb2N1bWVudCxcbiAgICBkZWZhdWx0VG9Eb2N1bWVudCA9IF9yZWYuZGVmYXVsdFRvRG9jdW1lbnRcblxuICB2YXIgZWxlbWVudCA9IG5vZGVBcnJheShjb250ZXh0KVswXVxuXG4gIGlmIChyZXNvbHZlRG9jdW1lbnQgJiYgZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05PREUpIHtcbiAgICBlbGVtZW50ID0gZWxlbWVudC5kb2N1bWVudEVsZW1lbnRcbiAgfVxuXG4gIGlmICghZWxlbWVudCAmJiBkZWZhdWx0VG9Eb2N1bWVudCkge1xuICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgfVxuXG4gIGlmICghZWxlbWVudCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IobGFiZWwgKyAnIHJlcXVpcmVzIHZhbGlkIG9wdGlvbnMuY29udGV4dCcpXG4gIH1cblxuICBpZiAoXG4gICAgZWxlbWVudC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUgJiZcbiAgICBlbGVtZW50Lm5vZGVUeXBlICE9PSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREVcbiAgKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihsYWJlbCArICcgcmVxdWlyZXMgb3B0aW9ucy5jb250ZXh0IHRvIGJlIGFuIEVsZW1lbnQnKVxuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRcbn1cblxuZnVuY3Rpb24gZ2V0U2hhZG93SG9zdCgpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2dldC9zaGFkb3ctaG9zdCcsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgfSlcblxuICAvLyB3YWxrIHVwIHRvIHRoZSByb290XG4gIHZhciBjb250YWluZXIgPSBudWxsXG5cbiAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICBjb250YWluZXIgPSBlbGVtZW50XG4gICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL05vZGUubm9kZVR5cGVcbiAgLy8gTk9URTogRmlyZWZveCAzNCBkb2VzIG5vdCBleHBvc2UgU2hhZG93Um9vdC5ob3N0IChidXQgMzcgZG9lcylcbiAgaWYgKFxuICAgIGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gY29udGFpbmVyLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUgJiZcbiAgICBjb250YWluZXIuaG9zdFxuICApIHtcbiAgICAvLyB0aGUgcm9vdCBpcyBhdHRhY2hlZCB0byBhIGZyYWdtZW50IG5vZGUgdGhhdCBoYXMgYSBob3N0XG4gICAgcmV0dXJuIGNvbnRhaW5lci5ob3N0XG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBnZXREb2N1bWVudChub2RlKSB7XG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiBkb2N1bWVudFxuICB9XG5cbiAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkge1xuICAgIHJldHVybiBub2RlXG4gIH1cblxuICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50XG59XG5cbmZ1bmN0aW9uIGlzQWN0aXZlRWxlbWVudChjb250ZXh0KSB7XG4gIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgbGFiZWw6ICdpcy9hY3RpdmUtZWxlbWVudCcsXG4gICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgdmFyIF9kb2N1bWVudCA9IGdldERvY3VtZW50KGVsZW1lbnQpXG4gIGlmIChfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWxlbWVudCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgc2hhZG93SG9zdCA9IGdldFNoYWRvd0hvc3QoeyBjb250ZXh0OiBlbGVtZW50IH0pXG4gIGlmIChzaGFkb3dIb3N0ICYmIHNoYWRvd0hvc3Quc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50KSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vLyBbZWxlbSwgZWxlbS5wYXJlbnQsIGVsZW0ucGFyZW50LnBhcmVudCwg4oCmLCBodG1sXVxuLy8gd2lsbCBub3QgY29udGFpbiB0aGUgc2hhZG93Um9vdCAoRE9DVU1FTlRfRlJBR01FTlRfTk9ERSkgYW5kIHNoYWRvd0hvc3RcbmZ1bmN0aW9uIGdldFBhcmVudHMoKSB7XG4gIHZhciBfcmVmID1cbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgY29udGV4dCA9IF9yZWYuY29udGV4dFxuXG4gIHZhciBsaXN0ID0gW11cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2dldC9wYXJlbnRzJyxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIHdoaWxlIChlbGVtZW50KSB7XG4gICAgbGlzdC5wdXNoKGVsZW1lbnQpXG4gICAgLy8gSUUgZG9lcyBrbm93IHN1cHBvcnQgcGFyZW50RWxlbWVudCBvbiBTVkdFbGVtZW50XG4gICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZVxuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgICBlbGVtZW50ID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsaXN0XG59XG5cbi8vIEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMgbWF5IGJlIGF2YWlsYWJsZSBhdCBhIGRpZmZlcmVudCBuYW1lXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9BUEkvRWxlbWVudC9tYXRjaGVzXG5cbnZhciBuYW1lcyA9IFtcbiAgJ21hdGNoZXMnLFxuICAnd2Via2l0TWF0Y2hlc1NlbGVjdG9yJyxcbiAgJ21vek1hdGNoZXNTZWxlY3RvcicsXG4gICdtc01hdGNoZXNTZWxlY3RvcicsXG5dXG52YXIgbmFtZSA9IG51bGxcblxuZnVuY3Rpb24gZmluZE1ldGhvZE5hbWUoZWxlbWVudCkge1xuICBuYW1lcy5zb21lKGZ1bmN0aW9uIChfbmFtZSkge1xuICAgIGlmICghZWxlbWVudFtfbmFtZV0pIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIG5hbWUgPSBfbmFtZVxuICAgIHJldHVybiB0cnVlXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGVsZW1lbnRNYXRjaGVzKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gIGlmICghbmFtZSkge1xuICAgIGZpbmRNZXRob2ROYW1lKGVsZW1lbnQpXG4gIH1cblxuICByZXR1cm4gZWxlbWVudFtuYW1lXShzZWxlY3Rvcilcbn1cblxuLy8gZGVlcCBjbG9uZSBvZiBvcmlnaW5hbCBwbGF0Zm9ybVxudmFyIHBsYXRmb3JtID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfcGxhdGZvcm0pKVxuXG4vLyBvcGVyYXRpbmcgc3lzdGVtXG52YXIgb3MgPSBwbGF0Zm9ybS5vcy5mYW1pbHkgfHwgJydcbnZhciBBTkRST0lEID0gb3MgPT09ICdBbmRyb2lkJ1xudmFyIFdJTkRPV1MgPSBvcy5zbGljZSgwLCA3KSA9PT0gJ1dpbmRvd3MnXG52YXIgT1NYID0gb3MgPT09ICdPUyBYJ1xudmFyIElPUyA9IG9zID09PSAnaU9TJ1xuXG4vLyBsYXlvdXRcbnZhciBCTElOSyA9IHBsYXRmb3JtLmxheW91dCA9PT0gJ0JsaW5rJ1xudmFyIEdFQ0tPID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnR2Vja28nXG52YXIgVFJJREVOVCA9IHBsYXRmb3JtLmxheW91dCA9PT0gJ1RyaWRlbnQnXG52YXIgRURHRSA9IHBsYXRmb3JtLmxheW91dCA9PT0gJ0VkZ2VIVE1MJ1xudmFyIFdFQktJVCA9IHBsYXRmb3JtLmxheW91dCA9PT0gJ1dlYktpdCdcblxuLy8gYnJvd3NlciB2ZXJzaW9uIChub3QgbGF5b3V0IGVuZ2luZSB2ZXJzaW9uISlcbnZhciB2ZXJzaW9uID0gcGFyc2VGbG9hdChwbGF0Zm9ybS52ZXJzaW9uKVxudmFyIG1ham9yVmVyc2lvbiA9IE1hdGguZmxvb3IodmVyc2lvbilcbnBsYXRmb3JtLm1ham9yVmVyc2lvbiA9IG1ham9yVmVyc2lvblxuXG5wbGF0Zm9ybS5pcyA9IHtcbiAgLy8gb3BlcmF0aW5nIHN5c3RlbVxuICBBTkRST0lEOiBBTkRST0lELFxuICBXSU5ET1dTOiBXSU5ET1dTLFxuICBPU1g6IE9TWCxcbiAgSU9TOiBJT1MsXG4gIC8vIGxheW91dFxuICBCTElOSzogQkxJTkssIC8vIFwiQ2hyb21lXCIsIFwiQ2hyb21lIE1vYmlsZVwiLCBcIk9wZXJhXCJcbiAgR0VDS086IEdFQ0tPLCAvLyBcIkZpcmVmb3hcIlxuICBUUklERU5UOiBUUklERU5ULCAvLyBcIkludGVybmV0IEV4cGxvcmVyXCJcbiAgRURHRTogRURHRSwgLy8gXCJNaWNyb3NvZnQgRWRnZVwiXG4gIFdFQktJVDogV0VCS0lULCAvLyBcIlNhZmFyaVwiXG4gIC8vIElOVEVSTkVUIEVYUExPUkVSU1xuICBJRTk6IFRSSURFTlQgJiYgbWFqb3JWZXJzaW9uID09PSA5LFxuICBJRTEwOiBUUklERU5UICYmIG1ham9yVmVyc2lvbiA9PT0gMTAsXG4gIElFMTE6IFRSSURFTlQgJiYgbWFqb3JWZXJzaW9uID09PSAxMSxcbn1cblxuZnVuY3Rpb24gYmVmb3JlKCkge1xuICB2YXIgZGF0YSA9IHtcbiAgICAvLyByZW1lbWJlciB3aGF0IGhhZCBmb2N1cyB0byByZXN0b3JlIGFmdGVyIHRlc3RcbiAgICBhY3RpdmVFbGVtZW50OiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LFxuICAgIC8vIHJlbWVtYmVyIHNjcm9sbCBwb3NpdGlvbnMgdG8gcmVzdG9yZSBhZnRlciB0ZXN0XG4gICAgd2luZG93U2Nyb2xsVG9wOiB3aW5kb3cuc2Nyb2xsVG9wLFxuICAgIHdpbmRvd1Njcm9sbExlZnQ6IHdpbmRvdy5zY3JvbGxMZWZ0LFxuICAgIGJvZHlTY3JvbGxUb3A6IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLFxuICAgIGJvZHlTY3JvbGxMZWZ0OiBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQsXG4gIH1cblxuICAvLyB3cmFwIHRlc3RzIGluIGFuIGVsZW1lbnQgaGlkZGVuIGZyb20gc2NyZWVuIHJlYWRlcnMgdG8gcHJldmVudCB0aGVtXG4gIC8vIGZyb20gYW5ub3VuY2luZyBmb2N1cywgd2hpY2ggY2FuIGJlIHF1aXRlIGlycml0YXRpbmcgdG8gdGhlIHVzZXJcbiAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpXG4gIGlmcmFtZS5zZXRBdHRyaWJ1dGUoXG4gICAgJ3N0eWxlJyxcbiAgICAncG9zaXRpb246YWJzb2x1dGU7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDotMnB4OyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IG92ZXJmbG93OmhpZGRlbjsnXG4gIClcbiAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYXJpYS1saXZlJywgJ29mZicpXG4gIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtYnVzeScsICd0cnVlJylcbiAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKVxuXG4gIHZhciBfd2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3dcbiAgdmFyIF9kb2N1bWVudCA9IF93aW5kb3cuZG9jdW1lbnRcblxuICBfZG9jdW1lbnQub3BlbigpXG4gIF9kb2N1bWVudC5jbG9zZSgpXG4gIHZhciB3cmFwcGVyID0gX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIF9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdyYXBwZXIpXG5cbiAgZGF0YS5pZnJhbWUgPSBpZnJhbWVcbiAgZGF0YS53cmFwcGVyID0gd3JhcHBlclxuICBkYXRhLndpbmRvdyA9IF93aW5kb3dcbiAgZGF0YS5kb2N1bWVudCA9IF9kb2N1bWVudFxuXG4gIHJldHVybiBkYXRhXG59XG5cbi8vIG9wdGlvbnMuZWxlbWVudDpcbi8vICB7c3RyaW5nfSBlbGVtZW50IG5hbWVcbi8vICB7ZnVuY3Rpb259IGNhbGxiYWNrKHdyYXBwZXIsIGRvY3VtZW50KSB0byBnZW5lcmF0ZSBhbiBlbGVtZW50XG4vLyBvcHRpb25zLm11dGF0ZTogKG9wdGlvbmFsKVxuLy8gIHtmdW5jdGlvbn0gY2FsbGJhY2soZWxlbWVudCwgd3JhcHBlciwgZG9jdW1lbnQpIHRvIG1hbmlwdWxhdGUgZWxlbWVudCBwcmlvciB0byBmb2N1cy10ZXN0LlxuLy8gICAgICAgICAgICAgQ2FuIHJldHVybiBET01FbGVtZW50IHRvIGRlZmluZSBmb2N1cyB0YXJnZXQgKGRlZmF1bHQ6IGVsZW1lbnQpXG4vLyBvcHRpb25zLnZhbGlkYXRlOiAob3B0aW9uYWwpXG4vLyAge2Z1bmN0aW9ufSBjYWxsYmFjayhlbGVtZW50LCBmb2N1c1RhcmdldCwgZG9jdW1lbnQpIHRvIG1hbmlwdWxhdGUgdGVzdC1yZXN1bHRcbmZ1bmN0aW9uIHRlc3QoZGF0YSwgb3B0aW9ucykge1xuICAvLyBtYWtlIHN1cmUgd2Ugb3BlcmF0ZSBvbiBhIGNsZWFuIHNsYXRlXG4gIGRhdGEud3JhcHBlci5pbm5lckhUTUwgPSAnJ1xuICAvLyBjcmVhdGUgZHVtbXkgZWxlbWVudCB0byB0ZXN0IGZvY3VzYWJpbGl0eSBvZlxuICB2YXIgZWxlbWVudCA9XG4gICAgdHlwZW9mIG9wdGlvbnMuZWxlbWVudCA9PT0gJ3N0cmluZydcbiAgICAgID8gZGF0YS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG9wdGlvbnMuZWxlbWVudClcbiAgICAgIDogb3B0aW9ucy5lbGVtZW50KGRhdGEud3JhcHBlciwgZGF0YS5kb2N1bWVudClcbiAgLy8gYWxsb3cgY2FsbGJhY2sgdG8gZnVydGhlciBzcGVjaWZ5IGR1bW15IGVsZW1lbnRcbiAgLy8gYW5kIG9wdGlvbmFsbHkgZGVmaW5lIGVsZW1lbnQgdG8gZm9jdXNcbiAgdmFyIGZvY3VzID1cbiAgICBvcHRpb25zLm11dGF0ZSAmJiBvcHRpb25zLm11dGF0ZShlbGVtZW50LCBkYXRhLndyYXBwZXIsIGRhdGEuZG9jdW1lbnQpXG4gIGlmICghZm9jdXMgJiYgZm9jdXMgIT09IGZhbHNlKSB7XG4gICAgZm9jdXMgPSBlbGVtZW50XG4gIH1cbiAgLy8gZWxlbWVudCBuZWVkcyB0byBiZSBwYXJ0IG9mIHRoZSBET00gdG8gYmUgZm9jdXNhYmxlXG4gICFlbGVtZW50LnBhcmVudE5vZGUgJiYgZGF0YS53cmFwcGVyLmFwcGVuZENoaWxkKGVsZW1lbnQpXG4gIC8vIHRlc3QgaWYgdGhlIGVsZW1lbnQgd2l0aCBpbnZhbGlkIHRhYmluZGV4IGNhbiBiZSBmb2N1c2VkXG4gIGZvY3VzICYmIGZvY3VzLmZvY3VzICYmIGZvY3VzLmZvY3VzKClcbiAgLy8gdmFsaWRhdGUgdGVzdCdzIHJlc3VsdFxuICByZXR1cm4gb3B0aW9ucy52YWxpZGF0ZVxuICAgID8gb3B0aW9ucy52YWxpZGF0ZShlbGVtZW50LCBmb2N1cywgZGF0YS5kb2N1bWVudClcbiAgICA6IGRhdGEuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXNcbn1cblxuZnVuY3Rpb24gYWZ0ZXIoZGF0YSkge1xuICAvLyByZXN0b3JlIGZvY3VzIHRvIHdoYXQgaXQgd2FzIGJlZm9yZSB0ZXN0IGFuZCBjbGVhbnVwXG4gIGlmIChkYXRhLmFjdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmXG4gICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIgJiZcbiAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpXG4gICAgaWYgKHBsYXRmb3JtLmlzLklFMTApIHtcbiAgICAgIC8vIElFMTAgZG9lcyBub3QgcmVkaXJlY3QgZm9jdXMgdG8gPGJvZHk+IHdoZW4gdGhlIGFjdGl2ZUVsZW1lbnQgaXMgcmVtb3ZlZFxuICAgICAgZG9jdW1lbnQuYm9keS5mb2N1cygpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGRhdGEuYWN0aXZlRWxlbWVudCAmJiBkYXRhLmFjdGl2ZUVsZW1lbnQuZm9jdXMgJiYgZGF0YS5hY3RpdmVFbGVtZW50LmZvY3VzKClcbiAgfVxuXG4gIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGF0YS5pZnJhbWUpXG5cbiAgLy8gcmVzdG9yZSBzY3JvbGwgcG9zaXRpb25cbiAgd2luZG93LnNjcm9sbFRvcCA9IGRhdGEud2luZG93U2Nyb2xsVG9wXG4gIHdpbmRvdy5zY3JvbGxMZWZ0ID0gZGF0YS53aW5kb3dTY3JvbGxMZWZ0XG4gIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wID0gZGF0YS5ib2R5U2Nyb2xsVG9wXG4gIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCA9IGRhdGEuYm9keVNjcm9sbExlZnRcbn1cblxuZnVuY3Rpb24gZGV0ZWN0Rm9jdXModGVzdHMpIHtcbiAgdmFyIGRhdGEgPSBiZWZvcmUoKVxuXG4gIHZhciByZXN1bHRzID0ge31cbiAgT2JqZWN0LmtleXModGVzdHMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmVzdWx0c1trZXldID0gdGVzdChkYXRhLCB0ZXN0c1trZXldKVxuICB9KVxuXG4gIGFmdGVyKGRhdGEpXG4gIHJldHVybiByZXN1bHRzXG59XG5cbi8vIHRoaXMgZmlsZSBpcyBvdmVyd3JpdHRlbiBieSBgbnBtIHJ1biBidWlsZDpwcmVgXG52YXIgdmVyc2lvbiQxID0gJzEuNC4xJ1xuXG4vKlxuICAgIEZhY2lsaXR5IHRvIGNhY2hlIHRlc3QgcmVzdWx0cyBpbiBsb2NhbFN0b3JhZ2UuXG5cbiAgICBVU0FHRTpcbiAgICAgIGNhY2hlLmdldCgna2V5Jyk7XG4gICAgICBjYWNoZS5zZXQoJ2tleScsICd2YWx1ZScpO1xuICovXG5cbmZ1bmN0aW9uIHJlYWRMb2NhbFN0b3JhZ2Uoa2V5KSB7XG4gIC8vIGFsbG93IHJlYWRpbmcgZnJvbSBzdG9yYWdlIHRvIHJldHJpZXZlIHByZXZpb3VzIHN1cHBvcnQgcmVzdWx0c1xuICAvLyBldmVuIHdoaWxlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGZvY3VzXG4gIHZhciBkYXRhID0gdm9pZCAwXG5cbiAgdHJ5IHtcbiAgICBkYXRhID0gd2luZG93LmxvY2FsU3RvcmFnZSAmJiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KVxuICAgIGRhdGEgPSBkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IHt9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkYXRhID0ge31cbiAgfVxuXG4gIHJldHVybiBkYXRhXG59XG5cbmZ1bmN0aW9uIHdyaXRlTG9jYWxTdG9yYWdlKGtleSwgdmFsdWUpIHtcbiAgaWYgKCFkb2N1bWVudC5oYXNGb2N1cygpKSB7XG4gICAgLy8gaWYgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgZm9jdXMgd2hlbiB0ZXN0cyBhcmUgZXhlY3V0ZWQsIGZvY3VzKCkgbWF5XG4gICAgLy8gbm90IGJlIGhhbmRsZWQgcHJvcGVybHkgYW5kIGV2ZW50cyBtYXkgbm90IGJlIGRpc3BhdGNoZWQgaW1tZWRpYXRlbHkuXG4gICAgLy8gVGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBkb2N1bWVudCBpcyByZWxvYWRlZCB3aGlsZSBEZXZlbG9wZXIgVG9vbHMgaGF2ZSBmb2N1cy5cbiAgICB0cnkge1xuICAgICAgd2luZG93LmxvY2FsU3RvcmFnZSAmJiB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGlnbm9yZVxuICAgIH1cblxuICAgIHJldHVyblxuICB9XG5cbiAgdHJ5IHtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlICYmXG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBpZ25vcmVcbiAgfVxufVxuXG52YXIgdXNlckFnZW50ID1cbiAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSB8fCAnJ1xudmFyIGNhY2hlS2V5ID0gJ2FsbHktc3VwcG9ydHMtY2FjaGUnXG52YXIgY2FjaGUgPSByZWFkTG9jYWxTdG9yYWdlKGNhY2hlS2V5KVxuXG4vLyB1cGRhdGUgdGhlIGNhY2hlIGlmIGFsbHkgb3IgdGhlIHVzZXIgYWdlbnQgY2hhbmdlZCAobmV3ZXIgdmVyc2lvbiwgZXRjKVxuaWYgKGNhY2hlLnVzZXJBZ2VudCAhPT0gdXNlckFnZW50IHx8IGNhY2hlLnZlcnNpb24gIT09IHZlcnNpb24kMSkge1xuICBjYWNoZSA9IHt9XG59XG5cbmNhY2hlLnVzZXJBZ2VudCA9IHVzZXJBZ2VudFxuY2FjaGUudmVyc2lvbiA9IHZlcnNpb24kMVxuXG52YXIgY2FjaGUkMSA9IHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIGNhY2hlXG4gIH0sXG4gIHNldDogZnVuY3Rpb24gc2V0KHZhbHVlcykge1xuICAgIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBjYWNoZVtrZXldID0gdmFsdWVzW2tleV1cbiAgICB9KVxuXG4gICAgY2FjaGUudGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgIHdyaXRlTG9jYWxTdG9yYWdlKGNhY2hlS2V5LCBjYWNoZSlcbiAgfSxcbn1cblxuZnVuY3Rpb24gY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcigpIHtcbiAgdmFyIGNvbWJpbmF0b3IgPSB2b2lkIDBcblxuICAvLyBzZWUgaHR0cHM6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzcy1zY29waW5nLTEvI2RlZXAtY29tYmluYXRvclxuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE3NTcyXG4gIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDYwNTFcbiAgdHJ5IHtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sID4+PiA6Zmlyc3QtY2hpbGQnKVxuICAgIGNvbWJpbmF0b3IgPSAnPj4+J1xuICB9IGNhdGNoIChub0Fycm93QXJyb3dBcnJvdykge1xuICAgIHRyeSB7XG4gICAgICAvLyBvbGQgc3ludGF4IHN1cHBvcnRlZCBhdCBsZWFzdCB1cCB0byBDaHJvbWUgNDFcbiAgICAgIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDYwNTFcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwgL2RlZXAvIDpmaXJzdC1jaGlsZCcpXG4gICAgICBjb21iaW5hdG9yID0gJy9kZWVwLydcbiAgICB9IGNhdGNoIChub0RlZXApIHtcbiAgICAgIGNvbWJpbmF0b3IgPSAnJ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb21iaW5hdG9yXG59XG5cbnZhciBnaWYgPVxuICAnZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3J1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNBcmVhSW1nVGFiaW5kZXggPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxtYXAgbmFtZT1cImltYWdlLW1hcC10YWJpbmRleC10ZXN0XCI+JyArXG4gICAgICAnPGFyZWEgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArXG4gICAgICAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiB0YWJpbmRleD1cIi0xXCIgYWx0PVwiXCIgc3JjPVwiJyArXG4gICAgICBnaWYgK1xuICAgICAgJ1wiPidcblxuICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FyZWEnKVxuICB9LFxufVxuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNBcmVhVGFiaW5kZXggPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxtYXAgbmFtZT1cImltYWdlLW1hcC10YWJpbmRleC10ZXN0XCI+JyArXG4gICAgICAnPGFyZWEgaHJlZj1cIiN2b2lkXCIgdGFiaW5kZXg9XCItMVwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgJzxpbWcgdXNlbWFwPVwiI2ltYWdlLW1hcC10YWJpbmRleC10ZXN0XCIgYWx0PVwiXCIgc3JjPVwiJyArXG4gICAgICBnaWYgK1xuICAgICAgJ1wiPidcblxuICAgIHJldHVybiBmYWxzZVxuICB9LFxuICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgIGlmIChwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgICAgLy8gZml4ZXMgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8zNVxuICAgICAgLy8gRmlyZWZveCBsb2FkcyB0aGUgRGF0YVVSSSBhc3luY2hyb25vdXNseSwgY2F1c2luZyBhIGZhbHNlLW5lZ2F0aXZlXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHZhciBmb2N1cyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpXG4gICAgZm9jdXMuZm9jdXMoKVxuICAgIHJldHVybiBfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXNcbiAgfSxcbn1cblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxudmFyIGZvY3VzQXJlYVdpdGhvdXRIcmVmID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtYXJlYS1ocmVmLXRlc3RcIj4nICtcbiAgICAgICc8YXJlYSBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtYXJlYS1ocmVmLXRlc3RcIiBhbHQ9XCJcIiBzcmM9XCInICtcbiAgICAgIGdpZiArXG4gICAgICAnXCI+J1xuXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpXG4gIH0sXG4gIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAvLyBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4gICAgICAvLyBGaXJlZm94IGxvYWRzIHRoZSBEYXRhVVJJIGFzeW5jaHJvbm91c2x5LCBjYXVzaW5nIGEgZmFsc2UtbmVnYXRpdmVcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1c1RhcmdldFxuICB9LFxufVxuXG52YXIgZm9jdXNBdWRpb1dpdGhvdXRDb250cm9scyA9IHtcbiAgbmFtZTogJ2Nhbi1mb2N1cy1hdWRpby13aXRob3V0LWNvbnRyb2xzJyxcbiAgZWxlbWVudDogJ2F1ZGlvJyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIHRyeSB7XG4gICAgICAvLyBpbnZhbGlkIG1lZGlhIGZpbGUgY2FuIHRyaWdnZXIgd2FybmluZyBpbiBjb25zb2xlLCBkYXRhLXVyaSB0byBwcmV2ZW50IEhUVFAgcmVxdWVzdFxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3NyYycsIGdpZilcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJRTkgbWF5IHRocm93IFwiRXJyb3I6IE5vdCBpbXBsZW1lbnRlZFwiXG4gICAgfVxuICB9LFxufVxuXG52YXIgaW52YWxpZEdpZiA9XG4gICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL1paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlonXG5cbi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0Jyb2tlbkltYWdlTWFwID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICc8bWFwIG5hbWU9XCJicm9rZW4taW1hZ2UtbWFwLXRlc3RcIj48YXJlYSBocmVmPVwiI3ZvaWRcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICc8aW1nIHVzZW1hcD1cIiNicm9rZW4taW1hZ2UtbWFwLXRlc3RcIiBhbHQ9XCJcIiBzcmM9XCInICtcbiAgICAgIGludmFsaWRHaWYgK1xuICAgICAgJ1wiPidcblxuICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FyZWEnKVxuICB9LFxufVxuXG4vLyBDaGlsZHJlbiBvZiBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG52YXIgZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveCA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKVxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3N0eWxlJyxcbiAgICAgICdkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4OydcbiAgICApXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5oZWxsbzwvc3Bhbj4nXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbicpXG4gIH0sXG59XG5cbi8vIGZpZWxkc2V0W3RhYmluZGV4PTBdW2Rpc2FibGVkXSBzaG91bGQgbm90IGJlIGZvY3VzYWJsZSwgYnV0IEJsaW5rIGFuZCBXZWJLaXQgZGlzYWdyZWVcbi8vIEBzcGVjaWZpY2F0aW9uIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kaXNhYmxlZC1lbGVtZW50cy5odG1sI2NvbmNlcHQtZWxlbWVudC1kaXNhYmxlZFxuLy8gQGJyb3dzZXItaXNzdWUgQ2hyb21pdW0gaHR0cHM6Ly9jcmJ1Zy5jb20vNDUzODQ3XG4vLyBAYnJvd3Nlci1pc3N1ZSBXZWJLaXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTA4NlxudmFyIGZvY3VzRmllbGRzZXREaXNhYmxlZCA9IHtcbiAgZWxlbWVudDogJ2ZpZWxkc2V0JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIDApXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJylcbiAgfSxcbn1cblxudmFyIGZvY3VzRmllbGRzZXQgPSB7XG4gIGVsZW1lbnQ6ICdmaWVsZHNldCcsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPjxwPmNvbnRlbnQ8L3A+J1xuICB9LFxufVxuXG4vLyBlbGVtZW50cyB3aXRoIGRpc3BsYXk6ZmxleCBhcmUgZm9jdXNhYmxlIGluIElFMTAtMTFcbnZhciBmb2N1c0ZsZXhib3hDb250YWluZXIgPSB7XG4gIGVsZW1lbnQ6ICdzcGFuJyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3N0eWxlJyxcbiAgICAgICdkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4OydcbiAgICApXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5oZWxsbzwvc3Bhbj4nXG4gIH0sXG59XG5cbi8vIGZvcm1bdGFiaW5kZXg9MF1bZGlzYWJsZWRdIHNob3VsZCBiZSBmb2N1c2FibGUgYXMgdGhlXG4vLyBzcGVjaWZpY2F0aW9uIGRvZXNuJ3Qga25vdyB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGVsZW1lbnRcbi8vIEBzcGVjaWZpY2F0aW9uIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3RoZS1mb3JtLWVsZW1lbnRcbnZhciBmb2N1c0Zvcm1EaXNhYmxlZCA9IHtcbiAgZWxlbWVudDogJ2Zvcm0nLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgMClcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICB9LFxufVxuXG4vLyBOT1RFOiBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4vLyBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIwXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItaXNtYXBcbnZhciBmb2N1c0ltZ0lzbWFwID0ge1xuICBlbGVtZW50OiAnYScsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmhyZWYgPSAnI3ZvaWQnXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPGltZyBpc21hcCBzcmM9XCInICsgZ2lmICsgJ1wiIGFsdD1cIlwiPidcbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKVxuICB9LFxufVxuXG4vLyBOT1RFOiBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNJbWdVc2VtYXBUYWJpbmRleCA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAnPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj48YXJlYSBocmVmPVwiI3ZvaWRcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIHRhYmluZGV4PVwiLTFcIiBhbHQ9XCJcIiAnICtcbiAgICAgICdzcmM9XCInICtcbiAgICAgIGdpZiArXG4gICAgICAnXCI+J1xuXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignaW1nJylcbiAgfSxcbn1cblxudmFyIGZvY3VzSW5IaWRkZW5JZnJhbWUgPSB7XG4gIGVsZW1lbnQ6IGZ1bmN0aW9uIGVsZW1lbnQod3JhcHBlciwgX2RvY3VtZW50KSB7XG4gICAgdmFyIGlmcmFtZSA9IF9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKVxuXG4gICAgLy8gaWZyYW1lIG11c3QgYmUgcGFydCBvZiB0aGUgRE9NIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIGNvbnRlbnRXaW5kb3cgaXMgcG9zc2libGVcbiAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGlmcmFtZSlcblxuICAgIC8vIGNyZWF0ZSB0aGUgaWZyYW1lJ3MgZGVmYXVsdCBkb2N1bWVudCAoPGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+KVxuICAgIHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50XG4gICAgaWZyYW1lRG9jdW1lbnQub3BlbigpXG4gICAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKVxuICAgIHJldHVybiBpZnJhbWVcbiAgfSxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoaWZyYW1lKSB7XG4gICAgaWZyYW1lLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJ1xuXG4gICAgdmFyIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnRcbiAgICB2YXIgaW5wdXQgPSBpZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpXG4gICAgaWZyYW1lRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dClcbiAgICByZXR1cm4gaW5wdXRcbiAgfSxcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGlmcmFtZSkge1xuICAgIHZhciBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50XG4gICAgdmFyIGZvY3VzID0gaWZyYW1lRG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKVxuICAgIHJldHVybiBpZnJhbWVEb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1c1xuICB9LFxufVxuXG52YXIgcmVzdWx0ID0gIXBsYXRmb3JtLmlzLldFQktJVFxuXG5mdW5jdGlvbiBmb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdCgpIHtcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vLyBGaXJlZm94IGFsbG93cyAqYW55KiB2YWx1ZSBhbmQgdHJlYXRzIGludmFsaWQgdmFsdWVzIGxpa2UgdGFiaW5kZXg9XCItMVwiXG4vLyBAYnJvd3Nlci1pc3N1ZSBHZWNrbyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4MDU0XG52YXIgZm9jdXNJbnZhbGlkVGFiaW5kZXggPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJ2ludmFsaWQtdmFsdWUnKVxuICB9LFxufVxuXG52YXIgZm9jdXNMYWJlbFRhYmluZGV4ID0ge1xuICBlbGVtZW50OiAnbGFiZWwnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJylcbiAgfSxcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICAvLyBmb3JjZSBsYXlvdXQgaW4gQ2hyb21lIDQ5LCBvdGhlcndpc2UgdGhlIGVsZW1lbnQgd29uJ3QgYmUgZm9jdXNhYmxlXG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbiAgICB2YXIgdmFyaWFibGVUb1ByZXZlbnREZWFkQ29kZUVsaW1pbmF0aW9uID0gZWxlbWVudC5vZmZzZXRIZWlnaHRcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgZWxlbWVudC5mb2N1cygpXG4gICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50XG4gIH0sXG59XG5cbnZhciBzdmcgPVxuICAnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGInICtcbiAgJ0c1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQnBaRDBpYzNabklqNDhkR1Y0ZENCNFBTSXhNQ0lnZVQwaU1qQWlJR2xrUFNKJyArXG4gICd6ZG1jdGJHbHVheTEwWlhoMElqNTBaWGgwUEM5MFpYaDBQand2YzNablBnPT0nXG5cbi8vIE5vdGU6IElFMTAgb24gQnJvd3NlclN0YWNrIGRvZXMgbm90IGxpa2UgdGhpcyB0ZXN0XG5cbnZhciBmb2N1c09iamVjdFN2Z0hpZGRlbiA9IHtcbiAgZWxlbWVudDogJ29iamVjdCcsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdpbWFnZS9zdmcreG1sJylcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YScsIHN2ZylcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnMjAwJylcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzUwJylcbiAgICBlbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJ1xuICB9LFxufVxuXG4vLyBOb3RlOiBJRTEwIG9uIEJyb3dzZXJTdGFjayBkb2VzIG5vdCBsaWtlIHRoaXMgdGVzdFxuXG52YXIgZm9jdXNPYmplY3RTdmcgPSB7XG4gIG5hbWU6ICdjYW4tZm9jdXMtb2JqZWN0LXN2ZycsXG4gIGVsZW1lbnQ6ICdvYmplY3QnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaW1hZ2Uvc3ZnK3htbCcpXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEnLCBzdmcpXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgJzIwMCcpXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsICc1MCcpXG4gIH0sXG4gIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAvLyBGaXJlZm94IHNlZW1zIHRvIGJlIGhhbmRsaW5nIHRoZSBvYmplY3QgY3JlYXRpb24gYXN5bmNocm9ub3VzbHkgYW5kIHRoZXJlYnkgcHJvZHVjZXMgYSBmYWxzZSBuZWdhdGl2ZSB0ZXN0IHJlc3VsdC5cbiAgICAgIC8vIEJlY2F1c2Ugd2Uga25vdyBGaXJlZm94IGlzIGFibGUgdG8gZm9jdXMgb2JqZWN0IGVsZW1lbnRzIHJlZmVyZW5jaW5nIFNWR3MsIHdlIHNpbXBseSBjaGVhdCBieSBzbmlmZmluZyB0aGUgdXNlciBhZ2VudCBzdHJpbmdcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50XG4gIH0sXG59XG5cbi8vIEV2ZXJ5IEVudmlyb25tZW50IGV4Y2VwdCBJRTkgY29uc2lkZXJzIFNXRiBvYmplY3RzIGZvY3VzYWJsZVxudmFyIHJlc3VsdCQxID0gIXBsYXRmb3JtLmlzLklFOVxuXG5mdW5jdGlvbiBmb2N1c09iamVjdFN3ZigpIHtcbiAgcmV0dXJuIHJlc3VsdCQxXG59XG5cbnZhciBmb2N1c1JlZGlyZWN0SW1nVXNlbWFwID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICc8bWFwIG5hbWU9XCJmb2N1cy1yZWRpcmVjdC1pbWctdXNlbWFwXCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArXG4gICAgICAnPGltZyB1c2VtYXA9XCIjZm9jdXMtcmVkaXJlY3QtaW1nLXVzZW1hcFwiIGFsdD1cIlwiICcgK1xuICAgICAgJ3NyYz1cIicgK1xuICAgICAgZ2lmICtcbiAgICAgICdcIj4nXG5cbiAgICAvLyBmb2N1cyB0aGUgPGltZz4sIG5vdCB0aGUgPGRpdj5cbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKVxuICB9LFxuICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgIHZhciB0YXJnZXQgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2FyZWEnKVxuICAgIHJldHVybiBfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGFyZ2V0XG4gIH0sXG59XG5cbi8vIHNlZSBodHRwczovL2pzYmluLmNvbS9uZW5pcmlzYWdlL2VkaXQ/aHRtbCxqcyxjb25zb2xlLG91dHB1dFxuXG52YXIgZm9jdXNSZWRpcmVjdExlZ2VuZCA9IHtcbiAgZWxlbWVudDogJ2ZpZWxkc2V0JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICc8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPjxpbnB1dCB0YWJpbmRleD1cIi0xXCI+PGlucHV0IHRhYmluZGV4PVwiMFwiPidcbiAgICAvLyB0YWtlIGNhcmUgb2YgZm9jdXMgaW4gdmFsaWRhdGUoKTtcbiAgICByZXR1cm4gZmFsc2VcbiAgfSxcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICB2YXIgZm9jdXNhYmxlID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD1cIi0xXCJdJylcbiAgICB2YXIgdGFiYmFibGUgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PVwiMFwiXScpXG5cbiAgICAvLyBGaXJlZm94IHJlcXVpcmVzIHRoaXMgdGVzdCB0byBmb2N1cyB0aGUgPGZpZWxkc2V0PiBmaXJzdCwgd2hpbGUgdGhpcyBpcyBub3QgbmVjZXNzYXJ5IGluXG4gICAgLy8gaHR0cHM6Ly9qc2Jpbi5jb20vbmVuaXJpc2FnZS9lZGl0P2h0bWwsanMsY29uc29sZSxvdXRwdXRcbiAgICBlbGVtZW50LmZvY3VzKClcblxuICAgIGVsZW1lbnQucXVlcnlTZWxlY3RvcignbGVnZW5kJykuZm9jdXMoKVxuICAgIHJldHVybiAoXG4gICAgICAoX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzYWJsZSAmJiAnZm9jdXNhYmxlJykgfHxcbiAgICAgIChfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGFiYmFibGUgJiYgJ3RhYmJhYmxlJykgfHxcbiAgICAgICcnXG4gICAgKVxuICB9LFxufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG52YXIgZm9jdXNTY3JvbGxCb2R5ID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgb3ZlcmZsb3c6IGF1dG87JylcbiAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAnPGRpdiBzdHlsZT1cIndpZHRoOiA1MDBweDsgaGVpZ2h0OiA0MHB4O1wiPnNjcm9sbGFibGUgY29udGVudDwvZGl2PidcbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKVxuICB9LFxufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG52YXIgZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3cgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OycpXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nXG4gIH0sXG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbnZhciBmb2N1c1Njcm9sbENvbnRhaW5lciA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IG92ZXJmbG93OiBhdXRvOycpXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nXG4gIH0sXG59XG5cbnZhciBmb2N1c1N1bW1hcnkgPSB7XG4gIGVsZW1lbnQ6ICdkZXRhaWxzJyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxzdW1tYXJ5PmZvbzwvc3VtbWFyeT48cD5jb250ZW50PC9wPidcbiAgICByZXR1cm4gZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZFxuICB9LFxufVxuXG5mdW5jdGlvbiBtYWtlRm9jdXNhYmxlRm9yZWlnbk9iamVjdCgpIHtcbiAgLy8gQ29uc3RydWN0cyA8Zm9yZWlnbk9iamVjdCB3aWR0aD1cIjMwXCIgaGVpZ2h0PVwiMzBcIj48aW5wdXQgdHlwZT1cInRleHRcIi8+PC9mb3JlaWduT2JqZWN0PlxuICAvLyB3aXRob3V0IHJhaXNpbmcgYSBUcnVzdGVkIFR5cGVzIHZpb2xhdGlvblxuICB2YXIgZm9yZWlnbk9iamVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcbiAgICAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICAgICdmb3JlaWduT2JqZWN0J1xuICApXG4gIGZvcmVpZ25PYmplY3Qud2lkdGguYmFzZVZhbC52YWx1ZSA9IDMwXG4gIGZvcmVpZ25PYmplY3QuaGVpZ2h0LmJhc2VWYWwudmFsdWUgPSAzMFxuICBmb3JlaWduT2JqZWN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykpXG4gIGZvcmVpZ25PYmplY3QubGFzdENoaWxkLnR5cGUgPSAndGV4dCdcblxuICByZXR1cm4gZm9yZWlnbk9iamVjdFxufVxuXG5mdW5jdGlvbiBmb2N1c1N2Z0ZvcmVpZ25PYmplY3RIYWNrKGVsZW1lbnQpIHtcbiAgLy8gRWRnZTEzLCBFZGdlMTQ6IGZvcmVpZ25PYmplY3QgZm9jdXMgaGFja1xuICAvLyBodHRwczovL2pzYmluLmNvbS9rdW5laGludWdpL2VkaXQ/aHRtbCxqcyxvdXRwdXRcbiAgLy8gaHR0cHM6Ly9qc2Jpbi5jb20vZmFqYWdpLzMvZWRpdD9odG1sLGpzLG91dHB1dFxuICB2YXIgaXNTdmdFbGVtZW50ID1cbiAgICBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCB8fCBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnXG4gIGlmICghaXNTdmdFbGVtZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBpbmplY3QgYW5kIGZvY3VzIGFuIDxpbnB1dD4gZWxlbWVudCBpbnRvIHRoZSBTVkcgZWxlbWVudCB0byByZWNlaXZlIGZvY3VzXG4gIHZhciBmb3JlaWduT2JqZWN0ID0gbWFrZUZvY3VzYWJsZUZvcmVpZ25PYmplY3QoKVxuICBlbGVtZW50LmFwcGVuZENoaWxkKGZvcmVpZ25PYmplY3QpXG4gIHZhciBpbnB1dCA9IGZvcmVpZ25PYmplY3QucXVlcnlTZWxlY3RvcignaW5wdXQnKVxuICBpbnB1dC5mb2N1cygpXG5cbiAgLy8gdXBvbiBkaXNhYmxpbmcgdGhlIGFjdGl2ZUVsZW1lbnQsIElFIGFuZCBFZGdlXG4gIC8vIHdpbGwgbm90IHNoaWZ0IGZvY3VzIHRvIDxib2R5PiBsaWtlIGFsbCB0aGUgb3RoZXJcbiAgLy8gYnJvd3NlcnMsIGJ1dCBpbnN0ZWFkIGZpbmQgdGhlIGZpcnN0IGZvY3VzYWJsZVxuICAvLyBhbmNlc3RvciBhbmQgc2hpZnQgZm9jdXMgdG8gdGhhdFxuICBpbnB1dC5kaXNhYmxlZCA9IHRydWVcblxuICAvLyBjbGVhbiB1cFxuICBlbGVtZW50LnJlbW92ZUNoaWxkKGZvcmVpZ25PYmplY3QpXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlKGVsZW1lbnQpIHtcbiAgcmV0dXJuIChcbiAgICAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+JyArXG4gICAgZWxlbWVudCArXG4gICAgJzwvc3ZnPidcbiAgKVxufVxuXG5mdW5jdGlvbiBmb2N1cyhlbGVtZW50KSB7XG4gIGlmIChlbGVtZW50LmZvY3VzKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB0cnkge1xuICAgIEhUTUxFbGVtZW50LnByb3RvdHlwZS5mb2N1cy5jYWxsKGVsZW1lbnQpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBmb2N1c1N2Z0ZvcmVpZ25PYmplY3RIYWNrKGVsZW1lbnQpXG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICBmb2N1cyhmb2N1c1RhcmdldClcbiAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1c1RhcmdldFxufVxuXG52YXIgZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZSgnPHRleHQgZm9jdXNhYmxlPVwidHJ1ZVwiPmE8L3RleHQ+JylcbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0JylcbiAgfSxcbiAgdmFsaWRhdGU6IHZhbGlkYXRlLFxufVxuXG52YXIgZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9IGdlbmVyYXRlKCc8dGV4dCB0YWJpbmRleD1cIjBcIj5hPC90ZXh0PicpXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcigndGV4dCcpXG4gIH0sXG4gIHZhbGlkYXRlOiB2YWxpZGF0ZSxcbn1cblxudmFyIGZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9IGdlbmVyYXRlKCc8dGV4dCB0YWJpbmRleD1cIi0xXCI+YTwvdGV4dD4nKVxuICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHQnKVxuICB9LFxuICB2YWxpZGF0ZTogdmFsaWRhdGUsXG59XG5cbnZhciBmb2N1c1N2Z1VzZVRhYmluZGV4ID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoXG4gICAgICBbXG4gICAgICAgICc8ZyBpZD1cImFsbHktdGVzdC10YXJnZXRcIj48YSB4bGluazpocmVmPVwiI3ZvaWRcIj48dGV4dD5saW5rPC90ZXh0PjwvYT48L2c+JyxcbiAgICAgICAgJzx1c2UgeGxpbms6aHJlZj1cIiNhbGx5LXRlc3QtdGFyZ2V0XCIgeD1cIjBcIiB5PVwiMFwiIHRhYmluZGV4PVwiLTFcIiAvPicsXG4gICAgICBdLmpvaW4oJycpXG4gICAgKVxuXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcigndXNlJylcbiAgfSxcbiAgdmFsaWRhdGU6IHZhbGlkYXRlLFxufVxuXG52YXIgZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXggPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZShcbiAgICAgICc8Zm9yZWlnbk9iamVjdCB0YWJpbmRleD1cIi0xXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgLz48L2ZvcmVpZ25PYmplY3Q+J1xuICAgIClcbiAgICAvLyBTYWZhcmkgOCdzIHF1ZXJ5U2VsZWN0b3IoKSBjYW4ndCBpZGVudGlmeSBmb3JlaWduT2JqZWN0LCBidXQgZ2V0RWxlbWVudHNCeVRhZ05hbWUoKSBjYW5cbiAgICByZXR1cm4gKFxuICAgICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWduT2JqZWN0JykgfHxcbiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ZvcmVpZ25PYmplY3QnKVswXVxuICAgIClcbiAgfSxcbiAgdmFsaWRhdGU6IHZhbGlkYXRlLFxufVxuXG4vLyBGaXJlZm94IHNlZW1zIHRvIGJlIGhhbmRsaW5nIHRoZSBTVkctZG9jdW1lbnQtaW4taWZyYW1lIGNyZWF0aW9uIGFzeW5jaHJvbm91c2x5XG4vLyBhbmQgdGhlcmVieSBwcm9kdWNlcyBhIGZhbHNlIG5lZ2F0aXZlIHRlc3QgcmVzdWx0LiBUaHVzIHRoZSB0ZXN0IGlzIHBvaW50bGVzc1xuLy8gYW5kIHdlIHJlc29ydCB0byBVQSBzbmlmZmluZyBvbmNlIGFnYWluLlxuLy8gc2VlIGh0dHA6Ly9qc2Jpbi5jb20vdnVuYWRvaG9rby8xL2VkaXQ/anMsY29uc29sZSxvdXRwdXRcblxudmFyIHJlc3VsdCQyID0gQm9vbGVhbihcbiAgcGxhdGZvcm0uaXMuR0VDS08gJiZcbiAgICB0eXBlb2YgU1ZHRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICBTVkdFbGVtZW50LnByb3RvdHlwZS5mb2N1c1xuKVxuXG5mdW5jdGlvbiBmb2N1c1N2Z0luSWZyYW1lKCkge1xuICByZXR1cm4gcmVzdWx0JDJcbn1cblxudmFyIGZvY3VzU3ZnID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJycpXG4gICAgcmV0dXJuIGVsZW1lbnQuZmlyc3RDaGlsZFxuICB9LFxuICB2YWxpZGF0ZTogdmFsaWRhdGUsXG59XG5cbi8vIEZpcmVmb3ggYWxsb3dzICphbnkqIHZhbHVlIGFuZCB0cmVhdHMgaW52YWxpZCB2YWx1ZXMgbGlrZSB0YWJpbmRleD1cIi0xXCJcbi8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbnZhciBmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICczeCcpXG4gIH0sXG59XG5cbnZhciBmb2N1c1RhYmxlID0ge1xuICBlbGVtZW50OiAndGFibGUnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50LCB3cmFwcGVyLCBfZG9jdW1lbnQpIHtcbiAgICAvLyBJRTkgaGFzIGEgcHJvYmxlbSByZXBsYWNpbmcgVEJPRFkgY29udGVudHMgd2l0aCBpbm5lckhUTUwuXG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzgwOTcwNTUvNTE1MTI0XG4gICAgLy8gZWxlbWVudC5pbm5lckhUTUwgPSAnPHRyPjx0ZD5jZWxsPC90ZD48L3RyPic7XG4gICAgdmFyIGZyYWdtZW50ID0gX2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKVxuICAgIGZyYWdtZW50LmlubmVySFRNTCA9ICc8dHI+PHRkPmNlbGw8L3RkPjwvdHI+J1xuICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpXG4gIH0sXG59XG5cbnZhciBmb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzID0ge1xuICBlbGVtZW50OiAndmlkZW8nLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGludmFsaWQgbWVkaWEgZmlsZSBjYW4gdHJpZ2dlciB3YXJuaW5nIGluIGNvbnNvbGUsIGRhdGEtdXJpIHRvIHByZXZlbnQgSFRUUCByZXF1ZXN0XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3JjJywgZ2lmKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIElFOSBtYXkgdGhyb3cgXCJFcnJvcjogTm90IGltcGxlbWVudGVkXCJcbiAgICB9XG4gIH0sXG59XG5cbi8vIGh0dHBzOi8vanNiaW4uY29tL3ZhZmFiYS8zL2VkaXQ/aHRtbCxqcyxjb25zb2xlLG91dHB1dFxudmFyIHJlc3VsdCQzID0gcGxhdGZvcm0uaXMuR0VDS08gfHwgcGxhdGZvcm0uaXMuVFJJREVOVCB8fCBwbGF0Zm9ybS5pcy5FREdFXG5cbmZ1bmN0aW9uIHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb24oKSB7XG4gIHJldHVybiByZXN1bHQkM1xufVxuXG52YXIgdGVzdENhbGxiYWNrcyA9IHtcbiAgY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcjogY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcixcbiAgZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3Q6IGZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0LFxuICBmb2N1c09iamVjdFN3ZjogZm9jdXNPYmplY3RTd2YsXG4gIGZvY3VzU3ZnSW5JZnJhbWU6IGZvY3VzU3ZnSW5JZnJhbWUsXG4gIHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb246IHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb24sXG59XG5cbnZhciB0ZXN0RGVzY3JpcHRpb25zID0ge1xuICBmb2N1c0FyZWFJbWdUYWJpbmRleDogZm9jdXNBcmVhSW1nVGFiaW5kZXgsXG4gIGZvY3VzQXJlYVRhYmluZGV4OiBmb2N1c0FyZWFUYWJpbmRleCxcbiAgZm9jdXNBcmVhV2l0aG91dEhyZWY6IGZvY3VzQXJlYVdpdGhvdXRIcmVmLFxuICBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzOiBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzLFxuICBmb2N1c0Jyb2tlbkltYWdlTWFwOiBmb2N1c0Jyb2tlbkltYWdlTWFwLFxuICBmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94OiBmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94LFxuICBmb2N1c0ZpZWxkc2V0RGlzYWJsZWQ6IGZvY3VzRmllbGRzZXREaXNhYmxlZCxcbiAgZm9jdXNGaWVsZHNldDogZm9jdXNGaWVsZHNldCxcbiAgZm9jdXNGbGV4Ym94Q29udGFpbmVyOiBmb2N1c0ZsZXhib3hDb250YWluZXIsXG4gIGZvY3VzRm9ybURpc2FibGVkOiBmb2N1c0Zvcm1EaXNhYmxlZCxcbiAgZm9jdXNJbWdJc21hcDogZm9jdXNJbWdJc21hcCxcbiAgZm9jdXNJbWdVc2VtYXBUYWJpbmRleDogZm9jdXNJbWdVc2VtYXBUYWJpbmRleCxcbiAgZm9jdXNJbkhpZGRlbklmcmFtZTogZm9jdXNJbkhpZGRlbklmcmFtZSxcbiAgZm9jdXNJbnZhbGlkVGFiaW5kZXg6IGZvY3VzSW52YWxpZFRhYmluZGV4LFxuICBmb2N1c0xhYmVsVGFiaW5kZXg6IGZvY3VzTGFiZWxUYWJpbmRleCxcbiAgZm9jdXNPYmplY3RTdmc6IGZvY3VzT2JqZWN0U3ZnLFxuICBmb2N1c09iamVjdFN2Z0hpZGRlbjogZm9jdXNPYmplY3RTdmdIaWRkZW4sXG4gIGZvY3VzUmVkaXJlY3RJbWdVc2VtYXA6IGZvY3VzUmVkaXJlY3RJbWdVc2VtYXAsXG4gIGZvY3VzUmVkaXJlY3RMZWdlbmQ6IGZvY3VzUmVkaXJlY3RMZWdlbmQsXG4gIGZvY3VzU2Nyb2xsQm9keTogZm9jdXNTY3JvbGxCb2R5LFxuICBmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdzogZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3csXG4gIGZvY3VzU2Nyb2xsQ29udGFpbmVyOiBmb2N1c1Njcm9sbENvbnRhaW5lcixcbiAgZm9jdXNTdW1tYXJ5OiBmb2N1c1N1bW1hcnksXG4gIGZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlOiBmb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSxcbiAgZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZTogZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSxcbiAgZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlOiBmb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGUsXG4gIGZvY3VzU3ZnVXNlVGFiaW5kZXg6IGZvY3VzU3ZnVXNlVGFiaW5kZXgsXG4gIGZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4OiBmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleCxcbiAgZm9jdXNTdmc6IGZvY3VzU3ZnLFxuICBmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzOiBmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzLFxuICBmb2N1c1RhYmxlOiBmb2N1c1RhYmxlLFxuICBmb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzOiBmb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzLFxufVxuXG5mdW5jdGlvbiBleGVjdXRlVGVzdHMoKSB7XG4gIHZhciByZXN1bHRzID0gZGV0ZWN0Rm9jdXModGVzdERlc2NyaXB0aW9ucylcbiAgT2JqZWN0LmtleXModGVzdENhbGxiYWNrcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmVzdWx0c1trZXldID0gdGVzdENhbGxiYWNrc1trZXldKClcbiAgfSlcblxuICByZXR1cm4gcmVzdWx0c1xufVxuXG52YXIgc3VwcG9ydHNDYWNoZSA9IG51bGxcblxuZnVuY3Rpb24gX3N1cHBvcnRzKCkge1xuICBpZiAoc3VwcG9ydHNDYWNoZSkge1xuICAgIHJldHVybiBzdXBwb3J0c0NhY2hlXG4gIH1cblxuICBzdXBwb3J0c0NhY2hlID0gY2FjaGUkMS5nZXQoKVxuICBpZiAoIXN1cHBvcnRzQ2FjaGUudGltZSkge1xuICAgIGNhY2hlJDEuc2V0KGV4ZWN1dGVUZXN0cygpKVxuICAgIHN1cHBvcnRzQ2FjaGUgPSBjYWNoZSQxLmdldCgpXG4gIH1cblxuICByZXR1cm4gc3VwcG9ydHNDYWNoZVxufVxuXG52YXIgc3VwcG9ydHMgPSB2b2lkIDBcblxuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2luZnJhc3RydWN0dXJlLmh0bWwjcnVsZXMtZm9yLXBhcnNpbmctaW50ZWdlcnNcbi8vIE5PVEU6IGFsbCBicm93c2VycyBhZ3JlZSB0byBhbGxvdyB0cmFpbGluZyBzcGFjZXMgYXMgd2VsbFxudmFyIHZhbGlkSW50ZWdlclBhdHRlcm5Ob1RyYWlsaW5nID0gL15cXHMqKC18XFwrKT9bMC05XStcXHMqJC9cbnZhciB2YWxpZEludGVnZXJQYXR0ZXJuV2l0aFRyYWlsaW5nID0gL15cXHMqKC18XFwrKT9bMC05XSsuKiQvXG5cbmZ1bmN0aW9uIGlzVmFsaWRUYWJpbmRleChjb250ZXh0KSB7XG4gIGlmICghc3VwcG9ydHMpIHtcbiAgICBzdXBwb3J0cyA9IF9zdXBwb3J0cygpXG4gIH1cblxuICB2YXIgdmFsaWRJbnRlZ2VyUGF0dGVybiA9IHN1cHBvcnRzLmZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnNcbiAgICA/IHZhbGlkSW50ZWdlclBhdHRlcm5XaXRoVHJhaWxpbmdcbiAgICA6IHZhbGlkSW50ZWdlclBhdHRlcm5Ob1RyYWlsaW5nXG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL3ZhbGlkLXRhYmluZGV4JyxcbiAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgfSlcblxuICAvLyBFZGdlIDE0IGhhcyBhIGNhcGl0YWxpemF0aW9uIHByb2JsZW0gb24gU1ZHIGVsZW1lbnRzLFxuICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvOTI4MjA1OC9cbiAgdmFyIGhhc1RhYmluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JylcbiAgdmFyIGhhc1RhYkluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYkluZGV4JylcblxuICBpZiAoIWhhc1RhYmluZGV4ICYmICFoYXNUYWJJbmRleCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gb2xkZXIgRmlyZWZveCBhbmQgSW50ZXJuZXQgRXhwbG9yZXIgZG9uJ3Qgc3VwcG9ydCB0YWJpbmRleCBvbiBTVkcgZWxlbWVudHNcbiAgdmFyIGlzU3ZnRWxlbWVudCA9XG4gICAgZWxlbWVudC5vd25lclNWR0VsZW1lbnQgfHwgZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc3ZnJ1xuICBpZiAoaXNTdmdFbGVtZW50ICYmICFzdXBwb3J0cy5mb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBAYnJvd3Nlci1pc3N1ZSBHZWNrbyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI4MDU0XG4gIGlmIChzdXBwb3J0cy5mb2N1c0ludmFsaWRUYWJpbmRleCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBhbiBlbGVtZW50IG1hdGNoZXMgdGhlIHRhYmluZGV4IHNlbGVjdG9yIGV2ZW4gaWYgaXRzIHZhbHVlIGlzIGludmFsaWRcbiAgdmFyIHRhYmluZGV4ID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoaGFzVGFiaW5kZXggPyAndGFiaW5kZXgnIDogJ3RhYkluZGV4JylcbiAgLy8gSUUxMSBwYXJzZXMgdGFiaW5kZXg9XCJcIiBhcyB0aGUgdmFsdWUgXCItMzI3NjhcIlxuICAvLyBAYnJvd3Nlci1pc3N1ZSBUcmlkZW50IGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvMTA3Mjk2NVxuICBpZiAodGFiaW5kZXggPT09ICctMzI3NjgnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gQm9vbGVhbih0YWJpbmRleCAmJiB2YWxpZEludGVnZXJQYXR0ZXJuLnRlc3QodGFiaW5kZXgpKVxufVxuXG5mdW5jdGlvbiB0YWJpbmRleFZhbHVlKGVsZW1lbnQpIHtcbiAgaWYgKCFpc1ZhbGlkVGFiaW5kZXgoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gRWRnZSAxNCBoYXMgYSBjYXBpdGFsaXphdGlvbiBwcm9ibGVtIG9uIFNWRyBlbGVtZW50cyxcbiAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvcGxhdGZvcm0vaXNzdWVzLzkyODIwNTgvXG4gIHZhciBoYXNUYWJpbmRleCA9IGVsZW1lbnQuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpXG4gIHZhciBhdHRyaWJ1dGVOYW1lID0gaGFzVGFiaW5kZXggPyAndGFiaW5kZXgnIDogJ3RhYkluZGV4J1xuXG4gIC8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbiAgdmFyIHRhYmluZGV4ID0gcGFyc2VJbnQoZWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSksIDEwKVxuICByZXR1cm4gaXNOYU4odGFiaW5kZXgpID8gLTEgOiB0YWJpbmRleFxufVxuXG4vLyB0aGlzIGlzIGEgc2hhcmVkIHV0aWxpdHkgZmlsZSBmb3IgZm9jdXMtcmVsZXZhbnQuanMgYW5kIHRhYmJhYmxlLmpzXG4vLyBzZXBhcmF0ZSB0ZXN0aW5nIG9mIHRoaXMgZmlsZSdzIGZ1bmN0aW9ucyBpcyBub3QgbmVjZXNzYXJ5LFxuLy8gYXMgdGhleSdyZSBpbXBsaWNpdGx5IHRlc3RlZCBieSB3YXkgb2YgdGhlIGNvbnN1bWVyc1xuXG5mdW5jdGlvbiBpc1VzZXJNb2RpZnlXcml0YWJsZShzdHlsZSkge1xuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvMTk5OS9XRC1jc3MzLXVzZXJpbnQtMTk5OTA5MTYjdXNlci1tb2RpZnlcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8xN1xuICB2YXIgdXNlck1vZGlmeSA9IHN0eWxlLndlYmtpdFVzZXJNb2RpZnkgfHwgJydcbiAgcmV0dXJuIEJvb2xlYW4odXNlck1vZGlmeSAmJiB1c2VyTW9kaWZ5LmluZGV4T2YoJ3dyaXRlJykgIT09IC0xKVxufVxuXG5mdW5jdGlvbiBoYXNDc3NPdmVyZmxvd1Njcm9sbChzdHlsZSkge1xuICByZXR1cm4gW1xuICAgIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93JyksXG4gICAgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnb3ZlcmZsb3cteCcpLFxuICAgIHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ292ZXJmbG93LXknKSxcbiAgXS5zb21lKGZ1bmN0aW9uIChvdmVyZmxvdykge1xuICAgIHJldHVybiBvdmVyZmxvdyA9PT0gJ2F1dG8nIHx8IG92ZXJmbG93ID09PSAnc2Nyb2xsJ1xuICB9KVxufVxuXG5mdW5jdGlvbiBoYXNDc3NEaXNwbGF5RmxleChzdHlsZSkge1xuICByZXR1cm4gc3R5bGUuZGlzcGxheS5pbmRleE9mKCdmbGV4JykgPiAtMVxufVxuXG5mdW5jdGlvbiBpc1Njcm9sbGFibGVDb250YWluZXIoZWxlbWVudCwgbm9kZU5hbWUsIHBhcmVudE5vZGVOYW1lLCBwYXJlbnRTdHlsZSkge1xuICBpZiAobm9kZU5hbWUgIT09ICdkaXYnICYmIG5vZGVOYW1lICE9PSAnc3BhbicpIHtcbiAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciBhZHZhbmNlcyBzY3JvbGxhYmxlIGNvbnRhaW5lcnMgYW5kIGJvZGllcyB0byBmb2N1c2FibGVcbiAgICAvLyBvbmx5IGlmIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBpcyA8ZGl2PiBvciA8c3Bhbj4gLSB0aGlzIGRvZXMgKm5vdCpcbiAgICAvLyBoYXBwZW4gZm9yIDxzZWN0aW9uPiwgPGFydGljbGU+LCDigKZcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChcbiAgICBwYXJlbnROb2RlTmFtZSAmJlxuICAgIHBhcmVudE5vZGVOYW1lICE9PSAnZGl2JyAmJlxuICAgIHBhcmVudE5vZGVOYW1lICE9PSAnc3BhbicgJiZcbiAgICAhaGFzQ3NzT3ZlcmZsb3dTY3JvbGwocGFyZW50U3R5bGUpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm9mZnNldEhlaWdodCA8IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IHx8XG4gICAgZWxlbWVudC5vZmZzZXRXaWR0aCA8IGVsZW1lbnQuc2Nyb2xsV2lkdGhcbiAgKVxufVxuXG52YXIgc3VwcG9ydHMkMSA9IHZvaWQgMFxuXG5mdW5jdGlvbiBpc0ZvY3VzUmVsZXZhbnRSdWxlcygpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsXG4gICAgZXhjZXB0ID1cbiAgICAgIF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBmbGV4Ym94OiBmYWxzZSxcbiAgICAgICAgICAgIHNjcm9sbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgc2hhZG93OiBmYWxzZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHRcblxuICBpZiAoIXN1cHBvcnRzJDEpIHtcbiAgICBzdXBwb3J0cyQxID0gX3N1cHBvcnRzKClcbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgbGFiZWw6ICdpcy9mb2N1cy1yZWxldmFudCcsXG4gICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgaWYgKCFleGNlcHQuc2hhZG93ICYmIGVsZW1lbnQuc2hhZG93Um9vdCkge1xuICAgIC8vIGEgU2hhZG93RE9NIGhvc3QgcmVjZWl2ZXMgZm9jdXMgd2hlbiB0aGUgZm9jdXMgbW92ZXMgdG8gaXRzIGNvbnRlbnRcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG5cbiAgaWYgKG5vZGVOYW1lID09PSAnaW5wdXQnICYmIGVsZW1lbnQudHlwZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAvLyBpbnB1dFt0eXBlPVwiaGlkZGVuXCJdIHN1cHBvcnRzLmNhbm5vdCBiZSBmb2N1c2VkXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoXG4gICAgbm9kZU5hbWUgPT09ICdpbnB1dCcgfHxcbiAgICBub2RlTmFtZSA9PT0gJ3NlbGVjdCcgfHxcbiAgICBub2RlTmFtZSA9PT0gJ2J1dHRvbicgfHxcbiAgICBub2RlTmFtZSA9PT0gJ3RleHRhcmVhJ1xuICApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnbGVnZW5kJyAmJiBzdXBwb3J0cyQxLmZvY3VzUmVkaXJlY3RMZWdlbmQpIHtcbiAgICAvLyBzcGVjaWZpY3MgZmlsdGVyZWQgaW4gaXMvZm9jdXNhYmxlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2xhYmVsJykge1xuICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnYXJlYScpIHtcbiAgICAvLyBzcGVjaWZpY3MgZmlsdGVyZWQgaW4gaXMvZm9jdXNhYmxlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2EnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdocmVmJykpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnb2JqZWN0JyAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndXNlbWFwJykpIHtcbiAgICAvLyBvYmplY3RbdXNlbWFwXSBpcyBub3QgZm9jdXNhYmxlIGluIGFueSBicm93c2VyXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgdmFyIHN2Z1R5cGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgndHlwZScpXG4gICAgaWYgKCFzdXBwb3J0cyQxLmZvY3VzT2JqZWN0U3ZnICYmIHN2Z1R5cGUgPT09ICdpbWFnZS9zdmcreG1sJykge1xuICAgICAgLy8gb2JqZWN0W3R5cGU9XCJpbWFnZS9zdmcreG1sXCJdIGlzIG5vdCBmb2N1c2FibGUgaW4gSW50ZXJuZXQgRXhwbG9yZXJcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhc3VwcG9ydHMkMS5mb2N1c09iamVjdFN3ZiAmJlxuICAgICAgc3ZnVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJ1xuICAgICkge1xuICAgICAgLy8gb2JqZWN0W3R5cGU9XCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaFwiXSBpcyBub3QgZm9jdXNhYmxlIGluIEludGVybmV0IEV4cGxvcmVyIDlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2lmcmFtZScgfHwgbm9kZU5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgLy8gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXJzXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2VtYmVkJyB8fCBub2RlTmFtZSA9PT0gJ2tleWdlbicpIHtcbiAgICAvLyBlbWJlZCBpcyBjb25zaWRlcmVkIGZvY3VzLXJlbGV2YW50IGJ1dCBub3QgZm9jdXNhYmxlXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvODJcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSkge1xuICAgIC8vIGFsc28gc2VlIENTUyBwcm9wZXJ0eSB1c2VyLW1vZGlmeSBiZWxvd1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoXG4gICAgbm9kZU5hbWUgPT09ICdhdWRpbycgJiZcbiAgICAoc3VwcG9ydHMkMS5mb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250cm9scycpKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKFxuICAgIG5vZGVOYW1lID09PSAndmlkZW8nICYmXG4gICAgKHN1cHBvcnRzJDEuZm9jdXNWaWRlb1dpdGhvdXRDb250cm9scyB8fCBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udHJvbHMnKSlcbiAgKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChzdXBwb3J0cyQxLmZvY3VzU3VtbWFyeSAmJiBub2RlTmFtZSA9PT0gJ3N1bW1hcnknKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHZhciB2YWxpZFRhYmluZGV4ID0gaXNWYWxpZFRhYmluZGV4KGVsZW1lbnQpXG5cbiAgaWYgKG5vZGVOYW1lID09PSAnaW1nJyAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndXNlbWFwJykpIHtcbiAgICAvLyBHZWNrbywgVHJpZGVudCBhbmQgRWRnZSBkbyBub3QgYWxsb3cgYW4gaW1hZ2Ugd2l0aCBhbiBpbWFnZSBtYXAgYW5kIHRhYmluZGV4IHRvIGJlIGZvY3VzZWQsXG4gICAgLy8gaXQgYXBwZWFycyB0aGUgdGFiaW5kZXggaXMgb3ZlcnJ1bGVkIHNvIGZvY3VzIGlzIHN0aWxsIGZvcndhcmRlZCB0byB0aGUgPG1hcD5cbiAgICByZXR1cm4gKFxuICAgICAgKHZhbGlkVGFiaW5kZXggJiYgc3VwcG9ydHMkMS5mb2N1c0ltZ1VzZW1hcFRhYmluZGV4KSB8fFxuICAgICAgc3VwcG9ydHMkMS5mb2N1c1JlZGlyZWN0SW1nVXNlbWFwXG4gICAgKVxuICB9XG5cbiAgaWYgKHN1cHBvcnRzJDEuZm9jdXNUYWJsZSAmJiAobm9kZU5hbWUgPT09ICd0YWJsZScgfHwgbm9kZU5hbWUgPT09ICd0ZCcpKSB7XG4gICAgLy8gSUUxMC0xMSBzdXBwb3J0cy5jYW4gZm9jdXMgPHRhYmxlPiBhbmQgPHRkPlxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoc3VwcG9ydHMkMS5mb2N1c0ZpZWxkc2V0ICYmIG5vZGVOYW1lID09PSAnZmllbGRzZXQnKSB7XG4gICAgLy8gSUUxMC0xMSBzdXBwb3J0cy5jYW4gZm9jdXMgPGZpZWxkc2V0PlxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgaXNTdmdFbGVtZW50ID0gbm9kZU5hbWUgPT09ICdzdmcnXG4gIHZhciBpc1N2Z0NvbnRlbnQgPSBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudFxuICB2YXIgZm9jdXNhYmxlQXR0cmlidXRlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2ZvY3VzYWJsZScpXG4gIHZhciB0YWJpbmRleCA9IHRhYmluZGV4VmFsdWUoZWxlbWVudClcblxuICBpZiAoXG4gICAgbm9kZU5hbWUgPT09ICd1c2UnICYmXG4gICAgdGFiaW5kZXggIT09IG51bGwgJiZcbiAgICAhc3VwcG9ydHMkMS5mb2N1c1N2Z1VzZVRhYmluZGV4XG4gICkge1xuICAgIC8vIDx1c2U+IGNhbm5vdCBiZSBtYWRlIGZvY3VzYWJsZSBieSBhZGRpbmcgYSB0YWJpbmRleCBhdHRyaWJ1dGUgYW55d2hlcmUgYnV0IEJsaW5rIGFuZCBXZWJLaXRcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2ZvcmVpZ25vYmplY3QnKSB7XG4gICAgLy8gPHVzZT4gY2FuIG9ubHkgYmUgbWFkZSBmb2N1c2FibGUgaW4gQmxpbmsgYW5kIFdlYktpdFxuICAgIHJldHVybiB0YWJpbmRleCAhPT0gbnVsbCAmJiBzdXBwb3J0cyQxLmZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4XG4gIH1cblxuICBpZiAoZWxlbWVudE1hdGNoZXMoZWxlbWVudCwgJ3N2ZyBhJykgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoXG4gICAgKGlzU3ZnRWxlbWVudCB8fCBpc1N2Z0NvbnRlbnQpICYmXG4gICAgZWxlbWVudC5mb2N1cyAmJlxuICAgICFzdXBwb3J0cyQxLmZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSAmJlxuICAgIHRhYmluZGV4IDwgMFxuICApIHtcbiAgICAvLyBGaXJlZm94IDUxIGFuZCA1MiB0cmVhdCBhbnkgbmF0aXZlbHkgdGFiYmFibGUgU1ZHIGVsZW1lbnQgd2l0aFxuICAgIC8vIHRhYmluZGV4PVwiLTFcIiBhcyB0YWJiYWJsZSBhbmQgZXZlcnl0aGluZyBlbHNlIGFzIGluZXJ0XG4gICAgLy8gc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDIzNDBcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChpc1N2Z0VsZW1lbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdmFsaWRUYWJpbmRleCB8fFxuICAgICAgc3VwcG9ydHMkMS5mb2N1c1N2ZyB8fFxuICAgICAgc3VwcG9ydHMkMS5mb2N1c1N2Z0luSWZyYW1lIHx8XG4gICAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciB1bmRlcnN0YW5kcyB0aGUgZm9jdXNhYmxlIGF0dHJpYnV0ZSBpbnRyb2R1Y2VkIGluIFNWRyBUaW55IDEuMlxuICAgICAgQm9vbGVhbihcbiAgICAgICAgc3VwcG9ydHMkMS5mb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSAmJlxuICAgICAgICAgIGZvY3VzYWJsZUF0dHJpYnV0ZSAmJlxuICAgICAgICAgIGZvY3VzYWJsZUF0dHJpYnV0ZSA9PT0gJ3RydWUnXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgaWYgKGlzU3ZnQ29udGVudCkge1xuICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUgJiYgdmFsaWRUYWJpbmRleCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSkge1xuICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgdW5kZXJzdGFuZHMgdGhlIGZvY3VzYWJsZSBhdHRyaWJ1dGUgaW50cm9kdWNlZCBpbiBTVkcgVGlueSAxLjJcbiAgICAgIHJldHVybiBmb2N1c2FibGVBdHRyaWJ1dGUgPT09ICd0cnVlJ1xuICAgIH1cbiAgfVxuXG4gIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwjc2VxdWVudGlhbC1mb2N1cy1uYXZpZ2F0aW9uLWFuZC10aGUtdGFiaW5kZXgtYXR0cmlidXRlXG4gIGlmICh2YWxpZFRhYmluZGV4KSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpXG4gIGlmIChpc1VzZXJNb2RpZnlXcml0YWJsZShzdHlsZSkpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKFxuICAgIHN1cHBvcnRzJDEuZm9jdXNJbWdJc21hcCAmJlxuICAgIG5vZGVOYW1lID09PSAnaW1nJyAmJlxuICAgIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdpc21hcCcpXG4gICkge1xuICAgIC8vIElFMTAtMTEgY29uc2lkZXJzIHRoZSA8aW1nPiBpbiA8YSBocmVmPjxpbWcgaXNtYXA+IGZvY3VzYWJsZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjBcbiAgICB2YXIgaGFzTGlua1BhcmVudCA9IGdldFBhcmVudHMoeyBjb250ZXh0OiBlbGVtZW50IH0pLnNvbWUoXG4gICAgICBmdW5jdGlvbiAocGFyZW50KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhJyAmJiBwYXJlbnQuaGFzQXR0cmlidXRlKCdocmVmJylcbiAgICAgICAgKVxuICAgICAgfVxuICAgIClcblxuICAgIGlmIChoYXNMaW5rUGFyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbiAgaWYgKCFleGNlcHQuc2Nyb2xsYWJsZSAmJiBzdXBwb3J0cyQxLmZvY3VzU2Nyb2xsQ29udGFpbmVyKSB7XG4gICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3cpIHtcbiAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIGRvZXMgd2lsbCBjb25zaWRlciB0aGUgc2Nyb2xsYWJsZSBhcmVhIGZvY3VzYWJsZVxuICAgICAgLy8gaWYgdGhlIGVsZW1lbnQgaXMgYSA8ZGl2PiBvciBhIDxzcGFuPiBhbmQgaXQgaXMgaW4gZmFjdCBzY3JvbGxhYmxlLFxuICAgICAgLy8gcmVnYXJkbGVzcyBvZiB0aGUgQ1NTIG92ZXJmbG93IHByb3BlcnR5XG4gICAgICBpZiAoaXNTY3JvbGxhYmxlQ29udGFpbmVyKGVsZW1lbnQsIG5vZGVOYW1lKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaGFzQ3NzT3ZlcmZsb3dTY3JvbGwoc3R5bGUpKSB7XG4gICAgICAvLyBGaXJlZm94IHJlcXVpcmVzIHByb3BlciBvdmVyZmxvdyBzZXR0aW5nLCBJRSBkb2VzIG5vdCBuZWNlc3NhcmlseVxuICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQ1NTL292ZXJmbG93XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChcbiAgICAhZXhjZXB0LmZsZXhib3ggJiZcbiAgICBzdXBwb3J0cyQxLmZvY3VzRmxleGJveENvbnRhaW5lciAmJlxuICAgIGhhc0Nzc0Rpc3BsYXlGbGV4KHN0eWxlKVxuICApIHtcbiAgICAvLyBlbGVtZW50cyB3aXRoIGRpc3BsYXk6ZmxleCBhcmUgZm9jdXNhYmxlIGluIElFMTAtMTFcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgdmFyIHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudFxuICBpZiAoIWV4Y2VwdC5zY3JvbGxhYmxlICYmIHBhcmVudCkge1xuICAgIHZhciBwYXJlbnROb2RlTmFtZSA9IHBhcmVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgdmFyIHBhcmVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50LCBudWxsKVxuICAgIGlmIChcbiAgICAgIHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxCb2R5ICYmXG4gICAgICBpc1Njcm9sbGFibGVDb250YWluZXIocGFyZW50LCBub2RlTmFtZSwgcGFyZW50Tm9kZU5hbWUsIHBhcmVudFN0eWxlKVxuICAgICkge1xuICAgICAgLy8gc2Nyb2xsYWJsZSBib2RpZXMgYXJlIGZvY3VzYWJsZSBJbnRlcm5ldCBFeHBsb3JlclxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICAvLyBDaGlsZHJlbiBvZiBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBkaXNwbGF5OmZsZXggYXJlIGZvY3VzYWJsZSBpbiBJRTEwLTExXG4gICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveCkge1xuICAgICAgaWYgKGhhc0Nzc0Rpc3BsYXlGbGV4KHBhcmVudFN0eWxlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIE5PVEU6IGVsZW1lbnRzIG1hcmtlZCBhcyBpbmVydCBhcmUgbm90IGZvY3VzYWJsZSxcbiAgLy8gYnV0IHRoYXQgcHJvcGVydHkgaXMgbm90IGV4cG9zZWQgdG8gdGhlIERPTVxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZWRpdGluZy5odG1sI2luZXJ0XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8vIGJpbmQgZXhjZXB0aW9ucyB0byBhbiBpdGVyYXRvciBjYWxsYmFja1xuaXNGb2N1c1JlbGV2YW50UnVsZXMuZXhjZXB0ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZXhjZXB0ID1cbiAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9XG5cbiAgdmFyIGlzRm9jdXNSZWxldmFudCA9IGZ1bmN0aW9uIGlzRm9jdXNSZWxldmFudChjb250ZXh0KSB7XG4gICAgcmV0dXJuIGlzRm9jdXNSZWxldmFudFJ1bGVzKHtcbiAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICBleGNlcHQ6IGV4Y2VwdCxcbiAgICB9KVxuICB9XG5cbiAgaXNGb2N1c1JlbGV2YW50LnJ1bGVzID0gaXNGb2N1c1JlbGV2YW50UnVsZXNcbiAgcmV0dXJuIGlzRm9jdXNSZWxldmFudFxufVxuXG4vLyBwcm92aWRlIGlzRm9jdXNSZWxldmFudChjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNGb2N1c1JlbGV2YW50ID0gaXNGb2N1c1JlbGV2YW50UnVsZXMuZXhjZXB0KHt9KVxuXG5mdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIGNhbGxiYWNrKSB7XG4gIC8vIGF0dGVtcHQgdG8gdXNlIG5hdGl2ZSBvciBwb2x5ZmlsbGVkIEFycmF5I2ZpbmRJbmRleCBmaXJzdFxuICBpZiAoYXJyYXkuZmluZEluZGV4KSB7XG4gICAgcmV0dXJuIGFycmF5LmZpbmRJbmRleChjYWxsYmFjaylcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGhcblxuICAvLyBzaG9ydGN1dCBpZiB0aGUgYXJyYXkgaXMgZW1wdHlcbiAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAtMVxuICB9XG5cbiAgLy8gb3RoZXJ3aXNlIGxvb3Agb3ZlciBhcnJheVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGNhbGxiYWNrKGFycmF5W2ldLCBpLCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC0xXG59XG5cbmZ1bmN0aW9uIGdldENvbnRlbnREb2N1bWVudChub2RlKSB7XG4gIHRyeSB7XG4gICAgLy8gd29ya3Mgb24gPG9iamVjdD4gYW5kIDxpZnJhbWU+XG4gICAgcmV0dXJuIChcbiAgICAgIG5vZGUuY29udGVudERvY3VtZW50IHx8XG4gICAgICAvLyB3b3JrcyBvbiA8b2JqZWN0PiBhbmQgPGlmcmFtZT5cbiAgICAgIChub2RlLmNvbnRlbnRXaW5kb3cgJiYgbm9kZS5jb250ZW50V2luZG93LmRvY3VtZW50KSB8fFxuICAgICAgLy8gd29ya3Mgb24gPG9iamVjdD4gYW5kIDxpZnJhbWU+IHRoYXQgY29udGFpbiBTVkdcbiAgICAgIChub2RlLmdldFNWR0RvY3VtZW50ICYmIG5vZGUuZ2V0U1ZHRG9jdW1lbnQoKSkgfHxcbiAgICAgIG51bGxcbiAgICApXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBTZWN1cml0eUVycm9yOiBGYWlsZWQgdG8gcmVhZCB0aGUgJ2NvbnRlbnREb2N1bWVudCcgcHJvcGVydHkgZnJvbSAnSFRNTE9iamVjdEVsZW1lbnQnXG4gICAgLy8gYWxzbyBJRSBtYXkgdGhyb3cgbWVtYmVyIG5vdCBmb3VuZCBleGNlcHRpb24gZS5nLiBvbiA8b2JqZWN0IHR5cGU9XCJpbWFnZS9wbmdcIj5cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFdpbmRvdyhub2RlKSB7XG4gIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChub2RlKVxuICByZXR1cm4gX2RvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvd1xufVxuXG52YXIgc2hhZG93UHJlZml4ID0gdm9pZCAwXG5cbmZ1bmN0aW9uIHNlbGVjdEluU2hhZG93cyhzZWxlY3Rvcikge1xuICBpZiAodHlwZW9mIHNoYWRvd1ByZWZpeCAhPT0gJ3N0cmluZycpIHtcbiAgICB2YXIgb3BlcmF0b3IgPSBjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yKClcbiAgICBpZiAob3BlcmF0b3IpIHtcbiAgICAgIHNoYWRvd1ByZWZpeCA9ICcsIGh0bWwgJyArIG9wZXJhdG9yICsgJyAnXG4gICAgfVxuICB9XG5cbiAgaWYgKCFzaGFkb3dQcmVmaXgpIHtcbiAgICByZXR1cm4gc2VsZWN0b3JcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgc2VsZWN0b3IgK1xuICAgIHNoYWRvd1ByZWZpeCArXG4gICAgc2VsZWN0b3JcbiAgICAgIC5yZXBsYWNlKC9cXHMqLFxccyovZywgJywnKVxuICAgICAgLnNwbGl0KCcsJylcbiAgICAgIC5qb2luKHNoYWRvd1ByZWZpeClcbiAgKVxufVxuXG52YXIgc2VsZWN0b3IgPSB2b2lkIDBcblxuZnVuY3Rpb24gZmluZERvY3VtZW50SG9zdEVsZW1lbnQoX3dpbmRvdykge1xuICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgc2VsZWN0b3IgPSBzZWxlY3RJblNoYWRvd3MoJ29iamVjdCwgaWZyYW1lJylcbiAgfVxuXG4gIGlmIChfd2luZG93Ll9mcmFtZUVsZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBfd2luZG93Ll9mcmFtZUVsZW1lbnRcbiAgfVxuXG4gIF93aW5kb3cuX2ZyYW1lRWxlbWVudCA9IG51bGxcblxuICB2YXIgcG90ZW50aWFsSG9zdHMgPSBfd2luZG93LnBhcmVudC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKVxuICA7W10uc29tZS5jYWxsKHBvdGVudGlhbEhvc3RzLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHZhciBfZG9jdW1lbnQgPSBnZXRDb250ZW50RG9jdW1lbnQoZWxlbWVudClcbiAgICBpZiAoX2RvY3VtZW50ICE9PSBfd2luZG93LmRvY3VtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBfd2luZG93Ll9mcmFtZUVsZW1lbnQgPSBlbGVtZW50XG4gICAgcmV0dXJuIHRydWVcbiAgfSlcblxuICByZXR1cm4gX3dpbmRvdy5fZnJhbWVFbGVtZW50XG59XG5cbmZ1bmN0aW9uIGdldEZyYW1lRWxlbWVudChlbGVtZW50KSB7XG4gIHZhciBfd2luZG93ID0gZ2V0V2luZG93KGVsZW1lbnQpXG4gIGlmICghX3dpbmRvdy5wYXJlbnQgfHwgX3dpbmRvdy5wYXJlbnQgPT09IF93aW5kb3cpIHtcbiAgICAvLyBpZiB0aGVyZSBpcyBubyBwYXJlbnQgYnJvd3NpbmcgY29udGV4dCxcbiAgICAvLyB3ZSdyZSBub3QgZ29pbmcgdG8gZ2V0IGEgZnJhbWVFbGVtZW50IGVpdGhlciB3YXlcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1dpbmRvdy9mcmFtZUVsZW1lbnRcbiAgICAvLyBkb2VzIG5vdCB3b3JrIHdpdGhpbiA8ZW1iZWQ+IGFueXdoZXJlLCBhbmQgbm90IHdpdGhpbiBpbiA8b2JqZWN0PiBpbiBJRVxuICAgIHJldHVybiBfd2luZG93LmZyYW1lRWxlbWVudCB8fCBmaW5kRG9jdW1lbnRIb3N0RWxlbWVudChfd2luZG93KVxuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvcmVuZGVyaW5nLmh0bWwjYmVpbmctcmVuZGVyZWRcbi8vIDxhcmVhPiBpcyBub3QgcmVuZGVyZWQsIGJ1dCB3ZSAqY29uc2lkZXIqIGl0IHZpc2libGUgdG8gc2ltcGxmaXkgdGhpcyBmdW5jdGlvbidzIHVzYWdlXG52YXIgbm90UmVuZGVyZWRFbGVtZW50c1BhdHRlcm4gPSAvXihhcmVhKSQvXG5cbmZ1bmN0aW9uIGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgcHJvcGVydHkpIHtcbiAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHkpXG59XG5cbmZ1bmN0aW9uIG5vdERpc3BsYXllZChfcGF0aCkge1xuICByZXR1cm4gX3BhdGguc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIC8vIGRpc3BsYXk6bm9uZSBpcyBub3QgdmlzaWJsZSAob3B0aW1pemVkIGF3YXkgYXQgbGF5b3V0KVxuICAgIHJldHVybiBjb21wdXRlZFN0eWxlKGVsZW1lbnQsICdkaXNwbGF5JykgPT09ICdub25lJ1xuICB9KVxufVxuXG5mdW5jdGlvbiBub3RWaXNpYmxlKF9wYXRoKSB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LXVpL2Jsb2IvbWFzdGVyL3VpL2NvcmUuanMjTDEwOS1MMTE0XG4gIC8vIE5PVEU6IGEgbmVzdGVkIGVsZW1lbnQgY2FuIHJldmVyc2UgdmlzaWJpbGl0eTpoaWRkZW58Y29sbGFwc2UgYnkgZXhwbGljaXRseSBzZXR0aW5nIHZpc2liaWxpdHk6dmlzaWJsZVxuICAvLyBOT1RFOiB2aXNpYmlsaXR5IGNhbiBiZSBbXCJcIiwgXCJ2aXNpYmxlXCIsIFwiaGlkZGVuXCIsIFwiY29sbGFwc2VcIl1cbiAgdmFyIGhpZGRlbiA9IGZpbmRJbmRleChfcGF0aCwgZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICB2YXIgdmlzaWJpbGl0eSA9IGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgJ3Zpc2liaWxpdHknKVxuICAgIHJldHVybiB2aXNpYmlsaXR5ID09PSAnaGlkZGVuJyB8fCB2aXNpYmlsaXR5ID09PSAnY29sbGFwc2UnXG4gIH0pXG5cbiAgaWYgKGhpZGRlbiA9PT0gLTEpIHtcbiAgICAvLyB0aGVyZSBpcyBubyBoaWRkZW4gZWxlbWVudFxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdmFyIHZpc2libGUgPSBmaW5kSW5kZXgoX3BhdGgsIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgJ3Zpc2liaWxpdHknKSA9PT0gJ3Zpc2libGUnXG4gIH0pXG5cbiAgaWYgKHZpc2libGUgPT09IC0xKSB7XG4gICAgLy8gdGhlcmUgaXMgbm8gdmlzaWJsZSBlbGVtZW50IChidXQgYSBoaWRkZW4gZWxlbWVudClcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGhpZGRlbiA8IHZpc2libGUpIHtcbiAgICAvLyB0aGVyZSBpcyBhIGhpZGRlbiBlbGVtZW50IGFuZCBpdCdzIGNsb3NlciB0aGFuIHRoZSBmaXJzdCB2aXNpYmxlIGVsZW1lbnRcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLy8gdGhlcmUgbWF5IGJlIGEgaGlkZGVuIGVsZW1lbnQsIGJ1dCB0aGUgY2xvc2VzdCBlbGVtZW50IGlzIHZpc2libGVcbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIGNvbGxhcHNlZFBhcmVudChfcGF0aCkge1xuICB2YXIgb2Zmc2V0ID0gMVxuICBpZiAoX3BhdGhbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3N1bW1hcnknKSB7XG4gICAgb2Zmc2V0ID0gMlxuICB9XG5cbiAgcmV0dXJuIF9wYXRoLnNsaWNlKG9mZnNldCkuc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIC8vIFwiY29udGVudCBjaGlsZHJlblwiIG9mIGEgY2xvc2VkIGRldGFpbHMgZWxlbWVudCBhcmUgbm90IHZpc2libGVcbiAgICByZXR1cm4gKFxuICAgICAgZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnZGV0YWlscycgJiYgZWxlbWVudC5vcGVuID09PSBmYWxzZVxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gaXNWaXNpYmxlUnVsZXMoKSB7XG4gIHZhciBfcmVmID1cbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgY29udGV4dCA9IF9yZWYuY29udGV4dCxcbiAgICBfcmVmJGV4Y2VwdCA9IF9yZWYuZXhjZXB0LFxuICAgIGV4Y2VwdCA9XG4gICAgICBfcmVmJGV4Y2VwdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8ge1xuICAgICAgICAgICAgbm90UmVuZGVyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgY3NzRGlzcGxheTogZmFsc2UsXG4gICAgICAgICAgICBjc3NWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICAgICAgICAgIGRldGFpbHNFbGVtZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGJyb3dzaW5nQ29udGV4dDogZmFsc2UsXG4gICAgICAgICAgfVxuICAgICAgICA6IF9yZWYkZXhjZXB0XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL3Zpc2libGUnLFxuICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICBpZiAoIWV4Y2VwdC5ub3RSZW5kZXJlZCAmJiBub3RSZW5kZXJlZEVsZW1lbnRzUGF0dGVybi50ZXN0KG5vZGVOYW1lKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgX3BhdGggPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KVxuXG4gIC8vIGluIEludGVybmV0IEV4cGxvcmVyIDxhdWRpbz4gaGFzIGEgZGVmYXVsdCBkaXNwbGF5OiBub25lLCB3aGVyZSBvdGhlcnMgaGF2ZSBkaXNwbGF5OiBpbmxpbmVcbiAgLy8gYnV0IElFIGFsbG93cyBmb2N1c2luZyA8YXVkaW8gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj4sIGJ1dCBub3QgPGRpdiBkaXNwbGF5Om5vbmU+PGF1ZGlvPlxuICAvLyB0aGlzIGlzIGlycmVsZXZhbnQgdG8gb3RoZXIgYnJvd3NlcnMsIGFzIHRoZSBjb250cm9scyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgdG8gbWFrZSA8YXVkaW8+IGZvY3VzYWJsZVxuICB2YXIgaXNBdWRpb1dpdGhvdXRDb250cm9scyA9XG4gICAgbm9kZU5hbWUgPT09ICdhdWRpbycgJiYgIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250cm9scycpXG4gIGlmIChcbiAgICAhZXhjZXB0LmNzc0Rpc3BsYXkgJiZcbiAgICBub3REaXNwbGF5ZWQoaXNBdWRpb1dpdGhvdXRDb250cm9scyA/IF9wYXRoLnNsaWNlKDEpIDogX3BhdGgpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKCFleGNlcHQuY3NzVmlzaWJpbGl0eSAmJiBub3RWaXNpYmxlKF9wYXRoKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKCFleGNlcHQuZGV0YWlsc0VsZW1lbnQgJiYgY29sbGFwc2VkUGFyZW50KF9wYXRoKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKCFleGNlcHQuYnJvd3NpbmdDb250ZXh0KSB7XG4gICAgLy8gZWxlbWVudHMgd2l0aGluIGEgYnJvd3NpbmcgY29udGV4dCBhcmUgYWZmZWN0ZWQgYnkgdGhlXG4gICAgLy8gYnJvd3NpbmcgY29udGV4dCBob3N0IGVsZW1lbnQncyB2aXNpYmlsaXR5IGFuZCB0YWJpbmRleFxuICAgIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudClcbiAgICB2YXIgX2lzVmlzaWJsZSA9IGlzVmlzaWJsZVJ1bGVzLmV4Y2VwdChleGNlcHQpXG4gICAgaWYgKGZyYW1lRWxlbWVudCAmJiAhX2lzVmlzaWJsZShmcmFtZUVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzVmlzaWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGV4Y2VwdCA9XG4gICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fVxuXG4gIHZhciBpc1Zpc2libGUgPSBmdW5jdGlvbiBpc1Zpc2libGUoY29udGV4dCkge1xuICAgIHJldHVybiBpc1Zpc2libGVSdWxlcyh7XG4gICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgZXhjZXB0OiBleGNlcHQsXG4gICAgfSlcbiAgfVxuXG4gIGlzVmlzaWJsZS5ydWxlcyA9IGlzVmlzaWJsZVJ1bGVzXG4gIHJldHVybiBpc1Zpc2libGVcbn1cblxuLy8gcHJvdmlkZSBpc1Zpc2libGUoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzVmlzaWJsZSA9IGlzVmlzaWJsZVJ1bGVzLmV4Y2VwdCh7fSlcblxuZnVuY3Rpb24gZ2V0TWFwQnlOYW1lKG5hbWUsIF9kb2N1bWVudCkge1xuICAvLyBhcHBhcmVudGx5IGdldEVsZW1lbnRzQnlOYW1lKCkgYWxzbyBjb25zaWRlcnMgaWQgYXR0cmlidXRlIGluIElFICYgb3BlcmFcbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0RvY3VtZW50L2dldEVsZW1lbnRzQnlOYW1lXG4gIHZhciBtYXAgPSBfZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWFwW25hbWU9XCInICsgY3NzRXNjYXBlKG5hbWUpICsgJ1wiXScpXG4gIHJldHVybiBtYXAgfHwgbnVsbFxufVxuXG5mdW5jdGlvbiBnZXRJbWFnZU9mQXJlYShlbGVtZW50KSB7XG4gIHZhciBtYXAgPSBlbGVtZW50LnBhcmVudEVsZW1lbnRcblxuICBpZiAoIW1hcC5uYW1lIHx8IG1hcC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAnbWFwJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBOT1RFOiBpbWFnZSBtYXBzIGNhbiBhbHNvIGJlIGFwcGxpZWQgdG8gPG9iamVjdD4gd2l0aCBpbWFnZSBjb250ZW50LFxuICAvLyBidXQgbm8gYnJvd3NlciBzdXBwb3J0cyB0aGlzIGF0IHRoZSBtb21lbnRcblxuICAvLyBIVE1MNSBzcGVjaWZpZXMgSFRNTE1hcEVsZW1lbnQuaW1hZ2VzIHRvIGJlIGFuIEhUTUxDb2xsZWN0aW9uIG9mIGFsbFxuICAvLyA8aW1nPiBhbmQgPG9iamVjdD4gcmVmZXJlbmNpbmcgdGhlIDxtYXA+IGVsZW1lbnQsIGJ1dCBubyBicm93c2VyIGltcGxlbWVudHMgdGhpc1xuICAvLyAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lbWJlZGRlZC1jb250ZW50LTAuaHRtbCN0aGUtbWFwLWVsZW1lbnRcbiAgLy8gICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTE1hcEVsZW1lbnRcbiAgLy8gdGhlIGltYWdlIG11c3QgYmUgdmFsaWQgYW5kIGxvYWRlZCBmb3IgdGhlIG1hcCB0byB0YWtlIGVmZmVjdFxuICB2YXIgX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQoZWxlbWVudClcbiAgcmV0dXJuIChcbiAgICBfZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW1nW3VzZW1hcD1cIiMnICsgY3NzRXNjYXBlKG1hcC5uYW1lKSArICdcIl0nKSB8fFxuICAgIG51bGxcbiAgKVxufVxuXG52YXIgc3VwcG9ydHMkMiA9IHZvaWQgMFxuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvbWFwXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS11aS9ibG9iL21hc3Rlci91aS9jb3JlLmpzI0w4OC1MMTA3XG5mdW5jdGlvbiBpc1ZhbGlkQXJlYShjb250ZXh0KSB7XG4gIGlmICghc3VwcG9ydHMkMikge1xuICAgIHN1cHBvcnRzJDIgPSBfc3VwcG9ydHMoKVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL3ZhbGlkLWFyZWEnLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gIGlmIChub2RlTmFtZSAhPT0gJ2FyZWEnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB2YXIgaGFzVGFiaW5kZXggPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKVxuICBpZiAoIXN1cHBvcnRzJDIuZm9jdXNBcmVhVGFiaW5kZXggJiYgaGFzVGFiaW5kZXgpIHtcbiAgICAvLyBCbGluayBhbmQgV2ViS2l0IGRvIG5vdCBjb25zaWRlciA8YXJlYSB0YWJpbmRleD1cIi0xXCIgaHJlZj1cIiN2b2lkXCI+IGZvY3VzYWJsZVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdmFyIGltZyA9IGdldEltYWdlT2ZBcmVhKGVsZW1lbnQpXG4gIGlmICghaW1nIHx8ICFpc1Zpc2libGUoaW1nKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gRmlyZWZveCBvbmx5IGFsbG93cyBmdWxseSBsb2FkZWQgaW1hZ2VzIHRvIHJlZmVyZW5jZSBpbWFnZSBtYXBzXG4gIC8vIGh0dHBzOi8vc3RlcmVvY2hyby5tZS9pZGVhcy9kZXRlY3RpbmctYnJva2VuLWltYWdlcy1qc1xuICBpZiAoXG4gICAgIXN1cHBvcnRzJDIuZm9jdXNCcm9rZW5JbWFnZU1hcCAmJlxuICAgICghaW1nLmNvbXBsZXRlIHx8XG4gICAgICAhaW1nLm5hdHVyYWxIZWlnaHQgfHxcbiAgICAgIGltZy5vZmZzZXRXaWR0aCA8PSAwIHx8XG4gICAgICBpbWcub2Zmc2V0SGVpZ2h0IDw9IDApXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gRmlyZWZveCBzdXBwb3J0cy5jYW4gZm9jdXMgYXJlYSBlbGVtZW50cyBldmVuIGlmIHRoZXkgZG9uJ3QgaGF2ZSBhbiBocmVmIGF0dHJpYnV0ZVxuICBpZiAoIXN1cHBvcnRzJDIuZm9jdXNBcmVhV2l0aG91dEhyZWYgJiYgIWVsZW1lbnQuaHJlZikge1xuICAgIC8vIEludGVybmV0IGV4cGxvcmVyIHN1cHBvcnRzLmNhbiBmb2N1cyBhcmVhIGVsZW1lbnRzIHdpdGhvdXQgaHJlZiBpZiBlaXRoZXJcbiAgICAvLyB0aGUgYXJlYSBlbGVtZW50IG9yIHRoZSBpbWFnZSBlbGVtZW50IGhhcyBhIHRhYmluZGV4IGF0dHJpYnV0ZVxuICAgIHJldHVybiAoXG4gICAgICAoc3VwcG9ydHMkMi5mb2N1c0FyZWFUYWJpbmRleCAmJiBoYXNUYWJpbmRleCkgfHxcbiAgICAgIChzdXBwb3J0cyQyLmZvY3VzQXJlYUltZ1RhYmluZGV4ICYmIGltZy5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JykpXG4gICAgKVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxuICB2YXIgY2hpbGRPZkludGVyYWN0aXZlID0gZ2V0UGFyZW50cyh7IGNvbnRleHQ6IGltZyB9KVxuICAgIC5zbGljZSgxKVxuICAgIC5zb21lKGZ1bmN0aW9uIChfZWxlbWVudCkge1xuICAgICAgdmFyIG5hbWUgPSBfZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICByZXR1cm4gbmFtZSA9PT0gJ2J1dHRvbicgfHwgbmFtZSA9PT0gJ2EnXG4gICAgfSlcblxuICBpZiAoY2hpbGRPZkludGVyYWN0aXZlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG52YXIgc3VwcG9ydHMkMyA9IHZvaWQgMFxuXG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZGlzYWJsZWQtZWxlbWVudHMuaHRtbCNjb25jZXB0LWVsZW1lbnQtZGlzYWJsZWRcbnZhciBkaXNhYmxlZEVsZW1lbnRzUGF0dGVybiA9IHZvaWQgMFxudmFyIGRpc2FibGVkRWxlbWVudHMgPSB7XG4gIGlucHV0OiB0cnVlLFxuICBzZWxlY3Q6IHRydWUsXG4gIHRleHRhcmVhOiB0cnVlLFxuICBidXR0b246IHRydWUsXG4gIGZpZWxkc2V0OiB0cnVlLFxuICBmb3JtOiB0cnVlLFxufVxuXG5mdW5jdGlvbiBpc05hdGl2ZURpc2FibGVkU3VwcG9ydGVkKGNvbnRleHQpIHtcbiAgaWYgKCFzdXBwb3J0cyQzKSB7XG4gICAgc3VwcG9ydHMkMyA9IF9zdXBwb3J0cygpXG5cbiAgICBpZiAoc3VwcG9ydHMkMy5mb2N1c0ZpZWxkc2V0RGlzYWJsZWQpIHtcbiAgICAgIGRlbGV0ZSBkaXNhYmxlZEVsZW1lbnRzLmZpZWxkc2V0XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnRzJDMuZm9jdXNGb3JtRGlzYWJsZWQpIHtcbiAgICAgIGRlbGV0ZSBkaXNhYmxlZEVsZW1lbnRzLmZvcm1cbiAgICB9XG5cbiAgICBkaXNhYmxlZEVsZW1lbnRzUGF0dGVybiA9IG5ldyBSZWdFeHAoXG4gICAgICAnXignICsgT2JqZWN0LmtleXMoZGlzYWJsZWRFbGVtZW50cykuam9pbignfCcpICsgJykkJ1xuICAgIClcbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgbGFiZWw6ICdpcy9uYXRpdmUtZGlzYWJsZWQtc3VwcG9ydGVkJyxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICByZXR1cm4gQm9vbGVhbihkaXNhYmxlZEVsZW1lbnRzUGF0dGVybi50ZXN0KG5vZGVOYW1lKSlcbn1cblxudmFyIHN1cHBvcnRzJDQgPSB2b2lkIDBcblxuZnVuY3Rpb24gaXNEaXNhYmxlZEZpZWxkc2V0KGVsZW1lbnQpIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gIHJldHVybiBub2RlTmFtZSA9PT0gJ2ZpZWxkc2V0JyAmJiBlbGVtZW50LmRpc2FibGVkXG59XG5cbmZ1bmN0aW9uIGlzRGlzYWJsZWRGb3JtKGVsZW1lbnQpIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gIHJldHVybiBub2RlTmFtZSA9PT0gJ2Zvcm0nICYmIGVsZW1lbnQuZGlzYWJsZWRcbn1cblxuZnVuY3Rpb24gaXNEaXNhYmxlZChjb250ZXh0KSB7XG4gIGlmICghc3VwcG9ydHMkNCkge1xuICAgIHN1cHBvcnRzJDQgPSBfc3VwcG9ydHMoKVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL2Rpc2FibGVkJyxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1hbGx5LWRpc2FibGVkJykpIHtcbiAgICAvLyB0cmVhdCBhbGx5J3MgZWxlbWVudC9kaXNhYmxlZCBsaWtlIHRoZSBET00gbmF0aXZlIGVsZW1lbnQuZGlzYWJsZWRcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKCFpc05hdGl2ZURpc2FibGVkU3VwcG9ydGVkKGVsZW1lbnQpKSB7XG4gICAgLy8gbm9uLWZvcm0gZWxlbWVudHMgZG8gbm90IHN1cHBvcnQgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKGVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAvLyB0aGUgZWxlbWVudCBpdHNlbGYgaXMgZGlzYWJsZWRcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgdmFyIHBhcmVudHMgPSBnZXRQYXJlbnRzKHsgY29udGV4dDogZWxlbWVudCB9KVxuICBpZiAocGFyZW50cy5zb21lKGlzRGlzYWJsZWRGaWVsZHNldCkpIHtcbiAgICAvLyBhIHBhcmVudGFsIDxmaWVsZHNldD4gaXMgZGlzYWJsZCBhbmQgaW5oZXJpdHMgdGhlIHN0YXRlIG9udG8gdGhpcyBlbGVtZW50XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICghc3VwcG9ydHMkNC5mb2N1c0Zvcm1EaXNhYmxlZCAmJiBwYXJlbnRzLnNvbWUoaXNEaXNhYmxlZEZvcm0pKSB7XG4gICAgLy8gYSBwYXJlbnRhbCA8Zm9ybT4gaXMgZGlzYWJsZCBhbmQgaW5oZXJpdHMgdGhlIHN0YXRlIG9udG8gdGhpcyBlbGVtZW50XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBpc09ubHlUYWJiYWJsZVJ1bGVzKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCxcbiAgICBleGNlcHQgPVxuICAgICAgX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIG9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQ6IGZhbHNlLFxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgfVxuICAgICAgICA6IF9yZWYkZXhjZXB0XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL29ubHktdGFiYmFibGUnLFxuICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIGlmICghZXhjZXB0LnZpc2libGUgJiYgIWlzVmlzaWJsZShlbGVtZW50KSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKFxuICAgICFleGNlcHQub25seUZvY3VzYWJsZUJyb3dzaW5nQ29udGV4dCAmJlxuICAgIChwbGF0Zm9ybS5pcy5HRUNLTyB8fCBwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpXG4gICkge1xuICAgIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudClcbiAgICBpZiAoZnJhbWVFbGVtZW50KSB7XG4gICAgICBpZiAodGFiaW5kZXhWYWx1ZShmcmFtZUVsZW1lbnQpIDwgMCkge1xuICAgICAgICAvLyBpZnJhbWVbdGFiaW5kZXg9XCItMVwiXSBhbmQgb2JqZWN0W3RhYmluZGV4PVwiLTFcIl0gaW5oZXJpdCB0aGVcbiAgICAgICAgLy8gdGFiYmFibGUgZGVtb3Rpb24gb250byBlbGVtZW50cyBvZiB0aGVpciBicm93c2luZyBjb250ZXh0c1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgdmFyIHRhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2xhYmVsJyAmJiBwbGF0Zm9ybS5pcy5HRUNLTykge1xuICAgIC8vIEZpcmVmb3ggY2Fubm90IGZvY3VzLCBidXQgdGFiIHRvOiBsYWJlbFt0YWJpbmRleD0wXVxuICAgIHJldHVybiB0YWJpbmRleCAhPT0gbnVsbCAmJiB0YWJpbmRleCA+PSAwXG4gIH1cblxuICAvLyBTVkcgRWxlbWVudHMgd2VyZSBrZXlib2FyZCBmb2N1c2FibGUgYnV0IG5vdCBzY3JpcHQgZm9jdXNhYmxlIGJlZm9yZSBGaXJlZm94IDUxLlxuICAvLyBGaXJlZm94IDUxIGFkZGVkIHRoZSBmb2N1cyBtYW5hZ2VtZW50IERPTSBBUEkgKC5mb2N1cyBhbmQgLmJsdXIpIHRvIFNWR0VsZW1lbnQsXG4gIC8vIHNlZSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzg2NTRcbiAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPICYmIGVsZW1lbnQub3duZXJTVkdFbGVtZW50ICYmICFlbGVtZW50LmZvY3VzKSB7XG4gICAgaWYgKG5vZGVOYW1lID09PSAnYScgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKSkge1xuICAgICAgLy8gYW55IGZvY3VzYWJsZSBjaGlsZCBvZiA8c3ZnPiBjYW5ub3QgYmUgZm9jdXNlZCwgYnV0IHRhYmJlZCB0b1xuICAgICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8vIGJpbmQgZXhjZXB0aW9ucyB0byBhbiBpdGVyYXRvciBjYWxsYmFja1xuaXNPbmx5VGFiYmFibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBleGNlcHQgPVxuICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge31cblxuICB2YXIgaXNPbmx5VGFiYmFibGUgPSBmdW5jdGlvbiBpc09ubHlUYWJiYWJsZShjb250ZXh0KSB7XG4gICAgcmV0dXJuIGlzT25seVRhYmJhYmxlUnVsZXMoe1xuICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgIGV4Y2VwdDogZXhjZXB0LFxuICAgIH0pXG4gIH1cblxuICBpc09ubHlUYWJiYWJsZS5ydWxlcyA9IGlzT25seVRhYmJhYmxlUnVsZXNcbiAgcmV0dXJuIGlzT25seVRhYmJhYmxlXG59XG5cbi8vIHByb3ZpZGUgaXNPbmx5VGFiYmFibGUoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzT25seVRhYmJhYmxlID0gaXNPbmx5VGFiYmFibGVSdWxlcy5leGNlcHQoe30pXG5cbnZhciBzdXBwb3J0cyQ1ID0gdm9pZCAwXG5cbmZ1bmN0aW9uIGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgaWYgKG5vZGVOYW1lID09PSAnZW1iZWQnIHx8IG5vZGVOYW1lID09PSAna2V5Z2VuJykge1xuICAgIC8vIGVtYmVkIGlzIGNvbnNpZGVyZWQgZm9jdXMtcmVsZXZhbnQgYnV0IG5vdCBmb2N1c2FibGVcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy84MlxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgX3RhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KVxuICBpZiAoZWxlbWVudC5zaGFkb3dSb290ICYmIF90YWJpbmRleCA9PT0gbnVsbCkge1xuICAgIC8vIFNoYWRvd0RPTSBob3N0IGVsZW1lbnRzICptYXkqIHJlY2VpdmUgZm9jdXNcbiAgICAvLyBldmVuIHRob3VnaCB0aGV5IGFyZSBub3QgY29uc2lkZXJlZCBmb2N1YWJsZVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdsYWJlbCcpIHtcbiAgICAvLyA8bGFiZWwgdGFiaW5kZXg9XCIwXCI+IGlzIG9ubHkgdGFiYmFibGUgaW4gRmlyZWZveCwgbm90IHNjcmlwdC1mb2N1c2FibGVcbiAgICAvLyB0aGVyZSdzIG5vIHdheSB0byBtYWtlIGFuIGVsZW1lbnQgZm9jdXNhYmxlIG90aGVyIHRoYW4gYnkgYWRkaW5nIGEgdGFiaW5kZXgsXG4gICAgLy8gYW5kIGZvY3VzIGJlaGF2aW9yIG9mIHRoZSBsYWJlbCBlbGVtZW50IHNlZW1zIGhhcmQtd2lyZWQgdG8gaWdub3JlIHRhYmluZGV4XG4gICAgLy8gaW4gc29tZSBicm93c2VycyAobGlrZSBHZWNrbywgQmxpbmsgYW5kIFdlYktpdClcbiAgICByZXR1cm4gIXN1cHBvcnRzJDUuZm9jdXNMYWJlbFRhYmluZGV4IHx8IF90YWJpbmRleCA9PT0gbnVsbFxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnbGVnZW5kJykge1xuICAgIHJldHVybiBfdGFiaW5kZXggPT09IG51bGxcbiAgfVxuXG4gIGlmIChcbiAgICBzdXBwb3J0cyQ1LmZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlICYmXG4gICAgKGVsZW1lbnQub3duZXJTVkdFbGVtZW50IHx8IG5vZGVOYW1lID09PSAnc3ZnJylcbiAgKSB7XG4gICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgdW5kZXJzdGFuZHMgdGhlIGZvY3VzYWJsZSBhdHRyaWJ1dGUgaW50cm9kdWNlZCBpbiBTVkcgVGlueSAxLjJcbiAgICB2YXIgZm9jdXNhYmxlQXR0cmlidXRlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2ZvY3VzYWJsZScpXG4gICAgcmV0dXJuIGZvY3VzYWJsZUF0dHJpYnV0ZSAmJiBmb2N1c2FibGVBdHRyaWJ1dGUgPT09ICdmYWxzZSdcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2ltZycgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3VzZW1hcCcpKSB7XG4gICAgLy8gR2Vja28sIFRyaWRlbnQgYW5kIEVkZ2UgZG8gbm90IGFsbG93IGFuIGltYWdlIHdpdGggYW4gaW1hZ2UgbWFwIGFuZCB0YWJpbmRleCB0byBiZSBmb2N1c2VkLFxuICAgIC8vIGl0IGFwcGVhcnMgdGhlIHRhYmluZGV4IGlzIG92ZXJydWxlZCBzbyBmb2N1cyBpcyBzdGlsbCBmb3J3YXJkZWQgdG8gdGhlIDxtYXA+XG4gICAgcmV0dXJuIF90YWJpbmRleCA9PT0gbnVsbCB8fCAhc3VwcG9ydHMkNS5mb2N1c0ltZ1VzZW1hcFRhYmluZGV4XG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdhcmVhJykge1xuICAgIC8vIGFsbCA8YXJlYT5zIGFyZSBjb25zaWRlcmVkIHJlbGV2YW50LFxuICAgIC8vIGJ1dCBvbmx5IHRoZSB2YWxpZCA8YXJlYT5zIGFyZSBmb2N1c2FibGVcbiAgICByZXR1cm4gIWlzVmFsaWRBcmVhKGVsZW1lbnQpXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gaXNGb2N1c2FibGVSdWxlcygpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsXG4gICAgZXhjZXB0ID1cbiAgICAgIF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIG9ubHlUYWJiYWJsZTogZmFsc2UsXG4gICAgICAgICAgfVxuICAgICAgICA6IF9yZWYkZXhjZXB0XG5cbiAgaWYgKCFzdXBwb3J0cyQ1KSB7XG4gICAgc3VwcG9ydHMkNSA9IF9zdXBwb3J0cygpXG4gIH1cblxuICB2YXIgX2lzT25seVRhYmJhYmxlID0gaXNPbmx5VGFiYmFibGUucnVsZXMuZXhjZXB0KHtcbiAgICBvbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0OiB0cnVlLFxuICAgIHZpc2libGU6IGV4Y2VwdC52aXNpYmxlLFxuICB9KVxuXG4gIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgbGFiZWw6ICdpcy9mb2N1c2FibGUnLFxuICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIHZhciBmb2N1c1JlbGV2YW50ID0gaXNGb2N1c1JlbGV2YW50LnJ1bGVzKHtcbiAgICBjb250ZXh0OiBlbGVtZW50LFxuICAgIGV4Y2VwdDogZXhjZXB0LFxuICB9KVxuXG4gIGlmICghZm9jdXNSZWxldmFudCB8fCBpc09ubHlGb2N1c1JlbGV2YW50KGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoIWV4Y2VwdC5kaXNhYmxlZCAmJiBpc0Rpc2FibGVkKGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoIWV4Y2VwdC5vbmx5VGFiYmFibGUgJiYgX2lzT25seVRhYmJhYmxlKGVsZW1lbnQpKSB7XG4gICAgLy8gc29tZSBlbGVtZW50cyBtYXkgYmUga2V5Ym9hcmQgZm9jdXNhYmxlLCBidXQgbm90IHNjcmlwdCBmb2N1c2FibGVcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCByZW5kZXJlZCwgY2Fubm90IGJlIGZvY3VzZWRcbiAgaWYgKCFleGNlcHQudmlzaWJsZSkge1xuICAgIHZhciB2aXNpYmlsaXR5T3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgICBleGNlcHQ6IHt9LFxuICAgIH1cblxuICAgIGlmIChzdXBwb3J0cyQ1LmZvY3VzSW5IaWRkZW5JZnJhbWUpIHtcbiAgICAgIC8vIFdlYktpdCBhbmQgQmxpbmsgY2FuIGZvY3VzIGNvbnRlbnQgaW4gaGlkZGVuIDxpZnJhbWU+IGFuZCA8b2JqZWN0PlxuICAgICAgdmlzaWJpbGl0eU9wdGlvbnMuZXhjZXB0LmJyb3dzaW5nQ29udGV4dCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydHMkNS5mb2N1c09iamVjdFN2Z0hpZGRlbikge1xuICAgICAgLy8gQmxpbmsgYWxsb3dzIGZvY3VzaW5nIHRoZSBvYmplY3QgZWxlbWVudCwgZXZlbiBpZiBpdCBoYXMgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgLy8gQGJyb3dzZXItaXNzdWUgQmxpbmsgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTU4NjE5MVxuICAgICAgdmFyIF9ub2RlTmFtZTIgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgIGlmIChfbm9kZU5hbWUyID09PSAnb2JqZWN0Jykge1xuICAgICAgICB2aXNpYmlsaXR5T3B0aW9ucy5leGNlcHQuY3NzVmlzaWJpbGl0eSA9IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWlzVmlzaWJsZS5ydWxlcyh2aXNpYmlsaXR5T3B0aW9ucykpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudClcbiAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgIHZhciBfbm9kZU5hbWUgPSBmcmFtZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICAgIGlmIChfbm9kZU5hbWUgPT09ICdvYmplY3QnICYmICFzdXBwb3J0cyQ1LmZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0KSB7XG4gICAgICBpZiAoIWZyYW1lRWxlbWVudC5vZmZzZXRXaWR0aCB8fCAhZnJhbWVFbGVtZW50Lm9mZnNldEhlaWdodCkge1xuICAgICAgICAvLyBXZWJLaXQgY2FuIG5vdCBmb2N1cyBjb250ZW50IGluIDxvYmplY3Q+IGlmIGl0IGRvZXNuJ3QgaGF2ZSBkaW1lbnNpb25zXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICBpZiAoXG4gICAgbm9kZU5hbWUgPT09ICdzdmcnICYmXG4gICAgc3VwcG9ydHMkNS5mb2N1c1N2Z0luSWZyYW1lICYmXG4gICAgIWZyYW1lRWxlbWVudCAmJlxuICAgIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0YWJpbmRleCcpID09PSBudWxsXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuLy8gYmluZCBleGNlcHRpb25zIHRvIGFuIGl0ZXJhdG9yIGNhbGxiYWNrXG5pc0ZvY3VzYWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGV4Y2VwdCA9XG4gICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fVxuXG4gIHZhciBpc0ZvY3VzYWJsZSA9IGZ1bmN0aW9uIGlzRm9jdXNhYmxlKGNvbnRleHQpIHtcbiAgICByZXR1cm4gaXNGb2N1c2FibGVSdWxlcyh7XG4gICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgZXhjZXB0OiBleGNlcHQsXG4gICAgfSlcbiAgfVxuXG4gIGlzRm9jdXNhYmxlLnJ1bGVzID0gaXNGb2N1c2FibGVSdWxlc1xuICByZXR1cm4gaXNGb2N1c2FibGVcbn1cblxuLy8gcHJvdmlkZSBpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzRm9jdXNhYmxlID0gaXNGb2N1c2FibGVSdWxlcy5leGNlcHQoe30pXG5cbmZ1bmN0aW9uIGNyZWF0ZUZpbHRlcihjb25kaXRpb24pIHtcbiAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Ob2RlRmlsdGVyXG4gIHZhciBmaWx0ZXIgPSBmdW5jdGlvbiBmaWx0ZXIobm9kZSkge1xuICAgIGlmIChub2RlLnNoYWRvd1Jvb3QpIHtcbiAgICAgIC8vIHJldHVybiBTaGFkb3dSb290IGVsZW1lbnRzIHJlZ2FyZGxlc3Mgb2YgdGhlbSBiZWluZyBmb2N1c2FibGUsXG4gICAgICAvLyBzbyB0aGV5IGNhbiBiZSB3YWxrZWQgcmVjdXJzaXZlbHkgbGF0ZXJcbiAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFRcbiAgICB9XG5cbiAgICBpZiAoY29uZGl0aW9uKG5vZGUpKSB7XG4gICAgICAvLyBmaW5kcyBlbGVtZW50cyB0aGF0IGNvdWxkIGhhdmUgYmVlbiBmb3VuZCBieSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKClcbiAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFRcbiAgICB9XG5cbiAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfU0tJUFxuICB9XG4gIC8vIElFIHJlcXVpcmVzIGEgZnVuY3Rpb24sIEJyb3dzZXJzIHJlcXVpcmUge2FjY2VwdE5vZGU6IGZ1bmN0aW9ufVxuICAvLyBzZWUgaHR0cDovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8yNjA3LWZpbmRpbmctaHRtbC1jb21tZW50LW5vZGVzLWluLXRoZS1kb20tdXNpbmctdHJlZXdhbGtlci5odG1cbiAgZmlsdGVyLmFjY2VwdE5vZGUgPSBmaWx0ZXJcbiAgcmV0dXJuIGZpbHRlclxufVxuXG52YXIgUG9zc2libHlGb2N1c2FibGVGaWx0ZXIgPSBjcmVhdGVGaWx0ZXIoaXNGb2N1c1JlbGV2YW50KVxuXG5mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZVN0cmljdCgpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCxcbiAgICBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLFxuICAgIHN0cmF0ZWd5ID0gX3JlZi5zdHJhdGVneVxuXG4gIGlmICghY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgfVxuXG4gIHZhciBfaXNGb2N1c2FibGUgPSBpc0ZvY3VzYWJsZS5ydWxlcy5leGNlcHQoe1xuICAgIG9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgfSlcblxuICB2YXIgX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQoY29udGV4dClcbiAgLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Eb2N1bWVudC9jcmVhdGVUcmVlV2Fsa2VyXG4gIHZhciB3YWxrZXIgPSBfZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihcbiAgICAvLyByb290IGVsZW1lbnQgdG8gc3RhcnQgc2VhcmNoIGluXG4gICAgY29udGV4dCxcbiAgICAvLyBlbGVtZW50IHR5cGUgZmlsdGVyXG4gICAgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsXG4gICAgLy8gY3VzdG9tIE5vZGVGaWx0ZXIgZmlsdGVyXG4gICAgc3RyYXRlZ3kgPT09ICdhbGwnID8gUG9zc2libHlGb2N1c2FibGVGaWx0ZXIgOiBjcmVhdGVGaWx0ZXIoX2lzRm9jdXNhYmxlKSxcbiAgICAvLyBkZXByZWNhdGVkLCBidXQgSUUgcmVxdWlyZXMgaXRcbiAgICBmYWxzZVxuICApXG5cbiAgdmFyIGxpc3QgPSBbXVxuXG4gIHdoaWxlICh3YWxrZXIubmV4dE5vZGUoKSkge1xuICAgIGlmICh3YWxrZXIuY3VycmVudE5vZGUuc2hhZG93Um9vdCkge1xuICAgICAgaWYgKF9pc0ZvY3VzYWJsZSh3YWxrZXIuY3VycmVudE5vZGUpKSB7XG4gICAgICAgIGxpc3QucHVzaCh3YWxrZXIuY3VycmVudE5vZGUpXG4gICAgICB9XG5cbiAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChcbiAgICAgICAgcXVlcnlGb2N1c2FibGVTdHJpY3Qoe1xuICAgICAgICAgIGNvbnRleHQ6IHdhbGtlci5jdXJyZW50Tm9kZS5zaGFkb3dSb290LFxuICAgICAgICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgICAgICAgc3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0LnB1c2god2Fsa2VyLmN1cnJlbnROb2RlKVxuICAgIH1cbiAgfVxuXG4gIC8vIGFkZCBjb250ZXh0IGlmIHJlcXVlc3RlZCBhbmQgZm9jdXNhYmxlXG4gIGlmIChpbmNsdWRlQ29udGV4dCkge1xuICAgIGlmIChzdHJhdGVneSA9PT0gJ2FsbCcpIHtcbiAgICAgIGlmIChpc0ZvY3VzUmVsZXZhbnQoY29udGV4dCkpIHtcbiAgICAgICAgbGlzdC51bnNoaWZ0KGNvbnRleHQpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfaXNGb2N1c2FibGUoY29udGV4dCkpIHtcbiAgICAgIGxpc3QudW5zaGlmdChjb250ZXh0KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBsaXN0XG59XG5cbi8vIE5PVEU6IHRoaXMgc2VsZWN0b3IgTVVTVCAqbmV2ZXIqIGJlIHVzZWQgZGlyZWN0bHksXG52YXIgc3VwcG9ydHMkNiA9IHZvaWQgMFxuXG52YXIgc2VsZWN0b3IkMSA9IHZvaWQgMFxuXG5mdW5jdGlvbiBzZWxlY3RvciQyKCkge1xuICBpZiAoIXN1cHBvcnRzJDYpIHtcbiAgICBzdXBwb3J0cyQ2ID0gX3N1cHBvcnRzKClcbiAgfVxuXG4gIGlmICh0eXBlb2Ygc2VsZWN0b3IkMSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gc2VsZWN0b3IkMVxuICB9XG5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VkaXRpbmcuaHRtbCNzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGVcbiAgc2VsZWN0b3IkMSA9XG4gICAgJycgK1xuICAgIC8vIElFMTEgc3VwcG9ydHMuY2FuIGZvY3VzIDx0YWJsZT4gYW5kIDx0ZD5cbiAgICAoc3VwcG9ydHMkNi5mb2N1c1RhYmxlID8gJ3RhYmxlLCB0ZCwnIDogJycpICtcbiAgICAvLyBJRTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8ZmllbGRzZXQ+XG4gICAgKHN1cHBvcnRzJDYuZm9jdXNGaWVsZHNldCA/ICdmaWVsZHNldCwnIDogJycpICtcbiAgICAvLyBOYW1lc3BhY2UgcHJvYmxlbXMgb2YgW3hsaW5rOmhyZWZdIGV4cGxhaW5lZCBpbiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjMwNDc4ODgvNTE1MTI0XG4gICAgLy8gc3ZnIGFbKnxocmVmXSBkb2VzIG5vdCBtYXRjaCBpbiBJRTksIGJ1dCBzaW5jZSB3ZSdyZSBmaWx0ZXJpbmdcbiAgICAvLyB0aHJvdWdoIGlzL2ZvY3VzYWJsZSB3ZSBjYW4gaW5jbHVkZSBhbGwgPGE+IGZyb20gU1ZHXG4gICAgJ3N2ZyBhLCcgK1xuICAgIC8vIG1heSBiZWhhdmUgYXMgJ3N2Zywgc3ZnICosJyBpbiBjaHJvbWUgYXMgKmV2ZXJ5KiBzdmcgZWxlbWVudCB3aXRoIGEgZm9jdXMgZXZlbnQgbGlzdGVuZXIgaXMgZm9jdXNhYmxlXG4gICAgLy8gbmF2aWdhdGlvbmFsIGVsZW1lbnRzXG4gICAgJ2FbaHJlZl0sJyArXG4gICAgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy92YWxpZC1hcmVhLmpzXG4gICAgJ2FyZWFbaHJlZl0sJyArXG4gICAgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy9kaXNhYmxlZC5qc1xuICAgICdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYnV0dG9uLCcgK1xuICAgIC8vIGJyb3dzaW5nIGNvbnRleHQgY29udGFpbmVyc1xuICAgICdpZnJhbWUsIG9iamVjdCwgZW1iZWQsJyArXG4gICAgLy8gaW50ZXJhY3RpdmUgY29udGVudFxuICAgICdrZXlnZW4sJyArXG4gICAgKHN1cHBvcnRzJDYuZm9jdXNBdWRpb1dpdGhvdXRDb250cm9scyA/ICdhdWRpbywnIDogJ2F1ZGlvW2NvbnRyb2xzXSwnKSArXG4gICAgKHN1cHBvcnRzJDYuZm9jdXNWaWRlb1dpdGhvdXRDb250cm9scyA/ICd2aWRlbywnIDogJ3ZpZGVvW2NvbnRyb2xzXSwnKSArXG4gICAgKHN1cHBvcnRzJDYuZm9jdXNTdW1tYXJ5ID8gJ3N1bW1hcnksJyA6ICcnKSArXG4gICAgLy8gdmFsaWRpdHkgZGV0ZXJtaW5lZCBieSBpcy92YWxpZC10YWJpbmRleC5qc1xuICAgICdbdGFiaW5kZXhdLCcgK1xuICAgIC8vIGVkaXRpbmcgaG9zdHNcbiAgICAnW2NvbnRlbnRlZGl0YWJsZV0nXG5cbiAgLy8gd2hlcmUgU2hhZG93RE9NIGlzIHN1cHBvcnRlZCwgd2UgYWxzbyB3YW50IHRoZSBzaGFkb3dlZCBmb2N1c2FibGUgZWxlbWVudHMgKHZpYSBcIj4+PlwiIG9yIFwiL2RlZXAvXCIpXG4gIHNlbGVjdG9yJDEgPSBzZWxlY3RJblNoYWRvd3Moc2VsZWN0b3IkMSlcblxuICByZXR1cm4gc2VsZWN0b3IkMVxufVxuXG5mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZVF1aWNrKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LFxuICAgIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGVcblxuICB2YXIgX3NlbGVjdG9yID0gc2VsZWN0b3IkMigpXG4gIHZhciBlbGVtZW50cyA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbChfc2VsZWN0b3IpXG4gIC8vIHRoZSBzZWxlY3RvciBwb3RlbnRpYWxseSBtYXRjaGVzIG1vcmUgdGhhbiByZWFsbHkgaXMgZm9jdXNhYmxlXG5cbiAgdmFyIF9pc0ZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgb25seVRhYmJhYmxlOiBpbmNsdWRlT25seVRhYmJhYmxlLFxuICB9KVxuXG4gIHZhciByZXN1bHQgPSBbXS5maWx0ZXIuY2FsbChlbGVtZW50cywgX2lzRm9jdXNhYmxlKVxuXG4gIC8vIGFkZCBjb250ZXh0IGlmIHJlcXVlc3RlZCBhbmQgZm9jdXNhYmxlXG4gIGlmIChpbmNsdWRlQ29udGV4dCAmJiBfaXNGb2N1c2FibGUoY29udGV4dCkpIHtcbiAgICByZXN1bHQudW5zaGlmdChjb250ZXh0KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZSgpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCxcbiAgICBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLFxuICAgIF9yZWYkc3RyYXRlZ3kgPSBfcmVmLnN0cmF0ZWd5LFxuICAgIHN0cmF0ZWd5ID0gX3JlZiRzdHJhdGVneSA9PT0gdW5kZWZpbmVkID8gJ3F1aWNrJyA6IF9yZWYkc3RyYXRlZ3lcblxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAncXVlcnkvZm9jdXNhYmxlJyxcbiAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgZGVmYXVsdFRvRG9jdW1lbnQ6IHRydWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgfSlcblxuICB2YXIgb3B0aW9ucyA9IHtcbiAgICBjb250ZXh0OiBlbGVtZW50LFxuICAgIGluY2x1ZGVDb250ZXh0OiBpbmNsdWRlQ29udGV4dCxcbiAgICBpbmNsdWRlT25seVRhYmJhYmxlOiBpbmNsdWRlT25seVRhYmJhYmxlLFxuICAgIHN0cmF0ZWd5OiBzdHJhdGVneSxcbiAgfVxuXG4gIGlmIChzdHJhdGVneSA9PT0gJ3F1aWNrJykge1xuICAgIHJldHVybiBxdWVyeUZvY3VzYWJsZVF1aWNrKG9wdGlvbnMpXG4gIH0gZWxzZSBpZiAoc3RyYXRlZ3kgPT09ICdzdHJpY3QnIHx8IHN0cmF0ZWd5ID09PSAnYWxsJykge1xuICAgIHJldHVybiBxdWVyeUZvY3VzYWJsZVN0cmljdChvcHRpb25zKVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAncXVlcnkvZm9jdXNhYmxlIHJlcXVpcmVzIG9wdGlvbi5zdHJhdGVneSB0byBiZSBvbmUgb2YgW1wicXVpY2tcIiwgXCJzdHJpY3RcIiwgXCJhbGxcIl0nXG4gIClcbn1cblxudmFyIHN1cHBvcnRzJDcgPSB2b2lkIDBcblxuLy8gSW50ZXJuZXQgRXhwbG9yZXIgMTEgY29uc2lkZXJzIGZpZWxkc2V0LCB0YWJsZSwgdGQgZm9jdXNhYmxlLCBidXQgbm90IHRhYmJhYmxlXG4vLyBJbnRlcm5ldCBFeHBsb3JlciAxMSBjb25zaWRlcnMgYm9keSB0byBoYXZlIFt0YWJpbmRleD0wXSwgYnV0IGRvZXMgbm90IGFsbG93IHRhYmJpbmcgdG8gaXRcbnZhciBmb2N1c2FibGVFbGVtZW50c1BhdHRlcm4gPSAvXihmaWVsZHNldHx0YWJsZXx0ZHxib2R5KSQvXG5cbmZ1bmN0aW9uIGlzVGFiYmFibGVSdWxlcygpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsXG4gICAgZXhjZXB0ID1cbiAgICAgIF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBmbGV4Ym94OiBmYWxzZSxcbiAgICAgICAgICAgIHNjcm9sbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgc2hhZG93OiBmYWxzZSxcbiAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgb25seVRhYmJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHRcblxuICBpZiAoIXN1cHBvcnRzJDcpIHtcbiAgICBzdXBwb3J0cyQ3ID0gX3N1cHBvcnRzKClcbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgbGFiZWw6ICdpcy90YWJiYWJsZScsXG4gICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgaWYgKHBsYXRmb3JtLmlzLkJMSU5LICYmIHBsYXRmb3JtLmlzLkFORFJPSUQgJiYgcGxhdGZvcm0ubWFqb3JWZXJzaW9uID4gNDIpIHtcbiAgICAvLyBFeHRlcm5hbCBrZXlib2FyZCBzdXBwb3J0IHdvcmtlZCBmaW5lIGluIENIcm9tZSA0MiwgYnV0IHN0b3BwZWQgd29ya2luZyBpbiBDaHJvbWUgNDUuXG4gICAgLy8gVGhlIG9uLXNjcmVlbiBrZXlib2FyZCBkb2VzIG5vdCBwcm92aWRlIGEgd2F5IHRvIGZvY3VzIHRoZSBuZXh0IGlucHV0IGVsZW1lbnQgKGxpa2UgaU9TIGRvZXMpLlxuICAgIC8vIFRoYXQgbGVhdmVzIHVzIHdpdGggbm8gb3B0aW9uIHRvIGFkdmFuY2UgZm9jdXMgYnkga2V5Ym9hcmQsIGVyZ28gbm90aGluZyBpcyB0YWJiYWJsZSAoa2V5Ym9hcmQgZm9jdXNhYmxlKS5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHZhciBmcmFtZUVsZW1lbnQgPSBnZXRGcmFtZUVsZW1lbnQoZWxlbWVudClcbiAgaWYgKGZyYW1lRWxlbWVudCkge1xuICAgIGlmIChwbGF0Zm9ybS5pcy5XRUJLSVQgJiYgcGxhdGZvcm0uaXMuSU9TKSB7XG4gICAgICAvLyBpT1Mgb25seSBkb2VzIG5vdCBjb25zaWRlciBhbnl0aGluZyBmcm9tIGFub3RoZXIgYnJvd3NpbmcgY29udGV4dCBrZXlib2FyZCBmb2N1c2FibGVcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIC8vIGlmcmFtZVt0YWJpbmRleD1cIi0xXCJdIGFuZCBvYmplY3RbdGFiaW5kZXg9XCItMVwiXSBpbmhlcml0IHRoZVxuICAgIC8vIHRhYmJhYmxlIGRlbW90aW9uIG9udG8gZWxlbWVudHMgb2YgdGhlaXIgYnJvd3NpbmcgY29udGV4dHNcbiAgICBpZiAodGFiaW5kZXhWYWx1ZShmcmFtZUVsZW1lbnQpIDwgMCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWV4Y2VwdC52aXNpYmxlICYmXG4gICAgICAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuV0VCS0lUKSAmJlxuICAgICAgIWlzVmlzaWJsZShmcmFtZUVsZW1lbnQpXG4gICAgKSB7XG4gICAgICAvLyBCbGluayBhbmQgV2ViS2l0IGNvbnNpZGVyIGVsZW1lbnRzIGluIGhpZGRlbiBicm93c2luZyBjb250ZXh0cyBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIC8vIFdlYmtpdCBhbmQgQmxpbmsgZG9uJ3QgY29uc2lkZXIgYW55dGhpbmcgaW4gPG9iamVjdD4gdGFiYmFibGVcbiAgICAvLyBCbGluayBmaXhlZCB0aGF0IGZpeGVkIGluIENocm9tZSA1NCwgT3BlcmEgNDFcbiAgICB2YXIgZnJhbWVOb2RlTmFtZSA9IGZyYW1lRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKGZyYW1lTm9kZU5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgICB2YXIgaXNGaXhlZEJsaW5rID1cbiAgICAgICAgKHBsYXRmb3JtLm5hbWUgPT09ICdDaHJvbWUnICYmIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA+PSA1NCkgfHxcbiAgICAgICAgKHBsYXRmb3JtLm5hbWUgPT09ICdPcGVyYScgJiYgcGxhdGZvcm0ubWFqb3JWZXJzaW9uID49IDQxKVxuXG4gICAgICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUIHx8IChwbGF0Zm9ybS5pcy5CTElOSyAmJiAhaXNGaXhlZEJsaW5rKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgdmFyIF90YWJpbmRleCA9IHRhYmluZGV4VmFsdWUoZWxlbWVudClcbiAgdmFyIHRhYmluZGV4ID0gX3RhYmluZGV4ID09PSBudWxsID8gbnVsbCA6IF90YWJpbmRleCA+PSAwXG5cbiAgaWYgKFxuICAgIHBsYXRmb3JtLmlzLkVER0UgJiZcbiAgICBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPj0gMTQgJiZcbiAgICBmcmFtZUVsZW1lbnQgJiZcbiAgICBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCAmJlxuICAgIF90YWJpbmRleCA8IDBcbiAgKSB7XG4gICAgLy8gRWRnZSAxNCsgY29uc2lkZXJzIDxhIHhsaW5rOmhyZWY9XCLigKZcIiB0YWJpbmRleD1cIi0xXCI+IGtleWJvYXJkIGZvY3VzYWJsZVxuICAgIC8vIGlmIHRoZSBlbGVtZW50IGlzIGluIGEgbmVzdGVkIGJyb3dzaW5nIGNvbnRleHRcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgdmFyIGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmUgPSB0YWJpbmRleCAhPT0gZmFsc2VcbiAgdmFyIGhhc1RhYmJhYmxlVGFiaW5kZXggPSBfdGFiaW5kZXggIT09IG51bGwgJiYgX3RhYmluZGV4ID49IDBcblxuICAvLyBOT1RFOiBGaXJlZm94IDMxIGNvbnNpZGVycyBbY29udGVudGVkaXRhYmxlXSB0byBoYXZlIFt0YWJpbmRleD0tMV0sIGJ1dCBhbGxvd3MgdGFiYmluZyB0byBpdFxuICAvLyBmaXhlZCBpbiBGaXJlZm94IDQwIHRoZSBsYXRlc3QgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg1NjU3XG4gIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykpIHtcbiAgICAvLyB0YWJiaW5nIGNhbiBzdGlsbCBiZSBkaXNhYmxlZCBieSBleHBsaWNpdGx5IHByb3ZpZGluZyBbdGFiaW5kZXg9XCItMVwiXVxuICAgIHJldHVybiBoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lXG4gIH1cblxuICBpZiAoZm9jdXNhYmxlRWxlbWVudHNQYXR0ZXJuLnRlc3Qobm9kZU5hbWUpICYmIHRhYmluZGV4ICE9PSB0cnVlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAocGxhdGZvcm0uaXMuV0VCS0lUICYmIHBsYXRmb3JtLmlzLklPUykge1xuICAgIC8vIGlPUyBvbmx5IGNvbnNpZGVycyBhIGhhbmQgZnVsbCBvZiBlbGVtZW50cyB0YWJiYWJsZSAoa2V5Ym9hcmQgZm9jdXNhYmxlKVxuICAgIC8vIHRoaXMgaG9sZHMgdHJ1ZSBldmVuIHdpdGggZXh0ZXJuYWwga2V5Ym9hcmRzXG4gICAgdmFyIHBvdGVudGlhbGx5VGFiYmFibGUgPVxuICAgICAgKG5vZGVOYW1lID09PSAnaW5wdXQnICYmIGVsZW1lbnQudHlwZSA9PT0gJ3RleHQnKSB8fFxuICAgICAgZWxlbWVudC50eXBlID09PSAncGFzc3dvcmQnIHx8XG4gICAgICBub2RlTmFtZSA9PT0gJ3NlbGVjdCcgfHxcbiAgICAgIG5vZGVOYW1lID09PSAndGV4dGFyZWEnIHx8XG4gICAgICBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJylcblxuICAgIGlmICghcG90ZW50aWFsbHlUYWJiYWJsZSkge1xuICAgICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbClcbiAgICAgIHBvdGVudGlhbGx5VGFiYmFibGUgPSBpc1VzZXJNb2RpZnlXcml0YWJsZShzdHlsZSlcbiAgICB9XG5cbiAgICBpZiAoIXBvdGVudGlhbGx5VGFiYmFibGUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ3VzZScgJiYgX3RhYmluZGV4ICE9PSBudWxsKSB7XG4gICAgaWYgKFxuICAgICAgcGxhdGZvcm0uaXMuQkxJTksgfHxcbiAgICAgIChwbGF0Zm9ybS5pcy5XRUJLSVQgJiYgcGxhdGZvcm0ubWFqb3JWZXJzaW9uID09PSA5KVxuICAgICkge1xuICAgICAgLy8gSW4gQ2hyb21lIGFuZCBTYWZhcmkgOSB0aGUgPHVzZT4gZWxlbWVudCBpcyBrZXlib2FyZCBmb2N1c2FibGUgZXZlbiBmb3IgdGFiaW5kZXg9XCItMVwiXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbGVtZW50TWF0Y2hlcyhlbGVtZW50LCAnc3ZnIGEnKSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgneGxpbms6aHJlZicpKSB7XG4gICAgaWYgKGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmUpIHtcbiAgICAgIC8vIGluIFRyaWRlbnQgYW5kIEdlY2tvIFNWR0VsZW1lbnQgZG9lcyBub3QgaGFuZGxlIHRoZSB0YWJJbmRleCBwcm9wZXJ0eSBwcm9wZXJseVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudC5mb2N1cyAmJiAhc3VwcG9ydHMkNy5mb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGUpIHtcbiAgICAgIC8vIEZpcmVmb3ggNTEgYW5kIDUyIHRyZWF0IGFueSBuYXRpdmVseSB0YWJiYWJsZSBTVkcgZWxlbWVudCB3aXRoXG4gICAgICAvLyB0YWJpbmRleD1cIi0xXCIgYXMgdGFiYmFibGUgYW5kIGV2ZXJ5dGhpbmcgZWxzZSBhcyBpbmVydFxuICAgICAgLy8gc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDIzNDBcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgIG5vZGVOYW1lID09PSAnc3ZnJyAmJlxuICAgIHN1cHBvcnRzJDcuZm9jdXNTdmdJbklmcmFtZSAmJlxuICAgIGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmVcbiAgKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpIHtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdzdmcnKSB7XG4gICAgICBpZiAoc3VwcG9ydHMkNy5mb2N1c1N2Zykge1xuICAgICAgICAvLyBvbGRlciBJbnRlcm5ldCBFeHBsb3JlcnMgY29uc2lkZXIgPHN2Zz4ga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICAgIC8vIHVubGVzcyB0aGV5IGhhdmUgZm9jc2FibGU9XCJmYWxzZVwiLCBidXQgdGhlbiB0aGV5IHdvdWxkbid0XG4gICAgICAgIC8vIGJlIGZvY3VzYWJsZSBhbmQgdGh1cyBub3QgZXZlbiByZWFjaCB0aGlzIGZpbHRlclxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICAvLyBlbGVtZW50cyB0aGF0IGhhdmUgW2ZvY3VzYWJsZV0gYXJlIGF1dG9tYXRpY2FsbHkga2V5Ym9hcmQgZm9jdXNhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlXG4gICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2ZvY3VzYWJsZScpIHx8IGhhc1RhYmJhYmxlVGFiaW5kZXhcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudC5vd25lclNWR0VsZW1lbnQpIHtcbiAgICAgIGlmIChzdXBwb3J0cyQ3LmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUgJiYgaGFzVGFiYmFibGVUYWJpbmRleCkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICAvLyBlbGVtZW50cyB0aGF0IGhhdmUgW2ZvY3VzYWJsZV0gYXJlIGF1dG9tYXRpY2FsbHkga2V5Ym9hcmQgZm9jdXNhYmxlIHJlZ2FyZGxlc3Mgb2YgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlXG4gICAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2ZvY3VzYWJsZScpXG4gICAgfVxuICB9XG4gIGlmIChlbGVtZW50LnRhYkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gQm9vbGVhbihleGNlcHQub25seVRhYmJhYmxlKVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnYXVkaW8nKSB7XG4gICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udHJvbHMnKSkge1xuICAgICAgLy8gSW4gSW50ZXJuZXQgRXhwbG9yZXIgdGhlIDxhdWRpbz4gZWxlbWVudCBpcyBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGUsIGFuZCB0YWJJbmRleCBwcm9wZXJ0eSBpcyB3cm9uZ1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIGlmIChwbGF0Zm9ybS5pcy5CTElOSykge1xuICAgICAgLy8gSW4gQ2hyb21lIDxhdWRpbyBjb250cm9scyB0YWJpbmRleD1cIi0xXCI+IHJlbWFpbnMga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ3ZpZGVvJykge1xuICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJykpIHtcbiAgICAgIGlmIChwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpIHtcbiAgICAgICAgLy8gSW4gSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEVkZ2UgdGhlIDx2aWRlbz4gZWxlbWVudCBpcyBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGUsIGFuZCB0YWJJbmRleCBwcm9wZXJ0eSBpcyB3cm9uZ1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBsYXRmb3JtLmlzLkJMSU5LIHx8IHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAvLyBJbiBDaHJvbWUgYW5kIEZpcmVmb3ggPHZpZGVvIGNvbnRyb2xzIHRhYmluZGV4PVwiLTFcIj4gcmVtYWlucyBrZXlib2FyZCBmb2N1c2FibGVcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnb2JqZWN0Jykge1xuICAgIGlmIChwbGF0Zm9ybS5pcy5CTElOSyB8fCBwbGF0Zm9ybS5pcy5XRUJLSVQpIHtcbiAgICAgIC8vIEluIGFsbCBCbGluayBhbmQgV2ViS2l0IGJhc2VkIGJyb3dzZXJzIDxlbWJlZD4gYW5kIDxvYmplY3Q+IGFyZSBuZXZlciBrZXlib2FyZCBmb2N1c2FibGUsIGV2ZW4gd2l0aCB0YWJpbmRleD1cIjBcIiBzZXRcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2lmcmFtZScpIHtcbiAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBhbGwgaWZyYW1lcyBhcmUgb25seSBmb2N1c2FibGVcbiAgICAvLyBJbiBXZWJLaXQsIEJsaW5rIGFuZCBHZWNrbyBpZnJhbWVzIG1heSBiZSB0YWJiYWJsZSBkZXBlbmRpbmcgb24gY29udGVudC5cbiAgICAvLyBTaW5jZSB3ZSBjYW4ndCByZWxpYWJseSBpbnZlc3RpZ2F0ZSBpZnJhbWUgZG9jdW1lbnRzIGJlY2F1c2Ugb2YgdGhlXG4gICAgLy8gU2FtZU9yaWdpblBvbGljeSwgd2UncmUgZGVjbGFyaW5nIGV2ZXJ5dGhpbmcgb25seSBmb2N1c2FibGUuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoIWV4Y2VwdC5zY3JvbGxhYmxlICYmIHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgLy8gRmlyZWZveCBjb25zaWRlcnMgc2Nyb2xsYWJsZSBjb250YWluZXJzIGtleWJvYXJkIGZvY3VzYWJsZSxcbiAgICAvLyBldmVuIHRob3VnaCB0aGVpciB0YWJJbmRleCBwcm9wZXJ0eSBpcyAtMVxuICAgIHZhciBfc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKVxuICAgIGlmIChoYXNDc3NPdmVyZmxvd1Njcm9sbChfc3R5bGUpKSB7XG4gICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZVxuICAgIH1cbiAgfVxuXG4gIGlmIChwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0UpIHtcbiAgICAvLyBJRSBhbmQgRWRnZSBkZWdyYWRlIDxhcmVhPiB0byBzY3JpcHQgZm9jdXNhYmxlLCBpZiB0aGUgaW1hZ2VcbiAgICAvLyB1c2luZyB0aGUgPG1hcD4gaGFzIGJlZW4gZ2l2ZW4gdGFiaW5kZXg9XCItMVwiXG4gICAgaWYgKG5vZGVOYW1lID09PSAnYXJlYScpIHtcbiAgICAgIHZhciBpbWcgPSBnZXRJbWFnZU9mQXJlYShlbGVtZW50KVxuICAgICAgaWYgKGltZyAmJiB0YWJpbmRleFZhbHVlKGltZykgPCAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBfc3R5bGUyID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbClcbiAgICBpZiAoaXNVc2VyTW9kaWZ5V3JpdGFibGUoX3N0eWxlMikpIHtcbiAgICAgIC8vIHByZXZlbnQgYmVpbmcgc3dhbGxvd2VkIGJ5IHRoZSBvdmVyemVhbG91cyBpc1Njcm9sbGFibGVDb250YWluZXIoKSBiZWxvd1xuICAgICAgcmV0dXJuIGVsZW1lbnQudGFiSW5kZXggPj0gMFxuICAgIH1cblxuICAgIGlmICghZXhjZXB0LmZsZXhib3ggJiYgaGFzQ3NzRGlzcGxheUZsZXgoX3N0eWxlMikpIHtcbiAgICAgIGlmIChfdGFiaW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGhhc1RhYmJhYmxlVGFiaW5kZXhcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgaXNGb2N1c1JlbGV2YW50V2l0aG91dEZsZXhib3goZWxlbWVudCkgJiZcbiAgICAgICAgaXNUYWJiYWJsZVdpdGhvdXRGbGV4Ym94KGVsZW1lbnQpXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gSUUgY29uc2lkZXJzIHNjcm9sbGFibGUgY29udGFpbmVycyBzY3JpcHQgZm9jdXNhYmxlIG9ubHksXG4gICAgLy8gZXZlbiB0aG91Z2ggdGhlaXIgdGFiSW5kZXggcHJvcGVydHkgaXMgMFxuICAgIGlmIChpc1Njcm9sbGFibGVDb250YWluZXIoZWxlbWVudCwgbm9kZU5hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50XG4gICAgaWYgKHBhcmVudCkge1xuICAgICAgdmFyIHBhcmVudE5vZGVOYW1lID0gcGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgIHZhciBwYXJlbnRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCwgbnVsbClcbiAgICAgIC8vIElFIGNvbnNpZGVycyBzY3JvbGxhYmxlIGJvZGllcyBzY3JpcHQgZm9jdXNhYmxlIG9ubHksXG4gICAgICBpZiAoXG4gICAgICAgIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIC8vIENoaWxkcmVuIG9mIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGRpc3BsYXk6ZmxleCBhcmUgZm9jdXNhYmxlIGluIElFMTAtMTEsXG4gICAgICAvLyBldmVuIHRob3VnaCB0aGVpciB0YWJJbmRleCBwcm9wZXJ0eSBzdWdnZXN0cyBvdGhlcndpc2VcbiAgICAgIGlmIChoYXNDc3NEaXNwbGF5RmxleChwYXJlbnRTdHlsZSkpIHtcbiAgICAgICAgLy8gdmFsdWUgb2YgdGFiaW5kZXggdGFrZXMgcHJlY2VkZW5jZVxuICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9XQUkvUEYvYXJpYS1wcmFjdGljZXMvI2ZvY3VzX3RhYmluZGV4XG4gIHJldHVybiBlbGVtZW50LnRhYkluZGV4ID49IDBcbn1cblxuLy8gYmluZCBleGNlcHRpb25zIHRvIGFuIGl0ZXJhdG9yIGNhbGxiYWNrXG5pc1RhYmJhYmxlUnVsZXMuZXhjZXB0ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZXhjZXB0ID1cbiAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9XG5cbiAgdmFyIGlzVGFiYmFibGUgPSBmdW5jdGlvbiBpc1RhYmJhYmxlKGNvbnRleHQpIHtcbiAgICByZXR1cm4gaXNUYWJiYWJsZVJ1bGVzKHtcbiAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICBleGNlcHQ6IGV4Y2VwdCxcbiAgICB9KVxuICB9XG5cbiAgaXNUYWJiYWJsZS5ydWxlcyA9IGlzVGFiYmFibGVSdWxlc1xuICByZXR1cm4gaXNUYWJiYWJsZVxufVxuXG52YXIgaXNGb2N1c1JlbGV2YW50V2l0aG91dEZsZXhib3ggPSBpc0ZvY3VzUmVsZXZhbnQucnVsZXMuZXhjZXB0KHtcbiAgZmxleGJveDogdHJ1ZSxcbn0pXG52YXIgaXNUYWJiYWJsZVdpdGhvdXRGbGV4Ym94ID0gaXNUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7IGZsZXhib3g6IHRydWUgfSlcblxuLy8gcHJvdmlkZSBpc1RhYmJhYmxlKGNvbnRleHQpIGFzIGRlZmF1bHQgaXRlcmF0b3IgY2FsbGJhY2tcbnZhciBpc1RhYmJhYmxlID0gaXNUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7fSlcblxuZnVuY3Rpb24gcXVlcnlUYWJiYWJsZSgpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCxcbiAgICBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLFxuICAgIHN0cmF0ZWd5ID0gX3JlZi5zdHJhdGVneVxuXG4gIHZhciBfaXNUYWJiYWJsZSA9IGlzVGFiYmFibGUucnVsZXMuZXhjZXB0KHtcbiAgICBvbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gIH0pXG5cbiAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlKHtcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgIGluY2x1ZGVDb250ZXh0OiBpbmNsdWRlQ29udGV4dCxcbiAgICBpbmNsdWRlT25seVRhYmJhYmxlOiBpbmNsdWRlT25seVRhYmJhYmxlLFxuICAgIHN0cmF0ZWd5OiBzdHJhdGVneSxcbiAgfSkuZmlsdGVyKF9pc1RhYmJhYmxlKVxufVxuXG4vLyBzb3J0cyBhIGxpc3Qgb2YgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHRoZWlyIG9yZGVyIGluIHRoZSBET01cblxuZnVuY3Rpb24gY29tcGFyZURvbVBvc2l0aW9uKGEsIGIpIHtcbiAgcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR1xuICAgID8gLTFcbiAgICA6IDFcbn1cblxuZnVuY3Rpb24gc29ydERvbU9yZGVyKGVsZW1lbnRzKSB7XG4gIHJldHVybiBlbGVtZW50cy5zb3J0KGNvbXBhcmVEb21Qb3NpdGlvbilcbn1cblxuZnVuY3Rpb24gZ2V0Rmlyc3RTdWNjZXNzb3JPZmZzZXQobGlzdCwgdGFyZ2V0KSB7XG4gIC8vIGZpbmQgdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBjb21lcyBBRlRFUiB0aGUgdGFyZ2V0IGVsZW1lbnRcbiAgcmV0dXJuIGZpbmRJbmRleChsaXN0LCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHJldHVybiAoXG4gICAgICB0YXJnZXQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZWxlbWVudCkgJiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR1xuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZmluZEluc2VydGlvbk9mZnNldHMobGlzdCwgZWxlbWVudHMsIHJlc29sdmVFbGVtZW50KSB7XG4gIC8vIGluc3RlYWQgb2YgbXV0YXRpbmcgdGhlIGVsZW1lbnRzIGxpc3QgZGlyZWN0bHksIHJlbWVtYmVyIHBvc2l0aW9uIGFuZCBtYXBcbiAgLy8gdG8gaW5qZWN0IGxhdGVyLCB3aGVuIHdlIGNhbiBkbyB0aGlzIG1vcmUgZWZmaWNpZW50bHlcbiAgdmFyIGluc2VydGlvbnMgPSBbXVxuICBlbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgdmFyIHJlcGxhY2UgPSB0cnVlXG4gICAgdmFyIG9mZnNldCA9IGxpc3QuaW5kZXhPZihlbGVtZW50KVxuXG4gICAgaWYgKG9mZnNldCA9PT0gLTEpIHtcbiAgICAgIC8vIGVsZW1lbnQgaXMgbm90IGluIHRhcmdldCBsaXN0XG4gICAgICBvZmZzZXQgPSBnZXRGaXJzdFN1Y2Nlc3Nvck9mZnNldChsaXN0LCBlbGVtZW50KVxuICAgICAgcmVwbGFjZSA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKG9mZnNldCA9PT0gLTEpIHtcbiAgICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2Nlc3NvciBpbiB0aGUgdGFic2VxdWVuY2UsXG4gICAgICAvLyBtZWFuaW5nIHRoZSBpbWFnZSBtdXN0IGJlIHRoZSBsYXN0IGVsZW1lbnRcbiAgICAgIG9mZnNldCA9IGxpc3QubGVuZ3RoXG4gICAgfVxuXG4gICAgLy8gYWxsb3cgdGhlIGNvbnN1bWVyIHRvIHJlcGxhY2UgdGhlIGluamVjdGVkIGVsZW1lbnRcbiAgICB2YXIgaW5qZWN0aW9ucyA9IG5vZGVBcnJheShcbiAgICAgIHJlc29sdmVFbGVtZW50ID8gcmVzb2x2ZUVsZW1lbnQoZWxlbWVudCkgOiBlbGVtZW50XG4gICAgKVxuICAgIGlmICghaW5qZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIC8vIHdlIGNhbid0IGluamVjdCB6ZXJvIGVsZW1lbnRzXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbnNlcnRpb25zLnB1c2goe1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICByZXBsYWNlOiByZXBsYWNlLFxuICAgICAgZWxlbWVudHM6IGluamVjdGlvbnMsXG4gICAgfSlcbiAgfSlcblxuICByZXR1cm4gaW5zZXJ0aW9uc1xufVxuXG5mdW5jdGlvbiBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhsaXN0LCBpbnNlcnRpb25zKSB7XG4gIC8vIHJlbWVtYmVyIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2UgaGF2ZSBhbHJlYWR5IGluamVjdGVkXG4gIC8vIHNvIHdlIGFjY291bnQgZm9yIHRoZSBjYXVzZWQgaW5kZXggb2Zmc2V0XG4gIHZhciBpbnNlcnRlZCA9IDBcbiAgLy8gbWFrZSBzdXJlIHRoYXQgd2UgaW5zZXJ0IHRoZSBlbGVtZW50cyBpbiBzZXF1ZW5jZSxcbiAgLy8gb3RoZXJ3aXNlIHRoZSBvZmZzZXQgY29tcGVuc2F0aW9uIHdvbid0IHdvcmtcbiAgaW5zZXJ0aW9ucy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGEub2Zmc2V0IC0gYi5vZmZzZXRcbiAgfSlcbiAgaW5zZXJ0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uIChpbnNlcnRpb24pIHtcbiAgICAvLyBhcnJheS5zcGxpY2UgaGFzIGFuIGFubm95aW5nIGZ1bmN0aW9uIHNpZ25hdHVyZSA6KFxuICAgIHZhciByZW1vdmUgPSBpbnNlcnRpb24ucmVwbGFjZSA/IDEgOiAwXG4gICAgdmFyIGFyZ3MgPSBbaW5zZXJ0aW9uLm9mZnNldCArIGluc2VydGVkLCByZW1vdmVdLmNvbmNhdChpbnNlcnRpb24uZWxlbWVudHMpXG4gICAgbGlzdC5zcGxpY2UuYXBwbHkobGlzdCwgYXJncylcbiAgICBpbnNlcnRlZCArPSBpbnNlcnRpb24uZWxlbWVudHMubGVuZ3RoIC0gcmVtb3ZlXG4gIH0pXG59XG5cbmZ1bmN0aW9uIG1lcmdlSW5Eb21PcmRlcigpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBsaXN0ID0gX3JlZi5saXN0LFxuICAgIGVsZW1lbnRzID0gX3JlZi5lbGVtZW50cyxcbiAgICByZXNvbHZlRWxlbWVudCA9IF9yZWYucmVzb2x2ZUVsZW1lbnRcblxuICAvLyBvcGVyYXRlIG9uIGEgY29weSBzbyB3ZSBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGFycmF5XG4gIHZhciBfbGlzdCA9IGxpc3Quc2xpY2UoMClcbiAgLy8gbWFrZSBzdXJlIHRoZSBlbGVtZW50cyB3ZSdyZSBpbmplY3RpbmcgYXJlIHByb3ZpZGVkIGluIERPTSBvcmRlclxuICB2YXIgX2VsZW1lbnRzID0gbm9kZUFycmF5KGVsZW1lbnRzKS5zbGljZSgwKVxuICBzb3J0RG9tT3JkZXIoX2VsZW1lbnRzKVxuICAvLyBmaW5kIHRoZSBvZmZzZXRzIHdpdGhpbiB0aGUgdGFyZ2V0IGFycmF5IChsaXN0KSBhdCB3aGljaCB0byBpbmplY3RcbiAgLy8gZWFjaCBpbmRpdmlkdWFsIGVsZW1lbnQgKGZyb20gZWxlbWVudHMpXG4gIHZhciBpbnNlcnRpb25zID0gZmluZEluc2VydGlvbk9mZnNldHMoX2xpc3QsIF9lbGVtZW50cywgcmVzb2x2ZUVsZW1lbnQpXG4gIC8vIGFjdHVhbGx5IGluamVjdCB0aGUgZWxlbWVudHMgaW50byB0aGUgdGFyZ2V0IGFycmF5IGF0IHRoZSBpZGVudGlmaWVkIHBvc2l0aW9uc1xuICBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhfbGlzdCwgaW5zZXJ0aW9ucylcbiAgcmV0dXJuIF9saXN0XG59XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldXG4gICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2VcbiAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZVxuICAgICAgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWVcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKVxuICAgIH1cbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICAgIGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcylcbiAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKVxuICAgIHJldHVybiBDb25zdHJ1Y3RvclxuICB9XG59KSgpXG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKVxuICB9XG59XG5cbnZhciBNYXBzID0gKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gTWFwcyhjb250ZXh0KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1hcHMpXG5cbiAgICB0aGlzLl9kb2N1bWVudCA9IGdldERvY3VtZW50KGNvbnRleHQpXG4gICAgdGhpcy5tYXBzID0ge31cbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNYXBzLCBbXG4gICAge1xuICAgICAga2V5OiAnZ2V0QXJlYXNGb3InLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldEFyZWFzRm9yKG5hbWUpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1hcHNbbmFtZV0pIHtcbiAgICAgICAgICAvLyB0aGUgbWFwIGlzIG5vdCBkZWZpbmVkIHdpdGhpbiB0aGUgY29udGV4dCwgc28gd2VcbiAgICAgICAgICAvLyBoYXZlIHRvIGdvIGZpbmQgaXQgZWxzZXdoZXJlIGluIHRoZSBkb2N1bWVudFxuICAgICAgICAgIHRoaXMuYWRkTWFwQnlOYW1lKG5hbWUpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tYXBzW25hbWVdXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYWRkTWFwQnlOYW1lJyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRNYXBCeU5hbWUobmFtZSkge1xuICAgICAgICB2YXIgbWFwID0gZ2V0TWFwQnlOYW1lKG5hbWUsIHRoaXMuX2RvY3VtZW50KVxuICAgICAgICBpZiAoIW1hcCkge1xuICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIG1hcCwgdGhlIGltZ1t1c2VtYXBdIHdhc24ndCBkb2luZyBhbnl0aGluZyBhbnl3YXlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0gPSBxdWVyeVRhYmJhYmxlKHsgY29udGV4dDogbWFwIH0pXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZXh0cmFjdEFyZWFzRnJvbUxpc3QnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGV4dHJhY3RBcmVhc0Zyb21MaXN0KGVsZW1lbnRzKSB7XG4gICAgICAgIC8vIHJlbW92ZSBhbGwgPGFyZWE+IGVsZW1lbnRzIGZyb20gdGhlIGVsZW1lbnRzIGxpc3QsXG4gICAgICAgIC8vIGJ1dCBwdXQgdGhlbSB0aGUgbWFwIGZvciBsYXRlciByZXRyaWV2YWxcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICAgIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIGlmIChub2RlTmFtZSAhPT0gJ2FyZWEnKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBtYXAgPSBlbGVtZW50LnBhcmVudE5vZGVcbiAgICAgICAgICBpZiAoIXRoaXMubWFwc1ttYXAubmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0gPSBbXVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMubWFwc1ttYXAubmFtZV0ucHVzaChlbGVtZW50KVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LCB0aGlzKVxuICAgICAgfSxcbiAgICB9LFxuICBdKVxuXG4gIHJldHVybiBNYXBzXG59KSgpXG5cbmZ1bmN0aW9uIHNvcnRBcmVhKGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gIC8vIGltYWdlcyAtIHVubGVzcyB0aGV5IGFyZSBmb2N1c2FibGUgdGhlbXNlbHZlcywgbGlrZWx5IG5vdFxuICAvLyBwYXJ0IG9mIHRoZSBlbGVtZW50cyBsaXN0LCBzbyB3ZSdsbCBoYXZlIHRvIGZpbmQgdGhlbSBhbmRcbiAgLy8gc29ydCB0aGVtIGludG8gdGhlIGVsZW1lbnRzIGxpc3QgbWFudWFsbHlcbiAgdmFyIHVzZW1hcHMgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2ltZ1t1c2VtYXBdJylcbiAgdmFyIG1hcHMgPSBuZXcgTWFwcyhjb250ZXh0KVxuXG4gIC8vIHJlbW92ZSBhbGwgPGFyZWE+IGVsZW1lbnRzIGZyb20gdGhlIGVsZW1lbnRzIGxpc3QsXG4gIC8vIGJ1dCBwdXQgdGhlbSB0aGUgbWFwIGZvciBsYXRlciByZXRyaWV2YWxcbiAgdmFyIF9lbGVtZW50cyA9IG1hcHMuZXh0cmFjdEFyZWFzRnJvbUxpc3QoZWxlbWVudHMpXG5cbiAgaWYgKCF1c2VtYXBzLmxlbmd0aCkge1xuICAgIC8vIHRoZSBjb250ZXh0IGRvZXMgbm90IGNvbnRhaW4gYW55IDxhcmVhPnMgc28gbm8gbmVlZFxuICAgIC8vIHRvIHJlcGxhY2UgYW55dGhpbmcsIGp1c3QgcmVtb3ZlIGFueSBtYXBzXG4gICAgcmV0dXJuIF9lbGVtZW50c1xuICB9XG5cbiAgcmV0dXJuIG1lcmdlSW5Eb21PcmRlcih7XG4gICAgbGlzdDogX2VsZW1lbnRzLFxuICAgIGVsZW1lbnRzOiB1c2VtYXBzLFxuICAgIHJlc29sdmVFbGVtZW50OiBmdW5jdGlvbiByZXNvbHZlRWxlbWVudChpbWFnZSkge1xuICAgICAgdmFyIG5hbWUgPSBpbWFnZS5nZXRBdHRyaWJ1dGUoJ3VzZW1hcCcpLnNsaWNlKDEpXG4gICAgICByZXR1cm4gbWFwcy5nZXRBcmVhc0ZvcihuYW1lKVxuICAgIH0sXG4gIH0pXG59XG5cbnZhciBfY3JlYXRlQ2xhc3MkMSA9IChmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV1cbiAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZVxuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlXG4gICAgICBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpXG4gICAgfVxuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKVxuICAgIGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpXG4gICAgcmV0dXJuIENvbnN0cnVjdG9yXG4gIH1cbn0pKClcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrJDEoaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJylcbiAgfVxufVxuXG52YXIgU2hhZG93cyA9IChmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIFNoYWRvd3MoY29udGV4dCwgc29ydEVsZW1lbnRzKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrJDEodGhpcywgU2hhZG93cylcblxuICAgIC8vIGRvY3VtZW50IGNvbnRleHQgd2UncmUgd29ya2luZyB3aXRoXG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dFxuICAgIC8vIGNhbGxiYWNrIHRoYXQgc29ydHMgYW4gYXJyYXkgb2YgZWxlbWVudHNcbiAgICB0aGlzLnNvcnRFbGVtZW50cyA9IHNvcnRFbGVtZW50c1xuICAgIC8vIHJlZmVyZW5jZSB0byBjcmVhdGUgdW5pcXVlIElEcyBmb3IgZWFjaCBTaGFkb3dIb3N0XG4gICAgdGhpcy5ob3N0Q291bnRlciA9IDFcbiAgICAvLyByZWZlcmVuY2UgbWFwIGZvciBjaGlsZC1TaGFkb3dIb3N0cyBvZiBhIFNoYWRvd0hvc3RcbiAgICB0aGlzLmluSG9zdCA9IHt9XG4gICAgLy8gcmVmZXJlbmNlIG1hcCBmb3IgY2hpbGQtU2hhZG93SG9zdCBvZiB0aGUgZG9jdW1lbnRcbiAgICB0aGlzLmluRG9jdW1lbnQgPSBbXVxuICAgIC8vIHJlZmVyZW5jZSBtYXAgZm9yIFNoYWRvd0hvc3RzXG4gICAgdGhpcy5ob3N0cyA9IHt9XG4gICAgLy8gcmVmZXJlbmNlIG1hcCBmb3IgdGFiYmFibGUgZWxlbWVudHMgb2YgYSBTaGFkb3dIb3N0XG4gICAgdGhpcy5lbGVtZW50cyA9IHt9XG4gIH1cblxuICAvLyByZW1lbWJlciB3aGljaCBob3N0cyB3ZSBoYXZlIHRvIHNvcnQgd2l0aGluIGxhdGVyXG5cbiAgX2NyZWF0ZUNsYXNzJDEoU2hhZG93cywgW1xuICAgIHtcbiAgICAgIGtleTogJ19yZWdpc3Rlckhvc3QnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9yZWdpc3Rlckhvc3QoaG9zdCkge1xuICAgICAgICBpZiAoaG9zdC5fc29ydGluZ0lkKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBtYWtlIHRoZSBTaGFkb3dIb3N0IGlkZW50aWZpYWJsZSAoc2VlIGNsZWFudXAoKSBmb3IgdW5kbylcbiAgICAgICAgaG9zdC5fc29ydGluZ0lkID0gJ3NoYWRvdy0nICsgdGhpcy5ob3N0Q291bnRlcisrXG4gICAgICAgIHRoaXMuaG9zdHNbaG9zdC5fc29ydGluZ0lkXSA9IGhvc3RcblxuICAgICAgICAvLyBob3N0cyBtYXkgY29udGFpbiBvdGhlciBob3N0c1xuICAgICAgICB2YXIgcGFyZW50SG9zdCA9IGdldFNoYWRvd0hvc3QoeyBjb250ZXh0OiBob3N0IH0pXG4gICAgICAgIGlmIChwYXJlbnRIb3N0KSB7XG4gICAgICAgICAgdGhpcy5fcmVnaXN0ZXJIb3N0KHBhcmVudEhvc3QpXG4gICAgICAgICAgdGhpcy5fcmVnaXN0ZXJIb3N0UGFyZW50KGhvc3QsIHBhcmVudEhvc3QpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pbkRvY3VtZW50LnB1c2goaG9zdClcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgLy8gcmVtZW1iZXIgd2hpY2ggaG9zdCBpcyB0aGUgY2hpbGQgb2Ygd2hpY2ggb3RoZXIgaG9zdFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnX3JlZ2lzdGVySG9zdFBhcmVudCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX3JlZ2lzdGVySG9zdFBhcmVudChob3N0LCBwYXJlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluSG9zdFtwYXJlbnQuX3NvcnRpbmdJZF0pIHtcbiAgICAgICAgICB0aGlzLmluSG9zdFtwYXJlbnQuX3NvcnRpbmdJZF0gPSBbXVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbkhvc3RbcGFyZW50Ll9zb3J0aW5nSWRdLnB1c2goaG9zdClcbiAgICAgIH0sXG5cbiAgICAgIC8vIHJlbWVtYmVyIHdoaWNoIGVsZW1lbnRzIGEgaG9zdCBjb250YWluc1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnX3JlZ2lzdGVyRWxlbWVudCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX3JlZ2lzdGVyRWxlbWVudChlbGVtZW50LCBob3N0KSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdID0gW11cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudHNbaG9zdC5fc29ydGluZ0lkXS5wdXNoKGVsZW1lbnQpXG4gICAgICB9LFxuXG4gICAgICAvLyByZW1vdmUgc2hhZG93ZWQgZWxlbWVudHMgZnJvbSB0aGUgc2VxdWVuY2UgYW5kIHJlZ2lzdGVyXG4gICAgICAvLyB0aGUgU2hhZG93SG9zdHMgdGhleSBiZWxvbmcgdG8gc28gd2Uga25vdyB3aGF0IHRvIHNvcnRcbiAgICAgIC8vIGxhdGVyIG9uXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdleHRyYWN0RWxlbWVudHMnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGV4dHJhY3RFbGVtZW50cyhlbGVtZW50cykge1xuICAgICAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgdmFyIGhvc3QgPSBnZXRTaGFkb3dIb3N0KHsgY29udGV4dDogZWxlbWVudCB9KVxuICAgICAgICAgIGlmICghaG9zdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlckhvc3QoaG9zdClcbiAgICAgICAgICB0aGlzLl9yZWdpc3RlckVsZW1lbnQoZWxlbWVudCwgaG9zdClcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfSwgdGhpcylcbiAgICAgIH0sXG5cbiAgICAgIC8vIGluamVjdCBob3N0cyBpbnRvIHRoZSBzZXF1ZW5jZSwgc29ydCBldmVyeXRoaW5nLFxuICAgICAgLy8gYW5kIHJlY291cnNpdmVseSByZXBsYWNlIGhvc3RzIGJ5IGl0cyBkZXNjZW5kYW50c1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnc29ydCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gc29ydChlbGVtZW50cykge1xuICAgICAgICB2YXIgX2VsZW1lbnRzID0gdGhpcy5faW5qZWN0SG9zdHMoZWxlbWVudHMpXG4gICAgICAgIF9lbGVtZW50cyA9IHRoaXMuX3JlcGxhY2VIb3N0cyhfZWxlbWVudHMpXG4gICAgICAgIHRoaXMuX2NsZWFudXAoKVxuICAgICAgICByZXR1cm4gX2VsZW1lbnRzXG4gICAgICB9LFxuXG4gICAgICAvLyBtZXJnZSBTaGFkb3dIb3N0cyBpbnRvIHRoZSBlbGVtZW50IGxpc3RzIG9mIG90aGVyIFNoYWRvd0hvc3RzXG4gICAgICAvLyBvciB0aGUgZG9jdW1lbnQsIHRoZW4gc29ydCB0aGUgaW5kaXZpZHVhbCBsaXN0c1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnX2luamVjdEhvc3RzJyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBfaW5qZWN0SG9zdHMoZWxlbWVudHMpIHtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5ob3N0cykuZm9yRWFjaChmdW5jdGlvbiAoX3NvcnRpbmdJZCkge1xuICAgICAgICAgIHZhciBfbGlzdCA9IHRoaXMuZWxlbWVudHNbX3NvcnRpbmdJZF1cbiAgICAgICAgICB2YXIgX2VsZW1lbnRzID0gdGhpcy5pbkhvc3RbX3NvcnRpbmdJZF1cbiAgICAgICAgICB2YXIgX2NvbnRleHQgPSB0aGlzLmhvc3RzW19zb3J0aW5nSWRdLnNoYWRvd1Jvb3RcbiAgICAgICAgICB0aGlzLmVsZW1lbnRzW19zb3J0aW5nSWRdID0gdGhpcy5fbWVyZ2UoX2xpc3QsIF9lbGVtZW50cywgX2NvbnRleHQpXG4gICAgICAgIH0sIHRoaXMpXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX21lcmdlKGVsZW1lbnRzLCB0aGlzLmluRG9jdW1lbnQsIHRoaXMuY29udGV4dClcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdfbWVyZ2UnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9tZXJnZShsaXN0LCBlbGVtZW50cywgY29udGV4dCkge1xuICAgICAgICB2YXIgbWVyZ2VkID0gbWVyZ2VJbkRvbU9yZGVyKHtcbiAgICAgICAgICBsaXN0OiBsaXN0LFxuICAgICAgICAgIGVsZW1lbnRzOiBlbGVtZW50cyxcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0RWxlbWVudHMobWVyZ2VkLCBjb250ZXh0KVxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ19yZXBsYWNlSG9zdHMnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9yZXBsYWNlSG9zdHMoZWxlbWVudHMpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgbGlzdDogZWxlbWVudHMsXG4gICAgICAgICAgZWxlbWVudHM6IHRoaXMuaW5Eb2N1bWVudCxcbiAgICAgICAgICByZXNvbHZlRWxlbWVudDogdGhpcy5fcmVzb2x2ZUhvc3RFbGVtZW50LmJpbmQodGhpcyksXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnX3Jlc29sdmVIb3N0RWxlbWVudCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX3Jlc29sdmVIb3N0RWxlbWVudChob3N0KSB7XG4gICAgICAgIHZhciBtZXJnZWQgPSBtZXJnZUluRG9tT3JkZXIoe1xuICAgICAgICAgIGxpc3Q6IHRoaXMuZWxlbWVudHNbaG9zdC5fc29ydGluZ0lkXSxcbiAgICAgICAgICBlbGVtZW50czogdGhpcy5pbkhvc3RbaG9zdC5fc29ydGluZ0lkXSxcbiAgICAgICAgICByZXNvbHZlRWxlbWVudDogdGhpcy5fcmVzb2x2ZUhvc3RFbGVtZW50LmJpbmQodGhpcyksXG4gICAgICAgIH0pXG5cbiAgICAgICAgdmFyIF90YWJpbmRleCA9IHRhYmluZGV4VmFsdWUoaG9zdClcbiAgICAgICAgaWYgKF90YWJpbmRleCAhPT0gbnVsbCAmJiBfdGFiaW5kZXggPiAtMSkge1xuICAgICAgICAgIHJldHVybiBbaG9zdF0uY29uY2F0KG1lcmdlZClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZXJnZWRcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdfY2xlYW51cCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX2NsZWFudXAoKSB7XG4gICAgICAgIC8vIHJlbW92ZSB0aG9zZSBpZGVudGlmZXJzIHdlIHB1dCBvbiB0aGUgU2hhZG93SG9zdCB0byBhdm9pZCB1c2luZyBNYXAoKVxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmhvc3RzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5ob3N0c1trZXldLl9zb3J0aW5nSWRcbiAgICAgICAgfSwgdGhpcylcbiAgICAgIH0sXG4gICAgfSxcbiAgXSlcblxuICByZXR1cm4gU2hhZG93c1xufSkoKVxuXG5mdW5jdGlvbiBzb3J0U2hhZG93ZWQoZWxlbWVudHMsIGNvbnRleHQsIHNvcnRFbGVtZW50cykge1xuICB2YXIgc2hhZG93cyA9IG5ldyBTaGFkb3dzKGNvbnRleHQsIHNvcnRFbGVtZW50cylcbiAgdmFyIF9lbGVtZW50cyA9IHNoYWRvd3MuZXh0cmFjdEVsZW1lbnRzKGVsZW1lbnRzKVxuXG4gIGlmIChfZWxlbWVudHMubGVuZ3RoID09PSBlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAvLyBubyBzaGFkb3dlZCBjb250ZW50IGZvdW5kLCBubyBuZWVkIHRvIGNvbnRpbnVlXG4gICAgcmV0dXJuIHNvcnRFbGVtZW50cyhlbGVtZW50cylcbiAgfVxuXG4gIHJldHVybiBzaGFkb3dzLnNvcnQoX2VsZW1lbnRzKVxufVxuXG5mdW5jdGlvbiBzb3J0VGFiaW5kZXgoZWxlbWVudHMpIHtcbiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxFbGVtZW50LnRhYkluZGV4XG4gIC8vIGVsZW1lbnRzIHdpdGggdGFiSW5kZXggXCIwXCIgKGluY2x1ZGluZyB0YWJiYWJsZUVsZW1lbnRzIHdpdGhvdXQgdGFiSW5kZXgpIHNob3VsZCBiZSBuYXZpZ2F0ZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyLlxuICAvLyBlbGVtZW50cyB3aXRoIGEgcG9zaXRpdmUgdGFiSW5kZXg6XG4gIC8vICAgRWxlbWVudHMgdGhhdCBoYXZlIGlkZW50aWNhbCB0YWJJbmRleGVzIHNob3VsZCBiZSBuYXZpZ2F0ZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyLlxuICAvLyAgIE5hdmlnYXRpb24gcHJvY2VlZHMgZnJvbSB0aGUgbG93ZXN0IHRhYkluZGV4IHRvIHRoZSBoaWdoZXN0IHRhYkluZGV4LlxuXG4gIC8vIE5PVEU6IHNvcnQgaW1wbGVtZW50YXRpb24gbWF5IGJlIHVuc3RhYmxlIGFuZCB0aHVzIG1lc3MgdXAgRE9NIG9yZGVyLFxuICAvLyB0aGF0J3Mgd2h5IHdlIGJ1aWxkIGEgbWFwIHRoYXQncyBiZWluZyBzb3J0ZWQgaW5zdGVhZC4gSWYgd2Ugd2VyZSBhYmxlIHRvIHJlbHlcbiAgLy8gb24gYSBzdGFibGUgc29ydGluZyBhbGdvcml0aG0sIHNvcnRUYWJpbmRleCgpIGNvdWxkIGJlIGFzIHNpbXBsZSBhc1xuICAvLyBlbGVtZW50cy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEudGFiSW5kZXggLSBiLnRhYkluZGV4OyB9KTtcbiAgLy8gYXQgdGhpcyB0aW1lIENocm9tZSBkb2VzIG5vdCB1c2UgYSBzdGFibGUgc29ydGluZyBhbGdvcml0aG1cbiAgLy8gc2VlIGh0dHA6Ly9ibG9nLnJvZG5leXJlaG0uZGUvYXJjaGl2ZXMvMTQtU29ydGluZy1XZXJlLURvaW5nLUl0LVdyb25nLmh0bWwjc3RhYmlsaXR5XG5cbiAgLy8gTk9URTogY29tcGFyZURvY3VtZW50UG9zaXRpb24gc2VlbWVkIGxpa2UgbW9yZSBvdmVyaGVhZCB0aGFuIGp1c3Qgc29ydGluZyB0aGlzIHdpdGggYnVja2V0c1xuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuXG4gIHZhciBtYXAgPSB7fVxuICB2YXIgaW5kZXhlcyA9IFtdXG4gIHZhciBub3JtYWwgPSBlbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAvLyBpbiBUcmlkZW50IGFuZCBHZWNrbyBTVkdFbGVtZW50IGRvZXMgbm90IGtub3cgYWJvdXQgdGhlIHRhYkluZGV4IHByb3BlcnR5XG4gICAgdmFyIHRhYkluZGV4ID0gZWxlbWVudC50YWJJbmRleFxuICAgIGlmICh0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWJJbmRleCA9IHRhYmluZGV4VmFsdWUoZWxlbWVudClcbiAgICB9XG5cbiAgICAvLyBleHRyYWN0IGVsZW1lbnRzIHRoYXQgZG9uJ3QgbmVlZCBzb3J0aW5nXG4gICAgaWYgKHRhYkluZGV4IDw9IDAgfHwgdGFiSW5kZXggPT09IG51bGwgfHwgdGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoIW1hcFt0YWJJbmRleF0pIHtcbiAgICAgIC8vIGNyZWF0ZSBzb3J0YWJsZSBidWNrZXQgZm9yIGRvbS1vcmRlci1wcmVzZXJ2YXRpb24gb2YgZWxlbWVudHMgd2l0aCB0aGUgc2FtZSB0YWJJbmRleFxuICAgICAgbWFwW3RhYkluZGV4XSA9IFtdXG4gICAgICAvLyBtYWludGFpbiBhIGxpc3Qgb2YgdW5pcXVlIHRhYkluZGV4ZXNcbiAgICAgIGluZGV4ZXMucHVzaCh0YWJJbmRleClcbiAgICB9XG5cbiAgICAvLyBzb3J0IGVsZW1lbnQgaW50byB0aGUgcHJvcGVyIGJ1Y2tldFxuICAgIG1hcFt0YWJJbmRleF0ucHVzaChlbGVtZW50KVxuICAgIC8vIGVsZW1lbnQgbW92ZWQgdG8gc29ydGluZyBtYXAsIHNvIG5vdCBcIm5vcm1hbFwiIGFueW1vcmVcbiAgICByZXR1cm4gZmFsc2VcbiAgfSlcblxuICAvLyBzb3J0IHRoZSB0YWJpbmRleCBhc2NlbmRpbmcsXG4gIC8vIHRoZW4gcmVzb2x2ZSB0aGVtIHRvIHRoZWlyIGFwcHJvcHJpYXRlIGJ1Y2tldHMsXG4gIC8vIHRoZW4gZmxhdHRlbiB0aGUgYXJyYXkgb2YgYXJyYXlzIHRvIGFuIGFycmF5XG4gIHZhciBfZWxlbWVudHMgPSBpbmRleGVzXG4gICAgLnNvcnQoKVxuICAgIC5tYXAoZnVuY3Rpb24gKHRhYkluZGV4KSB7XG4gICAgICByZXR1cm4gbWFwW3RhYkluZGV4XVxuICAgIH0pXG4gICAgLnJlZHVjZVJpZ2h0KGZ1bmN0aW9uIChwcmV2aW91cywgY3VycmVudCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnQuY29uY2F0KHByZXZpb3VzKVxuICAgIH0sIG5vcm1hbClcblxuICByZXR1cm4gX2VsZW1lbnRzXG59XG5cbnZhciBzdXBwb3J0cyQ4ID0gdm9pZCAwXG5cbmZ1bmN0aW9uIG1vdmVDb250ZXh0VG9CZWdpbm5pbmcoZWxlbWVudHMsIGNvbnRleHQpIHtcbiAgdmFyIHBvcyA9IGVsZW1lbnRzLmluZGV4T2YoY29udGV4dClcbiAgaWYgKHBvcyA+IDApIHtcbiAgICB2YXIgdG1wID0gZWxlbWVudHMuc3BsaWNlKHBvcywgMSlcbiAgICByZXR1cm4gdG1wLmNvbmNhdChlbGVtZW50cylcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50c1xufVxuXG5mdW5jdGlvbiBzb3J0RWxlbWVudHMoZWxlbWVudHMsIF9jb250ZXh0KSB7XG4gIGlmIChzdXBwb3J0cyQ4LnRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb24pIHtcbiAgICAvLyBTb21lIGJyb3dzZXJzIHNvcnQgPGFyZWE+IGluIERPTSBvcmRlciwgc29tZSBwbGFjZSB0aGUgPGFyZWE+c1xuICAgIC8vIHdoZXJlIHRoZSA8aW1nPiByZWZlcmVjaW5nIHRoZW0gd291bGQndmUgYmVlbiBpbiBET00gb3JkZXIuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy81XG4gICAgZWxlbWVudHMgPSBzb3J0QXJlYShlbGVtZW50cywgX2NvbnRleHQpXG4gIH1cblxuICBlbGVtZW50cyA9IHNvcnRUYWJpbmRleChlbGVtZW50cylcbiAgcmV0dXJuIGVsZW1lbnRzXG59XG5cbmZ1bmN0aW9uIHF1ZXJ5VGFic2VxdWVuY2UoKSB7XG4gIHZhciBfcmVmID1cbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgY29udGV4dCA9IF9yZWYuY29udGV4dCxcbiAgICBpbmNsdWRlQ29udGV4dCA9IF9yZWYuaW5jbHVkZUNvbnRleHQsXG4gICAgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICBzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3lcblxuICBpZiAoIXN1cHBvcnRzJDgpIHtcbiAgICBzdXBwb3J0cyQ4ID0gX3N1cHBvcnRzKClcbiAgfVxuXG4gIHZhciBfY29udGV4dCA9IG5vZGVBcnJheShjb250ZXh0KVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgdmFyIGVsZW1lbnRzID0gcXVlcnlUYWJiYWJsZSh7XG4gICAgY29udGV4dDogX2NvbnRleHQsXG4gICAgaW5jbHVkZUNvbnRleHQ6IGluY2x1ZGVDb250ZXh0LFxuICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgc3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICB9KVxuXG4gIGlmIChkb2N1bWVudC5ib2R5LmNyZWF0ZVNoYWRvd1Jvb3QgJiYgcGxhdGZvcm0uaXMuQkxJTkspIHtcbiAgICAvLyBzb3J0IHRhYmluZGV4IGxvY2FsaXplZCB0byBzaGFkb3cgZG9tXG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvNlxuICAgIGVsZW1lbnRzID0gc29ydFNoYWRvd2VkKGVsZW1lbnRzLCBfY29udGV4dCwgc29ydEVsZW1lbnRzKVxuICB9IGVsc2Uge1xuICAgIGVsZW1lbnRzID0gc29ydEVsZW1lbnRzKGVsZW1lbnRzLCBfY29udGV4dClcbiAgfVxuXG4gIGlmIChpbmNsdWRlQ29udGV4dCkge1xuICAgIC8vIGlmIHdlIGluY2x1ZGUgdGhlIGNvbnRleHQgaXRzZWxmLCBpdCBoYXMgdG8gYmUgdGhlIGZpcnN0XG4gICAgLy8gZWxlbWVudCBvZiB0aGUgc2VxdWVuY2VcbiAgICBlbGVtZW50cyA9IG1vdmVDb250ZXh0VG9CZWdpbm5pbmcoZWxlbWVudHMsIF9jb250ZXh0KVxuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRzXG59XG5cbi8vIGNvZGVzIG1vc3RseSBjbG9uZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2p3ZXJ0eS9ibG9iL21hc3Rlci9qd2VydHkuanNcbi8vIGRlbGliZXJhdGVseSBub3QgZXhwb3NpbmcgY2hhcmFjdGVycyBsaWtlIDwsLi0jKiBiZWNhdXNlIHRoZXkgdmFyeSAqd2lsZGx5KlxuLy8gYWNyb3NzIGtleWJvYXJkIGxheW91dHMgYW5kIG1heSBjYXVzZSB2YXJpb3VzIHByb2JsZW1zXG4vLyAoZS5nLiBcIipcIiBpcyBcIlNoaWZ0ICtcIiBvbiBhIEdlcm1hbiBNYWMga2V5Ym9hcmQpXG4vLyAoZS5nLiBcIkBcIiBpcyBcIkFsdCBMXCIgb24gYSBHZXJtYW4gTWFjIGtleWJvYXJkKVxuXG52YXIga2V5Y29kZSA9IHtcbiAgLy8gRWxlbWVudCBGb2N1c1xuICB0YWI6IDksXG5cbiAgLy8gTmF2aWdhdGlvblxuICBsZWZ0OiAzNyxcbiAgdXA6IDM4LFxuICByaWdodDogMzksXG4gIGRvd246IDQwLFxuICBwYWdlVXA6IDMzLFxuICAncGFnZS11cCc6IDMzLFxuICBwYWdlRG93bjogMzQsXG4gICdwYWdlLWRvd24nOiAzNCxcbiAgZW5kOiAzNSxcbiAgaG9tZTogMzYsXG5cbiAgLy8gQWN0aW9uXG4gIGVudGVyOiAxMyxcbiAgZXNjYXBlOiAyNyxcbiAgc3BhY2U6IDMyLFxuXG4gIC8vIE1vZGlmaWVyXG4gIHNoaWZ0OiAxNixcbiAgY2Fwc0xvY2s6IDIwLFxuICAnY2Fwcy1sb2NrJzogMjAsXG4gIGN0cmw6IDE3LFxuICBhbHQ6IDE4LFxuICBtZXRhOiA5MSxcbiAgLy8gaW4gZmlyZWZveDogMjI0XG4gIC8vIG9uIG1hYyAoY2hyb21lKTogbWV0YS1sZWZ0PTkxLCBtZXRhLXJpZ2h0PTkzXG4gIC8vIG9uIHdpbiAoSUUxMSk6IG1ldGEtbGVmdD05MSwgbWV0YS1yaWdodD05MlxuICBwYXVzZTogMTksXG5cbiAgLy8gQ29udGVudCBNYW5pcHVsYXRpb25cbiAgaW5zZXJ0OiA0NSxcbiAgZGVsZXRlOiA0NixcbiAgYmFja3NwYWNlOiA4LFxuXG4gIC8vIHRoZSBzYW1lIGxvZ2ljYWwga2V5IG1heSBiZSBpZGVudGlmaWVkIHRocm91Z2ggZGlmZmVyZW50IGtleUNvZGVzXG4gIF9hbGlhczoge1xuICAgIDkxOiBbOTIsIDkzLCAyMjRdLFxuICB9LFxufVxuXG4vLyBGdW5jdGlvbiBrZXlzICgxMTIgLSAxMzcpXG4vLyBOT1RFOiBub3QgZXZlcnkga2V5Ym9hcmQga25vd3MgRjEzK1xuZm9yICh2YXIgbiA9IDE7IG4gPCAyNjsgbisrKSB7XG4gIGtleWNvZGVbJ2YnICsgbl0gPSBuICsgMTExXG59XG5cbi8vIE51bWJlciBrZXlzICg0OC01NywgbnVtcGFkIDk2LTEwNSlcbi8vIE5PVEU6IG5vdCBldmVyeSBrZXlib2FyZCBrbm93cyBudW0tMCtcbmZvciAodmFyIF9uID0gMDsgX24gPCAxMDsgX24rKykge1xuICB2YXIgY29kZSA9IF9uICsgNDhcbiAgdmFyIG51bUNvZGUgPSBfbiArIDk2XG4gIGtleWNvZGVbX25dID0gY29kZVxuICBrZXljb2RlWydudW0tJyArIF9uXSA9IG51bUNvZGVcbiAga2V5Y29kZS5fYWxpYXNbY29kZV0gPSBbbnVtQ29kZV1cbn1cblxuLy8gTGF0aW4gY2hhcmFjdGVycyAoNjUgLSA5MClcbmZvciAodmFyIF9uMiA9IDA7IF9uMiA8IDI2OyBfbjIrKykge1xuICB2YXIgX2NvZGUgPSBfbjIgKyA2NVxuICB2YXIgbmFtZSQxID0gU3RyaW5nLmZyb21DaGFyQ29kZShfY29kZSkudG9Mb3dlckNhc2UoKVxuICBrZXljb2RlW25hbWUkMV0gPSBfY29kZVxufVxuXG52YXIgbW9kaWZpZXIgPSB7XG4gIGFsdDogJ2FsdEtleScsXG4gIGN0cmw6ICdjdHJsS2V5JyxcbiAgbWV0YTogJ21ldGFLZXknLFxuICBzaGlmdDogJ3NoaWZ0S2V5Jyxcbn1cblxudmFyIG1vZGlmaWVyU2VxdWVuY2UgPSBPYmplY3Qua2V5cyhtb2RpZmllcikubWFwKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBtb2RpZmllcltuYW1lXVxufSlcblxuZnVuY3Rpb24gY3JlYXRlRXhwZWN0ZWRNb2RpZmllcnMoaWdub3JlTW9kaWZpZXJzKSB7XG4gIHZhciB2YWx1ZSA9IGlnbm9yZU1vZGlmaWVycyA/IG51bGwgOiBmYWxzZVxuICByZXR1cm4ge1xuICAgIGFsdEtleTogdmFsdWUsXG4gICAgY3RybEtleTogdmFsdWUsXG4gICAgbWV0YUtleTogdmFsdWUsXG4gICAgc2hpZnRLZXk6IHZhbHVlLFxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcnMobW9kaWZpZXJzKSB7XG4gIHZhciBpZ25vcmVNb2RpZmllcnMgPSBtb2RpZmllcnMuaW5kZXhPZignKicpICE9PSAtMVxuICB2YXIgZXhwZWN0ZWQgPSBjcmVhdGVFeHBlY3RlZE1vZGlmaWVycyhpZ25vcmVNb2RpZmllcnMpXG5cbiAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgaWYgKHRva2VuID09PSAnKicpIHtcbiAgICAgIC8vIHdlJ3ZlIGFscmVhZHkgY292ZXJlZCB0aGUgYWxsLWluIG9wZXJhdG9yXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyB3ZSB3YW50IHRoZSBtb2RpZmllciBwcmVzc2VkXG4gICAgdmFyIHZhbHVlID0gdHJ1ZVxuICAgIHZhciBvcGVyYXRvciA9IHRva2VuLnNsaWNlKDAsIDEpXG4gICAgaWYgKG9wZXJhdG9yID09PSAnPycpIHtcbiAgICAgIC8vIHdlIGRvbid0IGNhcmUgaWYgdGhlIG1vZGlmaWVyIGlzIHByZXNzZWRcbiAgICAgIHZhbHVlID0gbnVsbFxuICAgIH0gZWxzZSBpZiAob3BlcmF0b3IgPT09ICchJykge1xuICAgICAgLy8gd2UgZG8gbm90IHdhbnQgdGhlIG1vZGlmaWVyIHByZXNzZWRcbiAgICAgIHZhbHVlID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT09IHRydWUpIHtcbiAgICAgIC8vIGNvbXBlbnNhdGUgZm9yIHRoZSBtb2RpZmllcidzIG9wZXJhdG9yXG4gICAgICB0b2tlbiA9IHRva2VuLnNsaWNlKDEpXG4gICAgfVxuXG4gICAgdmFyIHByb3BlcnR5TmFtZSA9IG1vZGlmaWVyW3Rva2VuXVxuICAgIGlmICghcHJvcGVydHlOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIG1vZGlmaWVyIFwiJyArIHRva2VuICsgJ1wiJylcbiAgICB9XG5cbiAgICBleHBlY3RlZFtwcm9wZXJ0eU5hbWVdID0gdmFsdWVcbiAgfSlcblxuICByZXR1cm4gZXhwZWN0ZWRcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUtleShrZXkpIHtcbiAgdmFyIGNvZGUgPSBrZXljb2RlW2tleV0gfHwgcGFyc2VJbnQoa2V5LCAxMClcbiAgaWYgKCFjb2RlIHx8IHR5cGVvZiBjb2RlICE9PSAnbnVtYmVyJyB8fCBpc05hTihjb2RlKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24ga2V5IFwiJyArIGtleSArICdcIicpXG4gIH1cblxuICByZXR1cm4gW2NvZGVdLmNvbmNhdChrZXljb2RlLl9hbGlhc1tjb2RlXSB8fCBbXSlcbn1cblxuZnVuY3Rpb24gbWF0Y2hNb2RpZmllcnMoZXhwZWN0ZWQsIGV2ZW50KSB7XG4gIC8vIHJldHVybnMgdHJ1ZSBvbiBtYXRjaFxuICByZXR1cm4gIW1vZGlmaWVyU2VxdWVuY2Uuc29tZShmdW5jdGlvbiAocHJvcCkge1xuICAgIC8vIHJldHVybnMgdHJ1ZSBvbiBtaXNtYXRjaFxuICAgIHJldHVybiAoXG4gICAgICB0eXBlb2YgZXhwZWN0ZWRbcHJvcF0gPT09ICdib29sZWFuJyAmJlxuICAgICAgQm9vbGVhbihldmVudFtwcm9wXSkgIT09IGV4cGVjdGVkW3Byb3BdXG4gICAgKVxuICB9KVxufVxuXG5mdW5jdGlvbiBrZXlCaW5kaW5nKHRleHQpIHtcbiAgcmV0dXJuIHRleHQuc3BsaXQoL1xccysvKS5tYXAoZnVuY3Rpb24gKF90ZXh0KSB7XG4gICAgdmFyIHRva2VucyA9IF90ZXh0LnNwbGl0KCcrJylcbiAgICB2YXIgX21vZGlmaWVycyA9IHJlc29sdmVNb2RpZmllcnModG9rZW5zLnNsaWNlKDAsIC0xKSlcbiAgICB2YXIgX2tleUNvZGVzID0gcmVzb2x2ZUtleSh0b2tlbnMuc2xpY2UoLTEpKVxuICAgIHJldHVybiB7XG4gICAgICBrZXlDb2RlczogX2tleUNvZGVzLFxuICAgICAgbW9kaWZpZXJzOiBfbW9kaWZpZXJzLFxuICAgICAgbWF0Y2hNb2RpZmllcnM6IG1hdGNoTW9kaWZpZXJzLmJpbmQobnVsbCwgX21vZGlmaWVycyksXG4gICAgfVxuICB9KVxufVxuXG4vLyBOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIGlzIGF2YWlsYWJsZSBzaW5jZSBJRTlcbi8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuXG4vLyBjYWxsYmFjayByZXR1cm5zIHRydWUgd2hlbiBlbGVtZW50IGlzIGNvbnRhaW5lZCBieSBwYXJlbnQgb3IgaXMgdGhlIHBhcmVudCBzdWl0ZWQgZm9yIHVzZSB3aXRoIEFycmF5LnNvbWUoKVxuLypcbiAgVVNBR0U6XG4gICAgdmFyIGlzQ2hpbGRPZiA9IGdldFBhcmVudENvbXBhcmF0b3Ioe3BhcmVudDogc29tZU5vZGV9KTtcbiAgICBsaXN0T2ZFbGVtZW50cy5zb21lKGlzQ2hpbGRPZilcbiovXG5cbmZ1bmN0aW9uIGdldFBhcmVudENvbXBhcmF0b3IoKSB7XG4gIHZhciBfcmVmID1cbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgcGFyZW50ID0gX3JlZi5wYXJlbnQsXG4gICAgZWxlbWVudCA9IF9yZWYuZWxlbWVudCxcbiAgICBpbmNsdWRlU2VsZiA9IF9yZWYuaW5jbHVkZVNlbGZcblxuICBpZiAocGFyZW50KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlzQ2hpbGRPZihub2RlKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgKGluY2x1ZGVTZWxmICYmIG5vZGUgPT09IHBhcmVudCkgfHxcbiAgICAgICAgICBwYXJlbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24obm9kZSkgJlxuICAgICAgICAgICAgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQllcbiAgICAgIClcbiAgICB9XG4gIH0gZWxzZSBpZiAoZWxlbWVudCkge1xuICAgIHJldHVybiBmdW5jdGlvbiBpc1BhcmVudE9mKG5vZGUpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAoaW5jbHVkZVNlbGYgJiYgZWxlbWVudCA9PT0gbm9kZSkgfHxcbiAgICAgICAgICBub2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVsZW1lbnQpICZcbiAgICAgICAgICAgIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAndXRpbC9jb21wYXJlLXBvc2l0aW9uI2dldFBhcmVudENvbXBhcmF0b3IgcmVxdWlyZWQgZWl0aGVyIG9wdGlvbnMucGFyZW50IG9yIG9wdGlvbnMuZWxlbWVudCdcbiAgKVxufVxuXG4vLyBCdWcgMjg2OTMzIC0gS2V5IGV2ZW50cyBpbiB0aGUgYXV0b2NvbXBsZXRlIHBvcHVwIHNob3VsZCBiZSBoaWRkZW4gZnJvbSBwYWdlIHNjcmlwdHNcbi8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTI4NjkzM1xuXG5mdW5jdGlvbiB3aGVuS2V5KCkge1xuICB2YXIgbWFwID1cbiAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9XG5cbiAgdmFyIGJpbmRpbmdzID0ge31cblxuICB2YXIgY29udGV4dCA9IG5vZGVBcnJheShtYXAuY29udGV4dClbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gIGRlbGV0ZSBtYXAuY29udGV4dFxuICB2YXIgZmlsdGVyID0gbm9kZUFycmF5KG1hcC5maWx0ZXIpXG4gIGRlbGV0ZSBtYXAuZmlsdGVyXG5cbiAgdmFyIG1hcEtleXMgPSBPYmplY3Qua2V5cyhtYXApXG4gIGlmICghbWFwS2V5cy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd3aGVuL2tleSByZXF1aXJlcyBhdCBsZWFzdCBvbmUgb3B0aW9uIGtleScpXG4gIH1cblxuICB2YXIgcmVnaXN0ZXJCaW5kaW5nID0gZnVuY3Rpb24gcmVnaXN0ZXJCaW5kaW5nKGV2ZW50KSB7XG4gICAgZXZlbnQua2V5Q29kZXMuZm9yRWFjaChmdW5jdGlvbiAoY29kZSkge1xuICAgICAgaWYgKCFiaW5kaW5nc1tjb2RlXSkge1xuICAgICAgICBiaW5kaW5nc1tjb2RlXSA9IFtdXG4gICAgICB9XG5cbiAgICAgIGJpbmRpbmdzW2NvZGVdLnB1c2goZXZlbnQpXG4gICAgfSlcbiAgfVxuXG4gIG1hcEtleXMuZm9yRWFjaChmdW5jdGlvbiAodGV4dCkge1xuICAgIGlmICh0eXBlb2YgbWFwW3RleHRdICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAnd2hlbi9rZXkgcmVxdWlyZXMgb3B0aW9uW1wiJyArIHRleHQgKyAnXCJdIHRvIGJlIGEgZnVuY3Rpb24nXG4gICAgICApXG4gICAgfVxuXG4gICAgdmFyIGFkZENhbGxiYWNrID0gZnVuY3Rpb24gYWRkQ2FsbGJhY2soZXZlbnQpIHtcbiAgICAgIGV2ZW50LmNhbGxiYWNrID0gbWFwW3RleHRdXG4gICAgICByZXR1cm4gZXZlbnRcbiAgICB9XG5cbiAgICBrZXlCaW5kaW5nKHRleHQpLm1hcChhZGRDYWxsYmFjaykuZm9yRWFjaChyZWdpc3RlckJpbmRpbmcpXG4gIH0pXG5cbiAgdmFyIGhhbmRsZUtleURvd24gPSBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChmaWx0ZXIubGVuZ3RoKSB7XG4gICAgICAvLyBpZ25vcmUgZWxlbWVudHMgd2l0aGluIHRoZSBleGVtcHRlZCBzdWItdHJlZXNcbiAgICAgIHZhciBpc1BhcmVudE9mRWxlbWVudCA9IGdldFBhcmVudENvbXBhcmF0b3Ioe1xuICAgICAgICBlbGVtZW50OiBldmVudC50YXJnZXQsXG4gICAgICAgIGluY2x1ZGVTZWxmOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIGlmIChmaWx0ZXIuc29tZShpc1BhcmVudE9mRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2hcbiAgICBpZiAoIWJpbmRpbmdzW2tleV0pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGJpbmRpbmdzW2tleV0uZm9yRWFjaChmdW5jdGlvbiAoX2V2ZW50KSB7XG4gICAgICBpZiAoIV9ldmVudC5tYXRjaE1vZGlmaWVycyhldmVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIF9ldmVudC5jYWxsYmFjay5jYWxsKGNvbnRleHQsIGV2ZW50LCBkaXNlbmdhZ2UpXG4gICAgfSlcbiAgfVxuXG4gIGNvbnRleHQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24sIGZhbHNlKVxuXG4gIHZhciBkaXNlbmdhZ2UgPSBmdW5jdGlvbiBkaXNlbmdhZ2UoKSB7XG4gICAgY29udGV4dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93biwgZmFsc2UpXG4gIH1cblxuICByZXR1cm4geyBkaXNlbmdhZ2U6IGRpc2VuZ2FnZSB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uICh7IGNvbnRleHQgfSA9IHt9KSB7XG4gIGlmICghY29udGV4dCkge1xuICAgIGNvbnRleHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0aGUgc3VwcG9ydHMgdGVzdHMgYXJlIHJ1biBiZWZvcmUgaW50ZXJjZXB0aW5nIHRoZSBUYWIga2V5LFxuICAvLyBvciBJRTEwIGFuZCBJRTExIHdpbGwgZmFpbCB0byBwcm9jZXNzIHRoZSBmaXJzdCBUYWIga2V5IGV2ZW50LiBOb3RcbiAgLy8gbGltaXRpbmcgdGhpcyB3YXJtLXVwIHRvIElFIGJlY2F1c2UgaXQgbWF5IGJlIGEgcHJvYmxlbSBlbHNld2hlcmUsIHRvby5cbiAgcXVlcnlUYWJzZXF1ZW5jZSgpXG5cbiAgcmV0dXJuIHdoZW5LZXkoe1xuICAgIC8vIFNhZmFyaSBvbiBPU1ggbWF5IHJlcXVpcmUgQUxUK1RBQiB0byByZWFjaCBsaW5rcyxcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8xNDZcbiAgICAnP2FsdCs/c2hpZnQrdGFiJzogZnVuY3Rpb24gYWx0U2hpZnRUYWIoZXZlbnQpIHtcbiAgICAgIC8vIHdlJ3JlIGNvbXBsZXRlbHkgdGFraW5nIG92ZXIgdGhlIFRhYiBrZXkgaGFuZGxpbmdcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgICAgdmFyIHNlcXVlbmNlID0gcXVlcnlUYWJzZXF1ZW5jZSh7XG4gICAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICB9KVxuXG4gICAgICB2YXIgYmFja3dhcmQgPSBldmVudC5zaGlmdEtleVxuICAgICAgdmFyIGZpcnN0ID0gc2VxdWVuY2VbMF1cbiAgICAgIHZhciBsYXN0ID0gc2VxdWVuY2Vbc2VxdWVuY2UubGVuZ3RoIC0gMV1cblxuICAgICAgLy8gd3JhcCBhcm91bmQgZmlyc3QgdG8gbGFzdCwgbGFzdCB0byBmaXJzdFxuICAgICAgdmFyIHNvdXJjZSA9IGJhY2t3YXJkID8gZmlyc3QgOiBsYXN0XG4gICAgICB2YXIgdGFyZ2V0ID0gYmFja3dhcmQgPyBsYXN0IDogZmlyc3RcbiAgICAgIGlmIChpc0FjdGl2ZUVsZW1lbnQoc291cmNlKSkge1xuICAgICAgICB0YXJnZXQuZm9jdXMoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gZmluZCBjdXJyZW50IHBvc2l0aW9uIGluIHRhYnNlcXVlbmNlXG4gICAgICB2YXIgY3VycmVudEluZGV4ID0gdm9pZCAwXG4gICAgICB2YXIgZm91bmQgPSBzZXF1ZW5jZS5zb21lKGZ1bmN0aW9uIChlbGVtZW50LCBpbmRleCkge1xuICAgICAgICBpZiAoIWlzQWN0aXZlRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudEluZGV4ID0gaW5kZXhcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0pXG5cbiAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgLy8gcmVkaXJlY3QgdG8gZmlyc3QgYXMgd2UncmUgbm90IGluIG91ciB0YWJzZXF1ZW5jZVxuICAgICAgICBmaXJzdC5mb2N1cygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBzaGlmdCBmb2N1cyB0byBwcmV2aW91cy9uZXh0IGVsZW1lbnQgaW4gdGhlIHNlcXVlbmNlXG4gICAgICB2YXIgb2Zmc2V0ID0gYmFja3dhcmQgPyAtMSA6IDFcbiAgICAgIHNlcXVlbmNlW2N1cnJlbnRJbmRleCArIG9mZnNldF0uZm9jdXMoKVxuICAgIH0sXG4gIH0pXG59XG4iXSwibmFtZXMiOlsibm9kZUFycmF5IiwiaW5wdXQiLCJBcnJheSIsImlzQXJyYXkiLCJub2RlVHlwZSIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsInNsaWNlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsImNvbnRleHRUb0VsZW1lbnQiLCJfcmVmIiwiY29udGV4dCIsIl9yZWYkbGFiZWwiLCJsYWJlbCIsInJlc29sdmVEb2N1bWVudCIsImRlZmF1bHRUb0RvY3VtZW50IiwiZWxlbWVudCIsIk5vZGUiLCJET0NVTUVOVF9OT0RFIiwiZG9jdW1lbnRFbGVtZW50IiwiRUxFTUVOVF9OT0RFIiwiRE9DVU1FTlRfRlJBR01FTlRfTk9ERSIsImdldFNoYWRvd0hvc3QiLCJhcmd1bWVudHMiLCJjb250YWluZXIiLCJwYXJlbnROb2RlIiwiaG9zdCIsImdldERvY3VtZW50Iiwibm9kZSIsIm93bmVyRG9jdW1lbnQiLCJpc0FjdGl2ZUVsZW1lbnQiLCJfZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50Iiwic2hhZG93SG9zdCIsInNoYWRvd1Jvb3QiLCJnZXRQYXJlbnRzIiwibGlzdCIsInB1c2giLCJuYW1lcyIsIm5hbWUiLCJmaW5kTWV0aG9kTmFtZSIsInNvbWUiLCJfbmFtZSIsImVsZW1lbnRNYXRjaGVzIiwic2VsZWN0b3IiLCJwbGF0Zm9ybSIsIkpTT04iLCJwYXJzZSIsInN0cmluZ2lmeSIsIl9wbGF0Zm9ybSIsIm9zIiwiZmFtaWx5IiwiQU5EUk9JRCIsIldJTkRPV1MiLCJPU1giLCJJT1MiLCJCTElOSyIsImxheW91dCIsIkdFQ0tPIiwiVFJJREVOVCIsIkVER0UiLCJXRUJLSVQiLCJ2ZXJzaW9uIiwicGFyc2VGbG9hdCIsIm1ham9yVmVyc2lvbiIsIk1hdGgiLCJmbG9vciIsImlzIiwiSUU5IiwiSUUxMCIsIklFMTEiLCJiZWZvcmUiLCJkYXRhIiwid2luZG93U2Nyb2xsVG9wIiwid2luZG93Iiwic2Nyb2xsVG9wIiwid2luZG93U2Nyb2xsTGVmdCIsInNjcm9sbExlZnQiLCJib2R5U2Nyb2xsVG9wIiwiYm9keSIsImJvZHlTY3JvbGxMZWZ0IiwiaWZyYW1lIiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsImFwcGVuZENoaWxkIiwiX3dpbmRvdyIsImNvbnRlbnRXaW5kb3ciLCJvcGVuIiwiY2xvc2UiLCJ3cmFwcGVyIiwidGVzdCIsIm9wdGlvbnMiLCJpbm5lckhUTUwiLCJmb2N1cyIsIm11dGF0ZSIsInZhbGlkYXRlIiwiYWZ0ZXIiLCJibHVyIiwicmVtb3ZlQ2hpbGQiLCJkZXRlY3RGb2N1cyIsInRlc3RzIiwicmVzdWx0cyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJ2ZXJzaW9uJDEiLCJyZWFkTG9jYWxTdG9yYWdlIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsImUiLCJ3cml0ZUxvY2FsU3RvcmFnZSIsInZhbHVlIiwiaGFzRm9jdXMiLCJyZW1vdmVJdGVtIiwic2V0SXRlbSIsInVzZXJBZ2VudCIsIm5hdmlnYXRvciIsImNhY2hlS2V5IiwiY2FjaGUiLCJjYWNoZSQxIiwiZ2V0Iiwic2V0IiwidmFsdWVzIiwiZm9yRWFjaCIsInRpbWUiLCJEYXRlIiwidG9JU09TdHJpbmciLCJjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yIiwiY29tYmluYXRvciIsInF1ZXJ5U2VsZWN0b3IiLCJub0Fycm93QXJyb3dBcnJvdyIsIm5vRGVlcCIsImdpZiIsImZvY3VzQXJlYUltZ1RhYmluZGV4IiwiZm9jdXNBcmVhVGFiaW5kZXgiLCJmb2N1c1RhcmdldCIsImZvY3VzQXJlYVdpdGhvdXRIcmVmIiwiZm9jdXNBdWRpb1dpdGhvdXRDb250cm9scyIsImludmFsaWRHaWYiLCJmb2N1c0Jyb2tlbkltYWdlTWFwIiwiZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveCIsImZvY3VzRmllbGRzZXREaXNhYmxlZCIsImZvY3VzRmllbGRzZXQiLCJmb2N1c0ZsZXhib3hDb250YWluZXIiLCJmb2N1c0Zvcm1EaXNhYmxlZCIsImZvY3VzSW1nSXNtYXAiLCJocmVmIiwiZm9jdXNJbWdVc2VtYXBUYWJpbmRleCIsImZvY3VzSW5IaWRkZW5JZnJhbWUiLCJpZnJhbWVEb2N1bWVudCIsInN0eWxlIiwidmlzaWJpbGl0eSIsInJlc3VsdCIsImZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0IiwiZm9jdXNJbnZhbGlkVGFiaW5kZXgiLCJmb2N1c0xhYmVsVGFiaW5kZXgiLCJ2YXJpYWJsZVRvUHJldmVudERlYWRDb2RlRWxpbWluYXRpb24iLCJvZmZzZXRIZWlnaHQiLCJzdmciLCJmb2N1c09iamVjdFN2Z0hpZGRlbiIsImZvY3VzT2JqZWN0U3ZnIiwicmVzdWx0JDEiLCJmb2N1c09iamVjdFN3ZiIsImZvY3VzUmVkaXJlY3RJbWdVc2VtYXAiLCJ0YXJnZXQiLCJmb2N1c1JlZGlyZWN0TGVnZW5kIiwiZm9jdXNhYmxlIiwidGFiYmFibGUiLCJmb2N1c1Njcm9sbEJvZHkiLCJmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdyIsImZvY3VzU2Nyb2xsQ29udGFpbmVyIiwiZm9jdXNTdW1tYXJ5IiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJtYWtlRm9jdXNhYmxlRm9yZWlnbk9iamVjdCIsImZvcmVpZ25PYmplY3QiLCJjcmVhdGVFbGVtZW50TlMiLCJ3aWR0aCIsImJhc2VWYWwiLCJoZWlnaHQiLCJsYXN0Q2hpbGQiLCJ0eXBlIiwiZm9jdXNTdmdGb3JlaWduT2JqZWN0SGFjayIsImlzU3ZnRWxlbWVudCIsIm93bmVyU1ZHRWxlbWVudCIsIm5vZGVOYW1lIiwidG9Mb3dlckNhc2UiLCJkaXNhYmxlZCIsImdlbmVyYXRlIiwiSFRNTEVsZW1lbnQiLCJwcm90b3R5cGUiLCJmb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSIsImZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUiLCJmb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGUiLCJmb2N1c1N2Z1VzZVRhYmluZGV4Iiwiam9pbiIsImZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJyZXN1bHQkMiIsIkJvb2xlYW4iLCJTVkdFbGVtZW50IiwiZm9jdXNTdmdJbklmcmFtZSIsImZvY3VzU3ZnIiwiZmlyc3RDaGlsZCIsImZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnMiLCJmb2N1c1RhYmxlIiwiZnJhZ21lbnQiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiZm9jdXNWaWRlb1dpdGhvdXRDb250cm9scyIsInJlc3VsdCQzIiwidGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbiIsInRlc3RDYWxsYmFja3MiLCJ0ZXN0RGVzY3JpcHRpb25zIiwiZXhlY3V0ZVRlc3RzIiwic3VwcG9ydHNDYWNoZSIsIl9zdXBwb3J0cyIsInN1cHBvcnRzIiwidmFsaWRJbnRlZ2VyUGF0dGVybk5vVHJhaWxpbmciLCJ2YWxpZEludGVnZXJQYXR0ZXJuV2l0aFRyYWlsaW5nIiwiaXNWYWxpZFRhYmluZGV4IiwidmFsaWRJbnRlZ2VyUGF0dGVybiIsImhhc1RhYmluZGV4IiwiaGFzQXR0cmlidXRlIiwiaGFzVGFiSW5kZXgiLCJ0YWJpbmRleCIsImdldEF0dHJpYnV0ZSIsInRhYmluZGV4VmFsdWUiLCJhdHRyaWJ1dGVOYW1lIiwicGFyc2VJbnQiLCJpc05hTiIsImlzVXNlck1vZGlmeVdyaXRhYmxlIiwidXNlck1vZGlmeSIsIndlYmtpdFVzZXJNb2RpZnkiLCJpbmRleE9mIiwiaGFzQ3NzT3ZlcmZsb3dTY3JvbGwiLCJnZXRQcm9wZXJ0eVZhbHVlIiwib3ZlcmZsb3ciLCJoYXNDc3NEaXNwbGF5RmxleCIsImRpc3BsYXkiLCJpc1Njcm9sbGFibGVDb250YWluZXIiLCJwYXJlbnROb2RlTmFtZSIsInBhcmVudFN0eWxlIiwic2Nyb2xsSGVpZ2h0Iiwib2Zmc2V0V2lkdGgiLCJzY3JvbGxXaWR0aCIsInN1cHBvcnRzJDEiLCJpc0ZvY3VzUmVsZXZhbnRSdWxlcyIsIl9yZWYkZXhjZXB0IiwiZXhjZXB0IiwiZmxleGJveCIsInNjcm9sbGFibGUiLCJzaGFkb3ciLCJzdmdUeXBlIiwidmFsaWRUYWJpbmRleCIsImlzU3ZnQ29udGVudCIsImZvY3VzYWJsZUF0dHJpYnV0ZSIsImdldENvbXB1dGVkU3R5bGUiLCJoYXNMaW5rUGFyZW50IiwicGFyZW50IiwicGFyZW50RWxlbWVudCIsImlzRm9jdXNSZWxldmFudCIsInJ1bGVzIiwiZmluZEluZGV4IiwiYXJyYXkiLCJjYWxsYmFjayIsImkiLCJnZXRDb250ZW50RG9jdW1lbnQiLCJjb250ZW50RG9jdW1lbnQiLCJnZXRTVkdEb2N1bWVudCIsImdldFdpbmRvdyIsImRlZmF1bHRWaWV3Iiwic2hhZG93UHJlZml4Iiwic2VsZWN0SW5TaGFkb3dzIiwib3BlcmF0b3IiLCJyZXBsYWNlIiwic3BsaXQiLCJmaW5kRG9jdW1lbnRIb3N0RWxlbWVudCIsIl9mcmFtZUVsZW1lbnQiLCJwb3RlbnRpYWxIb3N0cyIsImdldEZyYW1lRWxlbWVudCIsImZyYW1lRWxlbWVudCIsIm5vdFJlbmRlcmVkRWxlbWVudHNQYXR0ZXJuIiwiY29tcHV0ZWRTdHlsZSIsInByb3BlcnR5Iiwibm90RGlzcGxheWVkIiwiX3BhdGgiLCJub3RWaXNpYmxlIiwiaGlkZGVuIiwidmlzaWJsZSIsImNvbGxhcHNlZFBhcmVudCIsIm9mZnNldCIsImlzVmlzaWJsZVJ1bGVzIiwibm90UmVuZGVyZWQiLCJjc3NEaXNwbGF5IiwiY3NzVmlzaWJpbGl0eSIsImRldGFpbHNFbGVtZW50IiwiYnJvd3NpbmdDb250ZXh0IiwiaXNBdWRpb1dpdGhvdXRDb250cm9scyIsIl9pc1Zpc2libGUiLCJpc1Zpc2libGUiLCJnZXRNYXBCeU5hbWUiLCJjc3NFc2NhcGUiLCJnZXRJbWFnZU9mQXJlYSIsInN1cHBvcnRzJDIiLCJpc1ZhbGlkQXJlYSIsImltZyIsImNvbXBsZXRlIiwibmF0dXJhbEhlaWdodCIsImNoaWxkT2ZJbnRlcmFjdGl2ZSIsIl9lbGVtZW50Iiwic3VwcG9ydHMkMyIsImRpc2FibGVkRWxlbWVudHNQYXR0ZXJuIiwiZGlzYWJsZWRFbGVtZW50cyIsInNlbGVjdCIsInRleHRhcmVhIiwiYnV0dG9uIiwiZmllbGRzZXQiLCJmb3JtIiwiaXNOYXRpdmVEaXNhYmxlZFN1cHBvcnRlZCIsIlJlZ0V4cCIsInN1cHBvcnRzJDQiLCJpc0Rpc2FibGVkRmllbGRzZXQiLCJpc0Rpc2FibGVkRm9ybSIsImlzRGlzYWJsZWQiLCJwYXJlbnRzIiwiaXNPbmx5VGFiYmFibGVSdWxlcyIsIm9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQiLCJpc09ubHlUYWJiYWJsZSIsInN1cHBvcnRzJDUiLCJpc09ubHlGb2N1c1JlbGV2YW50IiwiX3RhYmluZGV4IiwiaXNGb2N1c2FibGVSdWxlcyIsIm9ubHlUYWJiYWJsZSIsIl9pc09ubHlUYWJiYWJsZSIsImZvY3VzUmVsZXZhbnQiLCJ2aXNpYmlsaXR5T3B0aW9ucyIsIl9ub2RlTmFtZTIiLCJfbm9kZU5hbWUiLCJpc0ZvY3VzYWJsZSIsImNyZWF0ZUZpbHRlciIsImNvbmRpdGlvbiIsImZpbHRlciIsIk5vZGVGaWx0ZXIiLCJGSUxURVJfQUNDRVBUIiwiRklMVEVSX1NLSVAiLCJhY2NlcHROb2RlIiwiUG9zc2libHlGb2N1c2FibGVGaWx0ZXIiLCJxdWVyeUZvY3VzYWJsZVN0cmljdCIsImluY2x1ZGVDb250ZXh0IiwiaW5jbHVkZU9ubHlUYWJiYWJsZSIsInN0cmF0ZWd5IiwiX2lzRm9jdXNhYmxlIiwid2Fsa2VyIiwiY3JlYXRlVHJlZVdhbGtlciIsIlNIT1dfRUxFTUVOVCIsIm5leHROb2RlIiwiY3VycmVudE5vZGUiLCJjb25jYXQiLCJ1bnNoaWZ0Iiwic3VwcG9ydHMkNiIsInNlbGVjdG9yJDEiLCJzZWxlY3RvciQyIiwicXVlcnlGb2N1c2FibGVRdWljayIsIl9zZWxlY3RvciIsImVsZW1lbnRzIiwicXVlcnlGb2N1c2FibGUiLCJfcmVmJHN0cmF0ZWd5Iiwic3VwcG9ydHMkNyIsImZvY3VzYWJsZUVsZW1lbnRzUGF0dGVybiIsImlzVGFiYmFibGVSdWxlcyIsImZyYW1lTm9kZU5hbWUiLCJpc0ZpeGVkQmxpbmsiLCJoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lIiwiaGFzVGFiYmFibGVUYWJpbmRleCIsInBvdGVudGlhbGx5VGFiYmFibGUiLCJ0YWJJbmRleCIsIl9zdHlsZSIsIl9zdHlsZTIiLCJpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveCIsImlzVGFiYmFibGVXaXRob3V0RmxleGJveCIsImlzVGFiYmFibGUiLCJxdWVyeVRhYmJhYmxlIiwiX2lzVGFiYmFibGUiLCJjb21wYXJlRG9tUG9zaXRpb24iLCJhIiwiYiIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HIiwic29ydERvbU9yZGVyIiwic29ydCIsImdldEZpcnN0U3VjY2Vzc29yT2Zmc2V0IiwiZmluZEluc2VydGlvbk9mZnNldHMiLCJyZXNvbHZlRWxlbWVudCIsImluc2VydGlvbnMiLCJpbmplY3Rpb25zIiwiaW5zZXJ0RWxlbWVudHNBdE9mZnNldHMiLCJpbnNlcnRlZCIsImluc2VydGlvbiIsInJlbW92ZSIsImFyZ3MiLCJzcGxpY2UiLCJhcHBseSIsIm1lcmdlSW5Eb21PcmRlciIsIl9saXN0IiwiX2VsZW1lbnRzIiwiX2NyZWF0ZUNsYXNzIiwiZGVmaW5lUHJvcGVydGllcyIsInByb3BzIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImRlZmluZVByb3BlcnR5IiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIk1hcHMiLCJtYXBzIiwiZ2V0QXJlYXNGb3IiLCJhZGRNYXBCeU5hbWUiLCJleHRyYWN0QXJlYXNGcm9tTGlzdCIsInNvcnRBcmVhIiwidXNlbWFwcyIsImltYWdlIiwiX2NyZWF0ZUNsYXNzJDEiLCJfY2xhc3NDYWxsQ2hlY2skMSIsIlNoYWRvd3MiLCJzb3J0RWxlbWVudHMiLCJob3N0Q291bnRlciIsImluSG9zdCIsImluRG9jdW1lbnQiLCJob3N0cyIsIl9yZWdpc3Rlckhvc3QiLCJfc29ydGluZ0lkIiwicGFyZW50SG9zdCIsIl9yZWdpc3Rlckhvc3RQYXJlbnQiLCJfcmVnaXN0ZXJFbGVtZW50IiwiZXh0cmFjdEVsZW1lbnRzIiwiX2luamVjdEhvc3RzIiwiX3JlcGxhY2VIb3N0cyIsIl9jbGVhbnVwIiwiX2NvbnRleHQiLCJfbWVyZ2UiLCJtZXJnZWQiLCJfcmVzb2x2ZUhvc3RFbGVtZW50IiwiYmluZCIsInNvcnRTaGFkb3dlZCIsInNoYWRvd3MiLCJzb3J0VGFiaW5kZXgiLCJpbmRleGVzIiwibm9ybWFsIiwicmVkdWNlUmlnaHQiLCJwcmV2aW91cyIsImN1cnJlbnQiLCJzdXBwb3J0cyQ4IiwibW92ZUNvbnRleHRUb0JlZ2lubmluZyIsInBvcyIsInRtcCIsInF1ZXJ5VGFic2VxdWVuY2UiLCJjcmVhdGVTaGFkb3dSb290Iiwia2V5Y29kZSIsInRhYiIsImxlZnQiLCJ1cCIsInJpZ2h0IiwiZG93biIsInBhZ2VVcCIsInBhZ2VEb3duIiwiZW5kIiwiaG9tZSIsImVudGVyIiwiZXNjYXBlIiwic3BhY2UiLCJzaGlmdCIsImNhcHNMb2NrIiwiY3RybCIsImFsdCIsIm1ldGEiLCJwYXVzZSIsImluc2VydCIsImRlbGV0ZSIsImJhY2tzcGFjZSIsIl9hbGlhcyIsIm4iLCJfbiIsImNvZGUiLCJudW1Db2RlIiwiX24yIiwiX2NvZGUiLCJuYW1lJDEiLCJmcm9tQ2hhckNvZGUiLCJtb2RpZmllciIsIm1vZGlmaWVyU2VxdWVuY2UiLCJjcmVhdGVFeHBlY3RlZE1vZGlmaWVycyIsImlnbm9yZU1vZGlmaWVycyIsImFsdEtleSIsImN0cmxLZXkiLCJtZXRhS2V5Iiwic2hpZnRLZXkiLCJyZXNvbHZlTW9kaWZpZXJzIiwibW9kaWZpZXJzIiwiZXhwZWN0ZWQiLCJ0b2tlbiIsInByb3BlcnR5TmFtZSIsInJlc29sdmVLZXkiLCJtYXRjaE1vZGlmaWVycyIsImV2ZW50IiwicHJvcCIsImtleUJpbmRpbmciLCJ0ZXh0IiwiX3RleHQiLCJ0b2tlbnMiLCJfbW9kaWZpZXJzIiwiX2tleUNvZGVzIiwia2V5Q29kZXMiLCJnZXRQYXJlbnRDb21wYXJhdG9yIiwiaW5jbHVkZVNlbGYiLCJpc0NoaWxkT2YiLCJET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkiLCJpc1BhcmVudE9mIiwid2hlbktleSIsImJpbmRpbmdzIiwibWFwS2V5cyIsInJlZ2lzdGVyQmluZGluZyIsImFkZENhbGxiYWNrIiwiaGFuZGxlS2V5RG93biIsImRlZmF1bHRQcmV2ZW50ZWQiLCJpc1BhcmVudE9mRWxlbWVudCIsImtleUNvZGUiLCJ3aGljaCIsIl9ldmVudCIsImRpc2VuZ2FnZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWx0U2hpZnRUYWIiLCJwcmV2ZW50RGVmYXVsdCIsInNlcXVlbmNlIiwiYmFja3dhcmQiLCJmaXJzdCIsImxhc3QiLCJzb3VyY2UiLCJjdXJyZW50SW5kZXgiLCJmb3VuZCIsImluZGV4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js":
|
||
/*!**********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js ***!
|
||
\**********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"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 _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n overflow: auto;\\n z-index: 9000;\\n\\n display: flex;\\n align-content: center;\\n align-items: center;\\n flex-direction: column;\\n padding: 10vh 15px 0;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n padding: 15px 15px 0;\\n }\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: var(--color-backdrop);\\n pointer-events: all;\\n z-index: -1;\\n }\\n\\n [data-nextjs-dialog-backdrop-fixed] {\\n cursor: not-allowed;\\n -webkit-backdrop-filter: blur(8px);\\n backdrop-filter: blur(8px);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7OzswQ0EyQ1NBOzs7ZUFBQUE7Ozs7MENBM0NtQjs7Ozs7Ozs7OztBQUU1QixNQUFNQSxTQUFBQSxDQUFBQSxHQUFTQyxjQUFBQSxJQUFBQSxFQUFHIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcT3ZlcmxheVxcc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHotaW5kZXg6IDkwMDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMTB2aCAxNXB4IDA7XG4gIH1cblxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XG4gICAgICBwYWRkaW5nOiAxNXB4IDE1cHggMDtcbiAgICB9XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcCk7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3AtZml4ZWRdIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gIH1cbmBcblxuZXhwb3J0IHsgc3R5bGVzIH1cbiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJjc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js":
|
||
/*!********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js ***!
|
||
\********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ShadowPortal\", ({\n enumerable: true,\n get: function() {\n return ShadowPortal;\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 _reactdom = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\");\nfunction ShadowPortal(param) {\n let { children } = param;\n let portalNode = _react.useRef(null);\n let shadowNode = _react.useRef(null);\n let [, forceUpdate] = _react.useState();\n _react.useLayoutEffect({\n \"ShadowPortal.useLayoutEffect\": ()=>{\n const ownerDocument = document;\n portalNode.current = ownerDocument.createElement('nextjs-portal');\n shadowNode.current = portalNode.current.attachShadow({\n mode: 'open'\n });\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return ({\n \"ShadowPortal.useLayoutEffect\": ()=>{\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n }\n })[\"ShadowPortal.useLayoutEffect\"];\n }\n }[\"ShadowPortal.useLayoutEffect\"], []);\n return shadowNode.current ? /*#__PURE__*/ (0, _reactdom.createPortal)(children, shadowNode.current) : 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=ShadowPortal.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvU2hhZG93UG9ydGFsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBR2dCQTs7O2VBQUFBOzs7OzZFQUhPO3NDQUNNO0FBRXRCLFNBQVNBLGFBQWEsS0FBMkM7SUFBM0MsTUFBRUMsUUFBUSxFQUFpQyxHQUEzQztJQUMzQixJQUFJQyxhQUFhQyxPQUFNQyxNQUFNLENBQXFCO0lBQ2xELElBQUlDLGFBQWFGLE9BQU1DLE1BQU0sQ0FBb0I7SUFDakQsSUFBSSxHQUFHRSxZQUFZLEdBQUdILE9BQU1JLFFBQVE7SUFFcENKLE9BQU1LLGVBQWU7d0NBQUM7WUFDcEIsTUFBTUMsZ0JBQWdCQztZQUN0QlIsV0FBV1MsT0FBTyxHQUFHRixjQUFjRyxhQUFhLENBQUM7WUFDakRQLFdBQVdNLE9BQU8sR0FBR1QsV0FBV1MsT0FBTyxDQUFDRSxZQUFZLENBQUM7Z0JBQUVDLE1BQU07WUFBTztZQUNwRUwsY0FBY00sSUFBSSxDQUFDQyxXQUFXLENBQUNkLFdBQVdTLE9BQU87WUFDakRMLFlBQVksQ0FBQztZQUNiO2dEQUFPO29CQUNMLElBQUlKLFdBQVdTLE9BQU8sSUFBSVQsV0FBV1MsT0FBTyxDQUFDRixhQUFhLEVBQUU7d0JBQzFEUCxXQUFXUyxPQUFPLENBQUNGLGFBQWEsQ0FBQ00sSUFBSSxDQUFDRSxXQUFXLENBQUNmLFdBQVdTLE9BQU87b0JBQ3RFO2dCQUNGOztRQUNGO3VDQUFHLEVBQUU7SUFFTCxPQUFPTixXQUFXTSxPQUFPLGlCQUNyQk8sQ0FBQUEsR0FBQUEsVUFBQUEsWUFBQUEsRUFBYWpCLFVBQVVJLFdBQVdNLE9BQU8sSUFDekM7QUFDTiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXFNoYWRvd1BvcnRhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmV4cG9ydCBmdW5jdGlvbiBTaGFkb3dQb3J0YWwoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBsZXQgcG9ydGFsTm9kZSA9IFJlYWN0LnVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGxldCBzaGFkb3dOb2RlID0gUmVhY3QudXNlUmVmPFNoYWRvd1Jvb3QgfCBudWxsPihudWxsKVxuICBsZXQgWywgZm9yY2VVcGRhdGVdID0gUmVhY3QudXNlU3RhdGU8e30gfCB1bmRlZmluZWQ+KClcblxuICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSBkb2N1bWVudFxuICAgIHBvcnRhbE5vZGUuY3VycmVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbmV4dGpzLXBvcnRhbCcpXG4gICAgc2hhZG93Tm9kZS5jdXJyZW50ID0gcG9ydGFsTm9kZS5jdXJyZW50LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KVxuICAgIG93bmVyRG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpXG4gICAgZm9yY2VVcGRhdGUoe30pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxOb2RlLmN1cnJlbnQgJiYgcG9ydGFsTm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQpIHtcbiAgICAgICAgcG9ydGFsTm9kZS5jdXJyZW50Lm93bmVyRG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwb3J0YWxOb2RlLmN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXSlcblxuICByZXR1cm4gc2hhZG93Tm9kZS5jdXJyZW50XG4gICAgPyBjcmVhdGVQb3J0YWwoY2hpbGRyZW4sIHNoYWRvd05vZGUuY3VycmVudCBhcyBhbnkpXG4gICAgOiBudWxsXG59XG4iXSwibmFtZXMiOlsiU2hhZG93UG9ydGFsIiwiY2hpbGRyZW4iLCJwb3J0YWxOb2RlIiwiUmVhY3QiLCJ1c2VSZWYiLCJzaGFkb3dOb2RlIiwiZm9yY2VVcGRhdGUiLCJ1c2VTdGF0ZSIsInVzZUxheW91dEVmZmVjdCIsIm93bmVyRG9jdW1lbnQiLCJkb2N1bWVudCIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwiYXR0YWNoU2hhZG93IiwibW9kZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwiY3JlYXRlUG9ydGFsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js":
|
||
/*!***************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js ***!
|
||
\***************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"EditorLink\", ({\n enumerable: true,\n get: function() {\n return EditorLink;\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 _useopenineditor = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\nfunction EditorLink(param) {\n let { file, isSourceFile, location } = param;\n var _location_line, _location_column;\n const open = (0, _useopenineditor.useOpenInEditor)({\n file,\n lineNumber: (_location_line = location == null ? void 0 : location.line) != null ? _location_line : 1,\n column: (_location_column = location == null ? void 0 : location.column) != null ? _location_column : 0\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-with-open-in-editor-link\": true,\n \"data-with-open-in-editor-link-source-file\": isSourceFile ? true : undefined,\n \"data-with-open-in-editor-link-import-trace\": isSourceFile ? undefined : true,\n tabIndex: 10,\n role: 'link',\n onClick: open,\n title: 'Click to open in your editor',\n children: [\n file,\n location ? \":\" + location.line + \":\" + location.column : null,\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\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=EditorLink.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvRWRpdG9yTGluay5qcyIsIm1hcHBpbmdzIjoiOzs7OzhDQVdnQkE7OztlQUFBQTs7Ozs7NEVBWEU7NkNBQ2M7QUFVekIsU0FBU0EsV0FBVyxLQUFpRDtJQUFqRCxNQUFFQyxJQUFJLEVBQUVDLFlBQVksRUFBRUMsUUFBUSxFQUFtQixHQUFqRDtRQUdYQSxnQkFDSkE7SUFIVixNQUFNQyxPQUFPQyxDQUFBQSxHQUFBQSxpQkFBQUEsZUFBZSxFQUFDO1FBQzNCSjtRQUNBSyxZQUFZSCxDQUFBQSxpQkFBQUEsWUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsU0FBVUksSUFBQUEsS0FBSSxPQUFkSixpQkFBa0I7UUFDOUJLLFFBQVFMLENBQUFBLG1CQUFBQSxZQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxTQUFVSyxNQUFBQSxLQUFNLE9BQWhCTCxtQkFBb0I7SUFDOUI7SUFFQSxxQkFDRSxzQkFBQ00sT0FBQUE7UUFDQ0MsK0JBQTZCO1FBQzdCQyw2Q0FDRVQsZUFBZSxPQUFPVTtRQUV4QkMsOENBQ0VYLGVBQWVVLFlBQVk7UUFFN0JFLFVBQVU7UUFDVkMsTUFBTTtRQUNOQyxTQUFTWjtRQUNUYSxPQUFPOztZQUVOaEI7WUFDQUUsV0FBWSxNQUFHQSxTQUFTSSxJQUFJLEdBQUMsTUFBR0osU0FBU0ssTUFBTSxHQUFLOzBCQUNyRCxzQkFBQ1UsT0FBQUE7Z0JBQ0NDLE9BQU07Z0JBQ05DLFNBQVE7Z0JBQ1JDLE1BQUs7Z0JBQ0xDLFFBQU87Z0JBQ1BDLGFBQVk7Z0JBQ1pDLGVBQWM7Z0JBQ2RDLGdCQUFlOztrQ0FFZixxQkFBQ0MsUUFBQUE7d0JBQUtDLEdBQUU7O2tDQUNSLHFCQUFDQyxZQUFBQTt3QkFBU0MsUUFBTzs7a0NBQ2pCLHFCQUFDdEIsUUFBQUE7d0JBQUt1QixJQUFHO3dCQUFLQyxJQUFHO3dCQUFLQyxJQUFHO3dCQUFLQyxJQUFHOzs7Ozs7QUFJekMiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxUZXJtaW5hbFxcRWRpdG9yTGluay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlT3BlbkluRWRpdG9yIH0gZnJvbSAnLi4vLi4vaGVscGVycy91c2Utb3Blbi1pbi1lZGl0b3InXG5cbnR5cGUgRWRpdG9yTGlua1Byb3BzID0ge1xuICBmaWxlOiBzdHJpbmdcbiAgaXNTb3VyY2VGaWxlOiBib29sZWFuXG4gIGxvY2F0aW9uPzoge1xuICAgIGxpbmU6IG51bWJlclxuICAgIGNvbHVtbjogbnVtYmVyXG4gIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBFZGl0b3JMaW5rKHsgZmlsZSwgaXNTb3VyY2VGaWxlLCBsb2NhdGlvbiB9OiBFZGl0b3JMaW5rUHJvcHMpIHtcbiAgY29uc3Qgb3BlbiA9IHVzZU9wZW5JbkVkaXRvcih7XG4gICAgZmlsZSxcbiAgICBsaW5lTnVtYmVyOiBsb2NhdGlvbj8ubGluZSA/PyAxLFxuICAgIGNvbHVtbjogbG9jYXRpb24/LmNvbHVtbiA/PyAwLFxuICB9KVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtcbiAgICAgIGRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlPXtcbiAgICAgICAgaXNTb3VyY2VGaWxlID8gdHJ1ZSA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstaW1wb3J0LXRyYWNlPXtcbiAgICAgICAgaXNTb3VyY2VGaWxlID8gdW5kZWZpbmVkIDogdHJ1ZVxuICAgICAgfVxuICAgICAgdGFiSW5kZXg9ezEwfVxuICAgICAgcm9sZT17J2xpbmsnfVxuICAgICAgb25DbGljaz17b3Blbn1cbiAgICAgIHRpdGxlPXsnQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvcid9XG4gICAgPlxuICAgICAge2ZpbGV9XG4gICAgICB7bG9jYXRpb24gPyBgOiR7bG9jYXRpb24ubGluZX06JHtsb2NhdGlvbi5jb2x1bW59YCA6IG51bGx9XG4gICAgICA8c3ZnXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGggZD1cIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCI+PC9wYXRoPlxuICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiMTUgMyAyMSAzIDIxIDlcIj48L3BvbHlsaW5lPlxuICAgICAgICA8bGluZSB4MT1cIjEwXCIgeTE9XCIxNFwiIHgyPVwiMjFcIiB5Mj1cIjNcIj48L2xpbmU+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkVkaXRvckxpbmsiLCJmaWxlIiwiaXNTb3VyY2VGaWxlIiwibG9jYXRpb24iLCJvcGVuIiwidXNlT3BlbkluRWRpdG9yIiwibGluZU51bWJlciIsImxpbmUiLCJjb2x1bW4iLCJkaXYiLCJkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluayIsImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlIiwidW5kZWZpbmVkIiwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstaW1wb3J0LXRyYWNlIiwidGFiSW5kZXgiLCJyb2xlIiwib25DbGljayIsInRpdGxlIiwic3ZnIiwieG1sbnMiLCJ2aWV3Qm94IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwicGF0aCIsImQiLCJwb2x5bGluZSIsInBvaW50cyIsIngxIiwieTEiLCJ4MiIsInkyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js":
|
||
/*!*************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js ***!
|
||
\*************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Terminal\", ({\n enumerable: true,\n get: function() {\n return Terminal;\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 _anser = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/anser */ \"(ssr)/./node_modules/next/dist/compiled/anser/index.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 _hotlinkedtext = __webpack_require__(/*! ../hot-linked-text */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst _EditorLink = __webpack_require__(/*! ./EditorLink */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js\");\nfunction getFile(lines) {\n const contentFileName = lines.shift();\n if (!contentFileName) return null;\n const [fileName, line, column] = contentFileName.split(':', 3);\n const parsedLine = Number(line);\n const parsedColumn = Number(column);\n const hasLocation = !Number.isNaN(parsedLine) && !Number.isNaN(parsedColumn);\n return {\n fileName: hasLocation ? fileName : contentFileName,\n location: hasLocation ? {\n line: parsedLine,\n column: parsedColumn\n } : undefined\n };\n}\nfunction getImportTraceFiles(lines) {\n if (lines.some((line)=>/ReactServerComponentsError:/.test(line)) || lines.some((line)=>/Import trace for requested module:/.test(line))) {\n // Grab the lines at the end containing the files\n const files = [];\n while(/.+\\..+/.test(lines[lines.length - 1]) && !lines[lines.length - 1].includes(':')){\n const file = lines.pop().trim();\n files.unshift(file);\n }\n return files;\n }\n return [];\n}\nfunction getEditorLinks(content) {\n const lines = content.split('\\n');\n const file = getFile(lines);\n const importTraceFiles = getImportTraceFiles(lines);\n return {\n file,\n source: lines.join('\\n'),\n importTraceFiles\n };\n}\nconst Terminal = function Terminal(param) {\n let { content } = param;\n const { file, source, importTraceFiles } = _react.useMemo({\n \"Terminal.useMemo\": ()=>getEditorLinks(content)\n }[\"Terminal.useMemo\"], [\n content\n ]);\n const decoded = _react.useMemo({\n \"Terminal.useMemo[decoded]\": ()=>{\n return _anser.default.ansiToJson(source, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }\n }[\"Terminal.useMemo[decoded]\"], [\n source\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-terminal\": true,\n children: [\n file && /*#__PURE__*/ (0, _jsxruntime.jsx)(_EditorLink.EditorLink, {\n isSourceFile: true,\n file: file.fileName,\n location: file.location\n }, file.fileName),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"pre\", {\n children: [\n decoded.map((entry, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n style: {\n color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined,\n ...entry.decoration === 'bold' ? {\n fontWeight: 800\n } : entry.decoration === 'italic' ? {\n fontStyle: 'italic'\n } : undefined\n },\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: entry.content\n })\n }, \"terminal-entry-\" + index)),\n importTraceFiles.map((importTraceFile)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_EditorLink.EditorLink, {\n isSourceFile: false,\n file: importTraceFile\n }, importTraceFile))\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=Terminal.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvVGVybWluYWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0F3RGFBOzs7ZUFBQUE7Ozs7Ozs0RUF4REs7NkVBQ0s7MkNBQ087d0NBQ0g7QUFJM0IsU0FBU0MsUUFBUUMsS0FBZTtJQUM5QixNQUFNQyxrQkFBa0JELE1BQU1FLEtBQUs7SUFDbkMsSUFBSSxDQUFDRCxpQkFBaUIsT0FBTztJQUM3QixNQUFNLENBQUNFLFVBQVVDLE1BQU1DLE9BQU8sR0FBR0osZ0JBQWdCSyxLQUFLLENBQUMsS0FBSztJQUU1RCxNQUFNQyxhQUFhQyxPQUFPSjtJQUMxQixNQUFNSyxlQUFlRCxPQUFPSDtJQUM1QixNQUFNSyxjQUFjLENBQUNGLE9BQU9HLEtBQUssQ0FBQ0osZUFBZSxDQUFDQyxPQUFPRyxLQUFLLENBQUNGO0lBRS9ELE9BQU87UUFDTE4sVUFBVU8sY0FBY1AsV0FBV0Y7UUFDbkNXLFVBQVVGLGNBQ047WUFDRU4sTUFBTUc7WUFDTkYsUUFBUUk7UUFDVixJQUNBSTtJQUNOO0FBQ0Y7QUFFQSxTQUFTQyxvQkFBb0JkLEtBQWU7SUFDMUMsSUFDRUEsTUFBTWUsSUFBSSxDQUFDLENBQUNYLE9BQVMsOEJBQThCWSxJQUFJLENBQUNaLFVBQ3hESixNQUFNZSxJQUFJLENBQUMsQ0FBQ1gsT0FBUyxxQ0FBcUNZLElBQUksQ0FBQ1osUUFDL0Q7UUFDQSxpREFBaUQ7UUFDakQsTUFBTWEsUUFBUSxFQUFFO1FBQ2hCLE1BQ0UsU0FBU0QsSUFBSSxDQUFDaEIsS0FBSyxDQUFDQSxNQUFNa0IsTUFBTSxHQUFHLEVBQUUsS0FDckMsQ0FBQ2xCLEtBQUssQ0FBQ0EsTUFBTWtCLE1BQU0sR0FBRyxFQUFFLENBQUNDLFFBQVEsQ0FBQyxLQUNsQztZQUNBLE1BQU1DLE9BQU9wQixNQUFNcUIsR0FBRyxHQUFJQyxJQUFJO1lBQzlCTCxNQUFNTSxPQUFPLENBQUNIO1FBQ2hCO1FBRUEsT0FBT0g7SUFDVDtJQUVBLE9BQU8sRUFBRTtBQUNYO0FBRUEsU0FBU08sZUFBZUMsT0FBZTtJQUNyQyxNQUFNekIsUUFBUXlCLFFBQVFuQixLQUFLLENBQUM7SUFDNUIsTUFBTWMsT0FBT3JCLFFBQVFDO0lBQ3JCLE1BQU0wQixtQkFBbUJaLG9CQUFvQmQ7SUFFN0MsT0FBTztRQUFFb0I7UUFBTU8sUUFBUTNCLE1BQU00QixJQUFJLENBQUM7UUFBT0Y7SUFBaUI7QUFDNUQ7QUFFTyxNQUFNNUIsV0FBb0MsU0FBU0EsU0FBUyxLQUVsRTtJQUZrRSxNQUNqRTJCLE9BQU8sRUFDUixHQUZrRTtJQUdqRSxNQUFNLEVBQUVMLElBQUksRUFBRU8sTUFBTSxFQUFFRCxnQkFBZ0IsRUFBRSxHQUFHRyxPQUFNQyxPQUFPOzRCQUN0RCxJQUFNTixlQUFlQzsyQkFDckI7UUFBQ0E7S0FBUTtJQUdYLE1BQU1NLFVBQVVGLE9BQU1DLE9BQU87cUNBQUM7WUFDNUIsT0FBT0UsT0FBQUEsT0FBSyxDQUFDQyxVQUFVLENBQUNOLFFBQVE7Z0JBQzlCTyxNQUFNO2dCQUNOQyxhQUFhO2dCQUNiQyxjQUFjO1lBQ2hCO1FBQ0Y7b0NBQUc7UUFBQ1Q7S0FBTztJQUVYLHFCQUNFLHNCQUFDVSxPQUFBQTtRQUFJQyxzQkFBb0I7O1lBQ3RCbEIsUUFBQUEsV0FBQUEsR0FDQyxxQkFBQ21CLFlBQUFBLFVBQVU7Z0JBQ1RDLFlBQVk7Z0JBRVpwQixNQUFNQSxLQUFLakIsUUFBUTtnQkFDbkJTLFVBQVVRLEtBQUtSLFFBQVE7ZUFGbEJRLEtBQUtqQixRQUFROzBCQUt0QixzQkFBQ3NDLE9BQUFBOztvQkFDRVYsUUFBUVcsR0FBRyxDQUFDLENBQUNDLE9BQU9DLFFBQUFBLFdBQUFBLEdBQ25CLHFCQUFDQyxRQUFBQTs0QkFFQ0MsT0FBTztnQ0FDTEMsT0FBT0osTUFBTUssRUFBRSxHQUFJLGlCQUFjTCxNQUFNSyxFQUFFLEdBQUMsTUFBS25DO2dDQUMvQyxHQUFJOEIsTUFBTU0sVUFBVSxLQUFLLFNBQ3JCO29DQUFFQyxZQUFZO2dDQUFJLElBQ2xCUCxNQUFNTSxVQUFVLEtBQUssV0FDbkI7b0NBQUVFLFdBQVc7Z0NBQVMsSUFDdEJ0QyxTQUFTOzRCQUNqQjtzQ0FFQSxtQ0FBQ3VDLGVBQUFBLGFBQWE7Z0NBQUNDLE1BQU1WLE1BQU1sQixPQUFPOzsyQkFWNUIsb0JBQWlCbUI7b0JBYTFCbEIsaUJBQWlCZ0IsR0FBRyxDQUFDLENBQUNZLGtCQUFBQSxXQUFBQSxHQUNyQixxQkFBQ2YsWUFBQUEsVUFBVTs0QkFDVEMsY0FBYzs0QkFFZHBCLE1BQU1rQzsyQkFEREE7Ozs7O0FBT2pCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcVGVybWluYWxcXFRlcm1pbmFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQW5zZXIgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL2Fuc2VyJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBIb3RsaW5rZWRUZXh0IH0gZnJvbSAnLi4vaG90LWxpbmtlZC10ZXh0J1xuaW1wb3J0IHsgRWRpdG9yTGluayB9IGZyb20gJy4vRWRpdG9yTGluaydcblxuZXhwb3J0IHR5cGUgVGVybWluYWxQcm9wcyA9IHsgY29udGVudDogc3RyaW5nIH1cblxuZnVuY3Rpb24gZ2V0RmlsZShsaW5lczogc3RyaW5nW10pIHtcbiAgY29uc3QgY29udGVudEZpbGVOYW1lID0gbGluZXMuc2hpZnQoKVxuICBpZiAoIWNvbnRlbnRGaWxlTmFtZSkgcmV0dXJuIG51bGxcbiAgY29uc3QgW2ZpbGVOYW1lLCBsaW5lLCBjb2x1bW5dID0gY29udGVudEZpbGVOYW1lLnNwbGl0KCc6JywgMylcblxuICBjb25zdCBwYXJzZWRMaW5lID0gTnVtYmVyKGxpbmUpXG4gIGNvbnN0IHBhcnNlZENvbHVtbiA9IE51bWJlcihjb2x1bW4pXG4gIGNvbnN0IGhhc0xvY2F0aW9uID0gIU51bWJlci5pc05hTihwYXJzZWRMaW5lKSAmJiAhTnVtYmVyLmlzTmFOKHBhcnNlZENvbHVtbilcblxuICByZXR1cm4ge1xuICAgIGZpbGVOYW1lOiBoYXNMb2NhdGlvbiA/IGZpbGVOYW1lIDogY29udGVudEZpbGVOYW1lLFxuICAgIGxvY2F0aW9uOiBoYXNMb2NhdGlvblxuICAgICAgPyB7XG4gICAgICAgICAgbGluZTogcGFyc2VkTGluZSxcbiAgICAgICAgICBjb2x1bW46IHBhcnNlZENvbHVtbixcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQsXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW1wb3J0VHJhY2VGaWxlcyhsaW5lczogc3RyaW5nW10pIHtcbiAgaWYgKFxuICAgIGxpbmVzLnNvbWUoKGxpbmUpID0+IC9SZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvcjovLnRlc3QobGluZSkpIHx8XG4gICAgbGluZXMuc29tZSgobGluZSkgPT4gL0ltcG9ydCB0cmFjZSBmb3IgcmVxdWVzdGVkIG1vZHVsZTovLnRlc3QobGluZSkpXG4gICkge1xuICAgIC8vIEdyYWIgdGhlIGxpbmVzIGF0IHRoZSBlbmQgY29udGFpbmluZyB0aGUgZmlsZXNcbiAgICBjb25zdCBmaWxlcyA9IFtdXG4gICAgd2hpbGUgKFxuICAgICAgLy4rXFwuLisvLnRlc3QobGluZXNbbGluZXMubGVuZ3RoIC0gMV0pICYmXG4gICAgICAhbGluZXNbbGluZXMubGVuZ3RoIC0gMV0uaW5jbHVkZXMoJzonKVxuICAgICkge1xuICAgICAgY29uc3QgZmlsZSA9IGxpbmVzLnBvcCgpIS50cmltKClcbiAgICAgIGZpbGVzLnVuc2hpZnQoZmlsZSlcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsZXNcbiAgfVxuXG4gIHJldHVybiBbXVxufVxuXG5mdW5jdGlvbiBnZXRFZGl0b3JMaW5rcyhjb250ZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKVxuICBjb25zdCBmaWxlID0gZ2V0RmlsZShsaW5lcylcbiAgY29uc3QgaW1wb3J0VHJhY2VGaWxlcyA9IGdldEltcG9ydFRyYWNlRmlsZXMobGluZXMpXG5cbiAgcmV0dXJuIHsgZmlsZSwgc291cmNlOiBsaW5lcy5qb2luKCdcXG4nKSwgaW1wb3J0VHJhY2VGaWxlcyB9XG59XG5cbmV4cG9ydCBjb25zdCBUZXJtaW5hbDogUmVhY3QuRkM8VGVybWluYWxQcm9wcz4gPSBmdW5jdGlvbiBUZXJtaW5hbCh7XG4gIGNvbnRlbnQsXG59KSB7XG4gIGNvbnN0IHsgZmlsZSwgc291cmNlLCBpbXBvcnRUcmFjZUZpbGVzIH0gPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IGdldEVkaXRvckxpbmtzKGNvbnRlbnQpLFxuICAgIFtjb250ZW50XVxuICApXG5cbiAgY29uc3QgZGVjb2RlZCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBbnNlci5hbnNpVG9Kc29uKHNvdXJjZSwge1xuICAgICAganNvbjogdHJ1ZSxcbiAgICAgIHVzZV9jbGFzc2VzOiB0cnVlLFxuICAgICAgcmVtb3ZlX2VtcHR5OiB0cnVlLFxuICAgIH0pXG4gIH0sIFtzb3VyY2VdKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy10ZXJtaW5hbD5cbiAgICAgIHtmaWxlICYmIChcbiAgICAgICAgPEVkaXRvckxpbmtcbiAgICAgICAgICBpc1NvdXJjZUZpbGVcbiAgICAgICAgICBrZXk9e2ZpbGUuZmlsZU5hbWV9XG4gICAgICAgICAgZmlsZT17ZmlsZS5maWxlTmFtZX1cbiAgICAgICAgICBsb2NhdGlvbj17ZmlsZS5sb2NhdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICA8cHJlPlxuICAgICAgICB7ZGVjb2RlZC5tYXAoKGVudHJ5LCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBrZXk9e2B0ZXJtaW5hbC1lbnRyeS0ke2luZGV4fWB9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBjb2xvcjogZW50cnkuZmcgPyBgdmFyKC0tY29sb3ItJHtlbnRyeS5mZ30pYCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgLi4uKGVudHJ5LmRlY29yYXRpb24gPT09ICdib2xkJ1xuICAgICAgICAgICAgICAgID8geyBmb250V2VpZ2h0OiA4MDAgfVxuICAgICAgICAgICAgICAgIDogZW50cnkuZGVjb3JhdGlvbiA9PT0gJ2l0YWxpYydcbiAgICAgICAgICAgICAgICAgID8geyBmb250U3R5bGU6ICdpdGFsaWMnIH1cbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEhvdGxpbmtlZFRleHQgdGV4dD17ZW50cnkuY29udGVudH0gLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICkpfVxuICAgICAgICB7aW1wb3J0VHJhY2VGaWxlcy5tYXAoKGltcG9ydFRyYWNlRmlsZSkgPT4gKFxuICAgICAgICAgIDxFZGl0b3JMaW5rXG4gICAgICAgICAgICBpc1NvdXJjZUZpbGU9e2ZhbHNlfVxuICAgICAgICAgICAga2V5PXtpbXBvcnRUcmFjZUZpbGV9XG4gICAgICAgICAgICBmaWxlPXtpbXBvcnRUcmFjZUZpbGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L3ByZT5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRlcm1pbmFsIiwiZ2V0RmlsZSIsImxpbmVzIiwiY29udGVudEZpbGVOYW1lIiwic2hpZnQiLCJmaWxlTmFtZSIsImxpbmUiLCJjb2x1bW4iLCJzcGxpdCIsInBhcnNlZExpbmUiLCJOdW1iZXIiLCJwYXJzZWRDb2x1bW4iLCJoYXNMb2NhdGlvbiIsImlzTmFOIiwibG9jYXRpb24iLCJ1bmRlZmluZWQiLCJnZXRJbXBvcnRUcmFjZUZpbGVzIiwic29tZSIsInRlc3QiLCJmaWxlcyIsImxlbmd0aCIsImluY2x1ZGVzIiwiZmlsZSIsInBvcCIsInRyaW0iLCJ1bnNoaWZ0IiwiZ2V0RWRpdG9yTGlua3MiLCJjb250ZW50IiwiaW1wb3J0VHJhY2VGaWxlcyIsInNvdXJjZSIsImpvaW4iLCJSZWFjdCIsInVzZU1lbW8iLCJkZWNvZGVkIiwiQW5zZXIiLCJhbnNpVG9Kc29uIiwianNvbiIsInVzZV9jbGFzc2VzIiwicmVtb3ZlX2VtcHR5IiwiZGl2IiwiZGF0YS1uZXh0anMtdGVybWluYWwiLCJFZGl0b3JMaW5rIiwiaXNTb3VyY2VGaWxlIiwicHJlIiwibWFwIiwiZW50cnkiLCJpbmRleCIsInNwYW4iLCJzdHlsZSIsImNvbG9yIiwiZmciLCJkZWNvcmF0aW9uIiwiZm9udFdlaWdodCIsImZvbnRTdHlsZSIsIkhvdGxpbmtlZFRleHQiLCJ0ZXh0IiwiaW1wb3J0VHJhY2VGaWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js":
|
||
/*!**********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js ***!
|
||
\**********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Terminal\", ({\n enumerable: true,\n get: function() {\n return _Terminal.Terminal;\n }\n}));\nconst _Terminal = __webpack_require__(/*! ./Terminal */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js\");\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FBU0E7OztlQUFBQSxVQUFBQSxRQUFROzs7c0NBQVEiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxUZXJtaW5hbFxcaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFRlcm1pbmFsIH0gZnJvbSAnLi9UZXJtaW5hbCdcbiJdLCJuYW1lcyI6WyJUZXJtaW5hbCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js":
|
||
/*!***********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js ***!
|
||
\***********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"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 _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-terminal] {\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n [data-nextjs-terminal] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n\\n [data-nextjs-terminal] pre {\\n white-space: pre-wrap;\\n word-break: break-word;\\n }\\n\\n [data-with-open-in-editor-link] svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n }\\n [data-with-open-in-editor-link] {\\n cursor: pointer;\\n }\\n [data-with-open-in-editor-link]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-with-open-in-editor-link-source-file] {\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n line-break: anywhere;\\n }\\n [data-with-open-in-editor-link-import-trace] {\\n margin-left: var(--size-gap-double);\\n }\\n [data-nextjs-terminal] a {\\n color: inherit;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBc0RTQTs7O2VBQUFBOzs7OzBDQXREbUI7Ozs7Ozs7Ozs7QUFFNUIsTUFBTUEsU0FBQUEsQ0FBQUEsR0FBU0MsY0FBQUEsSUFBQUEsRUFBRyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXFRlcm1pbmFsXFxzdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlJ1xuXG5jb25zdCBzdHlsZXMgPSBjc3NgXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0ge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYmcpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdOjpzZWxlY3Rpb24sXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKjo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXNlbGVjdGlvbik7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICB9XG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gPiAqIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSlcbiAgICAgIGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gcHJlIHtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgfVxuXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10gc3ZnIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwKTtcbiAgfVxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rXTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICB9XG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1zb3VyY2UtZmlsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjayk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBsaW5lLWJyZWFrOiBhbnl3aGVyZTtcbiAgfVxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstaW1wb3J0LXRyYWNlXSB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuYFxuXG5leHBvcnQgeyBzdHlsZXMgfVxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js":
|
||
/*!*******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js ***!
|
||
\*******************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Toast\", ({\n enumerable: true,\n get: function() {\n return Toast;\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 Toast = function Toast(param) {\n let { onClick, children, className, ...props } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n ...props,\n onClick: (e)=>{\n e.preventDefault();\n return onClick == null ? void 0 : onClick();\n },\n className: \"nextjs-toast\" + (className ? ' ' + className : ''),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-toast-wrapper\": true,\n children: 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=Toast.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozt5Q0FRYUE7OztlQUFBQTs7Ozs7NkVBUlU7QUFRaEIsTUFBTUEsUUFBOEIsU0FBU0EsTUFBTSxLQUt6RDtJQUx5RCxNQUN4REMsT0FBTyxFQUNQQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVCxHQUFHQyxPQUNKLEdBTHlEO0lBTXhELHFCQUNFLHFCQUFDQyxPQUFBQTtRQUNFLEdBQUdELEtBQUs7UUFDVEgsU0FBUyxDQUFDSztZQUNSQSxFQUFFQyxjQUFjO1lBQ2hCLE9BQU9OLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBO1FBQ1Q7UUFDQUUsV0FBWSxpQkFBY0EsYUFBWSxNQUFNQSxZQUFZLEdBQUM7a0JBRXpELG1DQUFDRSxPQUFBQTtZQUFJRywyQkFBeUI7c0JBQUVOOzs7QUFHdEMiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxUb2FzdFxcVG9hc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgdHlwZSBUb2FzdFByb3BzID0gUmVhY3QuSFRNTFByb3BzPEhUTUxEaXZFbGVtZW50PiAmIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgb25DbGljaz86ICgpID0+IHZvaWRcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBUb2FzdDogUmVhY3QuRkM8VG9hc3RQcm9wcz4gPSBmdW5jdGlvbiBUb2FzdCh7XG4gIG9uQ2xpY2ssXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgey4uLnByb3BzfVxuICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgfX1cbiAgICAgIGNsYXNzTmFtZT17YG5leHRqcy10b2FzdCR7Y2xhc3NOYW1lID8gJyAnICsgY2xhc3NOYW1lIDogJyd9YH1cbiAgICA+XG4gICAgICA8ZGl2IGRhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXI+e2NoaWxkcmVufTwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiVG9hc3QiLCJvbkNsaWNrIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJwcm9wcyIsImRpdiIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImRhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js":
|
||
/*!*******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.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 Toast: function() {\n return _Toast.Toast;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _styles = __webpack_require__(/*! ./styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js\");\nconst _Toast = __webpack_require__(/*! ./Toast */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js\");\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQ1NBLEtBQUs7ZUFBTEEsT0FBQUEsS0FBSzs7SUFETEMsTUFBTTtlQUFOQSxRQUFBQSxNQUFNOzs7b0NBQVE7bUNBQ0QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb21wb25lbnRzXFxUb2FzdFxcaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzJ1xuZXhwb3J0IHsgVG9hc3QgfSBmcm9tICcuL1RvYXN0J1xuIl0sIm5hbWVzIjpbIlRvYXN0Iiwic3R5bGVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js":
|
||
/*!********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js ***!
|
||
\********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"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 _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n .nextjs-toast {\\n position: fixed;\\n bottom: var(--size-gap-double);\\n left: var(--size-gap-double);\\n max-width: 420px;\\n z-index: 9000;\\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\\n rgba(0, 0, 0, 0.25);\\n }\\n\\n @media (max-width: 440px) {\\n .nextjs-toast {\\n max-width: 90vw;\\n left: 5vw;\\n }\\n }\\n\\n .nextjs-toast-errors-parent {\\n padding: 16px;\\n border-radius: var(--size-gap-quad);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n }\\n\\n .nextjs-static-indicator-toast-wrapper {\\n width: 30px;\\n height: 30px;\\n overflow: hidden;\\n border: 0;\\n border-radius: var(--size-gap-triple);\\n background: var(--color-background);\\n color: var(--color-font);\\n transition: all 0.3s ease-in-out;\\n box-shadow:\\n inset 0 0 0 1px var(--color-border-shadow),\\n 0 11px 40px 0 rgba(0, 0, 0, 0.25),\\n 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n }\\n\\n .nextjs-static-indicator-toast-wrapper:hover {\\n width: 140px;\\n }\\n\\n .nextjs-static-indicator-toast-icon {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 30px;\\n height: 30px;\\n }\\n\\n .nextjs-static-indicator-toast-text {\\n font-size: 14px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n opacity: 0;\\n white-space: nowrap;\\n transition: opacity 0.3s ease-in-out;\\n line-height: 30px;\\n position: absolute;\\n left: 30px;\\n top: 0;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper:hover\\n .nextjs-static-indicator-toast-text {\\n opacity: 1;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper button {\\n color: var(--color-font);\\n opacity: 0.8;\\n background: none;\\n border: none;\\n margin-left: 6px;\\n margin-top: -2px;\\n outline: 0;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper button:focus {\\n opacity: 1;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper button > svg {\\n width: 16px;\\n height: 16px;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3Qvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBOEZTQTs7O2VBQUFBOzs7OzBDQTlGbUI7Ozs7Ozs7Ozs7QUFFNUIsTUFBTUEsU0FBQUEsQ0FBQUEsR0FBU0MsY0FBQUEsSUFBQUEsRUFBRyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXFRvYXN0XFxzdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5cbmNvbnN0IHN0eWxlcyA9IGNzc2BcbiAgLm5leHRqcy10b2FzdCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcbiAgICBsZWZ0OiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgei1pbmRleDogOTAwMDtcbiAgICBib3gtc2hhZG93OiAwcHggdmFyKC0tc2l6ZS1nYXAtZG91YmxlKSB2YXIoLS1zaXplLWdhcC1xdWFkKVxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0NDBweCkge1xuICAgIC5uZXh0anMtdG9hc3Qge1xuICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgbGVmdDogNXZ3O1xuICAgIH1cbiAgfVxuXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1xdWFkKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xuICB9XG5cbiAgLm5leHRqcy1zdGF0aWMtaW5kaWNhdG9yLXRvYXN0LXdyYXBwZXIge1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC10cmlwbGUpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1mb250KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNvbG9yLWJvcmRlci1zaGFkb3cpLFxuICAgICAgMCAxMXB4IDQwcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpLFxuICAgICAgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIH1cblxuICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3Qtd3JhcHBlcjpob3ZlciB7XG4gICAgd2lkdGg6IDE0MHB4O1xuICB9XG5cbiAgLm5leHRqcy1zdGF0aWMtaW5kaWNhdG9yLXRvYXN0LWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3QtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAzMHB4O1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIC5uZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC13cmFwcGVyOmhvdmVyXG4gICAgLm5leHRqcy1zdGF0aWMtaW5kaWNhdG9yLXRvYXN0LXRleHQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3Qtd3JhcHBlciBidXR0b24ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1mb250KTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3Qtd3JhcHBlciBidXR0b246Zm9jdXMge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3Qtd3JhcHBlciBidXR0b24gPiBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgfVxuYFxuXG5leHBvcnQgeyBzdHlsZXMgfVxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js":
|
||
/*!*************************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.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 VersionStalenessInfo: function() {\n return VersionStalenessInfo;\n },\n getStaleness: function() {\n return getStaleness;\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\");\nfunction VersionStalenessInfo(param) {\n let { versionInfo } = param;\n if (!versionInfo) return null;\n const { staleness } = versionInfo;\n let { text, indicatorClass, title } = getStaleness(versionInfo);\n if (!text) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n className: \"nextjs-container-build-error-version-status\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n className: indicatorClass\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"small\", {\n \"data-nextjs-version-checker\": true,\n title: title,\n children: text\n }),\n ' ',\n staleness === 'fresh' || staleness === 'newer-than-npm' || staleness === 'unknown' ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n href: \"https://nextjs.org/docs/messages/version-staleness\",\n children: \"(learn more)\"\n }),\n false ? 0 : ''\n ]\n });\n}\nfunction getStaleness(param) {\n let { installed, staleness, expected } = param;\n let text = '';\n let title = '';\n let indicatorClass = '';\n const versionLabel = \"Next.js (\" + installed + \")\";\n switch(staleness){\n case 'newer-than-npm':\n case 'fresh':\n text = versionLabel;\n title = \"Latest available version is detected (\" + installed + \").\";\n indicatorClass = 'fresh';\n break;\n case 'stale-patch':\n case 'stale-minor':\n text = \"\" + versionLabel + \" out of date\";\n title = \"There is a newer version (\" + expected + \") available, upgrade recommended! \";\n indicatorClass = 'stale';\n break;\n case 'stale-major':\n {\n text = \"\" + versionLabel + \" is outdated\";\n title = \"An outdated version detected (latest is \" + expected + \"), upgrade is highly recommended!\";\n indicatorClass = 'outdated';\n break;\n }\n case 'stale-prerelease':\n {\n text = \"\" + versionLabel + \" is outdated\";\n title = \"There is a newer canary version (\" + expected + \") available, please upgrade! \";\n indicatorClass = 'stale';\n break;\n }\n case 'unknown':\n break;\n default:\n break;\n }\n return {\n text,\n indicatorClass,\n title\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=VersionStalenessInfo.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vVmVyc2lvblN0YWxlbmVzc0luZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWdCQSxvQkFBb0I7ZUFBcEJBOztJQWlDQUMsWUFBWTtlQUFaQTs7OztBQWpDVCxTQUFTRCxxQkFBcUIsS0FJcEM7SUFKb0MsTUFDbkNFLFdBQVcsRUFHWixHQUpvQztJQUtuQyxJQUFJLENBQUNBLGFBQWEsT0FBTztJQUN6QixNQUFNLEVBQUVDLFNBQVMsRUFBRSxHQUFHRDtJQUN0QixJQUFJLEVBQUVFLElBQUksRUFBRUMsY0FBYyxFQUFFQyxLQUFLLEVBQUUsR0FBR0wsYUFBYUM7SUFFbkQsSUFBSSxDQUFDRSxNQUFNLE9BQU87SUFFbEIscUJBQ0Usc0JBQUNHLFFBQUFBO1FBQUtDLFdBQVU7OzBCQUNkLHFCQUFDRCxRQUFBQTtnQkFBS0MsV0FBV0g7OzBCQUNqQixxQkFBQ0ksU0FBQUE7Z0JBQU1DLDZCQUEyQjtnQkFBQ0osT0FBT0E7MEJBQ3ZDRjs7WUFDTTtZQUNSRCxjQUFjLFdBQ2ZBLGNBQWMsb0JBQ2RBLGNBQWMsWUFBWSxxQkFDeEIscUJBQUNRLEtBQUFBO2dCQUNDQyxRQUFPO2dCQUNQQyxLQUFJO2dCQUNKQyxNQUFLOzBCQUNOOztZQUlGQyxNQUFxQixHQUFHLENBQWMsR0FBRzs7O0FBR2hEO0FBRU8sU0FBU2QsYUFBYSxLQUErQztJQUEvQyxNQUFFaUIsU0FBUyxFQUFFZixTQUFTLEVBQUVnQixRQUFRLEVBQWUsR0FBL0M7SUFDM0IsSUFBSWYsT0FBTztJQUNYLElBQUlFLFFBQVE7SUFDWixJQUFJRCxpQkFBaUI7SUFDckIsTUFBTWUsZUFBZ0IsY0FBV0YsWUFBVTtJQUMzQyxPQUFRZjtRQUNOLEtBQUs7UUFDTCxLQUFLO1lBQ0hDLE9BQU9nQjtZQUNQZCxRQUFTLDJDQUF3Q1ksWUFBVTtZQUMzRGIsaUJBQWlCO1lBQ2pCO1FBQ0YsS0FBSztRQUNMLEtBQUs7WUFDSEQsT0FBUSxLQUFFZ0IsZUFBYTtZQUN2QmQsUUFBUywrQkFBNEJhLFdBQVM7WUFDOUNkLGlCQUFpQjtZQUNqQjtRQUNGLEtBQUs7WUFBZTtnQkFDbEJELE9BQVEsS0FBRWdCLGVBQWE7Z0JBQ3ZCZCxRQUFTLDZDQUEwQ2EsV0FBUztnQkFDNURkLGlCQUFpQjtnQkFDakI7WUFDRjtRQUNBLEtBQUs7WUFBb0I7Z0JBQ3ZCRCxPQUFRLEtBQUVnQixlQUFhO2dCQUN2QmQsUUFBUyxzQ0FBbUNhLFdBQVM7Z0JBQ3JEZCxpQkFBaUI7Z0JBQ2pCO1lBQ0Y7UUFDQSxLQUFLO1lBQ0g7UUFDRjtZQUNFO0lBQ0o7SUFDQSxPQUFPO1FBQUVEO1FBQU1DO1FBQWdCQztJQUFNO0FBQ3ZDIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcVmVyc2lvblN0YWxlbmVzc0luZm9cXFZlcnNpb25TdGFsZW5lc3NJbmZvLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFZlcnNpb25JbmZvIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9wYXJzZS12ZXJzaW9uLWluZm8nXG5cbmV4cG9ydCBmdW5jdGlvbiBWZXJzaW9uU3RhbGVuZXNzSW5mbyh7XG4gIHZlcnNpb25JbmZvLFxufToge1xuICB2ZXJzaW9uSW5mbzogVmVyc2lvbkluZm8gfCB1bmRlZmluZWRcbn0pIHtcbiAgaWYgKCF2ZXJzaW9uSW5mbykgcmV0dXJuIG51bGxcbiAgY29uc3QgeyBzdGFsZW5lc3MgfSA9IHZlcnNpb25JbmZvXG4gIGxldCB7IHRleHQsIGluZGljYXRvckNsYXNzLCB0aXRsZSB9ID0gZ2V0U3RhbGVuZXNzKHZlcnNpb25JbmZvKVxuXG4gIGlmICghdGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXNcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17aW5kaWNhdG9yQ2xhc3N9IC8+XG4gICAgICA8c21hbGwgZGF0YS1uZXh0anMtdmVyc2lvbi1jaGVja2VyIHRpdGxlPXt0aXRsZX0+XG4gICAgICAgIHt0ZXh0fVxuICAgICAgPC9zbWFsbD57JyAnfVxuICAgICAge3N0YWxlbmVzcyA9PT0gJ2ZyZXNoJyB8fFxuICAgICAgc3RhbGVuZXNzID09PSAnbmV3ZXItdGhhbi1ucG0nIHx8XG4gICAgICBzdGFsZW5lc3MgPT09ICd1bmtub3duJyA/IG51bGwgOiAoXG4gICAgICAgIDxhXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdmVyc2lvbi1zdGFsZW5lc3NcIlxuICAgICAgICA+XG4gICAgICAgICAgKGxlYXJuIG1vcmUpXG4gICAgICAgIDwvYT5cbiAgICAgICl9XG4gICAgICB7cHJvY2Vzcy5lbnYuVFVSQk9QQUNLID8gJyAoVHVyYm9wYWNrKScgOiAnJ31cbiAgICA8L3NwYW4+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YWxlbmVzcyh7IGluc3RhbGxlZCwgc3RhbGVuZXNzLCBleHBlY3RlZCB9OiBWZXJzaW9uSW5mbykge1xuICBsZXQgdGV4dCA9ICcnXG4gIGxldCB0aXRsZSA9ICcnXG4gIGxldCBpbmRpY2F0b3JDbGFzcyA9ICcnXG4gIGNvbnN0IHZlcnNpb25MYWJlbCA9IGBOZXh0LmpzICgke2luc3RhbGxlZH0pYFxuICBzd2l0Y2ggKHN0YWxlbmVzcykge1xuICAgIGNhc2UgJ25ld2VyLXRoYW4tbnBtJzpcbiAgICBjYXNlICdmcmVzaCc6XG4gICAgICB0ZXh0ID0gdmVyc2lvbkxhYmVsXG4gICAgICB0aXRsZSA9IGBMYXRlc3QgYXZhaWxhYmxlIHZlcnNpb24gaXMgZGV0ZWN0ZWQgKCR7aW5zdGFsbGVkfSkuYFxuICAgICAgaW5kaWNhdG9yQ2xhc3MgPSAnZnJlc2gnXG4gICAgICBicmVha1xuICAgIGNhc2UgJ3N0YWxlLXBhdGNoJzpcbiAgICBjYXNlICdzdGFsZS1taW5vcic6XG4gICAgICB0ZXh0ID0gYCR7dmVyc2lvbkxhYmVsfSBvdXQgb2YgZGF0ZWBcbiAgICAgIHRpdGxlID0gYFRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiAoJHtleHBlY3RlZH0pIGF2YWlsYWJsZSwgdXBncmFkZSByZWNvbW1lbmRlZCEgYFxuICAgICAgaW5kaWNhdG9yQ2xhc3MgPSAnc3RhbGUnXG4gICAgICBicmVha1xuICAgIGNhc2UgJ3N0YWxlLW1ham9yJzoge1xuICAgICAgdGV4dCA9IGAke3ZlcnNpb25MYWJlbH0gaXMgb3V0ZGF0ZWRgXG4gICAgICB0aXRsZSA9IGBBbiBvdXRkYXRlZCB2ZXJzaW9uIGRldGVjdGVkIChsYXRlc3QgaXMgJHtleHBlY3RlZH0pLCB1cGdyYWRlIGlzIGhpZ2hseSByZWNvbW1lbmRlZCFgXG4gICAgICBpbmRpY2F0b3JDbGFzcyA9ICdvdXRkYXRlZCdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgJ3N0YWxlLXByZXJlbGVhc2UnOiB7XG4gICAgICB0ZXh0ID0gYCR7dmVyc2lvbkxhYmVsfSBpcyBvdXRkYXRlZGBcbiAgICAgIHRpdGxlID0gYFRoZXJlIGlzIGEgbmV3ZXIgY2FuYXJ5IHZlcnNpb24gKCR7ZXhwZWN0ZWR9KSBhdmFpbGFibGUsIHBsZWFzZSB1cGdyYWRlISBgXG4gICAgICBpbmRpY2F0b3JDbGFzcyA9ICdzdGFsZSdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgJ3Vua25vd24nOlxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWtcbiAgfVxuICByZXR1cm4geyB0ZXh0LCBpbmRpY2F0b3JDbGFzcywgdGl0bGUgfVxufVxuIl0sIm5hbWVzIjpbIlZlcnNpb25TdGFsZW5lc3NJbmZvIiwiZ2V0U3RhbGVuZXNzIiwidmVyc2lvbkluZm8iLCJzdGFsZW5lc3MiLCJ0ZXh0IiwiaW5kaWNhdG9yQ2xhc3MiLCJ0aXRsZSIsInNwYW4iLCJjbGFzc05hbWUiLCJzbWFsbCIsImRhdGEtbmV4dGpzLXZlcnNpb24tY2hlY2tlciIsImEiLCJ0YXJnZXQiLCJyZWwiLCJocmVmIiwicHJvY2VzcyIsImVudiIsIlRVUkJPUEFDSyIsImluc3RhbGxlZCIsImV4cGVjdGVkIiwidmVyc2lvbkxhYmVsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js":
|
||
/*!**********************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.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 VersionStalenessInfo: function() {\n return _VersionStalenessInfo.VersionStalenessInfo;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _styles = __webpack_require__(/*! ./styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ./VersionStalenessInfo */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js\");\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQ1NBLG9CQUFvQjtlQUFwQkEsc0JBQUFBLG9CQUFvQjs7SUFEcEJDLE1BQU07ZUFBTkEsUUFBQUEsTUFBTTs7O29DQUFRO2tEQUNjIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcVmVyc2lvblN0YWxlbmVzc0luZm9cXGluZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBzdHlsZXMgfSBmcm9tICcuL3N0eWxlcydcbmV4cG9ydCB7IFZlcnNpb25TdGFsZW5lc3NJbmZvIH0gZnJvbSAnLi9WZXJzaW9uU3RhbGVuZXNzSW5mbydcbiJdLCJuYW1lcyI6WyJWZXJzaW9uU3RhbGVuZXNzSW5mbyIsInN0eWxlcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js":
|
||
/*!***********************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js ***!
|
||
\***********************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"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 _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n .nextjs-container-build-error-version-status {\\n flex: 1;\\n text-align: right;\\n font-size: var(--size-font-small);\\n }\\n .nextjs-container-build-error-version-status span {\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n border-radius: 5px;\\n background: var(--color-ansi-bright-black);\\n }\\n .nextjs-container-build-error-version-status span.fresh {\\n background: var(--color-ansi-green);\\n }\\n .nextjs-container-build-error-version-status span.stale {\\n background: var(--color-ansi-yellow);\\n }\\n .nextjs-container-build-error-version-status span.outdated {\\n background: var(--color-ansi-red);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBMEJTQTs7O2VBQUFBOzs7OzBDQTFCbUI7Ozs7Ozs7Ozs7QUFFNUIsTUFBTUEsU0FBQUEsQ0FBQUEsR0FBU0MsY0FBQUEsSUFBQUEsRUFBRyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXFZlcnNpb25TdGFsZW5lc3NJbmZvXFxzdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5cbmNvbnN0IHN0eWxlcyA9IGNzc2BcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMge1xuICAgIGZsZXg6IDE7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrKTtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyBzcGFuLmZyZXNoIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbnNpLWdyZWVuKTtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyBzcGFuLnN0YWxlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbnNpLXllbGxvdyk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgc3Bhbi5vdXRkYXRlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xuICB9XG5gXG5cbmV4cG9ydCB7IHN0eWxlcyB9XG4iXSwibmFtZXMiOlsic3R5bGVzIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js":
|
||
/*!*************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js ***!
|
||
\*************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CopyButton\", ({\n enumerable: true,\n get: function() {\n return CopyButton;\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\"));\nfunction useCopyLegacy(content) {\n // This would be simpler with useActionState but we need to support React 18 here.\n // React 18 also doesn't have async transitions.\n const [copyState, dispatch] = _react.useReducer({\n \"useCopyLegacy.useReducer\": (state, action)=>{\n if (action.type === 'reset') {\n return {\n state: 'initial'\n };\n }\n if (action.type === 'copied') {\n return {\n state: 'success'\n };\n }\n if (action.type === 'copying') {\n return {\n state: 'pending'\n };\n }\n if (action.type === 'error') {\n return {\n state: 'error',\n error: action.error\n };\n }\n return state;\n }\n }[\"useCopyLegacy.useReducer\"], {\n state: 'initial'\n });\n function copy() {\n if (isPending) {\n return;\n }\n if (!navigator.clipboard) {\n dispatch({\n type: 'error',\n error: new Error('Copy to clipboard is not supported in this browser')\n });\n } else {\n dispatch({\n type: 'copying'\n });\n navigator.clipboard.writeText(content).then(()=>{\n dispatch({\n type: 'copied'\n });\n }, (error)=>{\n dispatch({\n type: 'error',\n error\n });\n });\n }\n }\n const reset = _react.useCallback({\n \"useCopyLegacy.useCallback[reset]\": ()=>{\n dispatch({\n type: 'reset'\n });\n }\n }[\"useCopyLegacy.useCallback[reset]\"], []);\n const isPending = copyState.state === 'pending';\n return [\n copyState,\n copy,\n reset,\n isPending\n ];\n}\nfunction useCopyModern(content) {\n const [copyState, dispatch, isPending] = _react.useActionState({\n \"useCopyModern.useActionState\": (state, action)=>{\n if (action === 'reset') {\n return {\n state: 'initial'\n };\n }\n if (action === 'copy') {\n if (!navigator.clipboard) {\n return {\n state: 'error',\n error: new Error('Copy to clipboard is not supported in this browser')\n };\n }\n return navigator.clipboard.writeText(content).then({\n \"useCopyModern.useActionState\": ()=>{\n return {\n state: 'success'\n };\n }\n }[\"useCopyModern.useActionState\"], {\n \"useCopyModern.useActionState\": (error)=>{\n return {\n state: 'error',\n error\n };\n }\n }[\"useCopyModern.useActionState\"]);\n }\n return state;\n }\n }[\"useCopyModern.useActionState\"], {\n state: 'initial'\n });\n function copy() {\n _react.startTransition(()=>{\n dispatch('copy');\n });\n }\n const reset = _react.useCallback({\n \"useCopyModern.useCallback[reset]\": ()=>{\n dispatch('reset');\n }\n }[\"useCopyModern.useCallback[reset]\"], [\n // TODO: `dispatch` from `useActionState` is not reactive.\n // Remove from dependencies once https://github.com/facebook/react/pull/29665 is released.\n dispatch\n ]);\n return [\n copyState,\n copy,\n reset,\n isPending\n ];\n}\nconst useCopy = typeof _react.useActionState === 'function' ? useCopyModern : useCopyLegacy;\nfunction CopyButton(param) {\n let { actionLabel, successLabel, content, icon, disabled, ...props } = param;\n const [copyState, copy, reset, isPending] = useCopy(content);\n const error = copyState.state === 'error' ? copyState.error : null;\n _react.useEffect({\n \"CopyButton.useEffect\": ()=>{\n if (error !== null) {\n // Additional console.error to get the stack.\n console.error(error);\n }\n }\n }[\"CopyButton.useEffect\"], [\n error\n ]);\n _react.useEffect({\n \"CopyButton.useEffect\": ()=>{\n if (copyState.state === 'success') {\n const timeoutId = setTimeout({\n \"CopyButton.useEffect.timeoutId\": ()=>{\n reset();\n }\n }[\"CopyButton.useEffect.timeoutId\"], 2000);\n return ({\n \"CopyButton.useEffect\": ()=>{\n clearTimeout(timeoutId);\n }\n })[\"CopyButton.useEffect\"];\n }\n }\n }[\"CopyButton.useEffect\"], [\n isPending,\n copyState.state,\n reset\n ]);\n const isDisabled = isPending || disabled;\n const label = copyState.state === 'success' ? successLabel : actionLabel;\n // Assign default icon\n const renderedIcon = copyState.state === 'success' ? /*#__PURE__*/ (0, _jsxruntime.jsx)(CopySuccessIcon, {}) : icon || /*#__PURE__*/ (0, _jsxruntime.jsx)(CopyIcon, {});\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"button\", {\n ...props,\n type: \"button\",\n title: label,\n \"aria-label\": label,\n \"aria-disabled\": isDisabled,\n \"data-nextjs-data-runtime-error-copy-button\": true,\n className: \"nextjs-data-runtime-error-copy-button nextjs-data-runtime-error-copy-button--\" + copyState.state,\n onClick: ()=>{\n if (!isDisabled) {\n copy();\n }\n },\n children: [\n renderedIcon,\n copyState.state === 'error' ? \" \" + copyState.error : null\n ]\n });\n}\nfunction CopyIcon() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"transparent\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"rect\", {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\n })\n ]\n });\n}\nfunction CopySuccessIcon() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"svg\", {\n height: \"16\",\n xlinkTitle: \"copied\",\n viewBox: \"0 0 16 16\",\n width: \"16\",\n stroke: \"currentColor\",\n fill: \"currentColor\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n 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\"\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvY29weS1idXR0b24vaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0F3SWdCQTs7O2VBQUFBOzs7Ozs2RUF4SU87QUFFdkIsU0FBU0MsY0FBY0MsT0FBZTtJQVlwQyxrRkFBa0Y7SUFDbEYsZ0RBQWdEO0lBQ2hELE1BQU0sQ0FBQ0MsV0FBV0MsU0FBUyxHQUFHQyxPQUFNQyxVQUFVO29DQUM1QyxDQUNFQyxPQUNBQztZQUlBLElBQUlBLE9BQU9DLElBQUksS0FBSyxTQUFTO2dCQUMzQixPQUFPO29CQUFFRixPQUFPO2dCQUFVO1lBQzVCO1lBQ0EsSUFBSUMsT0FBT0MsSUFBSSxLQUFLLFVBQVU7Z0JBQzVCLE9BQU87b0JBQUVGLE9BQU87Z0JBQVU7WUFDNUI7WUFDQSxJQUFJQyxPQUFPQyxJQUFJLEtBQUssV0FBVztnQkFDN0IsT0FBTztvQkFBRUYsT0FBTztnQkFBVTtZQUM1QjtZQUNBLElBQUlDLE9BQU9DLElBQUksS0FBSyxTQUFTO2dCQUMzQixPQUFPO29CQUFFRixPQUFPO29CQUFTRyxPQUFPRixPQUFPRSxLQUFLO2dCQUFDO1lBQy9DO1lBQ0EsT0FBT0g7UUFDVDttQ0FDQTtRQUNFQSxPQUFPO0lBQ1Q7SUFFRixTQUFTSTtRQUNQLElBQUlDLFdBQVc7WUFDYjtRQUNGO1FBRUEsSUFBSSxDQUFDQyxVQUFVQyxTQUFTLEVBQUU7WUFDeEJWLFNBQVM7Z0JBQ1BLLE1BQU07Z0JBQ05DLE9BQU8sSUFBSUssTUFBTTtZQUNuQjtRQUNGLE9BQU87WUFDTFgsU0FBUztnQkFBRUssTUFBTTtZQUFVO1lBQzNCSSxVQUFVQyxTQUFTLENBQUNFLFNBQVMsQ0FBQ2QsU0FBU2UsSUFBSSxDQUN6QztnQkFDRWIsU0FBUztvQkFBRUssTUFBTTtnQkFBUztZQUM1QixHQUNBLENBQUNDO2dCQUNDTixTQUFTO29CQUFFSyxN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dkI7WUFDRjtRQUNGOztZQUVDeUI7WUFDQWpDLFVBQVVJLEtBQUssS0FBSyxVQUFXLE1BQUdKLFVBQVVPLEtBQUssR0FBSzs7O0FBRzdEO0FBRUEsU0FBUzRCO0lBQ1AscUJBQ0Usc0JBQUNRLE9BQUFBO1FBQ0NDLE9BQU07UUFDTkMsUUFBTztRQUNQQyxTQUFRO1FBQ1JDLE1BQUs7UUFDTEMsUUFBTztRQUNQQyxhQUFZO1FBQ1pDLGVBQWM7UUFDZEMsZ0JBQWU7OzBCQUVmLHFCQUFDQyxRQUFBQTtnQkFBS1IsT0FBTTtnQkFBS0MsUUFBTztnQkFBS1EsR0FBRTtnQkFBSUMsR0FBRTtnQkFBSUMsSUFBRztnQkFBSUMsSUFBRzs7MEJBQ25ELHFCQUFDQyxRQUFBQTtnQkFBS0MsR0FBRTs7OztBQUdkO0FBRUEsU0FBU3hCO0lBQ1AscUJBQ0UscUJBQUNTLE9BQUFBO1FBQ0NFLFFBQU87UUFDUGMsWUFBVztRQUNYYixTQUFRO1FBQ1JGLE9BQU07UUFDTkksUUFBTztRQUNQRCxNQUFLO2tCQUVMLG1DQUFDVSxRQUFBQTtZQUFLQyxHQUFFOzs7QUFHZCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXGNvcHktYnV0dG9uXFxpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmZ1bmN0aW9uIHVzZUNvcHlMZWdhY3koY29udGVudDogc3RyaW5nKSB7XG4gIHR5cGUgQ29weVN0YXRlID1cbiAgICB8IHtcbiAgICAgICAgc3RhdGU6ICdpbml0aWFsJ1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBzdGF0ZTogJ2Vycm9yJ1xuICAgICAgICBlcnJvcjogdW5rbm93blxuICAgICAgfVxuICAgIHwgeyBzdGF0ZTogJ3N1Y2Nlc3MnIH1cbiAgICB8IHsgc3RhdGU6ICdwZW5kaW5nJyB9XG5cbiAgLy8gVGhpcyB3b3VsZCBiZSBzaW1wbGVyIHdpdGggdXNlQWN0aW9uU3RhdGUgYnV0IHdlIG5lZWQgdG8gc3VwcG9ydCBSZWFjdCAxOCBoZXJlLlxuICAvLyBSZWFjdCAxOCBhbHNvIGRvZXNuJ3QgaGF2ZSBhc3luYyB0cmFuc2l0aW9ucy5cbiAgY29uc3QgW2NvcHlTdGF0ZSwgZGlzcGF0Y2hdID0gUmVhY3QudXNlUmVkdWNlcihcbiAgICAoXG4gICAgICBzdGF0ZTogQ29weVN0YXRlLFxuICAgICAgYWN0aW9uOlxuICAgICAgICB8IHsgdHlwZTogJ3Jlc2V0JyB8ICdjb3BpZWQnIHwgJ2NvcHlpbmcnIH1cbiAgICAgICAgfCB7IHR5cGU6ICdlcnJvcic7IGVycm9yOiB1bmtub3duIH1cbiAgICApOiBDb3B5U3RhdGUgPT4ge1xuICAgICAgaWYgKGFjdGlvbi50eXBlID09PSAncmVzZXQnKSB7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiAnaW5pdGlhbCcgfVxuICAgICAgfVxuICAgICAgaWYgKGFjdGlvbi50eXBlID09PSAnY29waWVkJykge1xuICAgICAgICByZXR1cm4geyBzdGF0ZTogJ3N1Y2Nlc3MnIH1cbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gJ2NvcHlpbmcnKSB7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiAncGVuZGluZycgfVxuICAgICAgfVxuICAgICAgaWYgKGFjdGlvbi50eXBlID09PSAnZXJyb3InKSB7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiAnZXJyb3InLCBlcnJvcjogYWN0aW9uLmVycm9yIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZVxuICAgIH0sXG4gICAge1xuICAgICAgc3RhdGU6ICdpbml0aWFsJyxcbiAgICB9XG4gIClcbiAgZnVuY3Rpb24gY29weSgpIHtcbiAgICBpZiAoaXNQZW5kaW5nKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIW5hdmlnYXRvci5jbGlwYm9hcmQpIHtcbiAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgZXJyb3I6IG5ldyBFcnJvcignQ29weSB0byBjbGlwYm9hcmQgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXInKSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2NvcHlpbmcnIH0pXG4gICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjb250ZW50KS50aGVuKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnY29waWVkJyB9KVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdlcnJvcicsIGVycm9yIH0pXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cbiAgY29uc3QgcmVzZXQgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goeyB0eXBlOiAncmVzZXQnIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGlzUGVuZGluZyA9IGNvcHlTdGF0ZS5zdGF0ZSA9PT0gJ3BlbmRpbmcnXG5cbiAgcmV0dXJuIFtjb3B5U3RhdGUsIGNvcHksIHJlc2V0LCBpc1BlbmRpbmddIGFzIGNvbnN0XG59XG5cbmZ1bmN0aW9uIHVzZUNvcHlNb2Rlcm4oY29udGVudDogc3RyaW5nKSB7XG4gIHR5cGUgQ29weVN0YXRlID1cbiAgICB8IHtcbiAgICAgICAgc3RhdGU6ICdpbml0aWFsJ1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBzdGF0ZTogJ2Vycm9yJ1xuICAgICAgICBlcnJvcjogdW5rbm93blxuICAgICAgfVxuICAgIHwgeyBzdGF0ZTogJ3N1Y2Nlc3MnIH1cblxuICBjb25zdCBbY29weVN0YXRlLCBkaXNwYXRjaCwgaXNQZW5kaW5nXSA9IFJlYWN0LnVzZUFjdGlvblN0YXRlKFxuICAgIChcbiAgICAgIHN0YXRlOiBDb3B5U3RhdGUsXG4gICAgICBhY3Rpb246ICdyZXNldCcgfCAnY29weSdcbiAgICApOiBDb3B5U3RhdGUgfCBQcm9taXNlPENvcHlTdGF0ZT4gPT4ge1xuICAgICAgaWYgKGFjdGlvbiA9PT0gJ3Jlc2V0Jykge1xuICAgICAgICByZXR1cm4geyBzdGF0ZTogJ2luaXRpYWwnIH1cbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb24gPT09ICdjb3B5Jykge1xuICAgICAgICBpZiAoIW5hdmlnYXRvci5jbGlwYm9hcmQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhdGU6ICdlcnJvcicsXG4gICAgICAgICAgICBlcnJvcjogbmV3IEVycm9yKFxuICAgICAgICAgICAgICAnQ29weSB0byBjbGlwYm9hcmQgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXInXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoY29udGVudCkudGhlbihcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogJ3N1Y2Nlc3MnIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3RhdGU6ICdlcnJvcicsIGVycm9yIH1cbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZVxuICAgIH0sXG4gICAge1xuICAgICAgc3RhdGU6ICdpbml0aWFsJyxcbiAgICB9XG4gIClcblxuICBmdW5jdGlvbiBjb3B5KCkge1xuICAgIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICBkaXNwYXRjaCgnY29weScpXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHJlc2V0ID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGRpc3BhdGNoKCdyZXNldCcpXG4gIH0sIFtcbiAgICAvLyBUT0RPOiBgZGlzcGF0Y2hgIGZyb20gYHVzZUFjdGlvblN0YXRlYCBpcyBub3QgcmVhY3RpdmUuXG4gICAgLy8gUmVtb3ZlIGZyb20gZGVwZW5kZW5jaWVzIG9uY2UgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjk2NjUgaXMgcmVsZWFzZWQuXG4gICAgZGlzcGF0Y2gsXG4gIF0pXG5cbiAgcmV0dXJuIFtjb3B5U3RhdGUsIGNvcHksIHJlc2V0LCBpc1BlbmRpbmddIGFzIGNvbnN0XG59XG5cbmNvbnN0IHVzZUNvcHkgPVxuICB0eXBlb2YgUmVhY3QudXNlQWN0aW9uU3RhdGUgPT09ICdmdW5jdGlvbicgPyB1c2VDb3B5TW9kZXJuIDogdXNlQ29weUxlZ2FjeVxuXG5leHBvcnQgZnVuY3Rpb24gQ29weUJ1dHRvbih7XG4gIGFjdGlvbkxhYmVsLFxuICBzdWNjZXNzTGFiZWwsXG4gIGNvbnRlbnQsXG4gIGljb24sXG4gIGRpc2FibGVkLFxuICAuLi5wcm9wc1xufTogUmVhY3QuSFRNTFByb3BzPEhUTUxCdXR0b25FbGVtZW50PiAmIHtcbiAgYWN0aW9uTGFiZWw6IHN0cmluZ1xuICBzdWNjZXNzTGFiZWw6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCBbY29weVN0YXRlLCBjb3B5LCByZXNldCwgaXNQZW5kaW5nXSA9IHVzZUNvcHkoY29udGVudClcblxuICBjb25zdCBlcnJvciA9IGNvcHlTdGF0ZS5zdGF0ZSA9PT0gJ2Vycm9yJyA/IGNvcHlTdGF0ZS5lcnJvciA6IG51bGxcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXJyb3IgIT09IG51bGwpIHtcbiAgICAgIC8vIEFkZGl0aW9uYWwgY29uc29sZS5lcnJvciB0byBnZXQgdGhlIHN0YWNrLlxuICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICB9XG4gIH0sIFtlcnJvcl0pXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNvcHlTdGF0ZS5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcmVzZXQoKVxuICAgICAgfSwgMjAwMClcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJZClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpc1BlbmRpbmcsIGNvcHlTdGF0ZS5zdGF0ZSwgcmVzZXRdKVxuICBjb25zdCBpc0Rpc2FibGVkID0gaXNQZW5kaW5nIHx8IGRpc2FibGVkXG4gIGNvbnN0IGxhYmVsID0gY29weVN0YXRlLnN0YXRlID09PSAnc3VjY2VzcycgPyBzdWNjZXNzTGFiZWwgOiBhY3Rpb25MYWJlbFxuXG4gIC8vIEFzc2lnbiBkZWZhdWx0IGljb25cbiAgY29uc3QgcmVuZGVyZWRJY29uID1cbiAgICBjb3B5U3RhdGUuc3RhdGUgPT09ICdzdWNjZXNzJyA/IDxDb3B5U3VjY2Vzc0ljb24gLz4gOiBpY29uIHx8IDxDb3B5SWNvbiAvPlxuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgey4uLnByb3BzfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICB0aXRsZT17bGFiZWx9XG4gICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICAgIGFyaWEtZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b25cbiAgICAgIGNsYXNzTmFtZT17YG5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b24gbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbi0tJHtjb3B5U3RhdGUuc3RhdGV9YH1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgaWYgKCFpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgY29weSgpXG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgPlxuICAgICAge3JlbmRlcmVkSWNvbn1cbiAgICAgIHtjb3B5U3RhdGUuc3RhdGUgPT09ICdlcnJvcicgPyBgICR7Y29weVN0YXRlLmVycm9yfWAgOiBudWxsfVxuICAgIDwvYnV0dG9uPlxuICApXG59XG5cbmZ1bmN0aW9uIENvcHlJY29uKCkge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBmaWxsPVwidHJhbnNwYXJlbnRcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZVdpZHRoPVwiMS41XCJcbiAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICA+XG4gICAgICA8cmVjdCB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB4PVwiOFwiIHk9XCI4XCIgcng9XCIyXCIgcnk9XCIyXCIgLz5cbiAgICAgIDxwYXRoIGQ9XCJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyXCIgLz5cbiAgICA8L3N2Zz5cbiAgKVxufVxuXG5mdW5jdGlvbiBDb3B5U3VjY2Vzc0ljb24oKSB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgeGxpbmtUaXRsZT1cImNvcGllZFwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgID5cbiAgICAgIDxwYXRoIGQ9XCJNMTMuNzggNC4yMmEuNzUuNzUgMCAwIDEgMCAxLjA2bC03LjI1IDcuMjVhLjc1Ljc1IDAgMCAxLTEuMDYgMEwyLjIyIDkuMjhhLjc1MS43NTEgMCAwIDEgLjAxOC0xLjA0Mi43NTEuNzUxIDAgMCAxIDEuMDQyLS4wMThMNiAxMC45NGw2LjcyLTYuNzJhLjc1Ljc1IDAgMCAxIDEuMDYgMFpcIiAvPlxuICAgIDwvc3ZnPlxuICApXG59XG4iXSwibmFtZXMiOlsiQ29weUJ1dHRvbiIsInVzZUNvcHlMZWdhY3kiLCJjb250ZW50IiwiY29weVN0YXRlIiwiZGlzcGF0Y2giLCJSZWFjdCIsInVzZVJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJlcnJvciIsImNvcHkiLCJpc1BlbmRpbmciLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJFcnJvciIsIndyaXRlVGV4dCIsInRoZW4iLCJyZXNldCIsInVzZUNhbGxiYWNrIiwidXNlQ29weU1vZGVybiIsInVzZUFjdGlvblN0YXRlIiwic3RhcnRUcmFuc2l0aW9uIiwidXNlQ29weSIsImFjdGlvbkxhYmVsIiwic3VjY2Vzc0xhYmVsIiwiaWNvbiIsImRpc2FibGVkIiwicHJvcHMiLCJ1c2VFZmZlY3QiLCJjb25zb2xlIiwidGltZW91dElkIiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsImlzRGlzYWJsZWQiLCJsYWJlbCIsInJlbmRlcmVkSWNvbiIsIkNvcHlTdWNjZXNzSWNvbiIsIkNvcHlJY29uIiwiYnV0dG9uIiwidGl0bGUiLCJhcmlhLWxhYmVsIiwiYXJpYS1kaXNhYmxlZCIsImRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJzdmciLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJyZWN0IiwieCIsInkiLCJyeCIsInJ5IiwicGF0aCIsImQiLCJ4bGlua1RpdGxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js":
|
||
/*!*****************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js ***!
|
||
\*****************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HotlinkedText\", ({\n enumerable: true,\n get: function() {\n return HotlinkedText;\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 _magicidentifier = __webpack_require__(/*! ../../../../../../shared/lib/magic-identifier */ \"(ssr)/./node_modules/next/dist/shared/lib/magic-identifier.js\");\nconst linkRegex = /https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/i;\nconst splitRegexp = new RegExp(\"(\" + _magicidentifier.MAGIC_IDENTIFIER_REGEX.source + \"|\\\\s+)\");\nconst HotlinkedText = function HotlinkedText(props) {\n const { text, matcher } = props;\n const wordsAndWhitespaces = text.split(splitRegexp);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: wordsAndWhitespaces.map((word, index)=>{\n if (linkRegex.test(word)) {\n const link = linkRegex.exec(word);\n const href = link[0];\n // If link matcher is present but the link doesn't match, don't turn it into a link\n if (typeof matcher === 'function' && !matcher(href)) {\n return word;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.default.Fragment, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n href: href,\n target: \"_blank\",\n rel: \"noreferrer noopener\",\n children: word\n })\n }, \"link-\" + index);\n }\n try {\n const decodedWord = (0, _magicidentifier.decodeMagicIdentifier)(word);\n if (decodedWord !== word) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"i\", {\n children: [\n '{',\n decodedWord,\n '}'\n ]\n }, \"ident-\" + index);\n }\n } catch (e) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"i\", {\n children: [\n '{',\n word,\n \" (decoding failed: \",\n '' + e,\n \")\",\n '}'\n ]\n }, \"ident-\" + index);\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.default.Fragment, {\n children: word\n }, \"text-\" + index);\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvaG90LWxpbmtlZC10ZXh0L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBVWFBOzs7ZUFBQUE7Ozs7OzRFQVZLOzZDQUlYO0FBRVAsTUFBTUMsWUFBWTtBQUVsQixNQUFNQyxjQUFjLElBQUlDLE9BQVEsTUFBR0MsaUJBQUFBLHNCQUFzQixDQUFDQyxNQUFNLEdBQUM7QUFFMUQsTUFBTUwsZ0JBR1IsU0FBU0EsY0FBY00sS0FBSztJQUMvQixNQUFNLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFLEdBQUdGO0lBRTFCLE1BQU1HLHNCQUFzQkYsS0FBS0csS0FBSyxDQUFDUjtJQUV2QyxxQkFDRTtrQkFDR08sb0JBQW9CRSxHQUFHLENBQUMsQ0FBQ0MsTUFBTUM7WUFDOUIsSUFBSVosVUFBVWEsSUFBSSxDQUFDRixPQUFPO2dCQUN4QixNQUFNRyxPQUFPZCxVQUFVZSxJQUFJLENBQUNKO2dCQUM1QixNQUFNSyxPQUFPRixJQUFJLENBQUMsRUFBRTtnQkFDcEIsbUZBQW1GO2dCQUNuRixJQUFJLE9BQU9QLFlBQVksY0FBYyxDQUFDQSxRQUFRUyxPQUFPO29CQUNuRCxPQUFPTDtnQkFDVDtnQkFDQSxxQkFDRSxxQkFBQ00sT0FBQUEsT0FBSyxDQUFDQyxRQUFROzhCQUNiLG1DQUFDQyxLQUFBQTt3QkFBRUgsTUFBTUE7d0JBQU1JLFFBQU87d0JBQVNDLEtBQUk7a0NBQ2hDVjs7bUJBRmlCLFVBQU9DO1lBTWpDO1lBQ0EsSUFBSTtnQkFDRixNQUFNVSxjQUFjQyxDQUFBQSxHQUFBQSxpQkFBQUEscUJBQUFBLEVBQXNCWjtnQkFDMUMsSUFBSVcsZ0JBQWdCWCxNQUFNO29CQUN4QixxQkFDRSxzQkFBQ2EsS0FBQUE7OzRCQUNFOzRCQUNBRjs0QkFDQTs7dUJBSE0sV0FBUVY7Z0JBTXJCO1lBQ0YsRUFBRSxPQUFPYSxHQUFHO2dCQUNWLE9BQ0UsV0FERixHQUNFLHNCQUFDRCxLQUFBQTs7d0JBQ0U7d0JBQ0FiO3dCQUFLO3dCQUFvQixLQUFLYzt3QkFBRTt3QkFBRTs7bUJBRjVCLFdBQVFiO1lBS3JCO1lBQ0EscUJBQU8scUJBQUNLLE9BQUFBLE9BQUssQ0FBQ0MsUUFBUTswQkFBd0JQO2VBQWpCLFVBQU9DO1FBQ3RDOztBQUdOIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29tcG9uZW50c1xcaG90LWxpbmtlZC10ZXh0XFxpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgZGVjb2RlTWFnaWNJZGVudGlmaWVyLFxuICBNQUdJQ19JREVOVElGSUVSX1JFR0VYLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL21hZ2ljLWlkZW50aWZpZXInXG5cbmNvbnN0IGxpbmtSZWdleCA9IC9odHRwcz86XFwvXFwvW15cXHMvJC4/I10uW15cXHMpJ1wiXSovaVxuXG5jb25zdCBzcGxpdFJlZ2V4cCA9IG5ldyBSZWdFeHAoYCgke01BR0lDX0lERU5USUZJRVJfUkVHRVguc291cmNlfXxcXFxccyspYClcblxuZXhwb3J0IGNvbnN0IEhvdGxpbmtlZFRleHQ6IFJlYWN0LkZDPHtcbiAgdGV4dDogc3RyaW5nXG4gIG1hdGNoZXI/OiAodGV4dDogc3RyaW5nKSA9PiBib29sZWFuXG59PiA9IGZ1bmN0aW9uIEhvdGxpbmtlZFRleHQocHJvcHMpIHtcbiAgY29uc3QgeyB0ZXh0LCBtYXRjaGVyIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHdvcmRzQW5kV2hpdGVzcGFjZXMgPSB0ZXh0LnNwbGl0KHNwbGl0UmVnZXhwKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHt3b3Jkc0FuZFdoaXRlc3BhY2VzLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGxpbmtSZWdleC50ZXN0KHdvcmQpKSB7XG4gICAgICAgICAgY29uc3QgbGluayA9IGxpbmtSZWdleC5leGVjKHdvcmQpIVxuICAgICAgICAgIGNvbnN0IGhyZWYgPSBsaW5rWzBdXG4gICAgICAgICAgLy8gSWYgbGluayBtYXRjaGVyIGlzIHByZXNlbnQgYnV0IHRoZSBsaW5rIGRvZXNuJ3QgbWF0Y2gsIGRvbid0IHR1cm4gaXQgaW50byBhIGxpbmtcbiAgICAgICAgICBpZiAodHlwZW9mIG1hdGNoZXIgPT09ICdmdW5jdGlvbicgJiYgIW1hdGNoZXIoaHJlZikpIHtcbiAgICAgICAgICAgIHJldHVybiB3b3JkXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtgbGluay0ke2luZGV4fWB9PlxuICAgICAgICAgICAgICA8YSBocmVmPXtocmVmfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub3JlZmVycmVyIG5vb3BlbmVyXCI+XG4gICAgICAgICAgICAgICAge3dvcmR9XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGVjb2RlZFdvcmQgPSBkZWNvZGVNYWdpY0lkZW50aWZpZXIod29yZClcbiAgICAgICAgICBpZiAoZGVjb2RlZFdvcmQgIT09IHdvcmQpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxpIGtleT17YGlkZW50LSR7aW5kZXh9YH0+XG4gICAgICAgICAgICAgICAgeyd7J31cbiAgICAgICAgICAgICAgICB7ZGVjb2RlZFdvcmR9XG4gICAgICAgICAgICAgICAgeyd9J31cbiAgICAgICAgICAgICAgPC9pPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8aSBrZXk9e2BpZGVudC0ke2luZGV4fWB9PlxuICAgICAgICAgICAgICB7J3snfVxuICAgICAgICAgICAgICB7d29yZH0gKGRlY29kaW5nIGZhaWxlZDogeycnICsgZX0peyd9J31cbiAgICAgICAgICAgIDwvaT5cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDxSZWFjdC5GcmFnbWVudCBrZXk9e2B0ZXh0LSR7aW5kZXh9YH0+e3dvcmR9PC9SZWFjdC5GcmFnbWVudD5cbiAgICAgIH0pfVxuICAgIDwvPlxuICApXG59XG4iXSwibmFtZXMiOlsiSG90bGlua2VkVGV4dCIsImxpbmtSZWdleCIsInNwbGl0UmVnZXhwIiwiUmVnRXhwIiwiTUFHSUNfSURFTlRJRklFUl9SRUdFWCIsInNvdXJjZSIsInByb3BzIiwidGV4dCIsIm1hdGNoZXIiLCJ3b3Jkc0FuZFdoaXRlc3BhY2VzIiwic3BsaXQiLCJtYXAiLCJ3b3JkIiwiaW5kZXgiLCJ0ZXN0IiwibGluayIsImV4ZWMiLCJocmVmIiwiUmVhY3QiLCJGcmFnbWVudCIsImEiLCJ0YXJnZXQiLCJyZWwiLCJkZWNvZGVkV29yZCIsImRlY29kZU1hZ2ljSWRlbnRpZmllciIsImkiLCJlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js":
|
||
/*!************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js ***!
|
||
\************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NodejsInspectorCopyButton\", ({\n enumerable: true,\n get: function() {\n return NodejsInspectorCopyButton;\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 _copybutton = __webpack_require__(/*! ./copy-button */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js\");\n// Inline this helper to avoid widely used across the codebase,\n// as for this feature the Chrome detector doesn't need to be super accurate.\nfunction isChrome() {\n if (true) return false;\n const isChromium = 'chrome' in window && window.chrome;\n const vendorName = window.navigator.vendor;\n return isChromium !== null && isChromium !== undefined && vendorName === 'Google Inc.';\n}\nconst isChromeBrowser = isChrome();\nfunction NodeJsIcon(props) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"44\",\n height: \"44\",\n viewBox: \"0 0 44 44\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ...props,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"g\", {\n clipPath: \"url(#clip0_1546_2)\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M22 0L41.0526 11V33L22 44L2.94744 33V11L22 0Z\",\n fill: \"#71BD55\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M41.0493 11.0001L41.0493 33L22 1.5583e-07L41.0493 11.0001Z\",\n fill: \"#A1DF83\"\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"defs\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"clipPath\", {\n id: \"clip0_1546_2\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"rect\", {\n width: \"44\",\n height: \"44\",\n fill: \"white\"\n })\n })\n })\n ]\n });\n}\nfunction NodeJsDisabledIcon(props) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"44\",\n height: \"44\",\n viewBox: \"0 0 44 44\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ...props,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M4.44744 11.866L22 1.73205L39.5526 11.866V32.134L22 42.2679L4.44744 32.134V11.866Z\",\n stroke: \"currentColor\",\n fill: \"transparent\",\n strokeWidth: \"3\",\n strokeLinejoin: \"round\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M22 2L39 32\",\n stroke: \"currentColor\",\n strokeWidth: \"3\",\n strokeLinecap: \"round\"\n })\n ]\n });\n}\nconst label = 'Learn more about enabling Node.js inspector for server code with Chrome DevTools';\nfunction NodejsInspectorCopyButton(param) {\n let { devtoolsFrontendUrl } = param;\n const content = devtoolsFrontendUrl || '';\n const disabled = !content || !isChromeBrowser;\n if (disabled) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n title: label,\n \"aria-label\": label,\n className: \"nextjs-data-runtime-error-inspect-link\",\n href: \"https://nextjs.org/docs/app/building-your-application/configuring/debugging#server-side-code\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(NodeJsDisabledIcon, {\n width: 16,\n height: 16\n })\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_copybutton.CopyButton, {\n \"data-nextjs-data-runtime-error-copy-devtools-url\": true,\n actionLabel: 'Copy Chrome DevTools URL',\n successLabel: \"Copied\",\n content: content,\n icon: /*#__PURE__*/ (0, _jsxruntime.jsx)(NodeJsIcon, {\n width: 16,\n height: 16\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=nodejs-inspector.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvbm9kZWpzLWluc3BlY3Rvci5qcyIsIm1hcHBpbmdzIjoiOzs7OzZEQTZFZ0JBOzs7ZUFBQUE7Ozs7d0NBN0VXO0FBRTNCLCtEQUErRDtBQUMvRCw2RUFBNkU7QUFDN0UsU0FBU0M7SUFDUCxJQUFJLElBQTZCLEVBQUUsT0FBTztJQUMxQyxNQUFNRSxhQUFhLFlBQVlELFVBQVVBLE9BQU9FLE1BQU07SUFDdEQsTUFBTUMsYUFBYUgsT0FBT0ksU0FBUyxDQUFDQyxNQUFNO0lBRTFDLE9BQ0VKLGVBQWUsUUFDZkEsZUFBZUssYUFDZkgsZUFBZTtBQUVuQjtBQUVBLE1BQU1JLGtCQUFrQlI7QUFFeEIsU0FBU1MsV0FBV0MsS0FBVTtJQUM1QixxQkFDRSxzQkFBQ0MsT0FBQUE7UUFDQ0MsT0FBTTtRQUNOQyxRQUFPO1FBQ1BDLFNBQVE7UUFDUkMsTUFBSztRQUNMQyxPQUFNO1FBQ0wsR0FBR04sS0FBSzs7MEJBRVQsc0JBQUNPLEtBQUFBO2dCQUFFQyxVQUFTOztrQ0FDVixxQkFBQ0MsUUFBQUE7d0JBQ0NDLEdBQUU7d0JBQ0ZMLE1BQUs7O2tDQUVQLHFCQUFDSSxRQUFBQTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7OzswQkFHVCxxQkFBQ00sUUFBQUE7MEJBQ0MsbUNBQUNILFlBQUFBO29CQUFTSSxJQUFHOzhCQUNYLG1DQUFDQyxRQUFBQTt3QkFBS1gsT0FBTTt3QkFBS0MsUUFBTzt3QkFBS0UsTUFBSzs7Ozs7O0FBSzVDO0FBRUEsU0FBU1MsbUJBQW1CZCxLQUFVO0lBQ3BDLHFCQUNFLHNCQUFDQyxPQUFBQTtRQUNDQyxPQUFNO1FBQ05DLFFBQU87UUFDUEMsU0FBUTtRQUNSQyxNQUFLO1FBQ0xDLE9BQU07UUFDTCxHQUFHTixLQUFLOzswQkFFVCxxQkFBQ1MsUUFBQUE7Z0JBQ0NDLEdBQUU7Z0JBQ0ZLLFFBQU87Z0JBQ1BWLE1BQUs7Z0JBQ0xXLGFBQVk7Z0JBQ1pDLGdCQUFlOzswQkFFakIscUJBQUNSLFFBQUFBO2dCQUNDQyxHQUFFO2dCQUNGSyxRQUFPO2dCQUNQQyxhQUFZO2dCQUNaRSxlQUFjOzs7O0FBSXRCO0FBRUEsTUFBTUMsUUFDSjtBQUVLLFNBQVM5QiwwQkFBMEIsS0FJekM7SUFKeUMsTUFDeEMrQixtQkFBbUIsRUFHcEIsR0FKeUM7SUFLeEMsTUFBTUMsVUFBVUQsdUJBQXVCO0lBQ3ZDLE1BQU1FLFdBQVcsQ0FBQ0QsV0FBVyxDQUFDdkI7SUFDOUIsSUFBSXdCLFVBQVU7UUFDWixxQkFDRSxxQkFBQ0MsS0FBQUE7WUFDQ0MsT0FBT0w7WUFDUE0sY0FBWU47WUFDWk8sV0FBVTtZQUNWQyxNQUFPO1lBQ1BDLFFBQU87WUFDUEMsS0FBSTtzQkFFSixtQ0FBQ2Ysb0JBQUFBO2dCQUFtQlosT0FBTztnQkFBSUMsUUFBUTs7O0lBRzdDO0lBQ0EscUJBQ0UscUJBQUMyQixZQUFBQSxVQUFVO1FBQ1RDLGtEQUFnRDtRQUNoREMsYUFBYTtRQUNiQyxjQUFhO1FBQ2JaLFNBQVNBO1FBQ1RhLE1BQUFBLFdBQUFBLEdBQU0scUJBQUNuQyxZQUFBQTtZQUFXRyxPQUFPO1lBQUlDLFFBQVE7OztBQUczQyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbXBvbmVudHNcXG5vZGVqcy1pbnNwZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcHlCdXR0b24gfSBmcm9tICcuL2NvcHktYnV0dG9uJ1xuXG4vLyBJbmxpbmUgdGhpcyBoZWxwZXIgdG8gYXZvaWQgd2lkZWx5IHVzZWQgYWNyb3NzIHRoZSBjb2RlYmFzZSxcbi8vIGFzIGZvciB0aGlzIGZlYXR1cmUgdGhlIENocm9tZSBkZXRlY3RvciBkb2Vzbid0IG5lZWQgdG8gYmUgc3VwZXIgYWNjdXJhdGUuXG5mdW5jdGlvbiBpc0Nocm9tZSgpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2VcbiAgY29uc3QgaXNDaHJvbWl1bSA9ICdjaHJvbWUnIGluIHdpbmRvdyAmJiB3aW5kb3cuY2hyb21lXG4gIGNvbnN0IHZlbmRvck5hbWUgPSB3aW5kb3cubmF2aWdhdG9yLnZlbmRvclxuXG4gIHJldHVybiAoXG4gICAgaXNDaHJvbWl1bSAhPT0gbnVsbCAmJlxuICAgIGlzQ2hyb21pdW0gIT09IHVuZGVmaW5lZCAmJlxuICAgIHZlbmRvck5hbWUgPT09ICdHb29nbGUgSW5jLidcbiAgKVxufVxuXG5jb25zdCBpc0Nocm9tZUJyb3dzZXIgPSBpc0Nocm9tZSgpXG5cbmZ1bmN0aW9uIE5vZGVKc0ljb24ocHJvcHM6IGFueSkge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHdpZHRoPVwiNDRcIlxuICAgICAgaGVpZ2h0PVwiNDRcIlxuICAgICAgdmlld0JveD1cIjAgMCA0NCA0NFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8ZyBjbGlwUGF0aD1cInVybCgjY2xpcDBfMTU0Nl8yKVwiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMjIgMEw0MS4wNTI2IDExVjMzTDIyIDQ0TDIuOTQ3NDQgMzNWMTFMMjIgMFpcIlxuICAgICAgICAgIGZpbGw9XCIjNzFCRDU1XCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTQxLjA0OTMgMTEuMDAwMUw0MS4wNDkzIDMzTDIyIDEuNTU4M2UtMDdMNDEuMDQ5MyAxMS4wMDAxWlwiXG4gICAgICAgICAgZmlsbD1cIiNBMURGODNcIlxuICAgICAgICAvPlxuICAgICAgPC9nPlxuICAgICAgPGRlZnM+XG4gICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE1NDZfMlwiPlxuICAgICAgICAgIDxyZWN0IHdpZHRoPVwiNDRcIiBoZWlnaHQ9XCI0NFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICA8L2RlZnM+XG4gICAgPC9zdmc+XG4gIClcbn1cblxuZnVuY3Rpb24gTm9kZUpzRGlzYWJsZWRJY29uKHByb3BzOiBhbnkpIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB3aWR0aD1cIjQ0XCJcbiAgICAgIGhlaWdodD1cIjQ0XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgNDQgNDRcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk00LjQ0NzQ0IDExLjg2NkwyMiAxLjczMjA1TDM5LjU1MjYgMTEuODY2VjMyLjEzNEwyMiA0Mi4yNjc5TDQuNDQ3NDQgMzIuMTM0VjExLjg2NlpcIlxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBmaWxsPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzdHJva2VXaWR0aD1cIjNcIlxuICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTIyIDJMMzkgMzJcIlxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBzdHJva2VXaWR0aD1cIjNcIlxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKVxufVxuXG5jb25zdCBsYWJlbCA9XG4gICdMZWFybiBtb3JlIGFib3V0IGVuYWJsaW5nIE5vZGUuanMgaW5zcGVjdG9yIGZvciBzZXJ2ZXIgY29kZSB3aXRoIENocm9tZSBEZXZUb29scydcblxuZXhwb3J0IGZ1bmN0aW9uIE5vZGVqc0luc3BlY3RvckNvcHlCdXR0b24oe1xuICBkZXZ0b29sc0Zyb250ZW5kVXJsLFxufToge1xuICBkZXZ0b29sc0Zyb250ZW5kVXJsOiBzdHJpbmcgfCB1bmRlZmluZWRcbn0pIHtcbiAgY29uc3QgY29udGVudCA9IGRldnRvb2xzRnJvbnRlbmRVcmwgfHwgJydcbiAgY29uc3QgZGlzYWJsZWQgPSAhY29udGVudCB8fCAhaXNDaHJvbWVCcm93c2VyXG4gIGlmIChkaXNhYmxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8YVxuICAgICAgICB0aXRsZT17bGFiZWx9XG4gICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICBjbGFzc05hbWU9XCJuZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWluc3BlY3QtbGlua1wiXG4gICAgICAgIGhyZWY9e2BodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9jb25maWd1cmluZy9kZWJ1Z2dpbmcjc2VydmVyLXNpZGUtY29kZWB9XG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgPlxuICAgICAgICA8Tm9kZUpzRGlzYWJsZWRJY29uIHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz5cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8Q29weUJ1dHRvblxuICAgICAgZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktZGV2dG9vbHMtdXJsXG4gICAgICBhY3Rpb25MYWJlbD17J0NvcHkgQ2hyb21lIERldlRvb2xzIFVSTCd9XG4gICAgICBzdWNjZXNzTGFiZWw9XCJDb3BpZWRcIlxuICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgIGljb249ezxOb2RlSnNJY29uIHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz59XG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIk5vZGVqc0luc3BlY3RvckNvcHlCdXR0b24iLCJpc0Nocm9tZSIsIndpbmRvdyIsImlzQ2hyb21pdW0iLCJjaHJvbWUiLCJ2ZW5kb3JOYW1lIiwibmF2aWdhdG9yIiwidmVuZG9yIiwidW5kZWZpbmVkIiwiaXNDaHJvbWVCcm93c2VyIiwiTm9kZUpzSWNvbiIsInByb3BzIiwic3ZnIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwiZyIsImNsaXBQYXRoIiwicGF0aCIsImQiLCJkZWZzIiwiaWQiLCJyZWN0IiwiTm9kZUpzRGlzYWJsZWRJY29uIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZUxpbmVjYXAiLCJsYWJlbCIsImRldnRvb2xzRnJvbnRlbmRVcmwiLCJjb250ZW50IiwiZGlzYWJsZWQiLCJhIiwidGl0bGUiLCJhcmlhLWxhYmVsIiwiY2xhc3NOYW1lIiwiaHJlZiIsInRhcmdldCIsInJlbCIsIkNvcHlCdXR0b24iLCJkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1kZXZ0b29scy11cmwiLCJhY3Rpb25MYWJlbCIsInN1Y2Nlc3NMYWJlbCIsImljb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js":
|
||
/*!*****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.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 BuildError: function() {\n return BuildError;\n },\n styles: function() {\n return styles;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.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 _Dialog = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\nconst _Overlay = __webpack_require__(/*! ../components/Overlay */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\nconst _Terminal = __webpack_require__(/*! ../components/Terminal */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n h1.nextjs__container_errors_label {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: var(--size-gap-double) 0;\\n }\\n .nextjs-container-errors-header p {\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n white-space: pre-wrap;\\n }\\n .nextjs-container-errors-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-errors-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-errors-body small {\\n color: var(--color-font);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst BuildError = function BuildError(param) {\n let { message, versionInfo } = param;\n const noop = _react.useCallback({\n \"BuildError.useCallback[noop]\": ()=>{}\n }[\"BuildError.useCallback[noop]\"], []);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Overlay.Overlay, {\n fixed: true,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_error_label\",\n \"aria-describedby\": \"nextjs__container_error_desc\",\n onClose: noop,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogContent, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogHeader, {\n className: \"nextjs-container-errors-header\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n id: \"nextjs__container_errors_label\",\n className: \"nextjs__container_errors_label\",\n children: 'Build Error'\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_VersionStalenessInfo.VersionStalenessInfo, {\n versionInfo: versionInfo\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors_desc\",\n className: \"nextjs__container_errors_desc\",\n children: \"Failed to compile\"\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogBody, {\n className: \"nextjs-container-errors-body\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_Terminal.Terminal, {\n content: message\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"footer\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_build_error_desc\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"small\", {\n children: \"This error occurred during the build process and can only be dismissed by fixing the error.\"\n })\n })\n })\n ]\n })\n ]\n })\n })\n });\n};\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=BuildError.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9CdWlsZEVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWVhQSxVQUFVO2VBQVZBOztJQThDQUMsTUFBTTtlQUFOQTs7Ozs7OzZFQTdEVTtvQ0FPaEI7cUNBQ2lCO3NDQUNDO2tEQUNZOzBDQUNUOzs7Ozs7Ozs7O0FBSXJCLE1BQU1ELGFBQXdDLFNBQVNBLFdBQVcsS0FHeEU7SUFId0UsTUFDdkVFLE9BQU8sRUFDUEMsV0FBVyxFQUNaLEdBSHdFO0lBSXZFLE1BQU1DLE9BQU9DLE9BQU1DLFdBQVc7d0NBQUMsS0FBTzt1Q0FBRyxFQUFFO0lBQzNDLHFCQUNFLHFCQUFDQyxTQUFBQSxPQUFPO1FBQUNDLEtBQUs7a0JBQ1osbUNBQUNDLFFBQUFBLE1BQU07WUFDTEMsTUFBSztZQUNMQyxtQkFBZ0I7WUFDaEJDLG9CQUFpQjtZQUNqQkMsU0FBU1Q7c0JBRVQsb0NBQUNVLFFBQUFBLGFBQWE7O2tDQUNaLHNCQUFDQyxRQUFBQSxZQUFZO3dCQUFDQyxXQUFVOzswQ0FDdEIscUJBQUNDLE1BQUFBO2dDQUNDQyxJQUFHO2dDQUNIRixXQUFVOzBDQUVUOzswQ0FFSCxxQkFBQ0csc0JBQUFBLG9CQUFvQjtnQ0FBQ2hCLGFBQWFBOzswQ0FDbkMscUJBQUNpQixLQUFBQTtnQ0FDQ0YsSUFBRztnQ0FDSEYsV0FBVTswQ0FDWDs7OztrQ0FJSCxzQkFBQ0ssUUFBQUEsVUFBVTt3QkFBQ0wsV0FBVTs7MENBQ3BCLHFCQUFDTSxVQUFBQSxRQUFRO2dDQUFDQyxTQUFTckI7OzBDQUNuQixxQkFBQ3NCLFVBQUFBOzBDQUNDLG1DQUFDSixLQUFBQTtvQ0FBRUYsSUFBRzs4Q0FDSixtQ0FBQ08sU0FBQUE7a0RBQU07Ozs7Ozs7Ozs7QUFXdkI7QUFFTyxNQUFNeEIsU0FBQUEsQ0FBQUEsR0FBU3lCLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb250YWluZXJcXEJ1aWxkRXJyb3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBWZXJzaW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvcGFyc2UtdmVyc2lvbi1pbmZvJ1xuaW1wb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dCb2R5LFxuICBEaWFsb2dDb250ZW50LFxuICBEaWFsb2dIZWFkZXIsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvRGlhbG9nJ1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJy4uL2NvbXBvbmVudHMvT3ZlcmxheSdcbmltcG9ydCB7IFRlcm1pbmFsIH0gZnJvbSAnLi4vY29tcG9uZW50cy9UZXJtaW5hbCdcbmltcG9ydCB7IFZlcnNpb25TdGFsZW5lc3NJbmZvIH0gZnJvbSAnLi4vY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mbydcbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSAnLi4vaGVscGVycy9ub29wLXRlbXBsYXRlJ1xuXG5leHBvcnQgdHlwZSBCdWlsZEVycm9yUHJvcHMgPSB7IG1lc3NhZ2U6IHN0cmluZzsgdmVyc2lvbkluZm8/OiBWZXJzaW9uSW5mbyB9XG5cbmV4cG9ydCBjb25zdCBCdWlsZEVycm9yOiBSZWFjdC5GQzxCdWlsZEVycm9yUHJvcHM+ID0gZnVuY3Rpb24gQnVpbGRFcnJvcih7XG4gIG1lc3NhZ2UsXG4gIHZlcnNpb25JbmZvLFxufSkge1xuICBjb25zdCBub29wID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge30sIFtdKVxuICByZXR1cm4gKFxuICAgIDxPdmVybGF5IGZpeGVkPlxuICAgICAgPERpYWxvZ1xuICAgICAgICB0eXBlPVwiZXJyb3JcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcl9sYWJlbFwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcl9kZXNjXCJcbiAgICAgICAgb25DbG9zZT17bm9vcH1cbiAgICAgID5cbiAgICAgICAgPERpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICAgPERpYWxvZ0hlYWRlciBjbGFzc05hbWU9XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxoMVxuICAgICAgICAgICAgICBpZD1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsnQnVpbGQgRXJyb3InfVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxWZXJzaW9uU3RhbGVuZXNzSW5mbyB2ZXJzaW9uSW5mbz17dmVyc2lvbkluZm99IC8+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBpZD1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBGYWlsZWQgdG8gY29tcGlsZVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvRGlhbG9nSGVhZGVyPlxuICAgICAgICAgIDxEaWFsb2dCb2R5IGNsYXNzTmFtZT1cIm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHlcIj5cbiAgICAgICAgICAgIDxUZXJtaW5hbCBjb250ZW50PXttZXNzYWdlfSAvPlxuICAgICAgICAgICAgPGZvb3Rlcj5cbiAgICAgICAgICAgICAgPHAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9kZXNjXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsPlxuICAgICAgICAgICAgICAgICAgVGhpcyBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MgYW5kIGNhbiBvbmx5IGJlXG4gICAgICAgICAgICAgICAgICBkaXNtaXNzZWQgYnkgZml4aW5nIHRoZSBlcnJvci5cbiAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Zvb3Rlcj5cbiAgICAgICAgICA8L0RpYWxvZ0JvZHk+XG4gICAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDwvRGlhbG9nPlxuICAgIDwvT3ZlcmxheT5cbiAgKVxufVxuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gY3NzYFxuICBoMS5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LWJpZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWdnZXIpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbjogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKSAwO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgcCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcCk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgZm9vdGVyIHAge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5IHNtYWxsIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZm9udCk7XG4gIH1cbmBcbiJdLCJuYW1lcyI6WyJCdWlsZEVycm9yIiwic3R5bGVzIiwibWVzc2FnZSIsInZlcnNpb25JbmZvIiwibm9vcCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJPdmVybGF5IiwiZml4ZWQiLCJEaWFsb2ciLCJ0eXBlIiwiYXJpYS1sYWJlbGxlZGJ5IiwiYXJpYS1kZXNjcmliZWRieSIsIm9uQ2xvc2UiLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nSGVhZGVyIiwiY2xhc3NOYW1lIiwiaDEiLCJpZCIsIlZlcnNpb25TdGFsZW5lc3NJbmZvIiwicCIsIkRpYWxvZ0JvZHkiLCJUZXJtaW5hbCIsImNvbnRlbnQiLCJmb290ZXIiLCJzbWFsbCIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js":
|
||
/*!*************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.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 Errors: function() {\n return Errors;\n },\n styles: function() {\n return styles;\n }\n});\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.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 _shared = __webpack_require__(/*! ../../shared */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _Dialog = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\nconst _LeftRightDialogHeader = __webpack_require__(/*! ../components/LeftRightDialogHeader */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js\");\nconst _Overlay = __webpack_require__(/*! ../components/Overlay */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\nconst _Toast = __webpack_require__(/*! ../components/Toast */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js\");\nconst _geterrorbytype = __webpack_require__(/*! ../helpers/get-error-by-type */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js\");\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nconst _CloseIcon = __webpack_require__(/*! ../icons/CloseIcon */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\nconst _RuntimeError = __webpack_require__(/*! ./RuntimeError */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\nconst _errorsource = __webpack_require__(/*! ../../../../../shared/lib/error-source */ \"(ssr)/./node_modules/next/dist/shared/lib/error-source.js\");\nconst _hotlinkedtext = __webpack_require__(/*! ../components/hot-linked-text */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst _componentstackpseudohtml = __webpack_require__(/*! ./RuntimeError/component-stack-pseudo-html */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js\");\nconst _hydrationerrorinfo = __webpack_require__(/*! ../helpers/hydration-error-info */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\");\nconst _nodejsinspector = __webpack_require__(/*! ../components/nodejs-inspector */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js\");\nconst _copybutton = __webpack_require__(/*! ../components/copy-button */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js\");\nconst _consoleerror = __webpack_require__(/*! ../helpers/console-error */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n .nextjs-error-with-static {\\n bottom: calc(var(--size-gap-double) * 4.5);\\n }\\n .nextjs-container-errors-header {\\n position: relative;\\n }\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: calc(var(--size-gap-double) * 1.5) 0;\\n color: var(--color-title-h1);\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-font-small);\\n color: var(--color-accents-1);\\n margin-left: var(--size-gap-double);\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header p {\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n white-space: pre-wrap;\\n }\\n .nextjs__container_errors_desc {\\n font-family: var(--font-stack-monospace);\\n padding: var(--size-gap) var(--size-gap-double);\\n border-left: 2px solid var(--color-text-color-red-1);\\n margin-top: var(--size-gap);\\n font-weight: bold;\\n color: var(--color-text-color-red-1);\\n background-color: var(--color-text-background-red-1);\\n }\\n p.nextjs__container_errors__link {\\n margin: var(--size-gap-double) auto;\\n color: var(--color-text-color-red-1);\\n font-weight: 600;\\n font-size: 15px;\\n }\\n p.nextjs__container_errors__notes {\\n margin: var(--size-gap-double) auto;\\n color: var(--color-stack-notes);\\n font-weight: 600;\\n font-size: 15px;\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n }\\n .nextjs-container-errors-header > p > a {\\n color: inherit;\\n font-weight: bold;\\n }\\n .nextjs-container-errors-body > h2:not(:first-child) {\\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\\n }\\n .nextjs-container-errors-body > h2 {\\n color: var(--color-title-color);\\n margin-bottom: var(--size-gap);\\n font-size: var(--size-font-big);\\n }\\n .nextjs__container_errors__component-stack {\\n padding: 12px 32px;\\n color: var(--color-ansi-fg);\\n background: var(--color-ansi-bg);\\n }\\n .nextjs-toast-errors-parent {\\n cursor: pointer;\\n transition: transform 0.2s ease;\\n }\\n .nextjs-toast-errors-parent:hover {\\n transform: scale(1.1);\\n }\\n .nextjs-toast-errors {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n }\\n .nextjs-toast-errors > svg {\\n margin-right: var(--size-gap);\\n }\\n .nextjs-toast-hide-button {\\n margin-left: var(--size-gap-triple);\\n border: none;\\n background: none;\\n color: var(--color-ansi-bright-white);\\n padding: 0;\\n transition: opacity 0.25s ease;\\n opacity: 0.7;\\n }\\n .nextjs-toast-hide-button:hover {\\n opacity: 1;\\n }\\n .nextjs-container-errors-header\\n > .nextjs-container-build-error-version-status {\\n position: absolute;\\n top: 0;\\n right: 0;\\n }\\n .nextjs__container_errors_inspect_copy_button {\\n cursor: pointer;\\n background: none;\\n border: none;\\n color: var(--color-ansi-bright-white);\\n font-size: 1.5rem;\\n padding: 0;\\n margin: 0;\\n margin-left: var(--size-gap);\\n transition: opacity 0.25s ease;\\n }\\n .nextjs__container_errors__error_title {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n }\\n .nextjs-data-runtime-error-inspect-link,\\n .nextjs-data-runtime-error-inspect-link:hover {\\n margin: 0 8px;\\n color: inherit;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction isNextjsLink(text) {\n return text.startsWith('https://nextjs.org');\n}\nfunction ErrorDescription(param) {\n let { error, hydrationWarning } = param;\n const isUnhandledOrReplayError = (0, _consoleerror.isUnhandledConsoleOrRejection)(error);\n const unhandledErrorType = isUnhandledOrReplayError ? (0, _consoleerror.getUnhandledErrorType)(error) : null;\n const isConsoleErrorStringMessage = unhandledErrorType === 'string';\n // If the error is:\n // - hydration warning\n // - captured console error or unhandled rejection\n // skip displaying the error name\n const title = isUnhandledOrReplayError && isConsoleErrorStringMessage || hydrationWarning ? '' : error.name + ': ';\n // If it's replayed error, display the environment name\n const environmentName = 'environmentName' in error ? error['environmentName'] : '';\n const envPrefix = environmentName ? \"[ \" + environmentName + \" ] \" : '';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n envPrefix,\n title,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: hydrationWarning || error.message,\n matcher: isNextjsLink\n })\n ]\n });\n}\nfunction getErrorSignature(ev) {\n const { event } = ev;\n switch(event.type){\n case _shared.ACTION_UNHANDLED_ERROR:\n case _shared.ACTION_UNHANDLED_REJECTION:\n {\n return event.reason.name + \"::\" + event.reason.message + \"::\" + event.reason.stack;\n }\n default:\n {}\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = event;\n return '';\n}\nfunction Errors(param) {\n let { isAppDir, errors, initialDisplayState, versionInfo, hasStaticIndicator, debugInfo } = param;\n var _activeError_componentStackFrames;\n const [lookups, setLookups] = (0, _react.useState)({});\n const [readyErrors, nextError] = (0, _react.useMemo)(()=>{\n let ready = [];\n let next = null;\n // Ensure errors are displayed in the order they occurred in:\n for(let idx = 0; idx < errors.length; ++idx){\n const e = errors[idx];\n const { id } = e;\n if (id in lookups) {\n ready.push(lookups[id]);\n continue;\n }\n // Check for duplicate errors\n if (idx > 0) {\n const prev = errors[idx - 1];\n if (getErrorSignature(prev) === getErrorSignature(e)) {\n continue;\n }\n }\n next = e;\n break;\n }\n return [\n ready,\n next\n ];\n }, [\n errors,\n lookups\n ]);\n const isLoading = (0, _react.useMemo)(()=>{\n return readyErrors.length < 1 && Boolean(errors.length);\n }, [\n errors.length,\n readyErrors.length\n ]);\n (0, _react.useEffect)(()=>{\n if (nextError == null) {\n return;\n }\n let mounted = true;\n (0, _geterrorbytype.getErrorByType)(nextError, isAppDir).then((resolved)=>{\n // We don't care if the desired error changed while we were resolving,\n // thus we're not tracking it using a ref. Once the work has been done,\n // we'll store it.\n if (mounted) {\n setLookups((m)=>({\n ...m,\n [resolved.id]: resolved\n }));\n }\n }, ()=>{\n // TODO: handle this, though an edge case\n });\n return ()=>{\n mounted = false;\n };\n }, [\n nextError,\n isAppDir\n ]);\n const [displayState, setDisplayState] = (0, _react.useState)(initialDisplayState);\n const [activeIdx, setActiveIndex] = (0, _react.useState)(0);\n const previous = (0, _react.useCallback)(()=>setActiveIndex((v)=>Math.max(0, v - 1)), []);\n const next = (0, _react.useCallback)(()=>setActiveIndex((v)=>Math.max(0, Math.min(readyErrors.length - 1, v + 1))), [\n readyErrors.length\n ]);\n const activeError = (0, _react.useMemo)(()=>{\n var _readyErrors_activeIdx;\n return (_readyErrors_activeIdx = readyErrors[activeIdx]) != null ? _readyErrors_activeIdx : null;\n }, [\n activeIdx,\n readyErrors\n ]);\n // Reset component state when there are no errors to be displayed.\n // This should never happen, but lets handle it.\n (0, _react.useEffect)(()=>{\n if (errors.length < 1) {\n setLookups({});\n setDisplayState('hidden');\n setActiveIndex(0);\n }\n }, [\n errors.length\n ]);\n const minimize = (0, _react.useCallback)(()=>setDisplayState('minimized'), []);\n const hide = (0, _react.useCallback)(()=>setDisplayState('hidden'), []);\n const fullscreen = (0, _react.useCallback)(()=>setDisplayState('fullscreen'), []);\n // This component shouldn't be rendered with no errors, but if it is, let's\n // handle it gracefully by rendering nothing.\n if (errors.length < 1 || activeError == null) {\n return null;\n }\n if (isLoading) {\n // TODO: better loading state\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Overlay.Overlay, {});\n }\n if (displayState === 'hidden') {\n return null;\n }\n if (displayState === 'minimized') {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Toast.Toast, {\n \"data-nextjs-toast\": true,\n className: \"nextjs-toast-errors-parent\" + (hasStaticIndicator ? ' nextjs-error-with-static' : ''),\n onClick: fullscreen,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n className: \"nextjs-toast-errors\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"10\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"12\",\n y1: \"8\",\n x2: \"12\",\n y2: \"12\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"12\",\n y1: \"16\",\n x2: \"12.01\",\n y2: \"16\"\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n readyErrors.length,\n \" error\",\n readyErrors.length > 1 ? 's' : ''\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n \"data-nextjs-toast-errors-hide-button\": true,\n className: \"nextjs-toast-hide-button\",\n type: \"button\",\n onClick: (e)=>{\n e.stopPropagation();\n hide();\n },\n \"aria-label\": \"Hide Errors\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_CloseIcon.CloseIcon, {})\n })\n ]\n })\n });\n }\n const error = activeError.error;\n const isServerError = [\n 'server',\n 'edge-server'\n ].includes((0, _errorsource.getErrorSource)(error) || '');\n const isUnhandledError = (0, _consoleerror.isUnhandledConsoleOrRejection)(error);\n const errorDetails = error.details || {};\n const notes = errorDetails.notes || '';\n const [warningTemplate, serverContent, clientContent] = errorDetails.warning || [\n null,\n '',\n ''\n ];\n const hydrationErrorType = (0, _hydrationerrorinfo.getHydrationWarningType)(warningTemplate);\n const hydrationWarning = warningTemplate ? warningTemplate.replace('%s', serverContent).replace('%s', clientContent).replace('%s', '') // remove the %s for stack\n .replace(/%s$/, '') // If there's still a %s at the end, remove it\n .replace(/^Warning: /, '').replace(/^Error: /, '') : null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Overlay.Overlay, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_errors_label\",\n \"aria-describedby\": \"nextjs__container_errors_desc\",\n onClose: isServerError ? undefined : minimize,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogContent, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogHeader, {\n className: \"nextjs-container-errors-header\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_LeftRightDialogHeader.LeftRightDialogHeader, {\n previous: activeIdx > 0 ? previous : null,\n next: activeIdx < readyErrors.length - 1 ? next : null,\n close: isServerError ? undefined : minimize,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"small\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n children: activeIdx + 1\n }),\n \" of\",\n ' ',\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-dialog-header-total-count\": true,\n children: readyErrors.length\n }),\n ' error',\n readyErrors.length < 2 ? '' : 's'\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_VersionStalenessInfo.VersionStalenessInfo, {\n versionInfo: versionInfo\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n className: \"nextjs__container_errors__error_title\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n id: \"nextjs__container_errors_label\",\n className: \"nextjs__container_errors_label\",\n children: isServerError ? 'Server Error' : isUnhandledError ? 'Console Error' : 'Unhandled Runtime Error'\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_copybutton.CopyButton, {\n \"data-nextjs-data-runtime-error-copy-stack\": true,\n actionLabel: \"Copy error stack\",\n successLabel: \"Copied\",\n content: error.stack || '',\n disabled: !error.stack\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_nodejsinspector.NodejsInspectorCopyButton, {\n devtoolsFrontendUrl: debugInfo == null ? void 0 : debugInfo.devtoolsFrontendUrl\n })\n ]\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors_desc\",\n className: \"nextjs__container_errors_desc\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorDescription, {\n error: error,\n hydrationWarning: hydrationWarning\n })\n }),\n notes ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors__notes\",\n className: \"nextjs__container_errors__notes\",\n children: notes\n })\n }) : null,\n hydrationWarning ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors__link\",\n className: \"nextjs__container_errors__link\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: \"See more info here: https://nextjs.org/docs/messages/react-hydration-error\"\n })\n }) : null,\n hydrationWarning && (((_activeError_componentStackFrames = activeError.componentStackFrames) == null ? void 0 : _activeError_componentStackFrames.length) || !!errorDetails.reactOutputComponentDiff) ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_componentstackpseudohtml.PseudoHtmlDiff, {\n className: \"nextjs__container_errors__component-stack\",\n hydrationMismatchType: hydrationErrorType,\n componentStackFrames: activeError.componentStackFrames || [],\n firstContent: serverContent,\n secondContent: clientContent,\n reactOutputComponentDiff: errorDetails.reactOutputComponentDiff\n }) : null,\n isServerError ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"small\", {\n children: \"This error happened while generating the page. Any console logs will be displayed in the terminal window.\"\n })\n }) : undefined\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.DialogBody, {\n className: \"nextjs-container-errors-body\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_RuntimeError.RuntimeError, {\n error: activeError\n }, activeError.id.toString())\n })\n ]\n })\n })\n });\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=Errors.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9FcnJvcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaUhnQkEsTUFBTTtlQUFOQTs7SUFxU0hDLE1BQU07ZUFBTkE7Ozs7O21DQXRaNkM7b0NBTW5EO29DQU9BO21EQUMrQjtxQ0FDZDttQ0FDRjs0Q0FDUzswQ0FFSDt1Q0FDRjswQ0FDRztrREFDUTt5Q0FFTjsyQ0FDRDtzREFDQztnREFJeEI7NkNBQ21DO3dDQUNmOzBDQUlwQjs7Ozs7Ozs7OztBQW1CUCxTQUFTQyxhQUFhQyxJQUFZO0lBQ2hDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQztBQUN6QjtBQUVBLFNBQVNDLGlCQUFpQixLQU16QjtJQU55QixNQUN4QkMsS0FBSyxFQUNMQyxnQkFBZ0IsRUFJakIsR0FOeUI7SUFPeEIsTUFBTUMsMkJBQTJCQyxDQUFBQSxHQUFBQSxjQUFBQSw2QkFBQUEsRUFBOEJIO0lBQy9ELE1BQU1JLHFCQUFxQkYsMkJBQ3ZCRyxDQUFBQSxHQUFBQSxjQUFBQSxxQkFBQUEsRUFBc0JMLFNBQ3RCO0lBQ0osTUFBTU0sOEJBQThCRix1QkFBdUI7SUFDM0QsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixrREFBa0Q7SUFDbEQsaUNBQWlDO0lBQ2pDLE1BQU1HLFFBQ0hMLDRCQUE0QkksK0JBQzdCTCxtQkFDSSxLQUNBRCxNQUFNUSxJQUFJLEdBQUc7SUFFbkIsdURBQXVEO0lBQ3ZELE1BQU1DLGtCQUNKLHFCQUFxQlQsUUFBUUEsS0FBSyxDQUFDLGtCQUFrQixHQUFHO0lBQzFELE1BQU1VLFlBQVlELGtCQUFtQixPQUFJQSxrQkFBZ0IsUUFBTztJQUNoRSxxQkFDRTs7WUFDR0M7WUFDQUg7MEJBQ0QscUJBQUNJLGVBQUFBLGFBQWE7Z0JBQ1pkLE1BQU1JLG9CQUFvQkQsTUFBTVksT0FBTztnQkFDdkNDLFNBQVNqQjs7OztB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QkFBb0IsSUFBSSxFQUFFO2dDQUM1REksY0FBY2hDO2dDQUNkaUMsZUFBZWhDO2dDQUNmNEIsMEJBQTBCakMsYUFBYWlDLHdCQUF3QjtpQ0FFL0Q7NEJBQ0hyQyxnQkFBQUEsV0FBQUEsR0FDQyxxQkFBQzFCLE9BQUFBOzBDQUNDLG1DQUFDaUQsU0FBQUE7OENBQU07O2lDQUtQTDs7O2tDQUVOLHFCQUFDd0IsUUFBQUEsVUFBVTt3QkFBQ3RFLFdBQVU7a0NBQ3BCLG1DQUFDdUUsY0FBQUEsWUFBWTs0QkFBaUMzSSxPQUFPNkI7MkJBQWxDQSxZQUFZWSxFQUFFLENBQUNtRyxRQUFROzs7Ozs7QUFNdEQ7QUFFTyxNQUFNakosU0FBQUEsQ0FBQUEsR0FBU2tKLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb250YWluZXJcXEVycm9ycy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIEFDVElPTl9VTkhBTkRMRURfRVJST1IsXG4gIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OLFxuICB0eXBlIFVuaGFuZGxlZEVycm9yQWN0aW9uLFxuICB0eXBlIFVuaGFuZGxlZFJlamVjdGlvbkFjdGlvbixcbn0gZnJvbSAnLi4vLi4vc2hhcmVkJ1xuaW1wb3J0IHR5cGUgeyBEZWJ1Z0luZm8gfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7XG4gIERpYWxvZyxcbiAgRGlhbG9nQm9keSxcbiAgRGlhbG9nQ29udGVudCxcbiAgRGlhbG9nSGVhZGVyLFxufSBmcm9tICcuLi9jb21wb25lbnRzL0RpYWxvZydcbmltcG9ydCB7IExlZnRSaWdodERpYWxvZ0hlYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyJ1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJy4uL2NvbXBvbmVudHMvT3ZlcmxheSdcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9Ub2FzdCdcbmltcG9ydCB7IGdldEVycm9yQnlUeXBlIH0gZnJvbSAnLi4vaGVscGVycy9nZXQtZXJyb3ItYnktdHlwZSdcbmltcG9ydCB0eXBlIHsgUmVhZHlSdW50aW1lRXJyb3IgfSBmcm9tICcuLi9oZWxwZXJzL2dldC1lcnJvci1ieS10eXBlJ1xuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5pbXBvcnQgeyBDbG9zZUljb24gfSBmcm9tICcuLi9pY29ucy9DbG9zZUljb24nXG5pbXBvcnQgeyBSdW50aW1lRXJyb3IgfSBmcm9tICcuL1J1bnRpbWVFcnJvcidcbmltcG9ydCB7IFZlcnNpb25TdGFsZW5lc3NJbmZvIH0gZnJvbSAnLi4vY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mbydcbmltcG9ydCB0eXBlIHsgVmVyc2lvbkluZm8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L3BhcnNlLXZlcnNpb24taW5mbydcbmltcG9ydCB7IGdldEVycm9yU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9lcnJvci1zb3VyY2UnXG5pbXBvcnQgeyBIb3RsaW5rZWRUZXh0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9ob3QtbGlua2VkLXRleHQnXG5pbXBvcnQgeyBQc2V1ZG9IdG1sRGlmZiB9IGZyb20gJy4vUnVudGltZUVycm9yL2NvbXBvbmVudC1zdGFjay1wc2V1ZG8taHRtbCdcbmltcG9ydCB7XG4gIHR5cGUgSHlkcmF0aW9uRXJyb3JTdGF0ZSxcbiAgZ2V0SHlkcmF0aW9uV2FybmluZ1R5cGUsXG59IGZyb20gJy4uL2hlbHBlcnMvaHlkcmF0aW9uLWVycm9yLWluZm8nXG5pbXBvcnQgeyBOb2RlanNJbnNwZWN0b3JDb3B5QnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9ub2RlanMtaW5zcGVjdG9yJ1xuaW1wb3J0IHsgQ29weUJ1dHRvbiB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29weS1idXR0b24nXG5pbXBvcnQge1xuICBnZXRVbmhhbmRsZWRFcnJvclR5cGUsXG4gIGlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uLFxufSBmcm9tICcuLi9oZWxwZXJzL2NvbnNvbGUtZXJyb3InXG5cbmV4cG9ydCB0eXBlIFN1cHBvcnRlZEVycm9yRXZlbnQgPSB7XG4gIGlkOiBudW1iZXJcbiAgZXZlbnQ6IFVuaGFuZGxlZEVycm9yQWN0aW9uIHwgVW5oYW5kbGVkUmVqZWN0aW9uQWN0aW9uXG59XG5leHBvcnQgdHlwZSBFcnJvcnNQcm9wcyA9IHtcbiAgaXNBcHBEaXI6IGJvb2xlYW5cbiAgZXJyb3JzOiBTdXBwb3J0ZWRFcnJvckV2ZW50W11cbiAgaW5pdGlhbERpc3BsYXlTdGF0ZTogRGlzcGxheVN0YXRlXG4gIHZlcnNpb25JbmZvPzogVmVyc2lvbkluZm9cbiAgaGFzU3RhdGljSW5kaWNhdG9yPzogYm9vbGVhblxuICBkZWJ1Z0luZm8/OiBEZWJ1Z0luZm9cbn1cblxudHlwZSBSZWFkeUVycm9yRXZlbnQgPSBSZWFkeVJ1bnRpbWVFcnJvclxuXG50eXBlIERpc3BsYXlTdGF0ZSA9ICdtaW5pbWl6ZWQnIHwgJ2Z1bGxzY3JlZW4nIHwgJ2hpZGRlbidcblxuZnVuY3Rpb24gaXNOZXh0anNMaW5rKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdGV4dC5zdGFydHNXaXRoKCdodHRwczovL25leHRqcy5vcmcnKVxufVxuXG5mdW5jdGlvbiBFcnJvckRlc2NyaXB0aW9uKHtcbiAgZXJyb3IsXG4gIGh5ZHJhdGlvbldhcm5pbmcsXG59OiB7XG4gIGVycm9yOiBFcnJvclxuICBoeWRyYXRpb25XYXJuaW5nOiBzdHJpbmcgfCBudWxsXG59KSB7XG4gIGNvbnN0IGlzVW5oYW5kbGVkT3JSZXBsYXlFcnJvciA9IGlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uKGVycm9yKVxuICBjb25zdCB1bmhhbmRsZWRFcnJvclR5cGUgPSBpc1VuaGFuZGxlZE9yUmVwbGF5RXJyb3JcbiAgICA/IGdldFVuaGFuZGxlZEVycm9yVHlwZShlcnJvcilcbiAgICA6IG51bGxcbiAgY29uc3QgaXNDb25zb2xlRXJyb3JTdHJpbmdNZXNzYWdlID0gdW5oYW5kbGVkRXJyb3JUeXBlID09PSAnc3RyaW5nJ1xuICAvLyBJZiB0aGUgZXJyb3IgaXM6XG4gIC8vIC0gaHlkcmF0aW9uIHdhcm5pbmdcbiAgLy8gLSBjYXB0dXJlZCBjb25zb2xlIGVycm9yIG9yIHVuaGFuZGxlZCByZWplY3Rpb25cbiAgLy8gc2tpcCBkaXNwbGF5aW5nIHRoZSBlcnJvciBuYW1lXG4gIGNvbnN0IHRpdGxlID1cbiAgICAoaXNVbmhhbmRsZWRPclJlcGxheUVycm9yICYmIGlzQ29uc29sZUVycm9yU3RyaW5nTWVzc2FnZSkgfHxcbiAgICBoeWRyYXRpb25XYXJuaW5nXG4gICAgICA/ICcnXG4gICAgICA6IGVycm9yLm5hbWUgKyAnOiAnXG5cbiAgLy8gSWYgaXQncyByZXBsYXllZCBlcnJvciwgZGlzcGxheSB0aGUgZW52aXJvbm1lbnQgbmFtZVxuICBjb25zdCBlbnZpcm9ubWVudE5hbWUgPVxuICAgICdlbnZpcm9ubWVudE5hbWUnIGluIGVycm9yID8gZXJyb3JbJ2Vudmlyb25tZW50TmFtZSddIDogJydcbiAgY29uc3QgZW52UHJlZml4ID0gZW52aXJvbm1lbnROYW1lID8gYFsgJHtlbnZpcm9ubWVudE5hbWV9IF0gYCA6ICcnXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtlbnZQcmVmaXh9XG4gICAgICB7dGl0bGV9XG4gICAgICA8SG90bGlua2VkVGV4dFxuICAgICAgICB0ZXh0PXtoeWRyYXRpb25XYXJuaW5nIHx8IGVycm9yLm1lc3NhZ2V9XG4gICAgICAgIG1hdGNoZXI9e2lzTmV4dGpzTGlua31cbiAgICAgIC8+XG4gICAgPC8+XG4gIClcbn1cblxuZnVuY3Rpb24gZ2V0RXJyb3JTaWduYXR1cmUoZXY6IFN1cHBvcnRlZEVycm9yRXZlbnQpOiBzdHJpbmcge1xuICBjb25zdCB7IGV2ZW50IH0gPSBldlxuICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICBjYXNlIEFDVElPTl9VTkhBTkRMRURfRVJST1I6XG4gICAgY2FzZSBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTjoge1xuICAgICAgcmV0dXJuIGAke2V2ZW50LnJlYXNvbi5uYW1lfTo6JHtldmVudC5yZWFzb24ubWVzc2FnZX06OiR7ZXZlbnQucmVhc29uLnN0YWNrfWBcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgY29uc3QgXzogbmV2ZXIgPSBldmVudFxuICByZXR1cm4gJydcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEVycm9ycyh7XG4gIGlzQXBwRGlyLFxuICBlcnJvcnMsXG4gIGluaXRpYWxEaXNwbGF5U3RhdGUsXG4gIHZlcnNpb25JbmZvLFxuICBoYXNTdGF0aWNJbmRpY2F0b3IsXG4gIGRlYnVnSW5mbyxcbn06IEVycm9yc1Byb3BzKSB7XG4gIGNvbnN0IFtsb29rdXBzLCBzZXRMb29rdXBzXSA9IHVzZVN0YXRlKFxuICAgIHt9IGFzIHsgW2V2ZW50SWQ6IHN0cmluZ106IFJlYWR5RXJyb3JFdmVudCB9XG4gIClcblxuICBjb25zdCBbcmVhZHlFcnJvcnMsIG5leHRFcnJvcl0gPSB1c2VNZW1vPFxuICAgIFtSZWFkeUVycm9yRXZlbnRbXSwgU3VwcG9ydGVkRXJyb3JFdmVudCB8IG51bGxdXG4gID4oKCkgPT4ge1xuICAgIGxldCByZWFkeTogUmVhZHlFcnJvckV2ZW50W10gPSBbXVxuICAgIGxldCBuZXh0OiBTdXBwb3J0ZWRFcnJvckV2ZW50IHwgbnVsbCA9IG51bGxcblxuICAgIC8vIEVuc3VyZSBlcnJvcnMgYXJlIGRpc3BsYXllZCBpbiB0aGUgb3JkZXIgdGhleSBvY2N1cnJlZCBpbjpcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBlcnJvcnMubGVuZ3RoOyArK2lkeCkge1xuICAgICAgY29uc3QgZSA9IGVycm9yc1tpZHhdXG4gICAgICBjb25zdCB7IGlkIH0gPSBlXG4gICAgICBpZiAoaWQgaW4gbG9va3Vwcykge1xuICAgICAgICByZWFkeS5wdXNoKGxvb2t1cHNbaWRdKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIGVycm9yc1xuICAgICAgaWYgKGlkeCA+IDApIHtcbiAgICAgICAgY29uc3QgcHJldiA9IGVycm9yc1tpZHggLSAxXVxuICAgICAgICBpZiAoZ2V0RXJyb3JTaWduYXR1cmUocHJldikgPT09IGdldEVycm9yU2lnbmF0dXJlKGUpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBuZXh0ID0gZVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICByZXR1cm4gW3JlYWR5LCBuZXh0XVxuICB9LCBbZXJyb3JzLCBsb29rdXBzXSlcblxuICBjb25zdCBpc0xvYWRpbmcgPSB1c2VNZW1vPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gcmVhZHlFcnJvcnMubGVuZ3RoIDwgMSAmJiBCb29sZWFuKGVycm9ycy5sZW5ndGgpXG4gIH0sIFtlcnJvcnMubGVuZ3RoLCByZWFkeUVycm9ycy5sZW5ndGhdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG5leHRFcnJvciA9PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgbGV0IG1vdW50ZWQgPSB0cnVlXG5cbiAgICBnZXRFcnJvckJ5VHlwZShuZXh0RXJyb3IsIGlzQXBwRGlyKS50aGVuKFxuICAgICAgKHJlc29sdmVkKSA9PiB7XG4gICAgICAgIC8vIFdlIGRvbid0IGNhcmUgaWYgdGhlIGRlc2lyZWQgZXJyb3IgY2hhbmdlZCB3aGlsZSB3ZSB3ZXJlIHJlc29sdmluZyxcbiAgICAgICAgLy8gdGh1cyB3ZSdyZSBub3QgdHJhY2tpbmcgaXQgdXNpbmcgYSByZWYuIE9uY2UgdGhlIHdvcmsgaGFzIGJlZW4gZG9uZSxcbiAgICAgICAgLy8gd2UnbGwgc3RvcmUgaXQuXG4gICAgICAgIGlmIChtb3VudGVkKSB7XG4gICAgICAgICAgc2V0TG9va3VwcygobSkgPT4gKHsgLi4ubSwgW3Jlc29sdmVkLmlkXTogcmVzb2x2ZWQgfSkpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIFRPRE86IGhhbmRsZSB0aGlzLCB0aG91Z2ggYW4gZWRnZSBjYXNlXG4gICAgICB9XG4gICAgKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIG1vdW50ZWQgPSBmYWxzZVxuICAgIH1cbiAgfSwgW25leHRFcnJvciwgaXNBcHBEaXJdKVxuXG4gIGNvbnN0IFtkaXNwbGF5U3RhdGUsIHNldERpc3BsYXlTdGF0ZV0gPVxuICAgIHVzZVN0YXRlPERpc3BsYXlTdGF0ZT4oaW5pdGlhbERpc3BsYXlTdGF0ZSlcbiAgY29uc3QgW2FjdGl2ZUlkeCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyPigwKVxuICBjb25zdCBwcmV2aW91cyA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IHNldEFjdGl2ZUluZGV4KCh2KSA9PiBNYXRoLm1heCgwLCB2IC0gMSkpLFxuICAgIFtdXG4gIClcbiAgY29uc3QgbmV4dCA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+XG4gICAgICBzZXRBY3RpdmVJbmRleCgodikgPT5cbiAgICAgICAgTWF0aC5tYXgoMCwgTWF0aC5taW4ocmVhZHlFcnJvcnMubGVuZ3RoIC0gMSwgdiArIDEpKVxuICAgICAgKSxcbiAgICBbcmVhZHlFcnJvcnMubGVuZ3RoXVxuICApXG5cbiAgY29uc3QgYWN0aXZlRXJyb3IgPSB1c2VNZW1vPFJlYWR5RXJyb3JFdmVudCB8IG51bGw+KFxuICAgICgpID0+IHJlYWR5RXJyb3JzW2FjdGl2ZUlkeF0gPz8gbnVsbCxcbiAgICBbYWN0aXZlSWR4LCByZWFkeUVycm9yc11cbiAgKVxuXG4gIC8vIFJlc2V0IGNvbXBvbmVudCBzdGF0ZSB3aGVuIHRoZXJlIGFyZSBubyBlcnJvcnMgdG8gYmUgZGlzcGxheWVkLlxuICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBsZXRzIGhhbmRsZSBpdC5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA8IDEpIHtcbiAgICAgIHNldExvb2t1cHMoe30pXG4gICAgICBzZXREaXNwbGF5U3RhdGUoJ2hpZGRlbicpXG4gICAgICBzZXRBY3RpdmVJbmRleCgwKVxuICAgIH1cbiAgfSwgW2Vycm9ycy5sZW5ndGhdKVxuXG4gIGNvbnN0IG1pbmltaXplID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0RGlzcGxheVN0YXRlKCdtaW5pbWl6ZWQnKSwgW10pXG4gIGNvbnN0IGhpZGUgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXREaXNwbGF5U3RhdGUoJ2hpZGRlbicpLCBbXSlcbiAgY29uc3QgZnVsbHNjcmVlbiA9IHVzZUNhbGxiYWNrKCgpID0+IHNldERpc3BsYXlTdGF0ZSgnZnVsbHNjcmVlbicpLCBbXSlcblxuICAvLyBUaGlzIGNvbXBvbmVudCBzaG91bGRuJ3QgYmUgcmVuZGVyZWQgd2l0aCBubyBlcnJvcnMsIGJ1dCBpZiBpdCBpcywgbGV0J3NcbiAgLy8gaGFuZGxlIGl0IGdyYWNlZnVsbHkgYnkgcmVuZGVyaW5nIG5vdGhpbmcuXG4gIGlmIChlcnJvcnMubGVuZ3RoIDwgMSB8fCBhY3RpdmVFcnJvciA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGlmIChpc0xvYWRpbmcpIHtcbiAgICAvLyBUT0RPOiBiZXR0ZXIgbG9hZGluZyBzdGF0ZVxuICAgIHJldHVybiA8T3ZlcmxheSAvPlxuICB9XG5cbiAgaWYgKGRpc3BsYXlTdGF0ZSA9PT0gJ2hpZGRlbicpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaWYgKGRpc3BsYXlTdGF0ZSA9PT0gJ21pbmltaXplZCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRvYXN0XG4gICAgICAgIGRhdGEtbmV4dGpzLXRvYXN0XG4gICAgICAgIGNsYXNzTmFtZT17YG5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50JHtoYXNTdGF0aWNJbmRpY2F0b3IgPyAnIG5leHRqcy1lcnJvci13aXRoLXN0YXRpYycgOiAnJ31gfVxuICAgICAgICBvbkNsaWNrPXtmdWxsc2NyZWVufVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5leHRqcy10b2FzdC1lcnJvcnNcIj5cbiAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIyXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjEwXCI+PC9jaXJjbGU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjEyXCIgeTE9XCI4XCIgeDI9XCIxMlwiIHkyPVwiMTJcIj48L2xpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjEyXCIgeTE9XCIxNlwiIHgyPVwiMTIuMDFcIiB5Mj1cIjE2XCI+PC9saW5lPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3JlYWR5RXJyb3JzLmxlbmd0aH0gZXJyb3J7cmVhZHlFcnJvcnMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBkYXRhLW5leHRqcy10b2FzdC1lcnJvcnMtaGlkZS1idXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqcy10b2FzdC1oaWRlLWJ1dHRvblwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgaGlkZSgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkhpZGUgRXJyb3JzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2xvc2VJY29uIC8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9Ub2FzdD5cbiAgICApXG4gIH1cblxuICBjb25zdCBlcnJvciA9IGFjdGl2ZUVycm9yLmVycm9yXG4gIGNvbnN0IGlzU2VydmVyRXJyb3IgPSBbJ3NlcnZlcicsICdlZGdlLXNlcnZlciddLmluY2x1ZGVzKFxuICAgIGdldEVycm9yU291cmNlKGVycm9yKSB8fCAnJ1xuICApXG4gIGNvbnN0IGlzVW5oYW5kbGVkRXJyb3IgPSBpc1VuaGFuZGxlZENvbnNvbGVPclJlamVjdGlvbihlcnJvcilcbiAgY29uc3QgZXJyb3JEZXRhaWxzOiBIeWRyYXRpb25FcnJvclN0YXRlID0gKGVycm9yIGFzIGFueSkuZGV0YWlscyB8fCB7fVxuICBjb25zdCBub3RlcyA9IGVycm9yRGV0YWlscy5ub3RlcyB8fCAnJ1xuICBjb25zdCBbd2FybmluZ1RlbXBsYXRlLCBzZXJ2ZXJDb250ZW50LCBjbGllbnRDb250ZW50XSA9XG4gICAgZXJyb3JEZXRhaWxzLndhcm5pbmcgfHwgW251bGwsICcnLCAnJ11cblxuICBjb25zdCBoeWRyYXRpb25FcnJvclR5cGUgPSBnZXRIeWRyYXRpb25XYXJuaW5nVHlwZSh3YXJuaW5nVGVtcGxhdGUpXG4gIGNvbnN0IGh5ZHJhdGlvbldhcm5pbmcgPSB3YXJuaW5nVGVtcGxhdGVcbiAgICA/IHdhcm5pbmdUZW1wbGF0ZVxuICAgICAgICAucmVwbGFjZSgnJXMnLCBzZXJ2ZXJDb250ZW50KVxuICAgICAgICAucmVwbGFjZSgnJXMnLCBjbGllbnRDb250ZW50KVxuICAgICAgICAucmVwbGFjZSgnJXMnLCAnJykgLy8gcmVtb3ZlIHRoZSAlcyBmb3Igc3RhY2tcbiAgICAgICAgLnJlcGxhY2UoLyVzJC8sICcnKSAvLyBJZiB0aGVyZSdzIHN0aWxsIGEgJXMgYXQgdGhlIGVuZCwgcmVtb3ZlIGl0XG4gICAgICAgIC5yZXBsYWNlKC9eV2FybmluZzogLywgJycpXG4gICAgICAgIC5yZXBsYWNlKC9eRXJyb3I6IC8sICcnKVxuICAgIDogbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPE92ZXJsYXk+XG4gICAgICA8RGlhbG9nXG4gICAgICAgIHR5cGU9XCJlcnJvclwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiXG4gICAgICAgIG9uQ2xvc2U9e2lzU2VydmVyRXJyb3IgPyB1bmRlZmluZWQgOiBtaW5pbWl6ZX1cbiAgICAgID5cbiAgICAgICAgPERpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICAgPERpYWxvZ0hlYWRlciBjbGFzc05hbWU9XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxMZWZ0UmlnaHREaWFsb2dIZWFkZXJcbiAgICAgICAgICAgICAgcHJldmlvdXM9e2FjdGl2ZUlkeCA+IDAgPyBwcmV2aW91cyA6IG51bGx9XG4gICAgICAgICAgICAgIG5leHQ9e2FjdGl2ZUlkeCA8IHJlYWR5RXJyb3JzLmxlbmd0aCAtIDEgPyBuZXh0IDogbnVsbH1cbiAgICAgICAgICAgICAgY2xvc2U9e2lzU2VydmVyRXJyb3IgPyB1bmRlZmluZWQgOiBtaW5pbWl6ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNtYWxsPlxuICAgICAgICAgICAgICAgIDxzcGFuPnthY3RpdmVJZHggKyAxfTwvc3Bhbj4gb2Z7JyAnfVxuICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWRpYWxvZy1oZWFkZXItdG90YWwtY291bnQ+XG4gICAgICAgICAgICAgICAgICB7cmVhZHlFcnJvcnMubGVuZ3RofVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7JyBlcnJvcid9XG4gICAgICAgICAgICAgICAge3JlYWR5RXJyb3JzLmxlbmd0aCA8IDIgPyAnJyA6ICdzJ31cbiAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPFZlcnNpb25TdGFsZW5lc3NJbmZvIHZlcnNpb25JbmZvPXt2ZXJzaW9uSW5mb30gLz5cbiAgICAgICAgICAgIDwvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fZXJyb3JfdGl0bGVcIj5cbiAgICAgICAgICAgICAgPGgxXG4gICAgICAgICAgICAgICAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aXNTZXJ2ZXJFcnJvclxuICAgICAgICAgICAgICAgICAgPyAnU2VydmVyIEVycm9yJ1xuICAgICAgICAgICAgICAgICAgOiBpc1VuaGFuZGxlZEVycm9yXG4gICAgICAgICAgICAgICAgICAgID8gJ0NvbnNvbGUgRXJyb3InXG4gICAgICAgICAgICAgICAgICAgIDogJ1VuaGFuZGxlZCBSdW50aW1lIEVycm9yJ31cbiAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgPENvcHlCdXR0b25cbiAgICAgICAgICAgICAgICAgIGRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LXN0YWNrXG4gICAgICAgICAgICAgICAgICBhY3Rpb25MYWJlbD1cIkNvcHkgZXJyb3Igc3RhY2tcIlxuICAgICAgICAgICAgICAgICAgc3VjY2Vzc0xhYmVsPVwiQ29waWVkXCJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2Vycm9yLnN0YWNrIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFlcnJvci5zdGFja31cbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgPE5vZGVqc0luc3BlY3RvckNvcHlCdXR0b25cbiAgICAgICAgICAgICAgICAgIGRldnRvb2xzRnJvbnRlbmRVcmw9e2RlYnVnSW5mbz8uZGV2dG9vbHNGcm9udGVuZFVybH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgIGlkPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxFcnJvckRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgZXJyb3I9e2Vycm9yfVxuICAgICAgICAgICAgICAgIGh5ZHJhdGlvbldhcm5pbmc9e2h5ZHJhdGlvbldhcm5pbmd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICB7bm90ZXMgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgIGlkPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3Rlc1wiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX25vdGVzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7bm90ZXN9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2h5ZHJhdGlvbldhcm5pbmcgPyAoXG4gICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2xpbmtcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8SG90bGlua2VkVGV4dCB0ZXh0PVwiU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9yZWFjdC1oeWRyYXRpb24tZXJyb3JcIiAvPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAge2h5ZHJhdGlvbldhcm5pbmcgJiZcbiAgICAgICAgICAgIChhY3RpdmVFcnJvci5jb21wb25lbnRTdGFja0ZyYW1lcz8ubGVuZ3RoIHx8XG4gICAgICAgICAgICAgICEhZXJyb3JEZXRhaWxzLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZikgPyAoXG4gICAgICAgICAgICAgIDxQc2V1ZG9IdG1sRGlmZlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fY29tcG9uZW50LXN0YWNrXCJcbiAgICAgICAgICAgICAgICBoeWRyYXRpb25NaXNtYXRjaFR5cGU9e2h5ZHJhdGlvbkVycm9yVHlwZX1cbiAgICAgICAgICAgICAgICBjb21wb25lbnRTdGFja0ZyYW1lcz17YWN0aXZlRXJyb3IuY29tcG9uZW50U3RhY2tGcmFtZXMgfHwgW119XG4gICAgICAgICAgICAgICAgZmlyc3RDb250ZW50PXtzZXJ2ZXJDb250ZW50fVxuICAgICAgICAgICAgICAgIHNlY29uZENvbnRlbnQ9e2NsaWVudENvbnRlbnR9XG4gICAgICAgICAgICAgICAgcmVhY3RPdXRwdXRDb21wb25lbnREaWZmPXtlcnJvckRldGFpbHMucmVhY3RPdXRwdXRDb21wb25lbnREaWZmfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aXNTZXJ2ZXJFcnJvciA/IChcbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgICAgICBUaGlzIGVycm9yIGhhcHBlbmVkIHdoaWxlIGdlbmVyYXRpbmcgdGhlIHBhZ2UuIEFueSBjb25zb2xlXG4gICAgICAgICAgICAgICAgICBsb2dzIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0ZXJtaW5hbCB3aW5kb3cuXG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogdW5kZWZpbmVkfVxuICAgICAgICAgIDwvRGlhbG9nSGVhZGVyPlxuICAgICAgICAgIDxEaWFsb2dCb2R5IGNsYXNzTmFtZT1cIm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHlcIj5cbiAgICAgICAgICAgIDxSdW50aW1lRXJyb3Iga2V5PXthY3RpdmVFcnJvci5pZC50b1N0cmluZygpfSBlcnJvcj17YWN0aXZlRXJyb3J9IC8+XG4gICAgICAgICAgPC9EaWFsb2dCb2R5PlxuICAgICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgICA8L0RpYWxvZz5cbiAgICA8L092ZXJsYXk+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IGNzc2BcbiAgLm5leHRqcy1lcnJvci13aXRoLXN0YXRpYyB7XG4gICAgYm90dG9tOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKiA0LjUpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gaDEge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LWJpZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWdnZXIpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbjogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICogMS41KSAwO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1oMSk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTEpO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgc21hbGwgPiBzcGFuIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgcCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIH1cbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICAgIHBhZGRpbmc6IHZhcigtLXNpemUtZ2FwKSB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tY29sb3ItdGV4dC1jb2xvci1yZWQtMSk7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXApO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWNvbG9yLXJlZC0xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWJhY2tncm91bmQtcmVkLTEpO1xuICB9XG4gIHAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rIHtcbiAgICBtYXJnaW46IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgYXV0bztcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dC1jb2xvci1yZWQtMSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbiAgcC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX25vdGVzIHtcbiAgICBtYXJnaW46IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgYXV0bztcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3RhY2stbm90ZXMpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBkaXYgPiBzbWFsbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBwID4gYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgPiBoMjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGgyIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGl0bGUtY29sb3IpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwKTtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1iaWcpO1xuICB9XG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFjayB7XG4gICAgcGFkZGluZzogMTJweCAzMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWZnKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbnNpLWJnKTtcbiAgfVxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICB9XG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudDpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzID4gc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNpemUtZ2FwKTtcbiAgfVxuICAubmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXAtdHJpcGxlKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuICAubmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcbiAgICA+IC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfaW5zcGVjdF9jb3B5X2J1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG4gIH1cbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fZXJyb3JfdGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLm5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItaW5zcGVjdC1saW5rLFxuICAubmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1pbnNwZWN0LWxpbms6aG92ZXIge1xuICAgIG1hcmdpbjogMCA4cHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbmBcbiJdLCJuYW1lcyI6WyJFcnJvcnMiLCJzdHlsZXMiLCJpc05leHRqc0xpbmsiLCJ0ZXh0Iiwic3RhcnRzV2l0aCIsIkVycm9yRGVzY3JpcHRpb24iLCJlcnJvciIsImh5ZHJhdGlvbldhcm5pbmciLCJpc1VuaGFuZGxlZE9yUmVwbGF5RXJyb3IiLCJpc1VuaGFuZGxlZENvbnNvbGVPclJlamVjdGlvbiIsInVuaGFuZGxlZEVycm9yVHlwZSIsImdldFVuaGFuZGxlZEVycm9yVHlwZSIsImlzQ29uc29sZUVycm9yU3RyaW5nTWVzc2FnZSIsInRpdGxlIiwibmFtZSIsImVudmlyb25tZW50TmFtZSIsImVudlByZWZpeCIsIkhvdGxpbmtlZFRleHQiLCJtZXNzYWdlIiwibWF0Y2hlciIsImdldEVycm9yU2lnbmF0dXJlIiwiZXYiLCJldmVudCIsInR5cGUiLCJBQ1RJT05fVU5IQU5ETEVEX0VSUk9SIiwiQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04iLCJyZWFzb24iLCJzdGFjayIsIl8iLCJpc0FwcERpciIsImVycm9ycyIsImluaXRpYWxEaXNwbGF5U3RhdGUiLCJ2ZXJzaW9uSW5mbyIsImhhc1N0YXRpY0luZGljYXRvciIsImRlYnVnSW5mbyIsImFjdGl2ZUVycm9yIiwibG9va3VwcyIsInNldExvb2t1cHMiLCJ1c2VTdGF0ZSIsInJlYWR5RXJyb3JzIiwibmV4dEVycm9yIiwidXNlTWVtbyIsInJlYWR5IiwibmV4dCIsImlkeCIsImxlbmd0aCIsImUiLCJpZCIsInB1c2giLCJwcmV2IiwiaXNMb2FkaW5nIiwiQm9vbGVhbiIsInVzZUVmZmVjdCIsIm1vdW50ZWQiLCJnZXRFcnJvckJ5VHlwZSIsInRoZW4iLCJyZXNvbHZlZCIsIm0iLCJkaXNwbGF5U3RhdGUiLCJzZXREaXNwbGF5U3RhdGUiLCJhY3RpdmVJZHgiLCJzZXRBY3RpdmVJbmRleCIsInByZXZpb3VzIiwidXNlQ2FsbGJhY2siLCJ2IiwiTWF0aCIsIm1heCIsIm1pbiIsIm1pbmltaXplIiwiaGlkZSIsImZ1bGxzY3JlZW4iLCJPdmVybGF5IiwiVG9hc3QiLCJkYXRhLW5leHRqcy10b2FzdCIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJkaXYiLCJzdmciLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImNpcmNsZSIsImN4IiwiY3kiLCJyIiwibGluZSIsIngxIiwieTEiLCJ4MiIsInkyIiwic3BhbiIsImJ1dHRvbiIsImRhdGEtbmV4dGpzLXRvYXN0LWVycm9ycy1oaWRlLWJ1dHRvbiIsInN0b3BQcm9wYWdhdGlvbiIsImFyaWEtbGFiZWwiLCJDbG9zZUljb24iLCJpc1NlcnZlckVycm9yIiwiaW5jbHVkZXMiLCJnZXRFcnJvclNvdXJjZSIsImlzVW5oYW5kbGVkRXJyb3IiLCJlcnJvckRldGFpbHMiLCJkZXRhaWxzIiwibm90ZXMiLCJ3YXJuaW5nVGVtcGxhdGUiLCJzZXJ2ZXJDb250ZW50IiwiY2xpZW50Q29udGVudCIsIndhcm5pbmciLCJoeWRyYXRpb25FcnJvclR5cGUiLCJnZXRIeWRyYXRpb25XYXJuaW5nVHlwZSIsInJlcGxhY2UiLCJEaWFsb2ciLCJhcmlhLWxhYmVsbGVkYnkiLCJhcmlhLWRlc2NyaWJlZGJ5Iiwib25DbG9zZSIsInVuZGVmaW5lZCIsIkRpYWxvZ0NvbnRlbnQiLCJEaWFsb2dIZWFkZXIiLCJMZWZ0UmlnaHREaWFsb2dIZWFkZXIiLCJjbG9zZSIsInNtYWxsIiwiZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlci10b3RhbC1jb3VudCIsIlZlcnNpb25TdGFsZW5lc3NJbmZvIiwiaDEiLCJDb3B5QnV0dG9uIiwiZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktc3RhY2siLCJhY3Rpb25MYWJlbCIsInN1Y2Nlc3NMYWJlbCIsImNvbnRlbnQiLCJkaXNhYmxlZCIsIk5vZGVqc0luc3BlY3RvckNvcHlCdXR0b24iLCJkZXZ0b29sc0Zyb250ZW5kVXJsIiwicCIsImNvbXBvbmVudFN0YWNrRnJhbWVzIiwicmVhY3RPdXRwdXRDb21wb25lbnREaWZmIiwiUHNldWRvSHRtbERpZmYiLCJoeWRyYXRpb25NaXNtYXRjaFR5cGUiLCJmaXJzdENvbnRlbnQiLCJzZWNvbmRDb250ZW50IiwiRGlhbG9nQm9keSIsIlJ1bnRpbWVFcnJvciIsInRvU3RyaW5nIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js":
|
||
/*!**********************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js ***!
|
||
\**********************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CallStackFrame\", ({\n enumerable: true,\n get: function() {\n return CallStackFrame;\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 _stackframe = __webpack_require__(/*! ../../helpers/stack-frame */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\nconst _useopenineditor = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\nconst _hotlinkedtext = __webpack_require__(/*! ../../components/hot-linked-text */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst CallStackFrame = function CallStackFrame(param) {\n let { frame } = param;\n var _frame_originalStackFrame;\n // TODO: ability to expand resolved frames\n // TODO: render error or external indicator\n const f = (_frame_originalStackFrame = frame.originalStackFrame) != null ? _frame_originalStackFrame : frame.sourceStackFrame;\n const hasSource = Boolean(frame.originalCodeFrame);\n const open = (0, _useopenineditor.useOpenInEditor)(hasSource ? {\n file: f.file,\n lineNumber: f.lineNumber,\n column: f.column\n } : undefined);\n // Format method to strip out the webpack layer prefix.\n // e.g. (app-pages-browser)/./app/page.tsx -> ./app/page.tsx\n const formattedMethod = f.methodName.replace(/^\\([\\w-]+\\)\\//, '');\n // Formatted file source could be empty. e.g. <anonymous> will be formatted to empty string,\n // we'll skip rendering the frame in this case.\n const fileSource = (0, _stackframe.getFrameSource)(f);\n if (!fileSource) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-call-stack-frame\": true,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h3\", {\n \"data-nextjs-frame-expanded\": !frame.ignored,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: formattedMethod\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-has-source\": hasSource ? 'true' : undefined,\n \"data-no-source\": hasSource ? undefined : 'true',\n tabIndex: hasSource ? 10 : undefined,\n role: hasSource ? 'link' : undefined,\n onClick: open,\n title: hasSource ? 'Click to open in your editor' : undefined,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n children: fileSource\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\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=CallStackFrame.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvQ2FsbFN0YWNrRnJhbWUuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFRYUE7OztlQUFBQTs7Ozt3Q0FKTjs2Q0FDeUI7MkNBQ0Y7QUFFdkIsTUFBTUEsaUJBRVIsU0FBU0EsZUFBZSxLQUFTO0lBQVQsTUFBRUMsS0FBSyxFQUFFLEdBQVQ7UUFJTEE7SUFIdEIsMENBQTBDO0lBQzFDLDJDQUEyQztJQUUzQyxNQUFNQyxJQUFnQkQsNkJBQUFBLE1BQU1FLGtCQUFBQSxLQUFrQixPQUF4QkYsNEJBQTRCQSxNQUFNRyxnQkFBZ0I7SUFDeEUsTUFBTUMsWUFBWUMsUUFBUUwsTUFBTU0saUJBQWlCO0lBQ2pELE1BQU1DLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUNYSixZQUNJO1FBQ0VLLE1BQU1SLEVBQUVRLElBQUk7UUFDWkMsWUFBWVQsRUFBRVMsVUFBVTtRQUN4QkMsUUFBUVYsRUFBRVUsTUFBTTtJQUNsQixJQUNBQztJQUdOLHVEQUF1RDtJQUN2RCw0REFBNEQ7SUFDNUQsTUFBTUMsa0JBQWtCWixFQUFFYSxVQUFVLENBQUNDLE9BQU8sQ0FBQyxpQkFBaUI7SUFFOUQsNEZBQTRGO0lBQzVGLCtDQUErQztJQUMvQyxNQUFNQyxhQUFhQyxDQUFBQSxHQUFBQSxZQUFBQSxjQUFBQSxFQUFlaEI7SUFDbEMsSUFBSSxDQUFDZSxZQUFZO1FBQ2YsT0FBTztJQUNUO0lBRUEscUJBQ0Usc0JBQUNFLE9BQUFBO1FBQUlDLDhCQUE0Qjs7MEJBQy9CLHFCQUFDQyxNQUFBQTtnQkFBR0MsOEJBQTRCLENBQUNyQixNQUFNc0IsT0FBTzswQkFDNUMsbUNBQUNDLGVBQUFBLGFBQWE7b0JBQUNDLE1BQU1YOzs7MEJBRXZCLHNCQUFDSyxPQUFBQTtnQkFDQ08sbUJBQWlCckIsWUFBWSxTQUFTUTtnQkFDdENjLGtCQUFnQnRCLFlBQVlRLFlBQVk7Z0JBQ3hDZSxVQUFVdkIsWUFBWSxLQUFLUTtnQkFDM0JnQixNQUFNeEIsWUFBWSxTQUFTUTtnQkFDM0JpQixTQUFTdEI7Z0JBQ1R1QixPQUFPMUIsWUFBWSxpQ0FBaUNROztrQ0FFcEQscUJBQUNtQixRQUFBQTtrQ0FBTWY7O2tDQUNQLHNCQUFDZ0IsT0FBQUE7d0JBQ0NDLE9BQU07d0JBQ05DLFNBQVE7d0JBQ1JDLE1BQUs7d0JBQ0xDLFFBQU87d0JBQ1BDLGFBQVk7d0JBQ1pDLGVBQWM7d0JBQ2RDLGdCQUFlOzswQ0FFZixxQkFBQ0MsUUFBQUE7Z0NBQUtDLEdBQUU7OzBDQUNSLHFCQUFDQyxZQUFBQTtnQ0FBU0MsUUFBTzs7MENBQ2pCLHFCQUFDQyxRQUFBQTtnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRzs7Ozs7Ozs7QUFLM0MiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb250YWluZXJcXFJ1bnRpbWVFcnJvclxcQ2FsbFN0YWNrRnJhbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tGcmFtZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCB7XG4gIGdldEZyYW1lU291cmNlLFxuICB0eXBlIE9yaWdpbmFsU3RhY2tGcmFtZSxcbn0gZnJvbSAnLi4vLi4vaGVscGVycy9zdGFjay1mcmFtZSdcbmltcG9ydCB7IHVzZU9wZW5JbkVkaXRvciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvdXNlLW9wZW4taW4tZWRpdG9yJ1xuaW1wb3J0IHsgSG90bGlua2VkVGV4dCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaG90LWxpbmtlZC10ZXh0J1xuXG5leHBvcnQgY29uc3QgQ2FsbFN0YWNrRnJhbWU6IFJlYWN0LkZDPHtcbiAgZnJhbWU6IE9yaWdpbmFsU3RhY2tGcmFtZVxufT4gPSBmdW5jdGlvbiBDYWxsU3RhY2tGcmFtZSh7IGZyYW1lIH0pIHtcbiAgLy8gVE9ETzogYWJpbGl0eSB0byBleHBhbmQgcmVzb2x2ZWQgZnJhbWVzXG4gIC8vIFRPRE86IHJlbmRlciBlcnJvciBvciBleHRlcm5hbCBpbmRpY2F0b3JcblxuICBjb25zdCBmOiBTdGFja0ZyYW1lID0gZnJhbWUub3JpZ2luYWxTdGFja0ZyYW1lID8/IGZyYW1lLnNvdXJjZVN0YWNrRnJhbWVcbiAgY29uc3QgaGFzU291cmNlID0gQm9vbGVhbihmcmFtZS5vcmlnaW5hbENvZGVGcmFtZSlcbiAgY29uc3Qgb3BlbiA9IHVzZU9wZW5JbkVkaXRvcihcbiAgICBoYXNTb3VyY2VcbiAgICAgID8ge1xuICAgICAgICAgIGZpbGU6IGYuZmlsZSxcbiAgICAgICAgICBsaW5lTnVtYmVyOiBmLmxpbmVOdW1iZXIsXG4gICAgICAgICAgY29sdW1uOiBmLmNvbHVtbixcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuXG4gIC8vIEZvcm1hdCBtZXRob2QgdG8gc3RyaXAgb3V0IHRoZSB3ZWJwYWNrIGxheWVyIHByZWZpeC5cbiAgLy8gZS5nLiAoYXBwLXBhZ2VzLWJyb3dzZXIpLy4vYXBwL3BhZ2UudHN4IC0+IC4vYXBwL3BhZ2UudHN4XG4gIGNvbnN0IGZvcm1hdHRlZE1ldGhvZCA9IGYubWV0aG9kTmFtZS5yZXBsYWNlKC9eXFwoW1xcdy1dK1xcKVxcLy8sICcnKVxuXG4gIC8vIEZvcm1hdHRlZCBmaWxlIHNvdXJjZSBjb3VsZCBiZSBlbXB0eS4gZS5nLiA8YW5vbnltb3VzPiB3aWxsIGJlIGZvcm1hdHRlZCB0byBlbXB0eSBzdHJpbmcsXG4gIC8vIHdlJ2xsIHNraXAgcmVuZGVyaW5nIHRoZSBmcmFtZSBpbiB0aGlzIGNhc2UuXG4gIGNvbnN0IGZpbGVTb3VyY2UgPSBnZXRGcmFtZVNvdXJjZShmKVxuICBpZiAoIWZpbGVTb3VyY2UpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWU+XG4gICAgICA8aDMgZGF0YS1uZXh0anMtZnJhbWUtZXhwYW5kZWQ9eyFmcmFtZS5pZ25vcmVkfT5cbiAgICAgICAgPEhvdGxpbmtlZFRleHQgdGV4dD17Zm9ybWF0dGVkTWV0aG9kfSAvPlxuICAgICAgPC9oMz5cbiAgICAgIDxkaXZcbiAgICAgICAgZGF0YS1oYXMtc291cmNlPXtoYXNTb3VyY2UgPyAndHJ1ZScgOiB1bmRlZmluZWR9XG4gICAgICAgIGRhdGEtbm8tc291cmNlPXtoYXNTb3VyY2UgPyB1bmRlZmluZWQgOiAndHJ1ZSd9XG4gICAgICAgIHRhYkluZGV4PXtoYXNTb3VyY2UgPyAxMCA6IHVuZGVmaW5lZH1cbiAgICAgICAgcm9sZT17aGFzU291cmNlID8gJ2xpbmsnIDogdW5kZWZpbmVkfVxuICAgICAgICBvbkNsaWNrPXtvcGVufVxuICAgICAgICB0aXRsZT17aGFzU291cmNlID8gJ0NsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3InIDogdW5kZWZpbmVkfVxuICAgICAgPlxuICAgICAgICA8c3Bhbj57ZmlsZVNvdXJjZX08L3NwYW4+XG4gICAgICAgIDxzdmdcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8cGF0aCBkPVwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIj48L3BhdGg+XG4gICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz1cIjE1IDMgMjEgMyAyMSA5XCI+PC9wb2x5bGluZT5cbiAgICAgICAgICA8bGluZSB4MT1cIjEwXCIgeTE9XCIxNFwiIHgyPVwiMjFcIiB5Mj1cIjNcIj48L2xpbmU+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJDYWxsU3RhY2tGcmFtZSIsImZyYW1lIiwiZiIsIm9yaWdpbmFsU3RhY2tGcmFtZSIsInNvdXJjZVN0YWNrRnJhbWUiLCJoYXNTb3VyY2UiLCJCb29sZWFuIiwib3JpZ2luYWxDb2RlRnJhbWUiLCJvcGVuIiwidXNlT3BlbkluRWRpdG9yIiwiZmlsZSIsImxpbmVOdW1iZXIiLCJjb2x1bW4iLCJ1bmRlZmluZWQiLCJmb3JtYXR0ZWRNZXRob2QiLCJtZXRob2ROYW1lIiwicmVwbGFjZSIsImZpbGVTb3VyY2UiLCJnZXRGcmFtZVNvdXJjZSIsImRpdiIsImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUiLCJoMyIsImRhdGEtbmV4dGpzLWZyYW1lLWV4cGFuZGVkIiwiaWdub3JlZCIsIkhvdGxpbmtlZFRleHQiLCJ0ZXh0IiwiZGF0YS1oYXMtc291cmNlIiwiZGF0YS1uby1zb3VyY2UiLCJ0YWJJbmRleCIsInJvbGUiLCJvbkNsaWNrIiwidGl0bGUiLCJzcGFuIiwic3ZnIiwieG1sbnMiLCJ2aWV3Qm94IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwicGF0aCIsImQiLCJwb2x5bGluZSIsInBvaW50cyIsImxpbmUiLCJ4MSIsInkxIiwieDIiLCJ5MiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js":
|
||
/*!***********************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js ***!
|
||
\***********************************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"PseudoHtmlDiff\", ({\n enumerable: true,\n get: function() {\n return PseudoHtmlDiff;\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 _CollapseIcon = __webpack_require__(/*! ../../icons/CollapseIcon */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js\");\nfunction getAdjacentProps(isAdj) {\n return {\n 'data-nextjs-container-errors-pseudo-html--tag-adjacent': isAdj\n };\n}\nfunction PseudoHtmlDiff(param) {\n let { componentStackFrames, firstContent, secondContent, hydrationMismatchType, reactOutputComponentDiff, ...props } = param;\n const isHtmlTagsWarning = hydrationMismatchType === 'tag';\n const isReactHydrationDiff = !!reactOutputComponentDiff;\n // For text mismatch, mismatched text will take 2 rows, so we display 4 rows of component stack\n const MAX_NON_COLLAPSED_FRAMES = isHtmlTagsWarning ? 6 : 4;\n const [isHtmlCollapsed, toggleCollapseHtml] = (0, _react.useState)(true);\n const htmlComponents = (0, _react.useMemo)(()=>{\n const componentStacks = [];\n // React 19 unified mismatch\n if (isReactHydrationDiff) {\n let currentComponentIndex = componentStackFrames.length - 1;\n const reactComponentDiffLines = reactOutputComponentDiff.split('\\n');\n const diffHtmlStack = [];\n reactComponentDiffLines.forEach((line, index)=>{\n let trimmedLine = line.trim();\n const isDiffLine = trimmedLine[0] === '+' || trimmedLine[0] === '-';\n const spaces = ' '.repeat(Math.max(componentStacks.length * 2, 1));\n if (isDiffLine) {\n const sign = trimmedLine[0];\n trimmedLine = trimmedLine.slice(1).trim() // trim spaces after sign\n ;\n diffHtmlStack.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": sign === '+' ? 'add' : 'remove',\n children: [\n sign,\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n } else if (currentComponentIndex >= 0) {\n const isUserLandComponent = trimmedLine.startsWith('<' + componentStackFrames[currentComponentIndex].component);\n // If it's matched userland component or it's ... we will keep the component stack in diff\n if (isUserLandComponent || trimmedLine === '...') {\n currentComponentIndex--;\n componentStacks.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n } else if (!isHtmlCollapsed) {\n componentStacks.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n }\n } else if (!isHtmlCollapsed) {\n // In general, if it's not collapsed, show the whole diff\n componentStacks.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n }\n });\n return componentStacks.concat(diffHtmlStack);\n }\n const nestedHtmlStack = [];\n const tagNames = isHtmlTagsWarning ? [\n firstContent.replace(/<|>/g, ''),\n secondContent.replace(/<|>/g, '')\n ] : [];\n let lastText = '';\n const componentStack = componentStackFrames.map((frame)=>frame.component).reverse();\n // [child index, parent index]\n const matchedIndex = [\n -1,\n -1\n ];\n if (isHtmlTagsWarning) {\n // Reverse search for the child tag\n for(let i = componentStack.length - 1; i >= 0; i--){\n if (componentStack[i] === tagNames[0]) {\n matchedIndex[0] = i;\n break;\n }\n }\n // Start searching parent tag from child tag above\n for(let i = matchedIndex[0] - 1; i >= 0; i--){\n if (componentStack[i] === tagNames[1]) {\n matchedIndex[1] = i;\n break;\n }\n }\n }\n componentStack.forEach((component, index, componentList)=>{\n const spaces = ' '.repeat(nestedHtmlStack.length * 2);\n // When component is the server or client tag name, highlight it\n const isHighlightedTag = isHtmlTagsWarning ? index === matchedIndex[0] || index === matchedIndex[1] : tagNames.includes(component);\n const isAdjacentTag = isHighlightedTag || Math.abs(index - matchedIndex[0]) <= 1 || Math.abs(index - matchedIndex[1]) <= 1;\n const isLastFewFrames = !isHtmlTagsWarning && index >= componentList.length - 6;\n const adjProps = getAdjacentProps(isAdjacentTag);\n if (isHtmlTagsWarning && isAdjacentTag || isLastFewFrames) {\n const codeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n ...adjProps,\n ...isHighlightedTag ? {\n 'data-nextjs-container-errors-pseudo-html--tag-error': true\n } : undefined,\n children: \"<\" + component + \">\\n\"\n })\n ]\n });\n lastText = component;\n const wrappedCodeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n codeLine,\n isHighlightedTag && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--hint\": true,\n children: spaces + '^'.repeat(component.length + 2) + '\\n'\n })\n ]\n }, nestedHtmlStack.length);\n nestedHtmlStack.push(wrappedCodeLine);\n } else {\n if (nestedHtmlStack.length >= MAX_NON_COLLAPSED_FRAMES && isHtmlCollapsed) {\n return;\n }\n if (!isHtmlCollapsed || isLastFewFrames) {\n nestedHtmlStack.push(/*#__PURE__*/ (0, _react.createElement)(\"span\", {\n ...adjProps,\n key: nestedHtmlStack.length,\n children: [\n spaces,\n '<' + component + '>\\n'\n ]\n }));\n } else if (isHtmlCollapsed && lastText !== '...') {\n lastText = '...';\n nestedHtmlStack.push(/*#__PURE__*/ (0, _react.createElement)(\"span\", {\n ...adjProps,\n key: nestedHtmlStack.length,\n children: [\n spaces,\n '...\\n'\n ]\n }));\n }\n }\n });\n // Hydration mismatch: text or text-tag\n if (!isHtmlTagsWarning) {\n const spaces = ' '.repeat(nestedHtmlStack.length * 2);\n let wrappedCodeLine;\n if (hydrationMismatchType === 'text') {\n // hydration type is \"text\", represent [server content, client content]\n wrappedCodeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": \"remove\",\n children: spaces + ('\"' + firstContent + '\"\\n')\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": \"add\",\n children: spaces + ('\"' + secondContent + '\"\\n')\n })\n ]\n }, nestedHtmlStack.length);\n } else if (hydrationMismatchType === 'text-in-tag') {\n // hydration type is \"text-in-tag\", represent [parent tag, mismatch content]\n wrappedCodeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--tag-adjacent\": true,\n children: spaces + (\"<\" + secondContent + \">\\n\")\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": \"remove\",\n children: spaces + (' \"' + firstContent + '\"\\n')\n })\n ]\n }, nestedHtmlStack.length);\n }\n nestedHtmlStack.push(wrappedCodeLine);\n }\n return nestedHtmlStack;\n }, [\n componentStackFrames,\n isHtmlCollapsed,\n firstContent,\n secondContent,\n isHtmlTagsWarning,\n hydrationMismatchType,\n MAX_NON_COLLAPSED_FRAMES,\n isReactHydrationDiff,\n reactOutputComponentDiff\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-container-errors-pseudo-html\": true,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n tabIndex: 10,\n \"data-nextjs-container-errors-pseudo-html-collapse\": true,\n onClick: ()=>toggleCollapseHtml(!isHtmlCollapsed),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_CollapseIcon.CollapseIcon, {\n collapsed: isHtmlCollapsed\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"pre\", {\n ...props,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"code\", {\n children: htmlComponents\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=component-stack-pseudo-html.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvY29tcG9uZW50LXN0YWNrLXBzZXVkby1odG1sLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBd0RnQkE7OztlQUFBQTs7OzttQ0F4RDRCOzBDQUVmO0FBRTdCLFNBQVNDLGlCQUFpQkMsS0FBYztJQUN0QyxPQUFPO1FBQUUsMERBQTBEQTtJQUFNO0FBQzNFO0FBa0RPLFNBQVNGLGVBQWUsS0FhUztJQWJULE1BQzdCRyxvQkFBb0IsRUFDcEJDLFlBQVksRUFDWkMsYUFBYSxFQUNiQyxxQkFBcUIsRUFDckJDLHdCQUF3QixFQUN4QixHQUFHQyxPQU9tQyxHQWJUO0lBYzdCLE1BQU1DLG9CQUFvQkgsMEJBQTBCO0lBQ3BELE1BQU1JLHVCQUF1QixDQUFDLENBQUNIO0lBRS9CLCtGQUErRjtJQUMvRixNQUFNSSwyQkFBMkJGLG9CQUFvQixJQUFJO0lBQ3pELE1BQU0sQ0FBQ0csaUJBQWlCQyxtQkFBbUIsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFBUztJQUV2RCxNQUFNQyxpQkFBaUJDLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7UUFDN0IsTUFBTUMsa0JBQXFDLEVBQUU7UUFDN0MsNEJBQTRCO1FBQzVCLElBQUlQLHNCQUFzQjtZQUN4QixJQUFJUSx3QkFBd0JmLHFCQUFxQmdCLE1BQU0sR0FBRztZQUMxRCxNQUFNQywwQkFBMEJiLHlCQUF5QmMsS0FBSyxDQUFDO1lBQy9ELE1BQU1DLGdCQUFtQyxFQUFFO1lBQzNDRix3QkFBd0JHLE9BQU8sQ0FBQyxDQUFDQyxNQUFNQztnQkFDckMsSUFBSUMsY0FBY0YsS0FBS0csSUFBSTtnQkFDM0IsTUFBTUMsYUFBYUYsV0FBVyxDQUFDLEVBQUUsS0FBSyxPQUFPQSxXQUFXLENBQUMsRUFBRSxLQUFLO2dCQUNoRSxNQUFNRyxTQUFT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QUFHbEUsS0FBSzswQkFDWixtQ0FBQ21FLFFBQUFBOzhCQUFNNUQ7Ozs7O0FBSWYiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxjb250YWluZXJcXFJ1bnRpbWVFcnJvclxcY29tcG9uZW50LXN0YWNrLXBzZXVkby1odG1sLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vLCBGcmFnbWVudCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50U3RhY2tGcmFtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrJ1xuaW1wb3J0IHsgQ29sbGFwc2VJY29uIH0gZnJvbSAnLi4vLi4vaWNvbnMvQ29sbGFwc2VJY29uJ1xuXG5mdW5jdGlvbiBnZXRBZGphY2VudFByb3BzKGlzQWRqOiBib29sZWFuKSB7XG4gIHJldHVybiB7ICdkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS10YWctYWRqYWNlbnQnOiBpc0FkaiB9XG59XG5cbi8qKlxuICpcbiAqIEZvcm1hdCBjb21wb25lbnQgc3RhY2sgaW50byBwc2V1ZG8gSFRNTFxuICogY29tcG9uZW50IHN0YWNrIGlzIGFuIGFycmF5IG9mIHN0cmluZ3MsIGUuZy46IFsncCcsICdwJywgJ1BhZ2UnLCAuLi5dXG4gKlxuICogRm9yIGh0bWwgdGFncyBtaXNtYXRjaCwgaXQgd2lsbCByZW5kZXIgaXQgZm9yIHRoZSBjb2RlIGJsb2NrXG4gKlxuICogYGBgXG4gKiA8cHJlPlxuICogIDxjb2RlPntgXG4gKiAgICA8UGFnZT5cbiAqICAgICAgIDxwIHJlZD5cbiAqICAgICAgICAgPHAgcmVkPlxuICogIGB9PC9jb2RlPlxuICogPC9wcmU+XG4gKiBgYGBcbiAqXG4gKiBGb3IgdGV4dCBtaXNtYXRjaCwgaXQgd2lsbCByZW5kZXIgaXQgZm9yIHRoZSBjb2RlIGJsb2NrXG4gKlxuICogYGBgXG4gKiA8cHJlPlxuICogPGNvZGU+e2BcbiAqICAgPFBhZ2U+XG4gKiAgICAgPHA+XG4gKiAgICAgICBcIlNlcnZlciBUZXh0XCIgKGdyZWVuKVxuICogICAgICAgXCJDbGllbnQgVGV4dFwiIChyZWQpXG4gKiAgICAgPC9wPlxuICogICA8L1BhZ2U+XG4gKiBgfTwvY29kZT5cbiAqIGBgYFxuICpcbiAqIEZvciBiYWQgdGV4dCB1bmRlciBhIHRhZyBpdCB3aWxsIHJlbmRlciBpdCBmb3IgdGhlIGNvZGUgYmxvY2ssXG4gKiBlLmcuIFwiTWlzbWF0Y2hlZCBUZXh0XCIgdW5kZXIgPHA+XG4gKlxuICogYGBgXG4gKiA8cHJlPlxuICogPGNvZGU+e2BcbiAqICAgPFBhZ2U+XG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxwPlxuICogICAgICAgICBcIk1pc21hdGNoZWQgVGV4dFwiIChyZWQpXG4gKiAgICAgIDwvcD5cbiAqICAgICA8L2Rpdj5cbiAqICAgPC9QYWdlPlxuICogYH08L2NvZGU+XG4gKiBgYGBcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQc2V1ZG9IdG1sRGlmZih7XG4gIGNvbXBvbmVudFN0YWNrRnJhbWVzLFxuICBmaXJzdENvbnRlbnQsXG4gIHNlY29uZENvbnRlbnQsXG4gIGh5ZHJhdGlvbk1pc21hdGNoVHlwZSxcbiAgcmVhY3RPdXRwdXRDb21wb25lbnREaWZmLFxuICAuLi5wcm9wc1xufToge1xuICBjb21wb25lbnRTdGFja0ZyYW1lczogQ29tcG9uZW50U3RhY2tGcmFtZVtdXG4gIGZpcnN0Q29udGVudDogc3RyaW5nXG4gIHNlY29uZENvbnRlbnQ6IHN0cmluZ1xuICByZWFjdE91dHB1dENvbXBvbmVudERpZmY6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBoeWRyYXRpb25NaXNtYXRjaFR5cGU6ICd0YWcnIHwgJ3RleHQnIHwgJ3RleHQtaW4tdGFnJ1xufSAmIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxQcmVFbGVtZW50Pikge1xuICBjb25zdCBpc0h0bWxUYWdzV2FybmluZyA9IGh5ZHJhdGlvbk1pc21hdGNoVHlwZSA9PT0gJ3RhZydcbiAgY29uc3QgaXNSZWFjdEh5ZHJhdGlvbkRpZmYgPSAhIXJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZlxuXG4gIC8vIEZvciB0ZXh0IG1pc21hdGNoLCBtaXNtYXRjaGVkIHRleHQgd2lsbCB0YWtlIDIgcm93cywgc28gd2UgZGlzcGxheSA0IHJvd3Mgb2YgY29tcG9uZW50IHN0YWNrXG4gIGNvbnN0IE1BWF9OT05fQ09MTEFQU0VEX0ZSQU1FUyA9IGlzSHRtbFRhZ3NXYXJuaW5nID8gNiA6IDRcbiAgY29uc3QgW2lzSHRtbENvbGxhcHNlZCwgdG9nZ2xlQ29sbGFwc2VIdG1sXSA9IHVzZVN0YXRlKHRydWUpXG5cbiAgY29uc3QgaHRtbENvbXBvbmVudHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBjb21wb25lbnRTdGFja3M6IFJlYWN0LlJlYWN0Tm9kZVtdID0gW11cbiAgICAvLyBSZWFjdCAxOSB1bmlmaWVkIG1pc21hdGNoXG4gICAgaWYgKGlzUmVhY3RIeWRyYXRpb25EaWZmKSB7XG4gICAgICBsZXQgY3VycmVudENvbXBvbmVudEluZGV4ID0gY29tcG9uZW50U3RhY2tGcmFtZXMubGVuZ3RoIC0gMVxuICAgICAgY29uc3QgcmVhY3RDb21wb25lbnREaWZmTGluZXMgPSByZWFjdE91dHB1dENvbXBvbmVudERpZmYuc3BsaXQoJ1xcbicpXG4gICAgICBjb25zdCBkaWZmSHRtbFN0YWNrOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gICAgICByZWFjdENvbXBvbmVudERpZmZMaW5lcy5mb3JFYWNoKChsaW5lLCBpbmRleCkgPT4ge1xuICAgICAgICBsZXQgdHJpbW1lZExpbmUgPSBsaW5lLnRyaW0oKVxuICAgICAgICBjb25zdCBpc0RpZmZMaW5lID0gdHJpbW1lZExpbmVbMF0gPT09ICcrJyB8fCB0cmltbWVkTGluZVswXSA9PT0gJy0nXG4gICAgICAgIGNvbnN0IHNwYWNlcyA9ICcgJy5yZXBlYXQoTWF0aC5tYXgoY29tcG9uZW50U3RhY2tzLmxlbmd0aCAqIDIsIDEpKVxuXG4gICAgICAgIGlmIChpc0RpZmZMaW5lKSB7XG4gICAgICAgICAgY29uc3Qgc2lnbiA9IHRyaW1tZWRMaW5lWzBdXG4gICAgICAgICAgdHJpbW1lZExpbmUgPSB0cmltbWVkTGluZS5zbGljZSgxKS50cmltKCkgLy8gdHJpbSBzcGFjZXMgYWZ0ZXIgc2lnblxuICAgICAgICAgIGRpZmZIdG1sU3RhY2sucHVzaChcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGtleT17J2NvbXAtZGlmZicgKyBpbmRleH1cbiAgICAgICAgICAgICAgZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj17XG4gICAgICAgICAgICAgICAgc2lnbiA9PT0gJysnID8gJ2FkZCcgOiAncmVtb3ZlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzaWdufVxuICAgICAgICAgICAgICB7c3BhY2VzfVxuICAgICAgICAgICAgICB7dHJpbW1lZExpbmV9XG4gICAgICAgICAgICAgIHsnXFxuJ31cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudENvbXBvbmVudEluZGV4ID49IDApIHtcbiAgICAgICAgICBjb25zdCBpc1VzZXJMYW5kQ29tcG9uZW50ID0gdHJpbW1lZExpbmUuc3RhcnRzV2l0aChcbiAgICAgICAgICAgICc8JyArIGNvbXBvbmVudFN0YWNrRnJhbWVzW2N1cnJlbnRDb21wb25lbnRJbmRleF0uY29tcG9uZW50XG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIElmIGl0J3MgbWF0Y2hlZCB1c2VybGFuZCBjb21wb25lbnQgb3IgaXQncyAuLi4gd2Ugd2lsbCBrZWVwIHRoZSBjb21wb25lbnQgc3RhY2sgaW4gZGlmZlxuICAgICAgICAgIGlmIChpc1VzZXJMYW5kQ29tcG9uZW50IHx8IHRyaW1tZWRMaW5lID09PSAnLi4uJykge1xuICAgICAgICAgICAgY3VycmVudENvbXBvbmVudEluZGV4LS1cbiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrcy5wdXNoKFxuICAgICAgICAgICAgICA8c3BhbiBrZXk9eydjb21wLWRpZmYnICsgaW5kZXh9PlxuICAgICAgICAgICAgICAgIHtzcGFjZXN9XG4gICAgICAgICAgICAgICAge3RyaW1tZWRMaW5lfVxuICAgICAgICAgICAgICAgIHsnXFxuJ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSBpZiAoIWlzSHRtbENvbGxhcHNlZCkge1xuICAgICAgICAgICAgY29tcG9uZW50U3RhY2tzLnB1c2goXG4gICAgICAgICAgICAgIDxzcGFuIGtleT17J2NvbXAtZGlmZicgKyBpbmRleH0+XG4gICAgICAgICAgICAgICAge3NwYWNlc31cbiAgICAgICAgICAgICAgICB7dHJpbW1lZExpbmV9XG4gICAgICAgICAgICAgICAgeydcXG4nfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFpc0h0bWxDb2xsYXBzZWQpIHtcbiAgICAgICAgICAvLyBJbiBnZW5lcmFsLCBpZiBpdCdzIG5vdCBjb2xsYXBzZWQsIHNob3cgdGhlIHdob2xlIGRpZmZcbiAgICAgICAgICBjb21wb25lbnRTdGFja3MucHVzaChcbiAgICAgICAgICAgIDxzcGFuIGtleT17J2NvbXAtZGlmZicgKyBpbmRleH0+XG4gICAgICAgICAgICAgIHtzcGFjZXN9XG4gICAgICAgICAgICAgIHt0cmltbWVkTGluZX1cbiAgICAgICAgICAgICAgeydcXG4nfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBjb21wb25lbnRTdGFja3MuY29uY2F0KGRpZmZIdG1sU3RhY2spXG4gICAgfVxuXG4gICAgY29uc3QgbmVzdGVkSHRtbFN0YWNrOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gICAgY29uc3QgdGFnTmFtZXMgPSBpc0h0bWxUYWdzV2FybmluZ1xuICAgICAgPyAvLyB0YWdzIGNvdWxkIGhhdmUgPCBvciA+IGluIHRoZSBuYW1lLCBzbyB3ZSBhbHdheXMgcmVtb3ZlIHRoZW0gdG8gbWF0Y2hcbiAgICAgICAgW2ZpcnN0Q29udGVudC5yZXBsYWNlKC88fD4vZywgJycpLCBzZWNvbmRDb250ZW50LnJlcGxhY2UoLzx8Pi9nLCAnJyldXG4gICAgICA6IFtdXG5cbiAgICBsZXQgbGFzdFRleHQgPSAnJ1xuXG4gICAgY29uc3QgY29tcG9uZW50U3RhY2sgPSBjb21wb25lbnRTdGFja0ZyYW1lc1xuICAgICAgLm1hcCgoZnJhbWUpID0+IGZyYW1lLmNvbXBvbmVudClcbiAgICAgIC5yZXZlcnNlKClcblxuICAgIC8vIFtjaGlsZCBpbmRleCwgcGFyZW50IGluZGV4XVxuICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IFstMSwgLTFdXG4gICAgaWYgKGlzSHRtbFRhZ3NXYXJuaW5nKSB7XG4gICAgICAvLyBSZXZlcnNlIHNlYXJjaCBmb3IgdGhlIGNoaWxkIHRhZ1xuICAgICAgZm9yIChsZXQgaSA9IGNvbXBvbmVudFN0YWNrLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGlmIChjb21wb25lbnRTdGFja1tpXSA9PT0gdGFnTmFtZXNbMF0pIHtcbiAgICAgICAgICBtYXRjaGVkSW5kZXhbMF0gPSBpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gU3RhcnQgc2VhcmNoaW5nIHBhcmVudCB0YWcgZnJvbSBjaGlsZCB0YWcgYWJvdmVcbiAgICAgIGZvciAobGV0IGkgPSBtYXRjaGVkSW5kZXhbMF0gLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAoY29tcG9uZW50U3RhY2tbaV0gPT09IHRhZ05hbWVzWzFdKSB7XG4gICAgICAgICAgbWF0Y2hlZEluZGV4WzFdID0gaVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRTdGFjay5mb3JFYWNoKChjb21wb25lbnQsIGluZGV4LCBjb21wb25lbnRMaXN0KSA9PiB7XG4gICAgICBjb25zdCBzcGFjZXMgPSAnICcucmVwZWF0KG5lc3RlZEh0bWxTdGFjay5sZW5ndGggKiAyKVxuXG4gICAgICAvLyBXaGVuIGNvbXBvbmVudCBpcyB0aGUgc2VydmVyIG9yIGNsaWVudCB0YWcgbmFtZSwgaGlnaGxpZ2h0IGl0XG4gICAgICBjb25zdCBpc0hpZ2hsaWdodGVkVGFnID0gaXNIdG1sVGFnc1dhcm5pbmdcbiAgICAgICAgPyBpbmRleCA9PT0gbWF0Y2hlZEluZGV4WzBdIHx8IGluZGV4ID09PSBtYXRjaGVkSW5kZXhbMV1cbiAgICAgICAgOiB0YWdOYW1lcy5pbmNsdWRlcyhjb21wb25lbnQpXG4gICAgICBjb25zdCBpc0FkamFjZW50VGFnID1cbiAgICAgICAgaXNIaWdobGlnaHRlZFRhZyB8fFxuICAgICAgICBNYXRoLmFicyhpbmRleCAtIG1hdGNoZWRJbmRleFswXSkgPD0gMSB8fFxuICAgICAgICBNYXRoLmFicyhpbmRleCAtIG1hdGNoZWRJbmRleFsxXSkgPD0gMVxuXG4gICAgICBjb25zdCBpc0xhc3RGZXdGcmFtZXMgPVxuICAgICAgICAhaXNIdG1sVGFnc1dhcm5pbmcgJiYgaW5kZXggPj0gY29tcG9uZW50TGlzdC5sZW5ndGggLSA2XG5cbiAgICAgIGNvbnN0IGFkalByb3BzID0gZ2V0QWRqYWNlbnRQcm9wcyhpc0FkamFjZW50VGFnKVxuXG4gICAgICBpZiAoKGlzSHRtbFRhZ3NXYXJuaW5nICYmIGlzQWRqYWNlbnRUYWcpIHx8IGlzTGFzdEZld0ZyYW1lcykge1xuICAgICAgICBjb25zdCBjb2RlTGluZSA9IChcbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHtzcGFjZXN9XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICB7Li4uYWRqUHJvcHN9XG4gICAgICAgICAgICAgIHsuLi57XG4gICAgICAgICAgICAgICAgLi4uKGlzSGlnaGxpZ2h0ZWRUYWdcbiAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICdkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS10YWctZXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YDwke2NvbXBvbmVudH0+XFxuYH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIClcbiAgICAgICAgbGFzdFRleHQgPSBjb21wb25lbnRcblxuICAgICAgICBjb25zdCB3cmFwcGVkQ29kZUxpbmUgPSAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17bmVzdGVkSHRtbFN0YWNrLmxlbmd0aH0+XG4gICAgICAgICAgICB7Y29kZUxpbmV9XG4gICAgICAgICAgICB7LyogQWRkIF5eXl4gdG8gdGhlIHRhcmdldCB0YWdzIHVzZWQgZm9yIHNuYXBzaG90cyBidXQgbm90IGRpc3BsYXllZCBmb3IgdXNlcnMgKi99XG4gICAgICAgICAgICB7aXNIaWdobGlnaHRlZFRhZyAmJiAoXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWhpbnQ+XG4gICAgICAgICAgICAgICAge3NwYWNlcyArICdeJy5yZXBlYXQoY29tcG9uZW50Lmxlbmd0aCArIDIpICsgJ1xcbid9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKVxuICAgICAgICBuZXN0ZWRIdG1sU3RhY2sucHVzaCh3cmFwcGVkQ29kZUxpbmUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbmVzdGVkSHRtbFN0YWNrLmxlbmd0aCA+PSBNQVhfTk9OX0NPTExBUFNFRF9GUkFNRVMgJiZcbiAgICAgICAgICBpc0h0bWxDb2xsYXBzZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzSHRtbENvbGxhcHNlZCB8fCBpc0xhc3RGZXdGcmFtZXMpIHtcbiAgICAgICAgICBuZXN0ZWRIdG1sU3RhY2sucHVzaChcbiAgICAgICAgICAgIDxzcGFuIHsuLi5hZGpQcm9wc30ga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgICAge3NwYWNlc31cbiAgICAgICAgICAgICAgeyc8JyArIGNvbXBvbmVudCArICc+XFxuJ31cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoaXNIdG1sQ29sbGFwc2VkICYmIGxhc3RUZXh0ICE9PSAnLi4uJykge1xuICAgICAgICAgIGxhc3RUZXh0ID0gJy4uLidcbiAgICAgICAgICBuZXN0ZWRIdG1sU3RhY2sucHVzaChcbiAgICAgICAgICAgIDxzcGFuIHsuLi5hZGpQcm9wc30ga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgICAge3NwYWNlc31cbiAgICAgICAgICAgICAgeycuLi5cXG4nfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgLy8gSHlkcmF0aW9uIG1pc21hdGNoOiB0ZXh0IG9yIHRleHQtdGFnXG4gICAgaWYgKCFpc0h0bWxUYWdzV2FybmluZykge1xuICAgICAgY29uc3Qgc3BhY2VzID0gJyAnLnJlcGVhdChuZXN0ZWRIdG1sU3RhY2subGVuZ3RoICogMilcbiAgICAgIGxldCB3cmFwcGVkQ29kZUxpbmVcbiAgICAgIGlmIChoeWRyYXRpb25NaXNtYXRjaFR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAvLyBoeWRyYXRpb24gdHlwZSBpcyBcInRleHRcIiwgcmVwcmVzZW50IFtzZXJ2ZXIgY29udGVudCwgY2xpZW50IGNvbnRlbnRdXG4gICAgICAgIHdyYXBwZWRDb2RlTGluZSA9IChcbiAgICAgICAgICA8RnJhZ21lbnQga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9XCJyZW1vdmVcIj5cbiAgICAgICAgICAgICAge3NwYWNlcyArIGBcIiR7Zmlyc3RDb250ZW50fVwiXFxuYH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9XCJhZGRcIj5cbiAgICAgICAgICAgICAge3NwYWNlcyArIGBcIiR7c2Vjb25kQ29udGVudH1cIlxcbmB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmIChoeWRyYXRpb25NaXNtYXRjaFR5cGUgPT09ICd0ZXh0LWluLXRhZycpIHtcbiAgICAgICAgLy8gaHlkcmF0aW9uIHR5cGUgaXMgXCJ0ZXh0LWluLXRhZ1wiLCByZXByZXNlbnQgW3BhcmVudCB0YWcsIG1pc21hdGNoIGNvbnRlbnRdXG4gICAgICAgIHdyYXBwZWRDb2RlTGluZSA9IChcbiAgICAgICAgICA8RnJhZ21lbnQga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLXRhZy1hZGphY2VudD5cbiAgICAgICAgICAgICAge3NwYWNlcyArIGA8JHtzZWNvbmRDb250ZW50fT5cXG5gfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj1cInJlbW92ZVwiPlxuICAgICAgICAgICAgICB7c3BhY2VzICsgYCAgXCIke2ZpcnN0Q29udGVudH1cIlxcbmB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgbmVzdGVkSHRtbFN0YWNrLnB1c2god3JhcHBlZENvZGVMaW5lKVxuICAgIH1cblxuICAgIHJldHVybiBuZXN0ZWRIdG1sU3RhY2tcbiAgfSwgW1xuICAgIGNvbXBvbmVudFN0YWNrRnJhbWVzLFxuICAgIGlzSHRtbENvbGxhcHNlZCxcbiAgICBmaXJzdENvbnRlbnQsXG4gICAgc2Vjb25kQ29udGVudCxcbiAgICBpc0h0bWxUYWdzV2FybmluZyxcbiAgICBoeWRyYXRpb25NaXNtYXRjaFR5cGUsXG4gICAgTUFYX05PTl9DT0xMQVBTRURfRlJBTUVTLFxuICAgIGlzUmVhY3RIeWRyYXRpb25EaWZmLFxuICAgIHJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZixcbiAgXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdGFiSW5kZXg9ezEwfSAvLyBtYXRjaCBDYWxsU3RhY2tGcmFtZVxuICAgICAgICBkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlSHRtbCghaXNIdG1sQ29sbGFwc2VkKX1cbiAgICAgID5cbiAgICAgICAgPENvbGxhcHNlSWNvbiBjb2xsYXBzZWQ9e2lzSHRtbENvbGxhcHNlZH0gLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHByZSB7Li4ucHJvcHN9PlxuICAgICAgICA8Y29kZT57aHRtbENvbXBvbmVudHN9PC9jb2RlPlxuICAgICAgPC9wcmU+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJQc2V1ZG9IdG1sRGlmZiIsImdldEFkamFjZW50UHJvcHMiLCJpc0FkaiIsImNvbXBvbmVudFN0YWNrRnJhbWVzIiwiZmlyc3RDb250ZW50Iiwic2Vjb25kQ29udGVudCIsImh5ZHJhdGlvbk1pc21hdGNoVHlwZSIsInJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZiIsInByb3BzIiwiaXNIdG1sVGFnc1dhcm5pbmciLCJpc1JlYWN0SHlkcmF0aW9uRGlmZiIsIk1BWF9OT05fQ09MTEFQU0VEX0ZSQU1FUyIsImlzSHRtbENvbGxhcHNlZCIsInRvZ2dsZUNvbGxhcHNlSHRtbCIsInVzZVN0YXRlIiwiaHRtbENvbXBvbmVudHMiLCJ1c2VNZW1vIiwiY29tcG9uZW50U3RhY2tzIiwiY3VycmVudENvbXBvbmVudEluZGV4IiwibGVuZ3RoIiwicmVhY3RDb21wb25lbnREaWZmTGluZXMiLCJzcGxpdCIsImRpZmZIdG1sU3RhY2siLCJmb3JFYWNoIiwibGluZSIsImluZGV4IiwidHJpbW1lZExpbmUiLCJ0cmltIiwiaXNEaWZmTGluZSIsInNwYWNlcyIsInJlcGVhdCIsIk1hdGgiLCJtYXgiLCJzaWduIiwic2xpY2UiLCJwdXNoIiwic3BhbiIsImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmYiLCJpc1VzZXJMYW5kQ29tcG9uZW50Iiwic3RhcnRzV2l0aCIsImNvbXBvbmVudCIsImNvbmNhdCIsIm5lc3RlZEh0bWxTdGFjayIsInRhZ05hbWVzIiwicmVwbGFjZSIsImxhc3RUZXh0IiwiY29tcG9uZW50U3RhY2siLCJtYXAiLCJmcmFtZSIsInJldmVyc2UiLCJtYXRjaGVkSW5kZXgiLCJpIiwiY29tcG9uZW50TGlzdCIsImlzSGlnaGxpZ2h0ZWRUYWciLCJpbmNsdWRlcyIsImlzQWRqYWNlbnRUYWciLCJhYnMiLCJpc0xhc3RGZXdGcmFtZXMiLCJhZGpQcm9wcyIsImNvZGVMaW5lIiwidW5kZWZpbmVkIiwid3JhcHBlZENvZGVMaW5lIiwiRnJhZ21lbnQiLCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1oaW50Iiwia2V5IiwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tdGFnLWFkamFjZW50IiwiZGl2IiwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbCIsImJ1dHRvbiIsInRhYkluZGV4IiwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZSIsIm9uQ2xpY2siLCJDb2xsYXBzZUljb24iLCJjb2xsYXBzZWQiLCJwcmUiLCJjb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js":
|
||
/*!*************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.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 RuntimeError: function() {\n return RuntimeError;\n },\n styles: function() {\n return styles;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.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 _CodeFrame = __webpack_require__(/*! ../../components/CodeFrame */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nconst _CallStackFrame = __webpack_require__(/*! ./CallStackFrame */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-call-stack-frame]:not(:last-child),\\n [data-nextjs-component-stack-frame]:not(:last-child) {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-expand-ignore-button]:focus:not(:focus-visible),\\n [data-expand-ignore-button] {\\n background: none;\\n border: none;\\n color: var(--color-font);\\n cursor: pointer;\\n font-size: var(--size-font);\\n margin: var(--size-gap) 0;\\n padding: 0;\\n text-decoration: underline;\\n outline: none;\\n }\\n\\n [data-nextjs-data-runtime-error-copy-button],\\n [data-nextjs-data-runtime-error-copy-button]:focus:not(:focus-visible) {\\n position: relative;\\n margin-left: var(--size-gap);\\n padding: 0;\\n border: none;\\n background: none;\\n outline: none;\\n }\\n [data-nextjs-data-runtime-error-copy-button] > svg {\\n vertical-align: middle;\\n }\\n .nextjs-data-runtime-error-copy-button {\\n color: inherit;\\n }\\n .nextjs-data-runtime-error-copy-button--initial:hover {\\n cursor: pointer;\\n }\\n .nextjs-data-runtime-error-copy-button[aria-disabled='true'] {\\n opacity: 0.3;\\n cursor: not-allowed;\\n }\\n .nextjs-data-runtime-error-copy-button--error,\\n .nextjs-data-runtime-error-copy-button--error:hover {\\n color: var(--color-ansi-red);\\n }\\n .nextjs-data-runtime-error-copy-button--success {\\n color: var(--color-ansi-green);\\n }\\n\\n [data-nextjs-call-stack-frame] > h3,\\n [data-nextjs-component-stack-frame] > h3 {\\n margin-top: 0;\\n margin-bottom: 0;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font);\\n }\\n [data-nextjs-call-stack-frame] > h3[data-nextjs-frame-expanded='false'] {\\n color: #666;\\n display: inline-block;\\n }\\n [data-nextjs-call-stack-frame] > div,\\n [data-nextjs-component-stack-frame] > div {\\n display: flex;\\n align-items: center;\\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\\n font-size: var(--size-font-small);\\n color: #999;\\n }\\n [data-nextjs-call-stack-frame] > div > svg,\\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n flex-shrink: 0;\\n display: none;\\n }\\n\\n [data-nextjs-call-stack-frame] > div[data-has-source],\\n [data-nextjs-component-stack-frame] > [role='link'] {\\n cursor: pointer;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover,\\n [data-nextjs-component-stack-frame] > [role='link']:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg,\\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\\n display: unset;\\n }\\n\\n [data-nextjs-call-stack-framework-icon] {\\n margin-right: var(--size-gap);\\n }\\n [data-nextjs-call-stack-framework-icon='next'] > mask {\\n mask-type: alpha;\\n }\\n [data-nextjs-call-stack-framework-icon='react'] {\\n color: rgb(20, 158, 202);\\n }\\n [data-nextjs-collapsed-call-stack-details][open]\\n [data-nextjs-call-stack-chevron-icon] {\\n transform: rotate(90deg);\\n }\\n [data-nextjs-collapsed-call-stack-details] summary {\\n display: flex;\\n align-items: center;\\n margin-bottom: var(--size-gap);\\n list-style: none;\\n }\\n [data-nextjs-collapsed-call-stack-details] summary::-webkit-details-marker {\\n display: none;\\n }\\n\\n [data-nextjs-collapsed-call-stack-details] h3 {\\n color: #666;\\n }\\n [data-nextjs-collapsed-call-stack-details] [data-nextjs-call-stack-frame] {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-nextjs-container-errors-pseudo-html] {\\n position: relative;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse] {\\n position: absolute;\\n left: 10px;\\n top: 10px;\\n color: inherit;\\n background: none;\\n border: none;\\n padding: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\\n color: var(--color-ansi-green);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\\n color: var(--color-ansi-red);\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-error] {\\n color: var(--color-ansi-red);\\n font-weight: bold;\\n }\\n /* hide but text are still accessible in DOM */\\n [data-nextjs-container-errors-pseudo-html--hint] {\\n display: inline-block;\\n font-size: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\\n color: var(--color-accents-1);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction RuntimeError(param) {\n let { error } = param;\n const [isIgnoredExpanded, setIsIgnoredExpanded] = _react.useState(false);\n const { firstFrame, allLeadingFrames, trailingCallStackFrames, displayedFramesCount } = _react.useMemo({\n \"RuntimeError.useMemo\": ()=>{\n const filteredFrames = error.frames.filter({\n \"RuntimeError.useMemo.filteredFrames\": (frame)=>isIgnoredExpanded ? true : !frame.ignored\n }[\"RuntimeError.useMemo.filteredFrames\"]);\n const firstFirstPartyFrameIndex = filteredFrames.findIndex({\n \"RuntimeError.useMemo.firstFirstPartyFrameIndex\": (entry)=>!entry.ignored && Boolean(entry.originalCodeFrame) && Boolean(entry.originalStackFrame)\n }[\"RuntimeError.useMemo.firstFirstPartyFrameIndex\"]);\n var _filteredFrames_firstFirstPartyFrameIndex;\n return {\n displayedFramesCount: filteredFrames.length,\n firstFrame: (_filteredFrames_firstFirstPartyFrameIndex = filteredFrames[firstFirstPartyFrameIndex]) != null ? _filteredFrames_firstFirstPartyFrameIndex : null,\n allLeadingFrames: firstFirstPartyFrameIndex < 0 ? [] : filteredFrames.slice(0, firstFirstPartyFrameIndex),\n trailingCallStackFrames: filteredFrames.slice(firstFirstPartyFrameIndex + 1)\n };\n }\n }[\"RuntimeError.useMemo\"], [\n error.frames,\n isIgnoredExpanded\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n firstFrame ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n children: \"Source\"\n }),\n allLeadingFrames.map((frame, frameIndex)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_CallStackFrame.CallStackFrame, {\n frame: frame\n }, \"call-stack-leading-\" + frameIndex)),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_CodeFrame.CodeFrame, {\n stackFrame: firstFrame.originalStackFrame,\n codeFrame: firstFrame.originalCodeFrame\n })\n ]\n }) : undefined,\n trailingCallStackFrames.map((frame, frameIndex)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_CallStackFrame.CallStackFrame, {\n frame: frame\n }, \"call-stack-leading-\" + frameIndex)),\n // if the default displayed ignored frames count is equal equal to the total frames count, hide the button\n displayedFramesCount === error.frames.length && !isIgnoredExpanded ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n \"data-expand-ignore-button\": isIgnoredExpanded,\n onClick: ()=>setIsIgnoredExpanded(!isIgnoredExpanded),\n children: \"\" + (isIgnoredExpanded ? 'Hide' : 'Show') + \" ignored frames\"\n })\n ]\n });\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\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=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBUWdCQSxZQUFZO2VBQVpBOztJQXdFSEMsTUFBTTtlQUFOQTs7Ozs7OzZFQWhGVTt1Q0FDRzswQ0FFRTs0Q0FDRzs7Ozs7Ozs7OztBQUl4QixTQUFTRCxhQUFhLEtBQTRCO0lBQTVCLE1BQUVFLEtBQUssRUFBcUIsR0FBNUI7SUFDM0IsTUFBTSxDQUFDQyxtQkFBbUJDLHFCQUFxQixHQUFHQyxPQUFNQyxRQUFRLENBQUM7SUFDakUsTUFBTSxFQUNKQyxVQUFVLEVBQ1ZDLGdCQUFnQixFQUNoQkMsdUJBQXVCLEVBQ3ZCQyxvQkFBb0IsRUFDckIsR0FBR0wsT0FBTU0sT0FBTztnQ0FBQztZQUNoQixNQUFNQyxpQkFBaUJWLE1BQU1XLE1BQU0sQ0FBQ0MsTUFBTTt1REFBQyxDQUFDQyxRQUMxQ1osb0JBQW9CLE9BQU8sQ0FBQ1ksTUFBTUMsT0FBTzs7WUFHM0MsTUFBTUMsNEJBQTRCTCxlQUFlTSxTQUFTO2tFQUN4RCxDQUFDQyxRQUNDLENBQUNBLE1BQU1ILE9BQU8sSUFDZEksUUFBUUQsTUFBTUUsaUJBQWlCLEtBQy9CRCxRQUFRRCxNQUFNRyxrQkFBa0I7O2dCQUt0QlY7WUFGZCxPQUFPO2dCQUNMRixzQkFBc0JFLGVBQWVXLE1BQU07Z0JBQzNDaEIsWUFBWUssNkNBQUFBLGNBQWMsQ0FBQ0ssMEJBQUFBLEtBQTBCLE9BQXpDTCw0Q0FBNkM7Z0JBQ3pESixrQkFDRVMsNEJBQTRCLElBQ3hCLEVBQUUsR0FDRkwsZUFBZVksS0FBSyxDQUFDLEdBQUdQO2dCQUM5QlIseUJBQXlCRyxlQUFlWSxLQUFLLENBQzNDUCw0QkFBNEI7WUFFaEM7UUFDRjsrQkFBRztRQUFDZixNQUFNVyxNQUFNO1FBQUVWO0tBQWtCO0lBRXBDLHFCQUNFLHNCQUFDRSxPQUFNb0IsUUFBUTs7WUFDWmxCLGFBQUFBLFdBQUFBLEdBQ0M7O2tDQUNFLHFCQUFDbUIsTUFBQUE7a0NBQUc7O29CQUNIbEIsaUJBQWlCbUIsR0FBRyxDQUFDLENBQUNaLE9BQU9hLGFBQUFBLFdBQUFBLEdBQzVCLHFCQUFDQyxnQkFBQUEsY0FBYzs0QkFFYmQsT0FBT0E7MkJBREQsd0JBQXFCYTtrQ0FJL0IscUJBQUNFLFdBQUFBLFNBQVM7d0JBQ1JDLFlBQVl4QixXQUFXZSxrQkFBa0I7d0JBQ3pDVSxXQUFXekIsV0FBV2MsaUJBQWlCOzs7aUJBR3pDWTtZQUVIeEIsd0JBQXdCa0IsR0FBRyxDQUFDLENBQUNaLE9BQU9hLGFBQUFBLFdBQUFBLEdBQ25DLHFCQUFDQyxnQkFBQUEsY0FBYztvQkFFYmQsT0FBT0E7bUJBREQsd0JBQXFCYTtZQUs3QiwwR0FBMEc7WUFDMUdsQix5QkFBeUJSLE1BQU1XLE1BQU0sQ0FBQ1UsTUFBTSxJQUM1QyxDQUFDcEIsb0JBQW9CLHFCQUNuQixxQkFBQytCLFVBQUFBO2dCQUNDQyw2QkFBMkJoQztnQkFDM0JpQyxTQUFTLElBQU1oQyxxQkFBcUIsQ0FBQ0Q7MEJBRW5DLEtBQUVBLENBQUFBLG9CQUFvQixTQUFTLE9BQUssR0FBRTs7OztBQU1wRDtBQUVPLE1BQU1GLFNBQUFBLENBQUFBLEdBQVNvQyxjQUFBQSxJQUFBQSxFQUFHIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29udGFpbmVyXFxSdW50aW1lRXJyb3JcXGluZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvZGVGcmFtZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQ29kZUZyYW1lJ1xuaW1wb3J0IHR5cGUgeyBSZWFkeVJ1bnRpbWVFcnJvciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LWVycm9yLWJ5LXR5cGUnXG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcbmltcG9ydCB7IENhbGxTdGFja0ZyYW1lIH0gZnJvbSAnLi9DYWxsU3RhY2tGcmFtZSdcblxuZXhwb3J0IHR5cGUgUnVudGltZUVycm9yUHJvcHMgPSB7IGVycm9yOiBSZWFkeVJ1bnRpbWVFcnJvciB9XG5cbmV4cG9ydCBmdW5jdGlvbiBSdW50aW1lRXJyb3IoeyBlcnJvciB9OiBSdW50aW1lRXJyb3JQcm9wcykge1xuICBjb25zdCBbaXNJZ25vcmVkRXhwYW5kZWQsIHNldElzSWdub3JlZEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCB7XG4gICAgZmlyc3RGcmFtZSxcbiAgICBhbGxMZWFkaW5nRnJhbWVzLFxuICAgIHRyYWlsaW5nQ2FsbFN0YWNrRnJhbWVzLFxuICAgIGRpc3BsYXllZEZyYW1lc0NvdW50LFxuICB9ID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZmlsdGVyZWRGcmFtZXMgPSBlcnJvci5mcmFtZXMuZmlsdGVyKChmcmFtZSkgPT5cbiAgICAgIGlzSWdub3JlZEV4cGFuZGVkID8gdHJ1ZSA6ICFmcmFtZS5pZ25vcmVkXG4gICAgKVxuXG4gICAgY29uc3QgZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCA9IGZpbHRlcmVkRnJhbWVzLmZpbmRJbmRleChcbiAgICAgIChlbnRyeSkgPT5cbiAgICAgICAgIWVudHJ5Lmlnbm9yZWQgJiZcbiAgICAgICAgQm9vbGVhbihlbnRyeS5vcmlnaW5hbENvZGVGcmFtZSkgJiZcbiAgICAgICAgQm9vbGVhbihlbnRyeS5vcmlnaW5hbFN0YWNrRnJhbWUpXG4gICAgKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXllZEZyYW1lc0NvdW50OiBmaWx0ZXJlZEZyYW1lcy5sZW5ndGgsXG4gICAgICBmaXJzdEZyYW1lOiBmaWx0ZXJlZEZyYW1lc1tmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4XSA/PyBudWxsLFxuICAgICAgYWxsTGVhZGluZ0ZyYW1lczpcbiAgICAgICAgZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCA8IDBcbiAgICAgICAgICA/IFtdXG4gICAgICAgICAgOiBmaWx0ZXJlZEZyYW1lcy5zbGljZSgwLCBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4KSxcbiAgICAgIHRyYWlsaW5nQ2FsbFN0YWNrRnJhbWVzOiBmaWx0ZXJlZEZyYW1lcy5zbGljZShcbiAgICAgICAgZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCArIDFcbiAgICAgICksXG4gICAgfVxuICB9LCBbZXJyb3IuZnJhbWVzLCBpc0lnbm9yZWRFeHBhbmRlZF0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7Zmlyc3RGcmFtZSA/IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8aDI+U291cmNlPC9oMj5cbiAgICAgICAgICB7YWxsTGVhZGluZ0ZyYW1lcy5tYXAoKGZyYW1lLCBmcmFtZUluZGV4KSA9PiAoXG4gICAgICAgICAgICA8Q2FsbFN0YWNrRnJhbWVcbiAgICAgICAgICAgICAga2V5PXtgY2FsbC1zdGFjay1sZWFkaW5nLSR7ZnJhbWVJbmRleH1gfVxuICAgICAgICAgICAgICBmcmFtZT17ZnJhbWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICAgIDxDb2RlRnJhbWVcbiAgICAgICAgICAgIHN0YWNrRnJhbWU9e2ZpcnN0RnJhbWUub3JpZ2luYWxTdGFja0ZyYW1lIX1cbiAgICAgICAgICAgIGNvZGVGcmFtZT17Zmlyc3RGcmFtZS5vcmlnaW5hbENvZGVGcmFtZSF9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApIDogdW5kZWZpbmVkfVxuXG4gICAgICB7dHJhaWxpbmdDYWxsU3RhY2tGcmFtZXMubWFwKChmcmFtZSwgZnJhbWVJbmRleCkgPT4gKFxuICAgICAgICA8Q2FsbFN0YWNrRnJhbWVcbiAgICAgICAgICBrZXk9e2BjYWxsLXN0YWNrLWxlYWRpbmctJHtmcmFtZUluZGV4fWB9XG4gICAgICAgICAgZnJhbWU9e2ZyYW1lfVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgICB7XG4gICAgICAgIC8vIGlmIHRoZSBkZWZhdWx0IGRpc3BsYXllZCBpZ25vcmVkIGZyYW1lcyBjb3VudCBpcyBlcXVhbCBlcXVhbCB0byB0aGUgdG90YWwgZnJhbWVzIGNvdW50LCBoaWRlIHRoZSBidXR0b25cbiAgICAgICAgZGlzcGxheWVkRnJhbWVzQ291bnQgPT09IGVycm9yLmZyYW1lcy5sZW5ndGggJiZcbiAgICAgICAgIWlzSWdub3JlZEV4cGFuZGVkID8gbnVsbCA6IChcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBkYXRhLWV4cGFuZC1pZ25vcmUtYnV0dG9uPXtpc0lnbm9yZWRFeHBhbmRlZH1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzSWdub3JlZEV4cGFuZGVkKCFpc0lnbm9yZWRFeHBhbmRlZCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2Ake2lzSWdub3JlZEV4cGFuZGVkID8gJ0hpZGUnIDogJ1Nob3cnfSBpZ25vcmVkIGZyYW1lc2B9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBzdHlsZXMgPSBjc3NgXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXTpub3QoOmxhc3QtY2hpbGQpLFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICB9XG5cbiAgW2RhdGEtZXhwYW5kLWlnbm9yZS1idXR0b25dOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4gIFtkYXRhLWV4cGFuZC1pZ25vcmUtYnV0dG9uXSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udCk7XG4gICAgbWFyZ2luOiB2YXIoLS1zaXplLWdhcCkgMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uXSxcbiAgW2RhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b25dID4gc3ZnIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuICAubmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbi0taW5pdGlhbDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC5uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cbiAgLm5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b24tLWVycm9yLFxuICAubmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbi0tZXJyb3I6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gIH1cbiAgLm5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b24tLXN1Y2Nlc3Mge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWdyZWVuKTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGgzLFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXSA+IGgzIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udCk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gaDNbZGF0YS1uZXh0anMtZnJhbWUtZXhwYW5kZWQ9J2ZhbHNlJ10ge1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYsXG4gIFtkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVdID4gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2ID4gc3ZnLFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXSA+IFtyb2xlPSdsaW5rJ10gPiBzdmcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXApO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXSxcbiAgW2RhdGEtbmV4dGpzLWNvbXBvbmVudC1zdGFjay1mcmFtZV0gPiBbcm9sZT0nbGluayddIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV06aG92ZXIsXG4gIFtkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVdID4gW3JvbGU9J2xpbmsnXTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdID4gc3ZnLFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXSA+IFtyb2xlPSdsaW5rJ10gPiBzdmcge1xuICAgIGRpc3BsYXk6IHVuc2V0O1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWV3b3JrLWljb25dIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNpemUtZ2FwKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZXdvcmstaWNvbj0nbmV4dCddID4gbWFzayB7XG4gICAgbWFzay10eXBlOiBhbHBoYTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZXdvcmstaWNvbj0ncmVhY3QnXSB7XG4gICAgY29sb3I6IHJnYigyMCwgMTU4LCAyMDIpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzXVtvcGVuXVxuICAgIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNoZXZyb24taWNvbl0ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29sbGFwc2VkLWNhbGwtc3RhY2stZGV0YWlsc10gc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwKTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzXSBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWNvbGxhcHNlZC1jYWxsLXN0YWNrLWRldGFpbHNdIGgzIHtcbiAgICBjb2xvcjogIzY2NjtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29sbGFwc2VkLWNhbGwtc3RhY2stZGV0YWlsc10gW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWxdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtY29sbGFwc2VdIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICB0b3A6IDEwcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nYWRkJ10ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWdyZWVuKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0ncmVtb3ZlJ10ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLXRhZy1lcnJvcl0ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbiAgLyogaGlkZSBidXQgdGV4dCBhcmUgc3RpbGwgYWNjZXNzaWJsZSBpbiBET00gKi9cbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWhpbnRdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAwO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS10YWctYWRqYWNlbnQ9J2ZhbHNlJ10ge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTEpO1xuICB9XG5gXG4iXSwibmFtZXMiOlsiUnVudGltZUVycm9yIiwic3R5bGVzIiwiZXJyb3IiLCJpc0lnbm9yZWRFeHBhbmRlZCIsInNldElzSWdub3JlZEV4cGFuZGVkIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsImZpcnN0RnJhbWUiLCJhbGxMZWFkaW5nRnJhbWVzIiwidHJhaWxpbmdDYWxsU3RhY2tGcmFtZXMiLCJkaXNwbGF5ZWRGcmFtZXNDb3VudCIsInVzZU1lbW8iLCJmaWx0ZXJlZEZyYW1lcyIsImZyYW1lcyIsImZpbHRlciIsImZyYW1lIiwiaWdub3JlZCIsImZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXgiLCJmaW5kSW5kZXgiLCJlbnRyeSIsIkJvb2xlYW4iLCJvcmlnaW5hbENvZGVGcmFtZSIsIm9yaWdpbmFsU3RhY2tGcmFtZSIsImxlbmd0aCIsInNsaWNlIiwiRnJhZ21lbnQiLCJoMiIsIm1hcCIsImZyYW1lSW5kZXgiLCJDYWxsU3RhY2tGcmFtZSIsIkNvZGVGcmFtZSIsInN0YWNrRnJhbWUiLCJjb2RlRnJhbWUiLCJ1bmRlZmluZWQiLCJidXR0b24iLCJkYXRhLWV4cGFuZC1pZ25vcmUtYnV0dG9uIiwib25DbGljayIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/StaticIndicator.js":
|
||
/*!**********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/StaticIndicator.js ***!
|
||
\**********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"StaticIndicator\", ({\n enumerable: true,\n get: function() {\n return StaticIndicator;\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 _Toast = __webpack_require__(/*! ../components/Toast */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js\");\nconst _LightningBolt = __webpack_require__(/*! ../icons/LightningBolt */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/LightningBolt.js\");\nconst _CloseIcon = __webpack_require__(/*! ../icons/CloseIcon */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\nfunction StaticIndicator(param) {\n let { dispatcher } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Toast.Toast, {\n role: \"status\",\n className: \"nextjs-static-indicator-toast-wrapper\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n className: \"nextjs-static-indicator-toast-icon\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_LightningBolt.LightningBolt, {})\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n className: \"nextjs-static-indicator-toast-text\",\n children: [\n \"Static route\",\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n onClick: ()=>{\n var _localStorage;\n // When dismissed, we hide the indicator for 1 hour. Store the\n // timestamp for when to show it again.\n const oneHourAway = Date.now() + 1 * 60 * 60 * 1000;\n (_localStorage = localStorage) == null ? void 0 : _localStorage.setItem('__NEXT_DISMISS_PRERENDER_INDICATOR', oneHourAway.toString());\n dispatcher == null ? void 0 : dispatcher.onStaticIndicator(false);\n },\n className: \"nextjs-toast-hide-button\",\n \"aria-label\": \"Hide static indicator\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_CloseIcon.CloseIcon, {})\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=StaticIndicator.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9TdGF0aWNJbmRpY2F0b3IuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFNZ0JBOzs7ZUFBQUE7Ozs7OzZFQU5PO21DQUNEOzJDQUNRO3VDQUNKO0FBR25CLFNBQVNBLGdCQUFnQixLQUEyQztJQUEzQyxNQUFFQyxVQUFVLEVBQStCLEdBQTNDO0lBQzlCLHFCQUNFLHNCQUFDQyxPQUFBQSxLQUFLO1FBQUNDLE1BQUs7UUFBU0MsV0FBWTs7MEJBQy9CLHFCQUFDQyxPQUFBQTtnQkFBSUQsV0FBVTswQkFDYixtQ0FBQ0UsZUFBQUEsYUFBYTs7MEJBRWhCLHNCQUFDRCxPQUFBQTtnQkFBSUQsV0FBVTs7b0JBQXFDO2tDQUVsRCxxQkFBQ0csVUFBQUE7d0JBQ0NDLFNBQVM7Z0NBS1BDOzRCQUpBLDhEQUE4RDs0QkFDOUQsdUNBQXVDOzRCQUN2QyxNQUFNQyxjQUFjQyxLQUFLQyxHQUFHLEtBQUssSUFBSSxLQUFLLEtBQUs7NkJBRS9DSCxnQkFBQUEsWUFBQUEsS0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsY0FBY0ksT0FBTyxDQUNuQixzQ0FDQUgsWUFBWUksUUFBUTs0QkFHdEJiLGNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFdBQVljLGlCQUFpQixDQUFDO3dCQUNoQzt3QkFDQVgsV0FBVTt3QkFDVlksY0FBVztrQ0FFWCxtQ0FBQ0MsV0FBQUEsU0FBUzs7Ozs7O0FBS3BCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcY29udGFpbmVyXFxTdGF0aWNJbmRpY2F0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL1RvYXN0J1xuaW1wb3J0IHsgTGlnaHRuaW5nQm9sdCB9IGZyb20gJy4uL2ljb25zL0xpZ2h0bmluZ0JvbHQnXG5pbXBvcnQgeyBDbG9zZUljb24gfSBmcm9tICcuLi9pY29ucy9DbG9zZUljb24nXG5pbXBvcnQgdHlwZSB7IERpc3BhdGNoZXIgfSBmcm9tICcuLi8uLi9hcHAvaG90LXJlbG9hZGVyLWNsaWVudCdcblxuZXhwb3J0IGZ1bmN0aW9uIFN0YXRpY0luZGljYXRvcih7IGRpc3BhdGNoZXIgfTogeyBkaXNwYXRjaGVyPzogRGlzcGF0Y2hlciB9KSB7XG4gIHJldHVybiAoXG4gICAgPFRvYXN0IHJvbGU9XCJzdGF0dXNcIiBjbGFzc05hbWU9e2BuZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC13cmFwcGVyYH0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5leHRqcy1zdGF0aWMtaW5kaWNhdG9yLXRvYXN0LWljb25cIj5cbiAgICAgICAgPExpZ2h0bmluZ0JvbHQgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJuZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC10ZXh0XCI+XG4gICAgICAgIFN0YXRpYyByb3V0ZVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgLy8gV2hlbiBkaXNtaXNzZWQsIHdlIGhpZGUgdGhlIGluZGljYXRvciBmb3IgMSBob3VyLiBTdG9yZSB0aGVcbiAgICAgICAgICAgIC8vIHRpbWVzdGFtcCBmb3Igd2hlbiB0byBzaG93IGl0IGFnYWluLlxuICAgICAgICAgICAgY29uc3Qgb25lSG91ckF3YXkgPSBEYXRlLm5vdygpICsgMSAqIDYwICogNjAgKiAxMDAwXG5cbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZT8uc2V0SXRlbShcbiAgICAgICAgICAgICAgJ19fTkVYVF9ESVNNSVNTX1BSRVJFTkRFUl9JTkRJQ0FUT1InLFxuICAgICAgICAgICAgICBvbmVIb3VyQXdheS50b1N0cmluZygpXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGRpc3BhdGNoZXI/Lm9uU3RhdGljSW5kaWNhdG9yKGZhbHNlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiSGlkZSBzdGF0aWMgaW5kaWNhdG9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxDbG9zZUljb24gLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L1RvYXN0PlxuICApXG59XG4iXSwibmFtZXMiOlsiU3RhdGljSW5kaWNhdG9yIiwiZGlzcGF0Y2hlciIsIlRvYXN0Iiwicm9sZSIsImNsYXNzTmFtZSIsImRpdiIsIkxpZ2h0bmluZ0JvbHQiLCJidXR0b24iLCJvbkNsaWNrIiwibG9jYWxTdG9yYWdlIiwib25lSG91ckF3YXkiLCJEYXRlIiwibm93Iiwic2V0SXRlbSIsInRvU3RyaW5nIiwib25TdGF0aWNJbmRpY2F0b3IiLCJhcmlhLWxhYmVsIiwiQ2xvc2VJY29uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/StaticIndicator.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/root-layout-missing-tags-error.js":
|
||
/*!*************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/root-layout-missing-tags-error.js ***!
|
||
\*************************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RootLayoutMissingTagsError\", ({\n enumerable: true,\n get: function() {\n return RootLayoutMissingTagsError;\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 _Dialog = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\nconst _Overlay = __webpack_require__(/*! ../components/Overlay */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\nconst _hotlinkedtext = __webpack_require__(/*! ../components/hot-linked-text */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst RootLayoutMissingTagsError = function RootLayoutMissingTagsError(param) {\n let { missingTags, versionInfo } = param;\n const noop = _react.useCallback({\n \"RootLayoutMissingTagsError.useCallback[noop]\": ()=>{}\n }[\"RootLayoutMissingTagsError.useCallback[noop]\"], []);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Overlay.Overlay, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_errors_label\",\n \"aria-describedby\": \"nextjs__container_errors_desc\",\n onClose: noop,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.DialogContent, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogHeader, {\n className: \"nextjs-container-errors-header\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_VersionStalenessInfo.VersionStalenessInfo, {\n versionInfo: versionInfo\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n id: \"nextjs__container_errors_label\",\n className: \"nextjs__container_errors_label\",\n children: \"Missing required html tags\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors_desc\",\n className: \"nextjs__container_errors_desc\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: \"The following tags are missing in the Root Layout: \" + missingTags.map((tagName)=>\"<\" + tagName + \">\").join(', ') + \".\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\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=root-layout-missing-tags-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9yb290LWxheW91dC1taXNzaW5nLXRhZ3MtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4REFZYUE7OztlQUFBQTs7Ozs7NkVBWlU7b0NBRTZCO3FDQUM1QjtrREFDYTsyQ0FDUDtBQU92QixNQUFNQSw2QkFDWCxTQUFTQSwyQkFBMkIsS0FBNEI7SUFBNUIsTUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUUsR0FBNUI7SUFDbEMsTUFBTUMsT0FBT0MsT0FBTUMsV0FBVzt3REFBQyxLQUFPO3VEQUFHLEVBQUU7SUFDM0MscUJBQ0UscUJBQUNDLFNBQUFBLE9BQU87a0JBQ04sbUNBQUNDLFFBQUFBLE1BQU07WUFDTEMsTUFBSztZQUNMQyxtQkFBZ0I7WUFDaEJDLG9CQUFpQjtZQUNqQkMsU0FBU1I7c0JBRVQsbUNBQUNTLFFBQUFBLGFBQWE7MEJBQ1osb0NBQUNDLFFBQUFBLFlBQVk7b0JBQUNDLFdBQVU7O3NDQUN0QixxQkFBQ0Msc0JBQUFBLG9CQUFvQjs0QkFBQ2IsYUFBYUE7O3NDQUNuQyxxQkFBQ2MsTUFBQUE7NEJBQ0NDLElBQUc7NEJBQ0hILFdBQVU7c0NBQ1g7O3NDQUdELHFCQUFDSSxLQUFBQTs0QkFDQ0QsSUFBRzs0QkFDSEgsV0FBVTtzQ0FFVixtQ0FBQ0ssZUFBQUEsYUFBYTtnQ0FDWkMsTUFBTyx3REFBcURuQixZQUN6RG9CLEdBQUcsQ0FBQyxDQUFDQyxVQUFhLE1BQUdBLFVBQVEsS0FDN0JDLElBQUksQ0FDSCxRQUNBOzs7Ozs7OztBQVFwQiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGNvbnRhaW5lclxccm9vdC1sYXlvdXQtbWlzc2luZy10YWdzLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgVmVyc2lvbkluZm8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L3BhcnNlLXZlcnNpb24taW5mbydcbmltcG9ydCB7IERpYWxvZywgRGlhbG9nQ29udGVudCwgRGlhbG9nSGVhZGVyIH0gZnJvbSAnLi4vY29tcG9uZW50cy9EaWFsb2cnXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vY29tcG9uZW50cy9PdmVybGF5J1xuaW1wb3J0IHsgVmVyc2lvblN0YWxlbmVzc0luZm8gfSBmcm9tICcuLi9jb21wb25lbnRzL1ZlcnNpb25TdGFsZW5lc3NJbmZvJ1xuaW1wb3J0IHsgSG90bGlua2VkVGV4dCB9IGZyb20gJy4uL2NvbXBvbmVudHMvaG90LWxpbmtlZC10ZXh0J1xuXG50eXBlIFJvb3RMYXlvdXRNaXNzaW5nVGFnc0Vycm9yUHJvcHMgPSB7XG4gIG1pc3NpbmdUYWdzOiBzdHJpbmdbXVxuICB2ZXJzaW9uSW5mbz86IFZlcnNpb25JbmZvXG59XG5cbmV4cG9ydCBjb25zdCBSb290TGF5b3V0TWlzc2luZ1RhZ3NFcnJvcjogUmVhY3QuRkM8Um9vdExheW91dE1pc3NpbmdUYWdzRXJyb3JQcm9wcz4gPVxuICBmdW5jdGlvbiBSb290TGF5b3V0TWlzc2luZ1RhZ3NFcnJvcih7IG1pc3NpbmdUYWdzLCB2ZXJzaW9uSW5mbyB9KSB7XG4gICAgY29uc3Qgbm9vcCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHt9LCBbXSlcbiAgICByZXR1cm4gKFxuICAgICAgPE92ZXJsYXk+XG4gICAgICAgIDxEaWFsb2dcbiAgICAgICAgICB0eXBlPVwiZXJyb3JcIlxuICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCJcbiAgICAgICAgICBvbkNsb3NlPXtub29wfVxuICAgICAgICA+XG4gICAgICAgICAgPERpYWxvZ0NvbnRlbnQ+XG4gICAgICAgICAgICA8RGlhbG9nSGVhZGVyIGNsYXNzTmFtZT1cIm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8VmVyc2lvblN0YWxlbmVzc0luZm8gdmVyc2lvbkluZm89e3ZlcnNpb25JbmZvfSAvPlxuICAgICAgICAgICAgICA8aDFcbiAgICAgICAgICAgICAgICBpZD1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIE1pc3NpbmcgcmVxdWlyZWQgaHRtbCB0YWdzXG4gICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEhvdGxpbmtlZFRleHRcbiAgICAgICAgICAgICAgICAgIHRleHQ9e2BUaGUgZm9sbG93aW5nIHRhZ3MgYXJlIG1pc3NpbmcgaW4gdGhlIFJvb3QgTGF5b3V0OiAke21pc3NpbmdUYWdzXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKHRhZ05hbWUpID0+IGA8JHt0YWdOYW1lfT5gKVxuICAgICAgICAgICAgICAgICAgICAuam9pbihcbiAgICAgICAgICAgICAgICAgICAgICAnLCAnXG4gICAgICAgICAgICAgICAgICAgICl9LlxcblJlYWQgbW9yZSBhdCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLXJvb3QtbGF5b3V0LXRhZ3NgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvRGlhbG9nSGVhZGVyPlxuICAgICAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgICAgPC9EaWFsb2c+XG4gICAgICA8L092ZXJsYXk+XG4gICAgKVxuICB9XG4iXSwibmFtZXMiOlsiUm9vdExheW91dE1pc3NpbmdUYWdzRXJyb3IiLCJtaXNzaW5nVGFncyIsInZlcnNpb25JbmZvIiwibm9vcCIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJPdmVybGF5IiwiRGlhbG9nIiwidHlwZSIsImFyaWEtbGFiZWxsZWRieSIsImFyaWEtZGVzY3JpYmVkYnkiLCJvbkNsb3NlIiwiRGlhbG9nQ29udGVudCIsIkRpYWxvZ0hlYWRlciIsImNsYXNzTmFtZSIsIlZlcnNpb25TdGFsZW5lc3NJbmZvIiwiaDEiLCJpZCIsInAiLCJIb3RsaW5rZWRUZXh0IiwidGV4dCIsIm1hcCIsInRhZ05hbWUiLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/root-layout-missing-tags-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js":
|
||
/*!*********************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js ***!
|
||
\*********************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"attachHydrationErrorState\", ({\n enumerable: true,\n get: function() {\n return attachHydrationErrorState;\n }\n}));\nconst _ishydrationerror = __webpack_require__(/*! ../../../is-hydration-error */ \"(ssr)/./node_modules/next/dist/client/components/is-hydration-error.js\");\nconst _hydrationerrorinfo = __webpack_require__(/*! ./hydration-error-info */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\");\nfunction attachHydrationErrorState(error) {\n if ((0, _ishydrationerror.isHydrationError)(error) && !error.message.includes('https://nextjs.org/docs/messages/react-hydration-error')) {\n const reactHydrationDiffSegments = (0, _hydrationerrorinfo.getReactHydrationDiffSegments)(error.message);\n let parsedHydrationErrorState = {};\n if (reactHydrationDiffSegments) {\n parsedHydrationErrorState = {\n ...error.details,\n ..._hydrationerrorinfo.hydrationErrorState,\n warning: _hydrationerrorinfo.hydrationErrorState.warning || [\n (0, _ishydrationerror.getDefaultHydrationErrorMessage)()\n ],\n notes: reactHydrationDiffSegments[0],\n reactOutputComponentDiff: reactHydrationDiffSegments[1]\n };\n } else {\n // If there's any extra information in the error message to display,\n // append it to the error message details property\n if (_hydrationerrorinfo.hydrationErrorState.warning) {\n // The patched console.error found hydration errors logged by React\n // Append the logged warning to the error message\n parsedHydrationErrorState = {\n ...error.details,\n // It contains the warning, component stack, server and client tag names\n ..._hydrationerrorinfo.hydrationErrorState\n };\n }\n }\n ;\n error.details = parsedHydrationErrorState;\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=attach-hydration-error-state.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvYXR0YWNoLWh5ZHJhdGlvbi1lcnJvci1zdGF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZEQVNnQkE7OztlQUFBQTs7OzhDQU5UO2dEQUlBO0FBRUEsU0FBU0EsMEJBQTBCQyxLQUFZO0lBQ3BELElBQ0VDLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJELFVBQ2pCLENBQUNBLE1BQU1FLE9BQU8sQ0FBQ0MsUUFBUSxDQUNyQiwyREFFRjtRQUNBLE1BQU1DLDZCQUE2QkMsQ0FBQUEsR0FBQUEsb0JBQUFBLDZCQUFBQSxFQUNqQ0wsTUFBTUUsT0FBTztRQUVmLElBQUlJLDRCQUF3RCxDQUFDO1FBQzdELElBQUlGLDRCQUE0QjtZQUM5QkUsNEJBQTRCO2dCQUMxQixHQUFJTixNQUFjTyxPQUFPO2dCQUN6QixHQUFHQyxvQkFBQUEsbUJBQW1CO2dCQUN0QkMsU0FBU0Qsb0JBQUFBLG1CQUFtQixDQUFDQyxPQUFPLElBQUk7b0JBQ3RDQyxDQUFBQSxHQUFBQSxrQkFBQUEsK0JBQUFBO2lCQUNEO2dCQUNEQyxPQUFPUCwwQkFBMEIsQ0FBQyxFQUFFO2dCQUNwQ1EsMEJBQTBCUiwwQkFBMEIsQ0FBQyxFQUFFO1lBQ3pEO1FBQ0YsT0FBTztZQUNMLG9FQUFvRTtZQUNwRSxrREFBa0Q7WUFDbEQsSUFBSUksb0JBQUFBLG1CQUFtQixDQUFDQyxPQUFPLEVBQUU7Z0JBQy9CLG1FQUFtRTtnQkFDbkUsaURBQWlEO2dCQUNqREgsNEJBQTRCO29CQUMxQixHQUFJTixNQUFjTyxPQUFPO29CQUN6Qix3RUFBd0U7b0JBQ3hFLEdBQUdDLG9CQUFBQSxtQkFBbUI7Z0JBQ3hCO1lBQ0Y7UUFDRjs7UUFDRVIsTUFBY08sT0FBTyxHQUFHRDtJQUM1QjtBQUNGIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaGVscGVyc1xcYXR0YWNoLWh5ZHJhdGlvbi1lcnJvci1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc0h5ZHJhdGlvbkVycm9yLFxuICBnZXREZWZhdWx0SHlkcmF0aW9uRXJyb3JNZXNzYWdlLFxufSBmcm9tICcuLi8uLi8uLi9pcy1oeWRyYXRpb24tZXJyb3InXG5pbXBvcnQge1xuICBoeWRyYXRpb25FcnJvclN0YXRlLFxuICBnZXRSZWFjdEh5ZHJhdGlvbkRpZmZTZWdtZW50cyxcbn0gZnJvbSAnLi9oeWRyYXRpb24tZXJyb3ItaW5mbydcblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaEh5ZHJhdGlvbkVycm9yU3RhdGUoZXJyb3I6IEVycm9yKSB7XG4gIGlmIChcbiAgICBpc0h5ZHJhdGlvbkVycm9yKGVycm9yKSAmJlxuICAgICFlcnJvci5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ2h0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWh5ZHJhdGlvbi1lcnJvcidcbiAgICApXG4gICkge1xuICAgIGNvbnN0IHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzID0gZ2V0UmVhY3RIeWRyYXRpb25EaWZmU2VnbWVudHMoXG4gICAgICBlcnJvci5tZXNzYWdlXG4gICAgKVxuICAgIGxldCBwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlOiB0eXBlb2YgaHlkcmF0aW9uRXJyb3JTdGF0ZSA9IHt9XG4gICAgaWYgKHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzKSB7XG4gICAgICBwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlID0ge1xuICAgICAgICAuLi4oZXJyb3IgYXMgYW55KS5kZXRhaWxzLFxuICAgICAgICAuLi5oeWRyYXRpb25FcnJvclN0YXRlLFxuICAgICAgICB3YXJuaW5nOiBoeWRyYXRpb25FcnJvclN0YXRlLndhcm5pbmcgfHwgW1xuICAgICAgICAgIGdldERlZmF1bHRIeWRyYXRpb25FcnJvck1lc3NhZ2UoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbm90ZXM6IHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzWzBdLFxuICAgICAgICByZWFjdE91dHB1dENvbXBvbmVudERpZmY6IHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzWzFdLFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGFueSBleHRyYSBpbmZvcm1hdGlvbiBpbiB0aGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5LFxuICAgICAgLy8gYXBwZW5kIGl0IHRvIHRoZSBlcnJvciBtZXNzYWdlIGRldGFpbHMgcHJvcGVydHlcbiAgICAgIGlmIChoeWRyYXRpb25FcnJvclN0YXRlLndhcm5pbmcpIHtcbiAgICAgICAgLy8gVGhlIHBhdGNoZWQgY29uc29sZS5lcnJvciBmb3VuZCBoeWRyYXRpb24gZXJyb3JzIGxvZ2dlZCBieSBSZWFjdFxuICAgICAgICAvLyBBcHBlbmQgdGhlIGxvZ2dlZCB3YXJuaW5nIHRvIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgICAgIHBhcnNlZEh5ZHJhdGlvbkVycm9yU3RhdGUgPSB7XG4gICAgICAgICAgLi4uKGVycm9yIGFzIGFueSkuZGV0YWlscyxcbiAgICAgICAgICAvLyBJdCBjb250YWlucyB0aGUgd2FybmluZywgY29tcG9uZW50IHN0YWNrLCBzZXJ2ZXIgYW5kIGNsaWVudCB0YWcgbmFtZXNcbiAgICAgICAgICAuLi5oeWRyYXRpb25FcnJvclN0YXRlLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIDsoZXJyb3IgYXMgYW55KS5kZXRhaWxzID0gcGFyc2VkSHlkcmF0aW9uRXJyb3JTdGF0ZVxuICB9XG59XG4iXSwibmFtZXMiOlsiYXR0YWNoSHlkcmF0aW9uRXJyb3JTdGF0ZSIsImVycm9yIiwiaXNIeWRyYXRpb25FcnJvciIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsInJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzIiwiZ2V0UmVhY3RIeWRyYXRpb25EaWZmU2VnbWVudHMiLCJwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlIiwiZGV0YWlscyIsImh5ZHJhdGlvbkVycm9yU3RhdGUiLCJ3YXJuaW5nIiwiZ2V0RGVmYXVsdEh5ZHJhdGlvbkVycm9yTWVzc2FnZSIsIm5vdGVzIiwicmVhY3RPdXRwdXRDb21wb25lbnREaWZmIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js":
|
||
/*!******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/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 createUnhandledError: function() {\n return createUnhandledError;\n },\n getUnhandledErrorType: function() {\n return getUnhandledErrorType;\n },\n isUnhandledConsoleOrRejection: function() {\n return isUnhandledConsoleOrRejection;\n }\n});\nconst digestSym = Symbol.for('next.console.error.digest');\nconst consoleTypeSym = Symbol.for('next.console.error.type');\nfunction createUnhandledError(message) {\n const error = typeof message === 'string' ? new Error(message) : message;\n error[digestSym] = 'NEXT_UNHANDLED_ERROR';\n error[consoleTypeSym] = typeof message === 'string' ? 'string' : 'error';\n return error;\n}\nconst isUnhandledConsoleOrRejection = (error)=>{\n return error && error[digestSym] === 'NEXT_UNHANDLED_ERROR';\n};\nconst getUnhandledErrorType = (error)=>{\n return error[consoleTypeSym];\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-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvY29uc29sZS1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBQSx5SkFBeUo7Ozs7Ozs7Ozs7Ozs7SUFXeklBLG9CQUFvQjtlQUFwQkE7O0lBZUhDLHFCQUFxQjtlQUFyQkE7O0lBTkFDLDZCQUE2QjtlQUE3QkE7OztBQW5CYixNQUFNQyxZQUFZQyxPQUFPQyxHQUFHLENBQUM7QUFDN0IsTUFBTUMsaUJBQWlCRixPQUFPQyxHQUFHLENBQUM7QUFTM0IsU0FBU0wscUJBQXFCTyxPQUF1QjtJQUMxRCxNQUFNQyxRQUNKLE9BQU9ELFlBQVksV0FBVyxJQUFJRSxNQUFNRixXQUFXQTtJQUVyREMsS0FBSyxDQUFDTCxVQUFVLEdBQUc7SUFDbkJLLEtBQUssQ0FBQ0YsZUFBZSxHQUFHLE9BQU9DLFlBQVksV0FBVyxXQUFXO0lBQ2pFLE9BQU9DO0FBQ1Q7QUFFTyxNQUFNTixnQ0FBZ0MsQ0FDM0NNO0lBRUEsT0FBT0EsU0FBU0EsS0FBSyxDQUFDTCxVQUFVLEtBQUs7QUFDdkM7QUFFTyxNQUFNRix3QkFBd0IsQ0FBQ087SUFDcEMsT0FBT0EsS0FBSyxDQUFDRixlQUFlO0FBQzlCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaGVscGVyc1xcY29uc29sZS1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBkaXN0aW5ndWlzaCBmcm9tIFJlYWN0IGVycm9yLmRpZ2VzdCwgd2UgdXNlIGEgZGlmZmVyZW50IHN5bWJvbCBoZXJlIHRvIGRldGVybWluZSBpZiB0aGUgZXJyb3IgaXMgZnJvbSBjb25zb2xlLmVycm9yIG9yIHVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbi5cbmNvbnN0IGRpZ2VzdFN5bSA9IFN5bWJvbC5mb3IoJ25leHQuY29uc29sZS5lcnJvci5kaWdlc3QnKVxuY29uc3QgY29uc29sZVR5cGVTeW0gPSBTeW1ib2wuZm9yKCduZXh0LmNvbnNvbGUuZXJyb3IudHlwZScpXG5cbi8vIFJlcHJlc2VudCBub24gRXJyb3Igc2hhcGUgdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9ucyBvciBjb25zb2xlLmVycm9yIGVycm9ycy5cbi8vIFRob3NlIGVycm9ycyB3aWxsIGJlIGNhcHR1cmVkIGFuZCBkaXNwbGF5ZWQgaW4gRXJyb3IgT3ZlcmxheS5cbnR5cGUgVW5oYW5kbGVkRXJyb3IgPSBFcnJvciAmIHtcbiAgW2RpZ2VzdFN5bV06ICdORVhUX1VOSEFORExFRF9FUlJPUidcbiAgW2NvbnNvbGVUeXBlU3ltXTogJ3N0cmluZycgfCAnZXJyb3InXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVbmhhbmRsZWRFcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvcik6IFVuaGFuZGxlZEVycm9yIHtcbiAgY29uc3QgZXJyb3IgPSAoXG4gICAgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnID8gbmV3IEVycm9yKG1lc3NhZ2UpIDogbWVzc2FnZVxuICApIGFzIFVuaGFuZGxlZEVycm9yXG4gIGVycm9yW2RpZ2VzdFN5bV0gPSAnTkVYVF9VTkhBTkRMRURfRVJST1InXG4gIGVycm9yW2NvbnNvbGVUeXBlU3ltXSA9IHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2Vycm9yJ1xuICByZXR1cm4gZXJyb3Jcbn1cblxuZXhwb3J0IGNvbnN0IGlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uID0gKFxuICBlcnJvcjogYW55XG4pOiBlcnJvciBpcyBVbmhhbmRsZWRFcnJvciA9PiB7XG4gIHJldHVybiBlcnJvciAmJiBlcnJvcltkaWdlc3RTeW1dID09PSAnTkVYVF9VTkhBTkRMRURfRVJST1InXG59XG5cbmV4cG9ydCBjb25zdCBnZXRVbmhhbmRsZWRFcnJvclR5cGUgPSAoZXJyb3I6IFVuaGFuZGxlZEVycm9yKSA9PiB7XG4gIHJldHVybiBlcnJvcltjb25zb2xlVHlwZVN5bV1cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVVbmhhbmRsZWRFcnJvciIsImdldFVuaGFuZGxlZEVycm9yVHlwZSIsImlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uIiwiZGlnZXN0U3ltIiwiU3ltYm9sIiwiZm9yIiwiY29uc29sZVR5cGVTeW0iLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/enqueue-client-error.js":
|
||
/*!*************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/enqueue-client-error.js ***!
|
||
\*************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"enqueueConsecutiveDedupedError\", ({\n enumerable: true,\n get: function() {\n return enqueueConsecutiveDedupedError;\n }\n}));\nconst _ishydrationerror = __webpack_require__(/*! ../../../is-hydration-error */ \"(ssr)/./node_modules/next/dist/client/components/is-hydration-error.js\");\nfunction enqueueConsecutiveDedupedError(queue, error) {\n const isFront = (0, _ishydrationerror.isHydrationError)(error);\n const previousError = isFront ? queue[0] : queue[queue.length - 1];\n // Compare the error stack to dedupe the consecutive errors\n if (previousError && previousError.stack === error.stack) {\n return;\n }\n // TODO: change all to push error into errorQueue,\n // currently there's a async api error is always erroring while hydration error showing up.\n // Move hydration error to the front of the queue to unblock.\n if (isFront) {\n queue.unshift(error);\n } else {\n queue.push(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', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=enqueue-client-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZW5xdWV1ZS1jbGllbnQtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztrRUFHZ0JBOzs7ZUFBQUE7Ozs4Q0FIaUI7QUFHMUIsU0FBU0EsK0JBQ2RDLEtBQW1CLEVBQ25CQyxLQUFZO0lBRVosTUFBTUMsVUFBVUMsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQkY7SUFDakMsTUFBTUcsZ0JBQWdCRixVQUFVRixLQUFLLENBQUMsRUFBRSxHQUFHQSxLQUFLLENBQUNBLE1BQU1LLE1BQU0sR0FBRyxFQUFFO0lBQ2xFLDJEQUEyRDtJQUMzRCxJQUFJRCxpQkFBaUJBLGNBQWNFLEtBQUssS0FBS0wsTUFBTUssS0FBSyxFQUFFO1FBQ3hEO0lBQ0Y7SUFDQSxrREFBa0Q7SUFDbEQsMkZBQTJGO0lBQzNGLDZEQUE2RDtJQUM3RCxJQUFJSixTQUFTO1FBQ1hGLE1BQU1PLE9BQU8sQ0FBQ047SUFDaEIsT0FBTztRQUNMRCxNQUFNUSxJQUFJLENBQUNQO0lBQ2I7QUFDRiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGhlbHBlcnNcXGVucXVldWUtY2xpZW50LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSHlkcmF0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9pcy1oeWRyYXRpb24tZXJyb3InXG5cbi8vIERlZHVwZSB0aGUgdHdvIGNvbnNlY3V0aXZlIGVycm9yczogSWYgdGhlIHByZXZpb3VzIG9uZSBpcyBzYW1lIGFzIGN1cnJlbnQgb25lLCBpZ25vcmUgdGhlIGN1cnJlbnQgb25lLlxuZXhwb3J0IGZ1bmN0aW9uIGVucXVldWVDb25zZWN1dGl2ZURlZHVwZWRFcnJvcihcbiAgcXVldWU6IEFycmF5PEVycm9yPixcbiAgZXJyb3I6IEVycm9yXG4pIHtcbiAgY29uc3QgaXNGcm9udCA9IGlzSHlkcmF0aW9uRXJyb3IoZXJyb3IpXG4gIGNvbnN0IHByZXZpb3VzRXJyb3IgPSBpc0Zyb250ID8gcXVldWVbMF0gOiBxdWV1ZVtxdWV1ZS5sZW5ndGggLSAxXVxuICAvLyBDb21wYXJlIHRoZSBlcnJvciBzdGFjayB0byBkZWR1cGUgdGhlIGNvbnNlY3V0aXZlIGVycm9yc1xuICBpZiAocHJldmlvdXNFcnJvciAmJiBwcmV2aW91c0Vycm9yLnN0YWNrID09PSBlcnJvci5zdGFjaykge1xuICAgIHJldHVyblxuICB9XG4gIC8vIFRPRE86IGNoYW5nZSBhbGwgdG8gcHVzaCBlcnJvciBpbnRvIGVycm9yUXVldWUsXG4gIC8vIGN1cnJlbnRseSB0aGVyZSdzIGEgYXN5bmMgYXBpIGVycm9yIGlzIGFsd2F5cyBlcnJvcmluZyB3aGlsZSBoeWRyYXRpb24gZXJyb3Igc2hvd2luZyB1cC5cbiAgLy8gTW92ZSBoeWRyYXRpb24gZXJyb3IgdG8gdGhlIGZyb250IG9mIHRoZSBxdWV1ZSB0byB1bmJsb2NrLlxuICBpZiAoaXNGcm9udCkge1xuICAgIHF1ZXVlLnVuc2hpZnQoZXJyb3IpXG4gIH0gZWxzZSB7XG4gICAgcXVldWUucHVzaChlcnJvcilcbiAgfVxufVxuIl0sIm5hbWVzIjpbImVucXVldWVDb25zZWN1dGl2ZURlZHVwZWRFcnJvciIsInF1ZXVlIiwiZXJyb3IiLCJpc0Zyb250IiwiaXNIeWRyYXRpb25FcnJvciIsInByZXZpb3VzRXJyb3IiLCJsZW5ndGgiLCJzdGFjayIsInVuc2hpZnQiLCJwdXNoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/enqueue-client-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js":
|
||
/*!****************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js ***!
|
||
\****************************************************************************************************************/
|
||
/***/ ((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}\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=format-webpack-messages.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkE7Ozs7MkNBaUtBOzs7ZUFBd0JBOzs7O2dGQWhLRjtBQUN0QixxS0FBcUs7QUFDckssMERBQTBEO0FBRTFELE1BQU1DLDJCQUEyQjtBQUVqQyxNQUFNQyxvQ0FDSjtBQUVGLFNBQVNDLHFCQUFxQkMsT0FBZTtJQUMzQyxPQUFPQyxDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxTQUFTRSxRQUFRLENBQUNMO0FBQ3JDO0FBRUEsSUFBSU0sc0JBQXNCO0FBRTFCLG9DQUFvQztBQUNwQyxTQUFTQyxjQUNQSixPQUFZLEVBQ1pLLE9BQWlCLEVBQ2pCQyxlQUF5QjtJQUV6Qiw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPTixZQUFZLFlBQVlBLFFBQVFBLE9BQU8sRUFBRTtRQUNsRCxNQUFNTyxzQkFDSlAsUUFBUVEsV0FBVyxJQUNuQlIsUUFBUVEsV0FBVyxDQUFDQyxNQUFNLENBQ3hCLENBQUNDLFFBQ0MsQ0FBQyxnRUFBZ0VDLElBQUksQ0FDbkVELE1BQU1FLFVBQVU7UUFJeEIsSUFBSUMsT0FBT2IsUUFBUUEsT0FBTztRQUMxQixNQUFNYyxzQkFBc0JELEtBQUtFLE9BQU8sQ0FBQ2pCO1FBQ3pDLElBQUlnQix1QkFBdUIsR0FBRztZQUM1QkQsT0FBT0EsS0FBS0csS0FBSyxDQUFDLEdBQUdGO1FBQ3ZCO1FBRUFkLFVBQ0dBLENBQUFBLFFBQVFpQixVQUFVLEdBQUdoQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRaUIsVUFBVSxJQUFJLE9BQU8sR0FBQyxJQUM3RGpCLFFBQVFrQixJQUFJLEdBQUdqQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRa0IsSUFB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LDRCQUE0QjtRQUNqRUwsZ0JBQWdCUSxPQUFPLENBQUNELEtBQUssQ0FBQyxFQUFFO0lBQ2xDO0lBRUEsTUFBTUUsU0FBUztRQUNiLEdBQUdWLElBQUk7UUFDUEUsUUFBUUQ7UUFDUkksVUFBVUQ7SUFDWjtJQUNBLElBQUksQ0FBQ3ZDLFdBQVc2QyxPQUFPUixNQUFNLENBQUNTLElBQUksQ0FBQ3BELHVCQUF1QjtRQUN4RCxrREFBa0Q7UUFDbERtRCxPQUFPUixNQUFNLEdBQUdRLE9BQU9SLE1BQU0sQ0FBQ2pDLE1BQU0sQ0FBQ1Y7UUFDckNtRCxPQUFPTCxRQUFRLEdBQUcsRUFBRTtJQUN0QjtJQUNBLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxoZWxwZXJzXFxmb3JtYXQtd2VicGFjay1tZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgMjAxNS1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG5vZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5pbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG50byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG5jb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5PVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuU09GVFdBUkUuXG4qL1xuaW1wb3J0IHN0cmlwQW5zaSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaSdcbi8vIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9ibG9iLzdiMWEzMmJlNmVjOWY5OWE2YzlhM2M2NjgxM2YzYWMwOWM0NzM2YjkvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL2Zvcm1hdFdlYnBhY2tNZXNzYWdlcy5qc1xuLy8gSXQncyBiZWVuIGVkaXRlZCB0byByZW1vdmUgY2hhbGsgYW5kIENSQS1zcGVjaWZpYyBsb2dpY1xuXG5jb25zdCBmcmllbmRseVN5bnRheEVycm9yTGFiZWwgPSAnU3ludGF4IGVycm9yOidcblxuY29uc3QgV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTID1cbiAgJ1xcblxcbkJSRUFLSU5HIENIQU5HRTogd2VicGFjayA8IDUgdXNlZCB0byBpbmNsdWRlIHBvbHlmaWxscyBmb3Igbm9kZS5qcyBjb3JlIG1vZHVsZXMgYnkgZGVmYXVsdC4nXG5cbmZ1bmN0aW9uIGlzTGlrZWx5QVN5bnRheEVycm9yKG1lc3NhZ2U6IHN0cmluZykge1xuICByZXR1cm4gc3RyaXBBbnNpKG1lc3NhZ2UpLmluY2x1ZGVzKGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbClcbn1cblxubGV0IGhhZE1pc3NpbmdTYXNzRXJyb3IgPSBmYWxzZVxuXG4vLyBDbGVhbnMgdXAgd2VicGFjayBlcnJvciBtZXNzYWdlcy5cbmZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2UoXG4gIG1lc3NhZ2U6IGFueSxcbiAgdmVyYm9zZT86IGJvb2xlYW4sXG4gIGltcG9ydFRyYWNlTm90ZT86IGJvb2xlYW5cbikge1xuICAvLyBUT0RPOiBSZXBsYWNlIHRoaXMgb25jZSB3ZWJwYWNrIDUgaXMgc3RhYmxlXG4gIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcgJiYgbWVzc2FnZS5tZXNzYWdlKSB7XG4gICAgY29uc3QgZmlsdGVyZWRNb2R1bGVUcmFjZSA9XG4gICAgICBtZXNzYWdlLm1vZHVsZVRyYWNlICYmXG4gICAgICBtZXNzYWdlLm1vZHVsZVRyYWNlLmZpbHRlcihcbiAgICAgICAgKHRyYWNlOiBhbnkpID0+XG4gICAgICAgICAgIS9uZXh0LShtaWRkbGV3YXJlfGNsaWVudC1wYWdlc3xyb3V0ZXxlZGdlLWZ1bmN0aW9uKS1sb2FkZXJcXC5qcy8udGVzdChcbiAgICAgICAgICAgIHRyYWNlLm9yaWdpbk5hbWVcbiAgICAgICAgICApXG4gICAgICApXG5cbiAgICBsZXQgYm9keSA9IG1lc3NhZ2UubWVzc2FnZVxuICAgIGNvbnN0IGJyZWFraW5nQ2hhbmdlSW5kZXggPSBib2R5LmluZGV4T2YoV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTKVxuICAgIGlmIChicmVha2luZ0NoYW5nZUluZGV4ID49IDApIHtcbiAgICAgIGJvZHkgPSBib2R5LnNsaWNlKDAsIGJyZWFraW5nQ2hhbmdlSW5kZXgpXG4gICAgfVxuXG4gICAgbWVzc2FnZSA9XG4gICAgICAobWVzc2FnZS5tb2R1bGVOYW1lID8gc3RyaXBBbnNpKG1lc3NhZ2UubW9kdWxlTmFtZSkgKyAnXFxuJyA6ICcnKSArXG4gICAgICAobWVzc2FnZS5maWxlID8gc3RyaXBBbnNpKG1lc3NhZ2UuZmlsZSkgKyAnXFxuJyA6ICcnKSArXG4gICAgICBib2R5ICtcbiAgICAgIChtZXNzYWdlLmRldGFpbHMgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5kZXRhaWxzIDogJycpICtcbiAgICAgIChmaWx0ZXJlZE1vZHVsZVRyYWNlICYmIGZpbHRlcmVkTW9kdWxlVHJhY2UubGVuZ3RoXG4gICAgICAgID8gKGltcG9ydFRyYWNlTm90ZSB8fCAnXFxuXFxuSW1wb3J0IHRyYWNlIGZvciByZXF1ZXN0ZWQgbW9kdWxlOicpICtcbiAgICAgICAgICBmaWx0ZXJlZE1vZHVsZVRyYWNlXG4gICAgICAgICAgICAubWFwKCh0cmFjZTogYW55KSA9PiBgXFxuJHt0cmFjZS5tb2R1bGVOYW1lfWApXG4gICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgOiAnJykgK1xuICAgICAgKG1lc3NhZ2Uuc3RhY2sgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5zdGFjayA6ICcnKVxuICB9XG4gIGxldCBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpXG5cbiAgLy8gU3RyaXAgV2VicGFjay1hZGRlZCBoZWFkZXJzIG9mZiBlcnJvcnMvd2FybmluZ3NcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2svd2VicGFjay9ibG9iL21hc3Rlci9saWIvTW9kdWxlRXJyb3IuanNcbiAgbGluZXMgPSBsaW5lcy5maWx0ZXIoKGxpbmU6IHN0cmluZykgPT4gIS9Nb2R1bGUgW0EteiBdK1xcKGZyb20vLnRlc3QobGluZSkpXG5cbiAgLy8gVHJhbnNmb3JtIHBhcnNpbmcgZXJyb3IgaW50byBzeW50YXggZXJyb3JcbiAgLy8gVE9ETzogbW92ZSB0aGlzIHRvIG91ciBFU0xpbnQgZm9ybWF0dGVyP1xuICBsaW5lcyA9IGxpbmVzLm1hcCgobGluZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyc2luZ0Vycm9yID0gL0xpbmUgKFxcZCspOig/OihcXGQrKTopP1xccypQYXJzaW5nIGVycm9yOiAoLispJC8uZXhlYyhcbiAgICAgIGxpbmVcbiAgICApXG4gICAgaWYgKCFwYXJzaW5nRXJyb3IpIHtcbiAgICAgIHJldHVybiBsaW5lXG4gICAgfVxuICAgIGNvbnN0IFssIGVycm9yTGluZSwgZXJyb3JDb2x1bW4sIGVycm9yTWVzc2FnZV0gPSBwYXJzaW5nRXJyb3JcbiAgICByZXR1cm4gYCR7ZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsfSAke2Vycm9yTWVzc2FnZX0gKCR7ZXJyb3JMaW5lfToke2Vycm9yQ29sdW1ufSlgXG4gIH0pXG5cbiAgbWVzc2FnZSA9IGxpbmVzLmpvaW4oJ1xcbicpXG4gIC8vIFNtb29zaCBzeW50YXggZXJyb3JzIChjb21tb25seSBmb3VuZCBpbiBDU1MpXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL1N5bnRheEVycm9yXFxzK1xcKChcXGQrKTooXFxkKylcXClcXHMqKC4rPylcXG4vZyxcbiAgICBgJHtmcmllbmRseVN5bnRheEVycm9yTGFiZWx9ICQzICgkMTokMilcXG5gXG4gIClcbiAgLy8gQ2xlYW4gdXAgZXhwb3J0IGVycm9yc1xuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJyguKz8pJyB3YXMgbm90IGZvdW5kIGluICcoLis/KScuKiQvZ20sXG4gICAgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQyJy5gXG4gIClcbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAvXi4qZXhwb3J0ICdkZWZhdWx0JyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQyJyBkb2VzIG5vdCBjb250YWluIGEgZGVmYXVsdCBleHBvcnQgKGltcG9ydGVkIGFzICckMScpLmBcbiAgKVxuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJyguKz8pJyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQxJyBpcyBub3QgZXhwb3J0ZWQgZnJvbSAnJDMnIChpbXBvcnRlZCBhcyAnJDInKS5gXG4gIClcbiAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKVxuXG4gIC8vIFJlbW92ZSBsZWFkaW5nIG5ld2xpbmVcbiAgaWYgKGxpbmVzLmxlbmd0aCA+IDIgJiYgbGluZXNbMV0udHJpbSgpID09PSAnJykge1xuICAgIGxpbmVzLnNwbGljZSgxLCAxKVxuICB9XG5cbiAgLy8gQ2xlYW5zIHVwIHZlcmJvc2UgXCJtb2R1bGUgbm90IGZvdW5kXCIgbWVzc2FnZXMgZm9yIGZpbGVzIGFuZCBwYWNrYWdlcy5cbiAgaWYgKGxpbmVzWzFdICYmIGxpbmVzWzFdLnN0YXJ0c1dpdGgoJ01vZHVsZSBub3QgZm91bmQ6ICcpKSB7XG4gICAgbGluZXMgPSBbXG4gICAgICBsaW5lc1swXSxcbiAgICAgIGxpbmVzWzFdXG4gICAgICAgIC5yZXBsYWNlKCdFcnJvcjogJywgJycpXG4gICAgICAgIC5yZXBsYWNlKCdNb2R1bGUgbm90IGZvdW5kOiBDYW5ub3QgZmluZCBmaWxlOicsICdDYW5ub3QgZmluZCBmaWxlOicpLFxuICAgICAgLi4ubGluZXMuc2xpY2UoMiksXG4gICAgXVxuICB9XG5cbiAgLy8gQWRkIGhlbHBmdWwgbWVzc2FnZSBmb3IgdXNlcnMgdHJ5aW5nIHRvIHVzZSBTYXNzIGZvciB0aGUgZmlyc3QgdGltZVxuICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0ubWF0Y2goL0Nhbm5vdCBmaW5kIG1vZHVsZS4rc2Fzcy8pKSB7XG4gICAgLy8gLi9maWxlLm1vZHVsZS5zY3NzICg8PGxvYWRlciBpbmZvPj4pID0+IC4vZmlsZS5tb2R1bGUuc2Nzc1xuICAgIGNvbnN0IGZpcnN0TGluZSA9IGxpbmVzWzBdLnNwbGl0KCchJylcbiAgICBsaW5lc1swXSA9IGZpcnN0TGluZVtmaXJzdExpbmUubGVuZ3RoIC0gMV1cblxuICAgIGxpbmVzWzFdID1cbiAgICAgIFwiVG8gdXNlIE5leHQuanMnIGJ1aWx0LWluIFNhc3Mgc3VwcG9ydCwgeW91IGZpcnN0IG5lZWQgdG8gaW5zdGFsbCBgc2Fzc2AuXFxuXCJcbiAgICBsaW5lc1sxXSArPSAnUnVuIGBucG0gaSBzYXNzYCBvciBgeWFybiBhZGQgc2Fzc2AgaW5zaWRlIHlvdXIgd29ya3NwYWNlLlxcbidcbiAgICBsaW5lc1sxXSArPSAnXFxuTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW5zdGFsbC1zYXNzJ1xuXG4gICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2VcbiAgICBsaW5lcyA9IGxpbmVzLnNsaWNlKDAsIDIpXG4gICAgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IHRydWVcbiAgfSBlbHNlIGlmIChcbiAgICBoYWRNaXNzaW5nU2Fzc0Vycm9yICYmXG4gICAgbWVzc2FnZS5tYXRjaCgvKHNhc3MtbG9hZGVyfHJlc29sdmUtdXJsLWxvYWRlcjogQ1NTIGVycm9yKS8pXG4gICkge1xuICAgIC8vIGRpc3Bvc2Ugb2YgdW5oZWxwZnVsIHN0YWNrIHRyYWNlIGZvbGxvd2luZyBtaXNzaW5nIHNhc3MgbW9kdWxlXG4gICAgbGluZXMgPSBbXVxuICB9XG5cbiAgaWYgKCF2ZXJib3NlKSB7XG4gICAgbWVzc2FnZSA9IGxpbmVzLmpvaW4oJ1xcbicpXG4gICAgLy8gSW50ZXJuYWwgc3RhY2tzIGFyZSBnZW5lcmFsbHkgdXNlbGVzcyBzbyB3ZSBzdHJpcCB0aGVtLi4uIHdpdGggdGhlXG4gICAgLy8gZXhjZXB0aW9uIG9mIHN0YWNrcyBjb250YWluaW5nIGB3ZWJwYWNrOmAgYmVjYXVzZSB0aGV5J3JlIG5vcm1hbGx5XG4gICAgLy8gZnJvbSB1c2VyIGNvZGUgZ2VuZXJhdGVkIGJ5IFdlYnBhY2suIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL3B1bGwvMTA1MFxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAvXlxccyphdFxccygoPyF3ZWJwYWNrOikuKSo6XFxkKzpcXGQrW1xccyldKihcXG58JCkvZ20sXG4gICAgICAnJ1xuICAgICkgLy8gYXQgLi4uIC4uLjp4OnlcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eXFxzKmF0XFxzPGFub255bW91cz4oXFxufCQpL2dtLCAnJykgLy8gYXQgPGFub255bW91cz5cblxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAvRmlsZSB3YXMgcHJvY2Vzc2VkIHdpdGggdGhlc2UgbG9hZGVyczpcXG4oLitbXFxcXC9dKG5leHRbXFxcXC9dZGlzdFtcXFxcL10uK3xAbmV4dFtcXFxcL11yZWFjdC1yZWZyZXNoLXV0aWxzW1xcXFwvXWxvYWRlcilcXC5qc1xcbikqWW91IG1heSBuZWVkIGFuIGFkZGl0aW9uYWwgbG9hZGVyIHRvIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZXNlIGxvYWRlcnMuXFxuL2csXG4gICAgICAnJ1xuICAgIClcblxuICAgIGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJylcbiAgfVxuXG4gIC8vIFJlbW92ZSBkdXBsaWNhdGVkIG5ld2xpbmVzXG4gIGxpbmVzID0gKGxpbmVzIGFzIHN0cmluZ1tdKS5maWx0ZXIoXG4gICAgKGxpbmUsIGluZGV4LCBhcnIpID0+XG4gICAgICBpbmRleCA9PT0gMCB8fCBsaW5lLnRyaW0oKSAhPT0gJycgfHwgbGluZS50cmltKCkgIT09IGFycltpbmRleCAtIDFdLnRyaW0oKVxuICApXG5cbiAgLy8gUmVhc3NlbWJsZSB0aGUgbWVzc2FnZVxuICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgcmV0dXJuIG1lc3NhZ2UudHJpbSgpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvcm1hdFdlYnBhY2tNZXNzYWdlcyhqc29uOiBhbnksIHZlcmJvc2U/OiBib29sZWFuKSB7XG4gIGNvbnN0IGZvcm1hdHRlZEVycm9ycyA9IGpzb24uZXJyb3JzLm1hcCgobWVzc2FnZTogYW55KSA9PiB7XG4gICAgY29uc3QgaXNVbmtub3duTmV4dEZvbnRFcnJvciA9IG1lc3NhZ2UubWVzc2FnZS5pbmNsdWRlcyhcbiAgICAgICdBbiBlcnJvciBvY2N1cnJlZCBpbiBgbmV4dC9mb250YC4nXG4gICAgKVxuICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIGlzVW5rbm93bk5leHRGb250RXJyb3IgfHwgdmVyYm9zZSlcbiAgfSlcbiAgY29uc3QgZm9ybWF0dGVkV2FybmluZ3MgPSBqc29uLndhcm5pbmdzLm1hcCgobWVzc2FnZTogYW55KSA9PiB7XG4gICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgdmVyYm9zZSlcbiAgfSlcblxuICAvLyBSZW9yZGVyIGVycm9ycyB0byBwdXQgdGhlIG1vc3QgcmVsZXZhbnQgb25lcyBmaXJzdC5cbiAgbGV0IHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yID0gLTFcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZEVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGVycm9yID0gZm9ybWF0dGVkRXJyb3JzW2ldXG4gICAgaWYgKGVycm9yLmluY2x1ZGVzKCdSZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvcicpKSB7XG4gICAgICByZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciA9IGlcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSB0aGUgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgdG8gdGhlIHRvcCBpZiBpdCBleGlzdHNcbiAgaWYgKHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yICE9PSAtMSkge1xuICAgIGNvbnN0IGVycm9yID0gZm9ybWF0dGVkRXJyb3JzLnNwbGljZShyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciwgMSlcbiAgICBmb3JtYXR0ZWRFcnJvcnMudW5zaGlmdChlcnJvclswXSlcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAuLi5qc29uLFxuICAgIGVycm9yczogZm9ybWF0dGVkRXJyb3JzLFxuICAgIHdhcm5pbmdzOiBmb3JtYXR0ZWRXYXJuaW5ncyxcbiAgfVxuICBpZiAoIXZlcmJvc2UgJiYgcmVzdWx0LmVycm9ycy5zb21lKGlzTGlrZWx5QVN5bnRheEVycm9yKSkge1xuICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgc3ludGF4IGVycm9ycywgc2hvdyBqdXN0IHRoZW0uXG4gICAgcmVzdWx0LmVycm9ycyA9IHJlc3VsdC5lcnJvcnMuZmlsdGVyKGlzTGlrZWx5QVN5bnRheEVycm9yKVxuICAgIHJlc3VsdC53YXJuaW5ncyA9IFtdXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbImZvcm1hdFdlYnBhY2tNZXNzYWdlcyIsImZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCIsIldFQlBBQ0tfQlJFQUtJTkdfQ0hBTkdFX1BPTFlGSUxMUyIsImlzTGlrZWx5QVN5bnRheEVycm9yIiwibWVzc2FnZSIsInN0cmlwQW5zaSIsImluY2x1ZGVzIiwiaGFkTWlzc2luZ1Nhc3NFcnJvciIsImZvcm1hdE1lc3NhZ2UiLCJ2ZXJib3NlIiwiaW1wb3J0VHJhY2VOb3RlIiwiZmlsdGVyZWRNb2R1bGVUcmFjZSIsIm1vZHVsZVRyYWNlIiwiZmlsdGVyIiwidHJhY2UiLCJ0ZXN0Iiwib3JpZ2luTmFtZSIsImJvZHkiLCJicmVha2luZ0NoYW5nZUluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwibW9kdWxlTmFtZSIsImZpbGUiLCJkZXRhaWxzIiwibGVuZ3RoIiwibWFwIiwiam9pbiIsInN0YWNrIiwibGluZXMiLCJzcGxpdCIsImxpbmUiLCJwYXJzaW5nRXJyb3IiLCJleGVjIiwiZXJyb3JMaW5lIiwiZXJyb3JDb2x1bW4iLCJlcnJvck1lc3NhZ2UiLCJyZXBsYWNlIiwidHJpbSIsInNwbGljZSIsInN0YXJ0c1dpdGgiLCJtYXRjaCIsImZpcnN0TGluZSIsImluZGV4IiwiYXJyIiwianNvbiIsImZvcm1hdHRlZEVycm9ycyIsImVycm9ycyIsImlzVW5rbm93bk5leHRGb250RXJyb3IiLCJmb3JtYXR0ZWRXYXJuaW5ncyIsIndhcm5pbmdzIiwicmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IiLCJpIiwiZXJyb3IiLCJ1bnNoaWZ0IiwicmVzdWx0Iiwic29tZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js":
|
||
/*!**********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js ***!
|
||
\**********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getErrorByType\", ({\n enumerable: true,\n get: function() {\n return getErrorByType;\n }\n}));\nconst _shared = __webpack_require__(/*! ../../shared */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _stackframe = __webpack_require__(/*! ./stack-frame */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\nconst _errorsource = __webpack_require__(/*! ../../../../../shared/lib/error-source */ \"(ssr)/./node_modules/next/dist/shared/lib/error-source.js\");\nasync function getErrorByType(ev, isAppDir) {\n const { id, event } = ev;\n switch(event.type){\n case _shared.ACTION_UNHANDLED_ERROR:\n case _shared.ACTION_UNHANDLED_REJECTION:\n {\n const readyRuntimeError = {\n id,\n runtime: true,\n error: event.reason,\n frames: await (0, _stackframe.getOriginalStackFrames)(event.frames, (0, _errorsource.getErrorSource)(event.reason), isAppDir, event.reason.toString())\n };\n if (event.type === _shared.ACTION_UNHANDLED_ERROR) {\n readyRuntimeError.componentStackFrames = event.componentStackFrames;\n }\n return readyRuntimeError;\n }\n default:\n {\n break;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = event;\n throw new Error('type system invariant violation');\n}\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-error-by-type.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZ2V0LWVycm9yLWJ5LXR5cGUuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFrQnNCQTs7O2VBQUFBOzs7b0NBZmY7d0NBRWdDO3lDQUdSO0FBVXhCLGVBQWVBLGVBQ3BCQyxFQUF1QixFQUN2QkMsUUFBaUI7SUFFakIsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLEtBQUssRUFBRSxHQUFHSDtJQUN0QixPQUFRRyxNQUFNQyxJQUFJO1FBQ2hCLEtBQUtDLFFBQUFBLHNCQUFzQjtRQUMzQixLQUFLQyxRQUFBQSwwQkFBMEI7WUFBRTtnQkFDL0IsTUFBTUMsb0JBQXVDO29CQUMzQ0w7b0JBQ0FNLFNBQVM7b0JBQ1RDLE9BQU9OLE1BQU1PLE1BQU07b0JBQ25CQyxRQUFRLE1BQU1DLENBQUFBLEdBQUFBLFlBQUFBLHNCQUFBQSxFQUNaVCxNQUFNUSxNQUFNLEVBQ1pFLENBQUFBLEdBQUFBLGFBQUFBLGNBQUFBLEVBQWVWLE1BQU1PLE1BQU0sR0FDM0JULFVBQ0FFLE1BQU1PLE1BQU0sQ0FBQ0ksUUFBUTtnQkFFekI7Z0JBQ0EsSUFBSVgsTUFBTUMsSUFBSSxLQUFLQyxRQUFBQSxzQkFBc0IsRUFBRTtvQkFDekNFLGtCQUFrQlEsb0JBQW9CLEdBQUdaLE1BQU1ZLG9CQUFvQjtnQkFDckU7Z0JBQ0EsT0FBT1I7WUFDVDtRQUNBO1lBQVM7Z0JBQ1A7WUFDRjtJQUNGO0lBQ0EsNkRBQTZEO0lBQzdELE1BQU1TLElBQVdiO0lBQ2pCLE1BQU0sSUFBSWMsTUFBTTtBQUNsQiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGhlbHBlcnNcXGdldC1lcnJvci1ieS10eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFDVElPTl9VTkhBTkRMRURfRVJST1IsXG4gIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnXG5pbXBvcnQgdHlwZSB7IFN1cHBvcnRlZEVycm9yRXZlbnQgfSBmcm9tICcuLi9jb250YWluZXIvRXJyb3JzJ1xuaW1wb3J0IHsgZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyB9IGZyb20gJy4vc3RhY2stZnJhbWUnXG5pbXBvcnQgdHlwZSB7IE9yaWdpbmFsU3RhY2tGcmFtZSB9IGZyb20gJy4vc3RhY2stZnJhbWUnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFN0YWNrRnJhbWUgfSBmcm9tICcuL3BhcnNlLWNvbXBvbmVudC1zdGFjaydcbmltcG9ydCB7IGdldEVycm9yU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9lcnJvci1zb3VyY2UnXG5cbmV4cG9ydCB0eXBlIFJlYWR5UnVudGltZUVycm9yID0ge1xuICBpZDogbnVtYmVyXG4gIHJ1bnRpbWU6IHRydWVcbiAgZXJyb3I6IEVycm9yXG4gIGZyYW1lczogT3JpZ2luYWxTdGFja0ZyYW1lW11cbiAgY29tcG9uZW50U3RhY2tGcmFtZXM/OiBDb21wb25lbnRTdGFja0ZyYW1lW11cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVycm9yQnlUeXBlKFxuICBldjogU3VwcG9ydGVkRXJyb3JFdmVudCxcbiAgaXNBcHBEaXI6IGJvb2xlYW5cbik6IFByb21pc2U8UmVhZHlSdW50aW1lRXJyb3I+IHtcbiAgY29uc3QgeyBpZCwgZXZlbnQgfSA9IGV2XG4gIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgIGNhc2UgQUNUSU9OX1VOSEFORExFRF9FUlJPUjpcbiAgICBjYXNlIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OOiB7XG4gICAgICBjb25zdCByZWFkeVJ1bnRpbWVFcnJvcjogUmVhZHlSdW50aW1lRXJyb3IgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBydW50aW1lOiB0cnVlLFxuICAgICAgICBlcnJvcjogZXZlbnQucmVhc29uLFxuICAgICAgICBmcmFtZXM6IGF3YWl0IGdldE9yaWdpbmFsU3RhY2tGcmFtZXMoXG4gICAgICAgICAgZXZlbnQuZnJhbWVzLFxuICAgICAgICAgIGdldEVycm9yU291cmNlKGV2ZW50LnJlYXNvbiksXG4gICAgICAgICAgaXNBcHBEaXIsXG4gICAgICAgICAgZXZlbnQucmVhc29uLnRvU3RyaW5nKClcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC50eXBlID09PSBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SKSB7XG4gICAgICAgIHJlYWR5UnVudGltZUVycm9yLmNvbXBvbmVudFN0YWNrRnJhbWVzID0gZXZlbnQuY29tcG9uZW50U3RhY2tGcmFtZXNcbiAgICAgIH1cbiAgICAgIHJldHVybiByZWFkeVJ1bnRpbWVFcnJvclxuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGNvbnN0IF86IG5ldmVyID0gZXZlbnRcbiAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHN5c3RlbSBpbnZhcmlhbnQgdmlvbGF0aW9uJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRFcnJvckJ5VHlwZSIsImV2IiwiaXNBcHBEaXIiLCJpZCIsImV2ZW50IiwidHlwZSIsIkFDVElPTl9VTkhBTkRMRURfRVJST1IiLCJBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiIsInJlYWR5UnVudGltZUVycm9yIiwicnVudGltZSIsImVycm9yIiwicmVhc29uIiwiZnJhbWVzIiwiZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyIsImdldEVycm9yU291cmNlIiwidG9TdHJpbmciLCJjb21wb25lbnRTdGFja0ZyYW1lcyIsIl8iLCJFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js":
|
||
/*!*******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZ2V0LXNvY2tldC11cmwuanMiLCJtYXBwaW5ncyI6Ijs7OztnREFhZ0JBOzs7ZUFBQUE7OzttREFic0I7QUFFdEMsU0FBU0Msa0JBQWtCQyxXQUFtQjtJQUM1QyxJQUFJQyxXQUFXQyxPQUFPQyxRQUFRLENBQUNGLFFBQVE7SUFFdkMsSUFBSTtRQUNGLHVCQUF1QjtRQUN2QkEsV0FBVyxJQUFJRyxJQUFJSixhQUFhQyxRQUFRO0lBQzFDLEVBQUUsVUFBTSxDQUFDO0lBRVQsT0FBT0EsYUFBYSxVQUFVLFFBQVE7QUFDeEM7QUFFTyxTQUFTSCxhQUFhRSxXQUErQjtJQUMxRCxNQUFNSyxTQUFTQyxDQUFBQSxHQUFBQSx1QkFBQUEscUJBQUFBLEVBQXNCTjtJQUNyQyxNQUFNQyxXQUFXRixrQkFBa0JDLGVBQWU7SUFFbEQsSUFBSUksSUFBSUcsUUFBUSxDQUFDRixTQUFTO1FBQ3hCLCtEQUErRDtRQUMvRCxxQ0FBcUM7UUFDckMsT0FBT0EsT0FBT0csT0FBTyxDQUFDLFNBQVM7SUFDakM7SUFFQSxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFLEdBQUdSLE9BQU9DLFFBQVE7SUFDMUMsT0FBVUYsV0FBUyxPQUFJUSxXQUFXQyxDQUFBQSxPQUFRLE1BQUdBLE9BQVMsR0FBQyxHQUFJTDtBQUM3RCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGhlbHBlcnNcXGdldC1zb2NrZXQtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZWRBc3NldFByZWZpeCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvbm9ybWFsaXplZC1hc3NldC1wcmVmaXgnXG5cbmZ1bmN0aW9uIGdldFNvY2tldFByb3RvY29sKGFzc2V0UHJlZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgcHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2xcblxuICB0cnkge1xuICAgIC8vIGFzc2V0UHJlZml4IGlzIGEgdXJsXG4gICAgcHJvdG9jb2wgPSBuZXcgVVJMKGFzc2V0UHJlZml4KS5wcm90b2NvbFxuICB9IGNhdGNoIHt9XG5cbiAgcmV0dXJuIHByb3RvY29sID09PSAnaHR0cDonID8gJ3dzOicgOiAnd3NzOidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvY2tldFVybChhc3NldFByZWZpeDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgcHJlZml4ID0gbm9ybWFsaXplZEFzc2V0UHJlZml4KGFzc2V0UHJlZml4KVxuICBjb25zdCBwcm90b2NvbCA9IGdldFNvY2tldFByb3RvY29sKGFzc2V0UHJlZml4IHx8ICcnKVxuXG4gIGlmIChVUkwuY2FuUGFyc2UocHJlZml4KSkge1xuICAgIC8vIHNpbmNlIG5vcm1hbGl6ZWQgYXNzZXQgcHJlZml4IGlzIGVuc3VyZWQgdG8gYmUgYSBVUkwgZm9ybWF0LFxuICAgIC8vIHdlIGNhbiBzYWZlbHkgcmVwbGFjZSB0aGUgcHJvdG9jb2xcbiAgICByZXR1cm4gcHJlZml4LnJlcGxhY2UoL15odHRwLywgJ3dzJylcbiAgfVxuXG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/IGA6JHtwb3J0fWAgOiAnJ30ke3ByZWZpeH1gXG59XG4iXSwibmFtZXMiOlsiZ2V0U29ja2V0VXJsIiwiZ2V0U29ja2V0UHJvdG9jb2wiLCJhc3NldFByZWZpeCIsInByb3RvY29sIiwid2luZG93IiwibG9jYXRpb24iLCJVUkwiLCJwcmVmaXgiLCJub3JtYWxpemVkQXNzZXRQcmVmaXgiLCJjYW5QYXJzZSIsInJlcGxhY2UiLCJob3N0bmFtZSIsInBvcnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js":
|
||
/*!*************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.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 getHydrationWarningType: function() {\n return getHydrationWarningType;\n },\n getReactHydrationDiffSegments: function() {\n return getReactHydrationDiffSegments;\n },\n hydrationErrorState: function() {\n return hydrationErrorState;\n },\n storeHydrationErrorStateFromConsoleArgs: function() {\n return storeHydrationErrorStateFromConsoleArgs;\n }\n});\nconst _ishydrationerror = __webpack_require__(/*! ../../../is-hydration-error */ \"(ssr)/./node_modules/next/dist/client/components/is-hydration-error.js\");\nconst hydrationErrorState = {};\n// https://github.com/facebook/react/blob/main/packages/react-dom/src/__tests__/ReactDOMHydrationDiff-test.js used as a reference\nconst htmlTagsWarnings = new Set([\n 'Warning: In HTML, %s cannot be a child of <%s>.%s\\nThis will cause a hydration error.%s',\n 'Warning: In HTML, %s cannot be a descendant of <%s>.\\nThis will cause a hydration error.%s',\n 'Warning: In HTML, text nodes cannot be a child of <%s>.\\nThis will cause a hydration error.',\n \"Warning: In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\\nThis will cause a hydration error.\",\n 'Warning: Expected server HTML to contain a matching <%s> in <%s>.%s',\n 'Warning: Did not expect server HTML to contain a <%s> in <%s>.%s'\n]);\nconst textAndTagsMismatchWarnings = new Set([\n 'Warning: Expected server HTML to contain a matching text node for \"%s\" in <%s>.%s',\n 'Warning: Did not expect server HTML to contain the text node \"%s\" in <%s>.%s'\n]);\nconst textMismatchWarning = 'Warning: Text content did not match. Server: \"%s\" Client: \"%s\"%s';\nconst getHydrationWarningType = (message)=>{\n if (typeof message !== 'string') {\n // TODO: Doesn't make sense to treat no message as a hydration error message.\n // We should bail out somewhere earlier.\n return 'text';\n }\n const normalizedMessage = message.startsWith('Warning: ') ? message : \"Warning: \" + message;\n if (isHtmlTagsWarning(normalizedMessage)) return 'tag';\n if (isTextInTagsMismatchWarning(normalizedMessage)) return 'text-in-tag';\n return 'text';\n};\nconst isHtmlTagsWarning = (message)=>htmlTagsWarnings.has(message);\nconst isTextMismatchWarning = (message)=>textMismatchWarning === message;\nconst isTextInTagsMismatchWarning = (msg)=>textAndTagsMismatchWarnings.has(msg);\nconst isKnownHydrationWarning = (message)=>{\n if (typeof message !== 'string') {\n return false;\n }\n // React 18 has the `Warning: ` prefix.\n // React 19 does not.\n const normalizedMessage = message.startsWith('Warning: ') ? message : \"Warning: \" + message;\n return isHtmlTagsWarning(normalizedMessage) || isTextInTagsMismatchWarning(normalizedMessage) || isTextMismatchWarning(normalizedMessage);\n};\nconst getReactHydrationDiffSegments = (msg)=>{\n if (msg) {\n const { message, diff } = (0, _ishydrationerror.getHydrationErrorStackInfo)(msg);\n if (message) return [\n message,\n diff\n ];\n }\n return undefined;\n};\nfunction storeHydrationErrorStateFromConsoleArgs() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const [msg, serverContent, clientContent, componentStack] = args;\n if (isKnownHydrationWarning(msg)) {\n hydrationErrorState.warning = [\n // remove the last %s from the message\n msg,\n serverContent,\n clientContent\n ];\n hydrationErrorState.componentStack = componentStack;\n hydrationErrorState.serverContent = serverContent;\n hydrationErrorState.clientContent = clientContent;\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=hydration-error-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvaHlkcmF0aW9uLWVycm9yLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaUNhQSx1QkFBdUI7ZUFBdkJBOztJQTJDQUMsNkJBQTZCO2VBQTdCQTs7SUE3REFDLG1CQUFtQjtlQUFuQkE7O0lBNEVHQyx1Q0FBdUM7ZUFBdkNBOzs7OENBM0YyQjtBQWVwQyxNQUFNRCxzQkFBMkMsQ0FBQztBQUV6RCxpSUFBaUk7QUFDakksTUFBTUUsbUJBQW1CLElBQUlDLElBQUk7SUFDL0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFDRCxNQUFNQyw4QkFBOEIsSUFBSUQsSUFBSTtJQUMxQztJQUNBO0NBQ0Q7QUFDRCxNQUFNRSxzQkFDSjtBQUVLLE1BQU1QLDBCQUEwQixDQUNyQ1E7SUFFQSxJQUFJLE9BQU9BLFlBQVksVUFBVTtRQUMvQiw2RUFBNkU7UUFDN0Usd0NBQXdDO1FBQ3hDLE9BQU87SUFDVDtJQUVBLE1BQU1DLG9CQUFvQkQsUUFBUUUsVUFBVSxDQUFDLGVBQ3pDRixVQUNDLGNBQVdBO0lBRWhCLElBQUlHLGtCQUFrQkYsb0JBQW9CLE9BQU87SUFDakQsSUFBSUcsNEJBQTRCSCxvQkFBb0IsT0FBTztJQUUzRCxPQUFPO0FBQ1Q7QUFFQSxNQUFNRSxvQkFBb0IsQ0FBQ0gsVUFBb0JKLGlCQUFpQlMsR0FBRyxDQUFDTDtBQUVwRSxNQUFNTSx3QkFBd0IsQ0FBQ04sVUFDN0JELHdCQUF3QkM7QUFDMUIsTUFBTUksOEJBQThCLENBQUNHLE1BQ25DVCw0QkFBNEJPLEdBQUcsQ0FBQ0U7QUFFbEMsTUFBTUMsMEJBQTBCLENBQUNSO0lBQy9CLElBQUksT0FBT0EsWUFBWSxVQUFVO1FBQy9CLE9BQU87SUFDVDtJQUNBLHVDQUF1QztJQUN2QyxxQkFBcUI7SUFDckIsTUFBTUMsb0JBQW9CRCxRQUFRRSxVQUFVLENBQUMsZUFDekNGLFVBQ0MsY0FBV0E7SUFFaEIsT0FDRUcsa0JBQWtCRixzQkFDbEJHLDRCQUE0Qkgsc0JBQzVCSyxzQkFBc0JMO0FBRTFCO0FBRU8sTUFBTVIsZ0NBQWdDLENBQUNjO0lBQzVDLElBQUlBLEtBQUs7UUFDUCxNQUFNLEVBQUVQLE9BQU8sRUFBRVMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGtCQUFBQSwwQkFBQUEsRUFBMkJIO1FBQ3JELElBQUlQLFNBQVMsT0FBTztZQUFDQTtZQUFTUztTQUFLO0lBQ3JDO0lBQ0EsT0FBT0U7QUFDVDtBQVNPLFNBQVNoQjtJQUF3QyxpQ0FBR2lCLE9BQUg7UUFBR0EsSUFBQUEsQ0FBSCx1QkFBYzs7SUFDcEUsTUFBTSxDQUFDTCxLQUFLTSxlQUFlQyxlQUFlQyxlQUFlLEdBQUdIO0lBQzVELElBQUlKLHdCQUF3QkQsTUFBTTtRQUNoQ2Isb0JBQW9Cc0IsT0FBTyxHQUFHO1lBQzVCLHNDQUFzQztZQUN0Q1Q7WUFDQU07WUFDQUM7U0FDRDtRQUNEcEIsb0JBQW9CcUIsY0FBYyxHQUFHQTtRQUNyQ3JCLG9CQUFvQm1CLGFBQWEsR0FBR0E7UUFDcENuQixvQkFBb0JvQixhQUFhLEdBQUdBO0lBQ3RDO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxoZWxwZXJzXFxoeWRyYXRpb24tZXJyb3ItaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRIeWRyYXRpb25FcnJvclN0YWNrSW5mbyB9IGZyb20gJy4uLy4uLy4uL2lzLWh5ZHJhdGlvbi1lcnJvcidcblxuZXhwb3J0IHR5cGUgSHlkcmF0aW9uRXJyb3JTdGF0ZSA9IHtcbiAgLy8gSHlkcmF0aW9uIHdhcm5pbmcgdGVtcGxhdGUgZm9ybWF0OiA8bWVzc2FnZT4gPHNlcnZlckNvbnRlbnQ+IDxjbGllbnRDb250ZW50PlxuICB3YXJuaW5nPzogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddXG4gIGNvbXBvbmVudFN0YWNrPzogc3RyaW5nXG4gIHNlcnZlckNvbnRlbnQ/OiBzdHJpbmdcbiAgY2xpZW50Q29udGVudD86IHN0cmluZ1xuICAvLyBSZWFjdCAxOSBoeWRyYXRpb24gZGlmZiBmb3JtYXQ6IDxub3Rlcz4gPGxpbms+IDxjb21wb25lbnQgZGlmZj8+XG4gIG5vdGVzPzogc3RyaW5nXG4gIHJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZj86IHN0cmluZ1xufVxuXG50eXBlIE51bGxhYmxlVGV4dCA9IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcblxuZXhwb3J0IGNvbnN0IGh5ZHJhdGlvbkVycm9yU3RhdGU6IEh5ZHJhdGlvbkVycm9yU3RhdGUgPSB7fVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9tYWluL3BhY2thZ2VzL3JlYWN0LWRvbS9zcmMvX190ZXN0c19fL1JlYWN0RE9NSHlkcmF0aW9uRGlmZi10ZXN0LmpzIHVzZWQgYXMgYSByZWZlcmVuY2VcbmNvbnN0IGh0bWxUYWdzV2FybmluZ3MgPSBuZXcgU2V0KFtcbiAgJ1dhcm5pbmc6IEluIEhUTUwsICVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uJXNcXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3IuJXMnLFxuICAnV2FybmluZzogSW4gSFRNTCwgJXMgY2Fubm90IGJlIGEgZGVzY2VuZGFudCBvZiA8JXM+LlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvci4lcycsXG4gICdXYXJuaW5nOiBJbiBIVE1MLCB0ZXh0IG5vZGVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yLicsXG4gIFwiV2FybmluZzogSW4gSFRNTCwgd2hpdGVzcGFjZSB0ZXh0IG5vZGVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yLlwiLFxuICAnV2FybmluZzogRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIDwlcz4gaW4gPCVzPi4lcycsXG4gICdXYXJuaW5nOiBEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIGEgPCVzPiBpbiA8JXM+LiVzJyxcbl0pXG5jb25zdCB0ZXh0QW5kVGFnc01pc21hdGNoV2FybmluZ3MgPSBuZXcgU2V0KFtcbiAgJ1dhcm5pbmc6IEV4cGVjdGVkIHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSBtYXRjaGluZyB0ZXh0IG5vZGUgZm9yIFwiJXNcIiBpbiA8JXM+LiVzJyxcbiAgJ1dhcm5pbmc6IERpZCBub3QgZXhwZWN0IHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gdGhlIHRleHQgbm9kZSBcIiVzXCIgaW4gPCVzPi4lcycsXG5dKVxuY29uc3QgdGV4dE1pc21hdGNoV2FybmluZyA9XG4gICdXYXJuaW5nOiBUZXh0IGNvbnRlbnQgZGlkIG5vdCBtYXRjaC4gU2VydmVyOiBcIiVzXCIgQ2xpZW50OiBcIiVzXCIlcydcblxuZXhwb3J0IGNvbnN0IGdldEh5ZHJhdGlvbldhcm5pbmdUeXBlID0gKFxuICBtZXNzYWdlOiBOdWxsYWJsZVRleHRcbik6ICd0YWcnIHwgJ3RleHQnIHwgJ3RleHQtaW4tdGFnJyA9PiB7XG4gIGlmICh0eXBlb2YgbWVzc2FnZSAhPT0gJ3N0cmluZycpIHtcbiAgICAvLyBUT0RPOiBEb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gdHJlYXQgbm8gbWVzc2FnZSBhcyBhIGh5ZHJhdGlvbiBlcnJvciBtZXNzYWdlLlxuICAgIC8vIFdlIHNob3VsZCBiYWlsIG91dCBzb21ld2hlcmUgZWFybGllci5cbiAgICByZXR1cm4gJ3RleHQnXG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkTWVzc2FnZSA9IG1lc3NhZ2Uuc3RhcnRzV2l0aCgnV2FybmluZzogJylcbiAgICA/IG1lc3NhZ2VcbiAgICA6IGBXYXJuaW5nOiAke21lc3NhZ2V9YFxuXG4gIGlmIChpc0h0bWxUYWdzV2FybmluZyhub3JtYWxpemVkTWVzc2FnZSkpIHJldHVybiAndGFnJ1xuICBpZiAoaXNUZXh0SW5UYWdzTWlzbWF0Y2hXYXJuaW5nKG5vcm1hbGl6ZWRNZXNzYWdlKSkgcmV0dXJuICd0ZXh0LWluLXRhZydcblxuICByZXR1cm4gJ3RleHQnXG59XG5cbmNvbnN0IGlzSHRtbFRhZ3NXYXJuaW5nID0gKG1lc3NhZ2U6IHN0cmluZykgPT4gaHRtbFRhZ3NXYXJuaW5ncy5oYXMobWVzc2FnZSlcblxuY29uc3QgaXNUZXh0TWlzbWF0Y2hXYXJuaW5nID0gKG1lc3NhZ2U6IHN0cmluZykgPT5cbiAgdGV4dE1pc21hdGNoV2FybmluZyA9PT0gbWVzc2FnZVxuY29uc3QgaXNUZXh0SW5UYWdzTWlzbWF0Y2hXYXJuaW5nID0gKG1zZzogc3RyaW5nKSA9PlxuICB0ZXh0QW5kVGFnc01pc21hdGNoV2FybmluZ3MuaGFzKG1zZylcblxuY29uc3QgaXNLbm93bkh5ZHJhdGlvbldhcm5pbmcgPSAobWVzc2FnZTogTnVsbGFibGVUZXh0KSA9PiB7XG4gIGlmICh0eXBlb2YgbWVzc2FnZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICAvLyBSZWFjdCAxOCBoYXMgdGhlIGBXYXJuaW5nOiBgIHByZWZpeC5cbiAgLy8gUmVhY3QgMTkgZG9lcyBub3QuXG4gIGNvbnN0IG5vcm1hbGl6ZWRNZXNzYWdlID0gbWVzc2FnZS5zdGFydHNXaXRoKCdXYXJuaW5nOiAnKVxuICAgID8gbWVzc2FnZVxuICAgIDogYFdhcm5pbmc6ICR7bWVzc2FnZX1gXG5cbiAgcmV0dXJuIChcbiAgICBpc0h0bWxUYWdzV2FybmluZyhub3JtYWxpemVkTWVzc2FnZSkgfHxcbiAgICBpc1RleHRJblRhZ3NNaXNtYXRjaFdhcm5pbmcobm9ybWFsaXplZE1lc3NhZ2UpIHx8XG4gICAgaXNUZXh0TWlzbWF0Y2hXYXJuaW5nKG5vcm1hbGl6ZWRNZXNzYWdlKVxuICApXG59XG5cbmV4cG9ydCBjb25zdCBnZXRSZWFjdEh5ZHJhdGlvbkRpZmZTZWdtZW50cyA9IChtc2c6IE51bGxhYmxlVGV4dCkgPT4ge1xuICBpZiAobXNnKSB7XG4gICAgY29uc3QgeyBtZXNzYWdlLCBkaWZmIH0gPSBnZXRIeWRyYXRpb25FcnJvclN0YWNrSW5mbyhtc2cpXG4gICAgaWYgKG1lc3NhZ2UpIHJldHVybiBbbWVzc2FnZSwgZGlmZl1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogUGF0Y2ggY29uc29sZS5lcnJvciB0byBjYXB0dXJlIGh5ZHJhdGlvbiBlcnJvcnMuXG4gKiBJZiBhbnkgb2YgdGhlIGtub3duSHlkcmF0aW9uV2FybmluZ3MgYXJlIGxvZ2dlZCwgc3RvcmUgdGhlIG1lc3NhZ2UgYW5kIGNvbXBvbmVudCBzdGFjay5cbiAqIFdoZW4gdGhlIGh5ZHJhdGlvbiBydW50aW1lIGVycm9yIGlzIHRocm93biwgdGhlIG1lc3NhZ2UgYW5kIGNvbXBvbmVudCBzdGFjayBhcmUgYWRkZWQgdG8gdGhlIGVycm9yLlxuICogVGhpcyByZXN1bHRzIGluIGEgbW9yZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGVycm9yIG92ZXJsYXkuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlSHlkcmF0aW9uRXJyb3JTdGF0ZUZyb21Db25zb2xlQXJncyguLi5hcmdzOiBhbnlbXSkge1xuICBjb25zdCBbbXNnLCBzZXJ2ZXJDb250ZW50LCBjbGllbnRDb250ZW50LCBjb21wb25lbnRTdGFja10gPSBhcmdzXG4gIGlmIChpc0tub3duSHlkcmF0aW9uV2FybmluZyhtc2cpKSB7XG4gICAgaHlkcmF0aW9uRXJyb3JTdGF0ZS53YXJuaW5nID0gW1xuICAgICAgLy8gcmVtb3ZlIHRoZSBsYXN0ICVzIGZyb20gdGhlIG1lc3NhZ2VcbiAgICAgIG1zZyxcbiAgICAgIHNlcnZlckNvbnRlbnQsXG4gICAgICBjbGllbnRDb250ZW50LFxuICAgIF1cbiAgICBoeWRyYXRpb25FcnJvclN0YXRlLmNvbXBvbmVudFN0YWNrID0gY29tcG9uZW50U3RhY2tcbiAgICBoeWRyYXRpb25FcnJvclN0YXRlLnNlcnZlckNvbnRlbnQgPSBzZXJ2ZXJDb250ZW50XG4gICAgaHlkcmF0aW9uRXJyb3JTdGF0ZS5jbGllbnRDb250ZW50ID0gY2xpZW50Q29udGVudFxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0SHlkcmF0aW9uV2FybmluZ1R5cGUiLCJnZXRSZWFjdEh5ZHJhdGlvbkRpZmZTZWdtZW50cyIsImh5ZHJhdGlvbkVycm9yU3RhdGUiLCJzdG9yZUh5ZHJhdGlvbkVycm9yU3RhdGVGcm9tQ29uc29sZUFyZ3MiLCJodG1sVGFnc1dhcm5pbmdzIiwiU2V0IiwidGV4dEFuZFRhZ3NNaXNtYXRjaFdhcm5pbmdzIiwidGV4dE1pc21hdGNoV2FybmluZyIsIm1lc3NhZ2UiLCJub3JtYWxpemVkTWVzc2FnZSIsInN0YXJ0c1dpdGgiLCJpc0h0bWxUYWdzV2FybmluZyIsImlzVGV4dEluVGFnc01pc21hdGNoV2FybmluZyIsImhhcyIsImlzVGV4dE1pc21hdGNoV2FybmluZyIsIm1zZyIsImlzS25vd25IeWRyYXRpb25XYXJuaW5nIiwiZGlmZiIsImdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvIiwidW5kZWZpbmVkIiwiYXJncyIsInNlcnZlckNvbnRlbnQiLCJjbGllbnRDb250ZW50IiwiY29tcG9uZW50U3RhY2siLCJ3YXJuaW5nIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js":
|
||
/*!******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js ***!
|
||
\******************************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"noop\", ({\n enumerable: true,\n get: function() {\n return noop;\n }\n}));\nfunction noop(strings) {\n for(var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n keys[_key - 1] = arguments[_key];\n }\n const lastIndex = strings.length - 1;\n return strings.slice(0, lastIndex).reduce((p, s, i)=>p + s + keys[i], '') + strings[lastIndex];\n}\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-template.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3dDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsS0FDZEMsT0FBNkI7SUFDN0IsaUNBQUdDLE9BQUg7UUFBR0EsSUFBQUEsQ0FBSCwyQkFBMEI7O0lBRTFCLE1BQU1DLFlBQVlGLFFBQVFHLE1BQU0sR0FBRztJQUNuQyxPQUNFSCxRQUFRSSxLQUFLLENBQUMsR0FBR0YsV0FBV0csTUFBTSxDQUFDLENBQUNDLEdBQUdDLEdBQUdDLElBQU1GLElBQUlDLElBQUlOLElBQUksQ0FBQ08sRUFBRSxFQUFFLE1BQ2pFUixPQUFPLENBQUNFLFVBQVU7QUFFdEIiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxoZWxwZXJzXFxub29wLXRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub29wKFxuICBzdHJpbmdzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSxcbiAgLi4ua2V5czogcmVhZG9ubHkgc3RyaW5nW11cbikge1xuICBjb25zdCBsYXN0SW5kZXggPSBzdHJpbmdzLmxlbmd0aCAtIDFcbiAgcmV0dXJuIChcbiAgICBzdHJpbmdzLnNsaWNlKDAsIGxhc3RJbmRleCkucmVkdWNlKChwLCBzLCBpKSA9PiBwICsgcyArIGtleXNbaV0sICcnKSArXG4gICAgc3RyaW5nc1tsYXN0SW5kZXhdXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub29wIiwic3RyaW5ncyIsImtleXMiLCJsYXN0SW5kZXgiLCJsZW5ndGgiLCJzbGljZSIsInJlZHVjZSIsInAiLCJzIiwiaSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js":
|
||
/*!**************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js ***!
|
||
\**************************************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseComponentStack\", ({\n enumerable: true,\n get: function() {\n return parseComponentStack;\n }\n}));\nvar LocationType = /*#__PURE__*/ function(LocationType) {\n LocationType[\"FILE\"] = \"file\";\n LocationType[\"WEBPACK_INTERNAL\"] = \"webpack-internal\";\n LocationType[\"HTTP\"] = \"http\";\n LocationType[\"PROTOCOL_RELATIVE\"] = \"protocol-relative\";\n LocationType[\"UNKNOWN\"] = \"unknown\";\n return LocationType;\n}(LocationType || {});\n/**\n * Get the type of frame line based on the location\n */ function getLocationType(location) {\n if (location.startsWith('file://')) {\n return \"file\";\n }\n if (location.includes('webpack-internal://')) {\n return \"webpack-internal\";\n }\n if (location.startsWith('http://') || location.startsWith('https://')) {\n return \"http\";\n }\n if (location.startsWith('//')) {\n return \"protocol-relative\";\n }\n return \"unknown\";\n}\nfunction parseStackFrameLocation(location) {\n const locationType = getLocationType(location);\n const modulePath = location == null ? void 0 : location.replace(/^(webpack-internal:\\/\\/\\/|file:\\/\\/)(\\(.*\\)\\/)?/, '');\n var _modulePath_match;\n const [, file, lineNumber, column] = (_modulePath_match = modulePath == null ? void 0 : modulePath.match(/^(.+):(\\d+):(\\d+)/)) != null ? _modulePath_match : [];\n switch(locationType){\n case \"file\":\n case \"webpack-internal\":\n return {\n canOpenInEditor: true,\n file,\n lineNumber: lineNumber ? Number(lineNumber) : undefined,\n column: column ? Number(column) : undefined\n };\n // When the location is a URL we only show the file\n // TODO: Resolve http(s) URLs through sourcemaps\n case \"http\":\n case \"protocol-relative\":\n case \"unknown\":\n default:\n {\n return {\n canOpenInEditor: false\n };\n }\n }\n}\nfunction parseComponentStack(componentStack) {\n const componentStackFrames = [];\n for (const line of componentStack.trim().split('\\n')){\n // TODO: support safari stack trace\n // Get component and file from the component stack line\n const match = /at ([^ ]+)( \\((.*)\\))?/.exec(line);\n if (match == null ? void 0 : match[1]) {\n const component = match[1];\n const location = match[3];\n if (!location) {\n componentStackFrames.push({\n canOpenInEditor: false,\n component\n });\n continue;\n }\n // Stop parsing the component stack if we reach a Next.js component\n if (location == null ? void 0 : location.includes('next/dist')) {\n break;\n }\n const frameLocation = parseStackFrameLocation(location);\n componentStackFrames.push({\n component,\n ...frameLocation\n });\n }\n }\n return componentStackFrames;\n}\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=parse-component-stack.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBcUVnQkE7OztlQUFBQTs7O0FBN0RoQixJQUFLQyxlQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxZQUFBQTs7Ozs7O1dBQUFBO0VBQUFBLGdCQUFBQSxDQUFBQTtBQVFMOztDQUVDLEdBQ0QsU0FBU0MsZ0JBQWdCQyxRQUFnQjtJQUN2QyxJQUFJQSxTQUFTQyxVQUFVLENBQUMsWUFBWTtRQUNsQztJQUNGO0lBQ0EsSUFBSUQsU0FBU0UsUUFBUSxDQUFDLHdCQUF3QjtRQUM1QztJQUNGO0lBQ0EsSUFBSUYsU0FBU0MsVUFBVSxDQUFDLGNBQWNELFNBQVNDLFVBQVUsQ0FBQyxhQUFhO1FBQ3JFO0lBQ0Y7SUFDQSxJQUFJRCxTQUFTQyxVQUFVLENBQUMsT0FBTztRQUM3QjtJQUNGO0lBQ0E7QUFDRjtBQUVBLFNBQVNFLHdCQUNQSCxRQUFnQjtJQUVoQixNQUFNSSxlQUFlTCxnQkFBZ0JDO0lBRXJDLE1BQU1LLGFBQWFMLFlBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFNBQVVNLE9BQU8sQ0FDbEMsbURBQ0E7UUFHQUQ7SUFERixNQUFNLEdBQUdFLE1BQU1DLFlBQVlDLE9BQU8sR0FDaENKLENBQUFBLG9CQUFBQSxjQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxXQUFZSyxLQUFLLENBQUMsZ0NBQWxCTCxvQkFBMEMsRUFBRTtJQUU5QyxPQUFRRDtRQUNOO1FBQ0E7WUFDRSxPQUFPO2dCQUNMTyxpQkFBaUI7Z0JBQ2pCSjtnQkFDQUMsWUFBWUEsYUFBYUksT0FBT0osY0FBY0s7Z0JBQzlDSixRQUFRQSxTQUFTRyxPQUFPSCxVQUFVSTtZQUNwQztRQUNGLG1EQUFtRDtRQUNuRCxnREFBZ0Q7UUFDaEQ7UUFDQTtRQUNBO1FBQ0E7WUFBUztnQkFDUCxPQUFPO29CQUNMRixpQkFBaUI7Z0JBQ25CO1lBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU2Qsb0JBQ2RpQixjQUFzQjtJQUV0QixNQUFNQyx1QkFBOEMsRUFBRTtJQUN0RCxLQUFLLE1BQU1DLFFBQVFGLGVBQWVHLElBQUksR0FBR0MsS0FBSyxDQUFDLE1BQU87UUFDcEQsbUNBQW1DO1FBQ25DLHVEQUF1RDtRQUN2RCxNQUFNUixRQUFRLHlCQUF5QlMsSUFBSSxDQUFDSDtRQUM1QyxJQUFJTixTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2QsTUFBTVUsWUFBWVYsS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTVYsV0FBV1UsS0FBSyxDQUFDLEVBQUU7WUFFekIsSUFBSSxDQUFDVixVQUFVO2dCQUNiZSxxQkFBcUJNLElBQUksQ0FBQztvQkFDeEJWLGlCQUFpQjtvQkFDakJTO2dCQUNGO2dCQUNBO1lBQ0Y7WUFFQSxtRUFBbUU7WUFDbkUsSUFBSXBCLFlBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFNBQVVFLFFBQVEsQ0FBQyxjQUFjO2dCQUNuQztZQUNGO1lBRUEsTUFBTW9CLGdCQUFnQm5CLHdCQUF3Qkg7WUFDOUNlLHFCQUFxQk0sSUFBSSxDQUFDO2dCQUN4QkQ7Z0JBQ0EsR0FBR0UsYUFBYTtZQUNsQjtRQUNGO0lBQ0Y7SUFFQSxPQUFPUDtBQUNUIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaGVscGVyc1xccGFyc2UtY29tcG9uZW50LXN0YWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENvbXBvbmVudFN0YWNrRnJhbWUgPSB7XG4gIGNhbk9wZW5JbkVkaXRvcjogYm9vbGVhblxuICBjb21wb25lbnQ6IHN0cmluZ1xuICBmaWxlPzogc3RyaW5nXG4gIGxpbmVOdW1iZXI/OiBudW1iZXJcbiAgY29sdW1uPzogbnVtYmVyXG59XG5cbmVudW0gTG9jYXRpb25UeXBlIHtcbiAgRklMRSA9ICdmaWxlJyxcbiAgV0VCUEFDS19JTlRFUk5BTCA9ICd3ZWJwYWNrLWludGVybmFsJyxcbiAgSFRUUCA9ICdodHRwJyxcbiAgUFJPVE9DT0xfUkVMQVRJVkUgPSAncHJvdG9jb2wtcmVsYXRpdmUnLFxuICBVTktOT1dOID0gJ3Vua25vd24nLFxufVxuXG4vKipcbiAqIEdldCB0aGUgdHlwZSBvZiBmcmFtZSBsaW5lIGJhc2VkIG9uIHRoZSBsb2NhdGlvblxuICovXG5mdW5jdGlvbiBnZXRMb2NhdGlvblR5cGUobG9jYXRpb246IHN0cmluZyk6IExvY2F0aW9uVHlwZSB7XG4gIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCdmaWxlOi8vJykpIHtcbiAgICByZXR1cm4gTG9jYXRpb25UeXBlLkZJTEVcbiAgfVxuICBpZiAobG9jYXRpb24uaW5jbHVkZXMoJ3dlYnBhY2staW50ZXJuYWw6Ly8nKSkge1xuICAgIHJldHVybiBMb2NhdGlvblR5cGUuV0VCUEFDS19JTlRFUk5BTFxuICB9XG4gIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgbG9jYXRpb24uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xuICAgIHJldHVybiBMb2NhdGlvblR5cGUuSFRUUFxuICB9XG4gIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCcvLycpKSB7XG4gICAgcmV0dXJuIExvY2F0aW9uVHlwZS5QUk9UT0NPTF9SRUxBVElWRVxuICB9XG4gIHJldHVybiBMb2NhdGlvblR5cGUuVU5LTk9XTlxufVxuXG5mdW5jdGlvbiBwYXJzZVN0YWNrRnJhbWVMb2NhdGlvbihcbiAgbG9jYXRpb246IHN0cmluZ1xuKTogT21pdDxDb21wb25lbnRTdGFja0ZyYW1lLCAnY29tcG9uZW50Jz4ge1xuICBjb25zdCBsb2NhdGlvblR5cGUgPSBnZXRMb2NhdGlvblR5cGUobG9jYXRpb24pXG5cbiAgY29uc3QgbW9kdWxlUGF0aCA9IGxvY2F0aW9uPy5yZXBsYWNlKFxuICAgIC9eKHdlYnBhY2staW50ZXJuYWw6XFwvXFwvXFwvfGZpbGU6XFwvXFwvKShcXCguKlxcKVxcLyk/LyxcbiAgICAnJ1xuICApXG4gIGNvbnN0IFssIGZpbGUsIGxpbmVOdW1iZXIsIGNvbHVtbl0gPVxuICAgIG1vZHVsZVBhdGg/Lm1hdGNoKC9eKC4rKTooXFxkKyk6KFxcZCspLykgPz8gW11cblxuICBzd2l0Y2ggKGxvY2F0aW9uVHlwZSkge1xuICAgIGNhc2UgTG9jYXRpb25UeXBlLkZJTEU6XG4gICAgY2FzZSBMb2NhdGlvblR5cGUuV0VCUEFDS19JTlRFUk5BTDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNhbk9wZW5JbkVkaXRvcjogdHJ1ZSxcbiAgICAgICAgZmlsZSxcbiAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlciA/IE51bWJlcihsaW5lTnVtYmVyKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgY29sdW1uOiBjb2x1bW4gPyBOdW1iZXIoY29sdW1uKSA6IHVuZGVmaW5lZCxcbiAgICAgIH1cbiAgICAvLyBXaGVuIHRoZSBsb2NhdGlvbiBpcyBhIFVSTCB3ZSBvbmx5IHNob3cgdGhlIGZpbGVcbiAgICAvLyBUT0RPOiBSZXNvbHZlIGh0dHAocykgVVJMcyB0aHJvdWdoIHNvdXJjZW1hcHNcbiAgICBjYXNlIExvY2F0aW9uVHlwZS5IVFRQOlxuICAgIGNhc2UgTG9jYXRpb25UeXBlLlBST1RPQ09MX1JFTEFUSVZFOlxuICAgIGNhc2UgTG9jYXRpb25UeXBlLlVOS05PV046XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2FuT3BlbkluRWRpdG9yOiBmYWxzZSxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29tcG9uZW50U3RhY2soXG4gIGNvbXBvbmVudFN0YWNrOiBzdHJpbmdcbik6IENvbXBvbmVudFN0YWNrRnJhbWVbXSB7XG4gIGNvbnN0IGNvbXBvbmVudFN0YWNrRnJhbWVzOiBDb21wb25lbnRTdGFja0ZyYW1lW10gPSBbXVxuICBmb3IgKGNvbnN0IGxpbmUgb2YgY29tcG9uZW50U3RhY2sudHJpbSgpLnNwbGl0KCdcXG4nKSkge1xuICAgIC8vIFRPRE86IHN1cHBvcnQgc2FmYXJpIHN0YWNrIHRyYWNlXG4gICAgLy8gR2V0IGNvbXBvbmVudCBhbmQgZmlsZSBmcm9tIHRoZSBjb21wb25lbnQgc3RhY2sgbGluZVxuICAgIGNvbnN0IG1hdGNoID0gL2F0IChbXiBdKykoIFxcKCguKilcXCkpPy8uZXhlYyhsaW5lKVxuICAgIGlmIChtYXRjaD8uWzFdKSB7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSBtYXRjaFsxXVxuICAgICAgY29uc3QgbG9jYXRpb24gPSBtYXRjaFszXVxuXG4gICAgICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgICAgIGNvbXBvbmVudFN0YWNrRnJhbWVzLnB1c2goe1xuICAgICAgICAgIGNhbk9wZW5JbkVkaXRvcjogZmFsc2UsXG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICB9KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBTdG9wIHBhcnNpbmcgdGhlIGNvbXBvbmVudCBzdGFjayBpZiB3ZSByZWFjaCBhIE5leHQuanMgY29tcG9uZW50XG4gICAgICBpZiAobG9jYXRpb24/LmluY2x1ZGVzKCduZXh0L2Rpc3QnKSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmcmFtZUxvY2F0aW9uID0gcGFyc2VTdGFja0ZyYW1lTG9jYXRpb24obG9jYXRpb24pXG4gICAgICBjb21wb25lbnRTdGFja0ZyYW1lcy5wdXNoKHtcbiAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAuLi5mcmFtZUxvY2F0aW9uLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50U3RhY2tGcmFtZXNcbn1cbiJdLCJuYW1lcyI6WyJwYXJzZUNvbXBvbmVudFN0YWNrIiwiTG9jYXRpb25UeXBlIiwiZ2V0TG9jYXRpb25UeXBlIiwibG9jYXRpb24iLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJwYXJzZVN0YWNrRnJhbWVMb2NhdGlvbiIsImxvY2F0aW9uVHlwZSIsIm1vZHVsZVBhdGgiLCJyZXBsYWNlIiwiZmlsZSIsImxpbmVOdW1iZXIiLCJjb2x1bW4iLCJtYXRjaCIsImNhbk9wZW5JbkVkaXRvciIsIk51bWJlciIsInVuZGVmaW5lZCIsImNvbXBvbmVudFN0YWNrIiwiY29tcG9uZW50U3RhY2tGcmFtZXMiLCJsaW5lIiwidHJpbSIsInNwbGl0IiwiZXhlYyIsImNvbXBvbmVudCIsInB1c2giLCJmcmFtZUxvY2F0aW9uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js":
|
||
/*!****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js ***!
|
||
\****************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseStack\", ({\n enumerable: true,\n get: function() {\n return parseStack;\n }\n}));\nconst _stacktraceparser = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"(ssr)/./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\nconst _ishydrationerror = __webpack_require__(/*! ../../../is-hydration-error */ \"(ssr)/./node_modules/next/dist/client/components/is-hydration-error.js\");\nconst regexNextStatic = /\\/_next(\\/static\\/.+)/;\nfunction parseStack(stack) {\n if (!stack) return [];\n const messageAndStack = stack.replace(/^Error: /, '');\n if ((0, _ishydrationerror.isReactHydrationErrorMessage)(messageAndStack)) {\n const { stack: parsedStack } = (0, _ishydrationerror.getHydrationErrorStackInfo)(messageAndStack);\n if (parsedStack) {\n stack = parsedStack;\n }\n }\n // throw away eval information that stacktrace-parser doesn't support\n // adapted from https://github.com/stacktracejs/error-stack-parser/blob/9f33c224b5d7b607755eb277f9d51fcdb7287e24/error-stack-parser.js#L59C33-L59C62\n stack = stack.split('\\n').map((line)=>{\n if (line.includes('(eval ')) {\n line = line.replace(/eval code/g, 'eval').replace(/\\(eval at [^()]* \\(/, '(file://').replace(/\\),.*$/g, ')');\n }\n return line;\n }).join('\\n');\n const frames = (0, _stacktraceparser.parse)(stack);\n return frames.map((frame)=>{\n try {\n const url = new URL(frame.file);\n const res = regexNextStatic.exec(url.pathname);\n if (res) {\n var _process_env___NEXT_DIST_DIR_replace, _process_env___NEXT_DIST_DIR;\n const distDir = (_process_env___NEXT_DIST_DIR = process.env.__NEXT_DIST_DIR) == null ? void 0 : (_process_env___NEXT_DIST_DIR_replace = _process_env___NEXT_DIST_DIR.replace(/\\\\/g, '/')) == null ? void 0 : _process_env___NEXT_DIST_DIR_replace.replace(/\\/$/, '');\n if (distDir) {\n frame.file = 'file://' + distDir.concat(res.pop()) + url.search;\n }\n }\n } catch (e) {}\n return frame;\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=parse-stack.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcGFyc2Utc3RhY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FTZ0JBOzs7ZUFBQUE7Ozs4Q0FUTTs4Q0FLZjtBQUVQLE1BQU1DLGtCQUFrQjtBQUVqQixTQUFTRCxXQUFXRSxLQUF5QjtJQUNsRCxJQUFJLENBQUNBLE9BQU8sT0FBTyxFQUFFO0lBQ3JCLE1BQU1DLGtCQUFrQkQsTUFBTUUsT0FBTyxDQUFDLFlBQVk7SUFDbEQsSUFBSUMsQ0FBQUEsR0FBQUEsa0JBQUFBLDRCQUFBQSxFQUE2QkYsa0JBQWtCO1FBQ2pELE1BQU0sRUFBRUQsT0FBT0ksV0FBVyxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGtCQUFBQSwwQkFBQUEsRUFBMkJKO1FBQzFELElBQUlHLGFBQWE7WUFDZkosUUFBUUk7UUFDVjtJQUNGO0lBRUEscUVBQXFFO0lBQ3JFLG9KQUFvSjtJQUNwSkosUUFBUUEsTUFDTE0sS0FBSyxDQUFDLE1BQ05DLEdBQUcsQ0FBQyxDQUFDQztRQUNKLElBQUlBLEtBQUtDLFFBQVEsQ0FBQyxXQUFXO1lBQzNCRCxPQUFPQSxLQUNKTixPQUFPLENBQUMsY0FBYyxRQUN0QkEsT0FBTyxDQUFDLHVCQUF1QixZQUMvQkEsT0FBTyxDQUFDLFdBQVc7UUFDeEI7UUFFQSxPQUFPTTtJQUNULEdBQ0NFLElBQUksQ0FBQztJQUVSLE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLGtCQUFBQSxLQUFBQSxFQUFNWjtJQUNyQixPQUFPVyxPQUFPSixHQUFHLENBQUMsQ0FBQ007UUFDakIsSUFBSTtZQUNGLE1BQU1DLE1BQU0sSUFBSUMsSUFBSUYsTUFBTUcsSUFBSTtZQUM5QixNQUFNQyxNQUFNbEIsZ0JBQWdCbUIsSUFBSSxDQUFDSixJQUFJSyxRQUFRO1lBQzdDLElBQUlGLEtBQUs7b0JBQ1NHLHNDQUFBQTtnQkFBaEIsTUFBTUMsVUFBQUEsQ0FBVUQsK0JBQUFBLFFBQVFFLEdBQUcsQ0FBQ0MsZUFBQUEsS0FBZSxpQkFBM0JILHVDQUFBQSw2QkFDWmxCLE9BQU8sQ0FBQyxPQUFPLHlCQURIa0IscUNBRVpsQixPQUFPLENBQUMsT0FBTztnQkFDbkIsSUFBSW1CLFNBQVM7b0JBQ1hSLE1BQU1HLElBQUksR0FBRyxZQUFZSyxRQUFRRyxNQUFNLENBQUNQLElBQUlRLEdBQUcsTUFBT1gsSUFBSVksTUFBTTtnQkFDbEU7WUFDRjtRQUNGLEVBQUUsVUFBTSxDQUFDO1FBQ1QsT0FBT2I7SUFDVDtBQUNGIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaGVscGVyc1xccGFyc2Utc3RhY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXInXG5pbXBvcnQgdHlwZSB7IFN0YWNrRnJhbWUgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXInXG5pbXBvcnQge1xuICBnZXRIeWRyYXRpb25FcnJvclN0YWNrSW5mbyxcbiAgaXNSZWFjdEh5ZHJhdGlvbkVycm9yTWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vLi4vaXMtaHlkcmF0aW9uLWVycm9yJ1xuXG5jb25zdCByZWdleE5leHRTdGF0aWMgPSAvXFwvX25leHQoXFwvc3RhdGljXFwvLispL1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdGFjayhzdGFjazogc3RyaW5nIHwgdW5kZWZpbmVkKTogU3RhY2tGcmFtZVtdIHtcbiAgaWYgKCFzdGFjaykgcmV0dXJuIFtdXG4gIGNvbnN0IG1lc3NhZ2VBbmRTdGFjayA9IHN0YWNrLnJlcGxhY2UoL15FcnJvcjogLywgJycpXG4gIGlmIChpc1JlYWN0SHlkcmF0aW9uRXJyb3JNZXNzYWdlKG1lc3NhZ2VBbmRTdGFjaykpIHtcbiAgICBjb25zdCB7IHN0YWNrOiBwYXJzZWRTdGFjayB9ID0gZ2V0SHlkcmF0aW9uRXJyb3JTdGFja0luZm8obWVzc2FnZUFuZFN0YWNrKVxuICAgIGlmIChwYXJzZWRTdGFjaykge1xuICAgICAgc3RhY2sgPSBwYXJzZWRTdGFja1xuICAgIH1cbiAgfVxuXG4gIC8vIHRocm93IGF3YXkgZXZhbCBpbmZvcm1hdGlvbiB0aGF0IHN0YWNrdHJhY2UtcGFyc2VyIGRvZXNuJ3Qgc3VwcG9ydFxuICAvLyBhZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrdHJhY2Vqcy9lcnJvci1zdGFjay1wYXJzZXIvYmxvYi85ZjMzYzIyNGI1ZDdiNjA3NzU1ZWIyNzdmOWQ1MWZjZGI3Mjg3ZTI0L2Vycm9yLXN0YWNrLXBhcnNlci5qcyNMNTlDMzMtTDU5QzYyXG4gIHN0YWNrID0gc3RhY2tcbiAgICAuc3BsaXQoJ1xcbicpXG4gICAgLm1hcCgobGluZSkgPT4ge1xuICAgICAgaWYgKGxpbmUuaW5jbHVkZXMoJyhldmFsICcpKSB7XG4gICAgICAgIGxpbmUgPSBsaW5lXG4gICAgICAgICAgLnJlcGxhY2UoL2V2YWwgY29kZS9nLCAnZXZhbCcpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcKGV2YWwgYXQgW14oKV0qIFxcKC8sICcoZmlsZTovLycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcKSwuKiQvZywgJyknKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGluZVxuICAgIH0pXG4gICAgLmpvaW4oJ1xcbicpXG5cbiAgY29uc3QgZnJhbWVzID0gcGFyc2Uoc3RhY2spXG4gIHJldHVybiBmcmFtZXMubWFwKChmcmFtZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGZyYW1lLmZpbGUhKVxuICAgICAgY29uc3QgcmVzID0gcmVnZXhOZXh0U3RhdGljLmV4ZWModXJsLnBhdGhuYW1lKVxuICAgICAgaWYgKHJlcykge1xuICAgICAgICBjb25zdCBkaXN0RGlyID0gcHJvY2Vzcy5lbnYuX19ORVhUX0RJU1RfRElSXG4gICAgICAgICAgPy5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgICAgICAgICA/LnJlcGxhY2UoL1xcLyQvLCAnJylcbiAgICAgICAgaWYgKGRpc3REaXIpIHtcbiAgICAgICAgICBmcmFtZS5maWxlID0gJ2ZpbGU6Ly8nICsgZGlzdERpci5jb25jYXQocmVzLnBvcCgpISkgKyB1cmwuc2VhcmNoXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIHt9XG4gICAgcmV0dXJuIGZyYW1lXG4gIH0pXG59XG4iXSwibmFtZXMiOlsicGFyc2VTdGFjayIsInJlZ2V4TmV4dFN0YXRpYyIsInN0YWNrIiwibWVzc2FnZUFuZFN0YWNrIiwicmVwbGFjZSIsImlzUmVhY3RIeWRyYXRpb25FcnJvck1lc3NhZ2UiLCJwYXJzZWRTdGFjayIsImdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvIiwic3BsaXQiLCJtYXAiLCJsaW5lIiwiaW5jbHVkZXMiLCJqb2luIiwiZnJhbWVzIiwicGFyc2UiLCJmcmFtZSIsInVybCIsIlVSTCIsImZpbGUiLCJyZXMiLCJleGVjIiwicGF0aG5hbWUiLCJwcm9jZXNzIiwiZGlzdERpciIsImVudiIsIl9fTkVYVF9ESVNUX0RJUiIsImNvbmNhdCIsInBvcCIsInNlYXJjaCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js":
|
||
/*!**************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcnVudGltZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHNCQUFzQjtJQUNqQ0MsaUJBQWlCO0FBQ25CIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaGVscGVyc1xccnVudGltZS1lcnJvci1oYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSdW50aW1lRXJyb3JIYW5kbGVyID0ge1xuICBoYWRSdW50aW1lRXJyb3I6IGZhbHNlLFxufVxuIl0sIm5hbWVzIjpbIlJ1bnRpbWVFcnJvckhhbmRsZXIiLCJoYWRSdW50aW1lRXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js":
|
||
/*!****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.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 getFrameSource: function() {\n return getFrameSource;\n },\n getOriginalStackFrames: function() {\n return getOriginalStackFrames;\n }\n});\nconst _webpackmodulepath = __webpack_require__(/*! ./webpack-module-path */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.js\");\nfunction getOriginalStackFrame(source, type, isAppDir, errorMessage) {\n var _source_file, _source_file1;\n async function _getOriginalStackFrame() {\n var _body_originalStackFrame;\n const params = new URLSearchParams();\n params.append('isServer', String(type === 'server'));\n params.append('isEdgeServer', String(type === 'edge-server'));\n params.append('isAppDirectory', String(isAppDir));\n params.append('errorMessage', errorMessage);\n for(const key in source){\n var _source_key;\n params.append(key, ((_source_key = source[key]) != null ? _source_key : '').toString());\n }\n const controller = new AbortController();\n const tm = setTimeout(()=>controller.abort(), 3000);\n const res = await self.fetch(( false || '') + \"/__nextjs_original-stack-frame?\" + params.toString(), {\n signal: controller.signal\n }).finally(()=>{\n clearTimeout(tm);\n });\n if (!res.ok || res.status === 204) {\n return Promise.reject(new Error(await res.text()));\n }\n const body = await res.json();\n return {\n error: false,\n reason: null,\n external: false,\n sourceStackFrame: source,\n originalStackFrame: body.originalStackFrame,\n originalCodeFrame: body.originalCodeFrame || null,\n sourcePackage: body.sourcePackage,\n ignored: ((_body_originalStackFrame = body.originalStackFrame) == null ? void 0 : _body_originalStackFrame.ignored) || false\n };\n }\n // TODO: merge this section into ignoredList handling\n if (source.file === 'file://' || ((_source_file = source.file) == null ? void 0 : _source_file.match(/^node:/)) || ((_source_file1 = source.file) == null ? void 0 : _source_file1.match(/https?:\\/\\//))) {\n return Promise.resolve({\n error: false,\n reason: null,\n external: true,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null,\n sourcePackage: null,\n ignored: true\n });\n }\n return _getOriginalStackFrame().catch((err)=>{\n var _err_message, _ref;\n return {\n error: true,\n reason: (_ref = (_err_message = err == null ? void 0 : err.message) != null ? _err_message : err == null ? void 0 : err.toString()) != null ? _ref : 'Unknown Error',\n external: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null,\n sourcePackage: null,\n ignored: false\n };\n });\n}\nfunction getOriginalStackFrames(frames, type, isAppDir, errorMessage) {\n return Promise.all(frames.map((frame)=>getOriginalStackFrame(frame, type, isAppDir, errorMessage)));\n}\nfunction getFrameSource(frame) {\n if (!frame.file) return '';\n const isWebpackFrame = (0, _webpackmodulepath.isWebpackInternalResource)(frame.file);\n let str = '';\n // Skip URL parsing for webpack internal file paths.\n if (isWebpackFrame) {\n str = (0, _webpackmodulepath.formatFrameSourceFile)(frame.file);\n } else {\n try {\n var _globalThis_location;\n const u = new URL(frame.file);\n let parsedPath = '';\n // Strip the origin for same-origin scripts.\n if (((_globalThis_location = globalThis.location) == null ? void 0 : _globalThis_location.origin) !== u.origin) {\n // URLs can be valid without an `origin`, so long as they have a\n // `protocol`. However, `origin` is preferred.\n if (u.origin === 'null') {\n parsedPath += u.protocol;\n } else {\n parsedPath += u.origin;\n }\n }\n // Strip query string information as it's typically too verbose to be\n // meaningful.\n parsedPath += u.pathname;\n str = (0, _webpackmodulepath.formatFrameSourceFile)(parsedPath);\n } catch (e) {\n str = (0, _webpackmodulepath.formatFrameSourceFile)(frame.file);\n }\n }\n if (!(0, _webpackmodulepath.isWebpackInternalResource)(frame.file) && frame.lineNumber != null) {\n if (str) {\n if (frame.column != null) {\n str += \" (\" + frame.lineNumber + \":\" + frame.column + \")\";\n } else {\n str += \" (\" + frame.lineNumber + \")\";\n }\n }\n }\n return str;\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=stack-frame.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvc3RhY2stZnJhbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBc0dnQkEsY0FBYztlQUFkQTs7SUFiQUMsc0JBQXNCO2VBQXRCQTs7OytDQXBGVDtBQVNQLFNBQVNDLHNCQUNQQyxNQUFrQixFQUNsQkMsSUFBcUMsRUFDckNDLFFBQWlCLEVBQ2pCQyxZQUFvQjtRQTRDbEJILGNBQ0FBO0lBM0NGLGVBQWVJO1lBbUNGQztRQWxDWCxNQUFNQyxTQUFTLElBQUlDO1FBQ25CRCxPQUFPRSxNQUFNLENBQUMsWUFBWUMsT0FBT1IsU0FBUztRQUMxQ0ssT0FBT0UsTUFBTSxDQUFDLGdCQUFnQkMsT0FBT1IsU0FBUztRQUM5Q0ssT0FBT0UsTUFBTSxDQUFDLGtCQUFrQkMsT0FBT1A7UUFDdkNJLE9BQU9FLE1BQU0sQ0FBQyxnQkFBZ0JMO1FBQzlCLElBQUssTUFBTU8sT0FBT1YsT0FBUTtnQkFDSjtZQUFwQk0sT0FBT0UsTUFBTSxDQUFDRSxLQUFNLGdCQUFDVixNQUFjLENBQUNVLElBQUFBLEtBQUksT0FBcEIsY0FBd0IsR0FBQyxDQUFHQyxRQUFRO1FBQzFEO1FBRUEsTUFBTUMsYUFBYSxJQUFJQztRQUN2QixNQUFNQyxLQUFLQyxXQUFXLElBQU1ILFdBQVdJLEtBQUssSUFBSTtRQUNoRCxNQUFNQyxNQUFNLE1BQU1DLEtBQ2ZDLEtBQUssQ0FFRkMsQ0FBQUEsTUFBa0MsSUFBSSxHQUFDLEdBQ3hDLG9DQUFpQ2QsT0FBT0ssUUFBUSxJQUNqRDtZQUFFWSxRQUFRWCxXQUFXVyxNQUFNO1FBQUMsR0FFN0JDLE9BQU8sQ0FBQztZQUNQQyxhQUFhWDtRQUNmO1FBQ0YsSUFBSSxDQUFDRyxJQUFJUyxFQUFFLElBQUlULElBQUlVLE1BQU0sS0FBSyxLQUFLO1lBQ2pDLE9BQU9DLFFBQVFDLE1BQU0sQ0FBQyxJQUFJQyxN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QUksQ0FBQ1csQ0FBQUEsR0FBQUEsbUJBQUFBLHlCQUFBQSxFQUEwQkYsTUFBTVQsSUFBSSxLQUFLUyxNQUFNYSxVQUFVLElBQUksTUFBTTtRQUN0RSxJQUFJVixLQUFLO1lBQ1AsSUFBSUgsTUFBTWMsTUFBTSxJQUFJLE1BQU07Z0JBQ3hCWCxPQUFRLE9BQUlILE1BQU1hLFVBQVUsR0FBQyxNQUFHYixNQUFNYyxNQUFNLEdBQUM7WUFDL0MsT0FBTztnQkFDTFgsT0FBUSxPQUFJSCxNQUFNYSxVQUFVLEdBQUM7WUFDL0I7UUFDRjtJQUNGO0lBQ0EsT0FBT1Y7QUFDVCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGhlbHBlcnNcXHN0YWNrLWZyYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tGcmFtZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCB0eXBlIHsgT3JpZ2luYWxTdGFja0ZyYW1lUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvc2hhcmVkJ1xuaW1wb3J0IHtcbiAgaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZSxcbiAgZm9ybWF0RnJhbWVTb3VyY2VGaWxlLFxufSBmcm9tICcuL3dlYnBhY2stbW9kdWxlLXBhdGgnXG5leHBvcnQgaW50ZXJmYWNlIE9yaWdpbmFsU3RhY2tGcmFtZSBleHRlbmRzIE9yaWdpbmFsU3RhY2tGcmFtZVJlc3BvbnNlIHtcbiAgZXJyb3I6IGJvb2xlYW5cbiAgcmVhc29uOiBzdHJpbmcgfCBudWxsXG4gIGV4dGVybmFsOiBib29sZWFuXG4gIGlnbm9yZWQ6IGJvb2xlYW5cbiAgc291cmNlU3RhY2tGcmFtZTogU3RhY2tGcmFtZVxufVxuXG5mdW5jdGlvbiBnZXRPcmlnaW5hbFN0YWNrRnJhbWUoXG4gIHNvdXJjZTogU3RhY2tGcmFtZSxcbiAgdHlwZTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCxcbiAgaXNBcHBEaXI6IGJvb2xlYW4sXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4pOiBQcm9taXNlPE9yaWdpbmFsU3RhY2tGcmFtZT4ge1xuICBhc3luYyBmdW5jdGlvbiBfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKCk6IFByb21pc2U8T3JpZ2luYWxTdGFja0ZyYW1lPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgcGFyYW1zLmFwcGVuZCgnaXNTZXJ2ZXInLCBTdHJpbmcodHlwZSA9PT0gJ3NlcnZlcicpKVxuICAgIHBhcmFtcy5hcHBlbmQoJ2lzRWRnZVNlcnZlcicsIFN0cmluZyh0eXBlID09PSAnZWRnZS1zZXJ2ZXInKSlcbiAgICBwYXJhbXMuYXBwZW5kKCdpc0FwcERpcmVjdG9yeScsIFN0cmluZyhpc0FwcERpcikpXG4gICAgcGFyYW1zLmFwcGVuZCgnZXJyb3JNZXNzYWdlJywgZXJyb3JNZXNzYWdlKVxuICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgICAgcGFyYW1zLmFwcGVuZChrZXksICgoc291cmNlIGFzIGFueSlba2V5XSA/PyAnJykudG9TdHJpbmcoKSlcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgY29uc3QgdG0gPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgMzAwMClcbiAgICBjb25zdCByZXMgPSBhd2FpdCBzZWxmXG4gICAgICAuZmV0Y2goXG4gICAgICAgIGAke1xuICAgICAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgJydcbiAgICAgICAgfS9fX25leHRqc19vcmlnaW5hbC1zdGFjay1mcmFtZT8ke3BhcmFtcy50b1N0cmluZygpfWAsXG4gICAgICAgIHsgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCB9XG4gICAgICApXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0bSlcbiAgICAgIH0pXG4gICAgaWYgKCFyZXMub2sgfHwgcmVzLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGF3YWl0IHJlcy50ZXh0KCkpKVxuICAgIH1cblxuICAgIGNvbnN0IGJvZHk6IE9yaWdpbmFsU3RhY2tGcmFtZVJlc3BvbnNlID0gYXdhaXQgcmVzLmpzb24oKVxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogZmFsc2UsXG4gICAgICByZWFzb246IG51bGwsXG4gICAgICBleHRlcm5hbDogZmFsc2UsXG4gICAgICBzb3VyY2VTdGFja0ZyYW1lOiBzb3VyY2UsXG4gICAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lLFxuICAgICAgb3JpZ2luYWxDb2RlRnJhbWU6IGJvZHkub3JpZ2luYWxDb2RlRnJhbWUgfHwgbnVsbCxcbiAgICAgIHNvdXJjZVBhY2thZ2U6IGJvZHkuc291cmNlUGFja2FnZSxcbiAgICAgIGlnbm9yZWQ6IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lPy5pZ25vcmVkIHx8IGZhbHNlLFxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IG1lcmdlIHRoaXMgc2VjdGlvbiBpbnRvIGlnbm9yZWRMaXN0IGhhbmRsaW5nXG4gIGlmIChcbiAgICBzb3VyY2UuZmlsZSA9PT0gJ2ZpbGU6Ly8nIHx8XG4gICAgc291cmNlLmZpbGU/Lm1hdGNoKC9ebm9kZTovKSB8fFxuICAgIHNvdXJjZS5maWxlPy5tYXRjaCgvaHR0cHM/OlxcL1xcLy8pXG4gICkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICBzb3VyY2VTdGFja0ZyYW1lOiBzb3VyY2UsXG4gICAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IG51bGwsXG4gICAgICBvcmlnaW5hbENvZGVGcmFtZTogbnVsbCxcbiAgICAgIHNvdXJjZVBhY2thZ2U6IG51bGwsXG4gICAgICBpZ25vcmVkOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gX2dldE9yaWdpbmFsU3RhY2tGcmFtZSgpLmNhdGNoKChlcnI6IEVycm9yKSA9PiAoe1xuICAgIGVycm9yOiB0cnVlLFxuICAgIHJlYXNvbjogZXJyPy5tZXNzYWdlID8/IGVycj8udG9TdHJpbmcoKSA/PyAnVW5rbm93biBFcnJvcicsXG4gICAgZXh0ZXJuYWw6IGZhbHNlLFxuICAgIHNvdXJjZVN0YWNrRnJhbWU6IHNvdXJjZSxcbiAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IG51bGwsXG4gICAgb3JpZ2luYWxDb2RlRnJhbWU6IG51bGwsXG4gICAgc291cmNlUGFja2FnZTogbnVsbCxcbiAgICBpZ25vcmVkOiBmYWxzZSxcbiAgfSkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmlnaW5hbFN0YWNrRnJhbWVzKFxuICBmcmFtZXM6IFN0YWNrRnJhbWVbXSxcbiAgdHlwZTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCxcbiAgaXNBcHBEaXI6IGJvb2xlYW4sXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4pIHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIGZyYW1lcy5tYXAoKGZyYW1lKSA9PlxuICAgICAgZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKGZyYW1lLCB0eXBlLCBpc0FwcERpciwgZXJyb3JNZXNzYWdlKVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RnJhbWVTb3VyY2UoZnJhbWU6IFN0YWNrRnJhbWUpOiBzdHJpbmcge1xuICBpZiAoIWZyYW1lLmZpbGUpIHJldHVybiAnJ1xuXG4gIGNvbnN0IGlzV2VicGFja0ZyYW1lID0gaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZShmcmFtZS5maWxlKVxuXG4gIGxldCBzdHIgPSAnJ1xuICAvLyBTa2lwIFVSTCBwYXJzaW5nIGZvciB3ZWJwYWNrIGludGVybmFsIGZpbGUgcGF0aHMuXG4gIGlmIChpc1dlYnBhY2tGcmFtZSkge1xuICAgIHN0ciA9IGZvcm1hdEZyYW1lU291cmNlRmlsZShmcmFtZS5maWxlKVxuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1ID0gbmV3IFVSTChmcmFtZS5maWxlKVxuXG4gICAgICBsZXQgcGFyc2VkUGF0aCA9ICcnXG4gICAgICAvLyBTdHJpcCB0aGUgb3JpZ2luIGZvciBzYW1lLW9yaWdpbiBzY3JpcHRzLlxuICAgICAgaWYgKGdsb2JhbFRoaXMubG9jYXRpb24/Lm9yaWdpbiAhPT0gdS5vcmlnaW4pIHtcbiAgICAgICAgLy8gVVJMcyBjYW4gYmUgdmFsaWQgd2l0aG91dCBhbiBgb3JpZ2luYCwgc28gbG9uZyBhcyB0aGV5IGhhdmUgYVxuICAgICAgICAvLyBgcHJvdG9jb2xgLiBIb3dldmVyLCBgb3JpZ2luYCBpcyBwcmVmZXJyZWQuXG4gICAgICAgIGlmICh1Lm9yaWdpbiA9PT0gJ251bGwnKSB7XG4gICAgICAgICAgcGFyc2VkUGF0aCArPSB1LnByb3RvY29sXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyc2VkUGF0aCArPSB1Lm9yaWdpblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFN0cmlwIHF1ZXJ5IHN0cmluZyBpbmZvcm1hdGlvbiBhcyBpdCdzIHR5cGljYWxseSB0b28gdmVyYm9zZSB0byBiZVxuICAgICAgLy8gbWVhbmluZ2Z1bC5cbiAgICAgIHBhcnNlZFBhdGggKz0gdS5wYXRobmFtZVxuICAgICAgc3RyID0gZm9ybWF0RnJhbWVTb3VyY2VGaWxlKHBhcnNlZFBhdGgpXG4gICAgfSBjYXRjaCB7XG4gICAgICBzdHIgPSBmb3JtYXRGcmFtZVNvdXJjZUZpbGUoZnJhbWUuZmlsZSlcbiAgICB9XG4gIH1cblxuICBpZiAoIWlzV2VicGFja0ludGVybmFsUmVzb3VyY2UoZnJhbWUuZmlsZSkgJiYgZnJhbWUubGluZU51bWJlciAhPSBudWxsKSB7XG4gICAgaWYgKHN0cikge1xuICAgICAgaWYgKGZyYW1lLmNvbHVtbiAhPSBudWxsKSB7XG4gICAgICAgIHN0ciArPSBgICgke2ZyYW1lLmxpbmVOdW1iZXJ9OiR7ZnJhbWUuY29sdW1ufSlgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdHIgKz0gYCAoJHtmcmFtZS5saW5lTnVtYmVyfSlgXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJnZXRGcmFtZVNvdXJjZSIsImdldE9yaWdpbmFsU3RhY2tGcmFtZXMiLCJnZXRPcmlnaW5hbFN0YWNrRnJhbWUiLCJzb3VyY2UiLCJ0eXBlIiwiaXNBcHBEaXIiLCJlcnJvck1lc3NhZ2UiLCJfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lIiwiYm9keSIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsIlN0cmluZyIsImtleSIsInRvU3RyaW5nIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsInRtIiwic2V0VGltZW91dCIsImFib3J0IiwicmVzIiwic2VsZiIsImZldGNoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJzaWduYWwiLCJmaW5hbGx5IiwiY2xlYXJUaW1lb3V0Iiwib2siLCJzdGF0dXMiLCJQcm9taXNlIiwicmVqZWN0IiwiRXJyb3IiLCJ0ZXh0IiwianNvbiIsImVycm9yIiwicmVhc29uIiwiZXh0ZXJuYWwiLCJzb3VyY2VTdGFja0ZyYW1lIiwib3JpZ2luYWxTdGFja0ZyYW1lIiwib3JpZ2luYWxDb2RlRnJhbWUiLCJzb3VyY2VQYWNrYWdlIiwiaWdub3JlZCIsImZpbGUiLCJtYXRjaCIsInJlc29sdmUiLCJjYXRjaCIsImVyciIsIm1lc3NhZ2UiLCJmcmFtZXMiLCJhbGwiLCJtYXAiLCJmcmFtZSIsImlzV2VicGFja0ZyYW1lIiwiaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZSIsInN0ciIsImZvcm1hdEZyYW1lU291cmNlRmlsZSIsImdsb2JhbFRoaXMiLCJ1IiwiVVJMIiwicGFyc2VkUGF0aCIsImxvY2F0aW9uIiwib3JpZ2luIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImxpbmVOdW1iZXIiLCJjb2x1bW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js":
|
||
/*!*******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js ***!
|
||
\*******************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getReactStitchedError\", ({\n enumerable: true,\n get: function() {\n return getReactStitchedError;\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 REACT_ERROR_STACK_BOTTOM_FRAME = 'react-stack-bottom-frame';\nconst REACT_ERROR_STACK_BOTTOM_FRAME_REGEX = new RegExp(\"(at \" + REACT_ERROR_STACK_BOTTOM_FRAME + \" )|(\" + REACT_ERROR_STACK_BOTTOM_FRAME + \"\\\\@)\");\nconst captureOwnerStack = _react.default.captureOwnerStack ? _react.default.captureOwnerStack : ()=>'';\nfunction getReactStitchedError(err) {\n if (typeof _react.default.captureOwnerStack !== 'function') {\n return err;\n }\n const isErrorInstance = (0, _iserror.default)(err);\n const originStack = isErrorInstance ? err.stack || '' : '';\n const originMessage = isErrorInstance ? err.message : '';\n const stackLines = originStack.split('\\n');\n const indexOfSplit = stackLines.findIndex((line)=>REACT_ERROR_STACK_BOTTOM_FRAME_REGEX.test(line));\n const isOriginalReactError = indexOfSplit >= 0 // has the react-stack-bottom-frame\n ;\n let newStack = isOriginalReactError ? stackLines.slice(0, indexOfSplit).join('\\n') : originStack;\n const newError = new Error(originMessage);\n // Copy all enumerable properties, e.g. digest\n Object.assign(newError, err);\n newError.stack = newStack;\n // Avoid duplicate overriding stack frames\n appendOwnerStack(newError);\n return newError;\n}\nfunction appendOwnerStack(error) {\n let stack = error.stack || '';\n // Avoid duplicate overriding stack frames\n const ownerStack = captureOwnerStack();\n if (ownerStack && stack.endsWith(ownerStack) === false) {\n stack += ownerStack;\n // Override stack\n error.stack = stack;\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=stitched-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvc3RpdGNoZWQtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozt5REFZZ0JBOzs7ZUFBQUE7Ozs7NEVBWkU7OEVBQ0U7QUFFcEIsTUFBTUMsaUNBQWlDO0FBQ3ZDLE1BQU1DLHVDQUF1QyxJQUFJQyxPQUM5QyxTQUFNRixpQ0FBK0IsU0FBTUEsaUNBQStCO0FBRzdFLE1BQU1HLG9CQUFxQkMsT0FBQUEsT0FBSyxDQUFTRCxpQkFBaUIsR0FDckRDLE9BQUFBLE9BQUssQ0FBU0QsaUJBQWlCLEdBQ2hDLElBQU07QUFFSCxTQUFTSixzQkFBbUNNLEdBQU07SUFDdkQsSUFBSSxPQUFRRCxPQUFBQSxPQUFLLENBQVNELGlCQUFpQixLQUFLLFlBQVk7UUFDMUQsT0FBT0U7SUFDVDtJQUNBLE1BQU1DLGtCQUFrQkMsQ0FBQUEsR0FBQUEsU0FBQUEsT0FBQUEsRUFBUUY7SUFDaEMsTUFBTUcsY0FBY0Ysa0JBQWtCRCxJQUFJSSxLQUFLLElBQUksS0FBSztJQUN4RCxNQUFNQyxnQkFBZ0JKLGtCQUFrQkQsSUFBSU0sT0FBTyxHQUFHO0lBQ3RELE1BQU1DLGFBQWFKLFlBQVlLLEtBQUssQ0FBQztJQUNyQyxNQUFNQyxlQUFlRixXQUFXRyxTQUFTLENBQUMsQ0FBQ0MsT0FDekNmLHFDQUFxQ2dCLElBQUksQ0FBQ0Q7SUFFNUMsTUFBTUUsdUJBQXVCSixnQkFBZ0IsRUFBRSxtQ0FBbUM7O0lBQ2xGLElBQUlLLFdBQVdELHVCQUNYTixXQUFXUSxLQUFLLENBQUMsR0FBR04sY0FBY08sSUFBSSxDQUFDLFFBQ3ZDYjtJQUVKLE1BQU1jLFdBQVcsSUFBSUMsTUFBTWI7SUFDM0IsOENBQThDO0lBQzlDYyxPQUFPQyxNQUFNLENBQUNILFVBQVVqQjtJQUN4QmlCLFNBQVNiLEtBQUssR0FBR1U7SUFFakIsMENBQTBDO0lBQzFDTyxpQkFBaUJKO0lBRWpCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTSSxpQkFBaUJDLEtBQVk7SUFDcEMsSUFBSWxCLFFBQVFrQixNQUFNbEIsS0FBSyxJQUFJO0lBQzNCLDBDQUEwQztJQUMxQyxNQUFNbUIsYUFBYXpCO0lBQ25CLElBQUl5QixjQUFjbkIsTUFBTW9CLFFBQVEsQ0FBQ0QsZ0JBQWdCLE9BQU87UUFDdERuQixTQUFTbUI7UUFDVCxpQkFBaUI7UUFDakJELE1BQU1sQixLQUFLLEdBQUdBO0lBQ2hCO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxoZWxwZXJzXFxzdGl0Y2hlZC1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWIvaXMtZXJyb3InXG5cbmNvbnN0IFJFQUNUX0VSUk9SX1NUQUNLX0JPVFRPTV9GUkFNRSA9ICdyZWFjdC1zdGFjay1ib3R0b20tZnJhbWUnXG5jb25zdCBSRUFDVF9FUlJPUl9TVEFDS19CT1RUT01fRlJBTUVfUkVHRVggPSBuZXcgUmVnRXhwKFxuICBgKGF0ICR7UkVBQ1RfRVJST1JfU1RBQ0tfQk9UVE9NX0ZSQU1FfSApfCgke1JFQUNUX0VSUk9SX1NUQUNLX0JPVFRPTV9GUkFNRX1cXFxcQClgXG4pXG5cbmNvbnN0IGNhcHR1cmVPd25lclN0YWNrID0gKFJlYWN0IGFzIGFueSkuY2FwdHVyZU93bmVyU3RhY2tcbiAgPyAoUmVhY3QgYXMgYW55KS5jYXB0dXJlT3duZXJTdGFja1xuICA6ICgpID0+ICcnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWFjdFN0aXRjaGVkRXJyb3I8VCA9IHVua25vd24+KGVycjogVCk6IEVycm9yIHwgVCB7XG4gIGlmICh0eXBlb2YgKFJlYWN0IGFzIGFueSkuY2FwdHVyZU93bmVyU3RhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZXJyXG4gIH1cbiAgY29uc3QgaXNFcnJvckluc3RhbmNlID0gaXNFcnJvcihlcnIpXG4gIGNvbnN0IG9yaWdpblN0YWNrID0gaXNFcnJvckluc3RhbmNlID8gZXJyLnN0YWNrIHx8ICcnIDogJydcbiAgY29uc3Qgb3JpZ2luTWVzc2FnZSA9IGlzRXJyb3JJbnN0YW5jZSA/IGVyci5tZXNzYWdlIDogJydcbiAgY29uc3Qgc3RhY2tMaW5lcyA9IG9yaWdpblN0YWNrLnNwbGl0KCdcXG4nKVxuICBjb25zdCBpbmRleE9mU3BsaXQgPSBzdGFja0xpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBSRUFDVF9FUlJPUl9TVEFDS19CT1RUT01fRlJBTUVfUkVHRVgudGVzdChsaW5lKVxuICApXG4gIGNvbnN0IGlzT3JpZ2luYWxSZWFjdEVycm9yID0gaW5kZXhPZlNwbGl0ID49IDAgLy8gaGFzIHRoZSByZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcbiAgbGV0IG5ld1N0YWNrID0gaXNPcmlnaW5hbFJlYWN0RXJyb3JcbiAgICA/IHN0YWNrTGluZXMuc2xpY2UoMCwgaW5kZXhPZlNwbGl0KS5qb2luKCdcXG4nKVxuICAgIDogb3JpZ2luU3RhY2tcblxuICBjb25zdCBuZXdFcnJvciA9IG5ldyBFcnJvcihvcmlnaW5NZXNzYWdlKVxuICAvLyBDb3B5IGFsbCBlbnVtZXJhYmxlIHByb3BlcnRpZXMsIGUuZy4gZGlnZXN0XG4gIE9iamVjdC5hc3NpZ24obmV3RXJyb3IsIGVycilcbiAgbmV3RXJyb3Iuc3RhY2sgPSBuZXdTdGFja1xuXG4gIC8vIEF2b2lkIGR1cGxpY2F0ZSBvdmVycmlkaW5nIHN0YWNrIGZyYW1lc1xuICBhcHBlbmRPd25lclN0YWNrKG5ld0Vycm9yKVxuXG4gIHJldHVybiBuZXdFcnJvclxufVxuXG5mdW5jdGlvbiBhcHBlbmRPd25lclN0YWNrKGVycm9yOiBFcnJvcikge1xuICBsZXQgc3RhY2sgPSBlcnJvci5zdGFjayB8fCAnJ1xuICAvLyBBdm9pZCBkdXBsaWNhdGUgb3ZlcnJpZGluZyBzdGFjayBmcmFtZXNcbiAgY29uc3Qgb3duZXJTdGFjayA9IGNhcHR1cmVPd25lclN0YWNrKClcbiAgaWYgKG93bmVyU3RhY2sgJiYgc3RhY2suZW5kc1dpdGgob3duZXJTdGFjaykgPT09IGZhbHNlKSB7XG4gICAgc3RhY2sgKz0gb3duZXJTdGFja1xuICAgIC8vIE92ZXJyaWRlIHN0YWNrXG4gICAgZXJyb3Iuc3RhY2sgPSBzdGFja1xuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0UmVhY3RTdGl0Y2hlZEVycm9yIiwiUkVBQ1RfRVJST1JfU1RBQ0tfQk9UVE9NX0ZSQU1FIiwiUkVBQ1RfRVJST1JfU1RBQ0tfQk9UVE9NX0ZSQU1FX1JFR0VYIiwiUmVnRXhwIiwiY2FwdHVyZU93bmVyU3RhY2siLCJSZWFjdCIsImVyciIsImlzRXJyb3JJbnN0YW5jZSIsImlzRXJyb3IiLCJvcmlnaW5TdGFjayIsInN0YWNrIiwib3JpZ2luTWVzc2FnZSIsIm1lc3NhZ2UiLCJzdGFja0xpbmVzIiwic3BsaXQiLCJpbmRleE9mU3BsaXQiLCJmaW5kSW5kZXgiLCJsaW5lIiwidGVzdCIsImlzT3JpZ2luYWxSZWFjdEVycm9yIiwibmV3U3RhY2siLCJzbGljZSIsImpvaW4iLCJuZXdFcnJvciIsIkVycm9yIiwiT2JqZWN0IiwiYXNzaWduIiwiYXBwZW5kT3duZXJTdGFjayIsImVycm9yIiwib3duZXJTdGFjayIsImVuZHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-error-handler.js":
|
||
/*!**********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/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 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 _attachhydrationerrorstate = __webpack_require__(/*! ./attach-hydration-error-state */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../../is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _hydrationerrorinfo = __webpack_require__(/*! ./hydration-error-info */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\");\nconst _console = __webpack_require__(/*! ../../../../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__(/*! ./console-error */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js\");\nconst _enqueueclienterror = __webpack_require__(/*! ./enqueue-client-error */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/enqueue-client-error.js\");\nconst _stitchederror = __webpack_require__(/*! ./stitched-error */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js\");\nconst queueMicroTask = globalThis.queueMicrotask || ((cb)=>Promise.resolve().then(cb));\nconst errorQueue = [];\nconst errorHandlers = [];\nconst rejectionQueue = [];\nconst rejectionHandlers = [];\nfunction handleClientError(originError, consoleErrorArgs, capturedFromConsole) {\n if (capturedFromConsole === void 0) capturedFromConsole = false;\n let error;\n if (!originError || !(0, _iserror.default)(originError)) {\n // If it's not an error, format the args into an error\n const formattedErrorMessage = (0, _console.formatConsoleArgs)(consoleErrorArgs);\n error = (0, _consoleerror.createUnhandledError)(formattedErrorMessage);\n } else {\n error = capturedFromConsole ? (0, _consoleerror.createUnhandledError)(originError) : originError;\n }\n error = (0, _stitchederror.getReactStitchedError)(error);\n (0, _hydrationerrorinfo.storeHydrationErrorStateFromConsoleArgs)(...consoleErrorArgs);\n (0, _attachhydrationerrorstate.attachHydrationErrorState)(error);\n (0, _enqueueclienterror.enqueueConsecutiveDedupedError)(errorQueue, 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 };\n }, [\n handleOnUnhandledError,\n handleOnUnhandledRejection\n ]);\n}\nfunction onUnhandledError(event) {\n if ((0, _isnextroutererror.isNextRouterError)(event.error)) {\n event.preventDefault();\n return false;\n }\n handleClientError(event.error, []);\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 let error = reason;\n if (error && !(0, _iserror.default)(error)) {\n error = (0, _consoleerror.createUnhandledError)(error + '');\n }\n rejectionQueue.push(error);\n for (const handler of rejectionHandlers){\n handler(error);\n }\n}\nfunction handleGlobalErrors() {\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=use-error-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvdXNlLWVycm9yLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb0JnQkEsaUJBQWlCO2VBQWpCQTs7SUFnRkFDLGtCQUFrQjtlQUFsQkE7O0lBbERBQyxlQUFlO2VBQWZBOzs7O21DQWxEVTt1REFDZ0I7K0NBQ1I7Z0RBQ3NCO3FDQUN0Qjs4RUFDZDswQ0FDaUI7Z0RBQ1U7MkNBQ1Q7QUFFdEMsTUFBTUMsaUJBQ0pDLFdBQVdDLGNBQWMsSUFBSyxFQUFDQyxLQUFtQkMsUUFBUUMsT0FBTyxHQUFHQyxJQUFJLENBQUNILEdBQUFBLENBQUU7QUFJN0UsTUFBTUksYUFBMkIsRUFBRTtBQUNuQyxNQUFNQyxnQkFBcUMsRUFBRTtBQUM3QyxNQUFNQyxpQkFBK0IsRUFBRTtBQUN2QyxNQUFNQyxvQkFBeUMsRUFBRTtBQUUxQyxTQUFTYixrQkFDZGMsV0FBb0IsRUFDcEJDLGdCQUF1QixFQUN2QkMsbUJBQW9DO0lBQXBDQSxJQUFBQSx3QkFBQUEsS0FBQUEsR0FBQUEsc0JBQStCO0lBRS9CLElBQUlDO0lBQ0osSUFBSSxDQUFDSCxlQUFlLENBQUNJLENBQUFBLEdBQUFBLFNBQUFBLE9BQUFBLEVBQVFKLGNBQWM7UUFDekMsc0RBQXNEO1FBQ3RELE1BQU1LLHdCQUF3QkMsQ0FBQUEsR0FBQUEsU0FBQUEsaUJBQUFBLEVBQWtCTDtRQUNoREUsUUFBUUksQ0FBQUEsR0FBQUEsY0FBQUEsb0JBQUFBLEVBQXFCRjtJQUMvQixPQUFPO1FBQ0xGLFFBQVFELHNCQUNKSyxDQUFBQSxHQUFBQSxjQUFBQSxvQkFBQUEsRUFBcUJQLGVBQ3JCQTtJQUNOO0lBQ0FHLFFBQVFLLENBQUFBLEdBQUFBLGVBQUFBLHFCQUFBQSxFQUFzQkw7SUFFOUJNLENBQUFBLEdBQUFBLG9CQUFBQSx1Q0FBQUEsS0FBMkNSO0lBQzNDUyxDQUFBQSxHQUFBQSwyQkFBQUEseUJBQUFBLEVBQTBCUDtJQUUxQlEsQ0FBQUEsR0FBQUEsb0JBQUFBLDhCQUFBQSxFQUErQmYsWUFBWU87SUFDM0MsS0FBSyxNQUFNUyxXQUFXZixjQUFlO1FBQ25DLHVEQUF1RDtRQUN2RCxnRUFBZ0U7UUFDaEVSLGVBQWU7WUFDYnVCLFFBQVFUO1FBQ1Y7SUFDRjtBQUNGO0FBRU8sU0FBU2YsZ0JBQ2R5QixzQkFBb0MsRUFDcENDLDBCQUF3QztJQUV4Q0MsQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSLHdCQUF3QjtRQUN4Qm5CLFdBQVdvQixPQUFPLENBQUNIO1FBQ25CZixlQUFla0IsT0FBTyxDQUFDRjtRQUV2Qix3QkFBd0I7UUFDeEJqQixjQUFjb0IsSUFBSSxDQUFDSjtRQUNuQmQsa0JBQWtCa0IsSUFBSSxDQUFDSDtRQUV2QixPQUFPO1lBQ0wsb0JBQW9CO1lBQ3BCakIsY0FBY3FCLE1BQU0sQ0FBQ3JCLGNBQWNzQixPQUFPLENBQUNOLHlCQUF5QjtZQUNwRWQsa0JBQWtCbUIsTUFBTSxDQUN0Qm5CLGtCQUFrQm9CLE9BQU8sQ0FBQ0wsNkJBQzFCO1FBRUo7SUFDRixHQUFHO1FBQUNEO1FBQXdCQztLQUEyQjtBQUN6RDtBQUVBLFNBQVNNLGlCQUFpQkMsS0FBOEI7SUFDdEQsSUFBSUMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQkQsTUFBTWxCLEtBQUssR0FBRztRQUNsQ2tCLE1BQU1FLGNBQWM7UUFDcEIsT0FBTztJQUNUO0lBQ0FyQyxrQkFBa0JtQyxNQUFNbEIsS0FBSyxFQUFFLEVBQUU7QUFDbkM7QUFFQSxTQUFTcUIscUJBQXFCQyxFQUF3QztJQUNwRSxNQUFNQyxTQUFTRCxNQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxHQUFJQyxNQUFNO0lBQ3pCLElBQUlKLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0JJLFNBQVM7UUFDN0JELEdBQUdGLGNBQWM7UUFDakI7SUFDRjtJQUVBLElBQUlwQixRQUFRdUI7SUFDWixJQUFJdkIsU0FBUyxDQUFDQyxDQUFBQSxHQUFBQSxTQUFBQSxPQUFBQSxFQUFRRCxRQUFRO1FBQzVCQSxRQUFRSSxDQUFBQSxHQUFBQSxjQUFBQSxvQkFBQUEsRUFBcUJKLFFBQVE7SUFDdkM7SUFFQUwsZUFBZW1CLElBQUksQ0FBQ2Q7SUFDcEIsS0FBSyxNQUFNUyxXQUFXYixrQkFBbUI7UUFDdkNhLFFBQVFUO0lBQ1Y7QUFDRjtBQUVPLFNBQVNoQjtJQUNkLElBQUksS0FBNkIsRUFBRSxFQVFsQztBQUNIIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaGVscGVyc1xcdXNlLWVycm9yLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBhdHRhY2hIeWRyYXRpb25FcnJvclN0YXRlIH0gZnJvbSAnLi9hdHRhY2gtaHlkcmF0aW9uLWVycm9yLXN0YXRlJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9pcy1uZXh0LXJvdXRlci1lcnJvcidcbmltcG9ydCB7IHN0b3JlSHlkcmF0aW9uRXJyb3JTdGF0ZUZyb21Db25zb2xlQXJncyB9IGZyb20gJy4vaHlkcmF0aW9uLWVycm9yLWluZm8nXG5pbXBvcnQgeyBmb3JtYXRDb25zb2xlQXJncyB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jb25zb2xlJ1xuaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGliL2lzLWVycm9yJ1xuaW1wb3J0IHsgY3JlYXRlVW5oYW5kbGVkRXJyb3IgfSBmcm9tICcuL2NvbnNvbGUtZXJyb3InXG5pbXBvcnQgeyBlbnF1ZXVlQ29uc2VjdXRpdmVEZWR1cGVkRXJyb3IgfSBmcm9tICcuL2VucXVldWUtY2xpZW50LWVycm9yJ1xuaW1wb3J0IHsgZ2V0UmVhY3RTdGl0Y2hlZEVycm9yIH0gZnJvbSAnLi9zdGl0Y2hlZC1lcnJvcidcblxuY29uc3QgcXVldWVNaWNyb1Rhc2sgPVxuICBnbG9iYWxUaGlzLnF1ZXVlTWljcm90YXNrIHx8ICgoY2I6ICgpID0+IHZvaWQpID0+IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oY2IpKVxuXG5leHBvcnQgdHlwZSBFcnJvckhhbmRsZXIgPSAoZXJyb3I6IEVycm9yKSA9PiB2b2lkXG5cbmNvbnN0IGVycm9yUXVldWU6IEFycmF5PEVycm9yPiA9IFtdXG5jb25zdCBlcnJvckhhbmRsZXJzOiBBcnJheTxFcnJvckhhbmRsZXI+ID0gW11cbmNvbnN0IHJlamVjdGlvblF1ZXVlOiBBcnJheTxFcnJvcj4gPSBbXVxuY29uc3QgcmVqZWN0aW9uSGFuZGxlcnM6IEFycmF5PEVycm9ySGFuZGxlcj4gPSBbXVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQ2xpZW50RXJyb3IoXG4gIG9yaWdpbkVycm9yOiB1bmtub3duLFxuICBjb25zb2xlRXJyb3JBcmdzOiBhbnlbXSxcbiAgY2FwdHVyZWRGcm9tQ29uc29sZTogYm9vbGVhbiA9IGZhbHNlXG4pIHtcbiAgbGV0IGVycm9yOiBFcnJvclxuICBpZiAoIW9yaWdpbkVycm9yIHx8ICFpc0Vycm9yKG9yaWdpbkVycm9yKSkge1xuICAgIC8vIElmIGl0J3Mgbm90IGFuIGVycm9yLCBmb3JtYXQgdGhlIGFyZ3MgaW50byBhbiBlcnJvclxuICAgIGNvbnN0IGZvcm1hdHRlZEVycm9yTWVzc2FnZSA9IGZvcm1hdENvbnNvbGVBcmdzKGNvbnNvbGVFcnJvckFyZ3MpXG4gICAgZXJyb3IgPSBjcmVhdGVVbmhhbmRsZWRFcnJvcihmb3JtYXR0ZWRFcnJvck1lc3NhZ2UpXG4gIH0gZWxzZSB7XG4gICAgZXJyb3IgPSBjYXB0dXJlZEZyb21Db25zb2xlXG4gICAgICA/IGNyZWF0ZVVuaGFuZGxlZEVycm9yKG9yaWdpbkVycm9yKVxuICAgICAgOiBvcmlnaW5FcnJvclxuICB9XG4gIGVycm9yID0gZ2V0UmVhY3RTdGl0Y2hlZEVycm9yKGVycm9yKVxuXG4gIHN0b3JlSHlkcmF0aW9uRXJyb3JTdGF0ZUZyb21Db25zb2xlQXJncyguLi5jb25zb2xlRXJyb3JBcmdzKVxuICBhdHRhY2hIeWRyYXRpb25FcnJvclN0YXRlKGVycm9yKVxuXG4gIGVucXVldWVDb25zZWN1dGl2ZURlZHVwZWRFcnJvcihlcnJvclF1ZXVlLCBlcnJvcilcbiAgZm9yIChjb25zdCBoYW5kbGVyIG9mIGVycm9ySGFuZGxlcnMpIHtcbiAgICAvLyBEZWxheWVkIHRoZSBlcnJvciBiZWluZyBwYXNzZWQgdG8gUmVhY3QgRGV2IE92ZXJsYXksXG4gICAgLy8gYXZvaWQgdGhlIHN0YXRlIGJlaW5nIHN5bmNocm9ub3VzbHkgdXBkYXRlZCBpbiB0aGUgY29tcG9uZW50LlxuICAgIHF1ZXVlTWljcm9UYXNrKCgpID0+IHtcbiAgICAgIGhhbmRsZXIoZXJyb3IpXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRXJyb3JIYW5kbGVyKFxuICBoYW5kbGVPblVuaGFuZGxlZEVycm9yOiBFcnJvckhhbmRsZXIsXG4gIGhhbmRsZU9uVW5oYW5kbGVkUmVqZWN0aW9uOiBFcnJvckhhbmRsZXJcbikge1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEhhbmRsZSBxdWV1ZWQgZXJyb3JzLlxuICAgIGVycm9yUXVldWUuZm9yRWFjaChoYW5kbGVPblVuaGFuZGxlZEVycm9yKVxuICAgIHJlamVjdGlvblF1ZXVlLmZvckVhY2goaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pXG5cbiAgICAvLyBMaXN0ZW4gdG8gbmV3IGVycm9ycy5cbiAgICBlcnJvckhhbmRsZXJzLnB1c2goaGFuZGxlT25VbmhhbmRsZWRFcnJvcilcbiAgICByZWplY3Rpb25IYW5kbGVycy5wdXNoKGhhbmRsZU9uVW5oYW5kbGVkUmVqZWN0aW9uKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIFJlbW92ZSBsaXN0ZW5lcnMuXG4gICAgICBlcnJvckhhbmRsZXJzLnNwbGljZShlcnJvckhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRFcnJvciksIDEpXG4gICAgICByZWplY3Rpb25IYW5kbGVycy5zcGxpY2UoXG4gICAgICAgIHJlamVjdGlvbkhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pLFxuICAgICAgICAxXG4gICAgICApXG4gICAgfVxuICB9LCBbaGFuZGxlT25VbmhhbmRsZWRFcnJvciwgaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb25dKVxufVxuXG5mdW5jdGlvbiBvblVuaGFuZGxlZEVycm9yKGV2ZW50OiBXaW5kb3dFdmVudE1hcFsnZXJyb3InXSk6IHZvaWQgfCBib29sZWFuIHtcbiAgaWYgKGlzTmV4dFJvdXRlckVycm9yKGV2ZW50LmVycm9yKSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBoYW5kbGVDbGllbnRFcnJvcihldmVudC5lcnJvciwgW10pXG59XG5cbmZ1bmN0aW9uIG9uVW5oYW5kbGVkUmVqZWN0aW9uKGV2OiBXaW5kb3dFdmVudE1hcFsndW5oYW5kbGVkcmVqZWN0aW9uJ10pOiB2b2lkIHtcbiAgY29uc3QgcmVhc29uID0gZXY/LnJlYXNvblxuICBpZiAoaXNOZXh0Um91dGVyRXJyb3IocmVhc29uKSkge1xuICAgIGV2LnByZXZlbnREZWZhdWx0KClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGxldCBlcnJvciA9IHJlYXNvblxuICBpZiAoZXJyb3IgJiYgIWlzRXJyb3IoZXJyb3IpKSB7XG4gICAgZXJyb3IgPSBjcmVhdGVVbmhhbmRsZWRFcnJvcihlcnJvciArICcnKVxuICB9XG5cbiAgcmVqZWN0aW9uUXVldWUucHVzaChlcnJvcilcbiAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHJlamVjdGlvbkhhbmRsZXJzKSB7XG4gICAgaGFuZGxlcihlcnJvcilcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlR2xvYmFsRXJyb3JzKCkge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0cnkge1xuICAgICAgLy8gSW5jcmVhc2UgdGhlIG51bWJlciBvZiBzdGFjayBmcmFtZXMgb24gdGhlIGNsaWVudFxuICAgICAgRXJyb3Iuc3RhY2tUcmFjZUxpbWl0ID0gNTBcbiAgICB9IGNhdGNoIHt9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvblVuaGFuZGxlZEVycm9yKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblVuaGFuZGxlZFJlamVjdGlvbilcbiAgfVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZUNsaWVudEVycm9yIiwiaGFuZGxlR2xvYmFsRXJyb3JzIiwidXNlRXJyb3JIYW5kbGVyIiwicXVldWVNaWNyb1Rhc2siLCJnbG9iYWxUaGlzIiwicXVldWVNaWNyb3Rhc2siLCJjYiIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImVycm9yUXVldWUiLCJlcnJvckhhbmRsZXJzIiwicmVqZWN0aW9uUXVldWUiLCJyZWplY3Rpb25IYW5kbGVycyIsIm9yaWdpbkVycm9yIiwiY29uc29sZUVycm9yQXJncyIsImNhcHR1cmVkRnJvbUNvbnNvbGUiLCJlcnJvciIsImlzRXJyb3IiLCJmb3JtYXR0ZWRFcnJvck1lc3NhZ2UiLCJmb3JtYXRDb25zb2xlQXJncyIsImNyZWF0ZVVuaGFuZGxlZEVycm9yIiwiZ2V0UmVhY3RTdGl0Y2hlZEVycm9yIiwic3RvcmVIeWRyYXRpb25FcnJvclN0YXRlRnJvbUNvbnNvbGVBcmdzIiwiYXR0YWNoSHlkcmF0aW9uRXJyb3JTdGF0ZSIsImVucXVldWVDb25zZWN1dGl2ZURlZHVwZWRFcnJvciIsImhhbmRsZXIiLCJoYW5kbGVPblVuaGFuZGxlZEVycm9yIiwiaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24iLCJ1c2VFZmZlY3QiLCJmb3JFYWNoIiwicHVzaCIsInNwbGljZSIsImluZGV4T2YiLCJvblVuaGFuZGxlZEVycm9yIiwiZXZlbnQiLCJpc05leHRSb3V0ZXJFcnJvciIsInByZXZlbnREZWZhdWx0Iiwib25VbmhhbmRsZWRSZWplY3Rpb24iLCJldiIsInJlYXNvbiIsIndpbmRvdyIsIkVycm9yIiwic3RhY2tUcmFjZUxpbWl0IiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-error-handler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js":
|
||
/*!***********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js ***!
|
||
\***********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useOpenInEditor\", ({\n enumerable: true,\n get: function() {\n return useOpenInEditor;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction useOpenInEditor(param) {\n let { file, lineNumber, column } = param === void 0 ? {} : param;\n const openInEditor = (0, _react.useCallback)(()=>{\n if (file == null || lineNumber == null || column == null) return;\n const params = new URLSearchParams();\n params.append('file', file);\n params.append('lineNumber', String(lineNumber));\n params.append('column', String(column));\n self.fetch(( false || '') + \"/__nextjs_launch-editor?\" + params.toString()).then(()=>{}, ()=>{\n console.error('There was an issue opening this code in your editor.');\n });\n }, [\n file,\n lineNumber,\n column\n ]);\n return openInEditor;\n}\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-open-in-editor.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvdXNlLW9wZW4taW4tZWRpdG9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBRWdCQTs7O2VBQUFBOzs7bUNBRlk7QUFFckIsU0FBU0EsZ0JBQWdCO0lBQUEsTUFDOUJDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxNQUFNLEVBS1AsR0FSK0IsbUJBUTVCLENBQUMsSUFSMkI7SUFTOUIsTUFBTUMsZUFBZUMsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFBWTtRQUMvQixJQUFJSixRQUFRLFFBQVFDLGNBQWMsUUFBUUMsVUFBVSxNQUFNO1FBRTFELE1BQU1HLFNBQVMsSUFBSUM7UUFDbkJELE9BQU9FLE1BQU0sQ0FBQyxRQUFRUDtRQUN0QkssT0FBT0UsTUFBTSxDQUFDLGNBQWNDLE9BQU9QO1FBQ25DSSxPQUFPRSxNQUFNLENBQUMsVUFBVUMsT0FBT047UUFFL0JPLEtBQ0dDLEtBQUssQ0FFRkMsQ0FBQUEsTUFBa0MsSUFBSSxHQUFDLEdBQ3hDLDZCQUEwQk4sT0FBT1MsUUFBUSxJQUUzQ0MsSUFBSSxDQUNILEtBQU8sR0FDUDtZQUNFQyxRQUFRQyxLQUFLLENBQUM7UUFDaEI7SUFFTixHQUFHO1FBQUNqQjtRQUFNQztRQUFZQztLQUFPO0lBRTdCLE9BQU9DO0FBQ1QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxoZWxwZXJzXFx1c2Utb3Blbi1pbi1lZGl0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9wZW5JbkVkaXRvcih7XG4gIGZpbGUsXG4gIGxpbmVOdW1iZXIsXG4gIGNvbHVtbixcbn06IHtcbiAgZmlsZT86IHN0cmluZyB8IG51bGxcbiAgbGluZU51bWJlcj86IG51bWJlciB8IG51bGxcbiAgY29sdW1uPzogbnVtYmVyIHwgbnVsbFxufSA9IHt9KSB7XG4gIGNvbnN0IG9wZW5JbkVkaXRvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoZmlsZSA9PSBudWxsIHx8IGxpbmVOdW1iZXIgPT0gbnVsbCB8fCBjb2x1bW4gPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICBwYXJhbXMuYXBwZW5kKCdmaWxlJywgZmlsZSlcbiAgICBwYXJhbXMuYXBwZW5kKCdsaW5lTnVtYmVyJywgU3RyaW5nKGxpbmVOdW1iZXIpKVxuICAgIHBhcmFtcy5hcHBlbmQoJ2NvbHVtbicsIFN0cmluZyhjb2x1bW4pKVxuXG4gICAgc2VsZlxuICAgICAgLmZldGNoKFxuICAgICAgICBgJHtcbiAgICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnXG4gICAgICAgIH0vX19uZXh0anNfbGF1bmNoLWVkaXRvcj8ke3BhcmFtcy50b1N0cmluZygpfWBcbiAgICAgIClcbiAgICAgIC50aGVuKFxuICAgICAgICAoKSA9PiB7fSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIHdhcyBhbiBpc3N1ZSBvcGVuaW5nIHRoaXMgY29kZSBpbiB5b3VyIGVkaXRvci4nKVxuICAgICAgICB9XG4gICAgICApXG4gIH0sIFtmaWxlLCBsaW5lTnVtYmVyLCBjb2x1bW5dKVxuXG4gIHJldHVybiBvcGVuSW5FZGl0b3Jcbn1cbiJdLCJuYW1lcyI6WyJ1c2VPcGVuSW5FZGl0b3IiLCJmaWxlIiwibGluZU51bWJlciIsImNvbHVtbiIsIm9wZW5JbkVkaXRvciIsInVzZUNhbGxiYWNrIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiU3RyaW5nIiwic2VsZiIsImZldGNoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJ0b1N0cmluZyIsInRoZW4iLCJjb25zb2xlIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.js":
|
||
/*!******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.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 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/components/react-dev-overlay/internal/helpers/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 __webpack_require__.e(/*! import() */ \"vendor-chunks/next\").then(__webpack_require__.t.bind(__webpack_require__, /*! @vercel/turbopack-ecmascript-runtime/browser/dev/hmr-client/hmr-client.ts */ \"(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js\", 23)).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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvdXNlLXdlYnNvY2tldC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFxQmdCQSxjQUFjO2VBQWRBOztJQWNBQyxZQUFZO2VBQVpBOztJQTlCQUMsWUFBWTtlQUFaQTs7SUFzRkFDLGdCQUFnQjtlQUFoQkE7OzttQ0EzRjJDOzJEQUNqQjswQ0FDYjtBQUd0QixTQUFTRCxhQUFhRSxXQUFtQjtJQUM5QyxNQUFNQyxlQUFlQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFNLEVBQVlDO0lBRXZDQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsSUFBSUgsYUFBYUksT0FBTyxFQUFFO1lBQ3hCO1FBQ0Y7UUFFQSxNQUFNQyxNQUFNQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhUDtRQUV6QkMsYUFBYUksT0FBTyxHQUFHLElBQUlHLE9BQU9DLFNBQVMsQ0FBRSxLQUFFSCxNQUFJO0lBQ3JELEdBQUc7UUFBQ047S0FBWTtJQUVoQixPQUFPQztBQUNUO0FBRU8sU0FBU0wsZUFBZUssWUFBNkM7SUFDMUUsTUFBTVMsY0FBY0MsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDbEIsQ0FBQ0M7UUFDQyxNQUFNQyxTQUFTWixhQUFhSSxPQUFPO1FBQ25DLElBQUksQ0FBQ1EsVUFBVUEsT0FBT0MsVUFBVSxLQUFLRCxPQUFPRSxJQUFJLEVBQUU7WUFDaEQ7UUFDRjtRQUNBLE9BQU9GLE9BQU9HLElBQUksQ0FBQ0o7SUFDckIsR0FDQTtRQUFDWDtLQUFhO0lBRWhCLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTYixhQUNkYSxXQUE4QyxFQUM5Q08sYUFBcUM7SUFFckMsTUFBTUMsaUJBQWlCaEIsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFJcEI7UUFDRGlCLE1BQU07UUFDTiwwRkFBMEY7UUFDMUZDLE9BQU8sRUFBRTtRQUNUQyxVQUFVbEI7SUFDWjtJQUVBLE1BQU1tQiwwQkFBMEJYLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksQ0FBQ1k7UUFDM0MsTUFBTSxFQUFFRixRQUFRLEVBQUVELEtBQUssRUFBRSxHQUFHRixlQUFlYixPQUFPO1FBQ2xELElBQUlnQixVQUFVO1lBQ1pBLFNBQVNFO1FBQ1gsT0FBTztZQUNMSCxNQUFPSSxJQUFJLENBQUNEO1FBQ2Q7SUFDRixHQUFHLEVBQUU7SUFFTG5CLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixNQUFNLEVBQUVDLFNBQVNvQixXQUFXLEVBQUUsR0FBR1A7UUFDakMsMkRBQTJEO1FBQzNELElBQUlPLFlBQVlOLElBQUksRUFBRTtZQUNwQjtRQUNGO1FBQ0FNLFlBQVlOLElBQUksR0FBRztRQUVuQix5UUFDRSxDQUVBTyxJQUFJLENBQUM7Z0JBQUMsRUFBRUMsT0FBTyxFQUFFO1lBQ2pCLE1BQU0sRUFBRXRCLE9BQU8sRUFBRSxHQUFHYTtZQUNwQlMsUUFBUTtnQkFDTkMsb0JBQW1CQyxFQUF3QztvQkFDekR4QixRQUFRZ0IsUUFBUSxHQUFHUTtvQkFFbkIsaUZBQWlGO29CQUNqRixLQUFLLE1BQU1OLE9BQU9sQixRQUFRZSxLQUFLLENBQUc7d0JBQ2hDUyxHQUFHTjtvQkFDTDtvQkFDQWxCLFFBQVFlLEtBQUssR0FBR2pCO2dCQUNsQjtnQkFDQU87Z0JBQ0FPO1lBQ0Y7UUFDRjtJQUNGLEdBQUc7UUFBQ1A7UUFBYU87S0FBYztJQUUvQixPQUFPSztBQUNUO0FBRU8sU0FBU3ZCLGlCQUNkK0IsWUFBNkM7SUFFN0MsTUFBTXBCLGNBQWNkLGVBQWVrQztJQUNuQyxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXQywrQkFBQUEseUJBQXlCO0lBRXJEN0IsQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSLHlDQUF5QztRQUN6QyxNQUFNOEIsV0FBV0MsWUFBWTtZQUMzQnpCLFlBQ0UwQixLQUFLQyxTQUFTLENBQUM7Z0JBQ2JDLE9BQU87Z0JBQ1BQO2dCQUNBUSxhQUFhO1lBQ2Y7UUFFSixHQUFHO1FBQ0gsT0FBTyxJQUFNQyxjQUFjTjtJQUM3QixHQUFHO1FBQUNIO1FBQU1yQjtLQUFZO0FBQ3hCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaGVscGVyc1xcdXNlLXdlYnNvY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEdsb2JhbExheW91dFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldFNvY2tldFVybCB9IGZyb20gJy4vZ2V0LXNvY2tldC11cmwnXG5pbXBvcnQgdHlwZSB7IFR1cmJvcGFja01zZ1RvQnJvd3NlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlV2Vic29ja2V0KGFzc2V0UHJlZml4OiBzdHJpbmcpIHtcbiAgY29uc3Qgd2ViU29ja2V0UmVmID0gdXNlUmVmPFdlYlNvY2tldD4odW5kZWZpbmVkKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHdlYlNvY2tldFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSBnZXRTb2NrZXRVcmwoYXNzZXRQcmVmaXgpXG5cbiAgICB3ZWJTb2NrZXRSZWYuY3VycmVudCA9IG5ldyB3aW5kb3cuV2ViU29ja2V0KGAke3VybH0vX25leHQvd2VicGFjay1obXJgKVxuICB9LCBbYXNzZXRQcmVmaXhdKVxuXG4gIHJldHVybiB3ZWJTb2NrZXRSZWZcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbmRNZXNzYWdlKHdlYlNvY2tldFJlZjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlV2Vic29ja2V0Pikge1xuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKFxuICAgIChkYXRhOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHNvY2tldCA9IHdlYlNvY2tldFJlZi5jdXJyZW50XG4gICAgICBpZiAoIXNvY2tldCB8fCBzb2NrZXQucmVhZHlTdGF0ZSAhPT0gc29ja2V0Lk9QRU4pIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICByZXR1cm4gc29ja2V0LnNlbmQoZGF0YSlcbiAgICB9LFxuICAgIFt3ZWJTb2NrZXRSZWZdXG4gIClcbiAgcmV0dXJuIHNlbmRNZXNzYWdlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VUdXJib3BhY2soXG4gIHNlbmRNZXNzYWdlOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VTZW5kTWVzc2FnZT4sXG4gIG9uVXBkYXRlRXJyb3I6IChlcnI6IHVua25vd24pID0+IHZvaWRcbikge1xuICBjb25zdCB0dXJib3BhY2tTdGF0ZSA9IHVzZVJlZjx7XG4gICAgaW5pdDogYm9vbGVhblxuICAgIHF1ZXVlOiBBcnJheTxUdXJib3BhY2tNc2dUb0Jyb3dzZXI+IHwgdW5kZWZpbmVkXG4gICAgY2FsbGJhY2s6ICgobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHZvaWQpIHwgdW5kZWZpbmVkXG4gIH0+KHtcbiAgICBpbml0OiBmYWxzZSxcbiAgICAvLyBVbnRpbCB0aGUgZHluYW1pYyBpbXBvcnQgcmVzb2x2ZXMsIHF1ZXVlIGFueSB0dXJib3BhY2sgbWVzc2FnZXMgd2hpY2ggd2lsbCBiZSByZXBsYXllZC5cbiAgICBxdWV1ZTogW10sXG4gICAgY2FsbGJhY2s6IHVuZGVmaW5lZCxcbiAgfSlcblxuICBjb25zdCBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSA9IHVzZUNhbGxiYWNrKChtc2c6IFR1cmJvcGFja01zZ1RvQnJvd3NlcikgPT4ge1xuICAgIGNvbnN0IHsgY2FsbGJhY2ssIHF1ZXVlIH0gPSB0dXJib3BhY2tTdGF0ZS5jdXJyZW50XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBjYWxsYmFjayhtc2cpXG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXVlIS5wdXNoKG1zZylcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50OiBpbml0Q3VycmVudCB9ID0gdHVyYm9wYWNrU3RhdGVcbiAgICAvLyBUT0RPKFdFQi0xNTg5KTogb25seSBpbnN0YWxsIGlmIGBwcm9jZXNzLnR1cmJvcGFja2Agc2V0LlxuICAgIGlmIChpbml0Q3VycmVudC5pbml0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaW5pdEN1cnJlbnQuaW5pdCA9IHRydWVcblxuICAgIGltcG9ydChcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgcmVxdWlyZXMgXCJtb2R1bGVSZXNvbHV0aW9uXCI6IFwibm9kZTE2XCIgaW4gdHNjb25maWcuanNvbiBhbmQgbm90IC50cyBleHRlbnNpb25cbiAgICAgICdAdmVyY2VsL3R1cmJvcGFjay1lY21hc2NyaXB0LXJ1bnRpbWUvYnJvd3Nlci9kZXYvaG1yLWNsaWVudC9obXItY2xpZW50LnRzJ1xuICAgICkudGhlbigoeyBjb25uZWN0IH0pID0+IHtcbiAgICAgIGNvbnN0IHsgY3VycmVudCB9ID0gdHVyYm9wYWNrU3RhdGVcbiAgICAgIGNvbm5lY3Qoe1xuICAgICAgICBhZGRNZXNzYWdlTGlzdGVuZXIoY2I6IChtc2c6IFR1cmJvcGFja01zZ1RvQnJvd3NlcikgPT4gdm9pZCkge1xuICAgICAgICAgIGN1cnJlbnQuY2FsbGJhY2sgPSBjYlxuXG4gICAgICAgICAgLy8gUmVwbGF5IGFsbCBUdXJib3BhY2sgbWVzc2FnZXMgYmVmb3JlIHdlIHdlcmUgYWJsZSB0byBlc3RhYmxpc2ggdGhlIEhNUiBjbGllbnQuXG4gICAgICAgICAgZm9yIChjb25zdCBtc2cgb2YgY3VycmVudC5xdWV1ZSEpIHtcbiAgICAgICAgICAgIGNiKG1zZylcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudC5xdWV1ZSA9IHVuZGVmaW5lZFxuICAgICAgICB9LFxuICAgICAgICBzZW5kTWVzc2FnZSxcbiAgICAgICAgb25VcGRhdGVFcnJvcixcbiAgICAgIH0pXG4gICAgfSlcbiAgfSwgW3NlbmRNZXNzYWdlLCBvblVwZGF0ZUVycm9yXSlcblxuICByZXR1cm4gcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVdlYnNvY2tldFBpbmcoXG4gIHdlYnNvY2tldFJlZjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlV2Vic29ja2V0PlxuKSB7XG4gIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlU2VuZE1lc3NhZ2Uod2Vic29ja2V0UmVmKVxuICBjb25zdCB7IHRyZWUgfSA9IHVzZUNvbnRleHQoR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFRha2VuIGZyb20gb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzXG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGV2ZW50OiAncGluZycsXG4gICAgICAgICAgdHJlZSxcbiAgICAgICAgICBhcHBEaXJSb3V0ZTogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9LCAyNTAwKVxuICAgIHJldHVybiAoKSA9PiBjbGVhckludGVydmFsKGludGVydmFsKVxuICB9LCBbdHJlZSwgc2VuZE1lc3NhZ2VdKVxufVxuIl0sIm5hbWVzIjpbInVzZVNlbmRNZXNzYWdlIiwidXNlVHVyYm9wYWNrIiwidXNlV2Vic29ja2V0IiwidXNlV2Vic29ja2V0UGluZyIsImFzc2V0UHJlZml4Iiwid2ViU29ja2V0UmVmIiwidXNlUmVmIiwidW5kZWZpbmVkIiwidXNlRWZmZWN0IiwiY3VycmVudCIsInVybCIsImdldFNvY2tldFVybCIsIndpbmRvdyIsIldlYlNvY2tldCIsInNlbmRNZXNzYWdlIiwidXNlQ2FsbGJhY2siLCJkYXRhIiwic29ja2V0IiwicmVhZHlTdGF0ZSIsIk9QRU4iLCJzZW5kIiwib25VcGRhdGVFcnJvciIsInR1cmJvcGFja1N0YXRlIiwiaW5pdCIsInF1ZXVlIiwiY2FsbGJhY2siLCJwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSIsIm1zZyIsInB1c2giLCJpbml0Q3VycmVudCIsInRoZW4iLCJjb25uZWN0IiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiY2IiLCJ3ZWJzb2NrZXRSZWYiLCJ0cmVlIiwidXNlQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiYXBwRGlyUm91dGUiLCJjbGVhckludGVydmFsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.js":
|
||
/*!************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.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 formatFrameSourceFile: function() {\n return formatFrameSourceFile;\n },\n isWebpackInternalResource: function() {\n return isWebpackInternalResource;\n }\n});\nconst replacementRegExes = [\n /^(rsc:\\/\\/React\\/[^/]+\\/)/,\n /^webpack-internal:\\/\\/\\/(\\([\\w-]+\\)\\/)?/,\n /^(webpack:\\/\\/\\/|webpack:\\/\\/(_N_E\\/)?)(\\([\\w-]+\\)\\/)?/,\n /\\?\\w+(\\?\\d+)?$/,\n /\\?\\d+$/\n];\nfunction isWebpackInternalResource(file) {\n for (const regex of replacementRegExes){\n if (regex.test(file)) return true;\n file = file.replace(regex, '');\n }\n return false;\n}\nfunction formatFrameSourceFile(file) {\n for (const regex of replacementRegExes){\n file = file.replace(regex, '');\n }\n return file;\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=webpack-module-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvd2VicGFjay1tb2R1bGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmdCQSxxQkFBcUI7ZUFBckJBOztJQXBCQUMseUJBQXlCO2VBQXpCQTs7O0FBUmhCLE1BQU1DLHFCQUFxQjtJQUN6QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCwwQkFBMEJFLElBQVk7SUFDcEQsS0FBSyxNQUFNQyxTQUFTRixtQkFBb0I7UUFDdEMsSUFBSUUsTUFBTUMsSUFBSSxDQUFDRixPQUFPLE9BQU87UUFFN0JBLE9BQU9BLEtBQUtHLE9BQU8sQ0FBQ0YsT0FBTztJQUM3QjtJQUVBLE9BQU87QUFDVDtBQVlPLFNBQVNKLHNCQUFzQkcsSUFBWTtJQUNoRCxLQUFLLE1BQU1DLFNBQVNGLG1CQUFvQjtRQUN0Q0MsT0FBT0EsS0FBS0csT0FBTyxDQUFDRixPQUFPO0lBQzdCO0lBRUEsT0FBT0Q7QUFDVCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXGhlbHBlcnNcXHdlYnBhY2stbW9kdWxlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVwbGFjZW1lbnRSZWdFeGVzID0gW1xuICAvXihyc2M6XFwvXFwvUmVhY3RcXC9bXi9dK1xcLykvLFxuICAvXndlYnBhY2staW50ZXJuYWw6XFwvXFwvXFwvKFxcKFtcXHctXStcXClcXC8pPy8sXG4gIC9eKHdlYnBhY2s6XFwvXFwvXFwvfHdlYnBhY2s6XFwvXFwvKF9OX0VcXC8pPykoXFwoW1xcdy1dK1xcKVxcLyk/LyxcbiAgL1xcP1xcdysoXFw/XFxkKyk/JC8sIC8vIFJlYWN0IHJlcGxheSBlcnJvciBxdWVyeSBwYXJhbSwgLmUuZy4gP2M2OWQ/MCwgP2M2OWRcbiAgL1xcP1xcZCskLywgLy8gUmVhY3QncyBmYWtlRnVuY3Rpb25JZHggcXVlcnkgcGFyYW1cbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzV2VicGFja0ludGVybmFsUmVzb3VyY2UoZmlsZTogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgcmVnZXggb2YgcmVwbGFjZW1lbnRSZWdFeGVzKSB7XG4gICAgaWYgKHJlZ2V4LnRlc3QoZmlsZSkpIHJldHVybiB0cnVlXG5cbiAgICBmaWxlID0gZmlsZS5yZXBsYWNlKHJlZ2V4LCAnJylcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIEZvcm1hdCB0aGUgd2VicGFjayBpbnRlcm5hbCBpZCB0byBvcmlnaW5hbCBmaWxlIHBhdGhcbiAqXG4gKiB3ZWJwYWNrLWludGVybmFsOi8vLy4vc3JjL2hlbGxvLnRzeCA9PiAuL3NyYy9oZWxsby50c3hcbiAqIHJzYzovL1JlYWN0L1NlcnZlci93ZWJwYWNrLWludGVybmFsOi8vLyhyc2MpLy4vc3JjL2hlbGxvLnRzeD80MiA9PiAuL3NyYy9oZWxsby50c3hcbiAqIHJzYzovL1JlYWN0L1NlcnZlci93ZWJwYWNrOi8vL2FwcC9pbmRpcmVjdGlvbi50c3g/MTRjYj8wID0+IGFwcC9pbmRpcmVjdGlvbi50c3hcbiAqIHdlYnBhY2s6Ly9fTl9FLy4vc3JjL2hlbGxvLnRzeCA9PiAuL3NyYy9oZWxsby50c3hcbiAqIHdlYnBhY2s6Ly8uL3NyYy9oZWxsby50c3ggPT4gLi9zcmMvaGVsbG8udHN4XG4gKiB3ZWJwYWNrOi8vLy4vc3JjL2hlbGxvLnRzeCA9PiAuL3NyYy9oZWxsby50c3hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEZyYW1lU291cmNlRmlsZShmaWxlOiBzdHJpbmcpIHtcbiAgZm9yIChjb25zdCByZWdleCBvZiByZXBsYWNlbWVudFJlZ0V4ZXMpIHtcbiAgICBmaWxlID0gZmlsZS5yZXBsYWNlKHJlZ2V4LCAnJylcbiAgfVxuXG4gIHJldHVybiBmaWxlXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0RnJhbWVTb3VyY2VGaWxlIiwiaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZSIsInJlcGxhY2VtZW50UmVnRXhlcyIsImZpbGUiLCJyZWdleCIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js":
|
||
/*!***********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js ***!
|
||
\***********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useOnClickOutside\", ({\n enumerable: true,\n get: function() {\n return useOnClickOutside;\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\"));\nfunction useOnClickOutside(el, handler) {\n _react.useEffect({\n \"useOnClickOutside.useEffect\": ()=>{\n if (el == null || handler == null) {\n return;\n }\n const listener = {\n \"useOnClickOutside.useEffect.listener\": (e)=>{\n // Do nothing if clicking ref's element or descendent elements\n if (!el || el.contains(e.target)) {\n return;\n }\n handler(e);\n }\n }[\"useOnClickOutside.useEffect.listener\"];\n const root = el.getRootNode();\n root.addEventListener('mousedown', listener);\n root.addEventListener('touchstart', listener, {\n passive: false\n });\n return ({\n \"useOnClickOutside.useEffect\": function() {\n root.removeEventListener('mousedown', listener);\n root.removeEventListener('touchstart', listener);\n }\n })[\"useOnClickOutside.useEffect\"];\n }\n }[\"useOnClickOutside.useEffect\"], [\n handler,\n el\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-on-click-outside.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hvb2tzL3VzZS1vbi1jbGljay1vdXRzaWRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBRWdCQTs7O2VBQUFBOzs7OzZFQUZPO0FBRWhCLFNBQVNBLGtCQUNkQyxFQUFlLEVBQ2ZDLE9BQTJEO0lBRTNEQyxPQUFNQyxTQUFTO3VDQUFDO1lBQ2QsSUFBSUgsTUFBTSxRQUFRQyxXQUFXLE1BQU07Z0JBQ2pDO1lBQ0Y7WUFFQSxNQUFNRzt3REFBVyxDQUFDQztvQkFDaEIsOERBQThEO29CQUM5RCxJQUFJLENBQUNMLE1BQU1BLEdBQUdNLFFBQVEsQ0FBQ0QsRUFBRUUsTUFBTSxHQUFjO3dCQUMzQztvQkFDRjtvQkFFQU4sUUFBUUk7Z0JBQ1Y7O1lBRUEsTUFBTUcsT0FBT1IsR0FBR1MsV0FBVztZQUMzQkQsS0FBS0UsZ0JBQWdCLENBQUMsYUFBYU47WUFDbkNJLEtBQUtFLGdCQUFnQixDQUFDLGNBQWNOLFVBQTJCO2dCQUM3RE8sU0FBUztZQUNYO1lBQ0E7K0NBQU87b0JBQ0xILEtBQUtJLG1CQUFtQixDQUFDLGFBQWFSO29CQUN0Q0ksS0FBS0ksbUJBQW1CLENBQUMsY0FBY1I7Z0JBQ3pDOztRQUNGO3NDQUFHO1FBQUNIO1FBQVNEO0tBQUc7QUFDbEIiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxob29rc1xcdXNlLW9uLWNsaWNrLW91dHNpZGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VPbkNsaWNrT3V0c2lkZShcbiAgZWw6IE5vZGUgfCBudWxsLFxuICBoYW5kbGVyOiAoKGU6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkKSB8IHVuZGVmaW5lZFxuKSB7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGVsID09IG51bGwgfHwgaGFuZGxlciA9PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ZW5lciA9IChlOiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4ge1xuICAgICAgLy8gRG8gbm90aGluZyBpZiBjbGlja2luZyByZWYncyBlbGVtZW50IG9yIGRlc2NlbmRlbnQgZWxlbWVudHNcbiAgICAgIGlmICghZWwgfHwgZWwuY29udGFpbnMoZS50YXJnZXQgYXMgRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGhhbmRsZXIoZSlcbiAgICB9XG5cbiAgICBjb25zdCByb290ID0gZWwuZ2V0Um9vdE5vZGUoKVxuICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyLCB7XG4gICAgICBwYXNzaXZlOiBmYWxzZSxcbiAgICB9KVxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGxpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgICByb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW2hhbmRsZXIsIGVsXSlcbn1cbiJdLCJuYW1lcyI6WyJ1c2VPbkNsaWNrT3V0c2lkZSIsImVsIiwiaGFuZGxlciIsIlJlYWN0IiwidXNlRWZmZWN0IiwibGlzdGVuZXIiLCJlIiwiY29udGFpbnMiLCJ0YXJnZXQiLCJyb290IiwiZ2V0Um9vdE5vZGUiLCJhZGRFdmVudExpc3RlbmVyIiwicGFzc2l2ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js":
|
||
/*!************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js ***!
|
||
\************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CloseIcon\", ({\n enumerable: true,\n get: function() {\n return CloseIcon;\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 CloseIcon = ()=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 6L6 18\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M6 6L18 18\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\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=CloseIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2ljb25zL0Nsb3NlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQTZCU0E7OztlQUFBQTs7Ozs7NkVBN0JjO0FBRXZCLE1BQU1BLFlBQVk7SUFDaEIscUJBQ0Usc0JBQUNDLE9BQUFBO1FBQ0NDLE9BQU07UUFDTkMsUUFBTztRQUNQQyxTQUFRO1FBQ1JDLE1BQUs7UUFDTEMsT0FBTTs7MEJBRU4scUJBQUNDLFFBQUFBO2dCQUNDQyxHQUFFO2dCQUNGQyxRQUFPO2dCQUNQQyxhQUFZO2dCQUNaQyxlQUFjO2dCQUNkQyxnQkFBZTs7MEJBRWpCLHFCQUFDTCxRQUFBQTtnQkFDQ0MsR0FBRTtnQkFDRkMsUUFBTztnQkFDUEMsYUFBWTtnQkFDWkMsZUFBYztnQkFDZEMsZ0JBQWU7Ozs7QUFJdkIiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxpY29uc1xcQ2xvc2VJY29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgQ2xvc2VJY29uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTE4IDZMNiAxOFwiXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNiA2TDE4IDE4XCJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgc3Ryb2tlV2lkdGg9XCIyXCJcbiAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICApXG59XG5cbmV4cG9ydCB7IENsb3NlSWNvbiB9XG4iXSwibmFtZXMiOlsiQ2xvc2VJY29uIiwic3ZnIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwicGF0aCIsImQiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js":
|
||
/*!***************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js ***!
|
||
\***************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CollapseIcon\", ({\n enumerable: true,\n get: function() {\n return CollapseIcon;\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\");\nfunction CollapseIcon(param) {\n let { collapsed } = param === void 0 ? {} : param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"svg\", {\n \"data-nextjs-call-stack-chevron-icon\": true,\n \"data-collapsed\": collapsed,\n fill: \"none\",\n height: \"20\",\n width: \"20\",\n shapeRendering: \"geometricPrecision\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"2\",\n viewBox: \"0 0 24 24\",\n ...typeof collapsed === 'boolean' ? {\n style: {\n transform: collapsed ? undefined : 'rotate(90deg)'\n }\n } : {},\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M9 18l6-6-6-6\"\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=CollapseIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2ljb25zL0NvbGxhcHNlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQUFnQkE7OztlQUFBQTs7OztBQUFULFNBQVNBLGFBQWE7SUFBQSxNQUFFQyxTQUFTLEVBQTJCLEdBQXRDLG1CQUF5QyxDQUFDLElBQTFDO0lBQzNCLE9BQ0UsV0FERixHQUNFLHFCQUFDQyxPQUFBQTtRQUNDQyxxQ0FBbUM7UUFDbkNDLGtCQUFnQkg7UUFDaEJJLE1BQUs7UUFDTEMsUUFBTztRQUNQQyxPQUFNO1FBQ05DLGdCQUFlO1FBQ2ZDLFFBQU87UUFDUEMsZUFBYztRQUNkQyxnQkFBZTtRQUNmQyxhQUFZO1FBQ1pDLFNBQVE7UUFHUCxHQUFJLE9BQU9aLGNBQWMsWUFDdEI7WUFBRWEsT0FBTztnQkFBRUMsV0FBV2QsWUFBWWUsWUFBWTtZQUFnQjtRQUFFLElBQ2hFLENBQUMsQ0FBQztrQkFFTixtQ0FBQ0MsUUFBQUE7WUFBS0MsR0FBRTs7O0FBR2QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxpY29uc1xcQ29sbGFwc2VJY29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gQ29sbGFwc2VJY29uKHsgY29sbGFwc2VkIH06IHsgY29sbGFwc2VkPzogYm9vbGVhbiB9ID0ge30pIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNoZXZyb24taWNvblxuICAgICAgZGF0YS1jb2xsYXBzZWQ9e2NvbGxhcHNlZH1cbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIGhlaWdodD1cIjIwXCJcbiAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgc2hhcGVSZW5kZXJpbmc9XCJnZW9tZXRyaWNQcmVjaXNpb25cIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIC8vIHJvdGF0ZSA5MCBkZWdyZWVzIGlmIG5vdCBjb2xsYXBzZWQuXG4gICAgICAvLyBJZiBjb2xsYXBzZWQgaXNuJ3QgcHJlc2VudCwgdGhlIHJvdGF0aW9uIGlzIGFwcGxpZWQgdmlhIHRoZSBgZGF0YS1uZXh0anMtY29sbGFwc2VkLWNhbGwtc3RhY2stZGV0YWlsc2AgZWxlbWVudCdzIGBvcGVuYCBhdHRyaWJ1dGVcbiAgICAgIHsuLi4odHlwZW9mIGNvbGxhcHNlZCA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgID8geyBzdHlsZTogeyB0cmFuc2Zvcm06IGNvbGxhcHNlZCA/IHVuZGVmaW5lZCA6ICdyb3RhdGUoOTBkZWcpJyB9IH1cbiAgICAgICAgOiB7fSl9XG4gICAgPlxuICAgICAgPHBhdGggZD1cIk05IDE4bDYtNi02LTZcIiAvPlxuICAgIDwvc3ZnPlxuICApXG59XG4iXSwibmFtZXMiOlsiQ29sbGFwc2VJY29uIiwiY29sbGFwc2VkIiwic3ZnIiwiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jaGV2cm9uLWljb24iLCJkYXRhLWNvbGxhcHNlZCIsImZpbGwiLCJoZWlnaHQiLCJ3aWR0aCIsInNoYXBlUmVuZGVyaW5nIiwic3Ryb2tlIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJ2aWV3Qm94Iiwic3R5bGUiLCJ0cmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJwYXRoIiwiZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/LightningBolt.js":
|
||
/*!****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/LightningBolt.js ***!
|
||
\****************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"LightningBolt\", ({\n enumerable: true,\n get: function() {\n return LightningBolt;\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 LightningBolt = (props)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n fill: \"none\",\n ...props,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n style: {\n fill: 'var(--color-font)'\n },\n fillRule: \"evenodd\",\n d: \"M7.157 0 2.333 9.408l-.56 1.092H7a.25.25 0 0 1 .25.25V16h1.593l4.824-9.408.56-1.092H9a.25.25 0 0 1-.25-.25V0H7.157ZM7 9H4.227L7.25 3.106V5.25C7.25 6.216 8.034 7 9 7h2.773L8.75 12.894V10.75A1.75 1.75 0 0 0 7 9Z\",\n clipRule: \"evenodd\"\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=LightningBolt.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2ljb25zL0xpZ2h0bmluZ0JvbHQuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFBYUE7OztlQUFBQTs7OztBQUFOLE1BQU1BLGdCQUFnQixDQUFDQyxRQUFBQSxXQUFBQSxHQUM1QixxQkFBQ0MsT0FBQUE7UUFDQ0MsT0FBTTtRQUNOQyxPQUFPO1FBQ1BDLFFBQVE7UUFDUkMsTUFBSztRQUNKLEdBQUdMLEtBQUs7a0JBRVQsbUNBQUNNLFFBQUFBO1lBQ0NDLE9BQU87Z0JBQUVGLE1BQU07WUFBb0I7WUFDbkNHLFVBQVM7WUFDVEMsR0FBRTtZQUNGQyxVQUFTIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcaWNvbnNcXExpZ2h0bmluZ0JvbHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBMaWdodG5pbmdCb2x0ID0gKHByb3BzOiBSZWFjdC5TVkdQcm9wczxhbnk+KSA9PiAoXG4gIDxzdmdcbiAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICB3aWR0aD17MTZ9XG4gICAgaGVpZ2h0PXsxNn1cbiAgICBmaWxsPVwibm9uZVwiXG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPHBhdGhcbiAgICAgIHN0eWxlPXt7IGZpbGw6ICd2YXIoLS1jb2xvci1mb250KScgfX1cbiAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICBkPVwiTTcuMTU3IDAgMi4zMzMgOS40MDhsLS41NiAxLjA5Mkg3YS4yNS4yNSAwIDAgMSAuMjUuMjVWMTZoMS41OTNsNC44MjQtOS40MDguNTYtMS4wOTJIOWEuMjUuMjUgMCAwIDEtLjI1LS4yNVYwSDcuMTU3Wk03IDlINC4yMjdMNy4yNSAzLjEwNlY1LjI1QzcuMjUgNi4yMTYgOC4wMzQgNyA5IDdoMi43NzNMOC43NSAxMi44OTRWMTAuNzVBMS43NSAxLjc1IDAgMCAwIDcgOVpcIlxuICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAvPlxuICA8L3N2Zz5cbilcbiJdLCJuYW1lcyI6WyJMaWdodG5pbmdCb2x0IiwicHJvcHMiLCJzdmciLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0IiwiZmlsbCIsInBhdGgiLCJzdHlsZSIsImZpbGxSdWxlIiwiZCIsImNsaXBSdWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/LightningBolt.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js ***!
|
||
\********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Base\", ({\n enumerable: true,\n get: function() {\n return Base;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.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 _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n :host {\\n --size-gap-half: 4px;\\n --size-gap: 8px;\\n --size-gap-double: 16px;\\n --size-gap-triple: 24px;\\n --size-gap-quad: 32px;\\n\\n --size-font-small: 14px;\\n --size-font: 16px;\\n --size-font-big: 20px;\\n --size-font-bigger: 24px;\\n\\n --color-background: white;\\n --color-font: #757575;\\n --color-backdrop: rgba(17, 17, 17, 0.2);\\n --color-border-shadow: rgba(0, 0, 0, 0.145);\\n\\n --color-title-color: #1f1f1f;\\n --color-stack-h6: #222;\\n --color-stack-headline: #666;\\n --color-stack-subline: #999;\\n --color-stack-notes: #777;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --color-text-color-red-1: #ff5555;\\n --color-text-background-red-1: #fff9f9;\\n\\n --font-stack-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono',\\n Menlo, Courier, monospace;\\n --font-stack-sans: -apple-system, 'Source Sans Pro', sans-serif;\\n\\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\\n --color-ansi-bg: #111111;\\n --color-ansi-fg: #cccccc;\\n\\n --color-ansi-white: #777777;\\n --color-ansi-black: #141414;\\n --color-ansi-blue: #00aaff;\\n --color-ansi-cyan: #88ddff;\\n --color-ansi-green: #98ec65;\\n --color-ansi-magenta: #aa88ff;\\n --color-ansi-red: #ff5555;\\n --color-ansi-yellow: #ffcc33;\\n --color-ansi-bright-white: #ffffff;\\n --color-ansi-bright-black: #777777;\\n --color-ansi-bright-blue: #33bbff;\\n --color-ansi-bright-cyan: #bbecff;\\n --color-ansi-bright-green: #b6f292;\\n --color-ansi-bright-magenta: #cebbff;\\n --color-ansi-bright-red: #ff8888;\\n --color-ansi-bright-yellow: #ffd966;\\n }\\n\\n @media (prefers-color-scheme: dark) {\\n :host {\\n --color-background: rgb(28, 28, 30);\\n --color-font: white;\\n --color-backdrop: rgb(44, 44, 46);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-h6: rgb(200, 200, 204);\\n --color-stack-headline: rgb(99, 99, 102);\\n --color-stack-notes: #a9a9a9;\\n --color-stack-subline: rgb(121, 121, 121);\\n\\n --color-accents-3: rgb(118, 118, 118);\\n\\n --color-text-background-red-1: #2a1e1e;\\n }\\n }\\n\\n .mono {\\n font-family: var(--font-stack-monospace);\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: var(--size-gap);\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction Base() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n children: (0, _nooptemplate.noop)(_templateObject())\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=Base.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9CYXNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7d0NBR2dCQTs7O2VBQUFBOzs7Ozs7NkVBSE87MENBQ0s7Ozs7Ozs7Ozs7QUFFckIsU0FBU0E7SUFDZCxxQkFDRSxxQkFBQ0MsU0FBQUE7c0JBQ0VDLGNBQUFBLElBQUFBLEVBQUc7O0FBNkZWIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlYWN0LWRldi1vdmVybGF5XFxpbnRlcm5hbFxcc3R5bGVzXFxCYXNlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSAnLi4vaGVscGVycy9ub29wLXRlbXBsYXRlJ1xuXG5leHBvcnQgZnVuY3Rpb24gQmFzZSgpIHtcbiAgcmV0dXJuIChcbiAgICA8c3R5bGU+XG4gICAgICB7Y3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgLS1zaXplLWdhcC1oYWxmOiA0cHg7XG4gICAgICAgICAgLS1zaXplLWdhcDogOHB4O1xuICAgICAgICAgIC0tc2l6ZS1nYXAtZG91YmxlOiAxNnB4O1xuICAgICAgICAgIC0tc2l6ZS1nYXAtdHJpcGxlOiAyNHB4O1xuICAgICAgICAgIC0tc2l6ZS1nYXAtcXVhZDogMzJweDtcblxuICAgICAgICAgIC0tc2l6ZS1mb250LXNtYWxsOiAxNHB4O1xuICAgICAgICAgIC0tc2l6ZS1mb250OiAxNnB4O1xuICAgICAgICAgIC0tc2l6ZS1mb250LWJpZzogMjBweDtcbiAgICAgICAgICAtLXNpemUtZm9udC1iaWdnZXI6IDI0cHg7XG5cbiAgICAgICAgICAtLWNvbG9yLWJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgIC0tY29sb3ItZm9udDogIzc1NzU3NTtcbiAgICAgICAgICAtLWNvbG9yLWJhY2tkcm9wOiByZ2JhKDE3LCAxNywgMTcsIDAuMik7XG4gICAgICAgICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTQ1KTtcblxuICAgICAgICAgIC0tY29sb3ItdGl0bGUtY29sb3I6ICMxZjFmMWY7XG4gICAgICAgICAgLS1jb2xvci1zdGFjay1oNjogIzIyMjtcbiAgICAgICAgICAtLWNvbG9yLXN0YWNrLWhlYWRsaW5lOiAjNjY2O1xuICAgICAgICAgIC0tY29sb3Itc3RhY2stc3VibGluZTogIzk5OTtcbiAgICAgICAgICAtLWNvbG9yLXN0YWNrLW5vdGVzOiAjNzc3O1xuXG4gICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTE6ICM4MDgwODA7XG4gICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTI6ICMyMjIyMjI7XG4gICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTM6ICM0MDQwNDA7XG5cbiAgICAgICAgICAtLWNvbG9yLXRleHQtY29sb3ItcmVkLTE6ICNmZjU1NTU7XG4gICAgICAgICAgLS1jb2xvci10ZXh0LWJhY2tncm91bmQtcmVkLTE6ICNmZmY5Zjk7XG5cbiAgICAgICAgICAtLWZvbnQtc3RhY2stbW9ub3NwYWNlOiAnU0ZNb25vLVJlZ3VsYXInLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsXG4gICAgICAgICAgICBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xuICAgICAgICAgIC0tZm9udC1zdGFjay1zYW5zOiAtYXBwbGUtc3lzdGVtLCAnU291cmNlIFNhbnMgUHJvJywgc2Fucy1zZXJpZjtcblxuICAgICAgICAgIC0tY29sb3ItYW5zaS1zZWxlY3Rpb246IHJnYmEoOTUsIDEyNiwgMTUxLCAwLjQ4KTtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYmc6ICMxMTExMTE7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWZnOiAjY2NjY2NjO1xuXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXdoaXRlOiAjNzc3Nzc3O1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1ibGFjazogIzE0MTQxNDtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYmx1ZTogIzAwYWFmZjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktY3lhbjogIzg4ZGRmZjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktZ3JlZW46ICM5OGVjNjU7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLW1hZ2VudGE6ICNhYTg4ZmY7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLXJlZDogI2ZmNTU1NTtcbiAgICAgICAgICAtLWNvbG9yLWFuc2kteWVsbG93OiAjZmZjYzMzO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGU6ICNmZmZmZmY7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjazogIzc3Nzc3NztcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsdWU6ICMzM2JiZmY7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1jeWFuOiAjYmJlY2ZmO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtZ3JlZW46ICNiNmYyOTI7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1tYWdlbnRhOiAjY2ViYmZmO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtcmVkOiAjZmY4ODg4O1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQteWVsbG93OiAjZmZkOTY2O1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgIC0tY29sb3ItYmFja2dyb3VuZDogcmdiKDI4LCAyOCwgMzApO1xuICAgICAgICAgICAgLS1jb2xvci1mb250OiB3aGl0ZTtcbiAgICAgICAgICAgIC0tY29sb3ItYmFja2Ryb3A6IHJnYig0NCwgNDQsIDQ2KTtcbiAgICAgICAgICAgIC0tY29sb3ItYm9yZGVyLXNoYWRvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XG5cbiAgICAgICAgICAgIC0tY29sb3ItdGl0bGUtY29sb3I6ICNmYWZhZmE7XG4gICAgICAgICAgICAtLWNvbG9yLXN0YWNrLWg2OiByZ2IoMjAwLCAyMDAsIDIwNCk7XG4gICAgICAgICAgICAtLWNvbG9yLXN0YWNrLWhlYWRsaW5lOiByZ2IoOTksIDk5LCAxMDIpO1xuICAgICAgICAgICAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcbiAgICAgICAgICAgIC0tY29sb3Itc3RhY2stc3VibGluZTogcmdiKDEyMSwgMTIxLCAxMjEpO1xuXG4gICAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMzogcmdiKDExOCwgMTE4LCAxMTgpO1xuXG4gICAgICAgICAgICAtLWNvbG9yLXRleHQtYmFja2dyb3VuZC1yZWQtMTogIzJhMWUxZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubW9ubyB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgxLFxuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIGg0LFxuICAgICAgICBoNSxcbiAgICAgICAgaDYge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwKTtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkJhc2UiLCJzdHlsZSIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js":
|
||
/*!*******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js ***!
|
||
\*******************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ComponentStyles\", ({\n enumerable: true,\n get: function() {\n return ComponentStyles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.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 _styles = __webpack_require__(/*! ../components/CodeFrame/styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js\");\nconst _Dialog = __webpack_require__(/*! ../components/Dialog */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\nconst _styles1 = __webpack_require__(/*! ../components/LeftRightDialogHeader/styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\");\nconst _styles2 = __webpack_require__(/*! ../components/Overlay/styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js\");\nconst _styles3 = __webpack_require__(/*! ../components/Terminal/styles */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js\");\nconst _Toast = __webpack_require__(/*! ../components/Toast */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\nconst _BuildError = __webpack_require__(/*! ../container/BuildError */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js\");\nconst _Errors = __webpack_require__(/*! ../container/Errors */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js\");\nconst _RuntimeError = __webpack_require__(/*! ../container/RuntimeError */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\");\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction ComponentStyles() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n children: (0, _nooptemplate.noop)(_templateObject(), _styles2.styles, _Toast.styles, _Dialog.styles, _styles1.styles, _styles.styles, _styles3.styles, _BuildError.styles, _Errors.styles, _RuntimeError.styles, _VersionStalenessInfo.styles)\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=ComponentStyles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9Db21wb25lbnRTdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFZZ0JBOzs7ZUFBQUE7Ozs7O29DQVpvQjtvQ0FDSDtxQ0FDZTtxQ0FDZDtxQ0FDQzttQ0FDSDtrREFDVzt3Q0FDQTtvQ0FDSTswQ0FDTzswQ0FDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJCLFNBQVNBO0lBQ2QscUJBQ0UscUJBQUNDLFNBQUFBO3NCQUNFQyxjQUFBQSxJQUFBQSxFQUFHLG1CQUNBQyxTQUFBQSxNQUFPLEVBQ1BDLE9BQUFBLE1BQUssRUFDTEMsUUFBQUEsTUFBTSxFQUNOQyxTQUFBQSxNQUFxQixFQUNyQkMsUUFBQUEsTUFBUyxFQUNUQyxTQUFBQSxNQUFRLEVBQ1JDLFlBQUFBLE1BQWdCLEVBQ2hCQyxRQUFBQSxNQUFvQixFQUNwQkMsY0FBQUEsTUFBMkIsRUFDM0JDLHNCQUFBQSxNQUFnQjs7QUFJMUIiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVhY3QtZGV2LW92ZXJsYXlcXGludGVybmFsXFxzdHlsZXNcXENvbXBvbmVudFN0eWxlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3R5bGVzIGFzIGNvZGVGcmFtZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvQ29kZUZyYW1lL3N0eWxlcydcbmltcG9ydCB7IHN0eWxlcyBhcyBkaWFsb2cgfSBmcm9tICcuLi9jb21wb25lbnRzL0RpYWxvZydcbmltcG9ydCB7IHN0eWxlcyBhcyBsZWZ0UmlnaHREaWFsb2dIZWFkZXIgfSBmcm9tICcuLi9jb21wb25lbnRzL0xlZnRSaWdodERpYWxvZ0hlYWRlci9zdHlsZXMnXG5pbXBvcnQgeyBzdHlsZXMgYXMgb3ZlcmxheSB9IGZyb20gJy4uL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMnXG5pbXBvcnQgeyBzdHlsZXMgYXMgdGVybWluYWwgfSBmcm9tICcuLi9jb21wb25lbnRzL1Rlcm1pbmFsL3N0eWxlcydcbmltcG9ydCB7IHN0eWxlcyBhcyB0b2FzdCB9IGZyb20gJy4uL2NvbXBvbmVudHMvVG9hc3QnXG5pbXBvcnQgeyBzdHlsZXMgYXMgdmVyc2lvblN0YWxlbmVzcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8nXG5pbXBvcnQgeyBzdHlsZXMgYXMgYnVpbGRFcnJvclN0eWxlcyB9IGZyb20gJy4uL2NvbnRhaW5lci9CdWlsZEVycm9yJ1xuaW1wb3J0IHsgc3R5bGVzIGFzIGNvbnRhaW5lckVycm9yU3R5bGVzIH0gZnJvbSAnLi4vY29udGFpbmVyL0Vycm9ycydcbmltcG9ydCB7IHN0eWxlcyBhcyBjb250YWluZXJSdW50aW1lRXJyb3JTdHlsZXMgfSBmcm9tICcuLi9jb250YWluZXIvUnVudGltZUVycm9yJ1xuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5cbmV4cG9ydCBmdW5jdGlvbiBDb21wb25lbnRTdHlsZXMoKSB7XG4gIHJldHVybiAoXG4gICAgPHN0eWxlPlxuICAgICAge2Nzc2BcbiAgICAgICAgJHtvdmVybGF5fVxuICAgICAgICAke3RvYXN0fVxuICAgICAgICAke2RpYWxvZ31cbiAgICAgICAgJHtsZWZ0UmlnaHREaWFsb2dIZWFkZXJ9XG4gICAgICAgICR7Y29kZUZyYW1lfVxuICAgICAgICAke3Rlcm1pbmFsfVxuICAgICAgICAke2J1aWxkRXJyb3JTdHlsZXN9XG4gICAgICAgICR7Y29udGFpbmVyRXJyb3JTdHlsZXN9XG4gICAgICAgICR7Y29udGFpbmVyUnVudGltZUVycm9yU3R5bGVzfVxuICAgICAgICAke3ZlcnNpb25TdGFsZW5lc3N9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJDb21wb25lbnRTdHlsZXMiLCJzdHlsZSIsImNzcyIsIm92ZXJsYXkiLCJ0b2FzdCIsImRpYWxvZyIsImxlZnRSaWdodERpYWxvZ0hlYWRlciIsImNvZGVGcmFtZSIsInRlcm1pbmFsIiwiYnVpbGRFcnJvclN0eWxlcyIsImNvbnRhaW5lckVycm9yU3R5bGVzIiwiY29udGFpbmVyUnVudGltZUVycm9yU3R5bGVzIiwidmVyc2lvblN0YWxlbmVzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js":
|
||
/*!************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js ***!
|
||
\************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CssReset\", ({\n enumerable: true,\n get: function() {\n return CssReset;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"(ssr)/./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.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 _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n :host {\\n all: initial;\\n\\n /* the direction property is not reset by 'all' */\\n direction: ltr;\\n }\\n\\n /*!\\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\\n * Copyright 2011-2019 The Bootstrap Authors\\n * Copyright 2011-2019 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\\n */\\n *,\\n *::before,\\n *::after {\\n box-sizing: border-box;\\n }\\n\\n :host {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n }\\n\\n article,\\n aside,\\n figcaption,\\n figure,\\n footer,\\n header,\\n hgroup,\\n main,\\n nav,\\n section {\\n display: block;\\n }\\n\\n :host {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\\n 'Noto Color Emoji';\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 1.5;\\n color: var(--color-font);\\n text-align: left;\\n background-color: #fff;\\n }\\n\\n [tabindex='-1']:focus:not(:focus-visible) {\\n outline: 0 !important;\\n }\\n\\n hr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-top: 0;\\n margin-bottom: 8px;\\n }\\n\\n p {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n abbr[title],\\n abbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n -webkit-text-decoration-skip-ink: none;\\n text-decoration-skip-ink: none;\\n }\\n\\n address {\\n margin-bottom: 16px;\\n font-style: normal;\\n line-height: inherit;\\n }\\n\\n ol,\\n ul,\\n dl {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n ol ol,\\n ul ul,\\n ol ul,\\n ul ol {\\n margin-bottom: 0;\\n }\\n\\n dt {\\n font-weight: 700;\\n }\\n\\n dd {\\n margin-bottom: 8px;\\n margin-left: 0;\\n }\\n\\n blockquote {\\n margin: 0 0 16px;\\n }\\n\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n\\n small {\\n font-size: 80%;\\n }\\n\\n sub,\\n sup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n }\\n\\n sub {\\n bottom: -0.25em;\\n }\\n\\n sup {\\n top: -0.5em;\\n }\\n\\n a {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n }\\n\\n a:hover {\\n color: #0056b3;\\n text-decoration: underline;\\n }\\n\\n a:not([href]) {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n a:not([href]):hover {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n pre,\\n code,\\n kbd,\\n samp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas,\\n 'Liberation Mono', 'Courier New', monospace;\\n font-size: 1em;\\n }\\n\\n pre {\\n margin-top: 0;\\n margin-bottom: 16px;\\n overflow: auto;\\n }\\n\\n figure {\\n margin: 0 0 16px;\\n }\\n\\n img {\\n vertical-align: middle;\\n border-style: none;\\n }\\n\\n svg {\\n overflow: hidden;\\n vertical-align: middle;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n caption {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom;\\n }\\n\\n th {\\n text-align: inherit;\\n }\\n\\n label {\\n display: inline-block;\\n margin-bottom: 8px;\\n }\\n\\n button {\\n border-radius: 0;\\n }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n }\\n\\n input,\\n button,\\n select,\\n optgroup,\\n textarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n }\\n\\n button,\\n input {\\n overflow: visible;\\n }\\n\\n button,\\n select {\\n text-transform: none;\\n }\\n\\n select {\\n word-wrap: normal;\\n }\\n\\n button,\\n [type='button'],\\n [type='reset'],\\n [type='submit'] {\\n -webkit-appearance: button;\\n }\\n\\n button:not(:disabled),\\n [type='button']:not(:disabled),\\n [type='reset']:not(:disabled),\\n [type='submit']:not(:disabled) {\\n cursor: pointer;\\n }\\n\\n button::-moz-focus-inner,\\n [type='button']::-moz-focus-inner,\\n [type='reset']::-moz-focus-inner,\\n [type='submit']::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n }\\n\\n input[type='radio'],\\n input[type='checkbox'] {\\n box-sizing: border-box;\\n padding: 0;\\n }\\n\\n input[type='date'],\\n input[type='time'],\\n input[type='datetime-local'],\\n input[type='month'] {\\n -webkit-appearance: listbox;\\n }\\n\\n textarea {\\n overflow: auto;\\n resize: vertical;\\n }\\n\\n fieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n }\\n\\n legend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: 8px;\\n font-size: 24px;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal;\\n }\\n\\n progress {\\n vertical-align: baseline;\\n }\\n\\n [type='number']::-webkit-inner-spin-button,\\n [type='number']::-webkit-outer-spin-button {\\n height: auto;\\n }\\n\\n [type='search'] {\\n outline-offset: -2px;\\n -webkit-appearance: none;\\n }\\n\\n [type='search']::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n\\n ::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button;\\n }\\n\\n output {\\n display: inline-block;\\n }\\n\\n summary {\\n display: list-item;\\n cursor: pointer;\\n }\\n\\n template {\\n display: none;\\n }\\n\\n [hidden] {\\n display: none !important;\\n }\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction CssReset() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n children: (0, _nooptemplate.noop)(_templateObject())\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=CssReset.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9Dc3NSZXNldC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQUdnQkE7OztlQUFBQTs7Ozs7OzZFQUhPOzBDQUNLOzs7Ozs7Ozs7O0FBRXJCLFNBQVNBO0lBQ2QscUJBQ0UscUJBQUNDLFNBQUFBO3NCQUNFQyxjQUFBQSxJQUFBQSxFQUFHOztBQW1XViIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcaW50ZXJuYWxcXHN0eWxlc1xcQ3NzUmVzZXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5cbmV4cG9ydCBmdW5jdGlvbiBDc3NSZXNldCgpIHtcbiAgcmV0dXJuIChcbiAgICA8c3R5bGU+XG4gICAgICB7Y3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYWxsOiBpbml0aWFsO1xuXG4gICAgICAgICAgLyogdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSBpcyBub3QgcmVzZXQgYnkgJ2FsbCcgKi9cbiAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIVxuICAgICAgICAgKiBCb290c3RyYXAgUmVib290IHY0LjQuMSAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLylcbiAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcbiAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXG4gICAgICAgICAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4gICAgICAgICAqIEZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MsIGxpY2Vuc2VkIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKVxuICAgICAgICAgKi9cbiAgICAgICAgKixcbiAgICAgICAgKjo6YmVmb3JlLFxuICAgICAgICAqOjphZnRlciB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICAgICAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgICAgICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJ0aWNsZSxcbiAgICAgICAgYXNpZGUsXG4gICAgICAgIGZpZ2NhcHRpb24sXG4gICAgICAgIGZpZ3VyZSxcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBoZWFkZXIsXG4gICAgICAgIGhncm91cCxcbiAgICAgICAgbWFpbixcbiAgICAgICAgbmF2LFxuICAgICAgICBzZWN0aW9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLFxuICAgICAgICAgICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLFxuICAgICAgICAgICAgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcsXG4gICAgICAgICAgICAnTm90byBDb2xvciBFbW9qaSc7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZm9udCk7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgW3RhYmluZGV4PSctMSddOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGhyIHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBoMSxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzLFxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGFiYnJbdGl0bGVdLFxuICAgICAgICBhYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gICAgICAgICAgY3Vyc29yOiBoZWxwO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgYWRkcmVzcyB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBvbCxcbiAgICAgICAgdWwsXG4gICAgICAgIGRsIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICBvbCBvbCxcbiAgICAgICAgdWwgdWwsXG4gICAgICAgIG9sIHVsLFxuICAgICAgICB1bCBvbCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGR0IHtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICBiLFxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgICAgIH1cblxuICAgICAgICBzdWIsXG4gICAgICAgIHN1cCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1YiB7XG4gICAgICAgICAgYm90dG9tOiAtMC4yNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwIHtcbiAgICAgICAgICB0b3A6IC0wLjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAjMDA3YmZmO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjMDA1NmIzO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgYTpub3QoW2hyZWZdKSB7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgYTpub3QoW2hyZWZdKTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJlLFxuICAgICAgICBjb2RlLFxuICAgICAgICBrYmQsXG4gICAgICAgIHNhbXAge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsXG4gICAgICAgICAgICAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJlIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBmaWd1cmUge1xuICAgICAgICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhcHRpb24ge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgY2FwdGlvbi1zaWRlOiBib3R0b207XG4gICAgICAgIH1cblxuICAgICAgICB0aCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICAgICAgICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0LFxuICAgICAgICBidXR0b24sXG4gICAgICAgIHNlbGVjdCxcbiAgICAgICAgb3B0Z3JvdXAsXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uLFxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24sXG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uLFxuICAgICAgICBbdHlwZT0nYnV0dG9uJ10sXG4gICAgICAgIFt0eXBlPSdyZXNldCddLFxuICAgICAgICBbdHlwZT0nc3VibWl0J10ge1xuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLFxuICAgICAgICBbdHlwZT0nYnV0dG9uJ106bm90KDpkaXNhYmxlZCksXG4gICAgICAgIFt0eXBlPSdyZXNldCddOm5vdCg6ZGlzYWJsZWQpLFxuICAgICAgICBbdHlwZT0nc3VibWl0J106bm90KDpkaXNhYmxlZCkge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuICAgICAgICBbdHlwZT0ncmVzZXQnXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAgICAgW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ10sXG4gICAgICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J10ge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9J2RhdGUnXSxcbiAgICAgICAgaW5wdXRbdHlwZT0ndGltZSddLFxuICAgICAgICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxuICAgICAgICBpbnB1dFt0eXBlPSdtb250aCddIHtcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3g7XG4gICAgICAgIH1cblxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkc2V0IHtcbiAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgbGVnZW5kIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9ncmVzcyB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIFt0eXBlPSdzZWFyY2gnXSB7XG4gICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgW3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA6Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0cHV0IHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBzdW1tYXJ5IHtcbiAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgdGVtcGxhdGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBbaGlkZGVuXSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfVxuICAgIDwvc3R5bGU+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJDc3NSZXNldCIsInN0eWxlIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/shared.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/react-dev-overlay/shared.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 ACTION_BEFORE_REFRESH: function() {\n return ACTION_BEFORE_REFRESH;\n },\n ACTION_BUILD_ERROR: function() {\n return ACTION_BUILD_ERROR;\n },\n ACTION_BUILD_OK: function() {\n return ACTION_BUILD_OK;\n },\n ACTION_DEBUG_INFO: function() {\n return ACTION_DEBUG_INFO;\n },\n ACTION_REFRESH: function() {\n return ACTION_REFRESH;\n },\n ACTION_STATIC_INDICATOR: function() {\n return ACTION_STATIC_INDICATOR;\n },\n ACTION_UNHANDLED_ERROR: function() {\n return ACTION_UNHANDLED_ERROR;\n },\n ACTION_UNHANDLED_REJECTION: function() {\n return ACTION_UNHANDLED_REJECTION;\n },\n ACTION_VERSION_INFO: function() {\n return ACTION_VERSION_INFO;\n },\n INITIAL_OVERLAY_STATE: function() {\n return INITIAL_OVERLAY_STATE;\n },\n REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() {\n return REACT_REFRESH_FULL_RELOAD_FROM_ERROR;\n },\n useErrorOverlayReducer: function() {\n return useErrorOverlayReducer;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst ACTION_STATIC_INDICATOR = 'static-indicator';\nconst ACTION_BUILD_OK = 'build-ok';\nconst ACTION_BUILD_ERROR = 'build-error';\nconst ACTION_BEFORE_REFRESH = 'before-fast-refresh';\nconst ACTION_REFRESH = 'fast-refresh';\nconst ACTION_VERSION_INFO = 'version-info';\nconst ACTION_UNHANDLED_ERROR = 'unhandled-error';\nconst ACTION_UNHANDLED_REJECTION = 'unhandled-rejection';\nconst ACTION_DEBUG_INFO = 'debug-info';\nfunction pushErrorFilterDuplicates(errors, err) {\n return [\n ...errors.filter((e)=>{\n // Filter out duplicate errors\n return e.event.reason !== err.event.reason;\n }),\n err\n ];\n}\nconst INITIAL_OVERLAY_STATE = {\n nextId: 1,\n buildError: null,\n errors: [],\n notFound: false,\n staticIndicator: false,\n refreshState: {\n type: 'idle'\n },\n rootLayoutMissingTags: [],\n versionInfo: {\n installed: '0.0.0',\n staleness: 'unknown'\n },\n debugInfo: undefined\n};\nfunction useErrorOverlayReducer() {\n return (0, _react.useReducer)((_state, action)=>{\n switch(action.type){\n case ACTION_DEBUG_INFO:\n {\n return {\n ..._state,\n debugInfo: action.debugInfo\n };\n }\n case ACTION_STATIC_INDICATOR:\n {\n return {\n ..._state,\n staticIndicator: action.staticIndicator\n };\n }\n case ACTION_BUILD_OK:\n {\n return {\n ..._state,\n buildError: null\n };\n }\n case ACTION_BUILD_ERROR:\n {\n return {\n ..._state,\n buildError: action.message\n };\n }\n case ACTION_BEFORE_REFRESH:\n {\n return {\n ..._state,\n refreshState: {\n type: 'pending',\n errors: []\n }\n };\n }\n case ACTION_REFRESH:\n {\n return {\n ..._state,\n buildError: null,\n errors: // and UNHANDLED_REJECTION events might be dispatched between the\n // BEFORE_REFRESH and the REFRESH event. We want to keep those errors\n // around until the next refresh. Otherwise we run into a race\n // condition where those errors would be cleared on refresh completion\n // before they can be displayed.\n _state.refreshState.type === 'pending' ? _state.refreshState.errors : [],\n refreshState: {\n type: 'idle'\n }\n };\n }\n case ACTION_UNHANDLED_ERROR:\n case ACTION_UNHANDLED_REJECTION:\n {\n switch(_state.refreshState.type){\n case 'idle':\n {\n return {\n ..._state,\n nextId: _state.nextId + 1,\n errors: pushErrorFilterDuplicates(_state.errors, {\n id: _state.nextId,\n event: action\n })\n };\n }\n case 'pending':\n {\n return {\n ..._state,\n nextId: _state.nextId + 1,\n refreshState: {\n ..._state.refreshState,\n errors: pushErrorFilterDuplicates(_state.refreshState.errors, {\n id: _state.nextId,\n event: action\n })\n }\n };\n }\n default:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = _state.refreshState;\n return _state;\n }\n }\n case ACTION_VERSION_INFO:\n {\n return {\n ..._state,\n versionInfo: action.versionInfo\n };\n }\n default:\n {\n return _state;\n }\n }\n }, INITIAL_OVERLAY_STATE);\n}\nconst REACT_REFRESH_FULL_RELOAD_FROM_ERROR = '[Fast Refresh] performing full reload because your application had an unrecoverable error';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE2QmFBLHFCQUFxQjtlQUFyQkE7O0lBREFDLGtCQUFrQjtlQUFsQkE7O0lBREFDLGVBQWU7ZUFBZkE7O0lBT0FDLGlCQUFpQjtlQUFqQkE7O0lBSkFDLGNBQWM7ZUFBZEE7O0lBSkFDLHVCQUF1QjtlQUF2QkE7O0lBTUFDLHNCQUFzQjtlQUF0QkE7O0lBQ0FDLDBCQUEwQjtlQUExQkE7O0lBRkFDLG1CQUFtQjtlQUFuQkE7O0lBdUVBQyxxQkFBcUI7ZUFBckJBOztJQXlGQUMsb0NBQW9DO2VBQXBDQTs7SUE3RUdDLHNCQUFzQjtlQUF0QkE7OzttQ0FsSFc7QUEwQnBCLE1BQU1OLDBCQUEwQjtBQUNoQyxNQUFNSCxrQkFBa0I7QUFDeEIsTUFBTUQscUJBQXFCO0FBQzNCLE1BQU1ELHdCQUF3QjtBQUM5QixNQUFNSSxpQkFBaUI7QUFDdkIsTUFBTUksc0JBQXNCO0FBQzVCLE1BQU1GLHlCQUF5QjtBQUMvQixNQUFNQyw2QkFBNkI7QUFDbkMsTUFBTUosb0JBQW9CO0FBdURqQyxTQUFTUywwQkFDUEMsTUFBNkIsRUFDN0JDLEdBQXdCO0lBRXhCLE9BQU87V0FDRkQsT0FBT0UsTUFBTSxDQUFDLENBQUNDO1lBQ2hCLDhCQUE4QjtZQUM5QixPQUFPQSxFQUFFQyxLQUFLLENBQUNDLE1BQU0sS0FBS0osSUFBSUcsS0FBSyxDQUFDQyxNQUFNO1FBQzVDO1FBQ0FKO0tBQ0Q7QUFDSDtBQUVPLE1BQU1MLHdCQUFzQztJQUNqRFUsUUFBUTtJQUNSQyxZQUFZO0lBQ1pQLFFBQVEsRUFBRTtJQUNWUSxVQUFVO0lBQ1ZDLGlCQUFpQjtJQUNqQkMsY0FBYztRQUFFQyxNQUFNO0lBQU87SUFDN0JDLHVCQUF1QixFQUFFO0lBQ3pCQyxhQUFhO1FBQUVDLFdBQVc7UUFBU0MsV0FBVztJQUFVO0lBQ3hEQyxXQUFXQztBQUNiO0FBRU8sU0FBU25CO0lBQ2QsT0FBT29CLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVcsQ0FBQ0MsUUFBc0JDO1FBQ3ZDLE9BQVFBLE9BQU9ULElBQUk7WUFDakIsS0FBS3JCO2dCQUFtQjtvQkFDdEIsT0FBTzt3QkFBRSxHQUFHNkIsTUFBTTt3QkFBRUgsV0FBV0ksT0FBT0osU0FBUztvQkFBQztnQkFDbEQ7WUFDQSxLQUFLeEI7Z0JBQXlCO29CQUM1QixPQUFPO3dCQUFFLEdBQUcyQixNQUFNO3dCQUFFVixpQkFBaUJXLE9BQU9YLGVBQWU7b0JBQUM7Z0JBQzlEO1lBQ0EsS0FBS3BCO2dCQUFpQjtvQkFDcEIsT0FBTzt3QkFBRSxHQUFHOEIsTUFBTTt3QkFBRVosWUFBWTtvQkFBSztnQkFDdkM7WUFDQSxLQUFLbkI7Z0JBQW9CO29CQUN2QixPQUFPO3dCQUFFLEdBQUcrQixNQUFNO3dCQUFFWixZQUFZYSxPQUFPQyxPQUFPO29CQUFDO2dCQUNqRDtZQUNBLEtBQUtsQztnQkFBdUI7b0JBQzFCLE9BQU87d0JBQUUsR0FBR2dDLE1BQU07d0JBQUVULGNBQWM7NEJBQUVDLE1BQU07NEJBQVdYLFFBQVEsRUFBRTt3QkFBQztvQkFBRTtnQkFDcEU7WUFDQSxLQUFLVDtnQkFBZ0I7b0JBQ25CLE9BQU87d0JBQ0wsR0FBRzRCLE1BQU07d0JBQ1RaLFlBQVk7d0JBQ1pQLFFBQ0UsaUVBQ2lFO3dCQUNqRSxxRUFBcUU7d0JBQ3JFLDhEQUE4RDt3QkFDOUQsc0VBQXNFO3dCQUN0RSxnQ0FBZ0M7d0JBQ2hDbUIsT0FBT1QsWUFBWSxDQUFDQyxJQUFJLEtBQUssWUFDekJRLE9BQU9ULFlBQVksQ0FBQ1YsTUFBTSxHQUMxQixFQUFFO3dCQUNSVSxjQUFjOzRCQUFFQyxNQUFNO3dCQUFPO29CQUMvQjtnQkFDRjtZQUNBLEtBQUtsQjtZQUNMLEtBQUtDO2dCQUE0QjtvQkFDL0IsT0FBUXlCLE9BQU9ULFlBQVksQ0FBQ0MsSUFBSTt3QkFDOUIsS0FBSzs0QkFBUTtnQ0FDWCxPQUFPO29DQUNMLEdBQUdRLE1BQU07b0NBQ1RiLFFBQVFhLE9BQU9iLE1BQU0sR0FBRztvQ0FDeEJOLFFBQVFELDBCQUEwQm9CLE9BQU9uQixNQUFNLEVBQUU7d0NBQy9Dc0IsSUFBSUgsT0FBT2IsTUFBTTt3Q0FDakJGLE9BQU9nQjtvQ0FDVDtnQ0FDRjs0QkFDRjt3QkFDQSxLQUFLOzRCQUFXO2dDQUNkLE9BQU87b0NBQ0wsR0FBR0QsTUFBTTtvQ0FDVGIsUUFBUWEsT0FBT2IsTUFBTSxHQUFHO29DQUN4QkksY0FBYzt3Q0FDWixHQUFHUyxPQUFPVCxZQUFZO3dDQUN0QlYsUUFBUUQsMEJBQTBCb0IsT0FBT1QsWUFBWSxDQUFDVixNQUFNLEVBQUU7NENBQzVEc0IsSUFBSUgsT0FBT2IsTUFBTTs0Q0FDakJGLE9BQU9nQjt3Q0FDVDtvQ0FDRjtnQ0FDRjs0QkFDRjt3QkFDQTs0QkFDRSw2REFBNkQ7NEJBQzdELE1BQU1HLElBQVdKLE9BQU9ULFlBQVk7NEJBQ3BDLE9BQU9TO29CQUNYO2dCQUNGO1lBQ0EsS0FBS3hCO2dCQUFxQjtvQkFDeEIsT0FBTzt3QkFBRSxHQUFHd0IsTUFBTTt3QkFBRU4sYUFBYU8sT0FBT1AsV0FBVztvQkFBQztnQkFDdEQ7WUFDQTtnQkFBUztvQkFDUCxPQUFPTTtnQkFDVDtRQUNGO0lBQ0YsR0FBR3ZCO0FBQ0w7QUFFTyxNQUFNQyx1Q0FDWCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWFjdC1kZXYtb3ZlcmxheVxcc2hhcmVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVJlZHVjZXIgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBTdGFja0ZyYW1lIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyJ1xuaW1wb3J0IHR5cGUgeyBWZXJzaW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9kZXYvcGFyc2UtdmVyc2lvbi1pbmZvJ1xuaW1wb3J0IHR5cGUgeyBTdXBwb3J0ZWRFcnJvckV2ZW50IH0gZnJvbSAnLi9pbnRlcm5hbC9jb250YWluZXIvRXJyb3JzJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRTdGFja0ZyYW1lIH0gZnJvbSAnLi9pbnRlcm5hbC9oZWxwZXJzL3BhcnNlLWNvbXBvbmVudC1zdGFjaydcbmltcG9ydCB0eXBlIHsgRGVidWdJbmZvIH0gZnJvbSAnLi90eXBlcydcblxudHlwZSBGYXN0UmVmcmVzaFN0YXRlID1cbiAgLyoqIE5vIHJlZnJlc2ggaW4gcHJvZ3Jlc3MuICovXG4gIHwgeyB0eXBlOiAnaWRsZScgfVxuICAvKiogVGhlIHJlZnJlc2ggcHJvY2VzcyBoYXMgYmVlbiB0cmlnZ2VyZWQsIGJ1dCB0aGUgbmV3IGNvZGUgaGFzIG5vdCBiZWVuIGV4ZWN1dGVkIHlldC4gKi9cbiAgfCB7IHR5cGU6ICdwZW5kaW5nJzsgZXJyb3JzOiBTdXBwb3J0ZWRFcnJvckV2ZW50W10gfVxuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlTdGF0ZSB7XG4gIG5leHRJZDogbnVtYmVyXG4gIGJ1aWxkRXJyb3I6IHN0cmluZyB8IG51bGxcbiAgZXJyb3JzOiBTdXBwb3J0ZWRFcnJvckV2ZW50W11cbiAgcmVmcmVzaFN0YXRlOiBGYXN0UmVmcmVzaFN0YXRlXG4gIHJvb3RMYXlvdXRNaXNzaW5nVGFnczogdHlwZW9mIHdpbmRvdy5fX25leHRfcm9vdF9sYXlvdXRfbWlzc2luZ190YWdzXG4gIHZlcnNpb25JbmZvOiBWZXJzaW9uSW5mb1xuICBub3RGb3VuZDogYm9vbGVhblxuICBzdGF0aWNJbmRpY2F0b3I6IGJvb2xlYW5cbiAgZGVidWdJbmZvOiBEZWJ1Z0luZm8gfCB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGNvbnN0IEFDVElPTl9TVEFUSUNfSU5ESUNBVE9SID0gJ3N0YXRpYy1pbmRpY2F0b3InXG5leHBvcnQgY29uc3QgQUNUSU9OX0JVSUxEX09LID0gJ2J1aWxkLW9rJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9CVUlMRF9FUlJPUiA9ICdidWlsZC1lcnJvcidcbmV4cG9ydCBjb25zdCBBQ1RJT05fQkVGT1JFX1JFRlJFU0ggPSAnYmVmb3JlLWZhc3QtcmVmcmVzaCdcbmV4cG9ydCBjb25zdCBBQ1RJT05fUkVGUkVTSCA9ICdmYXN0LXJlZnJlc2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX1ZFUlNJT05fSU5GTyA9ICd2ZXJzaW9uLWluZm8nXG5leHBvcnQgY29uc3QgQUNUSU9OX1VOSEFORExFRF9FUlJPUiA9ICd1bmhhbmRsZWQtZXJyb3InXG5leHBvcnQgY29uc3QgQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04gPSAndW5oYW5kbGVkLXJlamVjdGlvbidcbmV4cG9ydCBjb25zdCBBQ1RJT05fREVCVUdfSU5GTyA9ICdkZWJ1Zy1pbmZvJ1xuXG5pbnRlcmZhY2UgU3RhdGljSW5kaWNhdG9yQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9TVEFUSUNfSU5ESUNBVE9SXG4gIHN0YXRpY0luZGljYXRvcjogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgQnVpbGRPa0FjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fQlVJTERfT0tcbn1cbmludGVyZmFjZSBCdWlsZEVycm9yQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9CVUlMRF9FUlJPUlxuICBtZXNzYWdlOiBzdHJpbmdcbn1cbmludGVyZmFjZSBCZWZvcmVGYXN0UmVmcmVzaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fQkVGT1JFX1JFRlJFU0hcbn1cbmludGVyZmFjZSBGYXN0UmVmcmVzaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fUkVGUkVTSFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuaGFuZGxlZEVycm9yQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9VTkhBTkRMRURfRVJST1JcbiAgcmVhc29uOiBFcnJvclxuICBmcmFtZXM6IFN0YWNrRnJhbWVbXVxuICBjb21wb25lbnRTdGFja0ZyYW1lcz86IENvbXBvbmVudFN0YWNrRnJhbWVbXVxuICB3YXJuaW5nPzogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddXG59XG5leHBvcnQgaW50ZXJmYWNlIFVuaGFuZGxlZFJlamVjdGlvbkFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTlxuICByZWFzb246IEVycm9yXG4gIGZyYW1lczogU3RhY2tGcmFtZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdJbmZvQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9ERUJVR19JTkZPXG4gIGRlYnVnSW5mbzogYW55XG59XG5cbmludGVyZmFjZSBWZXJzaW9uSW5mb0FjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fVkVSU0lPTl9JTkZPXG4gIHZlcnNpb25JbmZvOiBWZXJzaW9uSW5mb1xufVxuXG5leHBvcnQgdHlwZSBCdXNFdmVudCA9XG4gIHwgQnVpbGRPa0FjdGlvblxuICB8IEJ1aWxkRXJyb3JBY3Rpb25cbiAgfCBCZWZvcmVGYXN0UmVmcmVzaEFjdGlvblxuICB8IEZhc3RSZWZyZXNoQWN0aW9uXG4gIHwgVW5oYW5kbGVkRXJyb3JBY3Rpb25cbiAgfCBVbmhhbmRsZWRSZWplY3Rpb25BY3Rpb25cbiAgfCBWZXJzaW9uSW5mb0FjdGlvblxuICB8IFN0YXRpY0luZGljYXRvckFjdGlvblxuICB8IERlYnVnSW5mb0FjdGlvblxuXG5mdW5jdGlvbiBwdXNoRXJyb3JGaWx0ZXJEdXBsaWNhdGVzKFxuICBlcnJvcnM6IFN1cHBvcnRlZEVycm9yRXZlbnRbXSxcbiAgZXJyOiBTdXBwb3J0ZWRFcnJvckV2ZW50XG4pOiBTdXBwb3J0ZWRFcnJvckV2ZW50W10ge1xuICByZXR1cm4gW1xuICAgIC4uLmVycm9ycy5maWx0ZXIoKGUpID0+IHtcbiAgICAgIC8vIEZpbHRlciBvdXQgZHVwbGljYXRlIGVycm9yc1xuICAgICAgcmV0dXJuIGUuZXZlbnQucmVhc29uICE9PSBlcnIuZXZlbnQucmVhc29uXG4gICAgfSksXG4gICAgZXJyLFxuICBdXG59XG5cbmV4cG9ydCBjb25zdCBJTklUSUFMX09WRVJMQVlfU1RBVEU6IE92ZXJsYXlTdGF0ZSA9IHtcbiAgbmV4dElkOiAxLFxuICBidWlsZEVycm9yOiBudWxsLFxuICBlcnJvcnM6IFtdLFxuICBub3RGb3VuZDogZmFsc2UsXG4gIHN0YXRpY0luZGljYXRvcjogZmFsc2UsXG4gIHJlZnJlc2hTdGF0ZTogeyB0eXBlOiAnaWRsZScgfSxcbiAgcm9vdExheW91dE1pc3NpbmdUYWdzOiBbXSxcbiAgdmVyc2lvbkluZm86IHsgaW5zdGFsbGVkOiAnMC4wLjAnLCBzdGFsZW5lc3M6ICd1bmtub3duJyB9LFxuICBkZWJ1Z0luZm86IHVuZGVmaW5lZCxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUVycm9yT3ZlcmxheVJlZHVjZXIoKSB7XG4gIHJldHVybiB1c2VSZWR1Y2VyKChfc3RhdGU6IE92ZXJsYXlTdGF0ZSwgYWN0aW9uOiBCdXNFdmVudCk6IE92ZXJsYXlTdGF0ZSA9PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSBBQ1RJT05fREVCVUdfSU5GTzoge1xuICAgICAgICByZXR1cm4geyAuLi5fc3RhdGUsIGRlYnVnSW5mbzogYWN0aW9uLmRlYnVnSW5mbyB9XG4gICAgICB9XG4gICAgICBjYXNlIEFDVElPTl9TVEFUSUNfSU5ESUNBVE9SOiB7XG4gICAgICAgIHJldHVybiB7IC4uLl9zdGF0ZSwgc3RhdGljSW5kaWNhdG9yOiBhY3Rpb24uc3RhdGljSW5kaWNhdG9yIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgQUNUSU9OX0JVSUxEX09LOiB7XG4gICAgICAgIHJldHVybiB7IC4uLl9zdGF0ZSwgYnVpbGRFcnJvcjogbnVsbCB9XG4gICAgICB9XG4gICAgICBjYXNlIEFDVElPTl9CVUlMRF9FUlJPUjoge1xuICAgICAgICByZXR1cm4geyAuLi5fc3RhdGUsIGJ1aWxkRXJyb3I6IGFjdGlvbi5tZXNzYWdlIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgQUNUSU9OX0JFRk9SRV9SRUZSRVNIOiB7XG4gICAgICAgIHJldHVybiB7IC4uLl9zdGF0ZSwgcmVmcmVzaFN0YXRlOiB7IHR5cGU6ICdwZW5kaW5nJywgZXJyb3JzOiBbXSB9IH1cbiAgICAgIH1cbiAgICAgIGNhc2UgQUNUSU9OX1JFRlJFU0g6IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5fc3RhdGUsXG4gICAgICAgICAgYnVpbGRFcnJvcjogbnVsbCxcbiAgICAgICAgICBlcnJvcnM6XG4gICAgICAgICAgICAvLyBFcnJvcnMgY2FuIGNvbWUgaW4gZHVyaW5nIHVwZGF0ZXMuIEluIHRoaXMgY2FzZSwgVU5IQU5ETEVEX0VSUk9SXG4gICAgICAgICAgICAvLyBhbmQgVU5IQU5ETEVEX1JFSkVDVElPTiBldmVudHMgbWlnaHQgYmUgZGlzcGF0Y2hlZCBiZXR3ZWVuIHRoZVxuICAgICAgICAgICAgLy8gQkVGT1JFX1JFRlJFU0ggYW5kIHRoZSBSRUZSRVNIIGV2ZW50LiBXZSB3YW50IHRvIGtlZXAgdGhvc2UgZXJyb3JzXG4gICAgICAgICAgICAvLyBhcm91bmQgdW50aWwgdGhlIG5leHQgcmVmcmVzaC4gT3RoZXJ3aXNlIHdlIHJ1biBpbnRvIGEgcmFjZVxuICAgICAgICAgICAgLy8gY29uZGl0aW9uIHdoZXJlIHRob3NlIGVycm9ycyB3b3VsZCBiZSBjbGVhcmVkIG9uIHJlZnJlc2ggY29tcGxldGlvblxuICAgICAgICAgICAgLy8gYmVmb3JlIHRoZXkgY2FuIGJlIGRpc3BsYXllZC5cbiAgICAgICAgICAgIF9zdGF0ZS5yZWZyZXNoU3RhdGUudHlwZSA9PT0gJ3BlbmRpbmcnXG4gICAgICAgICAgICAgID8gX3N0YXRlLnJlZnJlc2hTdGF0ZS5lcnJvcnNcbiAgICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgICByZWZyZXNoU3RhdGU6IHsgdHlwZTogJ2lkbGUnIH0sXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgQUNUSU9OX1VOSEFORExFRF9FUlJPUjpcbiAgICAgIGNhc2UgQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT046IHtcbiAgICAgICAgc3dpdGNoIChfc3RhdGUucmVmcmVzaFN0YXRlLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdpZGxlJzoge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uX3N0YXRlLFxuICAgICAgICAgICAgICBuZXh0SWQ6IF9zdGF0ZS5uZXh0SWQgKyAxLFxuICAgICAgICAgICAgICBlcnJvcnM6IHB1c2hFcnJvckZpbHRlckR1cGxpY2F0ZXMoX3N0YXRlLmVycm9ycywge1xuICAgICAgICAgICAgICAgIGlkOiBfc3RhdGUubmV4dElkLFxuICAgICAgICAgICAgICAgIGV2ZW50OiBhY3Rpb24sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlICdwZW5kaW5nJzoge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uX3N0YXRlLFxuICAgICAgICAgICAgICBuZXh0SWQ6IF9zdGF0ZS5uZXh0SWQgKyAxLFxuICAgICAgICAgICAgICByZWZyZXNoU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAuLi5fc3RhdGUucmVmcmVzaFN0YXRlLFxuICAgICAgICAgICAgICAgIGVycm9yczogcHVzaEVycm9yRmlsdGVyRHVwbGljYXRlcyhfc3RhdGUucmVmcmVzaFN0YXRlLmVycm9ycywge1xuICAgICAgICAgICAgICAgICAgaWQ6IF9zdGF0ZS5uZXh0SWQsXG4gICAgICAgICAgICAgICAgICBldmVudDogYWN0aW9uLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgY29uc3QgXzogbmV2ZXIgPSBfc3RhdGUucmVmcmVzaFN0YXRlXG4gICAgICAgICAgICByZXR1cm4gX3N0YXRlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgQUNUSU9OX1ZFUlNJT05fSU5GTzoge1xuICAgICAgICByZXR1cm4geyAuLi5fc3RhdGUsIHZlcnNpb25JbmZvOiBhY3Rpb24udmVyc2lvbkluZm8gfVxuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gX3N0YXRlXG4gICAgICB9XG4gICAgfVxuICB9LCBJTklUSUFMX09WRVJMQVlfU1RBVEUpXG59XG5cbmV4cG9ydCBjb25zdCBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IgPVxuICAnW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZCBiZWNhdXNlIHlvdXIgYXBwbGljYXRpb24gaGFkIGFuIHVucmVjb3ZlcmFibGUgZXJyb3InXG4iXSwibmFtZXMiOlsiQUNUSU9OX0JFRk9SRV9SRUZSRVNIIiwiQUNUSU9OX0JVSUxEX0VSUk9SIiwiQUNUSU9OX0JVSUxEX09LIiwiQUNUSU9OX0RFQlVHX0lORk8iLCJBQ1RJT05fUkVGUkVTSCIsIkFDVElPTl9TVEFUSUNfSU5ESUNBVE9SIiwiQUNUSU9OX1VOSEFORExFRF9FUlJPUiIsIkFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OIiwiQUNUSU9OX1ZFUlNJT05fSU5GTyIsIklOSVRJQUxfT1ZFUkxBWV9TVEFURSIsIlJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiIsInVzZUVycm9yT3ZlcmxheVJlZHVjZXIiLCJwdXNoRXJyb3JGaWx0ZXJEdXBsaWNhdGVzIiwiZXJyb3JzIiwiZXJyIiwiZmlsdGVyIiwiZSIsImV2ZW50IiwicmVhc29uIiwibmV4dElkIiwiYnVpbGRFcnJvciIsIm5vdEZvdW5kIiwic3RhdGljSW5kaWNhdG9yIiwicmVmcmVzaFN0YXRlIiwidHlwZSIsInJvb3RMYXlvdXRNaXNzaW5nVGFncyIsInZlcnNpb25JbmZvIiwiaW5zdGFsbGVkIiwic3RhbGVuZXNzIiwiZGVidWdJbmZvIiwidW5kZWZpbmVkIiwidXNlUmVkdWNlciIsIl9zdGF0ZSIsImFjdGlvbiIsIm1lc3NhZ2UiLCJpZCIsIl8iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/shared.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXlFZ0JBLGdCQUFnQjtlQUFoQkE7O0lBcENIQyxxQkFBcUI7ZUFBckJBOzs7Ozs2RUFwQ29CO3dDQUVQO3NDQUN3QzsyQ0FDcEI7QUFPOUMsU0FBU0MsZUFBZSxLQVF2QjtJQVJ1QixNQUN0QkMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLFlBQVksRUFLYixHQVJ1QjtJQVN0QixNQUFNQyxTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUVmQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1JDLE9BQUFBLE9BQUssQ0FBQ0MsZUFBZSxDQUFDO1lBQ3BCLElBQUlMLGlCQUFpQk0sZUFBQUEsWUFBWSxDQUFDQyxJQUFJLEVBQUU7Z0JBQ3RDTixPQUFPTSxJQUFJLENBQUNULFVBQVUsQ0FBQztZQUN6QixPQUFPO2dCQUNMRyxPQUFPTyxPQUFPLENBQUNWLFVBQVUsQ0FBQztZQUM1QjtZQUNBQztRQUNGO0lBQ0YsR0FBRztRQUFDRDtRQUFVRTtRQUFjRDtRQUFPRTtLQUFPO0lBRTFDLE9BQU87QUFDVDtBQUVPLE1BQU1MLDhCQUE4QlEsT0FBQUEsT0FBSyxDQUFDSyxTQUFTO0lBU3hELE9BQU9DLHlCQUF5QkMsS0FBVSxFQUFFO1FBQzFDLElBQUlDLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCRCxRQUFRO1lBQzFCLE1BQU1FLE1BQU1DLENBQUFBLEdBQUFBLFVBQUFBLHVCQUFBQSxFQUF3Qkg7WUFDcEMsTUFBTVgsZUFBZWUsQ0FBQUEsR0FBQUEsVUFBQUEsd0JBQUFBLEVBQXlCSjtZQUM5QyxPQUFPO2dCQUFFYixVQUFVZTtnQkFBS2I7WUFBYTtRQUN2QztRQUNBLHdDQUF3QztRQUN4QyxNQUFNVztJQUNSO0lBRUEseUlBQXlJO0lBQ3pJSyxTQUEwQjtRQUN4QixNQUFNLEVBQUVsQixRQUFRLEVBQUVFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQ2lCLEtBQUs7UUFDN0MsSUFBSW5CLGFBQWEsUUFBUUUsaUJBQWlCLE1BQU07WUFDOUMscUJBQ0UscUJBQUNILGdCQUFBQTtnQkFDQ0MsVUFBVUE7Z0JBQ1ZFLGNBQWNBO2dCQUNkRCxPQUFPLElBQU0sSUFBSSxDQUFDbUIsUUFBUSxDQUFDO3dCQUFFcEIsVUFBVTtvQkFBSzs7UUFHbEQ7UUFFQSxPQUFPLElBQUksQ0FBQ3FCLEtBQUssQ0FBQ0MsUUFBUTtJQUM1QjtJQTdCQUMsWUFBWUYsS0FBNEIsQ0FBRTtRQUN4QyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDRixLQUFLLEdBQUc7WUFBRW5CLFVBQVU7WUFBTUUsY0FBYztRQUFLO0lBQ3BEO0FBMkJGO0FBRU8sU0FBU0wsaUJBQWlCLEtBQTJDO0lBQTNDLE1BQUV5QixRQUFRLEVBQWlDLEdBQTNDO0lBQy9CLE1BQU1uQixTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUNmLHFCQUNFLHFCQUFDTix1QkFBQUE7UUFBc0JLLFFBQVFBO2tCQUFTbUI7O0FBRTVDIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJlZGlyZWN0LWJvdW5kYXJ5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQXBwUm91dGVySW5zdGFuY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJy4vbmF2aWdhdGlvbidcbmltcG9ydCB7IGdldFJlZGlyZWN0VHlwZUZyb21FcnJvciwgZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IgfSBmcm9tICcuL3JlZGlyZWN0J1xuaW1wb3J0IHsgUmVkaXJlY3RUeXBlLCBpc1JlZGlyZWN0RXJyb3IgfSBmcm9tICcuL3JlZGlyZWN0LWVycm9yJ1xuXG5pbnRlcmZhY2UgUmVkaXJlY3RCb3VuZGFyeVByb3BzIHtcbiAgcm91dGVyOiBBcHBSb3V0ZXJJbnN0YW5jZVxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59XG5cbmZ1bmN0aW9uIEhhbmRsZVJlZGlyZWN0KHtcbiAgcmVkaXJlY3QsXG4gIHJlc2V0LFxuICByZWRpcmVjdFR5cGUsXG59OiB7XG4gIHJlZGlyZWN0OiBzdHJpbmdcbiAgcmVkaXJlY3RUeXBlOiBSZWRpcmVjdFR5cGVcbiAgcmVzZXQ6ICgpID0+IHZvaWRcbn0pIHtcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICBpZiAocmVkaXJlY3RUeXBlID09PSBSZWRpcmVjdFR5cGUucHVzaCkge1xuICAgICAgICByb3V0ZXIucHVzaChyZWRpcmVjdCwge30pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3V0ZXIucmVwbGFjZShyZWRpcmVjdCwge30pXG4gICAgICB9XG4gICAgICByZXNldCgpXG4gICAgfSlcbiAgfSwgW3JlZGlyZWN0LCByZWRpcmVjdFR5cGUsIHJlc2V0LCByb3V0ZXJdKVxuXG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBjbGFzcyBSZWRpcmVjdEVycm9yQm91bmRhcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIFJlZGlyZWN0Qm91bmRhcnlQcm9wcyxcbiAgeyByZWRpcmVjdDogc3RyaW5nIHwgbnVsbDsgcmVkaXJlY3RUeXBlOiBSZWRpcmVjdFR5cGUgfCBudWxsIH1cbj4ge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogUmVkaXJlY3RCb3VuZGFyeVByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5zdGF0ZSA9IHsgcmVkaXJlY3Q6IG51bGwsIHJlZGlyZWN0VHlwZTogbnVsbCB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgICAgY29uc3QgdXJsID0gZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IoZXJyb3IpXG4gICAgICBjb25zdCByZWRpcmVjdFR5cGUgPSBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IoZXJyb3IpXG4gICAgICByZXR1cm4geyByZWRpcmVjdDogdXJsLCByZWRpcmVjdFR5cGUgfVxuICAgIH1cbiAgICAvLyBSZS10aHJvdyBpZiBlcnJvciBpcyBub3QgZm9yIHJlZGlyZWN0XG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIC8vIEV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBnZW5lcmF0ZWQgYC5kLnRzYCBoYXZpbmcgYSB3aWRlIHJldHVybiB0eXBlIHRoYXQgY291bGQgYmUgc3BlY2lmaWMgdG8gdGhlIGBAdHlwZXMvcmVhY3RgIHZlcnNpb24uXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIGNvbnN0IHsgcmVkaXJlY3QsIHJlZGlyZWN0VHlwZSB9ID0gdGhpcy5zdGF0ZVxuICAgIGlmIChyZWRpcmVjdCAhPT0gbnVsbCAmJiByZWRpcmVjdFR5cGUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxIYW5kbGVSZWRpcmVjdFxuICAgICAgICAgIHJlZGlyZWN0PXtyZWRpcmVjdH1cbiAgICAgICAgICByZWRpcmVjdFR5cGU9e3JlZGlyZWN0VHlwZX1cbiAgICAgICAgICByZXNldD17KCkgPT4gdGhpcy5zZXRTdGF0ZSh7IHJlZGlyZWN0OiBudWxsIH0pfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJlZGlyZWN0Qm91bmRhcnkoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuICByZXR1cm4gKFxuICAgIDxSZWRpcmVjdEVycm9yQm91bmRhcnkgcm91dGVyPXtyb3V0ZXJ9PntjaGlsZHJlbn08L1JlZGlyZWN0RXJyb3JCb3VuZGFyeT5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0Qm91bmRhcnkiLCJSZWRpcmVjdEVycm9yQm91bmRhcnkiLCJIYW5kbGVSZWRpcmVjdCIsInJlZGlyZWN0IiwicmVzZXQiLCJyZWRpcmVjdFR5cGUiLCJyb3V0ZXIiLCJ1c2VSb3V0ZXIiLCJ1c2VFZmZlY3QiLCJSZWFjdCIsInN0YXJ0VHJhbnNpdGlvbiIsIlJlZGlyZWN0VHlwZSIsInB1c2giLCJyZXBsYWNlIiwiQ29tcG9uZW50IiwiZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIiwiZXJyb3IiLCJpc1JlZGlyZWN0RXJyb3IiLCJ1cmwiLCJnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciIsImdldFJlZGlyZWN0VHlwZUZyb21FcnJvciIsInJlbmRlciIsInN0YXRlIiwic2V0U3RhdGUiLCJwcm9wcyIsImNoaWxkcmVuIiwiY29uc3RydWN0b3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZWRpcmVjdC1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tICcuL3JlZGlyZWN0LXN0YXR1cy1jb2RlJ1xuXG5leHBvcnQgY29uc3QgUkVESVJFQ1RfRVJST1JfQ09ERSA9ICdORVhUX1JFRElSRUNUJ1xuXG5leHBvcnQgZW51bSBSZWRpcmVjdFR5cGUge1xuICBwdXNoID0gJ3B1c2gnLFxuICByZXBsYWNlID0gJ3JlcGxhY2UnLFxufVxuXG5leHBvcnQgdHlwZSBSZWRpcmVjdEVycm9yID0gRXJyb3IgJiB7XG4gIGRpZ2VzdDogYCR7dHlwZW9mIFJFRElSRUNUX0VSUk9SX0NPREV9OyR7UmVkaXJlY3RUeXBlfTske3N0cmluZ307JHtSZWRpcmVjdFN0YXR1c0NvZGV9O2Bcbn1cblxuLyoqXG4gKiBDaGVja3MgYW4gZXJyb3IgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5IHRoZVxuICogYHJlZGlyZWN0KHVybClgIGhlbHBlci5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgdGhlIGVycm9yIHRoYXQgbWF5IHJlZmVyZW5jZSBhIHJlZGlyZWN0IGVycm9yXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBlcnJvciBpcyBhIHJlZGlyZWN0IGVycm9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZGlyZWN0RXJyb3IoZXJyb3I6IHVua25vd24pOiBlcnJvciBpcyBSZWRpcmVjdEVycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHxcbiAgICBlcnJvciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyb3IpIHx8XG4gICAgdHlwZW9mIGVycm9yLmRpZ2VzdCAhPT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBkaWdlc3QgPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVxuICBjb25zdCBbZXJyb3JDb2RlLCB0eXBlXSA9IGRpZ2VzdFxuICBjb25zdCBkZXN0aW5hdGlvbiA9IGRpZ2VzdC5zbGljZSgyLCAtMikuam9pbignOycpXG4gIGNvbnN0IHN0YXR1cyA9IGRpZ2VzdC5hdCgtMilcblxuICBjb25zdCBzdGF0dXNDb2RlID0gTnVtYmVyKHN0YXR1cylcblxuICByZXR1cm4gKFxuICAgIGVycm9yQ29kZSA9PT0gUkVESVJFQ1RfRVJST1JfQ09ERSAmJlxuICAgICh0eXBlID09PSAncmVwbGFjZScgfHwgdHlwZSA9PT0gJ3B1c2gnKSAmJlxuICAgIHR5cGVvZiBkZXN0aW5hdGlvbiA9PT0gJ3N0cmluZycgJiZcbiAgICAhaXNOYU4oc3RhdHVzQ29kZSkgJiZcbiAgICBzdGF0dXNDb2RlIGluIFJlZGlyZWN0U3RhdHVzQ29kZVxuICApXG59XG4iXSwibmFtZXMiOlsiUkVESVJFQ1RfRVJST1JfQ09ERSIsIlJlZGlyZWN0VHlwZSIsImlzUmVkaXJlY3RFcnJvciIsImVycm9yIiwiZGlnZXN0Iiwic3BsaXQiLCJlcnJvckNvZGUiLCJ0eXBlIiwiZGVzdGluYXRpb24iLCJzbGljZSIsImpvaW4iLCJzdGF0dXMiLCJhdCIsInN0YXR1c0NvZGUiLCJOdW1iZXIiLCJpc05hTiIsIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVkaXJlY3Qtc3RhdHVzLWNvZGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUmVkaXJlY3RTdGF0dXNDb2RlIHtcbiAgU2VlT3RoZXIgPSAzMDMsXG4gIFRlbXBvcmFyeVJlZGlyZWN0ID0gMzA3LFxuICBQZXJtYW5lbnRSZWRpcmVjdCA9IDMwOCxcbn1cbiJdLCJuYW1lcyI6WyJSZWRpcmVjdFN0YXR1c0NvZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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 _actionasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\");\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\");\nfunction getRedirectError(url, type, statusCode) {\n if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect;\n const error = new Error(_redirecterror.REDIRECT_ERROR_CODE);\n error.digest = _redirecterror.REDIRECT_ERROR_CODE + \";\" + type + \";\" + url + \";\" + statusCode + \";\";\n return error;\n}\nfunction redirect(/** The URL to redirect to */ url, type) {\n const actionStore = _actionasyncstorageexternal.actionAsyncStorage.getStore();\n const redirectType = type || ((actionStore == null ? void 0 : actionStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace);\n throw getRedirectError(url, redirectType, _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 new Error('Not a redirect error');\n }\n return error.digest.split(';', 2)[1];\n}\nfunction getRedirectStatusCodeFromError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) {\n throw new Error('Not a redirect error');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVNnQkEsZ0JBQWdCO2VBQWhCQTs7SUFnRkFDLDhCQUE4QjtlQUE5QkE7O0lBUkFDLHdCQUF3QjtlQUF4QkE7O0lBUkFDLHVCQUF1QjtlQUF2QkE7O0lBaEJBQyxpQkFBaUI7ZUFBakJBOztJQTFCQUMsUUFBUTtlQUFSQTs7O3dEQS9CbUI7Z0RBQ0E7MkNBTTVCO0FBRUEsU0FBU0wsaUJBQ2RNLEdBQVcsRUFDWEMsSUFBa0IsRUFDbEJDLFVBQXFFO0lBQXJFQSxJQUFBQSxlQUFBQSxLQUFBQSxHQUFBQSxhQUFpQ0Msb0JBQUFBLGtCQUFrQixDQUFDQyxpQkFBaUI7SUFFckUsTUFBTUMsUUFBUSxJQUFJQyxNQUFNQyxlQUFBQSxtQkFBbUI7SUFDM0NGLE1BQU1HLE1BQU0sR0FBTUQsZUFBQUEsbUJBQW1CLEdBQUMsTUFBR04sT0FBSyxNQUFHRCxNQUFJLE1BQUdFLGFBQVc7SUFDbkUsT0FBT0c7QUFDVDtBQWNPLFNBQVNOLFNBQ2QsMkJBQTJCLEdBQzNCQyxHQUFXLEVBQ1hDLElBQW1CO0lBRW5CLE1BQU1RLGNBQWNDLDRCQUFBQSxrQkFBa0IsQ0FBQ0MsUUFBUTtJQUMvQyxNQUFNQyxlQUNKWCxRQUFTUSxDQUFBQSxnQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsWUFBYUksUUFBQUEsSUFBV0MsZUFBQUEsWUFBWSxDQUFDQyxJQUFJLEdBQUdELGVBQUFBLFlBQVksQ0FBQ0UsT0FBQUE7SUFDcEUsTUFBTXRCLGlCQUNKTSxLQUNBWSxjQUNBVCxvQkFBQUEsa0JBQWtCLENBQUNDLGlCQUFpQjtBQUV4QztBQWFPLFNBQVNOLGtCQUNkLDJCQUEyQixHQUMzQkUsR0FBVyxFQUNYQyxJQUF5QztJQUF6Q0EsSUFBQUEsU0FBQUEsS0FBQUEsR0FBQUEsT0FBcUJhLGVBQUFBLFlBQVksQ0FBQ0UsT0FBTztJQUV6QyxNQUFNdEIsaUJBQWlCTSxLQUFLQyxNQUFNRSxvQkFBQUEsa0JBQWtCLENBQUNjLGlCQUFpQjtBQUN4RTtBQVVPLFNBQVNwQix3QkFBd0JRLEtBQWM7SUFDcEQsSUFBSSxDQUFDYSxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQmIsUUFBUSxPQUFPO0lBRXBDLHdFQUF3RTtJQUN4RSxrQkFBa0I7SUFDbEIsT0FBT0EsTUFBTUcsTUFBTSxDQUFDVyxLQUFLLENBQUMsS0FBS0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHQyxJQUFJLENBQUM7QUFDbkQ7QUFFTyxTQUFTekIseUJBQXlCUyxLQUFvQjtJQUMzRCxJQUFJLENBQUNhLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCYixRQUFRO1FBQzNCLE1BQU0sSUFBSUMsTUFBTTtJQUNsQjtJQUVBLE9BQU9ELE1BQU1HLE1BQU0sQ0FBQ1csS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7QUFDdEM7QUFFTyxTQUFTeEIsK0JBQStCVSxLQUFvQjtJQUNqRSxJQUFJLENBQUNhLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCYixRQUFRO1FBQzNCLE1BQU0sSUFBSUMsTUFBTTtJQUNsQjtJQUVBLE9BQU9nQixPQUFPakIsTUFBTUcsTUFBTSxDQUFDVyxLQUFLLENBQUMsS0FBS0ksRUFBRSxDQUFDLENBQUM7QUFDNUMiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccmVkaXJlY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWN0aW9uQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvYWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5pbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tICcuL3JlZGlyZWN0LXN0YXR1cy1jb2RlJ1xuaW1wb3J0IHtcbiAgUmVkaXJlY3RUeXBlLFxuICB0eXBlIFJlZGlyZWN0RXJyb3IsXG4gIGlzUmVkaXJlY3RFcnJvcixcbiAgUkVESVJFQ1RfRVJST1JfQ09ERSxcbn0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZGlyZWN0RXJyb3IoXG4gIHVybDogc3RyaW5nLFxuICB0eXBlOiBSZWRpcmVjdFR5cGUsXG4gIHN0YXR1c0NvZGU6IFJlZGlyZWN0U3RhdHVzQ29kZSA9IFJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdFxuKTogUmVkaXJlY3RFcnJvciB7XG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFJFRElSRUNUX0VSUk9SX0NPREUpIGFzIFJlZGlyZWN0RXJyb3JcbiAgZXJyb3IuZGlnZXN0ID0gYCR7UkVESVJFQ1RfRVJST1JfQ09ERX07JHt0eXBlfTske3VybH07JHtzdGF0dXNDb2RlfTtgXG4gIHJldHVybiBlcnJvclxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIFVSTC4gSXQgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqIC0gSW4gYSBTZXJ2ZXIgQ29tcG9uZW50LCB0aGlzIHdpbGwgaW5zZXJ0IGEgbWV0YSB0YWcgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gdGhlIHRhcmdldCBwYWdlLlxuICogLSBJbiBhIFJvdXRlIEhhbmRsZXIgb3IgU2VydmVyIEFjdGlvbiwgaXQgd2lsbCBzZXJ2ZSBhIDMwNy8zMDMgdG8gdGhlIGNhbGxlci5cbiAqIC0gSW4gYSBTZXJ2ZXIgQWN0aW9uLCB0eXBlIGRlZmF1bHRzIHRvICdwdXNoJyBhbmQgJ3JlcGxhY2UnIGVsc2V3aGVyZS5cbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGByZWRpcmVjdGBdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9yZWRpcmVjdClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZGlyZWN0KFxuICAvKiogVGhlIFVSTCB0byByZWRpcmVjdCB0byAqL1xuICB1cmw6IHN0cmluZyxcbiAgdHlwZT86IFJlZGlyZWN0VHlwZVxuKTogbmV2ZXIge1xuICBjb25zdCBhY3Rpb25TdG9yZSA9IGFjdGlvbkFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGNvbnN0IHJlZGlyZWN0VHlwZSA9XG4gICAgdHlwZSB8fCAoYWN0aW9uU3RvcmU/LmlzQWN0aW9uID8gUmVkaXJlY3RUeXBlLnB1c2ggOiBSZWRpcmVjdFR5cGUucmVwbGFjZSlcbiAgdGhyb3cgZ2V0UmVkaXJlY3RFcnJvcihcbiAgICB1cmwsXG4gICAgcmVkaXJlY3RUeXBlLFxuICAgIFJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdFxuICApXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgVVJMLiBJdCBjYW4gYmUgdXNlZCBpblxuICogW1NlcnZlciBDb21wb25lbnRzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMpLFxuICogW1JvdXRlIEhhbmRsZXJzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3JvdXRlLWhhbmRsZXJzKSwgYW5kXG4gKiBbU2VydmVyIEFjdGlvbnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvc2VydmVyLWFjdGlvbnMtYW5kLW11dGF0aW9ucykuXG4gKlxuICogLSBJbiBhIFNlcnZlciBDb21wb25lbnQsIHRoaXMgd2lsbCBpbnNlcnQgYSBtZXRhIHRhZyB0byByZWRpcmVjdCB0aGUgdXNlciB0byB0aGUgdGFyZ2V0IHBhZ2UuXG4gKiAtIEluIGEgUm91dGUgSGFuZGxlciBvciBTZXJ2ZXIgQWN0aW9uLCBpdCB3aWxsIHNlcnZlIGEgMzA4LzMwMyB0byB0aGUgY2FsbGVyLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHJlZGlyZWN0YF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3JlZGlyZWN0KVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGVybWFuZW50UmVkaXJlY3QoXG4gIC8qKiBUaGUgVVJMIHRvIHJlZGlyZWN0IHRvICovXG4gIHVybDogc3RyaW5nLFxuICB0eXBlOiBSZWRpcmVjdFR5cGUgPSBSZWRpcmVjdFR5cGUucmVwbGFjZVxuKTogbmV2ZXIge1xuICB0aHJvdyBnZXRSZWRpcmVjdEVycm9yKHVybCwgdHlwZSwgUmVkaXJlY3RTdGF0dXNDb2RlLlBlcm1hbmVudFJlZGlyZWN0KVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGVuY29kZWQgVVJMIGZyb20gdGhlIGVycm9yIGlmIGl0J3MgYSBSZWRpcmVjdEVycm9yLCBudWxsXG4gKiBvdGhlcndpc2UuIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IHZhbGlkYXRlIHRoZSBVUkwgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG1heSBiZSBhIHJlZGlyZWN0IGVycm9yXG4gKiBAcmV0dXJuIHRoZSB1cmwgaWYgdGhlIGVycm9yIHdhcyBhIHJlZGlyZWN0IGVycm9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvcihlcnJvcjogUmVkaXJlY3RFcnJvcik6IHN0cmluZ1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghaXNSZWRpcmVjdEVycm9yKGVycm9yKSkgcmV0dXJuIG51bGxcblxuICAvLyBTbGljZXMgb2ZmIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRpZ2VzdCB0aGF0IGNvbnRhaW5zIHRoZSBjb2RlIGFuZCB0aGVcbiAgLy8gc2VwYXJhdGluZyAnOycuXG4gIHJldHVybiBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKS5zbGljZSgyLCAtMikuam9pbignOycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IoZXJyb3I6IFJlZGlyZWN0RXJyb3IpOiBSZWRpcmVjdFR5cGUge1xuICBpZiAoIWlzUmVkaXJlY3RFcnJvcihlcnJvcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHJlZGlyZWN0IGVycm9yJylcbiAgfVxuXG4gIHJldHVybiBlcnJvci5kaWdlc3Quc3BsaXQoJzsnLCAyKVsxXSBhcyBSZWRpcmVjdFR5cGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZGlyZWN0U3RhdHVzQ29kZUZyb21FcnJvcihlcnJvcjogUmVkaXJlY3RFcnJvcik6IG51bWJlciB7XG4gIGlmICghaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgcmVkaXJlY3QgZXJyb3InKVxuICB9XG5cbiAgcmV0dXJuIE51bWJlcihlcnJvci5kaWdlc3Quc3BsaXQoJzsnKS5hdCgtMikpXG59XG4iXSwibmFtZXMiOlsiZ2V0UmVkaXJlY3RFcnJvciIsImdldFJlZGlyZWN0U3RhdHVzQ29kZUZyb21FcnJvciIsImdldFJlZGlyZWN0VHlwZUZyb21FcnJvciIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwicGVybWFuZW50UmVkaXJlY3QiLCJyZWRpcmVjdCIsInVybCIsInR5cGUiLCJzdGF0dXNDb2RlIiwiUmVkaXJlY3RTdGF0dXNDb2RlIiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJlcnJvciIsIkVycm9yIiwiUkVESVJFQ1RfRVJST1JfQ09ERSIsImRpZ2VzdCIsImFjdGlvblN0b3JlIiwiYWN0aW9uQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJyZWRpcmVjdFR5cGUiLCJpc0FjdGlvbiIsIlJlZGlyZWN0VHlwZSIsInB1c2giLCJyZXBsYWNlIiwiUGVybWFuZW50UmVkaXJlY3QiLCJpc1JlZGlyZWN0RXJyb3IiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsIk51bWJlciIsImF0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FLQTs7O2VBQXdCQTs7Ozs7NkVBSG9COzJEQUNaO0FBRWpCLFNBQVNBO0lBQ3RCLE1BQU1DLFdBQVdDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLCtCQUFBQSxlQUFlO0lBQzNDLHFCQUFPO2tCQUFHRjs7QUFDWiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUmVuZGVyRnJvbVRlbXBsYXRlQ29udGV4dCgpOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IGNoaWxkcmVuID0gdXNlQ29udGV4dChUZW1wbGF0ZUNvbnRleHQpXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz5cbn1cbiJdLCJuYW1lcyI6WyJSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0IiwiY2hpbGRyZW4iLCJ1c2VDb250ZXh0IiwiVGVtcGxhdGVDb250ZXh0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1ocmVmLWZyb20tdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxrQkFDZEMsR0FBOEMsRUFDOUNDLFdBQTJCO0lBQTNCQSxJQUFBQSxnQkFBQUEsS0FBQUEsR0FBQUEsY0FBdUI7SUFFdkIsT0FBT0QsSUFBSUUsUUFBUSxHQUFHRixJQUFJRyxNQUFNLEdBQUlGLENBQUFBLGNBQWNELElBQUlJLElBQUksR0FBRyxHQUFDO0FBQ2hFIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHJvdXRlci1yZWR1Y2VyXFxjcmVhdGUtaHJlZi1mcm9tLXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY3JlYXRlSHJlZkZyb21VcmwoXG4gIHVybDogUGljazxVUkwsICdwYXRobmFtZScgfCAnc2VhcmNoJyB8ICdoYXNoJz4sXG4gIGluY2x1ZGVIYXNoOiBib29sZWFuID0gdHJ1ZVxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHVybC5wYXRobmFtZSArIHVybC5zZWFyY2ggKyAoaW5jbHVkZUhhc2ggPyB1cmwuaGFzaCA6ICcnKVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUhyZWZGcm9tVXJsIiwidXJsIiwiaW5jbHVkZUhhc2giLCJwYXRobmFtZSIsInNlYXJjaCIsImhhc2giXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5LmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBR2dCQTs7O2VBQUFBOzs7cUNBRmlCO0FBRTFCLFNBQVNBLHFCQUNkQyxPQUFnQixFQUNoQkMsdUJBQXdDO0lBQXhDQSxJQUFBQSw0QkFBQUEsS0FBQUEsR0FBQUEsMEJBQW1DO0lBRW5DLDhEQUE4RDtJQUM5RCx1R0FBdUc7SUFDdkcsSUFBSUMsTUFBTUMsT0FBTyxDQUFDSCxVQUFVO1FBQzFCLE9BQVVBLE9BQU8sQ0FBQyxFQUFFLEdBQUMsTUFBR0EsT0FBTyxDQUFDLEVBQUUsR0FBQyxNQUFHQSxPQUFPLENBQUMsRUFBRTtJQUNsRDtJQUVBLGtFQUFrRTtJQUNsRSxrRkFBa0Y7SUFDbEYsSUFBSUMsMkJBQTJCRCxRQUFRSSxVQUFVLENBQUNDLFNBQUFBLGdCQUFnQixHQUFHO1FBQ25FLE9BQU9BLFNBQUFBLGdCQUFnQjtJQUN6QjtJQUVBLE9BQU9MO0FBQ1QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccm91dGVyLXJlZHVjZXJcXGNyZWF0ZS1yb3V0ZXItY2FjaGUta2V5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgUEFHRV9TRUdNRU5UX0tFWSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvc2VnbWVudCdcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlckNhY2hlS2V5KFxuICBzZWdtZW50OiBTZWdtZW50LFxuICB3aXRob3V0U2VhcmNoUGFyYW1ldGVyczogYm9vbGVhbiA9IGZhbHNlXG4pIHtcbiAgLy8gaWYgdGhlIHNlZ21lbnQgaXMgYW4gYXJyYXksIGl0IG1lYW5zIGl0J3MgYSBkeW5hbWljIHNlZ21lbnRcbiAgLy8gZm9yIGV4YW1wbGUsIFsnbGFuZycsICdlbicsICdkJ10uIFdlIG5lZWQgdG8gY29udmVydCBpdCB0byBhIHN0cmluZyB0byBzdG9yZSBpdCBhcyBhIGNhY2hlIG5vZGUga2V5LlxuICBpZiAoQXJyYXkuaXNBcnJheShzZWdtZW50KSkge1xuICAgIHJldHVybiBgJHtzZWdtZW50WzBdfXwke3NlZ21lbnRbMV19fCR7c2VnbWVudFsyXX1gXG4gIH1cblxuICAvLyBQYWdlIHNlZ21lbnRzIG1pZ2h0IGhhdmUgc2VhcmNoIHBhcmFtZXRlcnMsIGllIF9fUEFHRV9fP2Zvbz1iYXJcbiAgLy8gV2hlbiBgd2l0aG91dFNlYXJjaFBhcmFtZXRlcnNgIGlzIHRydWUsIHdlIG9ubHkgd2FudCB0byByZXR1cm4gdGhlIHBhZ2Ugc2VnbWVudFxuICBpZiAod2l0aG91dFNlYXJjaFBhcmFtZXRlcnMgJiYgc2VnbWVudC5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSB7XG4gICAgcmV0dXJuIFBBR0VfU0VHTUVOVF9LRVlcbiAgfVxuXG4gIHJldHVybiBzZWdtZW50XG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJzZWdtZW50Iiwid2l0aG91dFNlYXJjaFBhcmFtZXRlcnMiLCJBcnJheSIsImlzQXJyYXkiLCJzdGFydHNXaXRoIiwiUEFHRV9TRUdNRU5UX0tFWSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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 urlToUrlWithoutFlightMarker: function() {\n return urlToUrlWithoutFlightMarker;\n }\n});\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 _hash = __webpack_require__(/*! ../../../shared/lib/hash */ \"(ssr)/./node_modules/next/dist/shared/lib/hash.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\");\n// @ts-ignore\n// eslint-disable-next-line import/no-extraneous-dependencies\n// import { createFromReadableStream } from 'react-server-dom-webpack/client'\nconst { createFromReadableStream } = true ? __webpack_require__(/*! react-server-dom-webpack/client.edge */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client-edge.js\") : 0;\nfunction urlToUrlWithoutFlightMarker(url) {\n const urlWithoutFlightParameters = new URL(url, location.origin);\n urlWithoutFlightParameters.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n if (false) {}\n return urlWithoutFlightParameters;\n}\nfunction doMpaNavigation(url) {\n return {\n flightData: urlToUrlWithoutFlightMarker(url).toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n}\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]: encodeURIComponent(JSON.stringify(flightRouterState))\n };\n /**\n * Three cases:\n * - `prefetchKind` is `undefined`, it means it's a normal navigation, so we want to prefetch the page data fully\n * - `prefetchKind` is `full` - we want to prefetch the whole page so same as above\n * - `prefetchKind` is `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully\n */ if (prefetchKind === _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 const res = await createFetch(url, headers, fetchPriority);\n const responseUrl = urlToUrlWithoutFlightMarker(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 staleTimeHeader = res.headers.get(_approuterheaders.NEXT_ROUTER_STALE_TIME_HEADER);\n const staleTime = staleTimeHeader !== null ? parseInt(staleTimeHeader, 10) : -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__(/*! ../react-dev-overlay/app/hot-reloader-client */ \"(ssr)/./node_modules/next/dist/client/components/react-dev-overlay/app/hot-reloader-client.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 console.error(\"Failed to fetch RSC payload for \" + url + \". Falling back to browser navigation.\", err);\n // If fetch fails handle it like a mpa navigation\n // TODO-APP: Add a test for the case where a CORS request fails, e.g. external url redirect coming from the response.\n // See https://github.com/vercel/next.js/issues/43605#issuecomment-1451617521 for a reproduction.\n return {\n flightData: url.toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n }\n}\nfunction createFetch(url, headers, fetchPriority) {\n const fetchUrl = new URL(url);\n if (false) {}\n // This is used to cache bust CDNs that don't support custom headers. The\n // result is stored in a search param.\n // TODO: Given that we have to use a search param anyway, we might as well\n // _only_ use a search param and not bother with the custom headers.\n // Add unique cache query to avoid caching conflicts on CDN which don't respect the Vary header\n const uniqueCacheQuery = (0, _hash.hexHash)([\n headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] || '0',\n headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER] || '0',\n headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER],\n headers[_approuterheaders.NEXT_URL]\n ].join(','));\n fetchUrl.searchParams.set(_approuterheaders.NEXT_RSC_UNION_QUERY, uniqueCacheQuery);\n if (false) {}\n if (false) {}\n return fetch(fetchUrl, {\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 });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE4TmdCQSxXQUFXO2VBQVhBOztJQWlEQUMsNEJBQTRCO2VBQTVCQTs7SUE1S01DLG1CQUFtQjtlQUFuQkE7O0lBaENOQywyQkFBMkI7ZUFBM0JBOzs7OENBdkNUOzJDQUNvQjtpREFDTTtnREFDSjtrQ0FDTDsrQ0FJakI7d0NBQ3VCO0FBbkM5QixhQUFhO0FBQ2IsNkRBQTZEO0FBQzdELDZFQUE2RTtBQUM3RSxNQUFNLEVBQUVDLHdCQUF3QixFQUFFLEdBQ2hDLEtBQTBCLEdBRXRCSSxtQkFBT0EsQ0FBQywrSkFBc0MsSUFFOUNBLENBQTBDO0FBeUR6QyxTQUFTTCw0QkFBNEJNLEdBQVc7SUFDckQsTUFBTUMsNkJBQTZCLElBQUlDLElBQUlGLEtBQUtHLFNBQVNDLE1BQU07SUFDL0RILDJCQUEyQkksWUFBWSxDQUFDQyxNQUFNLENBQUNDLGtCQUFBQSxvQkFBb0I7SUFDbkUsSUFBSVgsS0FBb0IsRUFBbUIsRUFVMUM7SUFDRCxPQUFPSztBQUNUO0FBRUEsU0FBU2EsZ0JBQWdCZCxHQUFXO0lBQ2xDLE9BQU87UUFDTGUsWUFBWXJCLDRCQUE0Qk0sS0FBS2dCLFFBQVE7UUFDckRDLGNBQWNDO1FBQ2RDLG9CQUFvQjtRQUNwQkMsYUFBYTtRQUNiQyxXQUFXO1FBQ1hDLFdBQVcsQ0FBQztJQUNkO0FBQ0Y7QUFNTyxlQUFlN0Isb0JBQ3BCTyxHQUFRLEVBQ1J1QixPQUFtQztJQUVuQyxNQUFNLEVBQUVDLGlCQUFpQixFQUFFQyxPQUFPLEVBQUVDLFlBQVksRUFBRSxHQUFHSDtJQUVyRCxNQUFNSSxVQUEwQjtRQUM5Qix5QkFBeUI7UUFDekIsQ0FBQ0Msa0JBQUFBLFVBQVUsQ0FBQyxFQUFFO1FBQ2QsbUNBQW1DO1FBQ25DLENBQUNDLGtCQUFBQSw2QkFBNkIsQ0FB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RTtJQUMxRSw4REFBOEQ7SUFDOUQsMkNBQTJDO0lBQzNDLEVBQUU7SUFDRiwyRUFBMkU7SUFDM0UsMEVBQTBFO0lBQzFFLDhFQUE4RTtJQUM5RSwrQkFBK0I7SUFDL0IsTUFBTUMsU0FBU0QscUJBQXFCRSxTQUFTO0lBQzdDLE9BQU8sSUFBSUMsZUFBZTtRQUN4QixNQUFNQyxNQUFLQyxVQUFVO1lBQ25CLE1BQU8sS0FBTTtnQkFDWCxNQUFNLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFLEdBQUcsTUFBTU4sT0FBT08sSUFBSTtnQkFDekMsSUFBSSxDQUFDRixNQUFNO29CQUNULG1FQUFtRTtvQkFDbkUsbUJBQW1CO29CQUNuQkQsV0FBV0ksT0FBTyxDQUFDRjtvQkFDbkI7Z0JBQ0Y7Z0JBQ0EscUVBQXFFO2dCQUNyRSxxQkFBcUI7Z0JBQ3JCO1lBQ0Y7UUFDRjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccm91dGVyLXJlZHVjZXJcXGZldGNoLXNlcnZlci1yZXNwb25zZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuLy8gQHRzLWlnbm9yZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuLy8gaW1wb3J0IHsgY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIH0gZnJvbSAncmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudCdcbmNvbnN0IHsgY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIH0gPSAoXG4gICEhcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FXG4gICAgPyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG4gICAgICByZXF1aXJlKCdyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50LmVkZ2UnKVxuICAgIDogLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuICAgICAgcmVxdWlyZSgncmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudCcpXG4pIGFzIHR5cGVvZiBpbXBvcnQoJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnKVxuXG5pbXBvcnQgdHlwZSB7XG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBOYXZpZ2F0aW9uRmxpZ2h0UmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHtcbiAgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSLFxuICBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUlNDX1VOSU9OX1FVRVJZLFxuICBORVhUX1VSTCxcbiAgUlNDX0hFQURFUixcbiAgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIsXG4gIE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSLFxuICBORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSLFxufSBmcm9tICcuLi9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQgeyBjYWxsU2VydmVyIH0gZnJvbSAnLi4vLi4vYXBwLWNhbGwtc2VydmVyJ1xuaW1wb3J0IHsgZmluZFNvdXJjZU1hcFVSTCB9IGZyb20gJy4uLy4uL2FwcC1maW5kLXNvdXJjZS1tYXAtdXJsJ1xuaW1wb3J0IHsgUHJlZmV0Y2hLaW5kIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGhleEhhc2ggfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2hhc2gnXG5pbXBvcnQge1xuICBub3JtYWxpemVGbGlnaHREYXRhLFxuICB0eXBlIE5vcm1hbGl6ZWRGbGlnaHREYXRhLFxufSBmcm9tICcuLi8uLi9mbGlnaHQtZGF0YS1oZWxwZXJzJ1xuaW1wb3J0IHsgZ2V0QXBwQnVpbGRJZCB9IGZyb20gJy4uLy4uL2FwcC1idWlsZC1pZCdcblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaFNlcnZlclJlc3BvbnNlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICByZWFkb25seSBuZXh0VXJsOiBzdHJpbmcgfCBudWxsXG4gIHJlYWRvbmx5IHByZWZldGNoS2luZD86IFByZWZldGNoS2luZFxuICByZWFkb25seSBpc0htclJlZnJlc2g/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQgPSB7XG4gIGZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhW10gfCBzdHJpbmdcbiAgY2Fub25pY2FsVXJsOiBVUkwgfCB1bmRlZmluZWRcbiAgY291bGRCZUludGVyY2VwdGVkOiBib29sZWFuXG4gIHByZXJlbmRlcmVkOiBib29sZWFuXG4gIHBvc3Rwb25lZDogYm9vbGVhblxuICBzdGFsZVRpbWU6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHtcbiAgW1JTQ19IRUFERVJdPzogJzEnXG4gIFtORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl0/OiBzdHJpbmdcbiAgW05FWFRfVVJMXT86IHN0cmluZ1xuICBbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXT86ICcxJ1xuICBbTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVJdPzogc3RyaW5nXG4gICd4LWRlcGxveW1lbnQtaWQnPzogc3RyaW5nXG4gIFtORVhUX0hNUl9SRUZSRVNIX0hFQURFUl0/OiAnMSdcbiAgLy8gQSBoZWFkZXIgdGhhdCBpcyBvbmx5IGFkZGVkIGluIHRlc3QgbW9kZSB0byBhc3NlcnQgb24gZmV0Y2ggcHJpb3JpdHlcbiAgJ05leHQtVGVzdC1GZXRjaC1Qcmlvcml0eSc/OiBSZXF1ZXN0SW5pdFsncHJpb3JpdHknXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsVG9VcmxXaXRob3V0RmxpZ2h0TWFya2VyKHVybDogc3RyaW5nKTogVVJMIHtcbiAgY29uc3QgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMgPSBuZXcgVVJMKHVybCwgbG9jYXRpb24ub3JpZ2luKVxuICB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycy5zZWFyY2hQYXJhbXMuZGVsZXRlKE5FWFRfUlNDX1VOSU9OX1FVRVJZKVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9DT05GSUdfT1VUUFVUID09PSAnZXhwb3J0JyAmJlxuICAgICAgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMucGF0aG5hbWUuZW5kc1dpdGgoJy50eHQnKVxuICAgICkge1xuICAgICAgY29uc3QgeyBwYXRobmFtZSB9ID0gdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnNcbiAgICAgIGNvbnN0IGxlbmd0aCA9IHBhdGhuYW1lLmVuZHNXaXRoKCcvaW5kZXgudHh0JykgPyAxMCA6IDRcbiAgICAgIC8vIFNsaWNlIG9mZiBgL2luZGV4LnR4dGAgb3IgYC50eHRgIGZyb20gdGhlIGVuZCBvZiB0aGUgcGF0aG5hbWVcbiAgICAgIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzLnBhdGhuYW1lID0gcGF0aG5hbWUuc2xpY2UoMCwgLWxlbmd0aClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzXG59XG5cbmZ1bmN0aW9uIGRvTXBhTmF2aWdhdGlvbih1cmw6IHN0cmluZyk6IEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQge1xuICByZXR1cm4ge1xuICAgIGZsaWdodERhdGE6IHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcih1cmwpLnRvU3RyaW5nKCksXG4gICAgY2Fub25pY2FsVXJsOiB1bmRlZmluZWQsXG4gICAgY291bGRCZUludGVyY2VwdGVkOiBmYWxzZSxcbiAgICBwcmVyZW5kZXJlZDogZmFsc2UsXG4gICAgcG9zdHBvbmVkOiBmYWxzZSxcbiAgICBzdGFsZVRpbWU6IC0xLFxuICB9XG59XG5cbi8qKlxuICogRmV0Y2ggdGhlIGZsaWdodCBkYXRhIGZvciB0aGUgcHJvdmlkZWQgdXJsLiBUYWtlcyBpbiB0aGUgY3VycmVudCByb3V0ZXIgc3RhdGVcbiAqIHRvIGRlY2lkZSB3aGF0IHRvIHJlbmRlciBzZXJ2ZXItc2lkZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoU2VydmVyUmVzcG9uc2UoXG4gIHVybDogVVJMLFxuICBvcHRpb25zOiBGZXRjaFNlcnZlclJlc3BvbnNlT3B0aW9uc1xuKTogUHJvbWlzZTxGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0PiB7XG4gIGNvbnN0IHsgZmxpZ2h0Um91dGVyU3RhdGUsIG5leHRVcmwsIHByZWZldGNoS2luZCB9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzID0ge1xuICAgIC8vIEVuYWJsZSBmbGlnaHQgcmVzcG9uc2VcbiAgICBbUlNDX0hFQURFUl06ICcxJyxcbiAgICAvLyBQcm92aWRlIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZVxuICAgIFtORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl06IGVuY29kZVVSSUNvbXBvbmVudChcbiAgICAgIEpTT04uc3RyaW5naWZ5KGZsaWdodFJvdXRlclN0YXRlKVxuICAgICksXG4gIH1cblxuICAvKipcbiAgICogVGhyZWUgY2FzZXM6XG4gICAqIC0gYHByZWZldGNoS2luZGAgaXMgYHVuZGVmaW5lZGAsIGl0IG1lYW5zIGl0J3MgYSBub3JtYWwgbmF2aWdhdGlvbiwgc28gd2Ugd2FudCB0byBwcmVmZXRjaCB0aGUgcGFnZSBkYXRhIGZ1bGx5XG4gICAqIC0gYHByZWZldGNoS2luZGAgaXMgYGZ1bGxgIC0gd2Ugd2FudCB0byBwcmVmZXRjaCB0aGUgd2hvbGUgcGFnZSBzbyBzYW1lIGFzIGFib3ZlXG4gICAqIC0gYHByZWZldGNoS2luZGAgaXMgYGF1dG9gIC0gaWYgdGhlIHBhZ2UgaXMgZHluYW1pYywgcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBwYXJ0aWFsbHksIGlmIHN0YXRpYyBwcmVmZXRjaCB0aGUgcGFnZSBkYXRhIGZ1bGx5XG4gICAqL1xuICBpZiAocHJlZmV0Y2hLaW5kID09PSBQcmVmZXRjaEtpbmQuQVVUTykge1xuICAgIGhlYWRlcnNbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXSA9ICcxJ1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIG9wdGlvbnMuaXNIbXJSZWZyZXNoKSB7XG4gICAgaGVhZGVyc1tORVhUX0hNUl9SRUZSRVNIX0hFQURFUl0gPSAnMSdcbiAgfVxuXG4gIGlmIChuZXh0VXJsKSB7XG4gICAgaGVhZGVyc1tORVhUX1VSTF0gPSBuZXh0VXJsXG4gIH1cblxuICB0cnkge1xuICAgIC8vIFdoZW4gY3JlYXRpbmcgYSBcInRlbXBvcmFyeVwiIHByZWZldGNoICh0aGUgXCJvbi1kZW1hbmRcIiBwcmVmZXRjaCB0aGF0IGdldHMgY3JlYXRlZCBvbiBuYXZpZ2F0aW9uLCBpZiBvbmUgZG9lc24ndCBleGlzdClcbiAgICAvLyB3ZSBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYSBcImhpZ2hcIiBwcmlvcml0eSBhcyBpdCdzIGluIHJlc3BvbnNlIHRvIGEgdXNlciBpbnRlcmFjdGlvbiB0aGF0IGNvdWxkIGJlIGJsb2NraW5nIGEgdHJhbnNpdGlvbi5cbiAgICAvLyBPdGhlcndpc2UsIGFsbCBvdGhlciBwcmVmZXRjaGVzIGFyZSBzZW50IHdpdGggYSBcImxvd1wiIHByaW9yaXR5LlxuICAgIC8vIFdlIHVzZSBcImF1dG9cIiBmb3IgaW4gYWxsIG90aGVyIGNhc2VzIHRvIG1hdGNoIHRoZSBleGlzdGluZyBkZWZhdWx0LCBhcyB0aGlzIGZ1bmN0aW9uIGlzIHNoYXJlZCBvdXRzaWRlIG9mIHByZWZldGNoaW5nLlxuICAgIGNvbnN0IGZldGNoUHJpb3JpdHkgPSBwcmVmZXRjaEtpbmRcbiAgICAgID8gcHJlZmV0Y2hLaW5kID09PSBQcmVmZXRjaEtpbmQuVEVNUE9SQVJZXG4gICAgICAgID8gJ2hpZ2gnXG4gICAgICAgIDogJ2xvdydcbiAgICAgIDogJ2F1dG8nXG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBjcmVhdGVGZXRjaCh1cmwsIGhlYWRlcnMsIGZldGNoUHJpb3JpdHkpXG5cbiAgICBjb25zdCByZXNwb25zZVVybCA9IHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcihyZXMudXJsKVxuICAgIGNvbnN0IGNhbm9uaWNhbFVybCA9IHJlcy5yZWRpcmVjdGVkID8gcmVzcG9uc2VVcmwgOiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSB8fCAnJ1xuICAgIGNvbnN0IGludGVyY2VwdGlvbiA9ICEhcmVzLmhlYWRlcnMuZ2V0KCd2YXJ5Jyk/LmluY2x1ZGVzKE5FWFRfVVJMKVxuICAgIGNvbnN0IHBvc3Rwb25lZCA9ICEhcmVzLmhlYWRlcnMuZ2V0KE5FWFRfRElEX1BPU1RQT05FX0hFQURFUilcbiAgICBjb25zdCBzdGFsZVRpbWVIZWFkZXIgPSByZXMuaGVhZGVycy5nZXQoTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIpXG4gICAgY29uc3Qgc3RhbGVUaW1lID1cbiAgICAgIHN0YWxlVGltZUhlYWRlciAhPT0gbnVsbCA/IHBhcnNlSW50KHN0YWxlVGltZUhlYWRlciwgMTApIDogLTFcbiAgICBsZXQgaXNGbGlnaHRSZXNwb25zZSA9IGNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIpXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DT05GSUdfT1VUUFVUID09PSAnZXhwb3J0Jykge1xuICAgICAgICBpZiAoIWlzRmxpZ2h0UmVzcG9uc2UpIHtcbiAgICAgICAgICBpc0ZsaWdodFJlc3BvbnNlID0gY29udGVudFR5cGUuc3RhcnRzV2l0aCgndGV4dC9wbGFpbicpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBmZXRjaCByZXR1cm5zIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiBmbGlnaHQgcmVzcG9uc2UgaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgIC8vIElmIHRoZSBmZXRjaCB3YXMgbm90IDIwMCwgd2UgYWxzbyBoYW5kbGUgaXQgbGlrZSBhIG1wYSBuYXZpZ2F0aW9uXG4gICAgaWYgKCFpc0ZsaWdodFJlc3BvbnNlIHx8ICFyZXMub2sgfHwgIXJlcy5ib2R5KSB7XG4gICAgICAvLyBpbiBjYXNlIHRoZSBvcmlnaW5hbCBVUkwgY2FtZSB3aXRoIGEgaGFzaCwgcHJlc2VydmUgaXQgYmVmb3JlIHJlZGlyZWN0aW5nIHRvIHRoZSBuZXcgVVJMXG4gICAgICBpZiAodXJsLmhhc2gpIHtcbiAgICAgICAgcmVzcG9uc2VVcmwuaGFzaCA9IHVybC5oYXNoXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkb01wYU5hdmlnYXRpb24ocmVzcG9uc2VVcmwudG9TdHJpbmcoKSlcbiAgICB9XG5cbiAgICAvLyBXZSBtYXkgbmF2aWdhdGUgdG8gYSBwYWdlIHRoYXQgcmVxdWlyZXMgYSBkaWZmZXJlbnQgV2VicGFjayBydW50aW1lLlxuICAgIC8vIEluIHByb2QsIGV2ZXJ5IHBhZ2Ugd2lsbCBoYXZlIHRoZSBzYW1lIFdlYnBhY2sgcnVudGltZS5cbiAgICAvLyBJbiBkZXYsIHRoZSBXZWJwYWNrIHJ1bnRpbWUgaXMgbWluaW1hbCBmb3IgZWFjaCBwYWdlLlxuICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoZSBXZWJwYWNrIHJ1bnRpbWUgaXMgdXBkYXRlZCBiZWZvcmUgZXhlY3V0aW5nIGNsaWVudC1zaWRlIEpTIG9mIHRoZSBuZXcgcGFnZS5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICBhd2FpdCByZXF1aXJlKCcuLi9yZWFjdC1kZXYtb3ZlcmxheS9hcHAvaG90LXJlbG9hZGVyLWNsaWVudCcpLndhaXRGb3JXZWJwYWNrUnVudGltZUhvdFVwZGF0ZSgpXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHRoZSBgZmV0Y2hgIHJlYWRhYmxlIHN0cmVhbSB0aGF0IGNhbiBiZSB1bndyYXBwZWQgYnkgYFJlYWN0LnVzZWAuXG4gICAgY29uc3QgZmxpZ2h0U3RyZWFtID0gcG9zdHBvbmVkXG4gICAgICA/IGNyZWF0ZVVuY2xvc2luZ1ByZWZldGNoU3RyZWFtKHJlcy5ib2R5KVxuICAgICAgOiByZXMuYm9keVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgKGNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0oXG4gICAgICBmbGlnaHRTdHJlYW1cbiAgICApIGFzIFByb21pc2U8TmF2aWdhdGlvbkZsaWdodFJlc3BvbnNlPilcblxuICAgIGlmIChnZXRBcHBCdWlsZElkKCkgIT09IHJlc3BvbnNlLmIpIHtcbiAgICAgIHJldHVybiBkb01wYU5hdmlnYXRpb24ocmVzLnVybClcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmxpZ2h0RGF0YTogbm9ybWFsaXplRmxpZ2h0RGF0YShyZXNwb25zZS5mKSxcbiAgICAgIGNhbm9uaWNhbFVybDogY2Fub25pY2FsVXJsLFxuICAgICAgY291bGRCZUludGVyY2VwdGVkOiBpbnRlcmNlcHRpb24sXG4gICAgICBwcmVyZW5kZXJlZDogcmVzcG9uc2UuUyxcbiAgICAgIHBvc3Rwb25lZCxcbiAgICAgIHN0YWxlVGltZSxcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgRmFpbGVkIHRvIGZldGNoIFJTQyBwYXlsb2FkIGZvciAke3VybH0uIEZhbGxpbmcgYmFjayB0byBicm93c2VyIG5hdmlnYXRpb24uYCxcbiAgICAgIGVyclxuICAgIClcbiAgICAvLyBJZiBmZXRjaCBmYWlscyBoYW5kbGUgaXQgbGlrZSBhIG1wYSBuYXZpZ2F0aW9uXG4gICAgLy8gVE9ETy1BUFA6IEFkZCBhIHRlc3QgZm9yIHRoZSBjYXNlIHdoZXJlIGEgQ09SUyByZXF1ZXN0IGZhaWxzLCBlLmcuIGV4dGVybmFsIHVybCByZWRpcmVjdCBjb21pbmcgZnJvbSB0aGUgcmVzcG9uc2UuXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNDM2MDUjaXNzdWVjb21tZW50LTE0NTE2MTc1MjEgZm9yIGEgcmVwcm9kdWN0aW9uLlxuICAgIHJldHVybiB7XG4gICAgICBmbGlnaHREYXRhOiB1cmwudG9TdHJpbmcoKSxcbiAgICAgIGNhbm9uaWNhbFVybDogdW5kZWZpbmVkLFxuICAgICAgY291bGRCZUludGVyY2VwdGVkOiBmYWxzZSxcbiAgICAgIHByZXJlbmRlcmVkOiBmYWxzZSxcbiAgICAgIHBvc3Rwb25lZDogZmFsc2UsXG4gICAgICBzdGFsZVRpbWU6IC0xLFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmV0Y2goXG4gIHVybDogVVJMLFxuICBoZWFkZXJzOiBSZXF1ZXN0SGVhZGVycyxcbiAgZmV0Y2hQcmlvcml0eTogJ2F1dG8nIHwgJ2hpZ2gnIHwgJ2xvdycgfCBudWxsXG4pIHtcbiAgY29uc3QgZmV0Y2hVcmwgPSBuZXcgVVJMKHVybClcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ09ORklHX09VVFBVVCA9PT0gJ2V4cG9ydCcpIHtcbiAgICAgIGlmIChmZXRjaFVybC5wYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIGZldGNoVXJsLnBhdGhuYW1lICs9ICdpbmRleC50eHQnXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmZXRjaFVybC5wYXRobmFtZSArPSAnLnR4dCdcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIGlzIHVzZWQgdG8gY2FjaGUgYnVzdCBDRE5zIHRoYXQgZG9uJ3Qgc3VwcG9ydCBjdXN0b20gaGVhZGVycy4gVGhlXG4gIC8vIHJlc3VsdCBpcyBzdG9yZWQgaW4gYSBzZWFyY2ggcGFyYW0uXG4gIC8vIFRPRE86IEdpdmVuIHRoYXQgd2UgaGF2ZSB0byB1c2UgYSBzZWFyY2ggcGFyYW0gYW55d2F5LCB3ZSBtaWdodCBhcyB3ZWxsXG4gIC8vIF9vbmx5XyB1c2UgYSBzZWFyY2ggcGFyYW0gYW5kIG5vdCBib3RoZXIgd2l0aCB0aGUgY3VzdG9tIGhlYWRlcnMuXG4gIC8vIEFkZCB1bmlxdWUgY2FjaGUgcXVlcnkgdG8gYXZvaWQgY2FjaGluZyBjb25mbGljdHMgb24gQ0ROIHdoaWNoIGRvbid0IHJlc3BlY3QgdGhlIFZhcnkgaGVhZGVyXG4gIGNvbnN0IHVuaXF1ZUNhY2hlUXVlcnkgPSBoZXhIYXNoKFxuICAgIFtcbiAgICAgIGhlYWRlcnNbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXSB8fCAnMCcsXG4gICAgICBoZWFkZXJzW05FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSXSB8fCAnMCcsXG4gICAgICBoZWFkZXJzW05FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXSxcbiAgICAgIGhlYWRlcnNbTkVYVF9VUkxdLFxuICAgIF0uam9pbignLCcpXG4gIClcblxuICBmZXRjaFVybC5zZWFyY2hQYXJhbXMuc2V0KE5FWFRfUlNDX1VOSU9OX1FVRVJZLCB1bmlxdWVDYWNoZVF1ZXJ5KVxuXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFICYmIGZldGNoUHJpb3JpdHkgIT09IG51bGwpIHtcbiAgICBoZWFkZXJzWydOZXh0LVRlc3QtRmV0Y2gtUHJpb3JpdHknXSA9IGZldGNoUHJpb3JpdHlcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQpIHtcbiAgICBoZWFkZXJzWyd4LWRlcGxveW1lbnQtaWQnXSA9IHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRFxuICB9XG5cbiAgcmV0dXJuIGZldGNoKGZldGNoVXJsLCB7XG4gICAgLy8gQmFja3dhcmRzIGNvbXBhdCBmb3Igb2xkZXIgYnJvd3NlcnMuIGBzYW1lLW9yaWdpbmAgaXMgdGhlIGRlZmF1bHQgaW4gbW9kZXJuIGJyb3dzZXJzLlxuICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgIGhlYWRlcnMsXG4gICAgcHJpb3JpdHk6IGZldGNoUHJpb3JpdHkgfHwgdW5kZWZpbmVkLFxuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbShcbiAgZmxpZ2h0U3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PlxuKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIHJldHVybiBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0oZmxpZ2h0U3RyZWFtLCB7XG4gICAgY2FsbFNlcnZlcixcbiAgICBmaW5kU291cmNlTWFwVVJMLFxuICB9KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbShcbiAgb3JpZ2luYWxGbGlnaHRTdHJlYW06IFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+XG4pOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PiB7XG4gIC8vIFdoZW4gUFBSIGlzIGVuYWJsZWQsIHByZWZldGNoIHN0cmVhbXMgbWF5IGNvbnRhaW4gcmVmZXJlbmNlcyB0aGF0IG5ldmVyXG4gIC8vIHJlc29sdmUsIGJlY2F1c2UgdGhhdCdzIGhvdyB3ZSBlbmNvZGUgZHluYW1pYyBkYXRhIGFjY2Vzcy4gSW4gdGhlIGRlY29kZWRcbiAgLy8gb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBGbGlnaHQgY2xpZW50LCB0aGVzZSBhcmUgcmVpZmllZCBpbnRvIGhhbmdpbmdcbiAgLy8gcHJvbWlzZXMgdGhhdCBzdXNwZW5kIGR1cmluZyByZW5kZXIsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IHdoYXQgd2Ugd2FudC5cbiAgLy8gVGhlIFVJIHJlc29sdmVzIHdoZW4gaXQgc3dpdGNoZXMgdG8gdGhlIGR5bmFtaWMgZGF0YSBzdHJlYW1cbiAgLy8gKHZpYSB1c2VEZWZlcnJlZFZhbHVlKGR5bmFtaWMsIHN0YXRpYykpLlxuICAvL1xuICAvLyBIb3dldmVyLCB0aGUgRmxpZ2h0IGltcGxlbWVudGF0aW9uIGN1cnJlbnRseSBlcnJvcnMgaWYgdGhlIHNlcnZlciBjbG9zZXNcbiAgLy8gdGhlIHJlc3BvbnNlIGJlZm9yZSBhbGwgdGhlIHJlZmVyZW5jZXMgYXJlIHJlc29sdmVkLiBBcyBhIGNoZWF0IHRvIHdvcmtcbiAgLy8gYXJvdW5kIHRoaXMsIHdlIHdyYXAgdGhlIG9yaWdpbmFsIHN0cmVhbSBpbiBhIG5ldyBzdHJlYW0gdGhhdCBuZXZlciBjbG9zZXMsXG4gIC8vIGFuZCB0aGVyZWZvcmUgZG9lc24ndCBlcnJvci5cbiAgY29uc3QgcmVhZGVyID0gb3JpZ2luYWxGbGlnaHRTdHJlYW0uZ2V0UmVhZGVyKClcbiAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgYXN5bmMgcHVsbChjb250cm9sbGVyKSB7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG4gICAgICAgIGlmICghZG9uZSkge1xuICAgICAgICAgIC8vIFBhc3MgdG8gdGhlIHRhcmdldCBzdHJlYW0gYW5kIGtlZXAgY29uc3VtaW5nIHRoZSBGbGlnaHQgcmVzcG9uc2VcbiAgICAgICAgICAvLyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlIHNlcnZlciBzdHJlYW0gaGFzIGNsb3NlZC4gRXhpdCwgYnV0IGludGVudGlvbmFsbHkgZG8gbm90IGNsb3NlXG4gICAgICAgIC8vIHRoZSB0YXJnZXQgc3RyZWFtLlxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9LFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUZldGNoIiwiY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbSIsImZldGNoU2VydmVyUmVzcG9uc2UiLCJ1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIiLCJjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0iLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwicmVxdWlyZSIsInVybCIsInVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzIiwiVVJMIiwibG9jYXRpb24iLCJvcmlnaW4iLCJzZWFyY2hQYXJhbXMiLCJkZWxldGUiLCJORVhUX1JTQ19VTklPTl9RVUVSWSIsIk5PREVfRU5WIiwiX19ORVhUX0NPTkZJR19PVVRQVVQiLCJwYXRobmFtZSIsImVuZHNXaXRoIiwibGVuZ3RoIiwic2xpY2UiLCJkb01wYU5hdmlnYXRpb24iLCJmbGlnaHREYXRhIiwidG9TdHJpbmciLCJjYW5vbmljYWxVcmwiLCJ1bmRlZmluZWQiLCJjb3VsZEJlSW50ZXJjZXB0ZWQiLCJwcmVyZW5kZXJlZCIsInBvc3Rwb25lZCIsInN0YWxlVGltZSIsIm9wdGlvbnMiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIm5leHRVcmwiLCJwcmVmZXRjaEtpbmQiLCJoZWFkZXJzIiwiUlNDX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsIlByZWZldGNoS2luZCIsIkFVVE8iLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJpc0htclJlZnJlc2giLCJORVhUX0hNUl9SRUZSRVNIX0hFQURFUiIsIk5FWFRfVVJMIiwicmVzIiwiZmV0Y2hQcmlvcml0eSIsIlRFTVBPUkFSWSIsInJlc3BvbnNlVXJsIiwicmVkaXJlY3RlZCIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiaW50ZXJjZXB0aW9uIiwiaW5jbHVkZXMiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJzdGFsZVRpbWVIZWFkZXIiLCJORVhUX1JPVVRFUl9TVEFMRV9USU1FX0hFQURFUiIsInBhcnNlSW50IiwiaXNGbGlnaHRSZXNwb25zZSIsInN0YXJ0c1dpdGgiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIm9rIiwiYm9keSIsImhhc2giLCJUVVJCT1BBQ0siLCJ3YWl0Rm9yV2VicGFja1J1bnRpbWVIb3RVcGRhdGUiLCJmbGlnaHRTdHJlYW0iLCJjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbSIsInJlc3BvbnNlIiwiZ2V0QXBwQnVpbGRJZCIsImIiLCJub3JtYWxpemVGbGlnaHREYXRhIiwiZiIsIlMiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJmZXRjaFVybCIsInVuaXF1ZUNhY2hlUXVlcnkiLCJoZXhIYXNoIiwiTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIiLCJqb2luIiwic2V0IiwiX19ORVhUX1RFU1RfTU9ERSIsIk5FWFRfREVQTE9ZTUVOVF9JRCIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJwcmlvcml0eSIsImNhbGxTZXJ2ZXIiLCJmaW5kU291cmNlTWFwVVJMIiwib3JpZ2luYWxGbGlnaHRTdHJlYW0iLCJyZWFkZXIiLCJnZXRSZWFkZXIiLCJSZWFkYWJsZVN0cmVhbSIsInB1bGwiLCJjb250cm9sbGVyIiwiZG9uZSIsInZhbHVlIiwicmVhZCIsImVucXVldWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2dldC1zZWdtZW50LXZhbHVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxnQkFBZ0JDLE9BQWdCO0lBQzlDLE9BQU9DLE1BQU1DLE9BQU8sQ0FBQ0YsV0FBV0EsT0FBTyxDQUFDLEVBQUUsR0FBR0E7QUFDL0MiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccm91dGVyLXJlZHVjZXJcXHJlZHVjZXJzXFxnZXQtc2VnbWVudC12YWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlZ21lbnRWYWx1ZShzZWdtZW50OiBTZWdtZW50KSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHNlZ21lbnQpID8gc2VnbWVudFsxXSA6IHNlZ21lbnRcbn1cbiJdLCJuYW1lcyI6WyJnZXRTZWdtZW50VmFsdWUiLCJzZWdtZW50IiwiQXJyYXkiLCJpc0FycmF5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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__(/*! ../../../../server/lib/interception-routes */ \"(ssr)/./node_modules/next/dist/server/lib/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7cUVBR2dCQTs7O2VBQUFBOzs7Z0RBRjJCO0FBRXBDLFNBQVNBLGtDQUFrQyxLQUc5QjtJQUg4QixLQUNoREMsU0FDQUMsZUFDa0IsR0FIOEI7SUFJaEQsd0dBQXdHO0lBQ3hHLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0gsWUFBYUEsQ0FBQUEsT0FBTyxDQUFDLEVBQUUsS0FBSyxRQUFRQSxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUcsRUFBSTtRQUMxRSxPQUFPO0lBQ1Q7SUFFQSxvRUFBb0U7SUFDcEUsSUFBSSxPQUFPQSxZQUFZLFlBQVlJLENBQUFBLEdBQUFBLG9CQUFBQSwwQkFBQUEsRUFBMkJKLFVBQVU7UUFDdEUsT0FBTztJQUNUO0lBRUEsK0NBQStDO0lBQy9DLElBQUlDLGdCQUFnQjtRQUNsQixJQUFLLE1BQU1JLE9BQU9KLGVBQWdCO1lBQ2hDLElBQUlGLGtDQUFrQ0UsY0FBYyxDQUFDSSxJQUFJLEdBQUc7Z0JBQzFELE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xccm91dGVyLXJlZHVjZXJcXHJlZHVjZXJzXFxoYXMtaW50ZXJjZXB0aW9uLXJvdXRlLWluLWN1cnJlbnQtdHJlZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9saWIvaW50ZXJjZXB0aW9uLXJvdXRlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZShbXG4gIHNlZ21lbnQsXG4gIHBhcmFsbGVsUm91dGVzLFxuXTogRmxpZ2h0Um91dGVyU3RhdGUpOiBib29sZWFuIHtcbiAgLy8gSWYgd2UgaGF2ZSBhIGR5bmFtaWMgc2VnbWVudCwgaXQncyBtYXJrZWQgYXMgYW4gaW50ZXJjZXB0aW9uIHJvdXRlIGJ5IHRoZSBwcmVzZW5jZSBvZiB0aGUgYGlgIHN1ZmZpeC5cbiAgaWYgKEFycmF5LmlzQXJyYXkoc2VnbWVudCkgJiYgKHNlZ21lbnRbMl0gPT09ICdkaScgfHwgc2VnbWVudFsyXSA9PT0gJ2NpJykpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLy8gSWYgc2VnbWVudCBpcyBub3QgYW4gYXJyYXksIGFwcGx5IHRoZSBleGlzdGluZyBzdHJpbmctYmFzZWQgY2hlY2tcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJyAmJiBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aChzZWdtZW50KSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBJdGVyYXRlIHRocm91Z2ggcGFyYWxsZWxSb3V0ZXMgaWYgdGhleSBleGlzdFxuICBpZiAocGFyYWxsZWxSb3V0ZXMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbGxlbFJvdXRlcykge1xuICAgICAgaWYgKGhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZShwYXJhbGxlbFJvdXRlc1trZXldKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuIl0sIm5hbWVzIjpbImhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZSIsInNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlcyIsIkFycmF5IiwiaXNBcnJheSIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwia2V5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxrQkFBa0I7ZUFBbEJBOztJQUpBQyxlQUFlO2VBQWZBOztJQUdBQyxlQUFlO2VBQWZBOztJQUpBQyxjQUFjO2VBQWRBOztJQUVBQyxjQUFjO2VBQWRBOztJQUlBQyxvQkFBb0I7ZUFBcEJBOztJQUhBQyxtQkFBbUI7ZUFBbkJBOztJQTRNREMsd0JBQXdCO2VBQXhCQTs7SUFoRUFDLFlBQVk7ZUFBWkE7OztBQS9JTCxNQUFNTCxpQkFBaUI7QUFDdkIsTUFBTUYsa0JBQWtCO0FBQ3hCLE1BQU1HLGlCQUFpQjtBQUN2QixNQUFNRSxzQkFBc0I7QUFDNUIsTUFBTUosa0JBQWtCO0FBQ3hCLE1BQU1GLHFCQUFxQjtBQUMzQixNQUFNSyx1QkFBdUI7QUF5STdCLElBQUtHLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7O1dBQUFBOztBQWdFTCxJQUFLRCwyQkFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsd0JBQUFBOzs7OztXQUFBQSIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFxyb3V0ZXItcmVkdWNlclxccm91dGVyLXJlZHVjZXItdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgRmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4vZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuXG5leHBvcnQgY29uc3QgQUNUSU9OX1JFRlJFU0ggPSAncmVmcmVzaCdcbmV4cG9ydCBjb25zdCBBQ1RJT05fTkFWSUdBVEUgPSAnbmF2aWdhdGUnXG5leHBvcnQgY29uc3QgQUNUSU9OX1JFU1RPUkUgPSAncmVzdG9yZSdcbmV4cG9ydCBjb25zdCBBQ1RJT05fU0VSVkVSX1BBVENIID0gJ3NlcnZlci1wYXRjaCdcbmV4cG9ydCBjb25zdCBBQ1RJT05fUFJFRkVUQ0ggPSAncHJlZmV0Y2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX0hNUl9SRUZSRVNIID0gJ2htci1yZWZyZXNoJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9TRVJWRVJfQUNUSU9OID0gJ3NlcnZlci1hY3Rpb24nXG5cbmV4cG9ydCB0eXBlIFJvdXRlckNoYW5nZUJ5U2VydmVyUmVzcG9uc2UgPSAoe1xuICBwcmV2aW91c1RyZWUsXG4gIHNlcnZlclJlc3BvbnNlLFxufToge1xuICBwcmV2aW91c1RyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHNlcnZlclJlc3BvbnNlOiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0XG59KSA9PiB2b2lkXG5cbmV4cG9ydCB0eXBlIFJvdXRlck5hdmlnYXRlID0gKFxuICBocmVmOiBzdHJpbmcsXG4gIG5hdmlnYXRlVHlwZTogJ3B1c2gnIHwgJ3JlcGxhY2UnLFxuICBzaG91bGRTY3JvbGw6IGJvb2xlYW5cbikgPT4gdm9pZFxuXG5leHBvcnQgaW50ZXJmYWNlIE11dGFibGUge1xuICBtcGFOYXZpZ2F0aW9uPzogYm9vbGVhblxuICBwYXRjaGVkVHJlZT86IEZsaWdodFJvdXRlclN0YXRlXG4gIGNhbm9uaWNhbFVybD86IHN0cmluZ1xuICBzY3JvbGxhYmxlU2VnbWVudHM/OiBGbGlnaHRTZWdtZW50UGF0aFtdXG4gIHBlbmRpbmdQdXNoPzogYm9vbGVhblxuICBjYWNoZT86IENhY2hlTm9kZVxuICBwcmVmZXRjaENhY2hlPzogQXBwUm91dGVyU3RhdGVbJ3ByZWZldGNoQ2FjaGUnXVxuICBoYXNoRnJhZ21lbnQ/OiBzdHJpbmdcbiAgc2hvdWxkU2Nyb2xsPzogYm9vbGVhblxuICBwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT86IGJvb2xlYW5cbiAgb25seUhhc2hDaGFuZ2U/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQWN0aW9uTXV0YWJsZSBleHRlbmRzIE11dGFibGUge1xuICBpbkZsaWdodFNlcnZlckFjdGlvbj86IFByb21pc2U8YW55PiB8IG51bGxcbn1cblxuLyoqXG4gKiBSZWZyZXNoIHRyaWdnZXJzIGEgcmVmcmVzaCBvZiB0aGUgZnVsbCBwYWdlIGRhdGEuXG4gKiAtIGZldGNoZXMgdGhlIEZsaWdodCBkYXRhIGFuZCBmaWxscyByc2MgYXQgdGhlIHJvb3Qgb2YgdGhlIGNhY2hlLlxuICogLSBUaGUgcm91dGVyIHN0YXRlIGlzIHVwZGF0ZWQgYXQgdGhlIHJvb3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fUkVGUkVTSFxuICBvcmlnaW46IExvY2F0aW9uWydvcmlnaW4nXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhtclJlZnJlc2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX0hNUl9SRUZSRVNIXG4gIG9yaWdpbjogTG9jYXRpb25bJ29yaWdpbiddXG59XG5cbmV4cG9ydCB0eXBlIFNlcnZlckFjdGlvbkRpc3BhdGNoZXIgPSAoXG4gIGFyZ3M6IE9taXQ8XG4gICAgU2VydmVyQWN0aW9uQWN0aW9uLFxuICAgICd0eXBlJyB8ICdtdXRhYmxlJyB8ICduYXZpZ2F0ZScgfCAnY2hhbmdlQnlTZXJ2ZXJSZXNwb25zZScgfCAnY2FjaGUnXG4gID5cbikgPT4gdm9pZFxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckFjdGlvbkFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fU0VSVkVSX0FDVElPTlxuICBhY3Rpb25JZDogc3RyaW5nXG4gIGFjdGlvbkFyZ3M6IGFueVtdXG4gIHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkXG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZFxufVxuXG4vKipcbiAqIE5hdmlnYXRlIHRyaWdnZXJzIGEgbmF2aWdhdGlvbiB0byB0aGUgcHJvdmlkZWQgdXJsLiBJdCBzdXBwb3J0cyB0d28gdHlwZXM6IGBwdXNoYCBhbmQgYHJlcGxhY2VgLlxuICpcbiAqIGBuYXZpZ2F0ZVR5cGVgOlxuICogLSBgcHVzaGAgLSBwdXNoZXMgYSBuZXcgaGlzdG9yeSBlbnRyeSBpbiB0aGUgYnJvd3NlciBoaXN0b3J5XG4gKiAtIGByZXBsYWNlYCAtIHJlcGxhY2VzIHRoZSBjdXJyZW50IGhpc3RvcnkgZW50cnkgaW4gdGhlIGJyb3dzZXIgaGlzdG9yeVxuICpcbiAqIE5hdmlnYXRlIGhhcyBtdWx0aXBsZSBjYWNoZSBoZXVyaXN0aWNzOlxuICogLSBwYWdlIHdhcyBwcmVmZXRjaGVkXG4gKiAgLSBBcHBseSByb3V0ZXIgc3RhdGUgdHJlZSBmcm9tIHByZWZldGNoXG4gKiAgLSBBcHBseSBGbGlnaHQgZGF0YSBmcm9tIHByZWZldGNoIHRvIHRoZSBjYWNoZVxuICogIC0gSWYgRmxpZ2h0IGRhdGEgaXMgYSBzdHJpbmcsIGl0J3MgYSByZWRpcmVjdCBhbmQgdGhlIHN0YXRlIGlzIHVwZGF0ZWQgdG8gdHJpZ2dlciBhIHJlZGlyZWN0XG4gKiAgLSBDaGVjayBpZiBoYXJkIG5hdmlnYXRpb24gaXMgbmVlZGVkXG4gKiAgICAtIEhhcmQgbmF2aWdhdGlvbiBoYXBwZW5zIHdoZW4gYSBkeW5hbWljIHBhcmFtZXRlciBiZWxvdyB0aGUgY29tbW9uIGxheW91dCBjaGFuZ2VkXG4gKiAgICAtIFdoZW4gaGFyZCBuYXZpZ2F0aW9uIGlzIG5lZWRlZCB0aGUgY2FjaGUgaXMgaW52YWxpZGF0ZWQgYmVsb3cgdGhlIGZsaWdodFNlZ21lbnRQYXRoXG4gKiAgICAtIFRoZSBtaXNzaW5nIGNhY2hlIG5vZGVzIG9mIHRoZSBwYWdlIHdpbGwgYmUgZmV0Y2hlZCBpbiBsYXlvdXQtcm91dGVyIGFuZCB0cmlnZ2VyIHRoZSBTRVJWRVJfUEFUQ0ggYWN0aW9uXG4gKiAgLSBJZiBoYXJkIG5hdmlnYXRpb24gaXMgbm90IG5lZWRlZFxuICogICAgLSBUaGUgY2FjaGUgaXMgcmV1c2VkXG4gKiAgICAtIElmIGFueSBjYWNoZSBub2RlcyBhcmUgbWlzc2luZyB0aGV5J2xsIGJlIGZldGNoZWQgaW4gbGF5b3V0LXJvdXRlciBhbmQgdHJpZ2dlciB0aGUgU0VSVkVSX1BBVENIIGFjdGlvblxuICogLSBwYWdlIHdhcyBub3QgcHJlZmV0Y2hlZFxuICogIC0gVGhlIG5hdmlnYXRlIHdhcyBjYWxsZWQgZnJvbSBgbmV4dC9yb3V0ZXJgIChgcm91dGVyLnB1c2goKWAgLyBgcm91dGVyLnJlcGxhY2UoKWApIC8gYG5leHQvbGlua2Agd2l0aG91dCBwcmVmZXRjaGVkIGRhdGEgYXZhaWxhYmxlIChlLmcuIHRoZSBwcmVmZXRjaCBkaWRuJ3QgY29tZSBiYWNrIGZyb20gdGhlIHNlcnZlciBiZWZvcmUgY2xpY2tpbmcgdGhlIGxpbmspXG4gKiAgICAtIEZsaWdodCBkYXRhIGlzIGZldGNoZWQgaW4gdGhlIHJlZHVjZXIgKHN1c3BlbmRzIHRoZSByZWR1Y2VyKVxuICogICAgLSBSb3V0ZXIgc3RhdGUgdHJlZSBpcyBjcmVhdGVkIGJhc2VkIG9uIEZsaWdodCBkYXRhXG4gKiAgICAtIENhY2hlIGlzIGZpbGxlZCBiYXNlZCBvbiB0aGUgRmxpZ2h0IGRhdGFcbiAqXG4gKiBBYm92ZSBzdGVwcyBleHBsYWluIDMgY2FzZXM6XG4gKiAtIGBzb2Z0YCAtIFJldXNlcyB0aGUgZXhpc3RpbmcgY2FjaGUgYW5kIGZldGNoZXMgbWlzc2luZyBub2RlcyBpbiBsYXlvdXQtcm91dGVyLlxuICogLSBgaGFyZGAgLSBDcmVhdGVzIGEgbmV3IGNhY2hlIHdoZXJlIGNhY2hlIG5vZGVzIGFyZSByZW1vdmVkIGJlbG93IHRoZSBjb21tb24gbGF5b3V0IGFuZCBmZXRjaGVzIG1pc3Npbmcgbm9kZXMgaW4gbGF5b3V0LXJvdXRlci5cbiAqIC0gYG9wdGltaXN0aWNgIChleHBsaWNpdCBubyBwcmVmZXRjaCkgLSBDcmVhdGVzIGEgbmV3IGNhY2hlIGFuZCBraWNrcyBvZmYgdGhlIGRhdGEgZmV0Y2ggaW4gdGhlIHJlZHVjZXIuIFRoZSBkYXRhIGZldGNoIGlzIGF3YWl0ZWQgaW4gdGhlIGxheW91dC1yb3V0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX05BVklHQVRFXG4gIHVybDogVVJMXG4gIGlzRXh0ZXJuYWxVcmw6IGJvb2xlYW5cbiAgbG9jYXRpb25TZWFyY2g6IExvY2F0aW9uWydzZWFyY2gnXVxuICBuYXZpZ2F0ZVR5cGU6ICdwdXNoJyB8ICdyZXBsYWNlJ1xuICBzaG91bGRTY3JvbGw6IGJvb2xlYW5cbiAgYWxsb3dBbGlhc2luZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFJlc3RvcmUgYXBwbGllcyB0aGUgcHJvdmlkZWQgcm91dGVyIHN0YXRlLlxuICogLSBVc2VkIGZvciBgcG9wc3RhdGVgIChiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbikgd2hlcmUgYSBrbm93biByb3V0ZXIgc3RhdGUgaGFzIHRvIGJlIGFwcGxpZWQuXG4gKiAtIEFsc28gdXNlZCB3aGVuIHN5bmNpbmcgdGhlIHJvdXRlciBzdGF0ZSB3aXRoIGBwdXNoU3RhdGVgL2ByZXBsYWNlU3RhdGVgIGNhbGxzLlxuICogLSBSb3V0ZXIgc3RhdGUgaXMgYXBwbGllZCBhcy1pcyBmcm9tIHRoZSBoaXN0b3J5IHN0YXRlLCBpZiBhdmFpbGFibGUuXG4gKiAtIElmIHRoZSBoaXN0b3J5IHN0YXRlIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJvdXRlciBzdGF0ZSwgdGhlIGV4aXN0aW5nIHJvdXRlciBzdGF0ZSBpcyB1c2VkLlxuICogLSBJZiBhbnkgY2FjaGUgbm9kZSBpcyBtaXNzaW5nIGl0IHdpbGwgYmUgZmV0Y2hlZCBpbiBsYXlvdXQtcm91dGVyIGR1cmluZyByZW5kZXJpbmcgYW5kIHRoZSBzZXJ2ZXItcGF0Y2ggY2FzZS5cbiAqIC0gSWYgZXhpc3RpbmcgY2FjaGUgbm9kZXMgbWF0Y2ggdGhlc2UgYXJlIHVzZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdG9yZUFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fUkVTVE9SRVxuICB1cmw6IFVSTFxuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSB8IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIFNlcnZlci1wYXRjaCBhcHBsaWVzIHRoZSBwcm92aWRlZCBGbGlnaHQgZGF0YSB0byB0aGUgY2FjaGUgYW5kIHJvdXRlciB0cmVlLlxuICogLSBPbmx5IHRyaWdnZXJlZCBpbiBsYXlvdXQtcm91dGVyLlxuICogLSBDcmVhdGVzIGEgbmV3IGNhY2hlIGFuZCByb3V0ZXIgc3RhdGUgd2l0aCB0aGUgRmxpZ2h0IGRhdGEgYXBwbGllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJQYXRjaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fU0VSVkVSX1BBVENIXG4gIHNlcnZlclJlc3BvbnNlOiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0XG4gIHByZXZpb3VzVHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbn1cblxuLyoqXG4gKiBQcmVmZXRjaEtpbmQgZGVmaW5lcyB0aGUgdHlwZSBvZiBwcmVmZXRjaGluZyB0aGF0IHNob3VsZCBiZSBkb25lLlxuICogLSBgYXV0b2AgLSBpZiB0aGUgcGFnZSBpcyBkeW5hbWljLCBwcmVmZXRjaCB0aGUgcGFnZSBkYXRhIHBhcnRpYWxseSwgaWYgc3RhdGljIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgZnVsbHkuXG4gKiAtIGBmdWxsYCAtIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgZnVsbHkuXG4gKiAtIGB0ZW1wb3JhcnlgIC0gYSB0ZW1wb3JhcnkgcHJlZmV0Y2ggZW50cnkgaXMgYWRkZWQgdG8gdGhlIGNhY2hlLCB0aGlzIGlzIHVzZWQgd2hlbiBwcmVmZXRjaD17ZmFsc2V9IGlzIHVzZWQgaW4gbmV4dC9saW5rIG9yIHdoZW4geW91IHB1c2ggYSByb3V0ZSBwcm9ncmFtbWF0aWNhbGx5LlxuICovXG5cbmV4cG9ydCBlbnVtIFByZWZldGNoS2luZCB7XG4gIEFVVE8gPSAnYXV0bycsXG4gIEZVTEwgPSAnZnVsbCcsXG4gIFRFTVBPUkFSWSA9ICd0ZW1wb3JhcnknLFxufVxuXG4vKipcbiAqIFByZWZldGNoIGFkZHMgdGhlIHByb3ZpZGVkIEZsaWdodERhdGEgdG8gdGhlIHByZWZldGNoIGNhY2hlXG4gKiAtIENyZWF0ZXMgdGhlIHJvdXRlciBzdGF0ZSB0cmVlIGJhc2VkIG9uIHRoZSBwYXRjaCBpbiBGbGlnaHREYXRhXG4gKiAtIEFkZHMgdGhlIEZsaWdodERhdGEgdG8gdGhlIHByZWZldGNoIGNhY2hlXG4gKiAtIEluIEFDVElPTl9OQVZJR0FURSB0aGUgcHJlZmV0Y2ggY2FjaGUgaXMgY2hlY2tlZCBhbmQgdGhlIHJvdXRlciBzdGF0ZSB0cmVlIGFuZCBGbGlnaHREYXRhIGFyZSBhcHBsaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWZldGNoQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9QUkVGRVRDSFxuICB1cmw6IFVSTFxuICBraW5kOiBQcmVmZXRjaEtpbmRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXNoUmVmIHtcbiAgLyoqXG4gICAqIElmIHRoZSBhcHAtcm91dGVyIHNob3VsZCBwdXNoIGEgbmV3IGhpc3RvcnkgZW50cnkgaW4gYXBwLXJvdXRlcidzIHVzZUVmZmVjdCgpXG4gICAqL1xuICBwZW5kaW5nUHVzaDogYm9vbGVhblxuICAvKipcbiAgICogTXVsdGktcGFnZSBuYXZpZ2F0aW9uIHRocm91Z2ggbG9jYXRpb24uaHJlZi5cbiAgICovXG4gIG1wYU5hdmlnYXRpb246IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNraXAgYXBwbHlpbmcgdGhlIHJvdXRlciBzdGF0ZSB0byB0aGUgYnJvd3NlciBoaXN0b3J5IHN0YXRlLlxuICAgKi9cbiAgcHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRm9jdXNBbmRTY3JvbGxSZWYgPSB7XG4gIC8qKlxuICAgKiBJZiBmb2N1cyBhbmQgc2Nyb2xsIHNob3VsZCBiZSBzZXQgaW4gdGhlIGxheW91dC1yb3V0ZXIncyB1c2VFZmZlY3QoKVxuICAgKi9cbiAgYXBwbHk6IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRoZSBoYXNoIGZyYWdtZW50IHRoYXQgc2hvdWxkIGJlIHNjcm9sbGVkIHRvLlxuICAgKi9cbiAgaGFzaEZyYWdtZW50OiBzdHJpbmcgfCBudWxsXG4gIC8qKlxuICAgKiBUaGUgcGF0aHMgb2YgdGhlIHNlZ21lbnRzIHRoYXQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBzZWdtZW50UGF0aHM6IEZsaWdodFNlZ21lbnRQYXRoW11cbiAgLyoqXG4gICAqIElmIG9ubHkgdGhlIFVSTHMgaGFzaCBmcmFnbWVudCBjaGFuZ2VkXG4gICAqL1xuICBvbmx5SGFzaENoYW5nZTogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBQcmVmZXRjaENhY2hlRW50cnkgPSB7XG4gIHRyZWVBdFRpbWVPZlByZWZldGNoOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBkYXRhOiBQcm9taXNlPEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQ+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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHN0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQgPSAnTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQnXG5cbmV4cG9ydCBjbGFzcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBjb2RlID0gTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGljR2VuQmFpbG91dEVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgU3RhdGljR2VuQmFpbG91dEVycm9yIHtcbiAgaWYgKHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHwgZXJyb3IgPT09IG51bGwgfHwgISgnY29kZScgaW4gZXJyb3IpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gZXJyb3IuY29kZSA9PT0gTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVRcbn1cbiJdLCJuYW1lcyI6WyJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJpc1N0YXRpY0dlbkJhaWxvdXRFcnJvciIsIk5FWFRfU1RBVElDX0dFTl9CQUlMT1VUIiwiRXJyb3IiLCJjb2RlIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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 new Error(\"`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled.\");\n }\n // eslint-disable-next-line no-throw-literal\n const error = new Error(DIGEST);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUCxnQ0FBZ0M7QUFDaEM7Ozs7Ozs7Ozs7OztDQVlDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCxJQUFJLElBQWdELEVBQUU7UUFDcEQsTUFBTSxJQUFJTSxNQUNQO0lBRUw7SUFFQSw0Q0FBNEM7SUFDNUMsTUFBTUMsUUFBUSxJQUFJRCxNQUFNTDtJQUN0Qk0sTUFBa0NDLE1BQU0sR0FBR1A7SUFDN0MsTUFBTU07QUFDUiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxjb21wb25lbnRzXFx1bmF1dGhvcml6ZWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFLFxuICB0eXBlIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yLFxufSBmcm9tICcuL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrJ1xuXG4vLyBUT0RPOiBBZGQgYHVuYXV0aG9yaXplZGAgZG9jc1xuLyoqXG4gKiBAZXhwZXJpbWVudGFsXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVuZGVyIHRoZSBbdW5hdXRob3JpemVkLmpzIGZpbGVdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvdW5hdXRob3JpemVkKVxuICogd2l0aGluIGEgcm91dGUgc2VnbWVudCBhcyB3ZWxsIGFzIGluamVjdCBhIHRhZy5cbiAqXG4gKiBgdW5hdXRob3JpemVkKClgIGNhbiBiZSB1c2VkIGluXG4gKiBbU2VydmVyIENvbXBvbmVudHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyksXG4gKiBbUm91dGUgSGFuZGxlcnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcm91dGUtaGFuZGxlcnMpLCBhbmRcbiAqIFtTZXJ2ZXIgQWN0aW9uc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9zZXJ2ZXItYWN0aW9ucy1hbmQtbXV0YXRpb25zKS5cbiAqXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdW5hdXRob3JpemVkYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VuYXV0aG9yaXplZClcbiAqL1xuXG5jb25zdCBESUdFU1QgPSBgJHtIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OzQwMWBcblxuZXhwb3J0IGZ1bmN0aW9uIHVuYXV0aG9yaXplZCgpOiBuZXZlciB7XG4gIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9BVVRIX0lOVEVSUlVQVFMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgXFxgdW5hdXRob3JpemVkKClcXGAgaXMgZXhwZXJpbWVudGFsIGFuZCBvbmx5IGFsbG93ZWQgdG8gYmUgdXNlZCB3aGVuIFxcYGV4cGVyaW1lbnRhbC5hdXRoSW50ZXJydXB0c1xcYCBpcyBlbmFibGVkLmBcbiAgICApXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihESUdFU1QpIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4gIDsoZXJyb3IgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpLmRpZ2VzdCA9IERJR0VTVFxuICB0aHJvdyBlcnJvclxufVxuIl0sIm5hbWVzIjpbInVuYXV0aG9yaXplZCIsIkRJR0VTVCIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfRVhQRVJJTUVOVEFMX0FVVEhfSU5URVJSVVBUUyIsIkVycm9yIiwiZXJyb3IiLCJkaWdlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unauthorized.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VucmVzb2x2ZWQtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7O0NBRUM7Ozs7c0RBQ1lBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHFCQUFxQjtJQUNoQ0MsTUFBTSxLQUFPO0FBQ2YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcdW5yZXNvbHZlZC10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZSBhIFwiVGhlbmFibGVcIiB0aGF0IGRvZXMgbm90IHJlc29sdmUuIFRoaXMgaXMgdXNlZCB0byBzdXNwZW5kIGluZGVmaW5pdGVseSB3aGVuIGRhdGEgaXMgbm90IGF2YWlsYWJsZSB5ZXQuXG4gKi9cbmV4cG9ydCBjb25zdCB1bnJlc29sdmVkVGhlbmFibGUgPSB7XG4gIHRoZW46ICgpID0+IHt9LFxufSBhcyBQcm9taXNlTGlrZTx2b2lkPlxuIl0sIm5hbWVzIjpbInVucmVzb2x2ZWRUaGVuYWJsZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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("\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 _isdynamicusageerror = __webpack_require__(/*! ../../export/helpers/is-dynamic-usage-error */ \"(ssr)/./node_modules/next/dist/export/helpers/is-dynamic-usage-error.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\");\nfunction unstable_rethrow(error) {\n if ((0, _isnextroutererror.isNextRouterError)(error) || (0, _bailouttocsr.isBailoutToCSRError)(error) || (0, _isdynamicusageerror.isDynamicUsageError)(error) || (0, _ispostpone.isPostpone)(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.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cuanMiLCJtYXBwaW5ncyI6Ijs7OztvREFZZ0JBOzs7ZUFBQUE7OztpREFab0I7d0NBQ1Q7MENBQ1M7K0NBQ0Y7QUFTM0IsU0FBU0EsaUJBQWlCQyxLQUFjO0lBQzdDLElBQ0VDLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0JELFVBQ2xCRSxDQUFBQSxHQUFBQSxjQUFBQSxtQkFBQUEsRUFBb0JGLFVBQ3BCRyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CSCxVQUNwQkksQ0FBQUEsR0FBQUEsWUFBQUEsVUFBQUEsRUFBV0osUUFDWDtRQUNBLE1BQU1BO0lBQ1I7SUFFQSxJQUFJQSxpQkFBaUJLLFNBQVMsV0FBV0wsT0FBTztRQUM5Q0QsaUJBQWlCQyxNQUFNTSxLQUFLO0lBQzlCO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcdW5zdGFibGUtcmV0aHJvdy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0R5bmFtaWNVc2FnZUVycm9yIH0gZnJvbSAnLi4vLi4vZXhwb3J0L2hlbHBlcnMvaXMtZHluYW1pYy11c2FnZS1lcnJvcidcbmltcG9ydCB7IGlzUG9zdHBvbmUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvbGliL3JvdXRlci11dGlscy9pcy1wb3N0cG9uZSdcbmltcG9ydCB7IGlzQmFpbG91dFRvQ1NSRXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzcidcbmltcG9ydCB7IGlzTmV4dFJvdXRlckVycm9yIH0gZnJvbSAnLi9pcy1uZXh0LXJvdXRlci1lcnJvcidcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHJldGhyb3cgaW50ZXJuYWwgTmV4dC5qcyBlcnJvcnMgc28gdGhhdCB0aGV5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBmcmFtZXdvcmsuXG4gKiBXaGVuIHdyYXBwaW5nIGFuIEFQSSB0aGF0IHVzZXMgZXJyb3JzIHRvIGludGVycnVwdCBjb250cm9sIGZsb3csIHlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gYmVmb3JlIHlvdSBkbyBhbnkgZXJyb3IgaGFuZGxpbmcuXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0aHJvdyB0aGUgZXJyb3IgaWYgaXQgaXMgYSBOZXh0LmpzIGVycm9yIHNvIGl0IGNhbiBiZSBoYW5kbGVkLCBvdGhlcndpc2UgaXQgd2lsbCBkbyBub3RoaW5nLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHVuc3RhYmxlX3JldGhyb3dgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfcmV0aHJvdylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuc3RhYmxlX3JldGhyb3coZXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgaWYgKFxuICAgIGlzTmV4dFJvdXRlckVycm9yKGVycm9yKSB8fFxuICAgIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyb3IpIHx8XG4gICAgaXNEeW5hbWljVXNhZ2VFcnJvcihlcnJvcikgfHxcbiAgICBpc1Bvc3Rwb25lKGVycm9yKVxuICApIHtcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgJ2NhdXNlJyBpbiBlcnJvcikge1xuICAgIHVuc3RhYmxlX3JldGhyb3coZXJyb3IuY2F1c2UpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1bnN0YWJsZV9yZXRocm93IiwiZXJyb3IiLCJpc05leHRSb3V0ZXJFcnJvciIsImlzQmFpbG91dFRvQ1NSRXJyb3IiLCJpc0R5bmFtaWNVc2FnZUVycm9yIiwiaXNQb3N0cG9uZSIsIkVycm9yIiwiY2F1c2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQUMvRSxpRUFBaUU7Ozs7OzJDQUNqREE7OztlQUFBQTs7O0FBQVQsU0FBU0EsV0FBVyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxkZXZcXG5vb3AtdHVyYm9wYWNrLWhtci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgVHVyYm9wYWNrIEhNUiBjbGllbnQgY2FuJ3QgYmUgcHJvcGVybHkgb21pdHRlZCBhdCB0aGUgbW9tZW50IChXRUItMTU4OSksXG4vLyBzbyBpbnN0ZWFkIHdlIHJlbWFwIGl0cyBpbXBvcnQgdG8gdGhpcyBmaWxlIGluIHdlYnBhY2sgYnVpbGRzLlxuZXhwb3J0IGZ1bmN0aW9uIGNvbm5lY3QoKSB7fVxuIl0sIm5hbWVzIjpbImNvbm5lY3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/flight-data-helpers.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/flight-data-helpers.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 getFlightDataPartsFromPath: function() {\n return getFlightDataPartsFromPath;\n },\n getNextFlightSegmentPath: function() {\n return getNextFlightSegmentPath;\n },\n normalizeFlightData: function() {\n return normalizeFlightData;\n }\n});\nfunction getFlightDataPartsFromPath(flightDataPath) {\n // tree, seedData, and head are *always* the last three items in the `FlightDataPath`.\n const [tree, seedData, head, isHeadPartial] = flightDataPath.slice(-4);\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, -4);\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 === 4\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(getFlightDataPartsFromPath);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9mbGlnaHQtZGF0YS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQThCZ0JBLDBCQUEwQjtlQUExQkE7O0lBeUJBQyx3QkFBd0I7ZUFBeEJBOztJQVFBQyxtQkFBbUI7ZUFBbkJBOzs7QUFqQ1QsU0FBU0YsMkJBQ2RHLGNBQThCO0lBRTlCLHNGQUFzRjtJQUN0RixNQUFNLENBQUNDLE1BQU1DLFVBQVVDLE1BQU1DLGNBQWMsR0FBR0osZUFBZUssS0FBSyxDQUFDLENBQUM7SUFDcEUsNkdBQTZHO0lBQzdHLE1BQU1DLGNBQWNOLGVBQWVLLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFVbENDO0lBUlgsT0FBTztRQUNMLGtHQUFrRztRQUNsRyxzR0FBc0c7UUFDdEcscURBQXFEO1FBQ3JEQyxlQUFlRCxZQUFZRCxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JDQztRQUNBLGtGQUFrRjtRQUNsRixrQ0FBa0M7UUFDbENFLFNBQVNGLENBQUFBLGdCQUFBQSxXQUFXLENBQUNBLFlBQVlHLE1BQU0sR0FBRyxPQUFFLE9BQW5DSCxnQkFBdUM7UUFDaERMO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FNLGNBQWNWLGVBQWVTLE1BQU0sS0FBSztJQUMxQztBQUNGO0FBRU8sU0FBU1gseUJBQ2RhLGlCQUFvQztJQUVwQyw0R0FBNEc7SUFDNUcsZ0NBQWdDO0lBQ2hDLE9BQU9BLGtCQUFrQk4sS0FBSyxDQUFDO0FBQ2pDO0FBRU8sU0FBU04sb0JBQ2RhLFVBQXNCO0lBRXRCLDJGQUEyRjtJQUMzRixrR0FBa0c7SUFDbEcsSUFBSSxPQUFPQSxlQUFlLFVBQVU7UUFDbEMsT0FBT0E7SUFDVDtJQUVBLE9BQU9BLFdBQVdDLEdBQUcsQ0FBQ2hCO0FBQ3hCIiwic291cmNlcyI6WyJFOlxcR0lUXFxzcmNcXGNsaWVudFxcZmxpZ2h0LWRhdGEtaGVscGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIENhY2hlTm9kZVNlZWREYXRhLFxuICBGbGlnaHREYXRhLFxuICBGbGlnaHREYXRhUGF0aCxcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxuICBTZWdtZW50LFxufSBmcm9tICcuLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEZsaWdodERhdGEgPSB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBgRmxpZ2h0U2VnbWVudFBhdGhgIGluY2x1c2l2ZSBvZiB0aGUgZmluYWwgYFNlZ21lbnRgXG4gICAqL1xuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgLyoqXG4gICAqIFRoZSBgRmxpZ2h0U2VnbWVudFBhdGhgIGV4Y2x1c2l2ZSBvZiB0aGUgZmluYWwgYFNlZ21lbnRgXG4gICAqL1xuICBwYXRoVG9TZWdtZW50OiBGbGlnaHRTZWdtZW50UGF0aFxuICBzZWdtZW50OiBTZWdtZW50XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHNlZWREYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGxcbiAgaGVhZDogUmVhY3QuUmVhY3ROb2RlIHwgbnVsbFxuICBpc0hlYWRQYXJ0aWFsOiBib29sZWFuXG4gIGlzUm9vdFJlbmRlcjogYm9vbGVhblxufVxuXG4vLyBUT0RPOiBXZSBzaG91bGQgb25seSBoYXZlIHRvIGV4cG9ydCBgbm9ybWFsaXplRmxpZ2h0RGF0YWAsIGhvd2V2ZXIgYmVjYXVzZSB0aGUgaW5pdGlhbCBmbGlnaHQgZGF0YVxuLy8gdGhhdCBnZXRzIHBhc3NlZCB0byBgY3JlYXRlSW5pdGlhbFJvdXRlclN0YXRlYCBkb2Vzbid0IGNvbmZvcm0gdG8gdGhlIGBGbGlnaHREYXRhUGF0aGAgdHlwZSAoaXQncyBtaXNzaW5nIHRoZSByb290IHNlZ21lbnQpXG4vLyB3ZSdyZSBjdXJyZW50bHkgZXhwb3J0aW5nIGl0IHNvIHdlIGNhbiB1c2UgaXQgZGlyZWN0bHkuIFRoaXMgc2hvdWxkIGJlIGZpeGVkIGFzIHBhcnQgb2YgdGhlIHVuaWZpY2F0aW9uIG9mXG4vLyB0aGUgZGlmZmVyZW50IHdheXMgd2UgZXhwcmVzcyBgRmxpZ2h0U2VnbWVudFBhdGhgLlxuZXhwb3J0IGZ1bmN0aW9uIGdldEZsaWdodERhdGFQYXJ0c0Zyb21QYXRoKFxuICBmbGlnaHREYXRhUGF0aDogRmxpZ2h0RGF0YVBhdGhcbik6IE5vcm1hbGl6ZWRGbGlnaHREYXRhIHtcbiAgLy8gdHJlZSwgc2VlZERhdGEsIGFuZCBoZWFkIGFyZSAqYWx3YXlzKiB0aGUgbGFzdCB0aHJlZSBpdGVtcyBpbiB0aGUgYEZsaWdodERhdGFQYXRoYC5cbiAgY29uc3QgW3RyZWUsIHNlZWREYXRhLCBoZWFkLCBpc0hlYWRQYXJ0aWFsXSA9IGZsaWdodERhdGFQYXRoLnNsaWNlKC00KVxuICAvLyBUaGUgYEZsaWdodFNlZ21lbnRQYXRoYCBpcyBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgbGFzdCB0aHJlZSBpdGVtcy4gRm9yIGEgcm9vdCByZW5kZXIsIGl0IHdvbid0IGJlIHByZXNlbnQuXG4gIGNvbnN0IHNlZ21lbnRQYXRoID0gZmxpZ2h0RGF0YVBhdGguc2xpY2UoMCwgLTQpXG5cbiAgcmV0dXJuIHtcbiAgICAvLyBUT0RPOiBVbmlmeSB0aGVzZSB0d28gc2VnbWVudCBwYXRoIGhlbHBlcnMuIFdlIGFyZSBpbmNvbnNpc3RlbnRseSBwdXNoaW5nIGFuIGVtcHR5IHNlZ21lbnQgKFwiXCIpXG4gICAgLy8gdG8gdGhlIHN0YXJ0IG9mIHRoZSBzZWdtZW50IHBhdGggaW4gc29tZSBwbGFjZXMgd2hpY2ggbWFrZXMgaXQgaGFyZCB0byB1c2Ugc29sZWx5IHRoZSBzZWdtZW50IHBhdGguXG4gICAgLy8gTG9vayBmb3IgXCIvLyBUT0RPLUFQUDogcmVtb3ZlICcnXCIgaW4gdGhlIGNvZGViYXNlLlxuICAgIHBhdGhUb1NlZ21lbnQ6IHNlZ21lbnRQYXRoLnNsaWNlKDAsIC0xKSxcbiAgICBzZWdtZW50UGF0aCxcbiAgICAvLyBpZiB0aGUgYEZsaWdodERhdGFQYXRoYCBjb3JyZXNwb25kcyB3aXRoIHRoZSByb290LCB0aGVyZSdsbCBiZSBubyBzZWdtZW50IHBhdGgsXG4gICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSBkZWZhdWx0IHRvICcnLlxuICAgIHNlZ21lbnQ6IHNlZ21lbnRQYXRoW3NlZ21lbnRQYXRoLmxlbmd0aCAtIDFdID8/ICcnLFxuICAgIHRyZWUsXG4gICAgc2VlZERhdGEsXG4gICAgaGVhZCxcbiAgICBpc0hlYWRQYXJ0aWFsLFxuICAgIGlzUm9vdFJlbmRlcjogZmxpZ2h0RGF0YVBhdGgubGVuZ3RoID09PSA0LFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgoXG4gIGZsaWdodFNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuKTogRmxpZ2h0U2VnbWVudFBhdGgge1xuICAvLyBTaW5jZSBgRmxpZ2h0U2VnbWVudFBhdGhgIGlzIGEgcmVwZWF0ZWQgdHVwbGUgb2YgYFNlZ21lbnRgIGFuZCBgUGFyYWxsZWxSb3V0ZUtleWAsIHdlIHNsaWNlIG9mZiB0d28gaXRlbXNcbiAgLy8gdG8gZ2V0IHRoZSBuZXh0IHNlZ21lbnQgcGF0aC5cbiAgcmV0dXJuIGZsaWdodFNlZ21lbnRQYXRoLnNsaWNlKDIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVGbGlnaHREYXRhKFxuICBmbGlnaHREYXRhOiBGbGlnaHREYXRhXG4pOiBOb3JtYWxpemVkRmxpZ2h0RGF0YVtdIHwgc3RyaW5nIHtcbiAgLy8gRmxpZ2h0RGF0YSBjYW4gYmUgYSBzdHJpbmcgd2hlbiB0aGUgc2VydmVyIGRpZG4ndCByZXNwb25kIHdpdGggYSBwcm9wZXIgZmxpZ2h0IHJlc3BvbnNlLFxuICAvLyBvciB3aGVuIGEgcmVkaXJlY3QgaGFwcGVucywgdG8gc2lnbmFsIHRvIHRoZSBjbGllbnQgdGhhdCBpdCBuZWVkcyB0byBwZXJmb3JtIGFuIE1QQSBuYXZpZ2F0aW9uLlxuICBpZiAodHlwZW9mIGZsaWdodERhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZsaWdodERhdGFcbiAgfVxuXG4gIHJldHVybiBmbGlnaHREYXRhLm1hcChnZXRGbGlnaHREYXRhUGFydHNGcm9tUGF0aClcbn1cbiJdLCJuYW1lcyI6WyJnZXRGbGlnaHREYXRhUGFydHNGcm9tUGF0aCIsImdldE5leHRGbGlnaHRTZWdtZW50UGF0aCIsIm5vcm1hbGl6ZUZsaWdodERhdGEiLCJmbGlnaHREYXRhUGF0aCIsInRyZWUiLCJzZWVkRGF0YSIsImhlYWQiLCJpc0hlYWRQYXJ0aWFsIiwic2xpY2UiLCJzZWdtZW50UGF0aCIsInBhdGhUb1NlZ21lbnQiLCJzZWdtZW50IiwibGVuZ3RoIiwiaXNSb290UmVuZGVyIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJmbGlnaHREYXRhIiwibWFwIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/lib/console.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/next/dist/client/lib/console.js ***!
|
||
\******************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatConsoleArgs\", ({\n enumerable: true,\n get: function() {\n return formatConsoleArgs;\n }\n}));\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 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}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saWIvY29uc29sZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3FEQXFEZ0JBOzs7ZUFBQUE7OztBQXJEaEIsU0FBU0MsYUFBYUMsR0FBWSxFQUFFQyxLQUFhO0lBQy9DLE9BQVEsT0FBT0Q7UUFDYixLQUFLO1lBQ0gsSUFBSUEsUUFBUSxNQUFNO2dCQUNoQixPQUFPO1lBQ1QsT0FBTyxJQUFJRSxNQUFNQyxPQUFPLENBQUNILE1BQU07Z0JBQzdCLElBQUlJLFNBQVM7Z0JBQ2IsSUFBSUgsUUFBUSxHQUFHO29CQUNiLElBQUssSUFBSUksSUFBSSxHQUFHQSxJQUFJTCxJQUFJTSxNQUFNLEVBQUVELElBQUs7d0JBQ25DLElBQUlELFdBQVcsS0FBSzs0QkFDbEJBLFVBQVU7d0JBQ1o7d0JBQ0EsSUFBSUcsT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1YsS0FBS0ssSUFBSTs0QkFDaERELFVBQVVMLGFBQWFDLEdBQUcsQ0FBQ0ssRUFBRSxFQUFFSixRQUFRO3dCQUN6QztvQkFDRjtnQkFDRixPQUFPO29CQUNMRyxVQUFVSixJQUFJTSxNQUFNLEdBQUcsSUFBSSxRQUFRO2dCQUNyQztnQkFDQUYsVUFBVTtnQkFDVixPQUFPQTtZQUNULE9BQU8sSUFBSUosZUFBZVcsT0FBTztnQkFDL0IsT0FBT1gsTUFBTTtZQUNmLE9BQU87Z0JBQ0wsTUFBTVksT0FBT0wsT0FBT0ssSUFBSSxDQUFDWjtnQkFDekIsSUFBSUksU0FBUztnQkFDYixJQUFJSCxRQUFRLEdBQUc7b0JBQ2IsSUFBSyxJQUFJSSxJQUFJLEdBQUdBLElBQUlPLEtBQUtOLE1BQU0sRUFBRUQsSUFBSzt3QkFDcEMsTUFBTVEsTUFBTUQsSUFBSSxDQUFDUCxFQUFFO3dCQUNuQixNQUFNUyxPQUFPUCxPQUFPUSx3QkFBd0IsQ0FBQ2YsS0FBSzt3QkFDbEQsSUFBSWMsUUFBUSxDQUFDQSxLQUFLRSxHQUFHLElBQUksQ0FBQ0YsS0FBS0csR0FBRyxFQUFFOzRCQUNsQyxNQUFNQyxVQUFVQyxLQUFLQyxTQUFTLENBQUNQOzRCQUMvQixJQUFJSyxZQUFZLE1BQU1MLE1BQU0sS0FBSztnQ0FDL0JULFVBQVVjLFVBQVU7NEJBQ3RCLE9BQU87Z0NBQ0xkLFVBQVVTLE1BQU07NEJBQ2xCOzRCQUNBVCxVQUFVTCxhQUFhZSxLQUFLTyxLQUFLLEVBQUVwQixRQUFRO3dCQUM3QztvQkFDRjtnQkFDRixPQUFPO29CQUNMRyxVQUFVUSxLQUFLTixNQUFNLEdBQUcsSUFBSSxRQUFRO2dCQUN0QztnQkFDQUYsVUFBVTtnQkFDVixPQUFPQTtZQUNUO1FBQ0YsS0FBSztZQUNILE9BQU9lLEtBQUtDLFNBQVMsQ0FBQ3BCO1FBQ3hCO1lBQ0UsT0FBT3NCLE9BQU90QjtJQUNsQjtBQUNGO0FBRU8sU0FBU0Ysa0JBQWtCeUIsSUFBZTtJQUMvQyxJQUFJQztJQUNKLElBQUlDO0lBQ0osSUFBSSxPQUFPRixJQUFJLENBQUMsRUFBRSxLQUFLLFVBQVU7UUFDL0JDLFVBQVVELElBQUksQ0FBQyxFQUFFO1FBQ2pCRSxNQUFNO0lBQ1IsT0FBTztRQUNMRCxVQUFVO1FBQ1ZDLE1BQU07SUFDUjtJQUNBLElBQUlyQixTQUFTO0lBQ2IsSUFBSXNCLGFBQWE7SUFDakIsSUFBSyxJQUFJckIsSUFBSSxHQUFHQSxJQUFJbUIsUUFBUWxCLE1BQU0sRUFBRSxFQUFFRCxFQUFHO1FBQ3ZDLE1BQU1zQixPQUFPSCxPQUFPLENBQUNuQixFQUFFO1FBQ3ZCLElBQUlzQixTQUFTLE9BQU90QixNQUFNbUIsUUFBUWxCLE1BQU0sR0FBRyxLQUFLbUIsT0FBT0YsS0FBS2pCLE1BQU0sRUFBRTtZQUNsRUYsVUFBVXVCO1lBQ1Y7UUFDRjtRQUVBLE1BQU1DLE9BQU9KLE9BQU8sQ0FBQyxFQUFFbkIsRUFBRTtRQUN6QixPQUFRdUI7WUFDTixLQUFLO2dCQUFLO29CQUNSLHVFQUF1RTtvQkFDdkUsa0JBQWtCO29CQUNsQnhCLFNBQVNzQixhQUFjLEtBQUV0QixTQUFPLE1BQU0sTUFBR0E7b0JBQ3pDc0IsYUFBYSxDQUFDQTtvQkFDZEQ7b0JBQ0E7Z0JBQ0Y7WUFDQSxLQUFLO1lBQ0wsS0FBSztnQkFBSztvQkFDUnJCLFVBQVVMLGFBQWF3QixJQUFJLENBQUNFLE1BQU0sRUFBRTtvQkFDcEM7Z0JBQ0Y7WUFDQSxLQUFLO1lBQ0wsS0FBSztnQkFBSztvQkFDUnJCLFVBQVV5QixTQUFTTixJQUFJLENBQUNFLE1BQU0sRUFBUztvQkFDdkM7Z0JBQ0Y7WUFDQSxLQUFLO2dCQUFLO29CQUNSckIsVUFBVTBCLFdBQVdQLElBQUksQ0FBQ0UsTUFBTTtvQkFDaEM7Z0JBQ0Y7WUFDQSxLQUFLO2dCQUFLO29CQUNSckIsVUFBVWtCLE9BQU9DLElBQUksQ0FBQ0UsTUFBTTtvQkFDNUI7Z0JBQ0Y7WUFDQTtnQkFDRXJCLFVBQVUsTUFBTXdCO1FBQ3BCO0lBQ0Y7SUFFQSxNQUFPSCxNQUFNRixLQUFLakIsTUFBTSxFQUFFbUIsTUFBTztRQUMvQnJCLFVBQVdxQixDQUFBQSxNQUFNLElBQUksTUFBTSxHQUFDLEdBQUsxQixhQUFhd0IsSUFBSSxDQUFDRSxJQUFJLEVBQUU7SUFDM0Q7SUFFQSxPQUFPckI7QUFDVCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcY2xpZW50XFxsaWJcXGNvbnNvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZm9ybWF0T2JqZWN0KGFyZzogdW5rbm93biwgZGVwdGg6IG51bWJlcikge1xuICBzd2l0Y2ggKHR5cGVvZiBhcmcpIHtcbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAgaWYgKGFyZyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gJ251bGwnXG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gJ1snXG4gICAgICAgIGlmIChkZXB0aCA8IDEpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gJ1snKSB7XG4gICAgICAgICAgICAgIHJlc3VsdCArPSAnLCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXJnLCBpKSkge1xuICAgICAgICAgICAgICByZXN1bHQgKz0gZm9ybWF0T2JqZWN0KGFyZ1tpXSwgZGVwdGggKyAxKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgKz0gYXJnLmxlbmd0aCA+IDAgPyAnLi4uJyA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9ICddJ1xuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9IGVsc2UgaWYgKGFyZyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHJldHVybiBhcmcgKyAnJ1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGFyZylcbiAgICAgICAgbGV0IHJlc3VsdCA9ICd7J1xuICAgICAgICBpZiAoZGVwdGggPCAxKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrZXlzW2ldXG4gICAgICAgICAgICBjb25zdCBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcmcsICdrZXknKVxuICAgICAgICAgICAgaWYgKGRlc2MgJiYgIWRlc2MuZ2V0ICYmICFkZXNjLnNldCkge1xuICAgICAgICAgICAgICBjb25zdCBqc29uS2V5ID0gSlNPTi5zdHJpbmdpZnkoa2V5KVxuICAgICAgICAgICAgICBpZiAoanNvbktleSAhPT0gJ1wiJyArIGtleSArICdcIicpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0ganNvbktleSArICc6ICdcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0ga2V5ICsgJzogJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXRPYmplY3QoZGVzYy52YWx1ZSwgZGVwdGggKyAxKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgKz0ga2V5cy5sZW5ndGggPiAwID8gJy4uLicgOiAnJ1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCArPSAnfSdcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfVxuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXJnKVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gU3RyaW5nKGFyZylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Q29uc29sZUFyZ3MoYXJnczogdW5rbm93bltdKTogc3RyaW5nIHtcbiAgbGV0IG1lc3NhZ2U6IHN0cmluZ1xuICBsZXQgaWR4OiBudW1iZXJcbiAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xuICAgIG1lc3NhZ2UgPSBhcmdzWzBdXG4gICAgaWR4ID0gMVxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSAnJ1xuICAgIGlkeCA9IDBcbiAgfVxuICBsZXQgcmVzdWx0ID0gJydcbiAgbGV0IHN0YXJ0UXVvdGUgPSBmYWxzZVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG1lc3NhZ2UubGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBjaGFyID0gbWVzc2FnZVtpXVxuICAgIGlmIChjaGFyICE9PSAnJScgfHwgaSA9PT0gbWVzc2FnZS5sZW5ndGggLSAxIHx8IGlkeCA+PSBhcmdzLmxlbmd0aCkge1xuICAgICAgcmVzdWx0ICs9IGNoYXJcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgY29kZSA9IG1lc3NhZ2VbKytpXVxuICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgY2FzZSAnYyc6IHtcbiAgICAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIGNvbG9yaXplIHdpdGggSFRNTCBpbnN0ZWFkIG9mIHR1cm5pbmcgaW50byBhIHN0cmluZy5cbiAgICAgICAgLy8gSWdub3JlIGZvciBub3cuXG4gICAgICAgIHJlc3VsdCA9IHN0YXJ0UXVvdGUgPyBgJHtyZXN1bHR9XWAgOiBgWyR7cmVzdWx0fWBcbiAgICAgICAgc3RhcnRRdW90ZSA9ICFzdGFydFF1b3RlXG4gICAgICAgIGlkeCsrXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdPJzpcbiAgICAgIGNhc2UgJ28nOiB7XG4gICAgICAgIHJlc3VsdCArPSBmb3JtYXRPYmplY3QoYXJnc1tpZHgrK10sIDApXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdkJzpcbiAgICAgIGNhc2UgJ2knOiB7XG4gICAgICAgIHJlc3VsdCArPSBwYXJzZUludChhcmdzW2lkeCsrXSBhcyBhbnksIDEwKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnZic6IHtcbiAgICAgICAgcmVzdWx0ICs9IHBhcnNlRmxvYXQoYXJnc1tpZHgrK10gYXMgYW55KVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAncyc6IHtcbiAgICAgICAgcmVzdWx0ICs9IFN0cmluZyhhcmdzW2lkeCsrXSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJlc3VsdCArPSAnJScgKyBjb2RlXG4gICAgfVxuICB9XG5cbiAgZm9yICg7IGlkeCA8IGFyZ3MubGVuZ3RoOyBpZHgrKykge1xuICAgIHJlc3VsdCArPSAoaWR4ID4gMCA/ICcgJyA6ICcnKSArIGZvcm1hdE9iamVjdChhcmdzW2lkeF0sIDApXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0Q29uc29sZUFyZ3MiLCJmb3JtYXRPYmplY3QiLCJhcmciLCJkZXB0aCIsIkFycmF5IiwiaXNBcnJheSIsInJlc3VsdCIsImkiLCJsZW5ndGgiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJFcnJvciIsImtleXMiLCJrZXkiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0IiwianNvbktleSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ2YWx1ZSIsIlN0cmluZyIsImFyZ3MiLCJtZXNzYWdlIiwiaWR4Iiwic3RhcnRRdW90ZSIsImNoYXIiLCJjb2RlIiwicGFyc2VJbnQiLCJwYXJzZUZsb2F0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs4REFPYUE7OztlQUFBQTs7O2lEQVB1Qjt1Q0FDVjtBQU1uQixNQUFNQSw2QkFBNkIsQ0FBQ0M7SUFDekMsSUFBSSxDQUFDQSxLQUFLQyxVQUFVLENBQUMsUUFBUUMsU0FBd0MsRUFBRTtRQUNyRSxPQUFPRjtJQUNUO0lBRUEsTUFBTSxFQUFFSyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVSO0lBQzVDLElBQUlFLEtBQWlDLEVBQUUsRUFRdEM7SUFFRCxPQUFRLEtBQUVTLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JOLFlBQVlDLFFBQVFDO0FBQ3BEIiwic291cmNlcyI6WyJFOlxcR0lUXFxzcmNcXGNsaWVudFxcbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIG9mIGEgcGF0aCBhY2NvcmRpbmcgdG8gdGhlIGB0cmFpbGluZ1NsYXNoYCBvcHRpb25cbiAqIGluIGBuZXh0LmNvbmZpZy5qc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCBwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX1RSQUlMSU5HX1NMQVNIKSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCkge1xuICAgIGlmICgvXFwuW14vXStcXC8/JC8udGVzdChwYXRobmFtZSkpIHtcbiAgICAgIHJldHVybiBgJHtyZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gXG4gICAgfSBlbHNlIGlmIChwYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9LyR7cXVlcnl9JHtoYXNofWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYCR7cmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSl9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX01BTlVBTF9UUkFJTElOR19TTEFTSCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIiwiX19ORVhUX1RSQUlMSU5HX1NMQVNIIiwidGVzdCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/normalize-trailing-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/request-idle-callback.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/request-idle-callback.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 cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\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=request-idle-callback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZ0JhQSxrQkFBa0I7ZUFBbEJBOztJQWhCQUMsbUJBQW1CO2VBQW5CQTs7O0FBQU4sTUFBTUEsc0JBQ1YsT0FBT0MsU0FBUyxlQUNmQSxLQUFLRCxtQkFBbUIsSUFDeEJDLEtBQUtELG1CQUFtQixDQUFDRSxJQUFJLENBQUNDLFdBQ2hDLFNBQVVDLEVBQXVCO0lBQy9CLElBQUlDLFFBQVFDLEtBQUtDLEdBQUc7SUFDcEIsT0FBT04sS0FBS08sVUFBVSxDQUFDO1FBQ3JCSixHQUFHO1lBQ0RLLFlBQVk7WUFDWkMsZUFBZTtnQkFDYixPQUFPQyxLQUFLQyxHQUFHLENBQUMsR0FBRyxLQUFNTixDQUFBQSxLQUFLQyxHQUFHLEtBQUtGLEtBQUFBLENBQUk7WUFDNUM7UUFDRjtJQUNGLEdBQUc7QUFDTDtBQUVLLE1BQU1OLHFCQUNWLE9BQU9FLFNBQVMsZUFDZkEsS0FBS0Ysa0JBQWtCLElBQ3ZCRSxLQUFLRixrQkFBa0IsQ0FBQ0csSUFBSSxDQUFDQyxXQUMvQixTQUFVVSxFQUFVO0lBQ2xCLE9BQU9DLGFBQWFEO0FBQ3RCIiwic291cmNlcyI6WyJFOlxcR0lUXFxzcmNcXGNsaWVudFxccmVxdWVzdC1pZGxlLWNhbGxiYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCByZXF1ZXN0SWRsZUNhbGxiYWNrID1cbiAgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayAmJlxuICAgIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykpIHx8XG4gIGZ1bmN0aW9uIChjYjogSWRsZVJlcXVlc3RDYWxsYmFjayk6IG51bWJlciB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKVxuICAgIHJldHVybiBzZWxmLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgY2Ioe1xuICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgdGltZVJlbWFpbmluZzogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9LCAxKVxuICB9XG5cbmV4cG9ydCBjb25zdCBjYW5jZWxJZGxlQ2FsbGJhY2sgPVxuICAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmXG4gICAgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2sgJiZcbiAgICBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykpIHx8XG4gIGZ1bmN0aW9uIChpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNsZWFyVGltZW91dChpZClcbiAgfVxuIl0sIm5hbWVzIjpbImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/request-idle-callback.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/use-intersection.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/use-intersection.js ***!
|
||
\***********************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useIntersection\", ({\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(ssr)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === 'function';\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || ''\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\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-intersection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtaW50ZXJzZWN0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBK0ZnQkE7OztlQUFBQTs7O21DQS9GeUM7aURBSWxEO0FBcUJQLE1BQU1DLDBCQUEwQixPQUFPQyx5QkFBeUI7QUFFaEUsTUFBTUMsWUFBWSxJQUFJQztBQUN0QixNQUFNQyxTQUF1QixFQUFFO0FBRS9CLFNBQVNDLGVBQWVDLE9BQW9DO0lBQzFELE1BQU1DLEtBQUs7UUFDVEMsTUFBTUYsUUFBUUUsSUFBSSxJQUFJO1FBQ3RCQyxRQUFRSCxRQUFRSSxVQUFVLElBQUk7SUFDaEM7SUFDQSxNQUFNQyxXQUFXUCxPQUFPUSxJQUFJLENBQzFCLENBQUNDLE1BQVFBLElBQUlMLElBQUksS0FBS0QsR0FBR0MsSUFBSSxJQUFJSyxJQUFJSixNQUFNLEtBQUtGLEdBQUdFLE1BQU07SUFFM0QsSUFBSUs7SUFFSixJQUFJSCxVQUFVO1FBQ1pHLFdBQVdaLFVBQVVhLEdBQUcsQ0FBQ0o7UUFDekIsSUFBSUcsVUFBVTtZQUNaLE9BQU9BO1FBQ1Q7SUFDRjtJQUVBLE1BQU1FLFdBQVcsSUFBSWI7SUFDckIsTUFBTWMsV0FBVyxJQUFJaEIscUJBQXFCLENBQUNpQjtRQUN6Q0EsUUFBUUMsT0FBTyxDQUFDLENBQUNDO1lBQ2YsTUFBTUMsV0FBV0wsU0FBU0QsR0FBRyxDQUFDSyxNQUFNRSxNQUFNO1lBQzFDLE1BQU1DLFlBQVlILE1BQU1JLGNBQWMsSUFBSUosTUFBTUssaUJBQWlCLEdBQUc7WUFDcEUsSUFBSUosWUFBWUUsV0FBVztnQkFDekJGLFNBQVNFO1lBQ1g7UUFDRjtJQUNGLEdBQUdqQjtJQUNIUSxXQUFXO1FBQ1RQO1FBQ0FVO1FBQ0FEO0lBQ0Y7SUFFQVosT0FBT3NCLElBQUksQ0FBQ25CO0lBQ1pMLFVBQVV5QixHQUFHLENBQUNwQixJQUFJTztJQUNsQixPQUFPQTtBQUNUO0FBRUEsU0FBU2MsUUFDUEMsT0FBZ0IsRUFDaEJSLFFBQXlCLEVBQ3pCZixPQUFvQztJQUVwQyxNQUFNLEVBQUVDLEVBQUUsRUFBRVUsUUFBUSxFQUFFRCxRQUFRLEVBQUUsR0FBR1gsZUFBZUM7SUFDbERVLFNBQVNXLEdBQUcsQ0FBQ0UsU0FBU1I7SUFFdEJKLFNBQVNXLE9BQU8sQ0FBQ0M7SUFDakIsT0FBTyxTQUFTQztRQUNkZCxTQUFTZSxNQUFNLENBQUNGO1FBQ2hCWixTQUFTYSxTQUFTLENBQUNEO1FBRW5CLHVEQUF1RDtRQUN2RCxJQUFJYixTQUFTZ0IsSUFBSSxLQUFLLEdBQUc7WUFDdkJmLFNBQVNnQixVQUFVO1lBQ25CL0IsVUFBVTZCLE1BQU0sQ0FBQ3hCO1lBQ2pCLE1BQU0yQixRQUFROUIsT0FBTytCLFNBQVMsQ0FDNUIsQ0FBQ3RCLE1BQVFBLElBQUlMLElBQUksS0FBS0QsR0FBR0MsSUFBSSxJQUFJSyxJQUFJSixNQUFNLEtBQUtGLEdBQUdFLE1BQU07WUFFM0QsSUFBSXlCLFFBQVEsQ0FBQyxHQUFHO2dCQUNkOUIsT0FBT2dDLE1BQU0sQ0FBQ0YsT0FBTztZQUN2QjtRQUNGO0lBQ0Y7QUFDRjtBQUVPLFNBQVNuQyxnQkFBbUMsS0FJakM7SUFKaUMsTUFDakRzQyxPQUFPLEVBQ1AzQixVQUFVLEVBQ1Y0QixRQUFRLEVBQ1EsR0FKaUM7SUFLakQsTUFBTUMsYUFBc0JELFlBQVksQ0FBQ3RDO0lBRXpDLE1BQU0sQ0FBQ3dDLFNBQVNDLFdBQVcsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFBUztJQUN2QyxNQUFNQyxhQUFhQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUFpQjtJQUNwQyxNQUFNQyxhQUFhQyxDQUFBQSxHQUFBQSxPQUFBQSxXQUFBQSxFQUFZLENBQUNqQjtRQUM5QmMsV0FBV0ksT0FBTyxHQUFHbEI7SUFDdkIsR0FBRyxFQUFFO0lBRUxtQixDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsSUFBSWhELHlCQUF5QjtZQUMzQixJQUFJdUMsY0FBY0MsU0FBUztZQUUzQixNQUFNWCxVQUFVYyxXQUFXSSxPQUFPO1lBQ2xDLElBQUlsQixXQUFXQSxRQUFRb0IsT0FBTyxFQUFFO2dCQUM5QixNQUFNbkIsWUFBWUYsUUFDaEJDLFNBQ0EsQ0FBQ04sWUFBY0EsYUFBYWtCLFdBQVdsQixZQUN2QztvQkFBRWYsSUFBSSxFQUFFNkIsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU1UsT0FBTztvQkFBRXJDO2dCQUFXO2dCQUd2QyxPQUFPb0I7WUFDVDtRQUNGLE9BQU87WUFDTCxJQUFJLENBQUNVLFNBQVM7Z0JBQ1osTUFBTVUsZUFBZUMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQixJQUFNVixXQUFXO2dCQUMxRCxPQUFPLElBQU1XLENBQUFBLEdBQUFBLHFCQUFBQSxrQkFBQUEsRUFBbUJGO1lBQ2xDO1FBQ0Y7SUFDQSx1REFBdUQ7SUFDekQsR0FBRztRQUFDWDtRQUFZN0I7UUFBWTJCO1FBQVNHO1FBQVNHLFdBQVdJLE9BQU87S0FBQztJQUVqRSxNQUFNTSxlQUFlUCxDQUFBQSxHQUFBQSxPQUFBQSxXQUFBQSxFQUFZO1FBQy9CTCxXQUFXO0lBQ2IsR0FBRyxFQUFFO0lBRUwsT0FBTztRQUFDSTtRQUFZTDtRQUFTYTtLQUFhO0FBQzVDIiwic291cmNlcyI6WyJFOlxcR0lUXFxzcmNcXGNsaWVudFxcdXNlLWludGVyc2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgcmVxdWVzdElkbGVDYWxsYmFjayxcbiAgY2FuY2VsSWRsZUNhbGxiYWNrLFxufSBmcm9tICcuL3JlcXVlc3QtaWRsZS1jYWxsYmFjaydcblxudHlwZSBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgPSBQaWNrPFxuICBJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQsXG4gICdyb290TWFyZ2luJyB8ICdyb290J1xuPlxuXG50eXBlIFVzZUludGVyc2VjdGlvbiA9IHsgZGlzYWJsZWQ/OiBib29sZWFuIH0gJiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXQgJiB7XG4gICAgcm9vdFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+IHwgbnVsbFxuICB9XG50eXBlIE9ic2VydmVDYWxsYmFjayA9IChpc1Zpc2libGU6IGJvb2xlYW4pID0+IHZvaWRcbnR5cGUgSWRlbnRpZmllciA9IHtcbiAgcm9vdDogRWxlbWVudCB8IERvY3VtZW50IHwgbnVsbFxuICBtYXJnaW46IHN0cmluZ1xufVxudHlwZSBPYnNlcnZlciA9IHtcbiAgaWQ6IElkZW50aWZpZXJcbiAgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyXG4gIGVsZW1lbnRzOiBNYXA8RWxlbWVudCwgT2JzZXJ2ZUNhbGxiYWNrPlxufVxuXG5jb25zdCBoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gJ2Z1bmN0aW9uJ1xuXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgTWFwPElkZW50aWZpZXIsIE9ic2VydmVyPigpXG5jb25zdCBpZExpc3Q6IElkZW50aWZpZXJbXSA9IFtdXG5cbmZ1bmN0aW9uIGNyZWF0ZU9ic2VydmVyKG9wdGlvbnM6IFVzZUludGVyc2VjdGlvbk9ic2VydmVySW5pdCk6IE9ic2VydmVyIHtcbiAgY29uc3QgaWQgPSB7XG4gICAgcm9vdDogb3B0aW9ucy5yb290IHx8IG51bGwsXG4gICAgbWFyZ2luOiBvcHRpb25zLnJvb3RNYXJnaW4gfHwgJycsXG4gIH1cbiAgY29uc3QgZXhpc3RpbmcgPSBpZExpc3QuZmluZChcbiAgICAob2JqKSA9PiBvYmoucm9vdCA9PT0gaWQucm9vdCAmJiBvYmoubWFyZ2luID09PSBpZC5tYXJnaW5cbiAgKVxuICBsZXQgaW5zdGFuY2U6IE9ic2VydmVyIHwgdW5kZWZpbmVkXG5cbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgaW5zdGFuY2UgPSBvYnNlcnZlcnMuZ2V0KGV4aXN0aW5nKVxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlXG4gICAgfVxuICB9XG5cbiAgY29uc3QgZWxlbWVudHMgPSBuZXcgTWFwPEVsZW1lbnQsIE9ic2VydmVDYWxsYmFjaz4oKVxuICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrID0gZWxlbWVudHMuZ2V0KGVudHJ5LnRhcmdldClcbiAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmlzSW50ZXJzZWN0aW5nIHx8IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID4gMFxuICAgICAgaWYgKGNhbGxiYWNrICYmIGlzVmlzaWJsZSkge1xuICAgICAgICBjYWxsYmFjayhpc1Zpc2libGUpXG4gICAgICB9XG4gICAgfSlcbiAgfSwgb3B0aW9ucylcbiAgaW5zdGFuY2UgPSB7XG4gICAgaWQsXG4gICAgb2JzZXJ2ZXIsXG4gICAgZWxlbWVudHMsXG4gIH1cblxuICBpZExpc3QucHVzaChpZClcbiAgb2JzZXJ2ZXJzLnNldChpZCwgaW5zdGFuY2UpXG4gIHJldHVybiBpbnN0YW5jZVxufVxuXG5mdW5jdGlvbiBvYnNlcnZlKFxuICBlbGVtZW50OiBFbGVtZW50LFxuICBjYWxsYmFjazogT2JzZXJ2ZUNhbGxiYWNrLFxuICBvcHRpb25zOiBVc2VJbnRlcnNlY3Rpb25PYnNlcnZlckluaXRcbik6ICgpID0+IHZvaWQge1xuICBjb25zdCB7IGlkLCBvYnNlcnZlciwgZWxlbWVudHMgfSA9IGNyZWF0ZU9ic2VydmVyKG9wdGlvbnMpXG4gIGVsZW1lbnRzLnNldChlbGVtZW50LCBjYWxsYmFjaylcblxuICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpXG4gIHJldHVybiBmdW5jdGlvbiB1bm9ic2VydmUoKTogdm9pZCB7XG4gICAgZWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpXG4gICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpXG5cbiAgICAvLyBEZXN0cm95IG9ic2VydmVyIHdoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gd2F0Y2g6XG4gICAgaWYgKGVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgb2JzZXJ2ZXJzLmRlbGV0ZShpZClcbiAgICAgIGNvbnN0IGluZGV4ID0gaWRMaXN0LmZpbmRJbmRleChcbiAgICAgICAgKG9iaikgPT4gb2JqLnJvb3QgPT09IGlkLnJvb3QgJiYgb2JqLm1hcmdpbiA9PT0gaWQubWFyZ2luXG4gICAgICApXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBpZExpc3Quc3BsaWNlKGluZGV4LCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlSW50ZXJzZWN0aW9uPFQgZXh0ZW5kcyBFbGVtZW50Pih7XG4gIHJvb3RSZWYsXG4gIHJvb3RNYXJnaW4sXG4gIGRpc2FibGVkLFxufTogVXNlSW50ZXJzZWN0aW9uKTogWyhlbGVtZW50OiBUIHwgbnVsbCkgPT4gdm9pZCwgYm9vbGVhbiwgKCkgPT4gdm9pZF0ge1xuICBjb25zdCBpc0Rpc2FibGVkOiBib29sZWFuID0gZGlzYWJsZWQgfHwgIWhhc0ludGVyc2VjdGlvbk9ic2VydmVyXG5cbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IHNldEVsZW1lbnQgPSB1c2VDYWxsYmFjaygoZWxlbWVudDogVCB8IG51bGwpID0+IHtcbiAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGhhc0ludGVyc2VjdGlvbk9ic2VydmVyKSB7XG4gICAgICBpZiAoaXNEaXNhYmxlZCB8fCB2aXNpYmxlKSByZXR1cm5cblxuICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudFxuICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC50YWdOYW1lKSB7XG4gICAgICAgIGNvbnN0IHVub2JzZXJ2ZSA9IG9ic2VydmUoXG4gICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAoaXNWaXNpYmxlKSA9PiBpc1Zpc2libGUgJiYgc2V0VmlzaWJsZShpc1Zpc2libGUpLFxuICAgICAgICAgIHsgcm9vdDogcm9vdFJlZj8uY3VycmVudCwgcm9vdE1hcmdpbiB9XG4gICAgICAgIClcblxuICAgICAgICByZXR1cm4gdW5vYnNlcnZlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICBjb25zdCBpZGxlQ2FsbGJhY2sgPSByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IHNldFZpc2libGUodHJ1ZSkpXG4gICAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxJZGxlQ2FsbGJhY2soaWRsZUNhbGxiYWNrKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtpc0Rpc2FibGVkLCByb290TWFyZ2luLCByb290UmVmLCB2aXNpYmxlLCBlbGVtZW50UmVmLmN1cnJlbnRdKVxuXG4gIGNvbnN0IHJlc2V0VmlzaWJsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRWaXNpYmxlKGZhbHNlKVxuICB9LCBbXSlcblxuICByZXR1cm4gW3NldEVsZW1lbnQsIHZpc2libGUsIHJlc2V0VmlzaWJsZV1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VJbnRlcnNlY3Rpb24iLCJoYXNJbnRlcnNlY3Rpb25PYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwib2JzZXJ2ZXJzIiwiTWFwIiwiaWRMaXN0IiwiY3JlYXRlT2JzZXJ2ZXIiLCJvcHRpb25zIiwiaWQiLCJyb290IiwibWFyZ2luIiwicm9vdE1hcmdpbiIsImV4aXN0aW5nIiwiZmluZCIsIm9iaiIsImluc3RhbmNlIiwiZ2V0IiwiZWxlbWVudHMiLCJvYnNlcnZlciIsImVudHJpZXMiLCJmb3JFYWNoIiwiZW50cnkiLCJjYWxsYmFjayIsInRhcmdldCIsImlzVmlzaWJsZSIsImlzSW50ZXJzZWN0aW5nIiwiaW50ZXJzZWN0aW9uUmF0aW8iLCJwdXNoIiwic2V0Iiwib2JzZXJ2ZSIsImVsZW1lbnQiLCJ1bm9ic2VydmUiLCJkZWxldGUiLCJzaXplIiwiZGlzY29ubmVjdCIsImluZGV4IiwiZmluZEluZGV4Iiwic3BsaWNlIiwicm9vdFJlZiIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlU3RhdGUiLCJlbGVtZW50UmVmIiwidXNlUmVmIiwic2V0RWxlbWVudCIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInRhZ05hbWUiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwicmVzZXRWaXNpYmxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/use-intersection.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)(()=>{});\n const cleanupB = (0, _react.useRef)(()=>{});\n return (0, _react.useMemo)(()=>{\n if (!refA || !refB) {\n return refA || refB;\n }\n return (current)=>{\n if (current === null) {\n cleanupA.current();\n cleanupB.current();\n } else {\n cleanupA.current = applyRef(refA, current);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtbWVyZ2VkLXJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQVNnQkE7OztlQUFBQTs7O21DQVQwQjtBQVNuQyxTQUFTQSxhQUNkQyxJQUFtQixFQUNuQkMsSUFBbUI7SUFFbkIsTUFBTUMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBbUIsS0FBTztJQUMzQyxNQUFNQyxXQUFXRCxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUFtQixLQUFPO0lBRTNDLE9BQU9FLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7UUFDYixJQUFJLENBQUNMLFFBQVEsQ0FBQ0MsTUFBTTtZQUNsQixPQUFPRCxRQUFRQztRQUNqQjtRQUVBLE9BQU8sQ0FBQ0s7WUFDTixJQUFJQSxZQUFZLE1BQU07Z0JBQ3BCSixTQUFTSSxPQUFPO2dCQUNoQkYsU0FBU0UsT0FBTztZQUNsQixPQUFPO2dCQUNMSixTQUFTSSxPQUFPLEdBQUdDLFNBQVNQLE1BQU1NO2dCQUNsQ0YsU0FBU0UsT0FBTyxHQUFHQyxTQUFTTixNQUFNSztZQUNwQztRQUNGO0lBQ0YsR0FBRztRQUFDTjtRQUFNQztLQUFLO0FBQ2pCO0FBRUEsU0FBU00sU0FDUFAsSUFBZ0MsRUFDaENNLE9BQWlCO0lBRWpCLElBQUksT0FBT04sU0FBUyxZQUFZO1FBQzlCLE1BQU1RLFVBQVVSLEtBQUtNO1FBQ3JCLElBQUksT0FBT0UsWUFBWSxZQUFZO1lBQ2pDLE9BQU9BO1FBQ1QsT0FBTztZQUNMLE9BQU8sSUFBTVIsS0FBSztRQUNwQjtJQUNGLE9BQU87UUFDTEEsS0FBS00sT0FBTyxHQUFHQTtRQUNmLE9BQU87WUFDTE4sS0FBS00sT0FBTyxHQUFHO1FBQ2pCO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcc3JjXFxjbGllbnRcXHVzZS1tZXJnZWQtcmVmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiwgdHlwZSBSZWYgfSBmcm9tICdyZWFjdCdcblxuLy8gVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgaG9vayB0byBzdXBwb3J0IFJlYWN0IDE4IGFuZCAxOSByZWZzLlxuLy8gSW4gMTksIGEgY2xlYW51cCBmdW5jdGlvbiBmcm9tIHJlZnMgbWF5IGJlIHJldHVybmVkLlxuLy8gSW4gMTgsIHJldHVybmluZyBhIGNsZWFudXAgZnVuY3Rpb24gY3JlYXRlcyBhIHdhcm5pbmcuXG4vLyBTaW5jZSB3ZSB0YWtlIHVzZXJzcGFjZSByZWZzLCB3ZSBkb24ndCBrbm93IGFoZWFkIG9mIHRpbWUgaWYgYSBjbGVhbnVwIGZ1bmN0aW9uIHdpbGwgYmUgcmV0dXJuZWQuXG4vLyBUaGlzIGltcGxlbWVudHMgY2xlYW51cCBmdW5jdGlvbnMgd2l0aCB0aGUgb2xkIGJlaGF2aW9yIGluIDE4LlxuLy8gV2Uga25vdyByZWZzIGFyZSBhbHdheXMgY2FsbGVkIGFsdGVybmF0aW5nIHdpdGggYG51bGxgIGFuZCB0aGVuIGBUYC5cbi8vIFNvIGEgY2FsbCB3aXRoIGBudWxsYCBtZWFucyB3ZSBuZWVkIHRvIGNhbGwgdGhlIHByZXZpb3VzIGNsZWFudXAgZnVuY3Rpb25zLlxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlZFJlZjxURWxlbWVudD4oXG4gIHJlZkE6IFJlZjxURWxlbWVudD4sXG4gIHJlZkI6IFJlZjxURWxlbWVudD5cbik6IFJlZjxURWxlbWVudD4ge1xuICBjb25zdCBjbGVhbnVwQSA9IHVzZVJlZjwoKSA9PiB2b2lkPigoKSA9PiB7fSlcbiAgY29uc3QgY2xlYW51cEIgPSB1c2VSZWY8KCkgPT4gdm9pZD4oKCkgPT4ge30pXG5cbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghcmVmQSB8fCAhcmVmQikge1xuICAgICAgcmV0dXJuIHJlZkEgfHwgcmVmQlxuICAgIH1cblxuICAgIHJldHVybiAoY3VycmVudDogVEVsZW1lbnQgfCBudWxsKTogdm9pZCA9PiB7XG4gICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBjbGVhbnVwQS5jdXJyZW50KClcbiAgICAgICAgY2xlYW51cEIuY3VycmVudCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gYXBwbHlSZWYocmVmQSwgY3VycmVudClcbiAgICAgICAgY2xlYW51cEIuY3VycmVudCA9IGFwcGx5UmVmKHJlZkIsIGN1cnJlbnQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVmQSwgcmVmQl0pXG59XG5cbmZ1bmN0aW9uIGFwcGx5UmVmPFRFbGVtZW50PihcbiAgcmVmQTogTm9uTnVsbGFibGU8UmVmPFRFbGVtZW50Pj4sXG4gIGN1cnJlbnQ6IFRFbGVtZW50XG4pIHtcbiAgaWYgKHR5cGVvZiByZWZBID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgY2xlYW51cCA9IHJlZkEoY3VycmVudClcbiAgICBpZiAodHlwZW9mIGNsZWFudXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBjbGVhbnVwXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoKSA9PiByZWZBKG51bGwpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJlZkEuY3VycmVudCA9IGN1cnJlbnRcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVmQS5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInVzZU1lcmdlZFJlZiIsInJlZkEiLCJyZWZCIiwiY2xlYW51cEEiLCJ1c2VSZWYiLCJjbGVhbnVwQiIsInVzZU1lbW8iLCJjdXJyZW50IiwiYXBwbHlSZWYiLCJjbGVhbnVwIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/use-merged-ref.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/compiled/anser/index.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/anser/index.js ***!
|
||
\********************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{\"use strict\";var e={211:e=>{var r=function(){function defineProperties(e,r){for(var n=0;n<r.length;n++){var s=r[n];s.enumerable=s.enumerable||false;s.configurable=true;if(\"value\"in s)s.writable=true;Object.defineProperty(e,s.key,s)}}return function(e,r,n){if(r)defineProperties(e.prototype,r);if(n)defineProperties(e,n);return e}}();function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}var 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\"}]];var s=function(){r(Anser,null,[{key:\"escapeForHtml\",value:function escapeForHtml(e){return(new Anser).escapeForHtml(e)}},{key:\"linkify\",value:function linkify(e){return(new Anser).linkify(e)}},{key:\"ansiToHtml\",value:function ansiToHtml(e,r){return(new Anser).ansiToHtml(e,r)}},{key:\"ansiToJson\",value:function ansiToJson(e,r){return(new Anser).ansiToJson(e,r)}},{key:\"ansiToText\",value:function ansiToText(e){return(new Anser).ansiToText(e)}}]);function Anser(){_classCallCheck(this,Anser);this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null;this.bright=0}r(Anser,[{key:\"setupPalette\",value:function setupPalette(){this.PALETTE_COLORS=[];for(var e=0;e<2;++e){for(var r=0;r<8;++r){this.PALETTE_COLORS.push(n[e][r].color)}}var s=[0,95,135,175,215,255];var i=function format(e,r,n){return s[e]+\", \"+s[r]+\", \"+s[n]};var t=void 0,o=void 0,a=void 0;for(var l=0;l<6;++l){for(var c=0;c<6;++c){for(var u=0;u<6;++u){this.PALETTE_COLORS.push(i(l,c,u))}}}var f=8;for(var h=0;h<24;++h,f+=10){this.PALETTE_COLORS.push(i(f,f,f))}}},{key:\"escapeForHtml\",value:function escapeForHtml(e){return e.replace(/[&<>]/gm,(function(e){return e==\"&\"?\"&\":e==\"<\"?\"<\":e==\">\"?\">\":\"\"}))}},{key:\"linkify\",value:function linkify(e){return e.replace(/(https?:\\/\\/[^\\s]+)/gm,(function(e){return'<a href=\"'+e+'\">'+e+\"</a>\"}))}},{key:\"ansiToHtml\",value:function ansiToHtml(e,r){return this.process(e,r,true)}},{key:\"ansiToJson\",value:function ansiToJson(e,r){r=r||{};r.json=true;r.clearLine=false;return this.process(e,r,true)}},{key:\"ansiToText\",value:function ansiToText(e){return this.process(e,{},false)}},{key:\"process\",value:function process(e,r,n){var s=this;var i=this;var t=e.split(/\\033\\[/);var o=t.shift();if(r===undefined||r===null){r={}}r.clearLine=/\\r/.test(e);var a=t.map((function(e){return s.processChunk(e,r,n)}));if(r&&r.json){var l=i.processChunkJson(\"\");l.content=o;l.clearLine=r.clearLine;a.unshift(l);if(r.remove_empty){a=a.filter((function(e){return!e.isEmpty()}))}return a}else{a.unshift(o)}return a.join(\"\")}},{key:\"processChunkJson\",value:function processChunkJson(e,r,s){r=typeof r==\"undefined\"?{}:r;var i=r.use_classes=typeof r.use_classes!=\"undefined\"&&r.use_classes;var t=r.key=i?\"class\":\"color\";var o={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,clearLine:r.clearLine,decoration:null,was_processed:false,isEmpty:function isEmpty(){return!o.content}};var a=e.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);if(!a)return o;var l=o.content=a[4];var c=a[2].split(\";\");if(a[1]!==\"\"||a[3]!==\"m\"){return o}if(!s){return o}var u=this;u.decoration=null;while(c.length>0){var f=c.shift();var h=parseInt(f);if(isNaN(h)||h===0){u.fg=u.bg=u.decoration=null}else if(h===1){u.decoration=\"bold\"}else if(h===2){u.decoration=\"dim\"}else if(h==3){u.decoration=\"italic\"}else if(h==4){u.decoration=\"underline\"}else if(h==5){u.decoration=\"blink\"}else if(h===7){u.decoration=\"reverse\"}else if(h===8){u.decoration=\"hidden\"}else if(h===9){u.decoration=\"strikethrough\"}else if(h==39){u.fg=null}else if(h==49){u.bg=null}else if(h>=30&&h<38){u.fg=n[0][h%10][t]}else if(h>=90&&h<98){u.fg=n[1][h%10][t]}else if(h>=40&&h<48){u.bg=n[0][h%10][t]}else if(h>=100&&h<108){u.bg=n[1][h%10][t]}else if(h===38||h===48){var p=h===38;if(c.length>=1){var g=c.shift();if(g===\"5\"&&c.length>=1){var v=parseInt(c.shift());if(v>=0&&v<=255){if(!i){if(!this.PALETTE_COLORS){u.setupPalette()}if(p){u.fg=this.PALETTE_COLORS[v]}else{u.bg=this.PALETTE_COLORS[v]}}else{var d=v>=16?\"ansi-palette-\"+v:n[v>7?1:0][v%8][\"class\"];if(p){u.fg=d}else{u.bg=d}}}}else if(g===\"2\"&&c.length>=3){var _=parseInt(c.shift());var b=parseInt(c.shift());var y=parseInt(c.shift());if(_>=0&&_<=255&&b>=0&&b<=255&&y>=0&&y<=255){var k=_+\", \"+b+\", \"+y;if(!i){if(p){u.fg=k}else{u.bg=k}}else{if(p){u.fg=\"ansi-truecolor\";u.fg_truecolor=k}else{u.bg=\"ansi-truecolor\";u.bg_truecolor=k}}}}}}}if(u.fg===null&&u.bg===null&&u.decoration===null){return o}else{var T=[];var m=[];var w={};o.fg=u.fg;o.bg=u.bg;o.fg_truecolor=u.fg_truecolor;o.bg_truecolor=u.bg_truecolor;o.decoration=u.decoration;o.was_processed=true;return o}}},{key:\"processChunk\",value:function processChunk(e,r,n){var s=this;var i=this;r=r||{};var t=this.processChunkJson(e,r,n);if(r.json){return t}if(t.isEmpty()){return\"\"}if(!t.was_processed){return t.content}var o=r.use_classes;var a=[];var l=[];var c={};var u=function render_data(e){var r=[];var n=void 0;for(n in e){if(e.hasOwnProperty(n)){r.push(\"data-\"+n+'=\"'+s.escapeForHtml(e[n])+'\"')}}return r.length>0?\" \"+r.join(\" \"):\"\"};if(t.fg){if(o){l.push(t.fg+\"-fg\");if(t.fg_truecolor!==null){c[\"ansi-truecolor-fg\"]=t.fg_truecolor;t.fg_truecolor=null}}else{a.push(\"color:rgb(\"+t.fg+\")\")}}if(t.bg){if(o){l.push(t.bg+\"-bg\");if(t.bg_truecolor!==null){c[\"ansi-truecolor-bg\"]=t.bg_truecolor;t.bg_truecolor=null}}else{a.push(\"background-color:rgb(\"+t.bg+\")\")}}if(t.decoration){if(o){l.push(\"ansi-\"+t.decoration)}else if(t.decoration===\"bold\"){a.push(\"font-weight:bold\")}else if(t.decoration===\"dim\"){a.push(\"opacity:0.5\")}else if(t.decoration===\"italic\"){a.push(\"font-style:italic\")}else if(t.decoration===\"reverse\"){a.push(\"filter:invert(100%)\")}else if(t.decoration===\"hidden\"){a.push(\"visibility:hidden\")}else if(t.decoration===\"strikethrough\"){a.push(\"text-decoration:line-through\")}else{a.push(\"text-decoration:\"+t.decoration)}}if(o){return'<span class=\"'+l.join(\" \")+'\"'+u(c)+\">\"+t.content+\"</span>\"}else{return'<span style=\"'+a.join(\";\")+'\"'+u(c)+\">\"+t.content+\"</span>\"}}}]);return Anser}();e.exports=s}};var r={};function __nccwpck_require__(n){var s=r[n];if(s!==undefined){return s.exports}var i=r[n]={exports:{}};var t=true;try{e[n](i,i.exports,__nccwpck_require__);t=false}finally{if(t)delete r[n]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n=__nccwpck_require__(211);module.exports=n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Fuc2VyL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPLFFBQVEsaUJBQWlCLCtCQUErQixZQUFZLFdBQVcsS0FBSyxXQUFXLGlDQUFpQyxvQkFBb0IsK0JBQStCLGtDQUFrQyx1QkFBdUIscUNBQXFDLDJCQUEyQixVQUFVLEdBQUcsOEJBQThCLHNCQUFzQiwwREFBMEQsU0FBUyxtQ0FBbUMsRUFBRSxtQ0FBbUMsRUFBRSxxQ0FBcUMsRUFBRSx3Q0FBd0MsRUFBRSxvQ0FBb0MsRUFBRSx5Q0FBeUMsRUFBRSxzQ0FBc0MsRUFBRSx1Q0FBdUMsSUFBSSw2Q0FBNkMsRUFBRSw0Q0FBNEMsRUFBRSw0Q0FBNEMsRUFBRSxnREFBZ0QsRUFBRSw2Q0FBNkMsRUFBRSxpREFBaUQsRUFBRSw4Q0FBOEMsRUFBRSxnREFBZ0QsR0FBRyxpQkFBaUIsZUFBZSxvREFBb0Qsb0NBQW9DLEVBQUUsd0NBQXdDLDhCQUE4QixFQUFFLGdEQUFnRCxtQ0FBbUMsRUFBRSxnREFBZ0QsbUNBQW1DLEVBQUUsOENBQThDLGlDQUFpQyxHQUFHLGlCQUFpQiw0QkFBNEIseURBQXlELGNBQWMsVUFBVSxpREFBaUQsdUJBQXVCLFlBQVksSUFBSSxLQUFLLFlBQVksSUFBSSxLQUFLLHlDQUF5Qyw2QkFBNkIsNkJBQTZCLGlDQUFpQywrQkFBK0IsWUFBWSxJQUFJLEtBQUssWUFBWSxJQUFJLEtBQUssWUFBWSxJQUFJLEtBQUsscUNBQXFDLFFBQVEsWUFBWSxLQUFLLFdBQVcscUNBQXFDLEVBQUUsb0RBQW9ELHdDQUF3QyxvQkFBb0IsY0FBYyxjQUFjLEtBQUssSUFBSSxFQUFFLHdDQUF3QyxzREFBc0Qsa0NBQWtDLElBQUksRUFBRSxnREFBZ0QsK0JBQStCLEVBQUUsZ0RBQWdELFFBQVEsWUFBWSxrQkFBa0IsK0JBQStCLEVBQUUsOENBQThDLHdCQUF3QixTQUFTLEVBQUUsNENBQTRDLFdBQVcsV0FBVyx3QkFBd0IsZ0JBQWdCLDRCQUE0QixLQUFLLHlCQUF5Qix5QkFBeUIsNkJBQTZCLEdBQUcsY0FBYyw2QkFBNkIsWUFBWSx3QkFBd0IsYUFBYSxtQkFBbUIsd0JBQXdCLG1CQUFtQixHQUFHLFNBQVMsS0FBSyxhQUFhLG1CQUFtQixFQUFFLDhEQUE4RCwwQkFBMEIsR0FBRyxxRUFBcUUsOEJBQThCLE9BQU8sbUpBQW1KLG1CQUFtQixvQ0FBb0MseUNBQXlDLGVBQWUscUJBQXFCLG1CQUFtQixHQUFHLDBCQUEwQixTQUFTLE9BQU8sU0FBUyxXQUFXLGtCQUFrQixrQkFBa0IsZ0JBQWdCLGtCQUFrQixvQkFBb0IsNEJBQTRCLGVBQWUsb0JBQW9CLGVBQWUsbUJBQW1CLGNBQWMsc0JBQXNCLGNBQWMseUJBQXlCLGNBQWMscUJBQXFCLGVBQWUsdUJBQXVCLGVBQWUsc0JBQXNCLGVBQWUsNkJBQTZCLGVBQWUsVUFBVSxlQUFlLFVBQVUscUJBQXFCLG1CQUFtQixxQkFBcUIsbUJBQW1CLHFCQUFxQixtQkFBbUIsdUJBQXVCLG1CQUFtQix3QkFBd0IsYUFBYSxnQkFBZ0IsZ0JBQWdCLHlCQUF5QiwwQkFBMEIsaUJBQWlCLE9BQU8seUJBQXlCLGlCQUFpQixNQUFNLDRCQUE0QixLQUFLLDZCQUE2QixLQUFLLHVEQUF1RCxNQUFNLE9BQU8sS0FBSyxVQUFVLDhCQUE4QiwwQkFBMEIsMEJBQTBCLDBCQUEwQiw2Q0FBNkMsc0JBQXNCLE9BQU8sTUFBTSxPQUFPLEtBQUssUUFBUSxLQUFLLE1BQU0sc0JBQXNCLGlCQUFpQixLQUFLLHNCQUFzQix1QkFBdUIsa0RBQWtELFNBQVMsS0FBSyxTQUFTLFNBQVMsU0FBUyxVQUFVLFVBQVUsOEJBQThCLDhCQUE4QiwwQkFBMEIscUJBQXFCLFdBQVcsRUFBRSxzREFBc0QsV0FBVyxXQUFXLFFBQVEsbUNBQW1DLFdBQVcsU0FBUyxnQkFBZ0IsU0FBUyxxQkFBcUIsaUJBQWlCLG9CQUFvQixTQUFTLFNBQVMsU0FBUyw4QkFBOEIsU0FBUyxhQUFhLFlBQVksd0JBQXdCLGtEQUFrRCxzQ0FBc0MsU0FBUyxNQUFNLG1CQUFtQiwwQkFBMEIsc0NBQXNDLHFCQUFxQixLQUFLLCtCQUErQixTQUFTLE1BQU0sbUJBQW1CLDBCQUEwQixzQ0FBc0MscUJBQXFCLEtBQUssMENBQTBDLGlCQUFpQixNQUFNLDZCQUE2QiwrQkFBK0IsMkJBQTJCLDhCQUE4QixzQkFBc0IsaUNBQWlDLDRCQUE0QixrQ0FBa0MsOEJBQThCLGlDQUFpQyw0QkFBNEIsd0NBQXdDLHVDQUF1QyxLQUFLLHlDQUF5QyxNQUFNLG1FQUFtRSxLQUFLLCtCQUErQixzQ0FBc0MsR0FBRyxhQUFhLEdBQUcsY0FBYyxTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSxZQUFZLFdBQVcsSUFBSSxzQ0FBc0MsUUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsaUZBQWlGLCtCQUErQixpQkFBaUIiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxhbnNlclxcaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezIxMTplPT57dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGUscil7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBzPXJbbl07cy5lbnVtZXJhYmxlPXMuZW51bWVyYWJsZXx8ZmFsc2U7cy5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBzKXMud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxzLmtleSxzKX19cmV0dXJuIGZ1bmN0aW9uKGUscixuKXtpZihyKWRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUscik7aWYobilkZWZpbmVQcm9wZXJ0aWVzKGUsbik7cmV0dXJuIGV9fSgpO2Z1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhlLHIpe2lmKCEoZSBpbnN0YW5jZW9mIHIpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfX12YXIgbj1bW3tjb2xvcjpcIjAsIDAsIDBcIixjbGFzczpcImFuc2ktYmxhY2tcIn0se2NvbG9yOlwiMTg3LCAwLCAwXCIsY2xhc3M6XCJhbnNpLXJlZFwifSx7Y29sb3I6XCIwLCAxODcsIDBcIixjbGFzczpcImFuc2ktZ3JlZW5cIn0se2NvbG9yOlwiMTg3LCAxODcsIDBcIixjbGFzczpcImFuc2kteWVsbG93XCJ9LHtjb2xvcjpcIjAsIDAsIDE4N1wiLGNsYXNzOlwiYW5zaS1ibHVlXCJ9LHtjb2xvcjpcIjE4NywgMCwgMTg3XCIsY2xhc3M6XCJhbnNpLW1hZ2VudGFcIn0se2NvbG9yOlwiMCwgMTg3LCAxODdcIixjbGFzczpcImFuc2ktY3lhblwifSx7Y29sb3I6XCIyNTUsMjU1LDI1NVwiLGNsYXNzOlwiYW5zaS13aGl0ZVwifV0sW3tjb2xvcjpcIjg1LCA4NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LWJsYWNrXCJ9LHtjb2xvcjpcIjI1NSwgODUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1yZWRcIn0se2NvbG9yOlwiMCwgMjU1LCAwXCIsY2xhc3M6XCJhbnNpLWJyaWdodC1ncmVlblwifSx7Y29sb3I6XCIyNTUsIDI1NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXllbGxvd1wifSx7Y29sb3I6XCI4NSwgODUsIDI1NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtYmx1ZVwifSx7Y29sb3I6XCIyNTUsIDg1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LW1hZ2VudGFcIn0se2NvbG9yOlwiODUsIDI1NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1jeWFuXCJ9LHtjb2xvcjpcIjI1NSwgMjU1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXdoaXRlXCJ9XV07dmFyIHM9ZnVuY3Rpb24oKXtyKEFuc2VyLG51bGwsW3trZXk6XCJlc2NhcGVGb3JIdG1sXCIsdmFsdWU6ZnVuY3Rpb24gZXNjYXBlRm9ySHRtbChlKXtyZXR1cm4obmV3IEFuc2VyKS5lc2NhcGVGb3JIdG1sKGUpfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbiBsaW5raWZ5KGUpe3JldHVybihuZXcgQW5zZXIpLmxpbmtpZnkoZSl9fSx7a2V5OlwiYW5zaVRvSHRtbFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb0h0bWwoZSxyKXtyZXR1cm4obmV3IEFuc2VyKS5hbnNpVG9IdG1sKGUscil9fSx7a2V5OlwiYW5zaVRvSnNvblwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb0pzb24oZSxyKXtyZXR1cm4obmV3IEFuc2VyKS5hbnNpVG9Kc29uKGUscil9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb1RleHQoZSl7cmV0dXJuKG5ldyBBbnNlcikuYW5zaVRvVGV4dChlKX19XSk7ZnVuY3Rpb24gQW5zZXIoKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxBbnNlcik7dGhpcy5mZz10aGlzLmJnPXRoaXMuZmdfdHJ1ZWNvbG9yPXRoaXMuYmdfdHJ1ZWNvbG9yPW51bGw7dGhpcy5icmlnaHQ9MH1yKEFuc2VyLFt7a2V5Olwic2V0dXBQYWxldHRlXCIsdmFsdWU6ZnVuY3Rpb24gc2V0dXBQYWxldHRlKCl7dGhpcy5QQUxFVFRFX0NPTE9SUz1bXTtmb3IodmFyIGU9MDtlPDI7KytlKXtmb3IodmFyIHI9MDtyPDg7KytyKXt0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2gobltlXVtyXS5jb2xvcil9fXZhciBzPVswLDk1LDEzNSwxNzUsMjE1LDI1NV07dmFyIGk9ZnVuY3Rpb24gZm9ybWF0KGUscixuKXtyZXR1cm4gc1tlXStcIiwgXCIrc1tyXStcIiwgXCIrc1tuXX07dmFyIHQ9dm9pZCAwLG89dm9pZCAwLGE9dm9pZCAwO2Zvcih2YXIgbD0wO2w8NjsrK2wpe2Zvcih2YXIgYz0wO2M8NjsrK2Mpe2Zvcih2YXIgdT0wO3U8NjsrK3Upe3RoaXMuUEFMRVRURV9DT0xPUlMucHVzaChpKGwsYyx1KSl9fX12YXIgZj04O2Zvcih2YXIgaD0wO2g8MjQ7KytoLGYrPTEwKXt0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2goaShmLGYsZikpfX19LHtrZXk6XCJlc2NhcGVGb3JIdG1sXCIsdmFsdWU6ZnVuY3Rpb24gZXNjYXBlRm9ySHRtbChlKXtyZXR1cm4gZS5yZXBsYWNlKC9bJjw+XS9nbSwoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PVwiJlwiP1wiJmFtcDtcIjplPT1cIjxcIj9cIiZsdDtcIjplPT1cIj5cIj9cIiZndDtcIjpcIlwifSkpfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbiBsaW5raWZ5KGUpe3JldHVybiBlLnJlcGxhY2UoLyhodHRwcz86XFwvXFwvW15cXHNdKykvZ20sKGZ1bmN0aW9uKGUpe3JldHVybic8YSBocmVmPVwiJytlKydcIj4nK2UrXCI8L2E+XCJ9KSl9fSx7a2V5OlwiYW5zaVRvSHRtbFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb0h0bWwoZSxyKXtyZXR1cm4gdGhpcy5wcm9jZXNzKGUscix0cnVlKX19LHtrZXk6XCJhbnNpVG9Kc29uXCIsdmFsdWU6ZnVuY3Rpb24gYW5zaVRvSnNvbihlLHIpe3I9cnx8e307ci5qc29uPXRydWU7ci5jbGVhckxpbmU9ZmFsc2U7cmV0dXJuIHRoaXMucHJvY2VzcyhlLHIsdHJ1ZSl9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb1RleHQoZSl7cmV0dXJuIHRoaXMucHJvY2VzcyhlLHt9LGZhbHNlKX19LHtrZXk6XCJwcm9jZXNzXCIsdmFsdWU6ZnVuY3Rpb24gcHJvY2VzcyhlLHIsbil7dmFyIHM9dGhpczt2YXIgaT10aGlzO3ZhciB0PWUuc3BsaXQoL1xcMDMzXFxbLyk7dmFyIG89dC5zaGlmdCgpO2lmKHI9PT11bmRlZmluZWR8fHI9PT1udWxsKXtyPXt9fXIuY2xlYXJMaW5lPS9cXHIvLnRlc3QoZSk7dmFyIGE9dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBzLnByb2Nlc3NDaHVuayhlLHIsbil9KSk7aWYociYmci5qc29uKXt2YXIgbD1pLnByb2Nlc3NDaHVua0pzb24oXCJcIik7bC5jb250ZW50PW87bC5jbGVhckxpbmU9ci5jbGVhckxpbmU7YS51bnNoaWZ0KGwpO2lmKHIucmVtb3ZlX2VtcHR5KXthPWEuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hZS5pc0VtcHR5KCl9KSl9cmV0dXJuIGF9ZWxzZXthLnVuc2hpZnQobyl9cmV0dXJuIGEuam9pbihcIlwiKX19LHtrZXk6XCJwcm9jZXNzQ2h1bmtKc29uXCIsdmFsdWU6ZnVuY3Rpb24gcHJvY2Vzc0NodW5rSnNvbihlLHIscyl7cj10eXBlb2Ygcj09XCJ1bmRlZmluZWRcIj97fTpyO3ZhciBpPXIudXNlX2NsYXNzZXM9dHlwZW9mIHIudXNlX2NsYXNzZXMhPVwidW5kZWZpbmVkXCImJnIudXNlX2NsYXNzZXM7dmFyIHQ9ci5rZXk9aT9cImNsYXNzXCI6XCJjb2xvclwiO3ZhciBvPXtjb250ZW50OmUsZmc6bnVsbCxiZzpudWxsLGZnX3RydWVjb2xvcjpudWxsLGJnX3RydWVjb2xvcjpudWxsLGNsZWFyTGluZTpyLmNsZWFyTGluZSxkZWNvcmF0aW9uOm51bGwsd2FzX3Byb2Nlc3NlZDpmYWxzZSxpc0VtcHR5OmZ1bmN0aW9uIGlzRW1wdHkoKXtyZXR1cm4hby5jb250ZW50fX07dmFyIGE9ZS5tYXRjaCgvXihbIVxceDNjLVxceDNmXSopKFtcXGQ7XSopKFtcXHgyMC1cXHgyY10qW1xceDQwLVxceDdlXSkoW1xcc1xcU10qKS9tKTtpZighYSlyZXR1cm4gbzt2YXIgbD1vLmNvbnRlbnQ9YVs0XTt2YXIgYz1hWzJdLnNwbGl0KFwiO1wiKTtpZihhWzFdIT09XCJcInx8YVszXSE9PVwibVwiKXtyZXR1cm4gb31pZighcyl7cmV0dXJuIG99dmFyIHU9dGhpczt1LmRlY29yYXRpb249bnVsbDt3aGlsZShjLmxlbmd0aD4wKXt2YXIgZj1jLnNoaWZ0KCk7dmFyIGg9cGFyc2VJbnQoZik7aWYoaXNOYU4oaCl8fGg9PT0wKXt1LmZnPXUuYmc9dS5kZWNvcmF0aW9uPW51bGx9ZWxzZSBpZihoPT09MSl7dS5kZWNvcmF0aW9uPVwiYm9sZFwifWVsc2UgaWYoaD09PTIpe3UuZGVjb3JhdGlvbj1cImRpbVwifWVsc2UgaWYoaD09Myl7dS5kZWNvcmF0aW9uPVwiaXRhbGljXCJ9ZWxzZSBpZihoPT00KXt1LmRlY29yYXRpb249XCJ1bmRlcmxpbmVcIn1lbHNlIGlmKGg9PTUpe3UuZGVjb3JhdGlvbj1cImJsaW5rXCJ9ZWxzZSBpZihoPT09Nyl7dS5kZWNvcmF0aW9uPVwicmV2ZXJzZVwifWVsc2UgaWYoaD09PTgpe3UuZGVjb3JhdGlvbj1cImhpZGRlblwifWVsc2UgaWYoaD09PTkpe3UuZGVjb3JhdGlvbj1cInN0cmlrZXRocm91Z2hcIn1lbHNlIGlmKGg9PTM5KXt1LmZnPW51bGx9ZWxzZSBpZihoPT00OSl7dS5iZz1udWxsfWVsc2UgaWYoaD49MzAmJmg8Mzgpe3UuZmc9blswXVtoJTEwXVt0XX1lbHNlIGlmKGg+PTkwJiZoPDk4KXt1LmZnPW5bMV1baCUxMF1bdF19ZWxzZSBpZihoPj00MCYmaDw0OCl7dS5iZz1uWzBdW2glMTBdW3RdfWVsc2UgaWYoaD49MTAwJiZoPDEwOCl7dS5iZz1uWzFdW2glMTBdW3RdfWVsc2UgaWYoaD09PTM4fHxoPT09NDgpe3ZhciBwPWg9PT0zODtpZihjLmxlbmd0aD49MSl7dmFyIGc9Yy5zaGlmdCgpO2lmKGc9PT1cIjVcIiYmYy5sZW5ndGg+PTEpe3ZhciB2PXBhcnNlSW50KGMuc2hpZnQoKSk7aWYodj49MCYmdjw9MjU1KXtpZighaSl7aWYoIXRoaXMuUEFMRVRURV9DT0xPUlMpe3Uuc2V0dXBQYWxldHRlKCl9aWYocCl7dS5mZz10aGlzLlBBTEVUVEVfQ09MT1JTW3ZdfWVsc2V7dS5iZz10aGlzLlBBTEVUVEVfQ09MT1JTW3ZdfX1lbHNle3ZhciBkPXY+PTE2P1wiYW5zaS1wYWxldHRlLVwiK3Y6blt2Pjc/MTowXVt2JThdW1wiY2xhc3NcIl07aWYocCl7dS5mZz1kfWVsc2V7dS5iZz1kfX19fWVsc2UgaWYoZz09PVwiMlwiJiZjLmxlbmd0aD49Myl7dmFyIF89cGFyc2VJbnQoYy5zaGlmdCgpKTt2YXIgYj1wYXJzZUludChjLnNoaWZ0KCkpO3ZhciB5PXBhcnNlSW50KGMuc2hpZnQoKSk7aWYoXz49MCYmXzw9MjU1JiZiPj0wJiZiPD0yNTUmJnk+PTAmJnk8PTI1NSl7dmFyIGs9XytcIiwgXCIrYitcIiwgXCIreTtpZighaSl7aWYocCl7dS5mZz1rfWVsc2V7dS5iZz1rfX1lbHNle2lmKHApe3UuZmc9XCJhbnNpLXRydWVjb2xvclwiO3UuZmdfdHJ1ZWNvbG9yPWt9ZWxzZXt1LmJnPVwiYW5zaS10cnVlY29sb3JcIjt1LmJnX3RydWVjb2xvcj1rfX19fX19fWlmKHUuZmc9PT1udWxsJiZ1LmJnPT09bnVsbCYmdS5kZWNvcmF0aW9uPT09bnVsbCl7cmV0dXJuIG99ZWxzZXt2YXIgVD1bXTt2YXIgbT1bXTt2YXIgdz17fTtvLmZnPXUuZmc7by5iZz11LmJnO28uZmdfdHJ1ZWNvbG9yPXUuZmdfdHJ1ZWNvbG9yO28uYmdfdHJ1ZWNvbG9yPXUuYmdfdHJ1ZWNvbG9yO28uZGVjb3JhdGlvbj11LmRlY29yYXRpb247by53YXNfcHJvY2Vzc2VkPXRydWU7cmV0dXJuIG99fX0se2tleTpcInByb2Nlc3NDaHVua1wiLHZhbHVlOmZ1bmN0aW9uIHByb2Nlc3NDaHVuayhlLHIsbil7dmFyIHM9dGhpczt2YXIgaT10aGlzO3I9cnx8e307dmFyIHQ9dGhpcy5wcm9jZXNzQ2h1bmtKc29uKGUscixuKTtpZihyLmpzb24pe3JldHVybiB0fWlmKHQuaXNFbXB0eSgpKXtyZXR1cm5cIlwifWlmKCF0Lndhc19wcm9jZXNzZWQpe3JldHVybiB0LmNvbnRlbnR9dmFyIG89ci51c2VfY2xhc3Nlczt2YXIgYT1bXTt2YXIgbD1bXTt2YXIgYz17fTt2YXIgdT1mdW5jdGlvbiByZW5kZXJfZGF0YShlKXt2YXIgcj1bXTt2YXIgbj12b2lkIDA7Zm9yKG4gaW4gZSl7aWYoZS5oYXNPd25Qcm9wZXJ0eShuKSl7ci5wdXNoKFwiZGF0YS1cIituKyc9XCInK3MuZXNjYXBlRm9ySHRtbChlW25dKSsnXCInKX19cmV0dXJuIHIubGVuZ3RoPjA/XCIgXCIrci5qb2luKFwiIFwiKTpcIlwifTtpZih0LmZnKXtpZihvKXtsLnB1c2godC5mZytcIi1mZ1wiKTtpZih0LmZnX3RydWVjb2xvciE9PW51bGwpe2NbXCJhbnNpLXRydWVjb2xvci1mZ1wiXT10LmZnX3RydWVjb2xvcjt0LmZnX3RydWVjb2xvcj1udWxsfX1lbHNle2EucHVzaChcImNvbG9yOnJnYihcIit0LmZnK1wiKVwiKX19aWYodC5iZyl7aWYobyl7bC5wdXNoKHQuYmcrXCItYmdcIik7aWYodC5iZ190cnVlY29sb3IhPT1udWxsKXtjW1wiYW5zaS10cnVlY29sb3ItYmdcIl09dC5iZ190cnVlY29sb3I7dC5iZ190cnVlY29sb3I9bnVsbH19ZWxzZXthLnB1c2goXCJiYWNrZ3JvdW5kLWNvbG9yOnJnYihcIit0LmJnK1wiKVwiKX19aWYodC5kZWNvcmF0aW9uKXtpZihvKXtsLnB1c2goXCJhbnNpLVwiK3QuZGVjb3JhdGlvbil9ZWxzZSBpZih0LmRlY29yYXRpb249PT1cImJvbGRcIil7YS5wdXNoKFwiZm9udC13ZWlnaHQ6Ym9sZFwiKX1lbHNlIGlmKHQuZGVjb3JhdGlvbj09PVwiZGltXCIpe2EucHVzaChcIm9wYWNpdHk6MC41XCIpfWVsc2UgaWYodC5kZWNvcmF0aW9uPT09XCJpdGFsaWNcIil7YS5wdXNoKFwiZm9udC1zdHlsZTppdGFsaWNcIil9ZWxzZSBpZih0LmRlY29yYXRpb249PT1cInJldmVyc2VcIil7YS5wdXNoKFwiZmlsdGVyOmludmVydCgxMDAlKVwiKX1lbHNlIGlmKHQuZGVjb3JhdGlvbj09PVwiaGlkZGVuXCIpe2EucHVzaChcInZpc2liaWxpdHk6aGlkZGVuXCIpfWVsc2UgaWYodC5kZWNvcmF0aW9uPT09XCJzdHJpa2V0aHJvdWdoXCIpe2EucHVzaChcInRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2hcIil9ZWxzZXthLnB1c2goXCJ0ZXh0LWRlY29yYXRpb246XCIrdC5kZWNvcmF0aW9uKX19aWYobyl7cmV0dXJuJzxzcGFuIGNsYXNzPVwiJytsLmpvaW4oXCIgXCIpKydcIicrdShjKStcIj5cIit0LmNvbnRlbnQrXCI8L3NwYW4+XCJ9ZWxzZXtyZXR1cm4nPHNwYW4gc3R5bGU9XCInK2Euam9pbihcIjtcIikrJ1wiJyt1KGMpK1wiPlwiK3QuY29udGVudCtcIjwvc3Bhbj5cIn19fV0pO3JldHVybiBBbnNlcn0oKTtlLmV4cG9ydHM9c319O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obil7dmFyIHM9cltuXTtpZihzIT09dW5kZWZpbmVkKXtyZXR1cm4gcy5leHBvcnRzfXZhciBpPXJbbl09e2V4cG9ydHM6e319O3ZhciB0PXRydWU7dHJ5e2Vbbl0oaSxpLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7dD1mYWxzZX1maW5hbGx5e2lmKHQpZGVsZXRlIHJbbl19cmV0dXJuIGkuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIG49X19uY2N3cGNrX3JlcXVpcmVfXygyMTEpO21vZHVsZS5leHBvcnRzPW59KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/anser/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/compiled/css.escape/css.escape.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/css.escape/css.escape.js ***!
|
||
\******************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{var e={553:function(e){(function(r,t){if(true){e.exports=t(r)}else{}})(typeof global!=\"undefined\"?global:this,(function(e){if(e.CSS&&e.CSS.escape){return e.CSS.escape}var cssEscape=function(e){if(arguments.length==0){throw new TypeError(\"`CSS.escape` requires an argument.\")}var r=String(e);var t=r.length;var n=-1;var a;var i=\"\";var u=r.charCodeAt(0);while(++n<t){a=r.charCodeAt(n);if(a==0){i+=\"�\";continue}if(a>=1&&a<=31||a==127||n==0&&a>=48&&a<=57||n==1&&a>=48&&a<=57&&u==45){i+=\"\\\\\"+a.toString(16)+\" \";continue}if(n==0&&t==1&&a==45){i+=\"\\\\\"+r.charAt(n);continue}if(a>=128||a==45||a==95||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122){i+=r.charAt(n);continue}i+=\"\\\\\"+r.charAt(n)}return i};if(!e.CSS){e.CSS={}}e.CSS.escape=cssEscape;return cssEscape}))}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var a=r[t]={exports:{}};var i=true;try{e[t].call(a.exports,a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[t]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(553);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nzcy5lc2NhcGUvY3NzLmVzY2FwZS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWdCLGVBQWUsR0FBRyxJQUFJLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQyxzREFBc0Qsd0JBQXdCLG9CQUFvQiwwQkFBMEIsd0JBQXdCLDBEQUEwRCxnQkFBZ0IsZUFBZSxTQUFTLE1BQU0sU0FBUyxzQkFBc0IsYUFBYSxrQkFBa0IsU0FBUyxPQUFPLFNBQVMsdUVBQXVFLDJCQUEyQixTQUFTLHNCQUFzQixvQkFBb0IsU0FBUyxvRUFBb0UsZUFBZSxTQUFTLG9CQUFvQixVQUFVLFdBQVcsU0FBUyx1QkFBdUIsaUJBQWlCLEtBQUssU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxcY3NzLmVzY2FwZVxcY3NzLmVzY2FwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9Pnt2YXIgZT17NTUzOmZ1bmN0aW9uKGUpeyhmdW5jdGlvbihyLHQpe2lmKHRydWUpe2UuZXhwb3J0cz10KHIpfWVsc2V7fX0pKHR5cGVvZiBnbG9iYWwhPVwidW5kZWZpbmVkXCI/Z2xvYmFsOnRoaXMsKGZ1bmN0aW9uKGUpe2lmKGUuQ1NTJiZlLkNTUy5lc2NhcGUpe3JldHVybiBlLkNTUy5lc2NhcGV9dmFyIGNzc0VzY2FwZT1mdW5jdGlvbihlKXtpZihhcmd1bWVudHMubGVuZ3RoPT0wKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiYENTUy5lc2NhcGVgIHJlcXVpcmVzIGFuIGFyZ3VtZW50LlwiKX12YXIgcj1TdHJpbmcoZSk7dmFyIHQ9ci5sZW5ndGg7dmFyIG49LTE7dmFyIGE7dmFyIGk9XCJcIjt2YXIgdT1yLmNoYXJDb2RlQXQoMCk7d2hpbGUoKytuPHQpe2E9ci5jaGFyQ29kZUF0KG4pO2lmKGE9PTApe2krPVwi77+9XCI7Y29udGludWV9aWYoYT49MSYmYTw9MzF8fGE9PTEyN3x8bj09MCYmYT49NDgmJmE8PTU3fHxuPT0xJiZhPj00OCYmYTw9NTcmJnU9PTQ1KXtpKz1cIlxcXFxcIithLnRvU3RyaW5nKDE2KStcIiBcIjtjb250aW51ZX1pZihuPT0wJiZ0PT0xJiZhPT00NSl7aSs9XCJcXFxcXCIrci5jaGFyQXQobik7Y29udGludWV9aWYoYT49MTI4fHxhPT00NXx8YT09OTV8fGE+PTQ4JiZhPD01N3x8YT49NjUmJmE8PTkwfHxhPj05NyYmYTw9MTIyKXtpKz1yLmNoYXJBdChuKTtjb250aW51ZX1pKz1cIlxcXFxcIityLmNoYXJBdChuKX1yZXR1cm4gaX07aWYoIWUuQ1NTKXtlLkNTUz17fX1lLkNTUy5lc2NhcGU9Y3NzRXNjYXBlO3JldHVybiBjc3NFc2NhcGV9KSl9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHQpe3ZhciBuPXJbdF07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgYT1yW3RdPXtleHBvcnRzOnt9fTt2YXIgaT10cnVlO3RyeXtlW3RdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2k9ZmFsc2V9ZmluYWxseXtpZihpKWRlbGV0ZSByW3RdfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oNTUzKTttb2R1bGUuZXhwb3J0cz10fSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/css.escape/css.escape.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/compiled/platform/platform.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/platform/platform.js ***!
|
||
\**************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{var e={541:function(e,i,t){e=t.nmd(e);\n/*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */(function(){\"use strict\";var t={function:true,object:true};var r=t[typeof window]&&window||this;var a=r;var n=t[typeof i]&&i;var o=t[\"object\"]&&e&&!e.nodeType&&e;var l=n&&o&&typeof global==\"object\"&&global;if(l&&(l.global===l||l.window===l||l.self===l)){r=l}var s=Math.pow(2,53)-1;var f=/\\bOpera/;var b=this;var c=Object.prototype;var p=c.hasOwnProperty;var u=c.toString;function capitalize(e){e=String(e);return e.charAt(0).toUpperCase()+e.slice(1)}function cleanupOS(e,i,t){var r={\"10.0\":\"10\",6.4:\"10 Technical Preview\",6.3:\"8.1\",6.2:\"8\",6.1:\"Server 2008 R2 / 7\",\"6.0\":\"Server 2008 / Vista\",5.2:\"Server 2003 / XP 64-bit\",5.1:\"XP\",5.01:\"2000 SP1\",\"5.0\":\"2000\",\"4.0\":\"NT\",\"4.90\":\"ME\"};if(i&&t&&/^Win/i.test(e)&&!/^Windows Phone /i.test(e)&&(r=r[/[\\d.]+$/.exec(e)])){e=\"Windows \"+r}e=String(e);if(i&&t){e=e.replace(RegExp(i,\"i\"),t)}e=format(e.replace(/ ce$/i,\" CE\").replace(/\\bhpw/i,\"web\").replace(/\\bMacintosh\\b/,\"Mac OS\").replace(/_PowerPC\\b/i,\" OS\").replace(/\\b(OS X) [^ \\d]+/i,\"$1\").replace(/\\bMac (OS X)\\b/,\"$1\").replace(/\\/(\\d)/,\" $1\").replace(/_/g,\".\").replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i,\"\").replace(/\\bx86\\.64\\b/gi,\"x86_64\").replace(/\\b(Windows Phone) OS\\b/,\"$1\").replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/,\"$1\").split(\" on \")[0]);return e}function each(e,i){var t=-1,r=e?e.length:0;if(typeof r==\"number\"&&r>-1&&r<=s){while(++t<r){i(e[t],t,e)}}else{forOwn(e,i)}}function format(e){e=trim(e);return/^(?:webOS|i(?:OS|P))/.test(e)?e:capitalize(e)}function forOwn(e,i){for(var t in e){if(p.call(e,t)){i(e[t],t,e)}}}function getClassOf(e){return e==null?capitalize(e):u.call(e).slice(8,-1)}function isHostType(e,i){var t=e!=null?typeof e[i]:\"number\";return!/^(?:boolean|number|string|undefined)$/.test(t)&&(t==\"object\"?!!e[i]:true)}function qualify(e){return String(e).replace(/([ -])(?!$)/g,\"$1?\")}function reduce(e,i){var t=null;each(e,(function(r,a){t=i(t,r,a,e)}));return t}function trim(e){return String(e).replace(/^ +| +$/g,\"\")}function parse(e){var i=r;var t=e&&typeof e==\"object\"&&getClassOf(e)!=\"String\";if(t){i=e;e=null}var n=i.navigator||{};var o=n.userAgent||\"\";e||(e=o);var l=t||b==a;var s=t?!!n.likeChrome:/\\bChrome\\b/.test(e)&&!/internal|\\n/i.test(u.toString());var c=\"Object\",p=t?c:\"ScriptBridgingProxyObject\",d=t?c:\"Environment\",S=t&&i.java?\"JavaPackage\":getClassOf(i.java),x=t?c:\"RuntimeObject\";var m=/\\bJava/.test(S)&&i.java;var g=m&&getClassOf(i.environment)==d;var h=m?\"a\":\"α\";var v=m?\"b\":\"β\";var O=i.document||{};var y=i.operamini||i.opera;var w=f.test(w=t&&y?y[\"[[Class]]\"]:getClassOf(y))?w:y=null;var M;var E=e;var P=[];var C=null;var k=e==o;var B=k&&y&&typeof y.version==\"function\"&&y.version();var W;var _=getLayout([{label:\"EdgeHTML\",pattern:\"Edge\"},\"Trident\",{label:\"WebKit\",pattern:\"AppleWebKit\"},\"iCab\",\"Presto\",\"NetFront\",\"Tasman\",\"KHTML\",\"Gecko\"]);var R=getName([\"Adobe AIR\",\"Arora\",\"Avant Browser\",\"Breach\",\"Camino\",\"Electron\",\"Epiphany\",\"Fennec\",\"Flock\",\"Galeon\",\"GreenBrowser\",\"iCab\",\"Iceweasel\",\"K-Meleon\",\"Konqueror\",\"Lunascape\",\"Maxthon\",{label:\"Microsoft Edge\",pattern:\"(?:Edge|Edg|EdgA|EdgiOS)\"},\"Midori\",\"Nook Browser\",\"PaleMoon\",\"PhantomJS\",\"Raven\",\"Rekonq\",\"RockMelt\",{label:\"Samsung Internet\",pattern:\"SamsungBrowser\"},\"SeaMonkey\",{label:\"Silk\",pattern:\"(?:Cloud9|Silk-Accelerated)\"},\"Sleipnir\",\"SlimBrowser\",{label:\"SRWare Iron\",pattern:\"Iron\"},\"Sunrise\",\"Swiftfox\",\"Vivaldi\",\"Waterfox\",\"WebPositive\",{label:\"Yandex Browser\",pattern:\"YaBrowser\"},{label:\"UC Browser\",pattern:\"UCBrowser\"},\"Opera Mini\",{label:\"Opera Mini\",pattern:\"OPiOS\"},\"Opera\",{label:\"Opera\",pattern:\"OPR\"},\"Chromium\",\"Chrome\",{label:\"Chrome\",pattern:\"(?:HeadlessChrome)\"},{label:\"Chrome Mobile\",pattern:\"(?:CriOS|CrMo)\"},{label:\"Firefox\",pattern:\"(?:Firefox|Minefield)\"},{label:\"Firefox for iOS\",pattern:\"FxiOS\"},{label:\"IE\",pattern:\"IEMobile\"},{label:\"IE\",pattern:\"MSIE\"},\"Safari\"]);var A=getProduct([{label:\"BlackBerry\",pattern:\"BB10\"},\"BlackBerry\",{label:\"Galaxy S\",pattern:\"GT-I9000\"},{label:\"Galaxy S2\",pattern:\"GT-I9100\"},{label:\"Galaxy S3\",pattern:\"GT-I9300\"},{label:\"Galaxy S4\",pattern:\"GT-I9500\"},{label:\"Galaxy S5\",pattern:\"SM-G900\"},{label:\"Galaxy S6\",pattern:\"SM-G920\"},{label:\"Galaxy S6 Edge\",pattern:\"SM-G925\"},{label:\"Galaxy S7\",pattern:\"SM-G930\"},{label:\"Galaxy S7 Edge\",pattern:\"SM-G935\"},\"Google TV\",\"Lumia\",\"iPad\",\"iPod\",\"iPhone\",\"Kindle\",{label:\"Kindle Fire\",pattern:\"(?:Cloud9|Silk-Accelerated)\"},\"Nexus\",\"Nook\",\"PlayBook\",\"PlayStation Vita\",\"PlayStation\",\"TouchPad\",\"Transformer\",{label:\"Wii U\",pattern:\"WiiU\"},\"Wii\",\"Xbox One\",{label:\"Xbox 360\",pattern:\"Xbox\"},\"Xoom\"]);var I=getManufacturer({Apple:{iPad:1,iPhone:1,iPod:1},Alcatel:{},Archos:{},Amazon:{Kindle:1,\"Kindle Fire\":1},Asus:{Transformer:1},\"Barnes & Noble\":{Nook:1},BlackBerry:{PlayBook:1},Google:{\"Google TV\":1,Nexus:1},HP:{TouchPad:1},HTC:{},Huawei:{},Lenovo:{},LG:{},Microsoft:{Xbox:1,\"Xbox One\":1},Motorola:{Xoom:1},Nintendo:{\"Wii U\":1,Wii:1},Nokia:{Lumia:1},Oppo:{},Samsung:{\"Galaxy S\":1,\"Galaxy S2\":1,\"Galaxy S3\":1,\"Galaxy S4\":1},Sony:{PlayStation:1,\"PlayStation Vita\":1},Xiaomi:{Mi:1,Redmi:1}});var T=getOS([\"Windows Phone\",\"KaiOS\",\"Android\",\"CentOS\",{label:\"Chrome OS\",pattern:\"CrOS\"},\"Debian\",{label:\"DragonFly BSD\",pattern:\"DragonFly\"},\"Fedora\",\"FreeBSD\",\"Gentoo\",\"Haiku\",\"Kubuntu\",\"Linux Mint\",\"OpenBSD\",\"Red Hat\",\"SuSE\",\"Ubuntu\",\"Xubuntu\",\"Cygwin\",\"Symbian OS\",\"hpwOS\",\"webOS \",\"webOS\",\"Tablet OS\",\"Tizen\",\"Linux\",\"Mac OS X\",\"Macintosh\",\"Mac\",\"Windows 98;\",\"Windows \"]);function getLayout(i){return reduce(i,(function(i,t){return i||RegExp(\"\\\\b\"+(t.pattern||qualify(t))+\"\\\\b\",\"i\").exec(e)&&(t.label||t)}))}function getManufacturer(i){return reduce(i,(function(i,t,r){return i||(t[A]||t[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(A)]||RegExp(\"\\\\b\"+qualify(r)+\"(?:\\\\b|\\\\w*\\\\d)\",\"i\").exec(e))&&r}))}function getName(i){return reduce(i,(function(i,t){return i||RegExp(\"\\\\b\"+(t.pattern||qualify(t))+\"\\\\b\",\"i\").exec(e)&&(t.label||t)}))}function getOS(i){return reduce(i,(function(i,t){var r=t.pattern||qualify(t);if(!i&&(i=RegExp(\"\\\\b\"+r+\"(?:/[\\\\d.]+|[ \\\\w.]*)\",\"i\").exec(e))){i=cleanupOS(i,r,t.label||t)}return i}))}function getProduct(i){return reduce(i,(function(i,t){var r=t.pattern||qualify(t);if(!i&&(i=RegExp(\"\\\\b\"+r+\" *\\\\d+[.\\\\w_]*\",\"i\").exec(e)||RegExp(\"\\\\b\"+r+\" *\\\\w+-[\\\\w]*\",\"i\").exec(e)||RegExp(\"\\\\b\"+r+\"(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)\",\"i\").exec(e))){if((i=String(t.label&&!RegExp(r,\"i\").test(t.label)?t.label:i).split(\"/\"))[1]&&!/[\\d.]+/.test(i[0])){i[0]+=\" \"+i[1]}t=t.label||t;i=format(i[0].replace(RegExp(r,\"i\"),t).replace(RegExp(\"; *(?:\"+t+\"[_-])?\",\"i\"),\" \").replace(RegExp(\"(\"+t+\")[-_.]?(\\\\w)\",\"i\"),\"$1 $2\"))}return i}))}function getVersion(i){return reduce(i,(function(i,t){return i||(RegExp(t+\"(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)\",\"i\").exec(e)||0)[1]||null}))}function toStringPlatform(){return this.description||\"\"}_&&(_=[_]);if(/\\bAndroid\\b/.test(T)&&!A&&(M=/\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(e))){A=trim(M[1]).replace(/^[a-z]{2}-[a-z]{2};\\s*/i,\"\")||null}if(I&&!A){A=getProduct([I])}else if(I&&A){A=A.replace(RegExp(\"^(\"+qualify(I)+\")[-_.\\\\s]\",\"i\"),I+\" \").replace(RegExp(\"^(\"+qualify(I)+\")[-_.]?(\\\\w)\",\"i\"),I+\" $2\")}if(M=/\\bGoogle TV\\b/.exec(A)){A=M[0]}if(/\\bSimulator\\b/i.test(e)){A=(A?A+\" \":\"\")+\"Simulator\"}if(R==\"Opera Mini\"&&/\\bOPiOS\\b/.test(e)){P.push(\"running in Turbo/Uncompressed mode\")}if(R==\"IE\"&&/\\blike iPhone OS\\b/.test(e)){M=parse(e.replace(/like iPhone OS/,\"\"));I=M.manufacturer;A=M.product}else if(/^iP/.test(A)){R||(R=\"Safari\");T=\"iOS\"+((M=/ OS ([\\d_]+)/i.exec(e))?\" \"+M[1].replace(/_/g,\".\"):\"\")}else if(R==\"Konqueror\"&&/^Linux\\b/i.test(T)){T=\"Kubuntu\"}else if(I&&I!=\"Google\"&&(/Chrome/.test(R)&&!/\\bMobile Safari\\b/i.test(e)||/\\bVita\\b/.test(A))||/\\bAndroid\\b/.test(T)&&/^Chrome/.test(R)&&/\\bVersion\\//i.test(e)){R=\"Android Browser\";T=/\\bAndroid\\b/.test(T)?T:\"Android\"}else if(R==\"Silk\"){if(!/\\bMobi/i.test(e)){T=\"Android\";P.unshift(\"desktop mode\")}if(/Accelerated *= *true/i.test(e)){P.unshift(\"accelerated\")}}else if(R==\"UC Browser\"&&/\\bUCWEB\\b/.test(e)){P.push(\"speed mode\")}else if(R==\"PaleMoon\"&&(M=/\\bFirefox\\/([\\d.]+)\\b/.exec(e))){P.push(\"identifying as Firefox \"+M[1])}else if(R==\"Firefox\"&&(M=/\\b(Mobile|Tablet|TV)\\b/i.exec(e))){T||(T=\"Firefox OS\");A||(A=M[1])}else if(!R||(M=!/\\bMinefield\\b/i.test(e)&&/\\b(?:Firefox|Safari)\\b/.exec(R))){if(R&&!A&&/[\\/,]|^[^(]+?\\)/.test(e.slice(e.indexOf(M+\"/\")+8))){R=null}if((M=A||I||T)&&(A||I||/\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(T))){R=/[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(T)?T:M)+\" Browser\"}}else if(R==\"Electron\"&&(M=(/\\bChrome\\/([\\d.]+)\\b/.exec(e)||0)[1])){P.push(\"Chromium \"+M)}if(!B){B=getVersion([\"(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)\",\"Version\",qualify(R),\"(?:Firefox|Minefield|NetFront)\"])}if(M=_==\"iCab\"&&parseFloat(B)>3&&\"WebKit\"||/\\bOpera\\b/.test(R)&&(/\\bOPR\\b/.test(e)?\"Blink\":\"Presto\")||/\\b(?:Midori|Nook|Safari)\\b/i.test(e)&&!/^(?:Trident|EdgeHTML)$/.test(_)&&\"WebKit\"||!_&&/\\bMSIE\\b/i.test(e)&&(T==\"Mac OS\"?\"Tasman\":\"Trident\")||_==\"WebKit\"&&/\\bPlayStation\\b(?! Vita\\b)/i.test(R)&&\"NetFront\"){_=[M]}if(R==\"IE\"&&(M=(/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(e)||0)[1])){R+=\" Mobile\";T=\"Windows Phone \"+(/\\+$/.test(M)?M:M+\".x\");P.unshift(\"desktop mode\")}else if(/\\bWPDesktop\\b/i.test(e)){R=\"IE Mobile\";T=\"Windows Phone 8.x\";P.unshift(\"desktop mode\");B||(B=(/\\brv:([\\d.]+)/.exec(e)||0)[1])}else if(R!=\"IE\"&&_==\"Trident\"&&(M=/\\brv:([\\d.]+)/.exec(e))){if(R){P.push(\"identifying as \"+R+(B?\" \"+B:\"\"))}R=\"IE\";B=M[1]}if(k){if(isHostType(i,\"global\")){if(m){M=m.lang.System;E=M.getProperty(\"os.arch\");T=T||M.getProperty(\"os.name\")+\" \"+M.getProperty(\"os.version\")}if(g){try{B=i.require(\"ringo/engine\").version.join(\".\");R=\"RingoJS\"}catch(e){if((M=i.system)&&M.global.system==i.system){R=\"Narwhal\";T||(T=M[0].os||null)}}if(!R){R=\"Rhino\"}}else if(typeof i.process==\"object\"&&!i.process.browser&&(M=i.process)){if(typeof M.versions==\"object\"){if(typeof M.versions.electron==\"string\"){P.push(\"Node \"+M.versions.node);R=\"Electron\";B=M.versions.electron}else if(typeof M.versions.nw==\"string\"){P.push(\"Chromium \"+B,\"Node \"+M.versions.node);R=\"NW.js\";B=M.versions.nw}}if(!R){R=\"Node.js\";E=M.arch;T=M.platform;B=/[\\d.]+/.exec(M.version);B=B?B[0]:null}}}else if(getClassOf(M=i.runtime)==p){R=\"Adobe AIR\";T=M.flash.system.Capabilities.os}else if(getClassOf(M=i.phantom)==x){R=\"PhantomJS\";B=(M=M.version||null)&&M.major+\".\"+M.minor+\".\"+M.patch}else if(typeof O.documentMode==\"number\"&&(M=/\\bTrident\\/(\\d+)/i.exec(e))){B=[B,O.documentMode];if((M=+M[1]+4)!=B[1]){P.push(\"IE \"+B[1]+\" mode\");_&&(_[1]=\"\");B[1]=M}B=R==\"IE\"?String(B[1].toFixed(1)):B[0]}else if(typeof O.documentMode==\"number\"&&/^(?:Chrome|Firefox)\\b/.test(R)){P.push(\"masking as \"+R+\" \"+B);R=\"IE\";B=\"11.0\";_=[\"Trident\"];T=\"Windows\"}T=T&&format(T)}if(B&&(M=/(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(B)||/(?:alpha|beta)(?: ?\\d)?/i.exec(e+\";\"+(k&&n.appMinorVersion))||/\\bMinefield\\b/i.test(e)&&\"a\")){C=/b/i.test(M)?\"beta\":\"alpha\";B=B.replace(RegExp(M+\"\\\\+?$\"),\"\")+(C==\"beta\"?v:h)+(/\\d+\\+?/.exec(M)||\"\")}if(R==\"Fennec\"||R==\"Firefox\"&&/\\b(?:Android|Firefox OS|KaiOS)\\b/.test(T)){R=\"Firefox Mobile\"}else if(R==\"Maxthon\"&&B){B=B.replace(/\\.[\\d.]+/,\".x\")}else if(/\\bXbox\\b/i.test(A)){if(A==\"Xbox 360\"){T=null}if(A==\"Xbox 360\"&&/\\bIEMobile\\b/.test(e)){P.unshift(\"mobile mode\")}}else if((/^(?:Chrome|IE|Opera)$/.test(R)||R&&!A&&!/Browser|Mobi/.test(R))&&(T==\"Windows CE\"||/Mobi/i.test(e))){R+=\" Mobile\"}else if(R==\"IE\"&&k){try{if(i.external===null){P.unshift(\"platform preview\")}}catch(e){P.unshift(\"embedded\")}}else if((/\\bBlackBerry\\b/.test(A)||/\\bBB10\\b/.test(e))&&(M=(RegExp(A.replace(/ +/g,\" *\")+\"/([.\\\\d]+)\",\"i\").exec(e)||0)[1]||B)){M=[M,/BB10/.test(e)];T=(M[1]?(A=null,I=\"BlackBerry\"):\"Device Software\")+\" \"+M[0];B=null}else if(this!=forOwn&&A!=\"Wii\"&&(k&&y||/Opera/.test(R)&&/\\b(?:MSIE|Firefox)\\b/i.test(e)||R==\"Firefox\"&&/\\bOS X (?:\\d+\\.){2,}/.test(T)||R==\"IE\"&&(T&&!/^Win/.test(T)&&B>5.5||/\\bWindows XP\\b/.test(T)&&B>8||B==8&&!/\\bTrident\\b/.test(e)))&&!f.test(M=parse.call(forOwn,e.replace(f,\"\")+\";\"))&&M.name){M=\"ing as \"+M.name+((M=M.version)?\" \"+M:\"\");if(f.test(R)){if(/\\bIE\\b/.test(M)&&T==\"Mac OS\"){T=null}M=\"identify\"+M}else{M=\"mask\"+M;if(w){R=format(w.replace(/([a-z])([A-Z])/g,\"$1 $2\"))}else{R=\"Opera\"}if(/\\bIE\\b/.test(M)){T=null}if(!k){B=null}}_=[\"Presto\"];P.push(M)}if(M=(/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(e)||0)[1]){M=[parseFloat(M.replace(/\\.(\\d)$/,\".0$1\")),M];if(R==\"Safari\"&&M[1].slice(-1)==\"+\"){R=\"WebKit Nightly\";C=\"alpha\";B=M[1].slice(0,-1)}else if(B==M[1]||B==(M[2]=(/\\bSafari\\/([\\d.]+\\+?)/i.exec(e)||0)[1])){B=null}M[1]=(/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(e)||0)[1];if(M[0]==537.36&&M[2]==537.36&&parseFloat(M[1])>=28&&_==\"WebKit\"){_=[\"Blink\"]}if(!k||!s&&!M[1]){_&&(_[1]=\"like Safari\");M=(M=M[0],M<400?1:M<500?2:M<526?3:M<533?4:M<534?\"4+\":M<535?5:M<537?6:M<538?7:M<601?8:M<602?9:M<604?10:M<606?11:M<608?12:\"12\")}else{_&&(_[1]=\"like Chrome\");M=M[1]||(M=M[0],M<530?1:M<532?2:M<532.05?3:M<533?4:M<534.03?5:M<534.07?6:M<534.1?7:M<534.13?8:M<534.16?9:M<534.24?10:M<534.3?11:M<535.01?12:M<535.02?\"13+\":M<535.07?15:M<535.11?16:M<535.19?17:M<536.05?18:M<536.1?19:M<537.01?20:M<537.11?\"21+\":M<537.13?23:M<537.18?24:M<537.24?25:M<537.36?26:_!=\"Blink\"?\"27\":\"28\")}_&&(_[1]+=\" \"+(M+=typeof M==\"number\"?\".x\":/[.+]/.test(M)?\"\":\"+\"));if(R==\"Safari\"&&(!B||parseInt(B)>45)){B=M}else if(R==\"Chrome\"&&/\\bHeadlessChrome/i.test(e)){P.unshift(\"headless\")}}if(R==\"Opera\"&&(M=/\\bzbov|zvav$/.exec(T))){R+=\" \";P.unshift(\"desktop mode\");if(M==\"zvav\"){R+=\"Mini\";B=null}else{R+=\"Mobile\"}T=T.replace(RegExp(\" *\"+M+\"$\"),\"\")}else if(R==\"Safari\"&&/\\bChrome\\b/.exec(_&&_[1])){P.unshift(\"desktop mode\");R=\"Chrome Mobile\";B=null;if(/\\bOS X\\b/.test(T)){I=\"Apple\";T=\"iOS 4.3+\"}else{T=null}}else if(/\\bSRWare Iron\\b/.test(R)&&!B){B=getVersion(\"Chrome\")}if(B&&B.indexOf(M=/[\\d.]+$/.exec(T))==0&&e.indexOf(\"/\"+M+\"-\")>-1){T=trim(T.replace(M,\"\"))}if(T&&T.indexOf(R)!=-1&&!RegExp(R+\" OS\").test(T)){T=T.replace(RegExp(\" *\"+qualify(R)+\" *\"),\"\")}if(_&&!/\\b(?:Avant|Nook)\\b/.test(R)&&(/Browser|Lunascape|Maxthon/.test(R)||R!=\"Safari\"&&/^iOS/.test(T)&&/\\bSafari\\b/.test(_[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(R)&&_[1])){(M=_[_.length-1])&&P.push(M)}if(P.length){P=[\"(\"+P.join(\"; \")+\")\"]}if(I&&A&&A.indexOf(I)<0){P.push(\"on \"+I)}if(A){P.push((/^on /.test(P[P.length-1])?\"\":\"on \")+A)}if(T){M=/ ([\\d.+]+)$/.exec(T);W=M&&T.charAt(T.length-M[0].length-1)==\"/\";T={architecture:32,family:M&&!W?T.replace(M[0],\"\"):T,version:M?M[1]:null,toString:function(){var e=this.version;return this.family+(e&&!W?\" \"+e:\"\")+(this.architecture==64?\" 64-bit\":\"\")}}}if((M=/\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(E))&&!/\\bi686\\b/i.test(E)){if(T){T.architecture=64;T.family=T.family.replace(RegExp(\" *\"+M),\"\")}if(R&&(/\\bWOW64\\b/i.test(e)||k&&/\\w(?:86|32)$/.test(n.cpuClass||n.platform)&&!/\\bWin64; x64\\b/i.test(e))){P.unshift(\"32-bit\")}}else if(T&&/^OS X/.test(T.family)&&R==\"Chrome\"&&parseFloat(B)>=39){T.architecture=64}e||(e=null);var F={};F.description=e;F.layout=_&&_[0];F.manufacturer=I;F.name=R;F.prerelease=C;F.product=A;F.ua=e;F.version=R&&B;F.os=T||{architecture:null,family:null,version:null,toString:function(){return\"null\"}};F.parse=parse;F.toString=toStringPlatform;if(F.version){P.unshift(B)}if(F.name){P.unshift(R)}if(T&&R&&!(T==String(T).split(\" \")[0]&&(T==R.split(\" \")[0]||A))){P.push(A?\"(\"+T+\")\":\"on \"+T)}if(P.length){F.description=P.join(\" \")}return F}var d=parse();if(n&&o){forOwn(d,(function(e,i){n[i]=e}))}else{r.platform=d}}).call(this)}};var i={};function __nccwpck_require__(t){var r=i[t];if(r!==undefined){return r.exports}var a=i[t]={id:t,loaded:false,exports:{}};var n=true;try{e[t].call(a.exports,a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete i[t]}a.loaded=true;return a.exports}(()=>{__nccwpck_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(541);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BsYXRmb3JtL3BsYXRmb3JtLmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxvQkFBb0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsYUFBYSxPQUFPLDJCQUEyQixxQ0FBcUMsUUFBUSxxQkFBcUIscUNBQXFDLDRDQUE0QyxnREFBZ0QsSUFBSSx1QkFBdUIsZ0JBQWdCLFdBQVcsdUJBQXVCLHVCQUF1QixpQkFBaUIsdUJBQXVCLFlBQVksNENBQTRDLDBCQUEwQixPQUFPLDBNQUEwTSxpRkFBaUYsZUFBZSxZQUFZLFNBQVMsNkJBQTZCLG1aQUFtWixTQUFTLG1CQUFtQix3QkFBd0IsbUNBQW1DLGFBQWEsYUFBYSxLQUFLLGFBQWEsbUJBQW1CLFVBQVUscURBQXFELHFCQUFxQixnQkFBZ0IsZ0JBQWdCLGNBQWMsdUJBQXVCLG1EQUFtRCx5QkFBeUIsbUNBQW1DLGtGQUFrRixvQkFBb0IsK0NBQStDLHFCQUFxQixXQUFXLHNCQUFzQixhQUFhLEdBQUcsU0FBUyxpQkFBaUIsd0NBQXdDLGtCQUFrQixRQUFRLHFEQUFxRCxNQUFNLElBQUksT0FBTyxzQkFBc0Isc0JBQXNCLFNBQVMsY0FBYyxnRkFBZ0Ysd0lBQXdJLCtCQUErQixzQ0FBc0MsZ0JBQWdCLGdCQUFnQixxQkFBcUIsMkJBQTJCLDJEQUEyRCxNQUFNLFFBQVEsU0FBUyxXQUFXLFdBQVcsc0RBQXNELE1BQU0sa0JBQWtCLGdDQUFnQyxZQUFZLHFDQUFxQyx1REFBdUQscU1BQXFNLDBEQUEwRCw2RUFBNkUsa0RBQWtELGNBQWMsbURBQW1ELDJCQUEyQixtQ0FBbUMsMERBQTBELDJDQUEyQyxFQUFFLHVDQUF1QyxlQUFlLG1DQUFtQyxVQUFVLDRCQUE0QixzQkFBc0IsNENBQTRDLEVBQUUsK0NBQStDLEVBQUUsZ0RBQWdELEVBQUUsd0NBQXdDLEVBQUUsOEJBQThCLEVBQUUsMEJBQTBCLFlBQVksbUJBQW1CLGtDQUFrQyxlQUFlLG9DQUFvQyxFQUFFLHFDQUFxQyxFQUFFLHFDQUFxQyxFQUFFLHFDQUFxQyxFQUFFLG9DQUFvQyxFQUFFLG9DQUFvQyxFQUFFLHlDQUF5QyxFQUFFLG9DQUFvQyxFQUFFLHlDQUF5QyxzREFBc0QsMERBQTBELHNGQUFzRiw2QkFBNkIsbUJBQW1CLGdDQUFnQyxVQUFVLHVCQUF1QixPQUFPLHVCQUF1QixXQUFXLFVBQVUsU0FBUyx5QkFBeUIsT0FBTyxjQUFjLG1CQUFtQixPQUFPLGFBQWEsV0FBVyxTQUFTLHNCQUFzQixLQUFLLFdBQVcsT0FBTyxVQUFVLFVBQVUsTUFBTSxZQUFZLG9CQUFvQixXQUFXLE9BQU8sV0FBVyxnQkFBZ0IsUUFBUSxRQUFRLFFBQVEsVUFBVSx1REFBdUQsT0FBTyxtQ0FBbUMsU0FBUyxjQUFjLEVBQUUseURBQXlELGlDQUFpQyxXQUFXLDBDQUEwQyw4TkFBOE4sZUFBZSxzQkFBc0IsK0JBQStCLGdGQUFnRixHQUFHLDRCQUE0QixpQ0FBaUMsa0hBQWtILEdBQUcsb0JBQW9CLCtCQUErQixnRkFBZ0YsR0FBRyxrQkFBa0IsK0JBQStCLDRCQUE0QixnRUFBZ0UsNEJBQTRCLFNBQVMsR0FBRyx1QkFBdUIsK0JBQStCLDRCQUE0QiwwSEFBMEgsaUNBQWlDLHFCQUFxQixvR0FBb0csZUFBZSxhQUFhLHlEQUF5RCw4RUFBOEUsU0FBUyxHQUFHLHVCQUF1QiwrQkFBK0IsdUVBQXVFLGtDQUFrQyxHQUFHLDRCQUE0Qiw0QkFBNEIsV0FBVyw4Q0FBOEMsR0FBRyw0Q0FBNEMsNkJBQTZCLEVBQUUsT0FBTyxHQUFHLGdCQUFnQixVQUFVLGtCQUFrQixjQUFjLHVIQUF1SCw4QkFBOEIsT0FBTyw2QkFBNkIsMkJBQTJCLHlDQUF5Qyw2Q0FBNkMsMENBQTBDLHdDQUF3QyxpQkFBaUIsWUFBWSx1QkFBdUIsZ0JBQWdCLG9FQUFvRSw2Q0FBNkMsWUFBWSxpS0FBaUssb0JBQW9CLG9DQUFvQyxtQkFBbUIsdUJBQXVCLFlBQVksMEJBQTBCLG9DQUFvQywwQkFBMEIsOENBQThDLHFCQUFxQiw0REFBNEQsdUNBQXVDLDZEQUE2RCxvQkFBb0IsWUFBWSw2RUFBNkUsK0RBQStELE9BQU8sOEVBQThFLGlFQUFpRSxtRUFBbUUsc0JBQXNCLE9BQU8sdU9BQXVPLHFUQUFxVCxNQUFNLG1CQUFtQiwwQ0FBMEMsYUFBYSw0Q0FBNEMsMEJBQTBCLGtDQUFrQyxjQUFjLHNCQUFzQiwwQkFBMEIsdUNBQXVDLDREQUE0RCxNQUFNLHlDQUF5QyxPQUFPLE9BQU8sTUFBTSwyQkFBMkIsTUFBTSxnQkFBZ0IsMkJBQTJCLDhEQUE4RCxNQUFNLElBQUksOENBQThDLFlBQVksU0FBUyw0Q0FBNEMsWUFBWSxzQkFBc0IsT0FBTyxXQUFXLHVFQUF1RSxnQ0FBZ0MseUNBQXlDLGdDQUFnQyxhQUFhLHNCQUFzQix3Q0FBd0MsOENBQThDLFVBQVUsaUJBQWlCLE9BQU8sWUFBWSxTQUFTLGFBQWEsMkJBQTJCLGdCQUFnQixvQ0FBb0MsY0FBYyxpQ0FBaUMsb0NBQW9DLGNBQWMsdURBQXVELDBFQUEwRSxxQkFBcUIsc0JBQXNCLDJCQUEyQixhQUFhLE9BQU8sdUNBQXVDLDBFQUEwRSw4QkFBOEIsT0FBTyxTQUFTLGNBQWMsWUFBWSxlQUFlLGdHQUFnRywyREFBMkQsOEJBQThCLHlFQUF5RSwwRUFBMEUsbUJBQW1CLHlCQUF5Qiw2QkFBNkIsNkJBQTZCLGtCQUFrQixPQUFPLDBDQUEwQywwQkFBMEIsK0dBQStHLGFBQWEsb0JBQW9CLElBQUksc0JBQXNCLCtCQUErQixTQUFTLHVCQUF1QiwrSEFBK0gscUJBQXFCLDREQUE0RCxPQUFPLHlIQUF5SCxHQUFHLDZKQUE2SixhQUFhLDRDQUE0QyxjQUFjLGtDQUFrQyxPQUFPLGVBQWUsS0FBSyxXQUFXLE1BQU0sK0NBQStDLEtBQUssVUFBVSxxQkFBcUIsT0FBTyxPQUFPLFFBQVEsYUFBYSxVQUFVLG9EQUFvRCw4Q0FBOEMscUNBQXFDLG1CQUFtQixVQUFVLG1CQUFtQixxRUFBcUUsT0FBTyx3REFBd0Qsa0VBQWtFLFlBQVksa0JBQWtCLHdCQUF3Qiw4SEFBOEgsS0FBSyx3QkFBd0IsdVRBQXVULGtFQUFrRSxzQ0FBc0MsSUFBSSxrREFBa0QsdUJBQXVCLDJDQUEyQyxPQUFPLDBCQUEwQixjQUFjLFVBQVUsT0FBTyxLQUFLLFlBQVksbUNBQW1DLGlEQUFpRCwwQkFBMEIsa0JBQWtCLE9BQU8sdUJBQXVCLFVBQVUsYUFBYSxLQUFLLFFBQVEsdUNBQXVDLHVCQUF1QixrRUFBa0Usd0JBQXdCLGtEQUFrRCw2Q0FBNkMsOFBBQThQLDZCQUE2QixhQUFhLGlCQUFpQixRQUFRLHlCQUF5QixnQkFBZ0IsTUFBTSxnREFBZ0QsTUFBTSx3QkFBd0IsMkNBQTJDLEdBQUcsMEZBQTBGLG1CQUFtQiwyRUFBMkUseUVBQXlFLE1BQU0sa0JBQWtCLDZDQUE2Qyx3RkFBd0Ysa0JBQWtCLHFCQUFxQixtRUFBbUUsa0JBQWtCLFlBQVksU0FBUyxnQkFBZ0IsaUJBQWlCLGlCQUFpQixTQUFTLGVBQWUsWUFBWSxPQUFPLGVBQWUsU0FBUywrREFBK0QsZUFBZSxjQUFjLDRCQUE0QixjQUFjLGFBQWEsV0FBVyxhQUFhLGlFQUFpRSw0QkFBNEIsYUFBYSwwQkFBMEIsU0FBUyxjQUFjLFNBQVMsd0JBQXdCLE9BQU8sR0FBRyxLQUFLLGNBQWMsZUFBZSxTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSw4QkFBOEIsV0FBVyxJQUFJLHFEQUFxRCxRQUFRLFFBQVEsaUJBQWlCLGNBQWMsaUJBQWlCLE1BQU0sNEJBQTRCLFdBQVcsNkJBQTZCLFVBQVUsSUFBSSxpRkFBaUYsK0JBQStCLGlCQUFpQiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcY29tcGlsZWRcXHBsYXRmb3JtXFxwbGF0Zm9ybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9Pnt2YXIgZT17NTQxOmZ1bmN0aW9uKGUsaSx0KXtlPXQubm1kKGUpO1xuLyohXG4gKiBQbGF0Zm9ybS5qcyB2MS4zLjZcbiAqIENvcHlyaWdodCAyMDE0LTIwMjAgQmVuamFtaW4gVGFuXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDEzIEpvaG4tRGF2aWQgRGFsdG9uXG4gKiBBdmFpbGFibGUgdW5kZXIgTUlUIGxpY2Vuc2VcbiAqLyhmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3ZhciB0PXtmdW5jdGlvbjp0cnVlLG9iamVjdDp0cnVlfTt2YXIgcj10W3R5cGVvZiB3aW5kb3ddJiZ3aW5kb3d8fHRoaXM7dmFyIGE9cjt2YXIgbj10W3R5cGVvZiBpXSYmaTt2YXIgbz10W1wib2JqZWN0XCJdJiZlJiYhZS5ub2RlVHlwZSYmZTt2YXIgbD1uJiZvJiZ0eXBlb2YgZ2xvYmFsPT1cIm9iamVjdFwiJiZnbG9iYWw7aWYobCYmKGwuZ2xvYmFsPT09bHx8bC53aW5kb3c9PT1sfHxsLnNlbGY9PT1sKSl7cj1sfXZhciBzPU1hdGgucG93KDIsNTMpLTE7dmFyIGY9L1xcYk9wZXJhLzt2YXIgYj10aGlzO3ZhciBjPU9iamVjdC5wcm90b3R5cGU7dmFyIHA9Yy5oYXNPd25Qcm9wZXJ0eTt2YXIgdT1jLnRvU3RyaW5nO2Z1bmN0aW9uIGNhcGl0YWxpemUoZSl7ZT1TdHJpbmcoZSk7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX1mdW5jdGlvbiBjbGVhbnVwT1MoZSxpLHQpe3ZhciByPXtcIjEwLjBcIjpcIjEwXCIsNi40OlwiMTAgVGVjaG5pY2FsIFByZXZpZXdcIiw2LjM6XCI4LjFcIiw2LjI6XCI4XCIsNi4xOlwiU2VydmVyIDIwMDggUjIgLyA3XCIsXCI2LjBcIjpcIlNlcnZlciAyMDA4IC8gVmlzdGFcIiw1LjI6XCJTZXJ2ZXIgMjAwMyAvIFhQIDY0LWJpdFwiLDUuMTpcIlhQXCIsNS4wMTpcIjIwMDAgU1AxXCIsXCI1LjBcIjpcIjIwMDBcIixcIjQuMFwiOlwiTlRcIixcIjQuOTBcIjpcIk1FXCJ9O2lmKGkmJnQmJi9eV2luL2kudGVzdChlKSYmIS9eV2luZG93cyBQaG9uZSAvaS50ZXN0KGUpJiYocj1yWy9bXFxkLl0rJC8uZXhlYyhlKV0pKXtlPVwiV2luZG93cyBcIityfWU9U3RyaW5nKGUpO2lmKGkmJnQpe2U9ZS5yZXBsYWNlKFJlZ0V4cChpLFwiaVwiKSx0KX1lPWZvcm1hdChlLnJlcGxhY2UoLyBjZSQvaSxcIiBDRVwiKS5yZXBsYWNlKC9cXGJocHcvaSxcIndlYlwiKS5yZXBsYWNlKC9cXGJNYWNpbnRvc2hcXGIvLFwiTWFjIE9TXCIpLnJlcGxhY2UoL19Qb3dlclBDXFxiL2ksXCIgT1NcIikucmVwbGFjZSgvXFxiKE9TIFgpIFteIFxcZF0rL2ksXCIkMVwiKS5yZXBsYWNlKC9cXGJNYWMgKE9TIFgpXFxiLyxcIiQxXCIpLnJlcGxhY2UoL1xcLyhcXGQpLyxcIiAkMVwiKS5yZXBsYWNlKC9fL2csXCIuXCIpLnJlcGxhY2UoLyg/OiBCZVBDfFsgLl0qZmNbIFxcZC5dKykkL2ksXCJcIikucmVwbGFjZSgvXFxieDg2XFwuNjRcXGIvZ2ksXCJ4ODZfNjRcIikucmVwbGFjZSgvXFxiKFdpbmRvd3MgUGhvbmUpIE9TXFxiLyxcIiQxXCIpLnJlcGxhY2UoL1xcYihDaHJvbWUgT1MgXFx3KykgW1xcZC5dK1xcYi8sXCIkMVwiKS5zcGxpdChcIiBvbiBcIilbMF0pO3JldHVybiBlfWZ1bmN0aW9uIGVhY2goZSxpKXt2YXIgdD0tMSxyPWU/ZS5sZW5ndGg6MDtpZih0eXBlb2Ygcj09XCJudW1iZXJcIiYmcj4tMSYmcjw9cyl7d2hpbGUoKyt0PHIpe2koZVt0XSx0LGUpfX1lbHNle2Zvck93bihlLGkpfX1mdW5jdGlvbiBmb3JtYXQoZSl7ZT10cmltKGUpO3JldHVybi9eKD86d2ViT1N8aSg/Ok9TfFApKS8udGVzdChlKT9lOmNhcGl0YWxpemUoZSl9ZnVuY3Rpb24gZm9yT3duKGUsaSl7Zm9yKHZhciB0IGluIGUpe2lmKHAuY2FsbChlLHQpKXtpKGVbdF0sdCxlKX19fWZ1bmN0aW9uIGdldENsYXNzT2YoZSl7cmV0dXJuIGU9PW51bGw/Y2FwaXRhbGl6ZShlKTp1LmNhbGwoZSkuc2xpY2UoOCwtMSl9ZnVuY3Rpb24gaXNIb3N0VHlwZShlLGkpe3ZhciB0PWUhPW51bGw/dHlwZW9mIGVbaV06XCJudW1iZXJcIjtyZXR1cm4hL14oPzpib29sZWFufG51bWJlcnxzdHJpbmd8dW5kZWZpbmVkKSQvLnRlc3QodCkmJih0PT1cIm9iamVjdFwiPyEhZVtpXTp0cnVlKX1mdW5jdGlvbiBxdWFsaWZ5KGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvKFsgLV0pKD8hJCkvZyxcIiQxP1wiKX1mdW5jdGlvbiByZWR1Y2UoZSxpKXt2YXIgdD1udWxsO2VhY2goZSwoZnVuY3Rpb24ocixhKXt0PWkodCxyLGEsZSl9KSk7cmV0dXJuIHR9ZnVuY3Rpb24gdHJpbShlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoL14gK3wgKyQvZyxcIlwiKX1mdW5jdGlvbiBwYXJzZShlKXt2YXIgaT1yO3ZhciB0PWUmJnR5cGVvZiBlPT1cIm9iamVjdFwiJiZnZXRDbGFzc09mKGUpIT1cIlN0cmluZ1wiO2lmKHQpe2k9ZTtlPW51bGx9dmFyIG49aS5uYXZpZ2F0b3J8fHt9O3ZhciBvPW4udXNlckFnZW50fHxcIlwiO2V8fChlPW8pO3ZhciBsPXR8fGI9PWE7dmFyIHM9dD8hIW4ubGlrZUNocm9tZTovXFxiQ2hyb21lXFxiLy50ZXN0KGUpJiYhL2ludGVybmFsfFxcbi9pLnRlc3QodS50b1N0cmluZygpKTt2YXIgYz1cIk9iamVjdFwiLHA9dD9jOlwiU2NyaXB0QnJpZGdpbmdQcm94eU9iamVjdFwiLGQ9dD9jOlwiRW52aXJvbm1lbnRcIixTPXQmJmkuamF2YT9cIkphdmFQYWNrYWdlXCI6Z2V0Q2xhc3NPZihpLmphdmEpLHg9dD9jOlwiUnVudGltZU9iamVjdFwiO3ZhciBtPS9cXGJKYXZhLy50ZXN0KFMpJiZpLmphdmE7dmFyIGc9bSYmZ2V0Q2xhc3NPZihpLmVudmlyb25tZW50KT09ZDt2YXIgaD1tP1wiYVwiOlwizrFcIjt2YXIgdj1tP1wiYlwiOlwizrJcIjt2YXIgTz1pLmRvY3VtZW50fHx7fTt2YXIgeT1pLm9wZXJhbWluaXx8aS5vcGVyYTt2YXIgdz1mLnRlc3Qodz10JiZ5P3lbXCJbW0NsYXNzXV1cIl06Z2V0Q2xhc3NPZih5KSk/dzp5PW51bGw7dmFyIE07dmFyIEU9ZTt2YXIgUD1bXTt2YXIgQz1udWxsO3ZhciBrPWU9PW87dmFyIEI9ayYmeSYmdHlwZW9mIHkudmVyc2lvbj09XCJmdW5jdGlvblwiJiZ5LnZlcnNpb24oKTt2YXIgVzt2YXIgXz1nZXRMYXlvdXQoW3tsYWJlbDpcIkVkZ2VIVE1MXCIscGF0dGVybjpcIkVkZ2VcIn0sXCJUcmlkZW50XCIse2xhYmVsOlwiV2ViS2l0XCIscGF0dGVybjpcIkFwcGxlV2ViS2l0XCJ9LFwiaUNhYlwiLFwiUHJlc3RvXCIsXCJOZXRGcm9udFwiLFwiVGFzbWFuXCIsXCJLSFRNTFwiLFwiR2Vja29cIl0pO3ZhciBSPWdldE5hbWUoW1wiQWRvYmUgQUlSXCIsXCJBcm9yYVwiLFwiQXZhbnQgQnJvd3NlclwiLFwiQnJlYWNoXCIsXCJDYW1pbm9cIixcIkVsZWN0cm9uXCIsXCJFcGlwaGFueVwiLFwiRmVubmVjXCIsXCJGbG9ja1wiLFwiR2FsZW9uXCIsXCJHcmVlbkJyb3dzZXJcIixcImlDYWJcIixcIkljZXdlYXNlbFwiLFwiSy1NZWxlb25cIixcIktvbnF1ZXJvclwiLFwiTHVuYXNjYXBlXCIsXCJNYXh0aG9uXCIse2xhYmVsOlwiTWljcm9zb2Z0IEVkZ2VcIixwYXR0ZXJuOlwiKD86RWRnZXxFZGd8RWRnQXxFZGdpT1MpXCJ9LFwiTWlkb3JpXCIsXCJOb29rIEJyb3dzZXJcIixcIlBhbGVNb29uXCIsXCJQaGFudG9tSlNcIixcIlJhdmVuXCIsXCJSZWtvbnFcIixcIlJvY2tNZWx0XCIse2xhYmVsOlwiU2Ftc3VuZyBJbnRlcm5ldFwiLHBhdHRlcm46XCJTYW1zdW5nQnJvd3NlclwifSxcIlNlYU1vbmtleVwiLHtsYWJlbDpcIlNpbGtcIixwYXR0ZXJuOlwiKD86Q2xvdWQ5fFNpbGstQWNjZWxlcmF0ZWQpXCJ9LFwiU2xlaXBuaXJcIixcIlNsaW1Ccm93c2VyXCIse2xhYmVsOlwiU1JXYXJlIElyb25cIixwYXR0ZXJuOlwiSXJvblwifSxcIlN1bnJpc2VcIixcIlN3aWZ0Zm94XCIsXCJWaXZhbGRpXCIsXCJXYXRlcmZveFwiLFwiV2ViUG9zaXRpdmVcIix7bGFiZWw6XCJZYW5kZXggQnJvd3NlclwiLHBhdHRlcm46XCJZYUJyb3dzZXJcIn0se2xhYmVsOlwiVUMgQnJvd3NlclwiLHBhdHRlcm46XCJVQ0Jyb3dzZXJcIn0sXCJPcGVyYSBNaW5pXCIse2xhYmVsOlwiT3BlcmEgTWluaVwiLHBhdHRlcm46XCJPUGlPU1wifSxcIk9wZXJhXCIse2xhYmVsOlwiT3BlcmFcIixwYXR0ZXJuOlwiT1BSXCJ9LFwiQ2hyb21pdW1cIixcIkNocm9tZVwiLHtsYWJlbDpcIkNocm9tZVwiLHBhdHRlcm46XCIoPzpIZWFkbGVzc0Nocm9tZSlcIn0se2xhYmVsOlwiQ2hyb21lIE1vYmlsZVwiLHBhdHRlcm46XCIoPzpDcmlPU3xDck1vKVwifSx7bGFiZWw6XCJGaXJlZm94XCIscGF0dGVybjpcIig/OkZpcmVmb3h8TWluZWZpZWxkKVwifSx7bGFiZWw6XCJGaXJlZm94IGZvciBpT1NcIixwYXR0ZXJuOlwiRnhpT1NcIn0se2xhYmVsOlwiSUVcIixwYXR0ZXJuOlwiSUVNb2JpbGVcIn0se2xhYmVsOlwiSUVcIixwYXR0ZXJuOlwiTVNJRVwifSxcIlNhZmFyaVwiXSk7dmFyIEE9Z2V0UHJvZHVjdChbe2xhYmVsOlwiQmxhY2tCZXJyeVwiLHBhdHRlcm46XCJCQjEwXCJ9LFwiQmxhY2tCZXJyeVwiLHtsYWJlbDpcIkdhbGF4eSBTXCIscGF0dGVybjpcIkdULUk5MDAwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTMlwiLHBhdHRlcm46XCJHVC1JOTEwMFwifSx7bGFiZWw6XCJHYWxheHkgUzNcIixwYXR0ZXJuOlwiR1QtSTkzMDBcIn0se2xhYmVsOlwiR2FsYXh5IFM0XCIscGF0dGVybjpcIkdULUk5NTAwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTNVwiLHBhdHRlcm46XCJTTS1HOTAwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTNlwiLHBhdHRlcm46XCJTTS1HOTIwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTNiBFZGdlXCIscGF0dGVybjpcIlNNLUc5MjVcIn0se2xhYmVsOlwiR2FsYXh5IFM3XCIscGF0dGVybjpcIlNNLUc5MzBcIn0se2xhYmVsOlwiR2FsYXh5IFM3IEVkZ2VcIixwYXR0ZXJuOlwiU00tRzkzNVwifSxcIkdvb2dsZSBUVlwiLFwiTHVtaWFcIixcImlQYWRcIixcImlQb2RcIixcImlQaG9uZVwiLFwiS2luZGxlXCIse2xhYmVsOlwiS2luZGxlIEZpcmVcIixwYXR0ZXJuOlwiKD86Q2xvdWQ5fFNpbGstQWNjZWxlcmF0ZWQpXCJ9LFwiTmV4dXNcIixcIk5vb2tcIixcIlBsYXlCb29rXCIsXCJQbGF5U3RhdGlvbiBWaXRhXCIsXCJQbGF5U3RhdGlvblwiLFwiVG91Y2hQYWRcIixcIlRyYW5zZm9ybWVyXCIse2xhYmVsOlwiV2lpIFVcIixwYXR0ZXJuOlwiV2lpVVwifSxcIldpaVwiLFwiWGJveCBPbmVcIix7bGFiZWw6XCJYYm94IDM2MFwiLHBhdHRlcm46XCJYYm94XCJ9LFwiWG9vbVwiXSk7dmFyIEk9Z2V0TWFudWZhY3R1cmVyKHtBcHBsZTp7aVBhZDoxLGlQaG9uZToxLGlQb2Q6MX0sQWxjYXRlbDp7fSxBcmNob3M6e30sQW1hem9uOntLaW5kbGU6MSxcIktpbmRsZSBGaXJlXCI6MX0sQXN1czp7VHJhbnNmb3JtZXI6MX0sXCJCYXJuZXMgJiBOb2JsZVwiOntOb29rOjF9LEJsYWNrQmVycnk6e1BsYXlCb29rOjF9LEdvb2dsZTp7XCJHb29nbGUgVFZcIjoxLE5leHVzOjF9LEhQOntUb3VjaFBhZDoxfSxIVEM6e30sSHVhd2VpOnt9LExlbm92bzp7fSxMRzp7fSxNaWNyb3NvZnQ6e1hib3g6MSxcIlhib3ggT25lXCI6MX0sTW90b3JvbGE6e1hvb206MX0sTmludGVuZG86e1wiV2lpIFVcIjoxLFdpaToxfSxOb2tpYTp7THVtaWE6MX0sT3Bwbzp7fSxTYW1zdW5nOntcIkdhbGF4eSBTXCI6MSxcIkdhbGF4eSBTMlwiOjEsXCJHYWxheHkgUzNcIjoxLFwiR2FsYXh5IFM0XCI6MX0sU29ueTp7UGxheVN0YXRpb246MSxcIlBsYXlTdGF0aW9uIFZpdGFcIjoxfSxYaWFvbWk6e01pOjEsUmVkbWk6MX19KTt2YXIgVD1nZXRPUyhbXCJXaW5kb3dzIFBob25lXCIsXCJLYWlPU1wiLFwiQW5kcm9pZFwiLFwiQ2VudE9TXCIse2xhYmVsOlwiQ2hyb21lIE9TXCIscGF0dGVybjpcIkNyT1NcIn0sXCJEZWJpYW5cIix7bGFiZWw6XCJEcmFnb25GbHkgQlNEXCIscGF0dGVybjpcIkRyYWdvbkZseVwifSxcIkZlZG9yYVwiLFwiRnJlZUJTRFwiLFwiR2VudG9vXCIsXCJIYWlrdVwiLFwiS3VidW50dVwiLFwiTGludXggTWludFwiLFwiT3BlbkJTRFwiLFwiUmVkIEhhdFwiLFwiU3VTRVwiLFwiVWJ1bnR1XCIsXCJYdWJ1bnR1XCIsXCJDeWd3aW5cIixcIlN5bWJpYW4gT1NcIixcImhwd09TXCIsXCJ3ZWJPUyBcIixcIndlYk9TXCIsXCJUYWJsZXQgT1NcIixcIlRpemVuXCIsXCJMaW51eFwiLFwiTWFjIE9TIFhcIixcIk1hY2ludG9zaFwiLFwiTWFjXCIsXCJXaW5kb3dzIDk4O1wiLFwiV2luZG93cyBcIl0pO2Z1bmN0aW9uIGdldExheW91dChpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCl7cmV0dXJuIGl8fFJlZ0V4cChcIlxcXFxiXCIrKHQucGF0dGVybnx8cXVhbGlmeSh0KSkrXCJcXFxcYlwiLFwiaVwiKS5leGVjKGUpJiYodC5sYWJlbHx8dCl9KSl9ZnVuY3Rpb24gZ2V0TWFudWZhY3R1cmVyKGkpe3JldHVybiByZWR1Y2UoaSwoZnVuY3Rpb24oaSx0LHIpe3JldHVybiBpfHwodFtBXXx8dFsvXlthLXpdKyg/OiArW2Etel0rXFxiKSovaS5leGVjKEEpXXx8UmVnRXhwKFwiXFxcXGJcIitxdWFsaWZ5KHIpK1wiKD86XFxcXGJ8XFxcXHcqXFxcXGQpXCIsXCJpXCIpLmV4ZWMoZSkpJiZyfSkpfWZ1bmN0aW9uIGdldE5hbWUoaSl7cmV0dXJuIHJlZHVjZShpLChmdW5jdGlvbihpLHQpe3JldHVybiBpfHxSZWdFeHAoXCJcXFxcYlwiKyh0LnBhdHRlcm58fHF1YWxpZnkodCkpK1wiXFxcXGJcIixcImlcIikuZXhlYyhlKSYmKHQubGFiZWx8fHQpfSkpfWZ1bmN0aW9uIGdldE9TKGkpe3JldHVybiByZWR1Y2UoaSwoZnVuY3Rpb24oaSx0KXt2YXIgcj10LnBhdHRlcm58fHF1YWxpZnkodCk7aWYoIWkmJihpPVJlZ0V4cChcIlxcXFxiXCIrcitcIig/Oi9bXFxcXGQuXSt8WyBcXFxcdy5dKilcIixcImlcIikuZXhlYyhlKSkpe2k9Y2xlYW51cE9TKGkscix0LmxhYmVsfHx0KX1yZXR1cm4gaX0pKX1mdW5jdGlvbiBnZXRQcm9kdWN0KGkpe3JldHVybiByZWR1Y2UoaSwoZnVuY3Rpb24oaSx0KXt2YXIgcj10LnBhdHRlcm58fHF1YWxpZnkodCk7aWYoIWkmJihpPVJlZ0V4cChcIlxcXFxiXCIrcitcIiAqXFxcXGQrWy5cXFxcd19dKlwiLFwiaVwiKS5leGVjKGUpfHxSZWdFeHAoXCJcXFxcYlwiK3IrXCIgKlxcXFx3Ky1bXFxcXHddKlwiLFwiaVwiKS5leGVjKGUpfHxSZWdFeHAoXCJcXFxcYlwiK3IrXCIoPzo7ICooPzpbYS16XStbXy1dKT9bYS16XStcXFxcZCt8W14gKCk7LV0qKVwiLFwiaVwiKS5leGVjKGUpKSl7aWYoKGk9U3RyaW5nKHQubGFiZWwmJiFSZWdFeHAocixcImlcIikudGVzdCh0LmxhYmVsKT90LmxhYmVsOmkpLnNwbGl0KFwiL1wiKSlbMV0mJiEvW1xcZC5dKy8udGVzdChpWzBdKSl7aVswXSs9XCIgXCIraVsxXX10PXQubGFiZWx8fHQ7aT1mb3JtYXQoaVswXS5yZXBsYWNlKFJlZ0V4cChyLFwiaVwiKSx0KS5yZXBsYWNlKFJlZ0V4cChcIjsgKig/OlwiK3QrXCJbXy1dKT9cIixcImlcIiksXCIgXCIpLnJlcGxhY2UoUmVnRXhwKFwiKFwiK3QrXCIpWy1fLl0/KFxcXFx3KVwiLFwiaVwiKSxcIiQxICQyXCIpKX1yZXR1cm4gaX0pKX1mdW5jdGlvbiBnZXRWZXJzaW9uKGkpe3JldHVybiByZWR1Y2UoaSwoZnVuY3Rpb24oaSx0KXtyZXR1cm4gaXx8KFJlZ0V4cCh0K1wiKD86LVtcXFxcZC5dKy98KD86IGZvciBbXFxcXHctXSspP1sgLy1dKShbXFxcXGQuXStbXiAoKTsvXy1dKilcIixcImlcIikuZXhlYyhlKXx8MClbMV18fG51bGx9KSl9ZnVuY3Rpb24gdG9TdHJpbmdQbGF0Zm9ybSgpe3JldHVybiB0aGlzLmRlc2NyaXB0aW9ufHxcIlwifV8mJihfPVtfXSk7aWYoL1xcYkFuZHJvaWRcXGIvLnRlc3QoVCkmJiFBJiYoTT0vXFxiQW5kcm9pZFteO10qOyguKj8pKD86QnVpbGR8XFwpIEFwcGxlV2ViS2l0KVxcYi9pLmV4ZWMoZSkpKXtBPXRyaW0oTVsxXSkucmVwbGFjZSgvXlthLXpdezJ9LVthLXpdezJ9O1xccyovaSxcIlwiKXx8bnVsbH1pZihJJiYhQSl7QT1nZXRQcm9kdWN0KFtJXSl9ZWxzZSBpZihJJiZBKXtBPUEucmVwbGFjZShSZWdFeHAoXCJeKFwiK3F1YWxpZnkoSSkrXCIpWy1fLlxcXFxzXVwiLFwiaVwiKSxJK1wiIFwiKS5yZXBsYWNlKFJlZ0V4cChcIl4oXCIrcXVhbGlmeShJKStcIilbLV8uXT8oXFxcXHcpXCIsXCJpXCIpLEkrXCIgJDJcIil9aWYoTT0vXFxiR29vZ2xlIFRWXFxiLy5leGVjKEEpKXtBPU1bMF19aWYoL1xcYlNpbXVsYXRvclxcYi9pLnRlc3QoZSkpe0E9KEE/QStcIiBcIjpcIlwiKStcIlNpbXVsYXRvclwifWlmKFI9PVwiT3BlcmEgTWluaVwiJiYvXFxiT1BpT1NcXGIvLnRlc3QoZSkpe1AucHVzaChcInJ1bm5pbmcgaW4gVHVyYm8vVW5jb21wcmVzc2VkIG1vZGVcIil9aWYoUj09XCJJRVwiJiYvXFxibGlrZSBpUGhvbmUgT1NcXGIvLnRlc3QoZSkpe009cGFyc2UoZS5yZXBsYWNlKC9saWtlIGlQaG9uZSBPUy8sXCJcIikpO0k9TS5tYW51ZmFjdHVyZXI7QT1NLnByb2R1Y3R9ZWxzZSBpZigvXmlQLy50ZXN0KEEpKXtSfHwoUj1cIlNhZmFyaVwiKTtUPVwiaU9TXCIrKChNPS8gT1MgKFtcXGRfXSspL2kuZXhlYyhlKSk/XCIgXCIrTVsxXS5yZXBsYWNlKC9fL2csXCIuXCIpOlwiXCIpfWVsc2UgaWYoUj09XCJLb25xdWVyb3JcIiYmL15MaW51eFxcYi9pLnRlc3QoVCkpe1Q9XCJLdWJ1bnR1XCJ9ZWxzZSBpZihJJiZJIT1cIkdvb2dsZVwiJiYoL0Nocm9tZS8udGVzdChSKSYmIS9cXGJNb2JpbGUgU2FmYXJpXFxiL2kudGVzdChlKXx8L1xcYlZpdGFcXGIvLnRlc3QoQSkpfHwvXFxiQW5kcm9pZFxcYi8udGVzdChUKSYmL15DaHJvbWUvLnRlc3QoUikmJi9cXGJWZXJzaW9uXFwvL2kudGVzdChlKSl7Uj1cIkFuZHJvaWQgQnJvd3NlclwiO1Q9L1xcYkFuZHJvaWRcXGIvLnRlc3QoVCk/VDpcIkFuZHJvaWRcIn1lbHNlIGlmKFI9PVwiU2lsa1wiKXtpZighL1xcYk1vYmkvaS50ZXN0KGUpKXtUPVwiQW5kcm9pZFwiO1AudW5zaGlmdChcImRlc2t0b3AgbW9kZVwiKX1pZigvQWNjZWxlcmF0ZWQgKj0gKnRydWUvaS50ZXN0KGUpKXtQLnVuc2hpZnQoXCJhY2NlbGVyYXRlZFwiKX19ZWxzZSBpZihSPT1cIlVDIEJyb3dzZXJcIiYmL1xcYlVDV0VCXFxiLy50ZXN0KGUpKXtQLnB1c2goXCJzcGVlZCBtb2RlXCIpfWVsc2UgaWYoUj09XCJQYWxlTW9vblwiJiYoTT0vXFxiRmlyZWZveFxcLyhbXFxkLl0rKVxcYi8uZXhlYyhlKSkpe1AucHVzaChcImlkZW50aWZ5aW5nIGFzIEZpcmVmb3ggXCIrTVsxXSl9ZWxzZSBpZihSPT1cIkZpcmVmb3hcIiYmKE09L1xcYihNb2JpbGV8VGFibGV0fFRWKVxcYi9pLmV4ZWMoZSkpKXtUfHwoVD1cIkZpcmVmb3ggT1NcIik7QXx8KEE9TVsxXSl9ZWxzZSBpZighUnx8KE09IS9cXGJNaW5lZmllbGRcXGIvaS50ZXN0KGUpJiYvXFxiKD86RmlyZWZveHxTYWZhcmkpXFxiLy5leGVjKFIpKSl7aWYoUiYmIUEmJi9bXFwvLF18XlteKF0rP1xcKS8udGVzdChlLnNsaWNlKGUuaW5kZXhPZihNK1wiL1wiKSs4KSkpe1I9bnVsbH1pZigoTT1BfHxJfHxUKSYmKEF8fEl8fC9cXGIoPzpBbmRyb2lkfFN5bWJpYW4gT1N8VGFibGV0IE9TfHdlYk9TKVxcYi8udGVzdChUKSkpe1I9L1thLXpdKyg/OiBIYXQpPy9pLmV4ZWMoL1xcYkFuZHJvaWRcXGIvLnRlc3QoVCk/VDpNKStcIiBCcm93c2VyXCJ9fWVsc2UgaWYoUj09XCJFbGVjdHJvblwiJiYoTT0oL1xcYkNocm9tZVxcLyhbXFxkLl0rKVxcYi8uZXhlYyhlKXx8MClbMV0pKXtQLnB1c2goXCJDaHJvbWl1bSBcIitNKX1pZighQil7Qj1nZXRWZXJzaW9uKFtcIig/OkNsb3VkOXxDcmlPU3xDck1vfEVkZ2V8RWRnfEVkZ0F8RWRnaU9TfEZ4aU9TfEhlYWRsZXNzQ2hyb21lfElFTW9iaWxlfElyb258T3BlcmEgP01pbml8T1BpT1N8T1BSfFJhdmVufFNhbXN1bmdCcm93c2VyfFNpbGsoPyEvW1xcXFxkLl0rJCl8VUNCcm93c2VyfFlhQnJvd3NlcilcIixcIlZlcnNpb25cIixxdWFsaWZ5KFIpLFwiKD86RmlyZWZveHxNaW5lZmllbGR8TmV0RnJvbnQpXCJdKX1pZihNPV89PVwiaUNhYlwiJiZwYXJzZUZsb2F0KEIpPjMmJlwiV2ViS2l0XCJ8fC9cXGJPcGVyYVxcYi8udGVzdChSKSYmKC9cXGJPUFJcXGIvLnRlc3QoZSk/XCJCbGlua1wiOlwiUHJlc3RvXCIpfHwvXFxiKD86TWlkb3JpfE5vb2t8U2FmYXJpKVxcYi9pLnRlc3QoZSkmJiEvXig/OlRyaWRlbnR8RWRnZUhUTUwpJC8udGVzdChfKSYmXCJXZWJLaXRcInx8IV8mJi9cXGJNU0lFXFxiL2kudGVzdChlKSYmKFQ9PVwiTWFjIE9TXCI/XCJUYXNtYW5cIjpcIlRyaWRlbnRcIil8fF89PVwiV2ViS2l0XCImJi9cXGJQbGF5U3RhdGlvblxcYig/ISBWaXRhXFxiKS9pLnRlc3QoUikmJlwiTmV0RnJvbnRcIil7Xz1bTV19aWYoUj09XCJJRVwiJiYoTT0oLzsgKig/OlhCTFdQfFp1bmVXUCkoXFxkKykvaS5leGVjKGUpfHwwKVsxXSkpe1IrPVwiIE1vYmlsZVwiO1Q9XCJXaW5kb3dzIFBob25lIFwiKygvXFwrJC8udGVzdChNKT9NOk0rXCIueFwiKTtQLnVuc2hpZnQoXCJkZXNrdG9wIG1vZGVcIil9ZWxzZSBpZigvXFxiV1BEZXNrdG9wXFxiL2kudGVzdChlKSl7Uj1cIklFIE1vYmlsZVwiO1Q9XCJXaW5kb3dzIFBob25lIDgueFwiO1AudW5zaGlmdChcImRlc2t0b3AgbW9kZVwiKTtCfHwoQj0oL1xcYnJ2OihbXFxkLl0rKS8uZXhlYyhlKXx8MClbMV0pfWVsc2UgaWYoUiE9XCJJRVwiJiZfPT1cIlRyaWRlbnRcIiYmKE09L1xcYnJ2OihbXFxkLl0rKS8uZXhlYyhlKSkpe2lmKFIpe1AucHVzaChcImlkZW50aWZ5aW5nIGFzIFwiK1IrKEI/XCIgXCIrQjpcIlwiKSl9Uj1cIklFXCI7Qj1NWzFdfWlmKGspe2lmKGlzSG9zdFR5cGUoaSxcImdsb2JhbFwiKSl7aWYobSl7TT1tLmxhbmcuU3lzdGVtO0U9TS5nZXRQcm9wZXJ0eShcIm9zLmFyY2hcIik7VD1UfHxNLmdldFByb3BlcnR5KFwib3MubmFtZVwiKStcIiBcIitNLmdldFByb3BlcnR5KFwib3MudmVyc2lvblwiKX1pZihnKXt0cnl7Qj1pLnJlcXVpcmUoXCJyaW5nby9lbmdpbmVcIikudmVyc2lvbi5qb2luKFwiLlwiKTtSPVwiUmluZ29KU1wifWNhdGNoKGUpe2lmKChNPWkuc3lzdGVtKSYmTS5nbG9iYWwuc3lzdGVtPT1pLnN5c3RlbSl7Uj1cIk5hcndoYWxcIjtUfHwoVD1NWzBdLm9zfHxudWxsKX19aWYoIVIpe1I9XCJSaGlub1wifX1lbHNlIGlmKHR5cGVvZiBpLnByb2Nlc3M9PVwib2JqZWN0XCImJiFpLnByb2Nlc3MuYnJvd3NlciYmKE09aS5wcm9jZXNzKSl7aWYodHlwZW9mIE0udmVyc2lvbnM9PVwib2JqZWN0XCIpe2lmKHR5cGVvZiBNLnZlcnNpb25zLmVsZWN0cm9uPT1cInN0cmluZ1wiKXtQLnB1c2goXCJOb2RlIFwiK00udmVyc2lvbnMubm9kZSk7Uj1cIkVsZWN0cm9uXCI7Qj1NLnZlcnNpb25zLmVsZWN0cm9ufWVsc2UgaWYodHlwZW9mIE0udmVyc2lvbnMubnc9PVwic3RyaW5nXCIpe1AucHVzaChcIkNocm9taXVtIFwiK0IsXCJOb2RlIFwiK00udmVyc2lvbnMubm9kZSk7Uj1cIk5XLmpzXCI7Qj1NLnZlcnNpb25zLm53fX1pZighUil7Uj1cIk5vZGUuanNcIjtFPU0uYXJjaDtUPU0ucGxhdGZvcm07Qj0vW1xcZC5dKy8uZXhlYyhNLnZlcnNpb24pO0I9Qj9CWzBdOm51bGx9fX1lbHNlIGlmKGdldENsYXNzT2YoTT1pLnJ1bnRpbWUpPT1wKXtSPVwiQWRvYmUgQUlSXCI7VD1NLmZsYXNoLnN5c3RlbS5DYXBhYmlsaXRpZXMub3N9ZWxzZSBpZihnZXRDbGFzc09mKE09aS5waGFudG9tKT09eCl7Uj1cIlBoYW50b21KU1wiO0I9KE09TS52ZXJzaW9ufHxudWxsKSYmTS5tYWpvcitcIi5cIitNLm1pbm9yK1wiLlwiK00ucGF0Y2h9ZWxzZSBpZih0eXBlb2YgTy5kb2N1bWVudE1vZGU9PVwibnVtYmVyXCImJihNPS9cXGJUcmlkZW50XFwvKFxcZCspL2kuZXhlYyhlKSkpe0I9W0IsTy5kb2N1bWVudE1vZGVdO2lmKChNPStNWzFdKzQpIT1CWzFdKXtQLnB1c2goXCJJRSBcIitCWzFdK1wiIG1vZGVcIik7XyYmKF9bMV09XCJcIik7QlsxXT1NfUI9Uj09XCJJRVwiP1N0cmluZyhCWzFdLnRvRml4ZWQoMSkpOkJbMF19ZWxzZSBpZih0eXBlb2YgTy5kb2N1bWVudE1vZGU9PVwibnVtYmVyXCImJi9eKD86Q2hyb21lfEZpcmVmb3gpXFxiLy50ZXN0KFIpKXtQLnB1c2goXCJtYXNraW5nIGFzIFwiK1IrXCIgXCIrQik7Uj1cIklFXCI7Qj1cIjExLjBcIjtfPVtcIlRyaWRlbnRcIl07VD1cIldpbmRvd3NcIn1UPVQmJmZvcm1hdChUKX1pZihCJiYoTT0vKD86W2FiXXxkcHxwcmV8W2FiXVxcZCtwcmUpKD86XFxkK1xcKz8pPyQvaS5leGVjKEIpfHwvKD86YWxwaGF8YmV0YSkoPzogP1xcZCk/L2kuZXhlYyhlK1wiO1wiKyhrJiZuLmFwcE1pbm9yVmVyc2lvbikpfHwvXFxiTWluZWZpZWxkXFxiL2kudGVzdChlKSYmXCJhXCIpKXtDPS9iL2kudGVzdChNKT9cImJldGFcIjpcImFscGhhXCI7Qj1CLnJlcGxhY2UoUmVnRXhwKE0rXCJcXFxcKz8kXCIpLFwiXCIpKyhDPT1cImJldGFcIj92OmgpKygvXFxkK1xcKz8vLmV4ZWMoTSl8fFwiXCIpfWlmKFI9PVwiRmVubmVjXCJ8fFI9PVwiRmlyZWZveFwiJiYvXFxiKD86QW5kcm9pZHxGaXJlZm94IE9TfEthaU9TKVxcYi8udGVzdChUKSl7Uj1cIkZpcmVmb3ggTW9iaWxlXCJ9ZWxzZSBpZihSPT1cIk1heHRob25cIiYmQil7Qj1CLnJlcGxhY2UoL1xcLltcXGQuXSsvLFwiLnhcIil9ZWxzZSBpZigvXFxiWGJveFxcYi9pLnRlc3QoQSkpe2lmKEE9PVwiWGJveCAzNjBcIil7VD1udWxsfWlmKEE9PVwiWGJveCAzNjBcIiYmL1xcYklFTW9iaWxlXFxiLy50ZXN0KGUpKXtQLnVuc2hpZnQoXCJtb2JpbGUgbW9kZVwiKX19ZWxzZSBpZigoL14oPzpDaHJvbWV8SUV8T3BlcmEpJC8udGVzdChSKXx8UiYmIUEmJiEvQnJvd3NlcnxNb2JpLy50ZXN0KFIpKSYmKFQ9PVwiV2luZG93cyBDRVwifHwvTW9iaS9pLnRlc3QoZSkpKXtSKz1cIiBNb2JpbGVcIn1lbHNlIGlmKFI9PVwiSUVcIiYmayl7dHJ5e2lmKGkuZXh0ZXJuYWw9PT1udWxsKXtQLnVuc2hpZnQoXCJwbGF0Zm9ybSBwcmV2aWV3XCIpfX1jYXRjaChlKXtQLnVuc2hpZnQoXCJlbWJlZGRlZFwiKX19ZWxzZSBpZigoL1xcYkJsYWNrQmVycnlcXGIvLnRlc3QoQSl8fC9cXGJCQjEwXFxiLy50ZXN0KGUpKSYmKE09KFJlZ0V4cChBLnJlcGxhY2UoLyArL2csXCIgKlwiKStcIi8oWy5cXFxcZF0rKVwiLFwiaVwiKS5leGVjKGUpfHwwKVsxXXx8Qikpe009W00sL0JCMTAvLnRlc3QoZSldO1Q9KE1bMV0/KEE9bnVsbCxJPVwiQmxhY2tCZXJyeVwiKTpcIkRldmljZSBTb2Z0d2FyZVwiKStcIiBcIitNWzBdO0I9bnVsbH1lbHNlIGlmKHRoaXMhPWZvck93biYmQSE9XCJXaWlcIiYmKGsmJnl8fC9PcGVyYS8udGVzdChSKSYmL1xcYig/Ok1TSUV8RmlyZWZveClcXGIvaS50ZXN0KGUpfHxSPT1cIkZpcmVmb3hcIiYmL1xcYk9TIFggKD86XFxkK1xcLil7Mix9Ly50ZXN0KFQpfHxSPT1cIklFXCImJihUJiYhL15XaW4vLnRlc3QoVCkmJkI+NS41fHwvXFxiV2luZG93cyBYUFxcYi8udGVzdChUKSYmQj44fHxCPT04JiYhL1xcYlRyaWRlbnRcXGIvLnRlc3QoZSkpKSYmIWYudGVzdChNPXBhcnNlLmNhbGwoZm9yT3duLGUucmVwbGFjZShmLFwiXCIpK1wiO1wiKSkmJk0ubmFtZSl7TT1cImluZyBhcyBcIitNLm5hbWUrKChNPU0udmVyc2lvbik/XCIgXCIrTTpcIlwiKTtpZihmLnRlc3QoUikpe2lmKC9cXGJJRVxcYi8udGVzdChNKSYmVD09XCJNYWMgT1NcIil7VD1udWxsfU09XCJpZGVudGlmeVwiK019ZWxzZXtNPVwibWFza1wiK007aWYodyl7Uj1mb3JtYXQody5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLFwiJDEgJDJcIikpfWVsc2V7Uj1cIk9wZXJhXCJ9aWYoL1xcYklFXFxiLy50ZXN0KE0pKXtUPW51bGx9aWYoIWspe0I9bnVsbH19Xz1bXCJQcmVzdG9cIl07UC5wdXNoKE0pfWlmKE09KC9cXGJBcHBsZVdlYktpdFxcLyhbXFxkLl0rXFwrPykvaS5leGVjKGUpfHwwKVsxXSl7TT1bcGFyc2VGbG9hdChNLnJlcGxhY2UoL1xcLihcXGQpJC8sXCIuMCQxXCIpKSxNXTtpZihSPT1cIlNhZmFyaVwiJiZNWzFdLnNsaWNlKC0xKT09XCIrXCIpe1I9XCJXZWJLaXQgTmlnaHRseVwiO0M9XCJhbHBoYVwiO0I9TVsxXS5zbGljZSgwLC0xKX1lbHNlIGlmKEI9PU1bMV18fEI9PShNWzJdPSgvXFxiU2FmYXJpXFwvKFtcXGQuXStcXCs/KS9pLmV4ZWMoZSl8fDApWzFdKSl7Qj1udWxsfU1bMV09KC9cXGIoPzpIZWFkbGVzcyk/Q2hyb21lXFwvKFtcXGQuXSspL2kuZXhlYyhlKXx8MClbMV07aWYoTVswXT09NTM3LjM2JiZNWzJdPT01MzcuMzYmJnBhcnNlRmxvYXQoTVsxXSk+PTI4JiZfPT1cIldlYktpdFwiKXtfPVtcIkJsaW5rXCJdfWlmKCFrfHwhcyYmIU1bMV0pe18mJihfWzFdPVwibGlrZSBTYWZhcmlcIik7TT0oTT1NWzBdLE08NDAwPzE6TTw1MDA/MjpNPDUyNj8zOk08NTMzPzQ6TTw1MzQ/XCI0K1wiOk08NTM1PzU6TTw1Mzc/NjpNPDUzOD83Ok08NjAxPzg6TTw2MDI/OTpNPDYwND8xMDpNPDYwNj8xMTpNPDYwOD8xMjpcIjEyXCIpfWVsc2V7XyYmKF9bMV09XCJsaWtlIENocm9tZVwiKTtNPU1bMV18fChNPU1bMF0sTTw1MzA/MTpNPDUzMj8yOk08NTMyLjA1PzM6TTw1MzM/NDpNPDUzNC4wMz81Ok08NTM0LjA3PzY6TTw1MzQuMT83Ok08NTM0LjEzPzg6TTw1MzQuMTY/OTpNPDUzNC4yND8xMDpNPDUzNC4zPzExOk08NTM1LjAxPzEyOk08NTM1LjAyP1wiMTMrXCI6TTw1MzUuMDc/MTU6TTw1MzUuMTE/MTY6TTw1MzUuMTk/MTc6TTw1MzYuMDU/MTg6TTw1MzYuMT8xOTpNPDUzNy4wMT8yMDpNPDUzNy4xMT9cIjIxK1wiOk08NTM3LjEzPzIzOk08NTM3LjE4PzI0Ok08NTM3LjI0PzI1Ok08NTM3LjM2PzI2Ol8hPVwiQmxpbmtcIj9cIjI3XCI6XCIyOFwiKX1fJiYoX1sxXSs9XCIgXCIrKE0rPXR5cGVvZiBNPT1cIm51bWJlclwiP1wiLnhcIjovWy4rXS8udGVzdChNKT9cIlwiOlwiK1wiKSk7aWYoUj09XCJTYWZhcmlcIiYmKCFCfHxwYXJzZUludChCKT40NSkpe0I9TX1lbHNlIGlmKFI9PVwiQ2hyb21lXCImJi9cXGJIZWFkbGVzc0Nocm9tZS9pLnRlc3QoZSkpe1AudW5zaGlmdChcImhlYWRsZXNzXCIpfX1pZihSPT1cIk9wZXJhXCImJihNPS9cXGJ6Ym92fHp2YXYkLy5leGVjKFQpKSl7Uis9XCIgXCI7UC51bnNoaWZ0KFwiZGVza3RvcCBtb2RlXCIpO2lmKE09PVwienZhdlwiKXtSKz1cIk1pbmlcIjtCPW51bGx9ZWxzZXtSKz1cIk1vYmlsZVwifVQ9VC5yZXBsYWNlKFJlZ0V4cChcIiAqXCIrTStcIiRcIiksXCJcIil9ZWxzZSBpZihSPT1cIlNhZmFyaVwiJiYvXFxiQ2hyb21lXFxiLy5leGVjKF8mJl9bMV0pKXtQLnVuc2hpZnQoXCJkZXNrdG9wIG1vZGVcIik7Uj1cIkNocm9tZSBNb2JpbGVcIjtCPW51bGw7aWYoL1xcYk9TIFhcXGIvLnRlc3QoVCkpe0k9XCJBcHBsZVwiO1Q9XCJpT1MgNC4zK1wifWVsc2V7VD1udWxsfX1lbHNlIGlmKC9cXGJTUldhcmUgSXJvblxcYi8udGVzdChSKSYmIUIpe0I9Z2V0VmVyc2lvbihcIkNocm9tZVwiKX1pZihCJiZCLmluZGV4T2YoTT0vW1xcZC5dKyQvLmV4ZWMoVCkpPT0wJiZlLmluZGV4T2YoXCIvXCIrTStcIi1cIik+LTEpe1Q9dHJpbShULnJlcGxhY2UoTSxcIlwiKSl9aWYoVCYmVC5pbmRleE9mKFIpIT0tMSYmIVJlZ0V4cChSK1wiIE9TXCIpLnRlc3QoVCkpe1Q9VC5yZXBsYWNlKFJlZ0V4cChcIiAqXCIrcXVhbGlmeShSKStcIiAqXCIpLFwiXCIpfWlmKF8mJiEvXFxiKD86QXZhbnR8Tm9vaylcXGIvLnRlc3QoUikmJigvQnJvd3NlcnxMdW5hc2NhcGV8TWF4dGhvbi8udGVzdChSKXx8UiE9XCJTYWZhcmlcIiYmL15pT1MvLnRlc3QoVCkmJi9cXGJTYWZhcmlcXGIvLnRlc3QoX1sxXSl8fC9eKD86QWRvYmV8QXJvcmF8QnJlYWNofE1pZG9yaXxPcGVyYXxQaGFudG9tfFJla29ucXxSb2NrfFNhbXN1bmcgSW50ZXJuZXR8U2xlaXBuaXJ8U1JXYXJlIElyb258Vml2YWxkaXxXZWIpLy50ZXN0KFIpJiZfWzFdKSl7KE09X1tfLmxlbmd0aC0xXSkmJlAucHVzaChNKX1pZihQLmxlbmd0aCl7UD1bXCIoXCIrUC5qb2luKFwiOyBcIikrXCIpXCJdfWlmKEkmJkEmJkEuaW5kZXhPZihJKTwwKXtQLnB1c2goXCJvbiBcIitJKX1pZihBKXtQLnB1c2goKC9eb24gLy50ZXN0KFBbUC5sZW5ndGgtMV0pP1wiXCI6XCJvbiBcIikrQSl9aWYoVCl7TT0vIChbXFxkLitdKykkLy5leGVjKFQpO1c9TSYmVC5jaGFyQXQoVC5sZW5ndGgtTVswXS5sZW5ndGgtMSk9PVwiL1wiO1Q9e2FyY2hpdGVjdHVyZTozMixmYW1pbHk6TSYmIVc/VC5yZXBsYWNlKE1bMF0sXCJcIik6VCx2ZXJzaW9uOk0/TVsxXTpudWxsLHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy52ZXJzaW9uO3JldHVybiB0aGlzLmZhbWlseSsoZSYmIVc/XCIgXCIrZTpcIlwiKSsodGhpcy5hcmNoaXRlY3R1cmU9PTY0P1wiIDY0LWJpdFwiOlwiXCIpfX19aWYoKE09L1xcYig/OkFNRHxJQXxXaW58V09XfHg4Nl98eCk2NFxcYi9pLmV4ZWMoRSkpJiYhL1xcYmk2ODZcXGIvaS50ZXN0KEUpKXtpZihUKXtULmFyY2hpdGVjdHVyZT02NDtULmZhbWlseT1ULmZhbWlseS5yZXBsYWNlKFJlZ0V4cChcIiAqXCIrTSksXCJcIil9aWYoUiYmKC9cXGJXT1c2NFxcYi9pLnRlc3QoZSl8fGsmJi9cXHcoPzo4NnwzMikkLy50ZXN0KG4uY3B1Q2xhc3N8fG4ucGxhdGZvcm0pJiYhL1xcYldpbjY0OyB4NjRcXGIvaS50ZXN0KGUpKSl7UC51bnNoaWZ0KFwiMzItYml0XCIpfX1lbHNlIGlmKFQmJi9eT1MgWC8udGVzdChULmZhbWlseSkmJlI9PVwiQ2hyb21lXCImJnBhcnNlRmxvYXQoQik+PTM5KXtULmFyY2hpdGVjdHVyZT02NH1lfHwoZT1udWxsKTt2YXIgRj17fTtGLmRlc2NyaXB0aW9uPWU7Ri5sYXlvdXQ9XyYmX1swXTtGLm1hbnVmYWN0dXJlcj1JO0YubmFtZT1SO0YucHJlcmVsZWFzZT1DO0YucHJvZHVjdD1BO0YudWE9ZTtGLnZlcnNpb249UiYmQjtGLm9zPVR8fHthcmNoaXRlY3R1cmU6bnVsbCxmYW1pbHk6bnVsbCx2ZXJzaW9uOm51bGwsdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm5cIm51bGxcIn19O0YucGFyc2U9cGFyc2U7Ri50b1N0cmluZz10b1N0cmluZ1BsYXRmb3JtO2lmKEYudmVyc2lvbil7UC51bnNoaWZ0KEIpfWlmKEYubmFtZSl7UC51bnNoaWZ0KFIpfWlmKFQmJlImJiEoVD09U3RyaW5nKFQpLnNwbGl0KFwiIFwiKVswXSYmKFQ9PVIuc3BsaXQoXCIgXCIpWzBdfHxBKSkpe1AucHVzaChBP1wiKFwiK1QrXCIpXCI6XCJvbiBcIitUKX1pZihQLmxlbmd0aCl7Ri5kZXNjcmlwdGlvbj1QLmpvaW4oXCIgXCIpfXJldHVybiBGfXZhciBkPXBhcnNlKCk7aWYobiYmbyl7Zm9yT3duKGQsKGZ1bmN0aW9uKGUsaSl7bltpXT1lfSkpfWVsc2V7ci5wbGF0Zm9ybT1kfX0pLmNhbGwodGhpcyl9fTt2YXIgaT17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHQpe3ZhciByPWlbdF07aWYociE9PXVuZGVmaW5lZCl7cmV0dXJuIHIuZXhwb3J0c312YXIgYT1pW3RdPXtpZDp0LGxvYWRlZDpmYWxzZSxleHBvcnRzOnt9fTt2YXIgbj10cnVlO3RyeXtlW3RdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO249ZmFsc2V9ZmluYWxseXtpZihuKWRlbGV0ZSBpW3RdfWEubG9hZGVkPXRydWU7cmV0dXJuIGEuZXhwb3J0c30oKCk9PntfX25jY3dwY2tfcmVxdWlyZV9fLm5tZD1lPT57ZS5wYXRocz1bXTtpZighZS5jaGlsZHJlbillLmNoaWxkcmVuPVtdO3JldHVybiBlfX0pKCk7aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oNTQxKTttb2R1bGUuZXhwb3J0cz10fSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/platform/platform.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js ***!
|
||
\*************************************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;Object.defineProperty(r,\"__esModule\",{value:true});var n=\"<unknown>\";function parse(e){var r=e.split(\"\\n\");return r.reduce((function(e,r){var n=parseChrome(r)||parseWinjs(r)||parseGecko(r)||parseNode(r)||parseJSC(r);if(n){e.push(n)}return e}),[])}var a=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;var l=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;function parseChrome(e){var r=a.exec(e);if(!r){return null}var u=r[2]&&r[2].indexOf(\"native\")===0;var t=r[2]&&r[2].indexOf(\"eval\")===0;var i=l.exec(r[2]);if(t&&i!=null){r[2]=i[1];r[3]=i[2];r[4]=i[3]}return{file:!u?r[2]:null,methodName:r[1]||n,arguments:u?[r[2]]:[],lineNumber:r[3]?+r[3]:null,column:r[4]?+r[4]:null}}var u=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function parseWinjs(e){var r=u.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}var t=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;var i=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function parseGecko(e){var r=t.exec(e);if(!r){return null}var a=r[3]&&r[3].indexOf(\" > eval\")>-1;var l=i.exec(r[3]);if(a&&l!=null){r[3]=l[1];r[4]=l[2];r[5]=null}return{file:r[3],methodName:r[1]||n,arguments:r[2]?r[2].split(\",\"):[],lineNumber:r[4]?+r[4]:null,column:r[5]?+r[5]:null}}var s=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;function parseJSC(e){var r=s.exec(e);if(!r){return null}return{file:r[3],methodName:r[1]||n,arguments:[],lineNumber:+r[4],column:r[5]?+r[5]:null}}var o=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function parseNode(e){var r=o.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}r.parse=parse})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyL3N0YWNrLXRyYWNlLXBhcnNlci5janMuanMiLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxhQUFhLGlGQUFpRixTQUFTLE1BQU0sUUFBUSxzQ0FBc0MsV0FBVyxFQUFFLGtCQUFrQixrQkFBa0Isb0JBQW9CLCtCQUErQiw4RUFBOEUsTUFBTSxVQUFVLFNBQVMsTUFBTSxrSkFBa0osc0NBQXNDLHdCQUF3QixnQkFBZ0IsT0FBTyxZQUFZLHVDQUF1QyxxQ0FBcUMsbUJBQW1CLGVBQWUsVUFBVSxVQUFVLFVBQVUsT0FBTyw4R0FBOEcsc0hBQXNILHVCQUF1QixnQkFBZ0IsT0FBTyxZQUFZLE9BQU8sbUZBQW1GLHdJQUF3SSxzREFBc0QsdUJBQXVCLGdCQUFnQixPQUFPLFlBQVksdUNBQXVDLG1CQUFtQixlQUFlLFVBQVUsVUFBVSxVQUFVLE9BQU8sa0hBQWtILHFFQUFxRSxxQkFBcUIsZ0JBQWdCLE9BQU8sWUFBWSxPQUFPLG1GQUFtRixzR0FBc0csc0JBQXNCLGdCQUFnQixPQUFPLFlBQVksT0FBTyxtRkFBbUYsY0FBYyxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcY29tcGlsZWRcXHN0YWNrdHJhY2UtcGFyc2VyXFxzdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgZT17fTsoKCk9Pnt2YXIgcj1lO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dmFyIG49XCI8dW5rbm93bj5cIjtmdW5jdGlvbiBwYXJzZShlKXt2YXIgcj1lLnNwbGl0KFwiXFxuXCIpO3JldHVybiByLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXt2YXIgbj1wYXJzZUNocm9tZShyKXx8cGFyc2VXaW5qcyhyKXx8cGFyc2VHZWNrbyhyKXx8cGFyc2VOb2RlKHIpfHxwYXJzZUpTQyhyKTtpZihuKXtlLnB1c2gobil9cmV0dXJuIGV9KSxbXSl9dmFyIGE9L15cXHMqYXQgKC4qPykgP1xcKCgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZS1leHRlbnNpb258bmF0aXZlfGV2YWx8d2VicGFja3w8YW5vbnltb3VzPnxcXC98W2Etel06XFxcXHxcXFxcXFxcXCkuKj8pKD86OihcXGQrKSk/KD86OihcXGQrKSk/XFwpP1xccyokL2k7dmFyIGw9L1xcKChcXFMqKSg/OjooXFxkKykpKD86OihcXGQrKSlcXCkvO2Z1bmN0aW9uIHBhcnNlQ2hyb21lKGUpe3ZhciByPWEuZXhlYyhlKTtpZighcil7cmV0dXJuIG51bGx9dmFyIHU9clsyXSYmclsyXS5pbmRleE9mKFwibmF0aXZlXCIpPT09MDt2YXIgdD1yWzJdJiZyWzJdLmluZGV4T2YoXCJldmFsXCIpPT09MDt2YXIgaT1sLmV4ZWMoclsyXSk7aWYodCYmaSE9bnVsbCl7clsyXT1pWzFdO3JbM109aVsyXTtyWzRdPWlbM119cmV0dXJue2ZpbGU6IXU/clsyXTpudWxsLG1ldGhvZE5hbWU6clsxXXx8bixhcmd1bWVudHM6dT9bclsyXV06W10sbGluZU51bWJlcjpyWzNdPytyWzNdOm51bGwsY29sdW1uOnJbNF0/K3JbNF06bnVsbH19dmFyIHU9L15cXHMqYXQgKD86KCg/OlxcW29iamVjdCBvYmplY3RcXF0pPy4rKSApP1xcKD8oKD86ZmlsZXxtcy1hcHB4fGh0dHBzP3x3ZWJwYWNrfGJsb2IpOi4qPyk6KFxcZCspKD86OihcXGQrKSk/XFwpP1xccyokL2k7ZnVuY3Rpb24gcGFyc2VXaW5qcyhlKXt2YXIgcj11LmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXJldHVybntmaWxlOnJbMl0sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOityWzNdLGNvbHVtbjpyWzRdPytyWzRdOm51bGx9fXZhciB0PS9eXFxzKiguKj8pKD86XFwoKC4qPylcXCkpPyg/Ol58QCkoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWV8d2VicGFja3xyZXNvdXJjZXxcXFtuYXRpdmUpLio/fFteQF0qYnVuZGxlKSg/OjooXFxkKykpPyg/OjooXFxkKykpP1xccyokL2k7dmFyIGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2k7ZnVuY3Rpb24gcGFyc2VHZWNrbyhlKXt2YXIgcj10LmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXZhciBhPXJbM10mJnJbM10uaW5kZXhPZihcIiA+IGV2YWxcIik+LTE7dmFyIGw9aS5leGVjKHJbM10pO2lmKGEmJmwhPW51bGwpe3JbM109bFsxXTtyWzRdPWxbMl07cls1XT1udWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpyWzJdP3JbMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6cls0XT8rcls0XTpudWxsLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBzPS9eXFxzKig/OihbXkBdKikoPzpcXCgoLio/KVxcKSk/QCk/KFxcUy4qPyk6KFxcZCspKD86OihcXGQrKSk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZUpTQyhlKXt2YXIgcj1zLmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOityWzRdLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBvPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT9bXlxcXFwvXSsoPzogXFxbYXMgXFxTK1xcXSk/KSApP1xcKD8oLio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZU5vZGUoZSl7dmFyIHI9by5leGVjKGUpO2lmKCFyKXtyZXR1cm4gbnVsbH1yZXR1cm57ZmlsZTpyWzJdLG1ldGhvZE5hbWU6clsxXXx8bixhcmd1bWVudHM6W10sbGluZU51bWJlcjorclszXSxjb2x1bW46cls0XT8rcls0XTpudWxsfX1yLnBhcnNlPXBhcnNlfSkoKTttb2R1bGUuZXhwb3J0cz1lfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanMiLCJtYXBwaW5ncyI6IjtBQUFDO0lBQUs7SUFBYSxJQUFJQSxJQUFFO1FBQUMsS0FBSUEsQ0FBQUE7WUFBSUEsRUFBRUMsT0FBTyxHQUFDLENBQUMsRUFBQ0MsV0FBVUYsSUFBRSxLQUFLLEVBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUksTUFBTUcsSUFBRTtvQkFBQztvQkFBK0g7aUJBQTJELENBQUNDLElBQUksQ0FBQztnQkFBSyxPQUFPLElBQUlDLE9BQU9GLEdBQUVILElBQUVNLFlBQVU7WUFBSTtRQUFDO1FBQUUsS0FBSSxDQUFDTixHQUFFRyxHQUFFSTtZQUFLLE1BQU1DLElBQUVELEVBQUU7WUFBS1AsRUFBRUMsT0FBTyxHQUFDRCxDQUFBQSxJQUFHLE9BQU9BLE1BQUksV0FBU0EsRUFBRVMsT0FBTyxDQUFDRCxLQUFJLE1BQUlSO1FBQUM7SUFBQztJQUFFLElBQUlHLElBQUUsQ0FBQztJQUFFLFNBQVNPLG9CQUFvQkgsQ0FBQztRQUFFLElBQUlDLElBQUVMLENBQUMsQ0FBQ0ksRUFBRTtRQUFDLElBQUdDLE1BQUlGLFdBQVU7WUFBQyxPQUFPRSxFQUFFUCxPQUFPO1FBQUE7UUFBQyxJQUFJVSxJQUFFUixDQUFDLENBQUNJLEVBQUUsR0FBQztZQUFDTixTQUFRLENBQUM7UUFBQztRQUFFLElBQUlXLElBQUU7UUFBSyxJQUFHO1lBQUNaLENBQUMsQ0FBQ08sRUFBRSxDQUFDSSxHQUFFQSxFQUFFVixPQUFPLEVBQUNTO1lBQXFCRSxJQUFFO1FBQUssU0FBUTtZQUFDLElBQUdBLEdBQUUsT0FBT1QsQ0FBQyxDQUFDSSxFQUFFO1FBQUE7UUFBQyxPQUFPSSxFQUFFVixPQUFPO0lBQUE7SUFBQyxJQUFHLE9BQU9TLHdCQUFzQixhQUFZQSxvQkFBb0JHLEVBQUUsR0FBQ0MsWUFBVTtJQUFJLElBQUlQLElBQUVHLG9CQUFvQjtJQUFLSyxPQUFPZCxPQUFPLEdBQUNNO0FBQUMiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxzdHJpcC1hbnNpXFxpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17NTExOmU9PntlLmV4cG9ydHM9KHtvbmx5Rmlyc3Q6ZT1mYWxzZX09e30pPT57Y29uc3Qgcj1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpXCIsXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKVwiXS5qb2luKFwifFwiKTtyZXR1cm4gbmV3IFJlZ0V4cChyLGU/dW5kZWZpbmVkOlwiZ1wiKX19LDUzMjooZSxyLF8pPT57Y29uc3QgdD1fKDUxMSk7ZS5leHBvcnRzPWU9PnR5cGVvZiBlPT09XCJzdHJpbmdcIj9lLnJlcGxhY2UodCgpLFwiXCIpOmV9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKF8pe3ZhciB0PXJbX107aWYodCE9PXVuZGVmaW5lZCl7cmV0dXJuIHQuZXhwb3J0c312YXIgYT1yW19dPXtleHBvcnRzOnt9fTt2YXIgbj10cnVlO3RyeXtlW19dKGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO249ZmFsc2V9ZmluYWxseXtpZihuKWRlbGV0ZSByW19dfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBfPV9fbmNjd3Bja19yZXF1aXJlX18oNTMyKTttb2R1bGUuZXhwb3J0cz1ffSkoKTsiXSwibmFtZXMiOlsiZSIsImV4cG9ydHMiLCJvbmx5Rmlyc3QiLCJyIiwiam9pbiIsIlJlZ0V4cCIsInVuZGVmaW5lZCIsIl8iLCJ0IiwicmVwbGFjZSIsIl9fbmNjd3Bja19yZXF1aXJlX18iLCJhIiwibiIsImFiIiwiX19kaXJuYW1lIiwibW9kdWxlIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/export/helpers/is-dynamic-usage-error.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/export/helpers/is-dynamic-usage-error.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicUsageError\", ({\n enumerable: true,\n get: function() {\n return isDynamicUsageError;\n }\n}));\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(ssr)/./node_modules/next/dist/client/components/hooks-server-context.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__(/*! ../../client/components/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 isDynamicUsageError = (err)=>(0, _hooksservercontext.isDynamicServerError)(err) || (0, _bailouttocsr.isBailoutToCSRError)(err) || (0, _isnextroutererror.isNextRouterError)(err) || (0, _dynamicrendering.isDynamicPostpone)(err);\n\n//# sourceMappingURL=is-dynamic-usage-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2V4cG9ydC9oZWxwZXJzL2lzLWR5bmFtaWMtdXNhZ2UtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw0QkFBNEIsbUJBQU8sQ0FBQyw4SEFBOEM7QUFDbEYsc0JBQXNCLG1CQUFPLENBQUMsOEhBQThDO0FBQzVFLDJCQUEyQixtQkFBTyxDQUFDLDhIQUE4QztBQUNqRiwwQkFBMEIsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDN0U7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGV4cG9ydFxcaGVscGVyc1xcaXMtZHluYW1pYy11c2FnZS1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzRHluYW1pY1VzYWdlRXJyb3JcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRHluYW1pY1VzYWdlRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfaG9va3NzZXJ2ZXJjb250ZXh0ID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0XCIpO1xuY29uc3QgX2JhaWxvdXR0b2NzciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzclwiKTtcbmNvbnN0IF9pc25leHRyb3V0ZXJlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9pcy1uZXh0LXJvdXRlci1lcnJvclwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuY29uc3QgaXNEeW5hbWljVXNhZ2VFcnJvciA9IChlcnIpPT4oMCwgX2hvb2tzc2VydmVyY29udGV4dC5pc0R5bmFtaWNTZXJ2ZXJFcnJvcikoZXJyKSB8fCAoMCwgX2JhaWxvdXR0b2Nzci5pc0JhaWxvdXRUb0NTUkVycm9yKShlcnIpIHx8ICgwLCBfaXNuZXh0cm91dGVyZXJyb3IuaXNOZXh0Um91dGVyRXJyb3IpKGVycikgfHwgKDAsIF9keW5hbWljcmVuZGVyaW5nLmlzRHluYW1pY1Bvc3Rwb25lKShlcnIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1keW5hbWljLXVzYWdlLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/export/helpers/is-dynamic-usage-error.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 new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined');\n }\n if (err === null) {\n return new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined');\n }\n }\n return new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + '');\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXGlzLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZGVmYXVsdDogbnVsbCxcbiAgICBnZXRQcm9wZXJFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICAvKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIE5leHRFcnJvci5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHJpbnQgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCBwcm9wZXJ0aWVzIGxpa2UgYGNvZGVgICYgYGRpZ2VzdGAuXG4gKi8gZGVmYXVsdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Vycm9yO1xuICAgIH0sXG4gICAgZ2V0UHJvcGVyRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UHJvcGVyRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfaXNwbGFpbm9iamVjdCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2lzLXBsYWluLW9iamVjdFwiKTtcbmZ1bmN0aW9uIGlzRXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmIGVyciAhPT0gbnVsbCAmJiAnbmFtZScgaW4gZXJyICYmICdtZXNzYWdlJyBpbiBlcnI7XG59XG5mdW5jdGlvbiBzYWZlU3RyaW5naWZ5KG9iaikge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIChfa2V5LCB2YWx1ZSk9PntcbiAgICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gb2JqZWN0IGFuZCBhbHJlYWR5IHNlZW4sIHJlcGxhY2Ugd2l0aCBcIltDaXJjdWxhcl1cIlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWVuLmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVyRXJyb3IoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSkge1xuICAgICAgICByZXR1cm4gZXJyO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gcHJvdmlkZSBiZXR0ZXIgZXJyb3IgZm9yIGNhc2Ugd2hlcmUgYHRocm93IHVuZGVmaW5lZGBcbiAgICAgICAgLy8gaXMgY2FsbGVkIGluIGRldmVsb3BtZW50XG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcignQW4gdW5kZWZpbmVkIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVyciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBFcnJvcignQSBudWxsIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBFcnJvcigoMCwgX2lzcGxhaW5vYmplY3QuaXNQbGFpbk9iamVjdCkoZXJyKSA/IHNhZmVTdHJpbmdpZnkoZXJyKSA6IGVyciArICcnKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/is-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/metadata-boundary.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 ViewportBoundary: function() {\n return ViewportBoundary;\n }\n});\nconst _metadataconstants = __webpack_require__(/*! ./metadata-constants */ \"(ssr)/./node_modules/next/dist/lib/metadata/metadata-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 [_metadataconstants.METADATA_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_metadataconstants.VIEWPORT_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_metadataconstants.OUTLET_BOUNDARY_NAME]: function({ children }) {\n return children;\n }\n};\nconst MetadataBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_metadataconstants.METADATA_BOUNDARY_NAME.slice(0)];\nconst ViewportBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_metadataconstants.VIEWPORT_BOUNDARY_NAME.slice(0)];\nconst OutletBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_metadataconstants.OUTLET_BOUNDARY_NAME.slice(0)]; //# sourceMappingURL=metadata-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS1ib3VuZGFyeS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFrQ2FBLGdCQUFnQjtlQUFoQkE7O0lBVUFDLGNBQWM7ZUFBZEE7O0lBTEFDLGdCQUFnQjtlQUFoQkE7OzsrQ0FqQ047QUFFUCw0RUFBNEU7QUFDNUUsaUVBQWlFO0FBQ2pFLE1BQU1DLFlBQVk7SUFDaEIsQ0FBQ0MsbUJBQUFBLHNCQUFzQixDQUFDLEVBQUUsU0FBVSxFQUNsQ0MsUUFBUSxFQUdUO1FBQ0MsT0FBT0E7SUFDVDtJQUNBLENBQUNDLG1CQUFBQSxzQkFBc0IsQ0FBQyxFQUFFLFNBQVUsRUFDbENELFFBQVEsRUFHVDtRQUNDLE9BQU9BO0lBQ1Q7SUFDQSxDQUFDRSxtQkFBQUEsb0JBQW9CLENBQUMsRUFBRSxTQUFVLEVBQ2hDRixRQUFRLEVBR1Q7UUFDQyxPQUFPQTtJQUNUO0FBQ0Y7QUFFTyxNQUFNTCxtQkFDWCw0REFDNEQ7QUFDNURHLFNBQVMsQ0FBQ0MsbUJBQUFBLHNCQUFzQixDQUFDSSxLQUFLLENBQUMsR0FBb0M7QUFFdEUsTUFBTU4sbUJBQ1gsNERBQzREO0FBQzVEQyxTQUFTLENBQUNHLG1CQUFBQSxzQkFBc0IsQ0FBQ0UsS0FBSyxDQUFDLEdBQW9DO0FBRXRFLE1BQU1QLGlCQUNYLDREQUM0RDtBQUM1REUsU0FBUyxDQUFDSSxtQkFBQUEsb0JBQW9CLENBQUNDLEtBQUssQ0FBQyxHQUFrQyIsInNvdXJjZXMiOlsiRTpcXHNyY1xcbGliXFxtZXRhZGF0YVxcbWV0YWRhdGEtYm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQge1xuICBNRVRBREFUQV9CT1VOREFSWV9OQU1FLFxuICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FLFxuICBPVVRMRVRfQk9VTkRBUllfTkFNRSxcbn0gZnJvbSAnLi9tZXRhZGF0YS1jb25zdGFudHMnXG5cbi8vIFdlIHVzZSBhIG5hbWVzcGFjZSBvYmplY3QgdG8gYWxsb3cgdXMgdG8gcmVjb3ZlciB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb25cbi8vIGF0IHJ1bnRpbWUgZXZlbiB3aGVuIHByb2R1Y3Rpb24gYnVuZGxpbmcvbWluaWZpY2F0aW9uIGlzIHVzZWQuXG5jb25zdCBOYW1lU3BhY2UgPSB7XG4gIFtNRVRBREFUQV9CT1VOREFSWV9OQU1FXTogZnVuY3Rpb24gKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgfSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9LFxuICBbVklFV1BPUlRfQk9VTkRBUllfTkFNRV06IGZ1bmN0aW9uICh7XG4gICAgY2hpbGRyZW4sXG4gIH06IHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIH0pIHtcbiAgICByZXR1cm4gY2hpbGRyZW5cbiAgfSxcbiAgW09VVExFVF9CT1VOREFSWV9OQU1FXTogZnVuY3Rpb24gKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgfSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgTWV0YWRhdGFCb3VuZGFyeSA9XG4gIC8vIFdlIHVzZSBzbGljZSgwKSB0byB0cmljayB0aGUgYnVuZGxlciBpbnRvIG5vdCBpbmxpbmluZy9taW5pZnlpbmcgdGhlIGZ1bmN0aW9uXG4gIC8vIHNvIGl0IHJldGFpbnMgdGhlIG5hbWUgaW5mZXJyZWQgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdFxuICBOYW1lU3BhY2VbTUVUQURBVEFfQk9VTkRBUllfTkFNRS5zbGljZSgwKSBhcyB0eXBlb2YgTUVUQURBVEFfQk9VTkRBUllfTkFNRV1cblxuZXhwb3J0IGNvbnN0IFZpZXdwb3J0Qm91bmRhcnkgPVxuICAvLyBXZSB1c2Ugc2xpY2UoMCkgdG8gdHJpY2sgdGhlIGJ1bmRsZXIgaW50byBub3QgaW5saW5pbmcvbWluaWZ5aW5nIHRoZSBmdW5jdGlvblxuICAvLyBzbyBpdCByZXRhaW5zIHRoZSBuYW1lIGluZmVycmVkIGZyb20gdGhlIG5hbWVzcGFjZSBvYmplY3RcbiAgTmFtZVNwYWNlW1ZJRVdQT1JUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCkgYXMgdHlwZW9mIFZJRVdQT1JUX0JPVU5EQVJZX05BTUVdXG5cbmV4cG9ydCBjb25zdCBPdXRsZXRCb3VuZGFyeSA9XG4gIC8vIFdlIHVzZSBzbGljZSgwKSB0byB0cmljayB0aGUgYnVuZGxlciBpbnRvIG5vdCBpbmxpbmluZy9taW5pZnlpbmcgdGhlIGZ1bmN0aW9uXG4gIC8vIHNvIGl0IHJldGFpbnMgdGhlIG5hbWUgaW5mZXJyZWQgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdFxuICBOYW1lU3BhY2VbT1VUTEVUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCkgYXMgdHlwZW9mIE9VVExFVF9CT1VOREFSWV9OQU1FXVxuIl0sIm5hbWVzIjpbIk1ldGFkYXRhQm91bmRhcnkiLCJPdXRsZXRCb3VuZGFyeSIsIlZpZXdwb3J0Qm91bmRhcnkiLCJOYW1lU3BhY2UiLCJNRVRBREFUQV9CT1VOREFSWV9OQU1FIiwiY2hpbGRyZW4iLCJWSUVXUE9SVF9CT1VOREFSWV9OQU1FIiwiT1VUTEVUX0JPVU5EQVJZX05BTUUiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/lib/metadata/metadata-constants.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/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 METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_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__';\n\n//# sourceMappingURL=metadata-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS1jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbWV0YWRhdGFcXG1ldGFkYXRhLWNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgVklFV1BPUlRfQk9VTkRBUllfTkFNRTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBNRVRBREFUQV9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBPVVRMRVRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBPVVRMRVRfQk9VTkRBUllfTkFNRTtcbiAgICB9LFxuICAgIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVklFV1BPUlRfQk9VTkRBUllfTkFNRTtcbiAgICB9XG59KTtcbmNvbnN0IE1FVEFEQVRBX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X21ldGFkYXRhX2JvdW5kYXJ5X18nO1xuY29uc3QgVklFV1BPUlRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfdmlld3BvcnRfYm91bmRhcnlfXyc7XG5jb25zdCBPVVRMRVRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfb3V0bGV0X2JvdW5kYXJ5X18nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhZGF0YS1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/metadata/metadata-constants.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxzY2hlZHVsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhdExlYXN0T25lVGFzazogbnVsbCxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogbnVsbCxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IG51bGwsXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXRMZWFzdE9uZVRhc2s7XG4gICAgfSxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZUltbWVkaWF0ZTtcbiAgICB9LFxuICAgIHNjaGVkdWxlT25OZXh0VGljazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZU9uTmV4dFRpY2s7XG4gICAgfSxcbiAgICB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaztcbiAgICB9XG59KTtcbmNvbnN0IHNjaGVkdWxlT25OZXh0VGljayA9IChjYik9PntcbiAgICAvLyBXZSB1c2UgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigpIGhlcmUgc28gdGhhdCB0aGUgb3BlcmF0aW9uIGlzIHNjaGVkdWxlZCBhdFxuICAgIC8vIHRoZSBlbmQgb2YgdGhlIHByb21pc2Ugam9iIHF1ZXVlLCB3ZSB0aGVuIGFkZCBpdCB0byB0aGUgbmV4dCBwcm9jZXNzIHRpY2tcbiAgICAvLyB0byBlbnN1cmUgaXQncyBldmFsdWF0ZWQgYWZ0ZXJ3YXJkcy5cbiAgICAvL1xuICAgIC8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGF0YUxvYWRlciBpbnRlcmZhY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsL2RhdGFsb2FkZXIvYmxvYi9kMzM2YmQxNTI4MjY2NGUwYmU0YjRhNjU3Y2I3OTZmMDliYWZiYzZiL3NyYy9pbmRleC5qcyNMMjEzLUwyNTVcbiAgICAvL1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soY2IpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3Qgc2NoZWR1bGVJbW1lZGlhdGUgPSAoY2IpPT57XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEltbWVkaWF0ZShjYik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIGF0TGVhc3RPbmVUYXNrKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnNjaGVkdWxlSW1tZWRpYXRlKHJlc29sdmUpKTtcbn1cbmZ1bmN0aW9uIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRUaW1lb3V0KHIsIDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRJbW1lZGlhdGUocikpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NoZWR1bGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/scheduler.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 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 createPostponedAbortSignal: function() {\n return createPostponedAbortSignal;\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 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 trackFallbackParamAccessed: function() {\n return trackFallbackParamAccessed;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\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 */ \"../app-render/work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _metadataconstants = __webpack_require__(/*! ../../lib/metadata/metadata-constants */ \"(ssr)/./node_modules/next/dist/lib/metadata/metadata-constants.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 syncDynamicExpression: undefined,\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspendedDynamic: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasSyncDynamicErrors: 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 if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\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 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`);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender-ppr') {\n postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = 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`);\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n } else if ( true && workUnitStore && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\nfunction trackFallbackParamAccessed(store, expression) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!prerenderStore || prerenderStore.type !== 'prerender-ppr') return;\n postponeWithTracking(store.route, expression, prerenderStore.dynamicTracking);\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 = 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`);\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(_store, workUnitStore) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n }\n if ( true && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\n// Despite it's name we don't actually abort unless we have a controller to call abort on\n// There are times when we let a prerender run long to discover caches where we want the semantics\n// of tracking dynamic access without terminating the prerender early\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 if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicExpression = expression;\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n return abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\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 dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicExpression = expression;\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n if (prerenderStore.validating === true) {\n // We always log Request Access in dev at the point of calling the function\n // So we mark the dynamic validation as not requiring it to be printed\n dynamicTracking.syncDynamicLogged = true;\n }\n }\n }\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\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 new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js');\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = new Error(message);\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 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`);\n }\n}\nfunction createPostponedAbortSignal(reason) {\n assertPostpone();\n const controller = new AbortController();\n // We get our hands on a postpone instance by calling postpone and catching the throw\n try {\n _react.default.unstable_postpone(reason);\n } catch (x) {\n controller.abort(x);\n }\n return controller.signal;\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 if (typeof window === 'undefined') {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore && workStore.isStaticGeneration && workStore.fallbackRouteParams && workStore.fallbackRouteParams.size > 0) {\n // There are fallback route params, we should track these as dynamic\n // accesses.\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n // We're prerendering with dynamicIO or PPR or both\n if (workUnitStore.type === 'prerender') {\n // We are in a prerender with dynamicIO semantics\n // We are going to 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, expression));\n } else if (workUnitStore.type === 'prerender-ppr') {\n // We're prerendering with PPR\n postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n throwToInterruptStaticGeneration(expression, workStore, workUnitStore);\n }\n }\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(route, componentStack, dynamicValidation, serverDynamic, 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 (hasSuspenseRegex.test(componentStack)) {\n dynamicValidation.hasSuspendedDynamic = true;\n return;\n } else if (serverDynamic.syncDynamicErrorWithStack || clientDynamic.syncDynamicErrorWithStack) {\n dynamicValidation.hasSyncDynamicErrors = true;\n return;\n } else {\n const message = `Route \"${route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. We don't have the exact line number added to error messages yet but you can see which component in the stack below. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\nfunction createErrorWithComponentStack(message, componentStack) {\n const error = new Error(message);\n error.stack = 'Error: ' + message + componentStack;\n return error;\n}\nfunction throwIfDisallowedDynamic(route, dynamicValidation, serverDynamic, clientDynamic) {\n let syncError;\n let syncExpression;\n let syncLogged;\n if (serverDynamic.syncDynamicErrorWithStack) {\n syncError = serverDynamic.syncDynamicErrorWithStack;\n syncExpression = serverDynamic.syncDynamicExpression;\n syncLogged = serverDynamic.syncDynamicLogged === true;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n syncError = clientDynamic.syncDynamicErrorWithStack;\n syncExpression = clientDynamic.syncDynamicExpression;\n syncLogged = clientDynamic.syncDynamicLogged === true;\n } else {\n syncError = null;\n syncExpression = undefined;\n syncLogged = false;\n }\n if (dynamicValidation.hasSyncDynamicErrors && syncError) {\n if (!syncLogged) {\n // In dev we already log errors about sync dynamic access. But during builds we need to ensure\n // the offending sync error is logged before we exit the build\n console.error(syncError);\n }\n // The actual error should have been logged when the sync access ocurred\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length) {\n for(let i = 0; i < dynamicErrors.length; i++){\n console.error(dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (!dynamicValidation.hasSuspendedDynamic) {\n if (dynamicValidation.hasDynamicMetadata) {\n if (syncError) {\n console.error(syncError);\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateMetadata\\` that could not finish rendering before ${syncExpression} was used. Follow the instructions in the error for this expression to resolve.`);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or external data (\\`fetch(...)\\`, etc...) but the rest of the route was static or only used cached data (\\`\"use cache\"\\`). If you expected this route to be prerenderable update your \\`generateMetadata\\` to not use Request data and only use cached external data. Otherwise, add \\`await connection()\\` somewhere within this route to indicate explicitly it should not be prerendered.`);\n } else if (dynamicValidation.hasDynamicViewport) {\n if (syncError) {\n console.error(syncError);\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateViewport\\` that could not finish rendering before ${syncExpression} was used. Follow the instructions in the error for this expression to resolve.`);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or external data (\\`fetch(...)\\`, etc...) but the rest of the route was static or only used cached data (\\`\"use cache\"\\`). If you expected this route to be prerenderable update your \\`generateViewport\\` to not use Request data and only use cached external data. Otherwise, add \\`await connection()\\` somewhere within this route to indicate explicitly it should not be prerendered.`);\n }\n }\n}\n\n//# sourceMappingURL=dynamic-rendering.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBd0JMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNEQUFzRCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3JFLDRCQUE0QixtQkFBTyxDQUFDLDhIQUE4QztBQUNsRixpQ0FBaUMsbUJBQU8sQ0FBQyx3SUFBbUQ7QUFDNUYsc0NBQXNDLG1CQUFPLENBQUMsOEVBQW9DO0FBQ2xGLGtD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TjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDLE1BQU07QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsMEJBQTBCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRkFBbUYsTUFBTSxzRUFBc0UsZ0JBQWdCO0FBQy9LO0FBQ0EsK0VBQStFLE1BQU07QUFDckYsVUFBVTtBQUNWO0FBQ0E7QUFDQSxtRkFBbUYsTUFBTSxzRUFBc0UsZ0JBQWdCO0FBQy9LO0FBQ0EsK0VBQStFLE1BQU07QUFDckY7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGFwcC1yZW5kZXJcXGR5bmFtaWMtcmVuZGVyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGZ1bmN0aW9ucyBwcm92aWRlZCBieSB0aGlzIG1vZHVsZSBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGFib3V0IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb2RlIHNvIHRoYXQgTmV4dC5qcyBjYW4gbWFrZSBkZWNpc2lvbnMgb24gaG93IHRvIGhhbmRsZVxuICogdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGluIGRpZmZlcmVudCByZW5kZXJpbmcgbW9kZXMgc3VjaCBhcyBwcmUtcmVuZGVyaW5nLCByZXN1bWluZywgYW5kIFNTUi5cbiAqXG4gKiBUb2RheSBOZXh0LmpzIHRyZWF0cyBhbGwgY29kZSBhcyBwb3RlbnRpYWxseSBzdGF0aWMuIENlcnRhaW4gQVBJcyBtYXkgb25seSBtYWtlIHNlbnNlIHdoZW4gZHluYW1pY2FsbHkgcmVuZGVyaW5nLlxuICogVHJhZGl0aW9uYWxseSB0aGlzIG1lYW50IGRlb3B0aW5nIHRoZSBlbnRpcmUgcmVuZGVyIHRvIGR5bmFtaWMgaG93ZXZlciB3aXRoIFBQUiB3ZSBjYW4gbm93IGRlb3B0IHBhcnRzXG4gKiBvZiBhIFJlYWN0IHRyZWUgYXMgZHluYW1pYyB3aGlsZSBzdGlsbCBrZWVwaW5nIG90aGVyIHBhcnRzIHN0YXRpYy4gVGhlcmUgYXJlIHJlYWxseSB0d28gZGlmZmVyZW50IGtpbmRzIG9mXG4gKiBEeW5hbWljIGluZGljYXRpb25zLlxuICpcbiAqIFRoZSBmaXJzdCBpcyBzaW1wbHkgYW4gaW50ZW50aW9uIHRvIGJlIGR5bmFtaWMuIHVuc3RhYmxlX25vU3RvcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHdoZXJlXG4gKiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb2RlIHNpbXBseSBkZWNsYXJlcyB0aGF0IHRoZSBjdXJyZW50IHNjb3BlIGlzIGR5bmFtaWMgYnV0IGlmIHlvdSB1c2UgaXRcbiAqIGluc2lkZSB1bnN0YWJsZV9jYWNoZSBpdCBjYW4gc3RpbGwgYmUgY2FjaGVkLiBUaGlzIHR5cGUgb2YgaW5kaWNhdGlvbiBjYW4gYmUgcmVtb3ZlZCBpZiB3ZSBldmVyXG4gKiBtYWtlIHRoZSBkZWZhdWx0IGR5bmFtaWMgdG8gYmVnaW4gd2l0aCBiZWNhdXNlIHRoZSBvbmx5IHdheSB5b3Ugd291bGQgZXZlciBiZSBzdGF0aWMgaXMgaW5zaWRlXG4gKiBhIGNhY2hlIHNjb3BlIHdoaWNoIHRoaXMgaW5kaWNhdGlvbiBkb2VzIG5vdCBhZmZlY3QuXG4gKlxuICogVGhlIHNlY29uZCBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgYSBkeW5hbWljIGRhdGEgc291cmNlIHdhcyByZWFkLiBUaGlzIGlzIGEgc3Ryb25nZXIgZm9ybSBvZiBkeW5hbWljXG4gKiBiZWNhdXNlIGl0IG1lYW5zIHRoYXQgaXQgaXMgaW5hcHByb3ByaWF0ZSB0byBjYWNoZSB0aGlzIGF0IGFsbC4gdXNpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIGluc2lkZVxuICogdW5zdGFibGVfY2FjaGUgc2hvdWxkIGVycm9yLiBJZiB5b3Ugd2FudCB0byB1c2Ugc29tZSBkeW5hbWljIGRhdGEgaW5zaWRlIHVuc3RhYmxlX2NhY2hlIHlvdSBzaG91bGRcbiAqIHJlYWQgdGhhdCBkYXRhIG91dHNpZGUgdGhlIGNhY2hlIGFuZCBwYXNzIGl0IGluIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBjYWNoZWQgZnVuY3Rpb24uXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBQb3N0cG9uZTogbnVsbCxcbiAgICBhYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzOiBudWxsLFxuICAgIGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3M6IG51bGwsXG4gICAgYWNjZXNzZWREeW5hbWljRGF0YTogbnVsbCxcbiAgICBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3M6IG51bGwsXG4gICAgY29uc3VtZUR5bmFtaWNBY2Nlc3M6IG51bGwsXG4gICAgY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGU6IG51bGwsXG4gICAgY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZTogbnVsbCxcbiAgICBjcmVhdGVQb3N0cG9uZWRBYm9ydFNpZ25hbDogbnVsbCxcbiAgICBmb3JtYXREeW5hbWljQVBJQWNjZXNzZXM6IG51bGwsXG4gICAgZ2V0Rmlyc3REeW5hbWljUmVhc29uOiBudWxsLFxuICAgIGlzRHluYW1pY1Bvc3Rwb25lOiBudWxsLFxuICAgIGlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcjogbnVsbCxcbiAgICBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljOiBudWxsLFxuICAgIHBvc3Rwb25lV2l0aFRyYWNraW5nOiBudWxsLFxuICAgIHRocm93SWZEaXNhbGxvd2VkRHluYW1pYzogbnVsbCxcbiAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbjogbnVsbCxcbiAgICB0cmFja0FsbG93ZWREeW5hbWljQWNjZXNzOiBudWxsLFxuICAgIHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXI6IG51bGwsXG4gICAgdHJhY2tGYWxsYmFja1BhcmFtQWNjZXNzZWQ6IG51bGwsXG4gICAgdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldjogbnVsbCxcbiAgICB0cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldjogbnVsbCxcbiAgICB1c2VEeW5hbWljUm91dGVQYXJhbXM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUG9zdHBvbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUG9zdHBvbmU7XG4gICAgfSxcbiAgICBhYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3M7XG4gICAgfSxcbiAgICBhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3M7XG4gICAgfSxcbiAgICBhY2Nlc3NlZER5bmFtaWNEYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFjY2Vzc2VkRHluYW1pY0RhdGE7XG4gICAgfSxcbiAgICBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYW5ub3RhdGVEeW5hbWljQWNjZXNzO1xuICAgIH0sXG4gICAgY29uc3VtZUR5bmFtaWNBY2Nlc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29uc3VtZUR5bmFtaWNBY2Nlc3M7XG4gICAgfSxcbiAgICBjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZUR5bmFtaWNWYWxpZGF0aW9uU3RhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZVBvc3Rwb25lZEFib3J0U2lnbmFsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVBvc3Rwb25lZEFib3J0U2lnbmFsO1xuICAgIH0sXG4gICAgZm9ybWF0RHluYW1pY0FQSUFjY2Vzc2VzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcztcbiAgICB9LFxuICAgIGdldEZpcnN0RHluYW1pY1JlYXNvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRGaXJzdER5bmFtaWNSZWFzb247XG4gICAgfSxcbiAgICBpc0R5bmFtaWNQb3N0cG9uZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0R5bmFtaWNQb3N0cG9uZTtcbiAgICB9LFxuICAgIGlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1ByZXJlbmRlckludGVycnVwdGVkRXJyb3I7XG4gICAgfSxcbiAgICBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1hcmtDdXJyZW50U2NvcGVBc0R5bmFtaWM7XG4gICAgfSxcbiAgICBwb3N0cG9uZVdpdGhUcmFja2luZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwb3N0cG9uZVdpdGhUcmFja2luZztcbiAgICB9LFxuICAgIHRocm93SWZEaXNhbGxvd2VkRHluYW1pYzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aHJvd0lmRGlzYWxsb3dlZER5bmFtaWM7XG4gICAgfSxcbiAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbjtcbiAgICB9LFxuICAgIHRyYWNrQWxsb3dlZER5bmFtaWNBY2Nlc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcztcbiAgICB9LFxuICAgIHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcjtcbiAgICB9LFxuICAgIHRyYWNrRmFsbGJhY2tQYXJhbUFjY2Vzc2VkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNrRmFsbGJhY2tQYXJhbUFjY2Vzc2VkO1xuICAgIH0sXG4gICAgdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2O1xuICAgIH0sXG4gICAgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXY7XG4gICAgfSxcbiAgICB1c2VEeW5hbWljUm91dGVQYXJhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlRHluYW1pY1JvdXRlUGFyYW1zO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9ob29rc3NlcnZlcmNvbnRleHQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHRcIik7XG5jb25zdCBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4vd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9tZXRhZGF0YWNvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvbWV0YWRhdGEvbWV0YWRhdGEtY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBoYXNQb3N0cG9uZSA9IHR5cGVvZiBfcmVhY3QuZGVmYXVsdC51bnN0YWJsZV9wb3N0cG9uZSA9PT0gJ2Z1bmN0aW9uJztcbmZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNUcmFja2luZ1N0YXRlKGlzRGVidWdEeW5hbWljQWNjZXNzZXMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzLFxuICAgICAgICBkeW5hbWljQWNjZXNzZXM6IFtdLFxuICAgICAgICBzeW5jRHluYW1pY0V4cHJlc3Npb246IHVuZGVmaW5lZCxcbiAgICAgICAgc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjazogbnVsbFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGhhc1N1c3BlbmRlZER5bmFtaWM6IGZhbHNlLFxuICAgICAgICBoYXNEeW5hbWljTWV0YWRhdGE6IGZhbHNlLFxuICAgICAgICBoYXNEeW5hbWljVmlld3BvcnQ6IGZhbHNlLFxuICAgICAgICBoYXNTeW5jRHluYW1pY0Vycm9yczogZmFsc2UsXG4gICAgICAgIGR5bmFtaWNFcnJvcnM6IFtdXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldEZpcnN0RHluYW1pY1JlYXNvbih0cmFja2luZ1N0YXRlKSB7XG4gICAgdmFyIF90cmFja2luZ1N0YXRlX2R5bmFtaWNBY2Nlc3Nlc187XG4gICAgcmV0dXJuIChfdHJhY2tpbmdTdGF0ZV9keW5hbWljQWNjZXNzZXNfID0gdHJhY2tpbmdTdGF0ZS5keW5hbWljQWNjZXNzZXNbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfdHJhY2tpbmdTdGF0ZV9keW5hbWljQWNjZXNzZXNfLmV4cHJlc3Npb247XG59XG5mdW5jdGlvbiBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKHN0b3JlLCB3b3JrVW5pdFN0b3JlLCBleHByZXNzaW9uKSB7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJyB8fCB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICd1bnN0YWJsZS1jYWNoZScpIHtcbiAgICAgICAgICAgIC8vIGluc2lkZSBjYWNoZSBzY29wZXMgbWFya2luZyBhIHNjb3BlIGFzIGR5bmFtaWMgaGFzIG5vIGVmZmVjdCBiZWNhdXNlIHRoZSBvdXRlciBjYWNoZSBzY29wZVxuICAgICAgICAgICAgLy8gY3JlYXRlcyBhIGNhY2hlIGJvdW5kYXJ5LiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSByZWFkaW5nIGEgZHluYW1pYyBkYXRhIHNvdXJjZSB3aGljaCBpc1xuICAgICAgICAgICAgLy8gZm9yYmlkZGVuIGluc2lkZSBhIGNhY2hlIHNjb3BlLlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIGZvcmNpbmcgZHluYW1pYyByZW5kZXJpbmcgb3Igd2UncmUgZm9yY2luZyBzdGF0aWMgcmVuZGVyaW5nLCB3ZVxuICAgIC8vIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgaGVyZSBiZWNhdXNlIHRoZSBlbnRpcmUgcGFnZSBpcyBhbHJlYWR5IGR5bmFtaWNcbiAgICAvLyBvciBpdCdzIHN0YXRpYyBhbmQgaXQgc2hvdWxkIG5vdCB0aHJvdyBvciBwb3N0cG9uZSBoZXJlLlxuICAgIGlmIChzdG9yZS5mb3JjZUR5bmFtaWMgfHwgc3RvcmUuZm9yY2VTdGF0aWMpIHJldHVybjtcbiAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQuU3RhdGljR2VuQmFpbG91dEVycm9yKGBSb3V0ZSAke3N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYCk7XG4gICAgfVxuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgcG9zdHBvbmVXaXRoVHJhY2tpbmcoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgfSBlbHNlIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5Jykge1xuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgIC8vIFdlIGFyZW4ndCBwcmVyZW5kZXJpbmcgYnV0IHdlIGFyZSBnZW5lcmF0aW5nIGEgc3RhdGljIHBhZ2UuIFdlIG5lZWQgdG8gYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb25cbiAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBfaG9va3NzZXJ2ZXJjb250ZXh0LkR5bmFtaWNTZXJ2ZXJFcnJvcihgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmApO1xuICAgICAgICAgICAgc3RvcmUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb24gPSBleHByZXNzaW9uO1xuICAgICAgICAgICAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2s7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgd29ya1VuaXRTdG9yZSAmJiB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdyZXF1ZXN0Jykge1xuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0cmFja0ZhbGxiYWNrUGFyYW1BY2Nlc3NlZChzdG9yZSwgZXhwcmVzc2lvbikge1xuICAgIGNvbnN0IHByZXJlbmRlclN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXByZXJlbmRlclN0b3JlIHx8IHByZXJlbmRlclN0b3JlLnR5cGUgIT09ICdwcmVyZW5kZXItcHByJykgcmV0dXJuO1xuICAgIHBvc3Rwb25lV2l0aFRyYWNraW5nKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xufVxuZnVuY3Rpb24gdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24oZXhwcmVzc2lvbiwgc3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZyBidXQgd2UgYXJlIGdlbmVyYXRpbmcgYSBzdGF0aWMgcGFnZS4gV2UgbmVlZCB0byBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvblxuICAgIGNvbnN0IGVyciA9IG5ldyBfaG9va3NzZXJ2ZXJjb250ZXh0LkR5bmFtaWNTZXJ2ZXJFcnJvcihgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmApO1xuICAgIHByZXJlbmRlclN0b3JlLnJldmFsaWRhdGUgPSAwO1xuICAgIHN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZXhwcmVzc2lvbjtcbiAgICBzdG9yZS5keW5hbWljVXNhZ2VTdGFjayA9IGVyci5zdGFjaztcbiAgICB0aHJvdyBlcnI7XG59XG5mdW5jdGlvbiB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKF9zdG9yZSwgd29ya1VuaXRTdG9yZSkge1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdjYWNoZScgfHwgd29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnKSB7XG4gICAgICAgICAgICAvLyBpbnNpZGUgY2FjaGUgc2NvcGVzIG1hcmtpbmcgYSBzY29wZSBhcyBkeW5hbWljIGhhcyBubyBlZmZlY3QgYmVjYXVzZSB0aGUgb3V0ZXIgY2FjaGUgc2NvcGVcbiAgICAgICAgICAgIC8vIGNyZWF0ZXMgYSBjYWNoZSBib3VuZGFyeS4gVGhpcyBpcyBzdWJ0bHkgZGlmZmVyZW50IGZyb20gcmVhZGluZyBhIGR5bmFtaWMgZGF0YSBzb3VyY2Ugd2hpY2ggaXNcbiAgICAgICAgICAgIC8vIGZvcmJpZGRlbiBpbnNpZGUgYSBjYWNoZSBzY29wZS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJyB8fCB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5Jykge1xuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcpIHtcbiAgICAgICAgICAgIHdvcmtVbml0U3RvcmUudXNlZER5bmFtaWMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gRGVzcGl0ZSBpdCdzIG5hbWUgd2UgZG9uJ3QgYWN0dWFsbHkgYWJvcnQgdW5sZXNzIHdlIGhhdmUgYSBjb250cm9sbGVyIHRvIGNhbGwgYWJvcnQgb25cbi8vIFRoZXJlIGFyZSB0aW1lcyB3aGVuIHdlIGxldCBhIHByZXJlbmRlciBydW4gbG9uZyB0byBkaXNjb3ZlciBjYWNoZXMgd2hlcmUgd2Ugd2FudCB0aGUgc2VtYW50aWNzXG4vLyBvZiB0cmFja2luZyBkeW5hbWljIGFjY2VzcyB3aXRob3V0IHRlcm1pbmF0aW5nIHRoZSBwcmVyZW5kZXIgZWFybHlcbmZ1bmN0aW9uIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IHJlYXNvbiA9IGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS5gO1xuICAgIGNvbnN0IGVycm9yID0gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihyZWFzb24pO1xuICAgIHByZXJlbmRlclN0b3JlLmNvbnRyb2xsZXIuYWJvcnQoZXJyb3IpO1xuICAgIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZztcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZW4ndCBkZWJ1Z2dpbmcsIHdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgZXJyb3IgZm9yIHRoZVxuICAgICAgICAgICAgLy8gc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXMgPyBuZXcgRXJyb3IoKS5zdGFjayA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV4cHJlc3Npb25cbiAgICAgICAgfSk7XG4gICAgfVxufVxuZnVuY3Rpb24gYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgZXJyb3JXaXRoU3RhY2ssIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nO1xuICAgIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICAgICAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID09PSBudWxsKSB7XG4gICAgICAgICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFeHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID0gZXJyb3JXaXRoU3RhY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSk7XG59XG5mdW5jdGlvbiB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2KHJlcXVlc3RTdG9yZSkge1xuICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjb250cm9sbGVyIHRvIGFib3J0IGJ1dCB3ZSBkbyB0aGUgc2VtYW50aWMgZXF1aXZhbGVudCBieVxuICAgIC8vIGFkdmFuY2luZyB0aGUgcmVxdWVzdCBzdG9yZSBvdXQgb2YgcHJlcmVuZGVyIG1vZGVcbiAgICByZXF1ZXN0U3RvcmUucHJlcmVuZGVyUGhhc2UgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24sIGVycm9yV2l0aFN0YWNrLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZztcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgICAgIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9PT0gbnVsbCkge1xuICAgICAgICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gICAgICAgICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9IGVycm9yV2l0aFN0YWNrO1xuICAgICAgICAgICAgaWYgKHByZXJlbmRlclN0b3JlLnZhbGlkYXRpbmcgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBhbHdheXMgbG9nIFJlcXVlc3QgQWNjZXNzIGluIGRldiBhdCB0aGUgcG9pbnQgb2YgY2FsbGluZyB0aGUgZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAvLyBTbyB3ZSBtYXJrIHRoZSBkeW5hbWljIHZhbGlkYXRpb24gYXMgbm90IHJlcXVpcmluZyBpdCB0byBiZSBwcmludGVkXG4gICAgICAgICAgICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljTG9nZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgIHRocm93IGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IoYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LmApO1xufVxuY29uc3QgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYgPSB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2O1xuZnVuY3Rpb24gUG9zdHBvbmUoeyByZWFzb24sIHJvdXRlIH0pIHtcbiAgICBjb25zdCBwcmVyZW5kZXJTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUgJiYgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInID8gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nIDogbnVsbDtcbiAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhyb3V0ZSwgcmVhc29uLCBkeW5hbWljVHJhY2tpbmcpO1xufVxuZnVuY3Rpb24gcG9zdHBvbmVXaXRoVHJhY2tpbmcocm91dGUsIGV4cHJlc3Npb24sIGR5bmFtaWNUcmFja2luZykge1xuICAgIGFzc2VydFBvc3Rwb25lKCk7XG4gICAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgICAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmVuJ3QgZGVidWdnaW5nLCB3ZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGVycm9yIGZvciB0aGVcbiAgICAgICAgICAgIC8vIHN0YWNrIHRyYWNlLlxuICAgICAgICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzID8gbmV3IEVycm9yKCkuc3RhY2sgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBleHByZXNzaW9uXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfcmVhY3QuZGVmYXVsdC51bnN0YWJsZV9wb3N0cG9uZShjcmVhdGVQb3N0cG9uZVJlYXNvbihyb3V0ZSwgZXhwcmVzc2lvbikpO1xufVxuZnVuY3Rpb24gY3JlYXRlUG9zdHBvbmVSZWFzb24ocm91dGUsIGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBgICsgYFJlYWN0IHRocm93cyB0aGlzIHNwZWNpYWwgb2JqZWN0IHRvIGluZGljYXRlIHdoZXJlLiBJdCBzaG91bGQgbm90IGJlIGNhdWdodCBieSBgICsgYHlvdXIgb3duIHRyeS9jYXRjaC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcmA7XG59XG5mdW5jdGlvbiBpc0R5bmFtaWNQb3N0cG9uZShlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmIHR5cGVvZiBlcnIubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKGVyci5tZXNzYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNEeW5hbWljUG9zdHBvbmVSZWFzb24ocmVhc29uKSB7XG4gICAgcmV0dXJuIHJlYXNvbi5pbmNsdWRlcygnbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkJykgJiYgcmVhc29uLmluY2x1ZGVzKCdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yJyk7XG59XG5pZiAoaXNEeW5hbWljUG9zdHBvbmVSZWFzb24oY3JlYXRlUG9zdHBvbmVSZWFzb24oJyUlJScsICdeXl4nKSkgPT09IGZhbHNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IGlzRHluYW1pY1Bvc3Rwb25lIG1pc2lkZW50aWZpZWQgYSBwb3N0cG9uZSByZWFzb24uIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpO1xufVxuY29uc3QgTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQgPSAnTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQnO1xuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgZXJyb3IuZGlnZXN0ID0gTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQ7XG4gICAgcmV0dXJuIGVycm9yO1xufVxuZnVuY3Rpb24gaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgZXJyb3IuZGlnZXN0ID09PSBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCAmJiAnbmFtZScgaW4gZXJyb3IgJiYgJ21lc3NhZ2UnIGluIGVycm9yICYmIGVycm9yIGluc3RhbmNlb2YgRXJyb3I7XG59XG5mdW5jdGlvbiBhY2Nlc3NlZER5bmFtaWNEYXRhKGR5bmFtaWNBY2Nlc3Nlcykge1xuICAgIHJldHVybiBkeW5hbWljQWNjZXNzZXMubGVuZ3RoID4gMDtcbn1cbmZ1bmN0aW9uIGNvbnN1bWVEeW5hbWljQWNjZXNzKHNlcnZlckR5bmFtaWMsIGNsaWVudER5bmFtaWMpIHtcbiAgICAvLyBXZSBtdXRhdGUgYmVjYXVzZSB3ZSBvbmx5IGNhbGwgdGhpcyBvbmNlIHdlIGFyZSBubyBsb25nZXIgd3JpdGluZ1xuICAgIC8vIHRvIHRoZSBkeW5hbWljVHJhY2tpbmdTdGF0ZSBhbmQgaXQncyBtb3JlIGVmZmljaWVudCB0aGFuIGNyZWF0aW5nIGEgbmV3XG4gICAgLy8gYXJyYXkuXG4gICAgc2VydmVyRHluYW1pYy5keW5hbWljQWNjZXNzZXMucHVzaCguLi5jbGllbnREeW5hbWljLmR5bmFtaWNBY2Nlc3Nlcyk7XG4gICAgcmV0dXJuIHNlcnZlckR5bmFtaWMuZHluYW1pY0FjY2Vzc2VzO1xufVxuZnVuY3Rpb24gZm9ybWF0RHluYW1pY0FQSUFjY2Vzc2VzKGR5bmFtaWNBY2Nlc3Nlcykge1xuICAgIHJldHVybiBkeW5hbWljQWNjZXNzZXMuZmlsdGVyKChhY2Nlc3MpPT50eXBlb2YgYWNjZXNzLnN0YWNrID09PSAnc3RyaW5nJyAmJiBhY2Nlc3Muc3RhY2subGVuZ3RoID4gMCkubWFwKCh7IGV4cHJlc3Npb24sIHN0YWNrIH0pPT57XG4gICAgICAgIHN0YWNrID0gc3RhY2suc3BsaXQoJ1xcbicpLy8gUmVtb3ZlIHRoZSBcIkVycm9yOiBcIiBwcmVmaXggZnJvbSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc3RhY2sgdHJhY2UgYXNcbiAgICAgICAgLy8gd2VsbCBhcyB0aGUgZmlyc3QgNCBsaW5lcyBvZiB0aGUgc3RhY2sgdHJhY2Ugd2hpY2ggaXMgdGhlIGRpc3RhbmNlXG4gICAgICAgIC8vIGZyb20gdGhlIHVzZXIgY29kZSBhbmQgdGhlIGBuZXcgRXJyb3IoKS5zdGFja2AgY2FsbC5cbiAgICAgICAgLnNsaWNlKDQpLmZpbHRlcigobGluZSk9PntcbiAgICAgICAgICAgIC8vIEV4Y2x1ZGUgTmV4dC5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzL25leHQvJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBFeGNsdWRlIGFub255bW91cyBmdW5jdGlvbnMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnICg8YW5vbnltb3VzPiknKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEV4Y2x1ZGUgTm9kZS5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnIChub2RlOicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pLmpvaW4oJ1xcbicpO1xuICAgICAgICByZXR1cm4gYER5bmFtaWMgQVBJIFVzYWdlIERlYnVnIC0gJHtleHByZXNzaW9ufTpcXG4ke3N0YWNrfWA7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBhc3NlcnRQb3N0cG9uZSgpIHtcbiAgICBpZiAoIWhhc1Bvc3Rwb25lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YXJpYW50OiBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZSBpcyBub3QgZGVmaW5lZC4gVGhpcyBzdWdnZXN0cyB0aGUgd3JvbmcgdmVyc2lvbiBvZiBSZWFjdCB3YXMgbG9hZGVkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanNgKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVQb3N0cG9uZWRBYm9ydFNpZ25hbChyZWFzb24pIHtcbiAgICBhc3NlcnRQb3N0cG9uZSgpO1xuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgLy8gV2UgZ2V0IG91ciBoYW5kcyBvbiBhIHBvc3Rwb25lIGluc3RhbmNlIGJ5IGNhbGxpbmcgcG9zdHBvbmUgYW5kIGNhdGNoaW5nIHRoZSB0aHJvd1xuICAgIHRyeSB7XG4gICAgICAgIF9yZWFjdC5kZWZhdWx0LnVuc3RhYmxlX3Bvc3Rwb25lKHJlYXNvbik7XG4gICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBjb250cm9sbGVyLmFib3J0KHgpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbGxlci5zaWduYWw7XG59XG5mdW5jdGlvbiBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3MoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmc7XG4gICAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgICAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzID8gbmV3IEVycm9yKCkuc3RhY2sgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBleHByZXNzaW9uXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHVzZUR5bmFtaWNSb3V0ZVBhcmFtcyhleHByZXNzaW9uKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnN0IHdvcmtTdG9yZSA9IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICBpZiAod29ya1N0b3JlICYmIHdvcmtTdG9yZS5pc1N0YXRpY0dlbmVyYXRpb24gJiYgd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXMgJiYgd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBmYWxsYmFjayByb3V0ZSBwYXJhbXMsIHdlIHNob3VsZCB0cmFjayB0aGVzZSBhcyBkeW5hbWljXG4gICAgICAgICAgICAvLyBhY2Nlc3Nlcy5cbiAgICAgICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgd2l0aCBkeW5hbWljSU8gb3IgUFBSIG9yIGJvdGhcbiAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgaW4gYSBwcmVyZW5kZXIgd2l0aCBkeW5hbWljSU8gc2VtYW50aWNzXG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBoYW5nIGhlcmUgYW5kIG5ldmVyIHJlc29sdmUuIFRoaXMgd2lsbCBjYXVzZSB0aGUgY3VycmVudGx5XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbmRlcmluZyBjb21wb25lbnQgdG8gZWZmZWN0aXZlbHkgYmUgYSBkeW5hbWljIGhvbGVcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0LmRlZmF1bHQudXNlKCgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsIGV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyB3aXRoIFBQUlxuICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1sZWdhY3knKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgaGFzU3VzcGVuc2VSZWdleCA9IC9cXG5cXHMrYXQgU3VzcGVuc2UgXFwoPGFub255bW91cz5cXCkvO1xuY29uc3QgaGFzTWV0YWRhdGFSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtfbWV0YWRhdGFjb25zdGFudHMuTUVUQURBVEFfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gKTtcbmNvbnN0IGhhc1ZpZXdwb3J0UmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcblxcXFxzK2F0ICR7X21ldGFkYXRhY29uc3RhbnRzLlZJRVdQT1JUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYCk7XG5jb25zdCBoYXNPdXRsZXRSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtfbWV0YWRhdGFjb25zdGFudHMuT1VUTEVUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYCk7XG5mdW5jdGlvbiB0cmFja0FsbG93ZWREeW5hbWljQWNjZXNzKHJvdXRlLCBjb21wb25lbnRTdGFjaywgZHluYW1pY1ZhbGlkYXRpb24sIHNlcnZlckR5bmFtaWMsIGNsaWVudER5bmFtaWMpIHtcbiAgICBpZiAoaGFzT3V0bGV0UmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byB0cmFjayB0aGF0IHRoaXMgaXMgZHluYW1pYy4gSXQgaXMgb25seSBzbyB3aGVuIHNvbWV0aGluZyBlbHNlIGlzIGFsc28gZHluYW1pYy5cbiAgICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoaGFzTWV0YWRhdGFSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgICAgICBkeW5hbWljVmFsaWRhdGlvbi5oYXNEeW5hbWljTWV0YWRhdGEgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChoYXNWaWV3cG9ydFJlZ2V4LnRlc3QoY29tcG9uZW50U3RhY2spKSB7XG4gICAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGhhc1N1c3BlbnNlUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3VzcGVuZGVkRHluYW1pYyA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHNlcnZlckR5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayB8fCBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3luY0R5bmFtaWNFcnJvcnMgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBSb3V0ZSBcIiR7cm91dGV9XCI6IEEgY29tcG9uZW50IGFjY2Vzc2VkIGRhdGEsIGhlYWRlcnMsIHBhcmFtcywgc2VhcmNoUGFyYW1zLCBvciBhIHNob3J0LWxpdmVkIGNhY2hlIHdpdGhvdXQgYSBTdXNwZW5zZSBib3VuZGFyeSBub3IgYSBcInVzZSBjYWNoZVwiIGFib3ZlIGl0LiBXZSBkb24ndCBoYXZlIHRoZSBleGFjdCBsaW5lIG51bWJlciBhZGRlZCB0byBlcnJvciBtZXNzYWdlcyB5ZXQgYnV0IHlvdSBjYW4gc2VlIHdoaWNoIGNvbXBvbmVudCBpbiB0aGUgc3RhY2sgYmVsb3cuIFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLW1pc3Npbmctc3VzcGVuc2VgO1xuICAgICAgICBjb25zdCBlcnJvciA9IGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudFN0YWNrKG1lc3NhZ2UsIGNvbXBvbmVudFN0YWNrKTtcbiAgICAgICAgZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudFN0YWNrKG1lc3NhZ2UsIGNvbXBvbmVudFN0YWNrKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgZXJyb3Iuc3RhY2sgPSAnRXJyb3I6ICcgKyBtZXNzYWdlICsgY29tcG9uZW50U3RhY2s7XG4gICAgcmV0dXJuIGVycm9yO1xufVxuZnVuY3Rpb24gdGhyb3dJZkRpc2FsbG93ZWREeW5hbWljKHJvdXRlLCBkeW5hbWljVmFsaWRhdGlvbiwgc2VydmVyRHluYW1pYywgY2xpZW50RHluYW1pYykge1xuICAgIGxldCBzeW5jRXJyb3I7XG4gICAgbGV0IHN5bmNFeHByZXNzaW9uO1xuICAgIGxldCBzeW5jTG9nZ2VkO1xuICAgIGlmIChzZXJ2ZXJEeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgICAgc3luY0Vycm9yID0gc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrO1xuICAgICAgICBzeW5jRXhwcmVzc2lvbiA9IHNlcnZlckR5bmFtaWMuc3luY0R5bmFtaWNFeHByZXNzaW9uO1xuICAgICAgICBzeW5jTG9nZ2VkID0gc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0xvZ2dlZCA9PT0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNsaWVudER5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaykge1xuICAgICAgICBzeW5jRXJyb3IgPSBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s7XG4gICAgICAgIHN5bmNFeHByZXNzaW9uID0gY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0V4cHJlc3Npb247XG4gICAgICAgIHN5bmNMb2dnZWQgPSBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljTG9nZ2VkID09PSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHN5bmNFcnJvciA9IG51bGw7XG4gICAgICAgIHN5bmNFeHByZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgICBzeW5jTG9nZ2VkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChkeW5hbWljVmFsaWRhdGlvbi5oYXNTeW5jRHluYW1pY0Vycm9ycyAmJiBzeW5jRXJyb3IpIHtcbiAgICAgICAgaWYgKCFzeW5jTG9nZ2VkKSB7XG4gICAgICAgICAgICAvLyBJbiBkZXYgd2UgYWxyZWFkeSBsb2cgZXJyb3JzIGFib3V0IHN5bmMgZHluYW1pYyBhY2Nlc3MuIEJ1dCBkdXJpbmcgYnVpbGRzIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAgICAgICAvLyB0aGUgb2ZmZW5kaW5nIHN5bmMgZXJyb3IgaXMgbG9nZ2VkIGJlZm9yZSB3ZSBleGl0IHRoZSBidWlsZFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihzeW5jRXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBhY3R1YWwgZXJyb3Igc2hvdWxkIGhhdmUgYmVlbiBsb2dnZWQgd2hlbiB0aGUgc3luYyBhY2Nlc3Mgb2N1cnJlZFxuICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcigpO1xuICAgIH1cbiAgICBjb25zdCBkeW5hbWljRXJyb3JzID0gZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycztcbiAgICBpZiAoZHluYW1pY0Vycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGR5bmFtaWNFcnJvcnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihkeW5hbWljRXJyb3JzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcigpO1xuICAgIH1cbiAgICBpZiAoIWR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbmRlZER5bmFtaWMpIHtcbiAgICAgICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YSkge1xuICAgICAgICAgICAgaWYgKHN5bmNFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3Ioc3luY0Vycm9yKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlTWV0YWRhdGFcXGAgdGhhdCBjb3VsZCBub3QgZmluaXNoIHJlbmRlcmluZyBiZWZvcmUgJHtzeW5jRXhwcmVzc2lvbn0gd2FzIHVzZWQuIEZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBlcnJvciBmb3IgdGhpcyBleHByZXNzaW9uIHRvIHJlc29sdmUuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlTWV0YWRhdGFcXGAgdGhhdCBkZXBlbmRzIG9uIFJlcXVlc3QgZGF0YSAoXFxgY29va2llcygpXFxgLCBldGMuLi4pIG9yIGV4dGVybmFsIGRhdGEgKFxcYGZldGNoKC4uLilcXGAsIGV0Yy4uLikgYnV0IHRoZSByZXN0IG9mIHRoZSByb3V0ZSB3YXMgc3RhdGljIG9yIG9ubHkgdXNlZCBjYWNoZWQgZGF0YSAoXFxgXCJ1c2UgY2FjaGVcIlxcYCkuIElmIHlvdSBleHBlY3RlZCB0aGlzIHJvdXRlIHRvIGJlIHByZXJlbmRlcmFibGUgdXBkYXRlIHlvdXIgXFxgZ2VuZXJhdGVNZXRhZGF0YVxcYCB0byBub3QgdXNlIFJlcXVlc3QgZGF0YSBhbmQgb25seSB1c2UgY2FjaGVkIGV4dGVybmFsIGRhdGEuIE90aGVyd2lzZSwgYWRkIFxcYGF3YWl0IGNvbm5lY3Rpb24oKVxcYCBzb21ld2hlcmUgd2l0aGluIHRoaXMgcm91dGUgdG8gaW5kaWNhdGUgZXhwbGljaXRseSBpdCBzaG91bGQgbm90IGJlIHByZXJlbmRlcmVkLmApO1xuICAgICAgICB9IGVsc2UgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCkge1xuICAgICAgICAgICAgaWYgKHN5bmNFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3Ioc3luY0Vycm9yKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlVmlld3BvcnRcXGAgdGhhdCBjb3VsZCBub3QgZmluaXNoIHJlbmRlcmluZyBiZWZvcmUgJHtzeW5jRXhwcmVzc2lvbn0gd2FzIHVzZWQuIEZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBlcnJvciBmb3IgdGhpcyBleHByZXNzaW9uIHRvIHJlc29sdmUuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlVmlld3BvcnRcXGAgdGhhdCBkZXBlbmRzIG9uIFJlcXVlc3QgZGF0YSAoXFxgY29va2llcygpXFxgLCBldGMuLi4pIG9yIGV4dGVybmFsIGRhdGEgKFxcYGZldGNoKC4uLilcXGAsIGV0Yy4uLikgYnV0IHRoZSByZXN0IG9mIHRoZSByb3V0ZSB3YXMgc3RhdGljIG9yIG9ubHkgdXNlZCBjYWNoZWQgZGF0YSAoXFxgXCJ1c2UgY2FjaGVcIlxcYCkuIElmIHlvdSBleHBlY3RlZCB0aGlzIHJvdXRlIHRvIGJlIHByZXJlbmRlcmFibGUgdXBkYXRlIHlvdXIgXFxgZ2VuZXJhdGVWaWV3cG9ydFxcYCB0byBub3QgdXNlIFJlcXVlc3QgZGF0YSBhbmQgb25seSB1c2UgY2FjaGVkIGV4dGVybmFsIGRhdGEuIE90aGVyd2lzZSwgYWRkIFxcYGF3YWl0IGNvbm5lY3Rpb24oKVxcYCBzb21ld2hlcmUgd2l0aGluIHRoaXMgcm91dGUgdG8gaW5kaWNhdGUgZXhwbGljaXRseSBpdCBzaG91bGQgbm90IGJlIHByZXJlbmRlcmVkLmApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1keW5hbWljLXJlbmRlcmluZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/app-render/get-segment-param.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/get-segment-param.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSegmentParam\", ({\n enumerable: true,\n get: function() {\n return getSegmentParam;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../lib/interception-routes */ \"(ssr)/./node_modules/next/dist/server/lib/interception-routes.js\");\nfunction getSegmentParam(segment) {\n const interceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((marker)=>segment.startsWith(marker));\n // if an interception marker is part of the path segment, we need to jump ahead\n // to the relevant portion for param parsing\n if (interceptionMarker) {\n segment = segment.slice(interceptionMarker.length);\n }\n if (segment.startsWith('[[...') && segment.endsWith(']]')) {\n return {\n // TODO-APP: Optional catchall does not currently work with parallel routes,\n // so for now aren't handling a potential interception marker.\n type: 'optional-catchall',\n param: segment.slice(5, -2)\n };\n }\n if (segment.startsWith('[...') && segment.endsWith(']')) {\n return {\n type: interceptionMarker ? 'catchall-intercepted' : 'catchall',\n param: segment.slice(4, -1)\n };\n }\n if (segment.startsWith('[') && segment.endsWith(']')) {\n return {\n type: interceptionMarker ? 'dynamic-intercepted' : 'dynamic',\n param: segment.slice(1, -1)\n };\n }\n return null;\n}\n\n//# sourceMappingURL=get-segment-param.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2dldC1zZWdtZW50LXBhcmFtLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsbURBQWtEO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNEJBQTRCLG1CQUFPLENBQUMsb0dBQTRCO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcYXBwLXJlbmRlclxcZ2V0LXNlZ21lbnQtcGFyYW0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRTZWdtZW50UGFyYW1cIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFNlZ21lbnRQYXJhbTtcbiAgICB9XG59KTtcbmNvbnN0IF9pbnRlcmNlcHRpb25yb3V0ZXMgPSByZXF1aXJlKFwiLi4vbGliL2ludGVyY2VwdGlvbi1yb3V0ZXNcIik7XG5mdW5jdGlvbiBnZXRTZWdtZW50UGFyYW0oc2VnbWVudCkge1xuICAgIGNvbnN0IGludGVyY2VwdGlvbk1hcmtlciA9IF9pbnRlcmNlcHRpb25yb3V0ZXMuSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobWFya2VyKT0+c2VnbWVudC5zdGFydHNXaXRoKG1hcmtlcikpO1xuICAgIC8vIGlmIGFuIGludGVyY2VwdGlvbiBtYXJrZXIgaXMgcGFydCBvZiB0aGUgcGF0aCBzZWdtZW50LCB3ZSBuZWVkIHRvIGp1bXAgYWhlYWRcbiAgICAvLyB0byB0aGUgcmVsZXZhbnQgcG9ydGlvbiBmb3IgcGFyYW0gcGFyc2luZ1xuICAgIGlmIChpbnRlcmNlcHRpb25NYXJrZXIpIHtcbiAgICAgICAgc2VnbWVudCA9IHNlZ21lbnQuc2xpY2UoaW50ZXJjZXB0aW9uTWFya2VyLmxlbmd0aCk7XG4gICAgfVxuICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoJ1tbLi4uJykgJiYgc2VnbWVudC5lbmRzV2l0aCgnXV0nKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IE9wdGlvbmFsIGNhdGNoYWxsIGRvZXMgbm90IGN1cnJlbnRseSB3b3JrIHdpdGggcGFyYWxsZWwgcm91dGVzLFxuICAgICAgICAgICAgLy8gc28gZm9yIG5vdyBhcmVuJ3QgaGFuZGxpbmcgYSBwb3RlbnRpYWwgaW50ZXJjZXB0aW9uIG1hcmtlci5cbiAgICAgICAgICAgIHR5cGU6ICdvcHRpb25hbC1jYXRjaGFsbCcsXG4gICAgICAgICAgICBwYXJhbTogc2VnbWVudC5zbGljZSg1LCAtMilcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aCgnWy4uLicpICYmIHNlZ21lbnQuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogaW50ZXJjZXB0aW9uTWFya2VyID8gJ2NhdGNoYWxsLWludGVyY2VwdGVkJyA6ICdjYXRjaGFsbCcsXG4gICAgICAgICAgICBwYXJhbTogc2VnbWVudC5zbGljZSg0LCAtMSlcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aCgnWycpICYmIHNlZ21lbnQuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogaW50ZXJjZXB0aW9uTWFya2VyID8gJ2R5bmFtaWMtaW50ZXJjZXB0ZWQnIDogJ2R5bmFtaWMnLFxuICAgICAgICAgICAgcGFyYW06IHNlZ21lbnQuc2xpY2UoMSwgLTEpXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtc2VnbWVudC1wYXJhbS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/app-render/get-segment-param.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 Dynamic IO 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQTZCLEdBQUcsQ0FBYTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxjcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldlwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldjtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5jb25zdCBlcnJvclJlZiA9IHtcbiAgICBjdXJyZW50OiBudWxsXG59O1xuLy8gUmVhY3QuY2FjaGUgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIGNhbmFyeS9leHBlcmltZW50YWwgUmVhY3QgY2hhbm5lbHMuXG5jb25zdCBjYWNoZSA9IHR5cGVvZiBfcmVhY3QuY2FjaGUgPT09ICdmdW5jdGlvbicgPyBfcmVhY3QuY2FjaGUgOiAoZm4pPT5mbjtcbi8vIFdoZW4gRHluYW1pYyBJTyBpcyBlbmFibGVkLCB3ZSByZWNvcmQgdGhlc2UgYXMgZXJyb3JzIHNvIHRoYXQgdGhleVxuLy8gYXJlIGNhcHR1cmVkIGJ5IHRoZSBkZXYgb3ZlcmxheSBhcyBpdCdzIG1vcmUgY3JpdGljYWwgdG8gZml4IHRoZXNlXG4vLyB3aGVuIGVuYWJsZWQuXG5jb25zdCBsb2dFcnJvck9yV2FybiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9EWU5BTUlDX0lPID8gY29uc29sZS5lcnJvciA6IGNvbnNvbGUud2Fybjtcbi8vIFdlIGRvbid0IHdhbnQgdG8gZGVkdXBlIGFjcm9zcyByZXF1ZXN0cy5cbi8vIFRoZSBkZXZlbG9wZXIgbWlnaHQndmUganVzdCBhdHRlbXB0ZWQgdG8gZml4IHRoZSB3YXJuaW5nIHNvIHdlIHNob3VsZCB3YXJuIGFnYWluIGlmIGl0IHN0aWxsIGhhcHBlbnMuXG5jb25zdCBmbHVzaEN1cnJlbnRFcnJvcklmTmV3ID0gY2FjaGUoLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBjYWNoZSBrZXlcbihrZXkpPT57XG4gICAgdHJ5IHtcbiAgICAgICAgbG9nRXJyb3JPcldhcm4oZXJyb3JSZWYuY3VycmVudCk7XG4gICAgfSBmaW5hbGx5e1xuICAgICAgICBlcnJvclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYoZ2V0TWVzc2FnZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBsb2dEZWR1cGVkRXJyb3IoLi4uYXJncykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZ2V0TWVzc2FnZSguLi5hcmdzKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBfc3RhY2s7XG4gICAgICAgICAgICBjb25zdCBjYWxsU3RhY2tGcmFtZXMgPSAoX3N0YWNrID0gbmV3IEVycm9yKCkuc3RhY2spID09IG51bGwgPyB2b2lkIDAgOiBfc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgaWYgKGNhbGxTdGFja0ZyYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGNhbGxTdGFja0ZyYW1lcy5sZW5ndGggPCA0KSB7XG4gICAgICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEVycm9yOlxuICAgICAgICAgICAgICAgIC8vICAgbG9nRGVkdXBlZEVycm9yXG4gICAgICAgICAgICAgICAgLy8gICBhc3luY0FwaUJlaW5nQWNjZXNzZWRTeW5jaHJvbm91c2x5XG4gICAgICAgICAgICAgICAgLy8gICA8dXNlcmxhbmQgY2FsbHNpdGU+XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBicmVha3MgaWYgc291cmNlbWFwcyB3aXRoIGlnbm9yZSBsaXN0cyBhcmUgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBjYWxsU3RhY2tGcmFtZXNbNF07XG4gICAgICAgICAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyhrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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/extract-modules-from-turbopack-message.js":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js ***!
|
||
\*************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"extractModulesFromTurbopackMessage\", ({\n enumerable: true,\n get: function() {\n return extractModulesFromTurbopackMessage;\n }\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 [\n ...updatedModules\n ];\n}\n\n//# sourceMappingURL=extract-modules-from-turbopack-message.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvZXh0cmFjdC1tb2R1bGVzLWZyb20tdHVyYm9wYWNrLW1lc3NhZ2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzRUFBcUU7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxkZXZcXGV4dHJhY3QtbW9kdWxlcy1mcm9tLXR1cmJvcGFjay1tZXNzYWdlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2UoZGF0YSkge1xuICAgIGNvbnN0IHVwZGF0ZWRNb2R1bGVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVwZGF0ZXMgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtcbiAgICAgICAgZGF0YVxuICAgIF07XG4gICAgZm9yIChjb25zdCB1cGRhdGUgb2YgdXBkYXRlcyl7XG4gICAgICAgIC8vIFRPRE8gdGhpcyB3b24ndCBjYXB0dXJlIGNoYW5nZXMgdG8gQ1NTIHNpbmNlIHRoZXkgZG9uJ3QgcmVzdWx0IGluIGEgXCJtZXJnZWRcIiB1cGRhdGVcbiAgICAgICAgaWYgKHVwZGF0ZS50eXBlICE9PSAncGFydGlhbCcgfHwgdXBkYXRlLmluc3RydWN0aW9uLnR5cGUgIT09ICdDaHVua0xpc3RVcGRhdGUnIHx8IHVwZGF0ZS5pbnN0cnVjdGlvbi5tZXJnZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBtZXJnZWRVcGRhdGUgb2YgdXBkYXRlLmluc3RydWN0aW9uLm1lcmdlZCl7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMobWVyZ2VkVXBkYXRlLmVudHJpZXMpKXtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSAvKC4qKVxccytcXFsuKi8uZXhlYyhuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUdXJib3BhY2sgSE1SXSBFeHBlY3RlZCBtb2R1bGUgdG8gbWF0Y2ggcGF0dGVybjogJyArIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdXBkYXRlZE1vZHVsZXMuYWRkKHJlc1sxXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgICAgLi4udXBkYXRlZE1vZHVsZXNcbiAgICBdO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1leHRyYWN0LW1vZHVsZXMtZnJvbS10dXJib3BhY2stbWVzc2FnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.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[\"APP_ISR_MANIFEST\"] = \"appIsrManifest\";\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0RBQThEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxkZXZcXGhvdC1yZWxvYWRlci10eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUlwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSO1xuICAgIH1cbn0pO1xudmFyIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSKSB7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQURERURfUEFHRVwiXSA9IFwiYWRkZWRQYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiUkVNT1ZFRF9QQUdFXCJdID0gXCJyZW1vdmVkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlJFTE9BRF9QQUdFXCJdID0gXCJyZWxvYWRQYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX0NPTVBPTkVOVF9DSEFOR0VTXCJdID0gXCJzZXJ2ZXJDb21wb25lbnRDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiTUlERExFV0FSRV9DSEFOR0VTXCJdID0gXCJtaWRkbGV3YXJlQ2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkNMSUVOVF9DSEFOR0VTXCJdID0gXCJjbGllbnRDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX09OTFlfQ0hBTkdFU1wiXSA9IFwic2VydmVyT25seUNoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJTWU5DXCJdID0gXCJzeW5jXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQlVJTFRcIl0gPSBcImJ1aWx0XCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQlVJTERJTkdcIl0gPSBcImJ1aWxkaW5nXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiREVWX1BBR0VTX01BTklGRVNUX1VQREFURVwiXSA9IFwiZGV2UGFnZXNNYW5pZmVzdFVwZGF0ZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlRVUkJPUEFDS19NRVNTQUdFXCJdID0gXCJ0dXJib3BhY2stbWVzc2FnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9FUlJPUlwiXSA9IFwic2VydmVyRXJyb3JcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJUVVJCT1BBQ0tfQ09OTkVDVEVEXCJdID0gXCJ0dXJib3BhY2stY29ubmVjdGVkXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQVBQX0lTUl9NQU5JRkVTVFwiXSA9IFwiYXBwSXNyTWFuaWZlc3RcIjtcbiAgICByZXR1cm4gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhvdC1yZWxvYWRlci10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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("/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for dynamicIO where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"makeHangingPromise\", ({\n enumerable: true,\n get: function() {\n return makeHangingPromise;\n }\n}));\nfunction makeHangingPromise(signal, expression) {\n const hangingPromise = new Promise((_, reject)=>{\n signal.addEventListener('abort', ()=>{\n reject(new Error(`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.`));\n }, {\n once: true\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}\nfunction ignoreReject() {}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsWUFBWSxzR0FBc0csWUFBWTtBQUNuTCxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGR5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1Y3RzIGEgcHJvbWlzZSB0aGF0IHdpbGwgbmV2ZXIgcmVzb2x2ZS4gVGhpcyBpcyBwcmltYXJpbHlcbiAqIHVzZWZ1bCBmb3IgZHluYW1pY0lPIHdoZXJlIHdlIHVzZSBwcm9taXNlIHJlc29sdXRpb24gdGltaW5nIHRvIGRldGVybWluZSB3aGljaFxuICogcGFydHMgb2YgYSByZW5kZXIgY2FuIGJlIGluY2x1ZGVkIGluIGEgcHJlcmVuZGVyLlxuICpcbiAqIEBpbnRlcm5hbFxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibWFrZUhhbmdpbmdQcm9taXNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1Byb21pc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1Byb21pc2Uoc2lnbmFsLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgaGFuZ2luZ1Byb21pc2UgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KT0+e1xuICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCAoKT0+e1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgRHVyaW5nIHByZXJlbmRlcmluZywgJHtleHByZXNzaW9ufSByZWplY3RzIHdoZW4gdGhlIHByZXJlbmRlciBpcyBjb21wbGV0ZS4gVHlwaWNhbGx5IHRoZXNlIGVycm9ycyBhcmUgaGFuZGxlZCBieSBSZWFjdCBidXQgaWYgeW91IG1vdmUgJHtleHByZXNzaW9ufSB0byBhIGRpZmZlcmVudCBjb250ZXh0IGJ5IHVzaW5nIFxcYHNldFRpbWVvdXRcXGAsIFxcYGFmdGVyXFxgLCBvciBzaW1pbGFyIGZ1bmN0aW9ucyB5b3UgbWF5IG9ic2VydmUgdGhpcyBlcnJvciBhbmQgeW91IHNob3VsZCBoYW5kbGUgaXQgaW4gdGhhdCBjb250ZXh0LmApKTtcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBXZSBhcmUgZmluZSBpZiBubyBvbmUgYWN0dWFsbHkgYXdhaXRzIHRoaXMgcHJvbWlzZS4gV2Ugc2hvdWxkbid0IGNvbnNpZGVyIHRoaXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiBzb1xuICAgIC8vIHdlIGF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciBoZXJlIHRvIHN1cHByZXNzIHRoaXMgd2FybmluZy4gSWYgeW91IGFjdHVhbGx5IGF3YWl0IHNvbWV3aGVyZSBvciBjb25zdHJ1Y3RcbiAgICAvLyB5b3VyIG93biBwcm9taXNlIG91dCBvZiBpdCB5b3UnbGwgbmVlZCB0byBlbnN1cmUgeW91IGhhbmRsZSB0aGUgZXJyb3Igd2hlbiBpdCByZWplY3RzLlxuICAgIGhhbmdpbmdQcm9taXNlLmNhdGNoKGlnbm9yZVJlamVjdCk7XG4gICAgcmV0dXJuIGhhbmdpbmdQcm9taXNlO1xufVxuZnVuY3Rpb24gaWdub3JlUmVqZWN0KCkge31cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZHluYW1pYy1yZW5kZXJpbmctdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/lib/interception-routes.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/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__(/*! ../../shared/lib/router/utils/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 new Error(`Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`);\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 new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`);\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`);\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw new Error('Invariant: unexpected marker');\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n}\n\n//# sourceMappingURL=interception-routes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQixtQkFBTyxDQUFDLG9IQUF5QztBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsS0FBSztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxpQkFBaUI7QUFDeEQsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxLQUFLO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrREFBK0QsS0FBSztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGxpYlxcaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTOiBudWxsLFxuICAgIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uOiBudWxsLFxuICAgIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTO1xuICAgIH0sXG4gICAgZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb247XG4gICAgfSxcbiAgICBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aDtcbiAgICB9XG59KTtcbmNvbnN0IF9hcHBwYXRocyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHNcIik7XG5jb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgICAnKC4uKSguLiknLFxuICAgICcoLiknLFxuICAgICcoLi4pJyxcbiAgICAnKC4uLiknXG5dO1xuZnVuY3Rpb24gaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgocGF0aCkge1xuICAgIC8vIFRPRE8tQVBQOiBhZGQgbW9yZSBzZXJpb3VzIHZhbGlkYXRpb25cbiAgICByZXR1cm4gcGF0aC5zcGxpdCgnLycpLmZpbmQoKHNlZ21lbnQpPT5JTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKT0+c2VnbWVudC5zdGFydHNXaXRoKG0pKSkgIT09IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uKHBhdGgpIHtcbiAgICBsZXQgaW50ZXJjZXB0aW5nUm91dGUsIG1hcmtlciwgaW50ZXJjZXB0ZWRSb3V0ZTtcbiAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKXtcbiAgICAgICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSk7XG4gICAgICAgIGlmIChtYXJrZXIpIHtcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIFtpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZV0gPSBwYXRoLnNwbGl0KG1hcmtlciwgMik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWludGVyY2VwdGluZ1JvdXRlIHx8ICFtYXJrZXIgfHwgIWludGVyY2VwdGVkUm91dGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmApO1xuICAgIH1cbiAgICBpbnRlcmNlcHRpbmdSb3V0ZSA9ICgwLCBfYXBwcGF0aHMubm9ybWFsaXplQXBwUGF0aCkoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcbiAgICA7XG4gICAgc3dpdGNoKG1hcmtlcil7XG4gICAgICAgIGNhc2UgJyguKSc6XG4gICAgICAgICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgICAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGAvJHtpbnRlcmNlcHRlZFJvdXRlfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZSArICcvJyArIGludGVyY2VwdGVkUm91dGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKC4uKSc6XG4gICAgICAgICAgICAvLyAoLi4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCBhdCBvbmUgbGV2ZWwgdXAsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgICAgICAgaWYgKGludGVyY2VwdGluZ1JvdXRlID09PSAnLycpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBDYW5ub3QgdXNlICguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsLCB1c2UgKC4pIGluc3RlYWQuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUuc3BsaXQoJy8nKS5zbGljZSgwLCAtMSkuY29uY2F0KGludGVyY2VwdGVkUm91dGUpLmpvaW4oJy8nKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICcoLi4uKSc6XG4gICAgICAgICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAgICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0SW50ZXJjZXB0aW5nUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZS5zcGxpdCgnLycpO1xuICAgICAgICAgICAgaWYgKHNwbGl0SW50ZXJjZXB0aW5nUm91dGUubGVuZ3RoIDw9IDIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBDYW5ub3QgdXNlICguLikoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCBvciBvbmUgbGV2ZWwgdXAuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZS5zbGljZSgwLCAtMikuY29uY2F0KGludGVyY2VwdGVkUm91dGUpLmpvaW4oJy8nKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IHVuZXhwZWN0ZWQgbWFya2VyJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGludGVyY2VwdGluZ1JvdXRlLFxuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlXG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJjZXB0aW9uLXJvdXRlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/lib/interception-routes.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOENBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcbGliXFxyb3V0ZXItdXRpbHNcXGlzLXBvc3Rwb25lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaXNQb3N0cG9uZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNQb3N0cG9uZTtcbiAgICB9XG59KTtcbmNvbnN0IFJFQUNUX1BPU1RQT05FX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3N0cG9uZScpO1xuZnVuY3Rpb24gaXNQb3N0cG9uZShlcnJvcikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9yICE9PSBudWxsICYmIGVycm9yLiQkdHlwZW9mID09PSBSRUFDVF9QT1NUUE9ORV9UWVBFO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1wb3N0cG9uZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 _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 _utils = __webpack_require__(/*! ./utils */ \"(ssr)/./node_modules/next/dist/server/request/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 _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/./node_modules/next/dist/lib/scheduler.js\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\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-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams, workStore) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && prerenderStore.type === 'prerender') {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one of more fallback params so we need to consider\n // the awaiting of this params object \"dynamic\". Since we are in dynamicIO mode\n // we encode this as a promise that never resolves\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`');\n }\n }\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 createPrerenderParams(underlyingParams, workStore, prerenderStore) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n let hasSomeFallbackParams = false;\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n hasSomeFallbackParams = true;\n break;\n }\n }\n if (hasSomeFallbackParams) {\n // params need to be treated as dynamic because we have at least one fallback param\n if (prerenderStore.type === 'prerender') {\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeAbortingExoticParams(underlyingParams, workStore.route, prerenderStore);\n }\n // remaining cases are prender-ppr and prerender-legacy\n // We aren't in a dynamicIO prerender but we do have fallback params at this\n // level so we need to make an erroring exotic params object which will postpone\n // if you access the fallback params\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParams(underlyingParams, workStore) {\n if ( true && !workStore.isPrefetchRequest) {\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, workStore);\n } else {\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nconst CachedParams = new WeakMap();\nfunction makeAbortingExoticParams(underlyingParams, route, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`');\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_utils.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 Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _utils.describeStringPropertyAccess)('params', prop);\n const error = createParamsAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\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 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 (_utils.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, _utils.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 dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\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, _utils.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 dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\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 (_utils.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 makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, 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 = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingParams)));\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_utils.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, _utils.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}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\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 noop = ()=>{};\nconst warnForSyncAccess = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return 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`);\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQyw0SEFBd0M7QUFDakUsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLHNDQUFzQyxtQkFBTyxDQUFDLDBGQUFnRDtBQUM5Rix3QkFBd0IsbUJBQU8sQ0FBQyxzR0FBa0M7QUFDbEUsZUFBZSxtQkFBTyxDQUFDLHVFQUFTO0FBQ2hDLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBc0M7QUFDOUM7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixNQUFvRCxHQUFHLENBQUk7QUFDckYscUNBQXFDLE1BQW9ELEdBQUcsQ0FBSTtBQUNoRztBQUNBLHFDQUFxQyxNQUFNO0FBQzNDLHdCQUF3QixPQUFPLE9BQU8sV0FBVztBQUNqRDtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0Msd0JBQXdCLE9BQU8sT0FBTyxXQUFXLHFNQUFxTSwrQ0FBK0M7QUFDclM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQSx3QkFBd0IsY0FBYyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVxdWVzdFxccGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlciA9IHJlcXVpcmUoXCIuLi9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuZnVuY3Rpb24gY3JlYXRlUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpO1xufVxuY29uc3QgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEgPSBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50O1xuZnVuY3Rpb24gY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiBwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHBhcmFtcyBvYmplY3QgaGFzIG9uZSBvZiBtb3JlIGZhbGxiYWNrIHBhcmFtcyBzbyB3ZSBuZWVkIHRvIGNvbnNpZGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBhd2FpdGluZyBvZiB0aGlzIHBhcmFtcyBvYmplY3QgXCJkeW5hbWljXCIuIFNpbmNlIHdlIGFyZSBpbiBkeW5hbWljSU8gbW9kZVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlciByZXNvbHZlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgcGFyYW1zYCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnQuIFdlIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aG91dFxuICAgIC8vIGFueSB0cmFja2luZyBiZWNhdXNlIHdlJ3JlIGp1c3QgdHJhbnNwb3J0aW5nIGEgdmFsdWUgZnJvbSBzZXJ2ZXIgdG8gY2xpZW50IHdoZXJlIHRoZSB0cmFja2luZ1xuICAgIC8vIHdpbGwgYmUgYXBwbGllZC5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICBsZXQgaGFzU29tZUZhbGxiYWNrUGFyYW1zID0gZmFsc2U7XG4gICAgICAgIGZvcihjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcyl7XG4gICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBoYXNTb21lRmFsbGJhY2tQYXJhbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNTb21lRmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIC8vIHBhcmFtcyBuZWVkIHRvIGJlIHRyZWF0ZWQgYXMgZHluYW1pYyBiZWNhdXNlIHdlIGhhdmUgYXQgbGVhc3Qgb25lIGZhbGxiYWNrIHBhcmFtXG4gICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBhcmUgaW4gYSBkeW5hbWljSU8gKFBQUiBvciBvdGhlcndpc2UpIHByZXJlbmRlclxuICAgICAgICAgICAgICAgIHJldHVybiBtYWtlQWJvcnRpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLnJvdXRlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyByZW1haW5pbmcgY2FzZXMgYXJlIHByZW5kZXItcHByIGFuZCBwcmVyZW5kZXItbGVnYWN5XG4gICAgICAgICAgICAvLyBXZSBhcmVuJ3QgaW4gYSBkeW5hbWljSU8gcHJlcmVuZGVyIGJ1dCB3ZSBkbyBoYXZlIGZhbGxiYWNrIHBhcmFtcyBhdCB0aGlzXG4gICAgICAgICAgICAvLyBsZXZlbCBzbyB3ZSBuZWVkIHRvIG1ha2UgYW4gZXJyb3JpbmcgZXhvdGljIHBhcmFtcyBvYmplY3Qgd2hpY2ggd2lsbCBwb3N0cG9uZVxuICAgICAgICAgICAgLy8gaWYgeW91IGFjY2VzcyB0aGUgZmFsbGJhY2sgcGFyYW1zXG4gICAgICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIGZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSBkb24ndCBoYXZlIGFueSBmYWxsYmFjayBwYXJhbXMgc28gd2UgaGF2ZSBhbiBlbnRpcmVseSBzdGF0aWMgc2FmZSBwYXJhbXMgb2JqZWN0XG4gICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcyk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmICF3b3JrU3RvcmUuaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9XG59XG5jb25zdCBDYWNoZWRQYXJhbXMgPSBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gbWFrZUFib3J0aW5nRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHJvdXRlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgcGFyYW1zYCcpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzKShyb3V0ZSwgZXhwcmVzc2lvbiwgZXJyb3IsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIGZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IGF1Z21lbnRlZFVuZGVybHlpbmcgPSB7XG4gICAgICAgIC4uLnVuZGVybHlpbmdQYXJhbXNcbiAgICB9O1xuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoYXVnbWVudGVkVW5kZXJseWluZyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3V0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGR5bmFtaWNJTyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBkeW5hbWljSU8gaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc2V0IChuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgcHJvbWlzZVtwcm9wXSA9IHVuZGVybHlpbmdQYXJhbXNbcHJvcF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcykge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBwYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1BhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBwYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT4oMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PnJlc29sdmUodW5kZXJseWluZ1BhcmFtcykpKTtcbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgd2FzIHByb3hpZWQgdG8gdGhlIHByb21pc2UgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2AuLi5wYXJhbXNgIG9yIHNpbWlsYXIgZXhwcmVzc2lvbic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlICYmIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3JlcXVlc3QnICYmIHdvcmtVbml0U3RvcmUucHJlcmVuZGVyUGhhc2UgPT09IHRydWUpIHtcbiAgICAgICAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgZHluYW1pY2FsbHkgaW4gZGV2IHdlIG5lZWQgdG8gYWR2YW5jZSBvdXQgb2YgdGhlXG4gICAgICAgIC8vIFByZXJlbmRlciBlbnZpcm9ubWVudCB3aGVuIHdlIHJlYWQgUmVxdWVzdCBkYXRhIHN5bmNocm9ub3VzbHlcbiAgICAgICAgY29uc3QgcmVxdWVzdFN0b3JlID0gd29ya1VuaXRTdG9yZTtcbiAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2KShyZXF1ZXN0U3RvcmUpO1xuICAgIH1cbiAgICAvLyBJbiBhbGwgY2FzZXMgd2Ugd2FybiBub3JtYWxseVxuICAgIGlmIChtaXNzaW5nUHJvcGVydGllcyAmJiBtaXNzaW5nUHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24ocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgfVxufVxuY29uc3Qgbm9vcCA9ICgpPT57fTtcbmNvbnN0IHdhcm5Gb3JTeW5jQWNjZXNzID0gcHJvY2Vzcy5lbnYuX19ORVhUX0RJU0FCTEVfU1lOQ19EWU5BTUlDX0FQSV9XQVJOSU5HUyA/IG5vb3AgOiAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlUGFyYW1zQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ESVNBQkxFX1NZTkNfRFlOQU1JQ19BUElfV0FSTklOR1MgPyBub29wIDogKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVBhcmFtc0FjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBwYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdlcmUgbm90IGF2YWlsYWJsZSB0aHJvdWdoIGVudW1lcmF0aW9uIGAgKyBgYmVjYXVzZSB0aGV5IGNvbmZsaWN0IHdpdGggYnVpbHRpbiBwcm9wZXJ0eSBuYW1lczogYCArIGAke2Rlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhtaXNzaW5nUHJvcGVydGllcyl9LiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ0V4cGVjdGVkIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyB0byBiZSBjYWxsZWQgd2l0aCBhIG5vbi1lbXB0eSBsaXN0IG9mIHN0cmluZ3MuJyk7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYGA7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYCBhbmQgXFxgJHtwcm9wZXJ0aWVzWzFdfVxcYGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYFxcYCR7cHJvcGVydGllc1tpXX1cXGAsIGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGAsIGFuZCBcXGAke3Byb3BlcnRpZXNbcHJvcGVydGllcy5sZW5ndGggLSAxXX1cXGBgO1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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});\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 _utils = __webpack_require__(/*! ./utils */ \"(ssr)/./node_modules/next/dist/server/request/utils.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/./node_modules/next/dist/lib/scheduler.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\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-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\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 prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && prerenderStore.type === 'prerender') {\n // dynamicIO Prerender\n // We're prerendering in a mode that aborts (dynamicIO) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`searchParams`');\n }\n // We're prerendering in a mode that does not aborts. 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({});\n}\nfunction createPrerenderSearchParams(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 if (prerenderStore.type === 'prerender') {\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeAbortingExoticSearchParams(workStore.route, prerenderStore);\n }\n // The remaining cases are prerender-ppr and prerender-legacy\n // We are in a legacy static generation and need to interrupt the prerender\n // when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\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 && !workStore.isPrefetchRequest) {\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {\n return makeUntrackedExoticSearchParams(underlyingSearchParams, workStore);\n }\n }\n}\nconst CachedSearchParams = new WeakMap();\nfunction makeAbortingExoticSearchParams(route, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`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 // Object prototype\n case 'hasOwnProperty':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'valueOf':\n case 'toLocaleString':\n // Promise prototype\n // fallthrough\n case 'catch':\n case 'finally':\n // Common tested properties\n // fallthrough\n case 'toJSON':\n case '$$typeof':\n case '__esModule':\n {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n if (typeof prop === 'string') {\n const expression = (0, _utils.describeStringPropertyAccess)('searchParams', prop);\n const error = createSearchAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\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, _utils.describeHasCheckingStringProperty)('searchParams', prop);\n const error = createSearchAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n const error = createSearchAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\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 // Object prototype\n case 'hasOwnProperty':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'valueOf':\n case 'toLocaleString':\n // Promise prototype\n // fallthrough\n case 'catch':\n case 'finally':\n // Common tested properties\n // fallthrough\n case 'toJSON':\n case '$$typeof':\n case '__esModule':\n {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\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 dynamicIO)\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 dynamicIO)\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') {\n const expression = (0, _utils.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 dynamicIO)\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, _utils.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 dynamicIO)\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 dynamicIO)\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 makeUntrackedExoticSearchParams(underlyingSearchParams, store) {\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 switch(prop){\n // Object prototype\n case 'hasOwnProperty':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'valueOf':\n case 'toLocaleString':\n // Promise prototype\n // fallthrough\n case 'then':\n case 'catch':\n case 'finally':\n // React Promise extension\n // fallthrough\n case 'status':\n // Common tested properties\n // fallthrough\n case 'toJSON':\n case '$$typeof':\n case '__esModule':\n {\n break;\n }\n default:\n {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\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 });\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, _utils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\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, _utils.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 = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingSearchParams)));\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_utils.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 (!_utils.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, _utils.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 (!_utils.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, _utils.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}\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 && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n}\nconst noop = ()=>{};\nconst warnForSyncAccess = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return 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`);\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLDRIQUF3QztBQUNqRSwwQkFBMEIsbUJBQU8sQ0FBQyw4R0FBaUM7QUFDbkUsc0NBQXNDLG1CQUFPLENBQUMsMEZBQWdEO0FBQzlGLHdCQUF3QixtQkFBTyxDQUFDLHNHQUFrQztBQUNsRSwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsa0RBQWtELG1CQUFPLENBQUMsa0pBQW1EO0FBQzdHLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQyxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakMsTUFBTTtBQUNOLFlBQVksS0FBc0M7QUFDbEQ7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxrQ0FBa0MsZ0JBQWdCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtB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dFxcc2VydmVyXFxyZXF1ZXN0XFxzZWFyY2gtcGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogbnVsbCxcbiAgICBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlO1xuICAgIH0sXG4gICAgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG4gICAgfVxufSk7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyID0gcmVxdWlyZShcIi4uL2NyZWF0ZS1kZWR1cGVkLWJ5LWNhbGxzaXRlLXNlcnZlci1lcnJvci1sb2dnZXJcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbn1cbmNvbnN0IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhID0gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2UodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Uod29ya1N0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiBwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAvLyBkeW5hbWljSU8gUHJlcmVuZGVyXG4gICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyBpbiBhIG1vZGUgdGhhdCBhYm9ydHMgKGR5bmFtaWNJTykgYW5kIHNob3VsZCBzdGFsbFxuICAgICAgICAvLyB0aGUgcHJvbWlzZSB0byBlbnN1cmUgdGhlIFJTQyBzaWRlIGlzIGNvbnNpZGVyZWQgZHluYW1pY1xuICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnRzLiBXZSByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGhvdXRcbiAgICAvLyBhbnkgdHJhY2tpbmcgYmVjYXVzZSB3ZSdyZSBqdXN0IHRyYW5zcG9ydGluZyBhIHZhbHVlIGZyb20gc2VydmVyIHRvIGNsaWVudCB3aGVyZSB0aGUgdHJhY2tpbmdcbiAgICAvLyB3aWxsIGJlIGFwcGxpZWQuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfVxuICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAvLyBXZSBhcmUgaW4gYSBkeW5hbWljSU8gKFBQUiBvciBvdGhlcndpc2UpIHByZXJlbmRlclxuICAgICAgICByZXR1cm4gbWFrZUFib3J0aW5nRXhvdGljU2VhcmNoUGFyYW1zKHdvcmtTdG9yZS5yb3V0ZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgIH1cbiAgICAvLyBUaGUgcmVtYWluaW5nIGNhc2VzIGFyZSBwcmVyZW5kZXItcHByIGFuZCBwcmVyZW5kZXItbGVnYWN5XG4gICAgLy8gV2UgYXJlIGluIGEgbGVnYWN5IHN0YXRpYyBnZW5lcmF0aW9uIGFuZCBuZWVkIHRvIGludGVycnVwdCB0aGUgcHJlcmVuZGVyXG4gICAgLy8gd2hlbiBzZWFyY2ggcGFyYW1zIGFyZSBhY2Nlc3NlZC5cbiAgICByZXR1cm4gbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmICF3b3JrU3RvcmUuaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgQ2FjaGVkU2VhcmNoUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VBYm9ydGluZ0V4b3RpY1NlYXJjaFBhcmFtcyhyb3V0ZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHByZXJlbmRlclN0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHByZXJlbmRlclN0b3JlLnJlbmRlclNpZ25hbCwgJ2BzZWFyY2hQYXJhbXNgJyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFubm90YXRlRHluYW1pY0FjY2VzcykoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHVzZShzZWFyY2hQYXJhbXMpYCwgYHNlYXJjaFBhcmFtcy5zdGF0dXNgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hbm5vdGF0ZUR5bmFtaWNBY2Nlc3MpKGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBPYmplY3QgcHJvdG90eXBlXG4gICAgICAgICAgICAgICAgY2FzZSAnaGFzT3duUHJvcGVydHknOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2lzUHJvdG90eXBlT2YnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0b1N0cmluZyc6XG4gICAgICAgICAgICAgICAgY2FzZSAndmFsdWVPZic6XG4gICAgICAgICAgICAgICAgY2FzZSAndG9Mb2NhbGVTdHJpbmcnOlxuICAgICAgICAgICAgICAgIC8vIFByb21pc2UgcHJvdG90eXBlXG4gICAgICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgICAgICBjYXNlICdjYXRjaCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZmluYWxseSc6XG4gICAgICAgICAgICAgICAgLy8gQ29tbW9uIHRlc3RlZCBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgICAgICBjYXNlICd0b0pTT04nOlxuICAgICAgICAgICAgICAgIGNhc2UgJyQkdHlwZW9mJzpcbiAgICAgICAgICAgICAgICBjYXNlICdfX2VzTW9kdWxlJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzKShyb3V0ZSwgZXhwcmVzc2lvbiwgZXJyb3IsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0cmlnZ2VyIGR5bmFtaWMuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjcmVhdGVTZWFyY2hBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MpKHJvdXRlLCBleHByZXNzaW9uLCBlcnJvciwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MpKHJvdXRlLCBleHByZXNzaW9uLCBlcnJvciwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldChwcmVyZW5kZXJTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh3b3JrU3RvcmUpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgdW5kZXJseWluZ1NlYXJjaFBhcmFtcyA9IHt9O1xuICAgIC8vIEZvciBzZWFyY2ggcGFyYW1zIHdlIGRvbid0IGNvbnN0cnVjdCBhIFJlYWN0UHJvbWlzZSBiZWNhdXNlIHdlIHdhbnQgdG8gaW50ZXJydXB0XG4gICAgLy8gcmVuZGVyaW5nIG9uIGFueSBwcm9wZXJ0eSBhY2Nlc3MgdGhhdCB3YXMgbm90IHNldCBmcm9tIG91dHNpZGUgYW5kIHNvIHdlIG9ubHkgd2FudFxuICAgIC8vIHRvIGhhdmUgcHJvcGVydGllcyBsaWtlIHZhbHVlIGFuZCBzdGF0dXMgaWYgUmVhY3Qgc2V0cyB0aGVtLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgLy8gT2JqZWN0IHByb3RvdHlwZVxuICAgICAgICAgICAgICAgIGNhc2UgJ2hhc093blByb3BlcnR5JzpcbiAgICAgICAgICAgICAgICBjYXNlICdpc1Byb3RvdHlwZU9mJzpcbiAgICAgICAgICAgICAgICBjYXNlICdwcm9wZXJ0eUlzRW51bWVyYWJsZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAndG9TdHJpbmcnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbHVlT2YnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3RvTG9jYWxlU3RyaW5nJzpcbiAgICAgICAgICAgICAgICAvLyBQcm9taXNlIHByb3RvdHlwZVxuICAgICAgICAgICAgICAgIC8vIGZhbGx0aHJvdWdoXG4gICAgICAgICAgICAgICAgY2FzZSAnY2F0Y2gnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbmFsbHknOlxuICAgICAgICAgICAgICAgIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIC8vIGZhbGx0aHJvdWdoXG4gICAgICAgICAgICAgICAgY2FzZSAndG9KU09OJzpcbiAgICAgICAgICAgICAgICBjYXNlICckJHR5cGVvZic6XG4gICAgICAgICAgICAgICAgY2FzZSAnX19lc01vZHVsZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgdXNlKHNlYXJjaFBhcmFtcylgLCBgc2VhcmNoUGFyYW1zLnN0YXR1c2AsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0cmlnZ2VyIGR5bmFtaWMuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQod29ya1N0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgLy8gT2JqZWN0IHByb3RvdHlwZVxuICAgICAgICAgICAgY2FzZSAnaGFzT3duUHJvcGVydHknOlxuICAgICAgICAgICAgY2FzZSAnaXNQcm90b3R5cGVPZic6XG4gICAgICAgICAgICBjYXNlICdwcm9wZXJ0eUlzRW51bWVyYWJsZSc6XG4gICAgICAgICAgICBjYXNlICd0b1N0cmluZyc6XG4gICAgICAgICAgICBjYXNlICd2YWx1ZU9mJzpcbiAgICAgICAgICAgIGNhc2UgJ3RvTG9jYWxlU3RyaW5nJzpcbiAgICAgICAgICAgIC8vIFByb21pc2UgcHJvdG90eXBlXG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICBjYXNlICdjYXRjaCc6XG4gICAgICAgICAgICBjYXNlICdmaW5hbGx5JzpcbiAgICAgICAgICAgIC8vIFJlYWN0IFByb21pc2UgZXh0ZW5zaW9uXG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgIGNhc2UgJ3RvSlNPTic6XG4gICAgICAgICAgICBjYXNlICckJHR5cGVvZic6XG4gICAgICAgICAgICBjYXNlICdfX2VzTW9kdWxlJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikoc3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlcmx5aW5nU2VhcmNoUGFyYW1zW3Byb3BdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgLy8gV2UgaGF2ZSBhbiB1bmZvcnR1bmF0ZSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCByZXF1aXJlcyB0aGlzIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBXZSB3YW50IHRvIGluc3RydW1lbnQgdGhlIHVuZGVybHlpbmdcbiAgICAvLyBzZWFyY2hQYXJhbXMgb2JqZWN0IHRvIGRldGVjdCBpZiB5b3UgYXJlIGFjY2Vzc2luZyB2YWx1ZXMgaW4gZGV2LiBUaGlzIGlzIHVzZWQgZm9yIHdhcm5pbmdzIGFuZCBmb3IgdGhpbmdzIGxpa2UgdGhlIHN0YXRpYyBwcmVyZW5kZXJcbiAgICAvLyBpbmRpY2F0b3IuIEhvd2V2ZXIgd2hlbiB3ZSBwYXNzIHRoaXMgcHJveHkgdG8gb3VyIFByb21pc2UucmVzb2x2ZSgpIGJlbG93IHRoZSBWTSBjaGVja3MgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGEgcHJvbWlzZSBieSBsb29raW5nXG4gICAgLy8gYXQgdGhlIGAudGhlbmAgcHJvcGVydHkuIFRvIG91ciBkeW5hbWljIHRyYWNraW5nIGxvZ2ljIHRoaXMgaXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIGB0aGVuYCBzZWFyY2hQYXJhbSBhbmQgc28gd2Ugd291bGQgbm9ybWFsbHkgdHJpZ2dlclxuICAgIC8vIGR5bmFtaWMgdHJhY2tpbmcuIEhvd2V2ZXIgd2Uga25vdyB0aGF0IHRoaXMgLnRoZW4gaXMgbm90IHJlYWwgZHluYW1pYyBhY2Nlc3MsIGl0J3MganVzdCBob3cgdGhlbmFibGVzIHJlc29sdmUgaW4gc2VxdWVuY2UuIFNvIHdlIGludHJvZHVjZVxuICAgIC8vIHRoaXMgaW5pdGlhbGl6YXRpb24gY29uY2VwdCBzbyB3ZSBvbWl0IHRoZSBkeW5hbWljIGNoZWNrIHVudGlsIGFmdGVyIHdlJ3ZlIGNvbnN0cnVjdGVkIG91ciByZXNvbHZlZCBwcm9taXNlLlxuICAgIGxldCBwcm9taXNlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBwcm94aWVkVW5kZXJseWluZyA9IG5ldyBQcm94eSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiBwcm9taXNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikoc3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKShzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgaWYgKHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKShzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT4oMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PnJlc29sdmUodW5kZXJseWluZ1NlYXJjaFBhcmFtcykpKTtcbiAgICBwcm9taXNlLnRoZW4oKCk9PntcbiAgICAgICAgcHJvbWlzZUluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3V0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJveGllZFVuZGVybHlpbmdbcHJvcF07XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJyAmJiBzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BzZWFyY2hQYXJhbXMudGhlbmAnO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF91dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfdXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcgJiYgd29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZiB0aGVcbiAgICAgICAgLy8gUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseVxuICAgICAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHJlcXVlc3RTdG9yZSk7XG4gICAgfVxufVxuY29uc3Qgbm9vcCA9ICgpPT57fTtcbmNvbnN0IHdhcm5Gb3JTeW5jQWNjZXNzID0gcHJvY2Vzcy5lbnYuX19ORVhUX0RJU0FCTEVfU1lOQ19EWU5BTUlDX0FQSV9XQVJOSU5HUyA/IG5vb3AgOiAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ESVNBQkxFX1NZTkNfRFlOQU1JQ19BUElfV0FSTklOR1MgPyBub29wIDogKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaEFjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBzZWFyY2hQYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHNlYXJjaFBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdlcmUgbm90IGF2YWlsYWJsZSB0aHJvdWdoIGVudW1lcmF0aW9uIGAgKyBgYmVjYXVzZSB0aGV5IGNvbmZsaWN0IHdpdGggYnVpbHRpbiBvciB3ZWxsLWtub3duIHByb3BlcnR5IG5hbWVzOiBgICsgYCR7ZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKG1pc3NpbmdQcm9wZXJ0aWVzKX0uIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhwcm9wZXJ0aWVzKSB7XG4gICAgc3dpdGNoKHByb3BlcnRpZXMubGVuZ3RoKXtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdGhyb3cgbmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignRXhwZWN0ZWQgZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgbm9uLWVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4nKTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VhcmNoLXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\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\");\n// 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.ಠ_ಠ`\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}\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw 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`);\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw 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`);\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\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 // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]);\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU9MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUNBQWlDLG1CQUFPLENBQUMsd0lBQW1EO0FBQzVGLHVDQUF1QyxtQkFBTyxDQUFDLHdHQUFpRDtBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU8sR0FBRyxLQUFLO0FBQ25DO0FBQ0EsZ0JBQWdCLE9BQU8sR0FBRyxxQkFBcUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLE9BQU8sSUFBSSxnQkFBZ0IsU0FBUyxpQkFBaUIsS0FBSyxPQUFPO0FBQzdGO0FBQ0E7QUFDQSxzRUFBc0UsT0FBTyxrREFBa0QsV0FBVztBQUMxSTtBQUNBO0FBQ0Esc0VBQXNFLE9BQU8sNkVBQTZFLFdBQVc7QUFDcks7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVxdWVzdFxcdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHk6IG51bGwsXG4gICAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzczogbnVsbCxcbiAgICBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyOiBudWxsLFxuICAgIHRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3I6IG51bGwsXG4gICAgdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3I6IG51bGwsXG4gICAgd2VsbEtub3duUHJvcGVydGllczogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5O1xuICAgIH0sXG4gICAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzO1xuICAgIH0sXG4gICAgaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyO1xuICAgIH0sXG4gICAgdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yO1xuICAgIH0sXG4gICAgdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3I7XG4gICAgfSxcbiAgICB3ZWxsS25vd25Qcm9wZXJ0aWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdlbGxLbm93blByb3BlcnRpZXM7XG4gICAgfVxufSk7XG5jb25zdCBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiKTtcbmNvbnN0IF9hZnRlcnRhc2thc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbi8vIFRoaXMgcmVnZXggd2lsbCBoYXZlIGZhc3QgbmVnYXRpdmVzIG1lYW5pbmcgdmFsaWQgaWRlbnRpZmllcnMgbWF5IG5vdCBwYXNzXG4vLyB0aGlzIHRlc3QuIEhvd2V2ZXIgdGhpcyBpcyBvbmx5IHVzZWQgZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uIHRvIHByb3ZpZGUgaGludHNcbi8vIGFib3V0IHdoeSBhIHBhZ2UgYmFpbGVkIG91dCBvZiBzb21lIG9yIGFsbCBwcmVyZW5kZXJpbmcgYW5kIHdlIGNhbiB1c2UgYnJhY2tldCBub3RhdGlvblxuLy8gZm9yIGV4YW1wbGUgd2hpbGUgYOCyoF/gsqBgIGlzIGEgdmFsaWQgaWRlbnRpZmllciBpdCdzIG9rIHRvIHByaW50IGBzZWFyY2hQYXJhbXNbJ+CyoF/gsqAnXWBcbi8vIGV2ZW4gaWYgdGhpcyB3b3VsZCBoYXZlIGJlZW4gZmluZSB0b28gYHNlYXJjaFBhcmFtcy7gsqBf4LKgYFxuY29uc3QgaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciA9IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC87XG5mdW5jdGlvbiBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKHRhcmdldCwgcHJvcCkge1xuICAgIGlmIChpc0RlZmluaXRlbHlBVmFsaWRJZGVudGlmaWVyLnRlc3QocHJvcCkpIHtcbiAgICAgICAgcmV0dXJuIGBcXGAke3RhcmdldH0uJHtwcm9wfVxcYGA7XG4gICAgfVxuICAgIHJldHVybiBgXFxgJHt0YXJnZXR9WyR7SlNPTi5zdHJpbmdpZnkocHJvcCl9XVxcYGA7XG59XG5mdW5jdGlvbiBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgY29uc3Qgc3RyaW5naWZpZWRQcm9wID0gSlNPTi5zdHJpbmdpZnkocHJvcCk7XG4gICAgcmV0dXJuIGBcXGBSZWZsZWN0Lmhhcygke3RhcmdldH0sICR7c3RyaW5naWZpZWRQcm9wfSlcXGAsIFxcYCR7c3RyaW5naWZpZWRQcm9wfSBpbiAke3RhcmdldH1cXGAsIG9yIHNpbWlsYXJgO1xufVxuZnVuY3Rpb24gdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIHRocm93IG5ldyBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQuU3RhdGljR2VuQmFpbG91dEVycm9yKGBSb3V0ZSAke3JvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgKTtcbn1cbmZ1bmN0aW9uIHRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgdGhyb3cgbmV3IF9zdGF0aWNnZW5lcmF0aW9uYmFpbG91dC5TdGF0aWNHZW5CYWlsb3V0RXJyb3IoYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgKTtcbn1cbmZ1bmN0aW9uIGlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIoKSB7XG4gICAgY29uc3QgYWZ0ZXJUYXNrU3RvcmUgPSBfYWZ0ZXJ0YXNrYXN5bmNzdG9yYWdlZXh0ZXJuYWwuYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgcmV0dXJuIChhZnRlclRhc2tTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogYWZ0ZXJUYXNrU3RvcmUucm9vdFRhc2tTcGF3blBoYXNlKSA9PT0gJ2FjdGlvbic7XG59XG5jb25zdCB3ZWxsS25vd25Qcm9wZXJ0aWVzID0gbmV3IFNldChbXG4gICAgJ2hhc093blByb3BlcnR5JyxcbiAgICAnaXNQcm90b3R5cGVPZicsXG4gICAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgICAndG9TdHJpbmcnLFxuICAgICd2YWx1ZU9mJyxcbiAgICAndG9Mb2NhbGVTdHJpbmcnLFxuICAgIC8vIFByb21pc2UgcHJvdG90eXBlXG4gICAgLy8gZmFsbHRocm91Z2hcbiAgICAndGhlbicsXG4gICAgJ2NhdGNoJyxcbiAgICAnZmluYWxseScsXG4gICAgLy8gUmVhY3QgUHJvbWlzZSBleHRlbnNpb25cbiAgICAvLyBmYWxsdGhyb3VnaFxuICAgICdzdGF0dXMnLFxuICAgIC8vIFJlYWN0IGludHJvc3BlY3Rpb25cbiAgICAnZGlzcGxheU5hbWUnLFxuICAgIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAgIC8vIGZhbGx0aHJvdWdoXG4gICAgJ3RvSlNPTicsXG4gICAgJyQkdHlwZW9mJyxcbiAgICAnX19lc01vZHVsZSdcbl0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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?9abb":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./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 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 } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz85YWJiIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFRMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsWUFBWSw0SkFBa0Y7QUFDOUYsVUFBVSxLQUFLLEVBSU47QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFxtb2R1bGUuY29tcGlsZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuanMnKTtcbn0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?9abb\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?9abb\").vendored.contexts.AppRouterContext;\n\n//# sourceMappingURL=app-router-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2FwcC1yb3V0ZXItY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDRMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xcYXBwLXBhZ2VcXHZlbmRvcmVkXFxjb250ZXh0c1xcYXBwLXJvdXRlci1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5BcHBSb3V0ZXJDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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?9abb\").vendored.contexts.HooksClientContext;\n\n//# sourceMappingURL=hooks-client-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2hvb2tzLWNsaWVudC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxyb3V0ZS1tb2R1bGVzXFxhcHAtcGFnZVxcdmVuZG9yZWRcXGNvbnRleHRzXFxob29rcy1jbGllbnQtY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSG9va3NDbGllbnRDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy1jbGllbnQtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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?9abb\").vendored.contexts.ServerInsertedHtml;\n\n//# sourceMappingURL=server-inserted-html.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL3NlcnZlci1pbnNlcnRlZC1odG1sLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxyb3V0ZS1tb2R1bGVzXFxhcHAtcGFnZVxcdmVuZG9yZWRcXGNvbnRleHRzXFxzZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uU2VydmVySW5zZXJ0ZWRIdG1sO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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?9abb\").vendored[\"react-ssr\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFx2ZW5kb3JlZFxcc3NyXFxyZWFjdC1kb20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdERPTTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtZG9tLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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?9abb\").vendored[\"react-ssr\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFx2ZW5kb3JlZFxcc3NyXFxyZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdEpzeERldlJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1kZXYtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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?9abb\").vendored[\"react-ssr\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xcYXBwLXBhZ2VcXHZlbmRvcmVkXFxzc3JcXHJlYWN0LWpzeC1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3RKc3hSdW50aW1lO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1qc3gtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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-edge.js":
|
||
/*!*******************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client-edge.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?9abb\").vendored[\"react-ssr\"].ReactServerDOMWebpackClientEdge;\n\n//# sourceMappingURL=react-server-dom-webpack-client-edge.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LWVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiwrTUFBdUc7O0FBRXZHIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFx2ZW5kb3JlZFxcc3NyXFxyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LWVkZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdFNlcnZlckRPTVdlYnBhY2tDbGllbnRFZGdlO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LWVkZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client-edge.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?9abb\").vendored[\"react-ssr\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xcYXBwLXBhZ2VcXHZlbmRvcmVkXFxzc3JcXHJlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3Q7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFx3ZWJcXHNwZWMtZXh0ZW5zaW9uXFxhZGFwdGVyc1xccmVmbGVjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlZmxlY3RBZGFwdGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlcjtcbiAgICB9XG59KTtcbmNsYXNzIFJlZmxlY3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmJpbmQodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN0YXRpYyBzZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICB9XG4gICAgc3RhdGljIGhhcyh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgfVxuICAgIHN0YXRpYyBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZmxlY3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3Itc291cmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVFnQkEsbUJBQW1CO2VBQW5CQTs7SUFOQUMsY0FBYztlQUFkQTs7O0FBRmhCLE1BQU1DLGNBQWNDLE9BQU9DLEdBQUcsQ0FBQztBQUV4QixTQUFTSCxlQUFlSSxLQUFZO0lBQ3pDLE9BQVFBLEtBQWEsQ0FBQ0gsWUFBWSxJQUFJO0FBQ3hDO0FBSU8sU0FBU0Ysb0JBQW9CSyxLQUFZLEVBQUVDLElBQXFCO0lBQ3JFQyxPQUFPQyxjQUFjLENBQUNILE9BQU9ILGFBQWE7UUFDeENPLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxjQUFjO1FBQ2RDLE9BQU9OO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXGVycm9yLXNvdXJjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzeW1ib2xFcnJvciA9IFN5bWJvbC5mb3IoJ05leHRqc0Vycm9yJylcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yU291cmNlKGVycm9yOiBFcnJvcik6ICdzZXJ2ZXInIHwgJ2VkZ2Utc2VydmVyJyB8IG51bGwge1xuICByZXR1cm4gKGVycm9yIGFzIGFueSlbc3ltYm9sRXJyb3JdIHx8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgRXJyb3JTb3VyY2VUeXBlID0gJ2VkZ2Utc2VydmVyJyB8ICdzZXJ2ZXInXG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZVNlcnZlckVycm9yKGVycm9yOiBFcnJvciwgdHlwZTogRXJyb3JTb3VyY2VUeXBlKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnJvciwgc3ltYm9sRXJyb3IsIHtcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogdHlwZSxcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJkZWNvcmF0ZVNlcnZlckVycm9yIiwiZ2V0RXJyb3JTb3VyY2UiLCJzeW1ib2xFcnJvciIsIlN5bWJvbCIsImZvciIsImVycm9yIiwidHlwZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwid3JpdGFibGUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwidmFsdWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/error-source.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLGlIQUFpSDtBQUNqSCx3RkFBd0Y7QUFDeEYsZ0dBQWdHO0FBQ2hHLHdIQUF3SDtBQUN4SCx3REFBd0Q7Ozs7Ozs7Ozs7Ozs7SUFDeENBLFFBQVE7ZUFBUkE7O0lBU0FDLE9BQU87ZUFBUEE7OztBQVRULFNBQVNELFNBQVNFLEdBQVc7SUFDbEMsSUFBSUMsT0FBTztJQUNYLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUs7UUFDbkMsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBU0EsQ0FBQUEsU0FBUSxJQUFLQSxPQUFPRyxPQUFRO0lBQ3ZDO0lBQ0EsT0FBT0gsU0FBUztBQUNsQjtBQUVPLFNBQVNGLFFBQVFDLEdBQVc7SUFDakMsT0FBT0YsU0FBU0UsS0FBS00sUUFBUSxDQUFDLElBQUlDLEtBQUssQ0FBQyxHQUFHO0FBQzdDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcaGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwOi8vd3d3LmNzZS55b3JrdS5jYS9+b3ovaGFzaC5odG1sXG4vLyBNb3JlIHNwZWNpZmljYWxseSwgMzItYml0IGhhc2ggdmlhIGRqYnhvclxuLy8gKHJlZjogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZXBsYXdsZXNzLzUyODEzYjFkOGFkOWFmNTEwZDg1P3Blcm1hbGlua19jb21tZW50X2lkPTMzNjc3NjUjZ2lzdGNvbW1lbnQtMzM2Nzc2NSlcbi8vIFRoaXMgaXMgZHVlIHRvIG51bWJlciB0eXBlIGRpZmZlcmVuY2VzIGJldHdlZW4gcnVzdCBmb3IgdHVyYm9wYWNrIHRvIGpzIG51bWJlciB0eXBlcyxcbi8vIHdoZXJlIHJ1c3QgZG9lcyBub3QgaGF2ZSBlYXN5IHdheSB0byByZXByZWVzbnQganMncyA1My1iaXQgZmxvYXQgbnVtYmVyIHR5cGUgZm9yIHRoZSBtYXRjaGluZ1xuLy8gb3ZlcmZsb3cgYmVoYXZpb3IuIFRoaXMgaXMgbW9yZSBgY29ycmVjdGAgaW4gdGVybXMgb2YgaGF2aW5nIGNhbm9uaWNhbCBoYXNoIGFjcm9zcyBkaWZmZXJlbnQgcnVudGltZSAvIGltcGxlbWVudGF0aW9uXG4vLyBhcyBjYW4gZ2F1cmFudGVlIGRldGVybWluc3RpYyBvdXRwdXQgZnJvbSAzMmJpdCBoYXNoLlxuZXhwb3J0IGZ1bmN0aW9uIGRqYjJIYXNoKHN0cjogc3RyaW5nKSB7XG4gIGxldCBoYXNoID0gNTM4MVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoYXIgPSBzdHIuY2hhckNvZGVBdChpKVxuICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgKyBoYXNoICsgY2hhcikgJiAweGZmZmZmZmZmXG4gIH1cbiAgcmV0dXJuIGhhc2ggPj4+IDBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhleEhhc2goc3RyOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGRqYjJIYXNoKHN0cikudG9TdHJpbmcoMzYpLnNsaWNlKDAsIDUpXG59XG4iXSwibmFtZXMiOlsiZGpiMkhhc2giLCJoZXhIYXNoIiwic3RyIiwiaGFzaCIsImkiLCJsZW5ndGgiLCJjaGFyIiwiY2hhckNvZGVBdCIsInRvU3RyaW5nIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcaW52YXJpYW50LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJbnZhcmlhbnRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogRXJyb3JPcHRpb25zKSB7XG4gICAgc3VwZXIoXG4gICAgICBgSW52YXJpYW50OiAke21lc3NhZ2UuZW5kc1dpdGgoJy4nKSA/IG1lc3NhZ2UgOiBtZXNzYWdlICsgJy4nfSBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuYCxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gICAgdGhpcy5uYW1lID0gJ0ludmFyaWFudEVycm9yJ1xuICB9XG59XG4iXSwibmFtZXMiOlsiSW52YXJpYW50RXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsIm9wdGlvbnMiLCJlbmRzV2l0aCIsIm5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXGlzLXBsYWluLW9iamVjdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0Q2xhc3NMYWJlbCh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICBpZiAoZ2V0T2JqZWN0Q2xhc3NMYWJlbCh2YWx1ZSkgIT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpXG5cbiAgLyoqXG4gICAqIHRoaXMgdXNlZCB0byBiZSBwcmV2aW91c2x5OlxuICAgKlxuICAgKiBgcmV0dXJuIHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUgPT09IE9iamVjdC5wcm90b3R5cGVgXG4gICAqXG4gICAqIGJ1dCBFZGdlIFJ1bnRpbWUgZXhwb3NlIE9iamVjdCBmcm9tIHZtLCBiZWluZyB0aGF0IGtpbmQgb2YgdHlwZS1jaGVja2luZyB3cm9uZ2x5IGZhaWwuXG4gICAqXG4gICAqIEl0IHdhcyBjaGFuZ2VkIHRvIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHNpbmNlIGl0J3MgcmVzaWxpZW50IHRvIHNlcmlhbGl6YXRpb24uXG4gICAqL1xuICByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgnaXNQcm90b3R5cGVPZicpXG59XG4iXSwibmFtZXMiOlsiZ2V0T2JqZWN0Q2xhc3NMYWJlbCIsImlzUGxhaW5PYmplY3QiLCJ2YWx1ZSIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCIsImdldFByb3RvdHlwZU9mIiwiaGFzT3duUHJvcGVydHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXGxhenktZHluYW1pY1xcYmFpbG91dC10by1jc3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBoYXMgdG8gYmUgYSBzaGFyZWQgbW9kdWxlIHdoaWNoIGlzIHNoYXJlZCBiZXR3ZWVuIGNsaWVudCBjb21wb25lbnQgZXJyb3IgYm91bmRhcnkgYW5kIGR5bmFtaWMgY29tcG9uZW50XG5jb25zdCBCQUlMT1VUX1RPX0NTUiA9ICdCQUlMT1VUX1RPX0NMSUVOVF9TSURFX1JFTkRFUklORydcblxuLyoqIEFuIGVycm9yIHRoYXQgc2hvdWxkIGJlIHRocm93biB3aGVuIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGNsYXNzIEJhaWxvdXRUb0NTUkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgcmVhZG9ubHkgZGlnZXN0ID0gQkFJTE9VVF9UT19DU1JcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcmVhc29uOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgQmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nOiAke3JlYXNvbn1gKVxuICB9XG59XG5cbi8qKiBDaGVja3MgaWYgYSBwYXNzZWQgYXJndW1lbnQgaXMgYW4gZXJyb3IgdGhhdCBpcyB0aHJvd24gaWYgd2Ugd2FudCB0byBiYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmcuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCYWlsb3V0VG9DU1JFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgQmFpbG91dFRvQ1NSRXJyb3Ige1xuICBpZiAodHlwZW9mIGVyciAhPT0gJ29iamVjdCcgfHwgZXJyID09PSBudWxsIHx8ICEoJ2RpZ2VzdCcgaW4gZXJyKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGVyci5kaWdlc3QgPT09IEJBSUxPVVRfVE9fQ1NSXG59XG4iXSwibmFtZXMiOlsiQmFpbG91dFRvQ1NSRXJyb3IiLCJpc0JhaWxvdXRUb0NTUkVycm9yIiwiQkFJTE9VVF9UT19DU1IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwicmVhc29uIiwiZGlnZXN0IiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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/magic-identifier.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/magic-identifier.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 MAGIC_IDENTIFIER_REGEX: function() {\n return MAGIC_IDENTIFIER_REGEX;\n },\n decodeMagicIdentifier: function() {\n return decodeMagicIdentifier;\n }\n});\nfunction decodeHex(hexStr) {\n if (hexStr.trim() === '') {\n throw new Error(\"can't decode empty hex\");\n }\n const num = parseInt(hexStr, 16);\n if (isNaN(num)) {\n throw new Error(\"invalid hex: `\" + hexStr + \"`\");\n }\n return String.fromCodePoint(num);\n}\nconst DECODE_REGEX = /^__TURBOPACK__([a-zA-Z0-9_$]+)__$/;\nfunction decodeMagicIdentifier(identifier) {\n const matches = identifier.match(DECODE_REGEX);\n if (!matches) {\n return identifier;\n }\n const inner = matches[1];\n let output = '';\n let mode = 0;\n let buffer = '';\n for(let i = 0; i < inner.length; i++){\n const char = inner[i];\n if (mode === 0) {\n if (char === '_') {\n mode = 1;\n } else if (char === '$') {\n mode = 2;\n } else {\n output += char;\n }\n } else if (mode === 1) {\n if (char === '_') {\n output += ' ';\n mode = 0;\n } else if (char === '$') {\n output += '_';\n mode = 2;\n } else {\n output += char;\n mode = 0;\n }\n } else if (mode === 2) {\n if (buffer.length === 2) {\n output += decodeHex(buffer);\n buffer = '';\n }\n if (char === '_') {\n if (buffer !== '') {\n throw new Error(\"invalid hex: `\" + buffer + \"`\");\n }\n mode = 3;\n } else if (char === '$') {\n if (buffer !== '') {\n throw new Error(\"invalid hex: `\" + buffer + \"`\");\n }\n mode = 0;\n } else {\n buffer += char;\n }\n } else if (mode === 3) {\n if (char === '_') {\n throw new Error(\"invalid hex: `\" + (buffer + char) + \"`\");\n } else if (char === '$') {\n output += decodeHex(buffer);\n buffer = '';\n mode = 0;\n } else {\n buffer += char;\n }\n }\n }\n return output;\n}\nconst MAGIC_IDENTIFIER_REGEX = /__TURBOPACK__[a-zA-Z0-9_$]+__/g; //# sourceMappingURL=magic-identifier.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWFnaWMtaWRlbnRpZmllci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE4RmFBLHNCQUFzQjtlQUF0QkE7O0lBeEVHQyxxQkFBcUI7ZUFBckJBOzs7QUF0QmhCLFNBQVNDLFVBQVVDLE1BQWM7SUFDL0IsSUFBSUEsT0FBT0MsSUFBSSxPQUFPLElBQUk7UUFDeEIsTUFBTSxJQUFJQyxNQUFNO0lBQ2xCO0lBRUEsTUFBTUMsTUFBTUMsU0FBU0osUUFBUTtJQUM3QixJQUFJSyxNQUFNRixNQUFNO1FBQ2QsTUFBTSxJQUFJRCxNQUFPLG1CQUFpQkYsU0FBTztJQUMzQztJQUVBLE9BQU9NLE9BQU9DLGFBQWEsQ0FBQ0o7QUFDOUI7QUFTQSxNQUFNSyxlQUFlO0FBRWQsU0FBU1Ysc0JBQXNCVyxVQUFrQjtJQUN0RCxNQUFNQyxVQUFVRCxXQUFXRSxLQUFLLENBQUNIO0lBQ2pDLElBQUksQ0FBQ0UsU0FBUztRQUNaLE9BQU9EO0lBQ1Q7SUFFQSxNQUFNRyxRQUFRRixPQUFPLENBQUMsRUFBRTtJQUV4QixJQUFJRyxTQUFTO0lBRWIsSUFBSUMsT0FBQUE7SUFDSixJQUFJQyxTQUFTO0lBQ2IsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlKLE1BQU1LLE1BQU0sRUFBRUQsSUFBSztRQUNyQyxNQUFNRSxPQUFPTixLQUFLLENBQUNJLEVBQUU7UUFFckIsSUFBSUYsU0FBQUEsR0FBb0I7WUFDdEIsSUFBSUksU0FBUyxLQUFLO2dCQUNoQkosT0FBQUE7WUFDRixPQUFPLElBQUlJLFNBQVMsS0FBSztnQkFDdkJKLE9BQUFBO1lBQ0YsT0FBTztnQkFDTEQsVUFBVUs7WUFDWjtRQUNGLE9BQU8sSUFBSUosU0FBQUEsR0FBMEI7WUFDbkMsSUFBSUksU0FBUyxLQUFLO2dCQUNoQkwsVUFBVTtnQkFDVkMsT0FBQUE7WUFDRixPQUFPLElBQUlJLFNBQVMsS0FBSztnQkFDdkJMLFVBQVU7Z0JBQ1ZDLE9BQUFBO1lBQ0YsT0FBTztnQkFDTEQsVUFBVUs7Z0JBQ1ZKLE9BQUFBO1lBQ0Y7UUFDRixPQUFPLElBQUlBLFNBQUFBLEdBQW1CO1lBQzVCLElBQUlDLE9BQU9FLE1BQU0sS0FBSyxHQUFHO2dCQUN2QkosVUFBVWQsVUFBVWdCO2dCQUNwQkEsU0FBUztZQUNYO1lBRUEsSUFBSUcsU0FBUyxLQUFLO2dCQUNoQixJQUFJSCxXQUFXLElBQUk7b0JBQ2pCLE1BQU0sSUFBSWIsTUFBTyxtQkFBaUJhLFNBQU87Z0JBQzNDO2dCQUVBRCxPQUFBQTtZQUNGLE9BQU8sSUFBSUksU0FBUyxLQUFLO2dCQUN2QixJQUFJSCxXQUFXLElBQUk7b0JBQ2pCLE1BQU0sSUFBSWIsTUFBTyxtQkFBaUJhLFNBQU87Z0JBQzNDO2dCQUVBRCxPQUFBQTtZQUNGLE9BQU87Z0JBQ0xDLFVBQVVHO1lBQ1o7UUFDRixPQUFPLElBQUlKLFNBQUFBLEdBQXVCO1lBQ2hDLElBQUlJLFNBQVMsS0FBSztnQkFDaEIsTUFBTSxJQUFJaEIsTUFBTyxtQkFBaUJhLENBQUFBLFNBQVNHLElBQUFBLENBQUcsR0FBRTtZQUNsRCxPQUFPLElBQUlBLFNBQVMsS0FBSztnQkFDdkJMLFVBQVVkLFVBQVVnQjtnQkFDcEJBLFNBQVM7Z0JBRVRELE9BQUFBO1lBQ0YsT0FBTztnQkFDTEMsVUFBVUc7WUFDWjtRQUNGO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUO0FBRU8sTUFBTWhCLHlCQUF5QiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXG1hZ2ljLWlkZW50aWZpZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZGVjb2RlSGV4KGhleFN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGhleFN0ci50cmltKCkgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiY2FuJ3QgZGVjb2RlIGVtcHR5IGhleFwiKVxuICB9XG5cbiAgY29uc3QgbnVtID0gcGFyc2VJbnQoaGV4U3RyLCAxNilcbiAgaWYgKGlzTmFOKG51bSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaGV4OiBcXGAke2hleFN0cn1cXGBgKVxuICB9XG5cbiAgcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KG51bSlcbn1cblxuY29uc3QgZW51bSBNb2RlIHtcbiAgVGV4dCxcbiAgVW5kZXJzY29yZSxcbiAgSGV4LFxuICBMb25nSGV4LFxufVxuXG5jb25zdCBERUNPREVfUkVHRVggPSAvXl9fVFVSQk9QQUNLX18oW2EtekEtWjAtOV8kXSspX18kL1xuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlTWFnaWNJZGVudGlmaWVyKGlkZW50aWZpZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoZXMgPSBpZGVudGlmaWVyLm1hdGNoKERFQ09ERV9SRUdFWClcbiAgaWYgKCFtYXRjaGVzKSB7XG4gICAgcmV0dXJuIGlkZW50aWZpZXJcbiAgfVxuXG4gIGNvbnN0IGlubmVyID0gbWF0Y2hlc1sxXVxuXG4gIGxldCBvdXRwdXQgPSAnJ1xuXG4gIGxldCBtb2RlOiBNb2RlID0gTW9kZS5UZXh0XG4gIGxldCBidWZmZXIgPSAnJ1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlubmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IGlubmVyW2ldXG5cbiAgICBpZiAobW9kZSA9PT0gTW9kZS5UZXh0KSB7XG4gICAgICBpZiAoY2hhciA9PT0gJ18nKSB7XG4gICAgICAgIG1vZGUgPSBNb2RlLlVuZGVyc2NvcmVcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJyQnKSB7XG4gICAgICAgIG1vZGUgPSBNb2RlLkhleFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0ICs9IGNoYXJcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09IE1vZGUuVW5kZXJzY29yZSkge1xuICAgICAgaWYgKGNoYXIgPT09ICdfJykge1xuICAgICAgICBvdXRwdXQgKz0gJyAnXG4gICAgICAgIG1vZGUgPSBNb2RlLlRleHRcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJyQnKSB7XG4gICAgICAgIG91dHB1dCArPSAnXydcbiAgICAgICAgbW9kZSA9IE1vZGUuSGV4XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXQgKz0gY2hhclxuICAgICAgICBtb2RlID0gTW9kZS5UZXh0XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChtb2RlID09PSBNb2RlLkhleCkge1xuICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgb3V0cHV0ICs9IGRlY29kZUhleChidWZmZXIpXG4gICAgICAgIGJ1ZmZlciA9ICcnXG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFyID09PSAnXycpIHtcbiAgICAgICAgaWYgKGJ1ZmZlciAhPT0gJycpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaGV4OiBcXGAke2J1ZmZlcn1cXGBgKVxuICAgICAgICB9XG5cbiAgICAgICAgbW9kZSA9IE1vZGUuTG9uZ0hleFxuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnJCcpIHtcbiAgICAgICAgaWYgKGJ1ZmZlciAhPT0gJycpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaGV4OiBcXGAke2J1ZmZlcn1cXGBgKVxuICAgICAgICB9XG5cbiAgICAgICAgbW9kZSA9IE1vZGUuVGV4dFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVmZmVyICs9IGNoYXJcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09IE1vZGUuTG9uZ0hleCkge1xuICAgICAgaWYgKGNoYXIgPT09ICdfJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgaGV4OiBcXGAke2J1ZmZlciArIGNoYXJ9XFxgYClcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJyQnKSB7XG4gICAgICAgIG91dHB1dCArPSBkZWNvZGVIZXgoYnVmZmVyKVxuICAgICAgICBidWZmZXIgPSAnJ1xuXG4gICAgICAgIG1vZGUgPSBNb2RlLlRleHRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1ZmZlciArPSBjaGFyXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5leHBvcnQgY29uc3QgTUFHSUNfSURFTlRJRklFUl9SRUdFWCA9IC9fX1RVUkJPUEFDS19fW2EtekEtWjAtOV8kXStfXy9nXG4iXSwibmFtZXMiOlsiTUFHSUNfSURFTlRJRklFUl9SRUdFWCIsImRlY29kZU1hZ2ljSWRlbnRpZmllciIsImRlY29kZUhleCIsImhleFN0ciIsInRyaW0iLCJFcnJvciIsIm51bSIsInBhcnNlSW50IiwiaXNOYU4iLCJTdHJpbmciLCJmcm9tQ29kZVBvaW50IiwiREVDT0RFX1JFR0VYIiwiaWRlbnRpZmllciIsIm1hdGNoZXMiLCJtYXRjaCIsImlubmVyIiwib3V0cHV0IiwibW9kZSIsImJ1ZmZlciIsImkiLCJsZW5ndGgiLCJjaGFyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/magic-identifier.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbm9ybWFsaXplZC1hc3NldC1wcmVmaXguanMiLCJtYXBwaW5ncyI6Ijs7Ozt5REFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHNCQUFzQkMsV0FBK0I7SUFDbkUsa0RBQWtEO0lBQ2xELE1BQU1DLHFCQUFxQkQsQ0FBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsWUFBYUUsT0FBTyxDQUFDLGNBQWMsUUFBTztJQUVyRSxvREFBb0Q7SUFDcEQsb0RBQW9EO0lBQ3BELElBQUksQ0FBQ0Qsb0JBQW9CO1FBQ3ZCLE9BQU87SUFDVDtJQUVBLElBQUlFLElBQUlDLFFBQVEsQ0FBQ0gscUJBQXFCO1FBQ3BDLE1BQU1JLE1BQU0sSUFBSUYsSUFBSUYsb0JBQW9CSyxRQUFRO1FBQ2hELE9BQU9ELElBQUlFLFFBQVEsQ0FBQyxPQUFPRixJQUFJRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUtIO0lBQ2hEO0lBRUEsaURBQWlEO0lBQ2pELDRCQUE0QjtJQUM1QixPQUFRLE1BQUdKO0FBQ2IiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxub3JtYWxpemVkLWFzc2V0LXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplZEFzc2V0UHJlZml4KGFzc2V0UHJlZml4OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAvLyByZW1vdmUgYWxsIGxlYWRpbmcgc2xhc2hlcyBhbmQgdHJhaWxpbmcgc2xhc2hlc1xuICBjb25zdCBlc2NhcGVkQXNzZXRQcmVmaXggPSBhc3NldFByZWZpeD8ucmVwbGFjZSgvXlxcLyt8XFwvKyQvZywgJycpIHx8IGZhbHNlXG5cbiAgLy8gaWYgYW4gYXNzZXRQcmVmaXggd2FzICcvJywgd2UgcmV0dXJuIGVtcHR5IHN0cmluZ1xuICAvLyBiZWNhdXNlIGl0IGNvdWxkIGJlIGFuIHVubmVjZXNzYXJ5IHRyYWlsaW5nIHNsYXNoXG4gIGlmICghZXNjYXBlZEFzc2V0UHJlZml4KSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBpZiAoVVJMLmNhblBhcnNlKGVzY2FwZWRBc3NldFByZWZpeCkpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGVzY2FwZWRBc3NldFByZWZpeCkudG9TdHJpbmcoKVxuICAgIHJldHVybiB1cmwuZW5kc1dpdGgoJy8nKSA/IHVybC5zbGljZSgwLCAtMSkgOiB1cmxcbiAgfVxuXG4gIC8vIGFzc3VtaW5nIGFzc2V0UHJlZml4IGhlcmUgaXMgYSBwYXRobmFtZS1zdHlsZSxcbiAgLy8gcmVzdG9yZSB0aGUgbGVhZGluZyBzbGFzaFxuICByZXR1cm4gYC8ke2VzY2FwZWRBc3NldFByZWZpeH1gXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplZEFzc2V0UHJlZml4IiwiYXNzZXRQcmVmaXgiLCJlc2NhcGVkQXNzZXRQcmVmaXgiLCJyZXBsYWNlIiwiVVJMIiwiY2FuUGFyc2UiLCJ1cmwiLCJ0b1N0cmluZyIsImVuZHNXaXRoIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxccGFnZS1wYXRoXFxlbnN1cmUtbGVhZGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvciBhIGdpdmVuIHBhZ2UgcGF0aCwgdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgYSBsZWFkaW5nIHNsYXNoLlxuICogSWYgdGhlcmUgaXMgbm90IGEgbGVhZGluZyBzbGFzaCwgb25lIGlzIGFkZGVkLCBvdGhlcndpc2UgaXQgaXMgbm9vcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUxlYWRpbmdTbGFzaChwYXRoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHBhdGguc3RhcnRzV2l0aCgnLycpID8gcGF0aCA6IGAvJHtwYXRofWBcbn1cbiJdLCJuYW1lcyI6WyJlbnN1cmVMZWFkaW5nU2xhc2giLCJwYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcYWRkLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBBZGRzIHRoZSBwcm92aWRlZCBwcmVmaXggdG8gdGhlIGdpdmVuIHBhdGguIEl0IGZpcnN0IGVuc3VyZXMgdGhhdCB0aGUgcGF0aFxuICogaXMgaW5kZWVkIHN0YXJ0aW5nIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3ByZWZpeH0ke3BhdGhuYW1lfSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxhcHAtcGF0aHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSAnLi4vLi4vcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoJ1xuaW1wb3J0IHsgaXNHcm91cFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZWdtZW50J1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYW4gYXBwIHJvdXRlIHNvIGl0IHJlcHJlc2VudHMgdGhlIGFjdHVhbCByZXF1ZXN0IHBhdGguIEVzc2VudGlhbGx5XG4gKiBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcgdHJhbnNmb3JtYXRpb25zOlxuICpcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3BhZ2VgIHRvIGAvYFxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3JvdXRlYCB0byBgL2BcbiAqIC0gYC9gIHRvIGAvYFxuICpcbiAqIEBwYXJhbSByb3V0ZSB0aGUgYXBwIHJvdXRlIHRvIG5vcm1hbGl6ZVxuICogQHJldHVybnMgdGhlIG5vcm1hbGl6ZWQgcGF0aG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFwcFBhdGgocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gZW5zdXJlTGVhZGluZ1NsYXNoKFxuICAgIHJvdXRlLnNwbGl0KCcvJykucmVkdWNlKChwYXRobmFtZSwgc2VnbWVudCwgaW5kZXgsIHNlZ21lbnRzKSA9PiB7XG4gICAgICAvLyBFbXB0eSBzZWdtZW50cyBhcmUgaWdub3JlZC5cbiAgICAgIGlmICghc2VnbWVudCkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gR3JvdXBzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKGlzR3JvdXBTZWdtZW50KHNlZ21lbnQpKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBQYXJhbGxlbCBzZWdtZW50cyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChzZWdtZW50WzBdID09PSAnQCcpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIFRoZSBsYXN0IHNlZ21lbnQgKGlmIGl0J3MgYSBsZWFmKSBzaG91bGQgYmUgaWdub3JlZC5cbiAgICAgIGlmIChcbiAgICAgICAgKHNlZ21lbnQgPT09ICdwYWdlJyB8fCBzZWdtZW50ID09PSAncm91dGUnKSAmJlxuICAgICAgICBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9LyR7c2VnbWVudH1gXG4gICAgfSwgJycpXG4gIClcbn1cblxuLyoqXG4gKiBTdHJpcHMgdGhlIGAucnNjYCBleHRlbnNpb24gaWYgaXQncyBpbiB0aGUgcGF0aG5hbWUuXG4gKiBTaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgb24gZnVsbCB1cmxzIGl0IGNoZWNrcyBgP2AgZm9yIHNlYXJjaFBhcmFtcyBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJzY1VSTCh1cmw6IHN0cmluZykge1xuICByZXR1cm4gdXJsLnJlcGxhY2UoXG4gICAgL1xcLnJzYygkfFxcPykvLFxuICAgIC8vICQxIGVuc3VyZXMgYD9gIGlzIHByZXNlcnZlZFxuICAgICckMSdcbiAgKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZUFwcFBhdGgiLCJub3JtYWxpemVSc2NVUkwiLCJyb3V0ZSIsImVuc3VyZUxlYWRpbmdTbGFzaCIsInNwbGl0IiwicmVkdWNlIiwicGF0aG5hbWUiLCJzZWdtZW50IiwiaW5kZXgiLCJzZWdtZW50cyIsImlzR3JvdXBTZWdtZW50IiwibGVuZ3RoIiwidXJsIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7Ozs7Ozs7Ozs7Ozs7SUFRekJBLFNBQVM7ZUFBVEE7O0lBNkRBQyxvQkFBb0I7ZUFBcEJBOztJQWZIQyxhQUFhO2VBQWJBOzs7O21GQWxEZ0I7QUFFN0IsTUFBTUMsbUJBQW1CO0FBRWxCLFNBQVNILFVBQVVJLE1BQWlCO0lBQ3pDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Y7SUFDekIsSUFBSUcsV0FBV0gsT0FBT0csUUFBUSxJQUFJO0lBQ2xDLElBQUlDLFdBQVdKLE9BQU9JLFFBQVEsSUFBSTtJQUNsQyxJQUFJQyxPQUFPTCxPQUFPSyxJQUFJLElBQUk7SUFDMUIsSUFBSUMsUUFBUU4sT0FBT00sS0FBSyxJQUFJO0lBQzVCLElBQUlDLE9BQXVCO0lBRTNCTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUVwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDZkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUMzQixPQUFPLElBQUlMLFVBQVU7UUFDbkJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQVEsTUFBR1IsV0FBUyxNQUFLQSxRQUFBQSxDQUFPO1FBQ2pFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVUsTUFBR0EsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ1osRUFBQ2QsWUFBWUosaUJBQWlCbUIsSUFBSSxDQUFDZixTQUFBQSxDQUFRLElBQU1JLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEdBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQ3hELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2hCQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJRixRQUFRQSxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDMUMsSUFBSVUsVUFBVUEsTUFBTSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxTQUFTLE1BQU1BO0lBRWhEWCxXQUFXQSxTQUFTSyxPQUFPLENBQUMsU0FBU0Q7SUFDckNPLFNBQVNBLE9BQU9OLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLE9BQVEsS0FBRU4sV0FBV0ksT0FBT0gsV0FBV1csU0FBU1Y7QUFDbEQ7QUFFTyxNQUFNUCxnQkFBZ0I7SUFDM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCxxQkFBcUJzQixHQUFjO0lBQ2pELElBQUlDLElBQW9CLEVBQW9CO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NJLE9BQU9DLElBQUksQ0FBQ0wsS0FBS00sT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUM1QixjQUFjNkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNULHVEQUFvREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzlCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGZvcm1hdC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9ybWF0IGZ1bmN0aW9uIG1vZGlmaWVkIGZyb20gbm9kZWpzXG4vLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHR5cGUgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQgdHlwZSB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgKiBhcyBxdWVyeXN0cmluZyBmcm9tICcuL3F1ZXJ5c3RyaW5nJ1xuXG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRVcmwodXJsT2JqOiBVcmxPYmplY3QpIHtcbiAgbGV0IHsgYXV0aCwgaG9zdG5hbWUgfSA9IHVybE9ialxuICBsZXQgcHJvdG9jb2wgPSB1cmxPYmoucHJvdG9jb2wgfHwgJydcbiAgbGV0IHBhdGhuYW1lID0gdXJsT2JqLnBhdGhuYW1lIHx8ICcnXG4gIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgJydcbiAgbGV0IHF1ZXJ5ID0gdXJsT2JqLnF1ZXJ5IHx8ICcnXG4gIGxldCBob3N0OiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlXG5cbiAgYXV0aCA9IGF1dGggPyBlbmNvZGVVUklDb21wb25lbnQoYXV0aCkucmVwbGFjZSgvJTNBL2ksICc6JykgKyAnQCcgOiAnJ1xuXG4gIGlmICh1cmxPYmouaG9zdCkge1xuICAgIGhvc3QgPSBhdXRoICsgdXJsT2JqLmhvc3RcbiAgfSBlbHNlIGlmIChob3N0bmFtZSkge1xuICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKCc6JykgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZSlcbiAgICBpZiAodXJsT2JqLnBvcnQpIHtcbiAgICAgIGhvc3QgKz0gJzonICsgdXJsT2JqLnBvcnRcbiAgICB9XG4gIH1cblxuICBpZiAocXVlcnkgJiYgdHlwZW9mIHF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgIHF1ZXJ5ID0gU3RyaW5nKHF1ZXJ5c3RyaW5nLnVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocXVlcnkgYXMgUGFyc2VkVXJsUXVlcnkpKVxuICB9XG5cbiAgbGV0IHNlYXJjaCA9IHVybE9iai5zZWFyY2ggfHwgKHF1ZXJ5ICYmIGA/JHtxdWVyeX1gKSB8fCAnJ1xuXG4gIGlmIChwcm90b2NvbCAmJiAhcHJvdG9jb2wuZW5kc1dpdGgoJzonKSkgcHJvdG9jb2wgKz0gJzonXG5cbiAgaWYgKFxuICAgIHVybE9iai5zbGFzaGVzIHx8XG4gICAgKCghcHJvdG9jb2wgfHwgc2xhc2hlZFByb3RvY29scy50ZXN0KHByb3RvY29sKSkgJiYgaG9zdCAhPT0gZmFsc2UpXG4gICkge1xuICAgIGhvc3QgPSAnLy8nICsgKGhvc3QgfHwgJycpXG4gICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWVcbiAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgIGhvc3QgPSAnJ1xuICB9XG5cbiAgaWYgKGhhc2ggJiYgaGFzaFswXSAhPT0gJyMnKSBoYXNoID0gJyMnICsgaGFzaFxuICBpZiAoc2VhcmNoICYmIHNlYXJjaFswXSAhPT0gJz8nKSBzZWFyY2ggPSAnPycgKyBzZWFyY2hcblxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1s/I10vZywgZW5jb2RlVVJJQ29tcG9uZW50KVxuICBzZWFyY2ggPSBzZWFyY2gucmVwbGFjZSgnIycsICclMjMnKVxuXG4gIHJldHVybiBgJHtwcm90b2NvbH0ke2hvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YFxufVxuXG5leHBvcnQgY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgJ2F1dGgnLFxuICAnaGFzaCcsXG4gICdob3N0JyxcbiAgJ2hvc3RuYW1lJyxcbiAgJ2hyZWYnLFxuICAncGF0aCcsXG4gICdwYXRobmFtZScsXG4gICdwb3J0JyxcbiAgJ3Byb3RvY29sJyxcbiAgJ3F1ZXJ5JyxcbiAgJ3NlYXJjaCcsXG4gICdzbGFzaGVzJyxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybDogVXJsT2JqZWN0KTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgaWYgKHVybCAhPT0gbnVsbCAmJiB0eXBlb2YgdXJsID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXModXJsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKCF1cmxPYmplY3RLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgVW5rbm93biBrZXkgcGFzc2VkIHZpYSB1cmxPYmplY3QgaW50byB1cmwuZm9ybWF0OiAke2tleX1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb3JtYXRVcmwodXJsKVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdFVybCIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsT2JqZWN0S2V5cyIsInNsYXNoZWRQcm90b2NvbHMiLCJ1cmxPYmoiLCJhdXRoIiwiaG9zdG5hbWUiLCJwcm90b2NvbCIsInBhdGhuYW1lIiwiaGFzaCIsInF1ZXJ5IiwiaG9zdCIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJpbmRleE9mIiwicG9ydCIsIlN0cmluZyIsInF1ZXJ5c3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsImVuZHNXaXRoIiwic2xhc2hlcyIsInRlc3QiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwiY29uc29sZSIsIndhcm4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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/handle-smooth-scroll.js":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js ***!
|
||
\********************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Run function with `scroll-behavior: auto` applied to `<html/>`.\n * This css change will be reverted after the function finishes.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"handleSmoothScroll\", ({\n enumerable: true,\n get: function() {\n return handleSmoothScroll;\n }\n}));\nfunction handleSmoothScroll(fn, options) {\n if (options === void 0) options = {};\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn();\n return;\n }\n const htmlElement = document.documentElement;\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = 'auto';\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects();\n }\n fn();\n htmlElement.style.scrollBehavior = existing;\n} //# sourceMappingURL=handle-smooth-scroll.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2hhbmRsZS1zbW9vdGgtc2Nyb2xsLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQ2RDLEVBQWMsRUFDZEMsT0FBcUU7SUFBckVBLElBQUFBLFlBQUFBLEtBQUFBLEdBQUFBLFVBQW1FLENBQUM7SUFFcEUseUVBQXlFO0lBQ3pFLDZGQUE2RjtJQUM3RixJQUFJQSxRQUFRQyxjQUFjLEVBQUU7UUFDMUJGO1FBQ0E7SUFDRjtJQUNBLE1BQU1HLGNBQWNDLFNBQVNDLGVBQWU7SUFDNUMsTUFBTUMsV0FBV0gsWUFBWUksS0FBSyxDQUFDQyxjQUFjO0lBQ2pETCxZQUFZSSxLQUFLLENBQUNDLGNBQWMsR0FBRztJQUNuQyxJQUFJLENBQUNQLFFBQVFRLGVBQWUsRUFBRTtRQUM1Qiw4RUFBOEU7UUFDOUUsNERBQTREO1FBQzVELHlGQUF5RjtRQUN6Rk4sWUFBWU8sY0FBYztJQUM1QjtJQUNBVjtJQUNBRyxZQUFZSSxLQUFLLENBQUNDLGNBQWMsR0FBR0Y7QUFDckMiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxoYW5kbGUtc21vb3RoLXNjcm9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJ1biBmdW5jdGlvbiB3aXRoIGBzY3JvbGwtYmVoYXZpb3I6IGF1dG9gIGFwcGxpZWQgdG8gYDxodG1sLz5gLlxuICogVGhpcyBjc3MgY2hhbmdlIHdpbGwgYmUgcmV2ZXJ0ZWQgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGZpbmlzaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlU21vb3RoU2Nyb2xsKFxuICBmbjogKCkgPT4gdm9pZCxcbiAgb3B0aW9uczogeyBkb250Rm9yY2VMYXlvdXQ/OiBib29sZWFuOyBvbmx5SGFzaENoYW5nZT86IGJvb2xlYW4gfSA9IHt9XG4pIHtcbiAgLy8gaWYgb25seSB0aGUgaGFzaCBpcyBjaGFuZ2VkLCB3ZSBkb24ndCBuZWVkIHRvIGRpc2FibGUgc21vb3RoIHNjcm9sbGluZ1xuICAvLyB3ZSBvbmx5IGNhcmUgdG8gcHJldmVudCBzbW9vdGggc2Nyb2xsaW5nIHdoZW4gbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlIHRvIGF2b2lkIGphcnJpbmcgVVhcbiAgaWYgKG9wdGlvbnMub25seUhhc2hDaGFuZ2UpIHtcbiAgICBmbigpXG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgY29uc3QgZXhpc3RpbmcgPSBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvclxuICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICdhdXRvJ1xuICBpZiAoIW9wdGlvbnMuZG9udEZvcmNlTGF5b3V0KSB7XG4gICAgLy8gSW4gQ2hyb21lLWJhc2VkIGJyb3dzZXJzIHdlIG5lZWQgdG8gZm9yY2UgcmVmbG93IGJlZm9yZSBjYWxsaW5nIGBzY3JvbGxUb2AuXG4gICAgLy8gT3RoZXJ3aXNlIGl0IHdpbGwgbm90IHBpY2t1cCB0aGUgY2hhbmdlIGluIHNjcm9sbEJlaGF2aW9yXG4gICAgLy8gTW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNDA3MTkjaXNzdWVjb21tZW50LTEzMzYyNDgwNDJcbiAgICBodG1sRWxlbWVudC5nZXRDbGllbnRSZWN0cygpXG4gIH1cbiAgZm4oKVxuICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9IGV4aXN0aW5nXG59XG4iXSwibmFtZXMiOlsiaGFuZGxlU21vb3RoU2Nyb2xsIiwiZm4iLCJvcHRpb25zIiwib25seUhhc2hDaGFuZ2UiLCJodG1sRWxlbWVudCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiZXhpc3RpbmciLCJzdHlsZSIsInNjcm9sbEJlaGF2aW9yIiwiZG9udEZvcmNlTGF5b3V0IiwiZ2V0Q2xpZW50UmVjdHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxwYXJzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gYSBwYXRoIHRoaXMgZnVuY3Rpb24gd2lsbCBmaW5kIHRoZSBwYXRobmFtZSwgcXVlcnkgYW5kIGhhc2ggYW5kIHJldHVyblxuICogdGhlbS4gVGhpcyBpcyB1c2VmdWwgdG8gcGFyc2UgZnVsbCBwYXRocyBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gcGFyc2UgZS5nLiAvZm9vL2Jhcj9pZD0xI2hhc2hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJylcbiAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpXG4gIGNvbnN0IGhhc1F1ZXJ5ID0gcXVlcnlJbmRleCA+IC0xICYmIChoYXNoSW5kZXggPCAwIHx8IHF1ZXJ5SW5kZXggPCBoYXNoSW5kZXgpXG5cbiAgaWYgKGhhc1F1ZXJ5IHx8IGhhc2hJbmRleCA+IC0xKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGhuYW1lOiBwYXRoLnN1YnN0cmluZygwLCBoYXNRdWVyeSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpLFxuICAgICAgcXVlcnk6IGhhc1F1ZXJ5XG4gICAgICAgID8gcGF0aC5zdWJzdHJpbmcocXVlcnlJbmRleCwgaGFzaEluZGV4ID4gLTEgPyBoYXNoSW5kZXggOiB1bmRlZmluZWQpXG4gICAgICAgIDogJycsXG4gICAgICBoYXNoOiBoYXNoSW5kZXggPiAtMSA/IHBhdGguc2xpY2UoaGFzaEluZGV4KSA6ICcnLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHBhdGhuYW1lOiBwYXRoLCBxdWVyeTogJycsIGhhc2g6ICcnIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVBhdGgiLCJwYXRoIiwiaGFzaEluZGV4IiwiaW5kZXhPZiIsInF1ZXJ5SW5kZXgiLCJoYXNRdWVyeSIsInBhdGhuYW1lIiwic3Vic3RyaW5nIiwicXVlcnkiLCJ1bmRlZmluZWQiLCJoYXNoIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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/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 searchParams.forEach((value, key)=>{\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n ;\n query[key].push(value);\n } else {\n query[key] = [\n query[key],\n value\n ];\n }\n });\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string' || typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach((param)=>{\n let [key, value] = param;\n if (Array.isArray(value)) {\n value.forEach((item)=>result.append(key, stringifyUrlQueryParam(item)));\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n searchParamsList.forEach((searchParams)=>{\n Array.from(searchParams.keys()).forEach((key)=>target.delete(key));\n searchParams.forEach((value, key)=>target.append(key, value));\n });\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRDZ0JBLE1BQU07ZUFBTkE7O0lBMUNBQyxzQkFBc0I7ZUFBdEJBOztJQTRCQUMsc0JBQXNCO2VBQXRCQTs7O0FBNUJULFNBQVNELHVCQUNkRSxZQUE2QjtJQUU3QixNQUFNQyxRQUF3QixDQUFDO0lBQy9CRCxhQUFhRSxPQUFPLENBQUMsQ0FBQ0MsT0FBT0M7UUFDM0IsSUFBSSxPQUFPSCxLQUFLLENBQUNHLElBQUksS0FBSyxhQUFhO1lBQ3JDSCxLQUFLLENBQUNHLElBQUksR0FBR0Q7UUFDZixPQUFPLElBQUlFLE1BQU1DLE9BQU8sQ0FBQ0wsS0FBSyxDQUFDRyxJQUFJLEdBQUc7O1lBQ2xDSCxLQUFLLENBQUNHLElBQUksQ0FBY0csSUFBSSxDQUFDSjtRQUNqQyxPQUFPO1lBQ0xGLEtBQUssQ0FBQ0csSUFBSSxHQUFHO2dCQUFDSCxLQUFLLENBQUNHLElBQUk7Z0JBQVlEO2FBQU07UUFDNUM7SUFDRjtJQUNBLE9BQU9GO0FBQ1Q7QUFFQSxTQUFTTyx1QkFBdUJDLEtBQWM7SUFDNUMsSUFDRSxPQUFPQSxVQUFVLFlBQ2hCLE9BQU9BLFVBQVUsWUFBWSxDQUFDQyxNQUFNRCxVQUNyQyxPQUFPQSxVQUFVLFdBQ2pCO1FBQ0EsT0FBT0UsT0FBT0Y7SUFDaEIsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU1YsdUJBQ2RhLFFBQXdCO0lBRXhCLE1BQU1DLFNBQVMsSUFBSUM7SUFDbkJDLE9BQU9DLE9BQU8sQ0FBQ0osVUFBVVYsT0FBTyxDQUFDO1lBQUMsQ0FBQ0UsS0FBS0QsTUFBTTtRQUM1QyxJQUFJRSxNQUFNQyxPQUFPLENBQUNILFFBQVE7WUFDeEJBLE1BQU1ELE9BQU8sQ0FBQyxDQUFDZSxPQUFTSixPQUFPSyxNQUFNLENBQUNkLEtBQUtJLHVCQUF1QlM7UUFDcEUsT0FBTztZQUNMSixPQUFPTSxHQUFHLENBQUNmLEtBQUtJLHVCQUF1Qkw7UUFDekM7SUFDRjtJQUNBLE9BQU9VO0FBQ1Q7QUFFTyxTQUFTaEIsT0FDZHVCLE1BQXVCO0lBQ3ZCLGlDQUFHQyxtQkFBSDtRQUFHQSxnQkFBQUEsQ0FBSCwyQkFBc0M7O0lBRXRDQSxpQkFBaUJuQixPQUFPLENBQUMsQ0FBQ0Y7UUFDeEJLLE1BQU1pQixJQUFJLENBQUN0QixhQUFhdUIsSUFBSSxJQUFJckIsT0FBTyxDQUFDLENBQUNFLE1BQVFnQixPQUFPSSxNQUFNLENBQUNwQjtRQUMvREosYUFBYUUsT0FBTyxDQUFDLENBQUNDLE9BQU9DLE1BQVFnQixPQUFPRixNQUFNLENBQUNkLEtBQUtEO0lBQzFEO0lBQ0EsT0FBT2lCO0FBQ1QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxxdWVyeXN0cmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KFxuICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtc1xuKTogUGFyc2VkVXJsUXVlcnkge1xuICBjb25zdCBxdWVyeTogUGFyc2VkVXJsUXVlcnkgPSB7fVxuICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIGlmICh0eXBlb2YgcXVlcnlba2V5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShxdWVyeVtrZXldKSkge1xuICAgICAgOyhxdWVyeVtrZXldIGFzIHN0cmluZ1tdKS5wdXNoKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVtrZXldID0gW3F1ZXJ5W2tleV0gYXMgc3RyaW5nLCB2YWx1ZV1cbiAgICB9XG4gIH0pXG4gIHJldHVybiBxdWVyeVxufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHBhcmFtOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBwYXJhbSA9PT0gJ3N0cmluZycgfHxcbiAgICAodHlwZW9mIHBhcmFtID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocGFyYW0pKSB8fFxuICAgIHR5cGVvZiBwYXJhbSA9PT0gJ2Jvb2xlYW4nXG4gICkge1xuICAgIHJldHVybiBTdHJpbmcocGFyYW0pXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICcnXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMoXG4gIHVybFF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIE9iamVjdC5lbnRyaWVzKHVybFF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0pID0+IHJlc3VsdC5hcHBlbmQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKGl0ZW0pKSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0LnNldChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0odmFsdWUpKVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKFxuICB0YXJnZXQ6IFVSTFNlYXJjaFBhcmFtcyxcbiAgLi4uc2VhcmNoUGFyYW1zTGlzdDogVVJMU2VhcmNoUGFyYW1zW11cbik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIHNlYXJjaFBhcmFtc0xpc3QuZm9yRWFjaCgoc2VhcmNoUGFyYW1zKSA9PiB7XG4gICAgQXJyYXkuZnJvbShzZWFyY2hQYXJhbXMua2V5cygpKS5mb3JFYWNoKChrZXkpID0+IHRhcmdldC5kZWxldGUoa2V5KSlcbiAgICBzZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gdGFyZ2V0LmFwcGVuZChrZXksIHZhbHVlKSlcbiAgfSlcbiAgcmV0dXJuIHRhcmdldFxufVxuIl0sIm5hbWVzIjpbImFzc2lnbiIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJmb3JFYWNoIiwidmFsdWUiLCJrZXkiLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwic3RyaW5naWZ5VXJsUXVlcnlQYXJhbSIsInBhcmFtIiwiaXNOYU4iLCJTdHJpbmciLCJ1cmxRdWVyeSIsInJlc3VsdCIsIlVSTFNlYXJjaFBhcmFtcyIsIk9iamVjdCIsImVudHJpZXMiLCJpdGVtIiwiYXBwZW5kIiwic2V0IiwidGFyZ2V0Iiwic2VhcmNoUGFyYW1zTGlzdCIsImZyb20iLCJrZXlzIiwiZGVsZXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xccmVtb3ZlLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgc2xhc2ggZm9yIGEgZ2l2ZW4gcm91dGUgb3IgcGFnZSBwYXRoLiBQcmVzZXJ2ZXMgdGhlXG4gKiByb290IHBhZ2UuIEV4YW1wbGVzOlxuICogICAtIGAvZm9vL2Jhci9gIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2Zvby9iYXJgIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2AgLT4gYC9gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHJvdXRlLnJlcGxhY2UoL1xcLyQvLCAnJykgfHwgJy8nXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInJvdXRlIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcc2VnbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzR3JvdXBTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICAvLyBVc2UgYXJyYXlbMF0gZm9yIHBlcmZvcm1hbnQgcHVycG9zZVxuICByZXR1cm4gc2VnbWVudFswXSA9PT0gJygnICYmIHNlZ21lbnQuZW5kc1dpdGgoJyknKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQYXJhbGxlbFJvdXRlU2VnbWVudChzZWdtZW50OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHNlZ21lbnQuc3RhcnRzV2l0aCgnQCcpICYmIHNlZ21lbnQgIT09ICdAY2hpbGRyZW4nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KFxuICBzZWdtZW50OiBTZWdtZW50LFxuICBzZWFyY2hQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPlxuKSB7XG4gIGNvbnN0IGlzUGFnZVNlZ21lbnQgPSBzZWdtZW50LmluY2x1ZGVzKFBBR0VfU0VHTUVOVF9LRVkpXG5cbiAgaWYgKGlzUGFnZVNlZ21lbnQpIHtcbiAgICBjb25zdCBzdHJpbmdpZmllZFF1ZXJ5ID0gSlNPTi5zdHJpbmdpZnkoc2VhcmNoUGFyYW1zKVxuICAgIHJldHVybiBzdHJpbmdpZmllZFF1ZXJ5ICE9PSAne30nXG4gICAgICA/IFBBR0VfU0VHTUVOVF9LRVkgKyAnPycgKyBzdHJpbmdpZmllZFF1ZXJ5XG4gICAgICA6IFBBR0VfU0VHTUVOVF9LRVlcbiAgfVxuXG4gIHJldHVybiBzZWdtZW50XG59XG5cbmV4cG9ydCBjb25zdCBQQUdFX1NFR01FTlRfS0VZID0gJ19fUEFHRV9fJ1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VHTUVOVF9LRVkgPSAnX19ERUZBVUxUX18nXG4iXSwibmFtZXMiOlsiREVGQVVMVF9TRUdNRU5UX0tFWSIsIlBBR0VfU0VHTUVOVF9LRVkiLCJhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50IiwiaXNHcm91cFNlZ21lbnQiLCJpc1BhcmFsbGVsUm91dGVTZWdtZW50Iiwic2VnbWVudCIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsInNlYXJjaFBhcmFtcyIsImlzUGFnZVNlZ21lbnQiLCJpbmNsdWRlcyIsInN0cmluZ2lmaWVkUXVlcnkiLCJKU09OIiwic3RyaW5naWZ5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/segment.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 new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCOzs7SUFaakJDLGNBQWM7ZUFBZEE7O0lBQ0FDLGlCQUFpQjtlQUFqQkE7O0lBVEFDLEVBQUU7ZUFBRkE7O0lBQ0FDLEVBQUU7ZUFBRkE7O0lBbFhBQyxVQUFVO2VBQVZBOztJQXNRR0MsUUFBUTtlQUFSQTs7SUErQkFDLGNBQWM7ZUFBZEE7O0lBWEFDLGlCQUFpQjtlQUFqQkE7O0lBS0FDLE1BQU07ZUFBTkE7O0lBUEhDLGFBQWE7ZUFBYkE7O0lBbUJHQyxTQUFTO2VBQVRBOztJQWtCTUMsbUJBQW1CO2VBQW5CQTs7SUFkTkMsd0JBQXdCO2VBQXhCQTs7SUErR0FDLGNBQWM7ZUFBZEE7OztBQTlaVCxNQUFNVCxhQUFhO0lBQUM7SUFBTztJQUFPO0lBQU87SUFBTztJQUFPO0NBQU87QUFzUTlELFNBQVNDLFNBQ2RTLEVBQUs7SUFFTCxJQUFJQyxPQUFPO0lBQ1gsSUFBSUM7SUFFSixPQUFRO3lDQUFJQyxPQUFBQSxJQUFBQSxNQUFBQSxPQUFBQSxPQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxPQUFBQTtZQUFBQSxJQUFBQSxDQUFBQSxLQUFBQSxHQUFBQSxTQUFBQSxDQUFBQSxLQUFBQTs7UUFDVixJQUFJLENBQUNGLE1BQU07WUFDVEEsT0FBTztZQUNQQyxTQUFTRixNQUFNRztRQUNqQjtRQUNBLE9BQU9EO0lBQ1Q7QUFDRjtBQUVBLDBEQUEwRDtBQUMxRCxnRUFBZ0U7QUFDaEUsTUFBTUUscUJBQXFCO0FBQ3BCLE1BQU1ULGdCQUFnQixDQUFDVSxNQUFnQkQsbUJBQW1CRSxJQUFJLENBQUNEO0FBRS9ELFNBQVNaO0lBQ2QsTUFBTSxFQUFFYyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFLEdBQUdDLE9BQU9DLFFBQVE7SUFD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WUFBWUMsSUFBWSxFQUFFWixPQUFlLENBQUU7UUFDekMsS0FBSztRQUNMLElBQUksQ0FBQ0EsT0FBTyxHQUFJLDBDQUF1Q1ksT0FBSyxNQUFHWjtJQUNqRTtBQUNGO0FBRU8sTUFBTW5ELGdDQUFnQ29EO0lBRTNDVSxhQUFjO1FBQ1osS0FBSztRQUNMLElBQUksQ0FBQ0UsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDYixPQUFPLEdBQUk7SUFDbEI7QUFDRjtBQVdPLFNBQVNwQyxlQUFla0QsS0FBWTtJQUN6QyxPQUFPQyxLQUFLQyxTQUFTLENBQUM7UUFBRWhCLFNBQVNjLE1BQU1kLE9BQU87UUFBRWlCLE9BQU9ILE1BQU1HLEtBQUs7SUFBQztBQUNyRSIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXHV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSHRtbFByb3BzIH0gZnJvbSAnLi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFR5cGUsIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBFbnYgfSBmcm9tICdAbmV4dC9lbnYnXG5pbXBvcnQgdHlwZSB7IEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJ1xuaW1wb3J0IHR5cGUgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHR5cGUgeyBQcmV2aWV3RGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDT01QSUxFUl9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgZnMgZnJvbSAnZnMnXG5cbmV4cG9ydCB0eXBlIE5leHRDb21wb25lbnRUeXBlPFxuICBDb250ZXh0IGV4dGVuZHMgQmFzZUNvbnRleHQgPSBOZXh0UGFnZUNvbnRleHQsXG4gIEluaXRpYWxQcm9wcyA9IHt9LFxuICBQcm9wcyA9IHt9LFxuPiA9IENvbXBvbmVudFR5cGU8UHJvcHM+ICYge1xuICAvKipcbiAgICogVXNlZCBmb3IgaW5pdGlhbCBwYWdlIGxvYWQgZGF0YSBwb3B1bGF0aW9uLiBEYXRhIHJldHVybmVkIGZyb20gYGdldEluaXRpYWxQcm9wc2AgaXMgc2VyaWFsaXplZCB3aGVuIHNlcnZlciByZW5kZXJlZC5cbiAgICogTWFrZSBzdXJlIHRvIHJldHVybiBwbGFpbiBgT2JqZWN0YCB3aXRob3V0IHVzaW5nIGBEYXRlYCwgYE1hcGAsIGBTZXRgLlxuICAgKiBAcGFyYW0gY29udGV4dCBDb250ZXh0IG9mIGBwYWdlYFxuICAgKi9cbiAgZ2V0SW5pdGlhbFByb3BzPyhjb250ZXh0OiBDb250ZXh0KTogSW5pdGlhbFByb3BzIHwgUHJvbWlzZTxJbml0aWFsUHJvcHM+XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50VHlwZSA9IE5leHRDb21wb25lbnRUeXBlPFxuICBEb2N1bWVudENvbnRleHQsXG4gIERvY3VtZW50SW5pdGlhbFByb3BzLFxuICBEb2N1bWVudFByb3BzXG4+XG5cbmV4cG9ydCB0eXBlIEFwcFR5cGU8UCA9IHt9PiA9IE5leHRDb21wb25lbnRUeXBlPFxuICBBcHBDb250ZXh0VHlwZSxcbiAgUCxcbiAgQXBwUHJvcHNUeXBlPGFueSwgUD5cbj5cblxuZXhwb3J0IHR5cGUgQXBwVHJlZVR5cGUgPSBDb21wb25lbnRUeXBlPFxuICBBcHBJbml0aWFsUHJvcHMgJiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVxuPlxuXG4vKipcbiAqIFdlYiB2aXRhbHMgcHJvdmlkZWQgdG8gX2FwcC5yZXBvcnRXZWJWaXRhbHMgYnkgQ29yZSBXZWIgVml0YWxzIHBsdWdpbiBkZXZlbG9wZWQgYnkgR29vZ2xlIENocm9tZSB0ZWFtLlxuICogaHR0cHM6Ly9uZXh0anMub3JnL2Jsb2cvbmV4dC05LTQjaW50ZWdyYXRlZC13ZWItdml0YWxzLXJlcG9ydGluZ1xuICovXG5leHBvcnQgY29uc3QgV0VCX1ZJVEFMUyA9IFsnQ0xTJywgJ0ZDUCcsICdGSUQnLCAnSU5QJywgJ0xDUCcsICdUVEZCJ10gYXMgY29uc3RcbmV4cG9ydCB0eXBlIE5leHRXZWJWaXRhbHNNZXRyaWMgPSB7XG4gIGlkOiBzdHJpbmdcbiAgc3RhcnRUaW1lOiBudW1iZXJcbiAgdmFsdWU6IG51bWJlclxuICBhdHRyaWJ1dGlvbj86IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9XG59ICYgKFxuICB8IHtcbiAgICAgIGxhYmVsOiAnd2ViLXZpdGFsJ1xuICAgICAgbmFtZTogKHR5cGVvZiBXRUJfVklUQUxTKVtudW1iZXJdXG4gICAgfVxuICB8IHtcbiAgICAgIGxhYmVsOiAnY3VzdG9tJ1xuICAgICAgbmFtZTpcbiAgICAgICAgfCAnTmV4dC5qcy1oeWRyYXRpb24nXG4gICAgICAgIHwgJ05leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlcidcbiAgICAgICAgfCAnTmV4dC5qcy1yZW5kZXInXG4gICAgfVxuKVxuXG5leHBvcnQgdHlwZSBFbmhhbmNlcjxDPiA9IChDb21wb25lbnQ6IEMpID0+IENcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50c0VuaGFuY2VyID1cbiAgfCB7XG4gICAgICBlbmhhbmNlQXBwPzogRW5oYW5jZXI8QXBwVHlwZT5cbiAgICAgIGVuaGFuY2VDb21wb25lbnQ/OiBFbmhhbmNlcjxOZXh0Q29tcG9uZW50VHlwZT5cbiAgICB9XG4gIHwgRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG5cbmV4cG9ydCB0eXBlIFJlbmRlclBhZ2VSZXN1bHQgPSB7XG4gIGh0bWw6IHN0cmluZ1xuICBoZWFkPzogQXJyYXk8SlNYLkVsZW1lbnQgfCBudWxsPlxufVxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlID0gKFxuICBvcHRpb25zPzogQ29tcG9uZW50c0VuaGFuY2VyXG4pID0+IERvY3VtZW50SW5pdGlhbFByb3BzIHwgUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cblxuZXhwb3J0IHR5cGUgQmFzZUNvbnRleHQgPSB7XG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIFtrOiBzdHJpbmddOiBhbnlcbn1cblxuZXhwb3J0IHR5cGUgTkVYVF9EQVRBID0ge1xuICBwcm9wczogUmVjb3JkPHN0cmluZywgYW55PlxuICBwYWdlOiBzdHJpbmdcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIGJ1aWxkSWQ6IHN0cmluZ1xuICBhc3NldFByZWZpeD86IHN0cmluZ1xuICBydW50aW1lQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICBuZXh0RXhwb3J0PzogYm9vbGVhblxuICBhdXRvRXhwb3J0PzogYm9vbGVhblxuICBpc0ZhbGxiYWNrPzogYm9vbGVhblxuICBpc0V4cGVyaW1lbnRhbENvbXBpbGU/OiBib29sZWFuXG4gIGR5bmFtaWNJZHM/OiAoc3RyaW5nIHwgbnVtYmVyKVtdXG4gIGVycj86IEVycm9yICYge1xuICAgIHN0YXR1c0NvZGU/OiBudW1iZXJcbiAgICBzb3VyY2U/OiB0eXBlb2YgQ09NUElMRVJfTkFNRVMuc2VydmVyIHwgdHlwZW9mIENPTVBJTEVSX05BTUVTLmVkZ2VTZXJ2ZXJcbiAgfVxuICBnc3A/OiBib29sZWFuXG4gIGdzc3A/OiBib29sZWFuXG4gIGN1c3RvbVNlcnZlcj86IGJvb2xlYW5cbiAgZ2lwPzogYm9vbGVhblxuICBhcHBHaXA/OiBib29sZWFuXG4gIGxvY2FsZT86IHN0cmluZ1xuICBsb2NhbGVzPzogc3RyaW5nW11cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICBkb21haW5Mb2NhbGVzPzogRG9tYWluTG9jYWxlW11cbiAgc2NyaXB0TG9hZGVyPzogYW55W11cbiAgaXNQcmV2aWV3PzogYm9vbGVhblxuICBub3RGb3VuZFNyY1BhZ2U/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBgTmV4dGAgY29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYWdlQ29udGV4dCB7XG4gIC8qKlxuICAgKiBFcnJvciBvYmplY3QgaWYgZW5jb3VudGVyZWQgZHVyaW5nIHJlbmRlcmluZ1xuICAgKi9cbiAgZXJyPzogKEVycm9yICYgeyBzdGF0dXNDb2RlPzogbnVtYmVyIH0pIHwgbnVsbFxuICAvKipcbiAgICogYEhUVFBgIHJlcXVlc3Qgb2JqZWN0LlxuICAgKi9cbiAgcmVxPzogSW5jb21pbmdNZXNzYWdlXG4gIC8qKlxuICAgKiBgSFRUUGAgcmVzcG9uc2Ugb2JqZWN0LlxuICAgKi9cbiAgcmVzPzogU2VydmVyUmVzcG9uc2VcbiAgLyoqXG4gICAqIFBhdGggc2VjdGlvbiBvZiBgVVJMYC5cbiAgICovXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFF1ZXJ5IHN0cmluZyBzZWN0aW9uIG9mIGBVUkxgIHBhcnNlZCBhcyBhbiBvYmplY3QuXG4gICAqL1xuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgLyoqXG4gICAqIGBTdHJpbmdgIG9mIHRoZSBhY3R1YWwgcGF0aCBpbmNsdWRpbmcgcXVlcnkuXG4gICAqL1xuICBhc1BhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGxvY2FsZVxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBBbGwgY29uZmlndXJlZCBsb2NhbGVzXG4gICAqL1xuICBsb2NhbGVzPzogc3RyaW5nW11cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmVkIGRlZmF1bHQgbG9jYWxlXG4gICAqL1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBgQ29tcG9uZW50YCB0aGUgdHJlZSBvZiB0aGUgQXBwIHRvIHVzZSBpZiBuZWVkaW5nIHRvIHJlbmRlciBzZXBhcmF0ZWx5XG4gICAqL1xuICBBcHBUcmVlOiBBcHBUcmVlVHlwZVxufVxuXG5leHBvcnQgdHlwZSBBcHBDb250ZXh0VHlwZTxSb3V0ZXIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcj4gPSB7XG4gIENvbXBvbmVudDogTmV4dENvbXBvbmVudFR5cGU8TmV4dFBhZ2VDb250ZXh0PlxuICBBcHBUcmVlOiBBcHBUcmVlVHlwZVxuICBjdHg6IE5leHRQYWdlQ29udGV4dFxuICByb3V0ZXI6IFJvdXRlclxufVxuXG5leHBvcnQgdHlwZSBBcHBJbml0aWFsUHJvcHM8UGFnZVByb3BzID0gYW55PiA9IHtcbiAgcGFnZVByb3BzOiBQYWdlUHJvcHNcbn1cblxuZXhwb3J0IHR5cGUgQXBwUHJvcHNUeXBlPFxuICBSb3V0ZXIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcixcbiAgUGFnZVByb3BzID0ge30sXG4+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:///(ssr)/./node_modules/next/dist/shared/lib/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NENBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFdBQVcsQ0FBQ0MsS0FBZTtBQUMvQixJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxXQUFXLElBQUlDO0lBQ3JCTixXQUFXLENBQUNPO1FBQ1YsSUFBSSxDQUFDRixTQUFTRyxHQUFHLENBQUNELE1BQU07WUFDdEJFLFFBQVFDLElBQUksQ0FBQ0g7UUFDZjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXHV0aWxzXFx3YXJuLW9uY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHdhcm5PbmNlID0gKF86IHN0cmluZykgPT4ge31cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IHdhcm5pbmdzID0gbmV3IFNldDxzdHJpbmc+KClcbiAgd2Fybk9uY2UgPSAobXNnOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIXdhcm5pbmdzLmhhcyhtc2cpKSB7XG4gICAgICBjb25zb2xlLndhcm4obXNnKVxuICAgIH1cbiAgICB3YXJuaW5ncy5hZGQobXNnKVxuICB9XG59XG5cbmV4cG9ydCB7IHdhcm5PbmNlIH1cbiJdLCJuYW1lcyI6WyJ3YXJuT25jZSIsIl8iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ3YXJuaW5ncyIsIlNldCIsIm1zZyIsImhhcyIsImNvbnNvbGUiLCJ3YXJuIiwiYWRkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/api/constants.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/next/dist/api/constants.js ***!
|
||
\*************************************************/
|
||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/constants */ \"(rsc)/./node_modules/next/dist/shared/lib/constants.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXdDOztBQUV4QyIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcYXBpXFxjb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vc2hhcmVkL2xpYi9jb25zdGFudHMnO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/constants.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL291dHB1dC9sb2cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBV0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG9CQUFvQixtQkFBTyxDQUFDLDhFQUFzQjtBQUNsRCxrQkFBa0IsbUJBQU8sQ0FBQywwRkFBNEI7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGJ1aWxkXFxvdXRwdXRcXGxvZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGJvb3RzdHJhcDogbnVsbCxcbiAgICBlcnJvcjogbnVsbCxcbiAgICBldmVudDogbnVsbCxcbiAgICBpbmZvOiBudWxsLFxuICAgIHByZWZpeGVzOiBudWxsLFxuICAgIHJlYWR5OiBudWxsLFxuICAgIHRyYWNlOiBudWxsLFxuICAgIHdhaXQ6IG51bGwsXG4gICAgd2FybjogbnVsbCxcbiAgICB3YXJuT25jZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBib290c3RyYXA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYm9vdHN0cmFwO1xuICAgIH0sXG4gICAgZXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSxcbiAgICBldmVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBldmVudDtcbiAgICB9LFxuICAgIGluZm86IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW5mbztcbiAgICB9LFxuICAgIHByZWZpeGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeGVzO1xuICAgIH0sXG4gICAgcmVhZHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVhZHk7XG4gICAgfSxcbiAgICB0cmFjZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0cmFjZTtcbiAgICB9LFxuICAgIHdhaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdDtcbiAgICB9LFxuICAgIHdhcm46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FybjtcbiAgICB9LFxuICAgIHdhcm5PbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdhcm5PbmNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3BpY29jb2xvcnMgPSByZXF1aXJlKFwiLi4vLi4vbGliL3BpY29jb2xvcnNcIik7XG5jb25zdCBfbHJ1Y2FjaGUgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL2xpYi9scnUtY2FjaGVcIik7XG5jb25zdCBwcmVmaXhlcyA9IHtcbiAgICB3YWl0OiAoMCwgX3BpY29jb2xvcnMud2hpdGUpKCgwLCBfcGljb2NvbG9ycy5ib2xkKSgn4peLJykpLFxuICAgIGVycm9yOiAoMCwgX3BpY29jb2xvcnMucmVkKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ+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 _serveredge = __webpack_require__(/*! react-server-dom-webpack/server.edge */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server-edge.js\");\nconst createProxy = _serveredge.createClientModuleProxy;\n\n//# sourceMappingURL=module-proxy.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5LmpzIiwibWFwcGluZ3MiOiJBQUFBLHVEQUFvRTtBQUNwRSw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixvQkFBb0IsbUJBQU8sQ0FBQywrSkFBc0M7QUFDbEU7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGJ1aWxkXFx3ZWJwYWNrXFxsb2FkZXJzXFxuZXh0LWZsaWdodC1sb2FkZXJcXG1vZHVsZS1wcm94eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjcmVhdGVQcm94eVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUHJveHk7XG4gICAgfVxufSk7XG5jb25zdCBfc2VydmVyZWRnZSA9IHJlcXVpcmUoXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyLmVkZ2VcIik7XG5jb25zdCBjcmVhdGVQcm94eSA9IF9zZXJ2ZXJlZGdlLmNyZWF0ZUNsaWVudE1vZHVsZVByb3h5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUtcHJveHkuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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/app-dir/link.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/client/app-dir/link.js ***!
|
||
\*******************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\client\\app-dir\\link.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(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_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\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_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_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_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFnQkFDLGNBQWM7ZUFBZEE7O0lBV0FDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLHVCQUF1QjtlQUF2QkE7O0lBZ0JBQyx3QkFBd0I7ZUFBeEJBOztJQXZCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFnQkFDLDZCQUE2QjtlQUE3QkE7O0lBdEJBQyw2QkFBNkI7ZUFBN0JBOztJQW9CQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFmQUMsVUFBVTtlQUFWQTs7O0FBQU4sTUFBTUEsYUFBYTtBQUNuQixNQUFNWixnQkFBZ0I7QUFJdEIsTUFBTVEsZ0NBQWdDO0FBQ3RDLE1BQU1ILDhCQUE4QjtBQUtwQyxNQUFNQyxzQ0FDWDtBQUNLLE1BQU1ILDBCQUEwQjtBQUNoQyxNQUFNTyxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNVixpQkFBaUI7SUFDNUJXO0lBQ0FKO0lBQ0FIO0lBQ0FGO0lBQ0FHO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1MLDJCQUEyQjtBQUNqQyxNQUFNRSwyQkFBMkIiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcYXBwLXJvdXRlci1oZWFkZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSU0NfSEVBREVSID0gJ1JTQycgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBBQ1RJT05fSEVBREVSID0gJ05leHQtQWN0aW9uJyBhcyBjb25zdFxuLy8gVE9ETzogSW5zdGVhZCBvZiBzZW5kaW5nIHRoZSBmdWxsIHJvdXRlciBzdGF0ZSwgd2Ugb25seSBuZWVkIHRvIHNlbmQgdGhlXG4vLyBzZWdtZW50IHBhdGguIFNhdmVzIGJ5dGVzLiBUaGVuIHdlIGNvdWxkIGFsc28gdXNlIHRoaXMgZmllbGQgZm9yIHNlZ21lbnRcbi8vIHByZWZldGNoZXMsIHdoaWNoIGFsc28gbmVlZCB0byBzcGVjaWZ5IGEgcGFydGljdWxhciBzZWdtZW50LlxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSID0gJ05leHQtUm91dGVyLVN0YXRlLVRyZWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSID0gJ05leHQtUm91dGVyLVByZWZldGNoJyBhcyBjb25zdFxuLy8gVGhpcyBjb250YWlucyB0aGUgcGF0aCB0byB0aGUgc2VnbWVudCBiZWluZyBwcmVmZXRjaGVkLlxuLy8gVE9ETzogSWYgd2UgY2hhbmdlIE5leHQtUm91dGVyLVN0YXRlLVRyZWUgdG8gYmUgYSBzZWdtZW50IHBhdGgsIHdlIGNhbiB1c2Vcbi8vIHRoYXQgaW5zdGVhZC4gVGhlbiBOZXh0LVJvdXRlci1QcmVmZXRjaCBhbmQgTmV4dC1Sb3V0ZXItU2VnbWVudC1QcmVmZXRjaCBjYW5cbi8vIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIGVudW0uXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIgPVxuICAnTmV4dC1Sb3V0ZXItU2VnbWVudC1QcmVmZXRjaCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX0hNUl9SRUZSRVNIX0hFQURFUiA9ICdOZXh0LUhNUi1SZWZyZXNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ05leHQtVXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIgPSAneC1uZXh0anMtcHJlcmVuZGVyJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiIsIk5FWFRfSE1SX1JFRlJFU0hfSEVBREVSIiwiTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSIiwiTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFMRV9USU1FX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJORVhUX1VSTCIsIlJTQ19DT05URU5UX1RZUEVfSEVBREVSIiwiUlNDX0hFQURFUiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/app-router-headers.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__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\client\\components\\client-page.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(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__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\client\\components\\client-segment.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/error-boundary.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/error-boundary.js ***!
|
||
\********************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\client\\components\\error-boundary.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/forbidden-error.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/forbidden-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 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-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2ZvcmJpZGRlbi1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQUVBOzs7ZUFBd0JBOzs7OzJDQUZnQjtBQUV6QixTQUFTQTtJQUN0QixxQkFDRSxxQkFBQ0MsZUFBQUEsdUJBQXVCO1FBQ3RCQyxRQUFRO1FBQ1JDLFNBQVE7O0FBR2QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcZm9yYmlkZGVuLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItZmFsbGJhY2snXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvcmJpZGRlbigpIHtcbiAgcmV0dXJuIChcbiAgICA8SFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2tcbiAgICAgIHN0YXR1cz17NDAzfVxuICAgICAgbWVzc2FnZT1cIlRoaXMgcGFnZSBjb3VsZCBub3QgYmUgYWNjZXNzZWQuXCJcbiAgICAvPlxuICApXG59XG4iXSwibmFtZXMiOlsiRm9yYmlkZGVuIiwiSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2siLCJzdGF0dXMiLCJtZXNzYWdlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/forbidden-error.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXGhvb2tzLXNlcnZlci1jb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERZTkFNSUNfRVJST1JfQ09ERSA9ICdEWU5BTUlDX1NFUlZFUl9VU0FHRSdcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZXJ2ZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGlnZXN0OiB0eXBlb2YgRFlOQU1JQ19FUlJPUl9DT0RFID0gRFlOQU1JQ19FUlJPUl9DT0RFXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgRHluYW1pYyBzZXJ2ZXIgdXNhZ2U6ICR7ZGVzY3JpcHRpb259YClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbWljU2VydmVyRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIER5bmFtaWNTZXJ2ZXJFcnJvciB7XG4gIGlmIChcbiAgICB0eXBlb2YgZXJyICE9PSAnb2JqZWN0JyB8fFxuICAgIGVyciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyKSB8fFxuICAgIHR5cGVvZiBlcnIuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnIuZGlnZXN0ID09PSBEWU5BTUlDX0VSUk9SX0NPREVcbn1cbiJdLCJuYW1lcyI6WyJEeW5hbWljU2VydmVyRXJyb3IiLCJpc0R5bmFtaWNTZXJ2ZXJFcnJvciIsIkRZTkFNSUNfRVJST1JfQ09ERSIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJkZXNjcmlwdGlvbiIsImRpZ2VzdCIsImVyciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\client\\components\\http-access-fallback\\error-boundary.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(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 _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(rsc)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\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 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};\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: 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: styles.h1,\n children: status\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.desc,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n style: 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkRBcUNnQkE7OztlQUFBQTs7Ozs7NEVBckNFO0FBRWxCLE1BQU1DLFNBQThDO0lBQ2xEQyxPQUFPO1FBQ0wsMEZBQTBGO1FBQzFGQyxZQUNFO1FBQ0ZDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDbEI7SUFFQUMsTUFBTTtRQUNKSixTQUFTO0lBQ1g7SUFFQUssSUFBSTtRQUNGTCxTQUFTO1FBQ1RNLFFBQVE7UUFDUkMsU0FBUztRQUNUQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsZUFBZTtRQUNmQyxZQUFZO0lBQ2Q7SUFFQUMsSUFBSTtRQUNGSixVQUFVO1FBQ1ZDLFlBQVk7UUFDWkUsWUFBWTtRQUNaTCxRQUFRO0lBQ1Y7QUFDRjtBQUVPLFNBQVNaLHdCQUF3QixLQU12QztJQU51QyxNQUN0Q21CLE1BQU0sRUFDTkMsT0FBTyxFQUlSLEdBTnVDO0lBT3RDLE9BQ0UsV0FERixHQUNFOzswQkFFRSxxQkFBQ0MsU0FBQUE7MEJBQVVGLFNBQU8sT0FBSUM7OzBCQUV0QixxQkFBQ0UsT0FBQUE7Z0JBQUlDLE9BQU90QixPQUFPQyxLQUFLOzBCQUN0QixvQ0FBQ29CLE9BQUFBOztzQ0FDQyxxQkFBQ0MsU0FBQUE7NEJBQ0NDLHlCQUF5QjtnQ0FDdkI7Ozs7Ozs7Ozs7OztjQVlBLEdBQ0FDLFFBQVM7NEJBQ1g7O3NDQUVGLHFCQUFDZCxNQUFBQTs0QkFBR2UsV0FBVTs0QkFBZ0JILE9BQU90QixPQUFPVSxFQUFFO3NDQUMzQ1E7O3NDQUVILHFCQUFDRyxPQUFBQTs0QkFBSUMsT0FBT3RCLE9BQU9TLElBQUk7c0NBQ3JCLG1DQUFDUSxNQUFBQTtnQ0FBR0ssT0FBT3RCLE9BQU9pQixFQUFFOzBDQUFHRTs7Ozs7Ozs7QUFNbkMiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcaHR0cC1hY2Nlc3MtZmFsbGJhY2tcXGVycm9yLWZhbGxiYWNrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmNvbnN0IHN0eWxlczogUmVjb3JkPHN0cmluZywgUmVhY3QuQ1NTUHJvcGVydGllcz4gPSB7XG4gIGVycm9yOiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2Jsb2IvbWFpbi9tb2Rlcm4tbm9ybWFsaXplLmNzcyNMMzgtTDUyXG4gICAgZm9udEZhbWlseTpcbiAgICAgICdzeXN0ZW0tdWksXCJTZWdvZSBVSVwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiJyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuXG4gIGRlc2M6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgfSxcblxuICBoMToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIG1hcmdpbjogJzAgMjBweCAwIDAnLFxuICAgIHBhZGRpbmc6ICcwIDIzcHggMCAwJyxcbiAgICBmb250U2l6ZTogMjQsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgfSxcblxuICBoMjoge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgbGluZUhlaWdodDogJzQ5cHgnLFxuICAgIG1hcmdpbjogMCxcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrKHtcbiAgc3RhdHVzLFxuICBtZXNzYWdlLFxufToge1xuICBzdGF0dXM6IG51bWJlclxuICBtZXNzYWdlOiBzdHJpbmdcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgey8qIDxoZWFkPiAqL31cbiAgICAgIDx0aXRsZT57YCR7c3RhdHVzfTogJHttZXNzYWdlfWB9PC90aXRsZT5cbiAgICAgIHsvKiA8L2hlYWQ+ICovfVxuICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmVycm9yfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIC8qIE1pbmlmaWVkIENTUyBmcm9tXG4gICAgICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMDsgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2NvbG9yOiMwMDA7YmFja2dyb3VuZDojZmZmO21hcmdpbjowfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMyl9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm5leHQtZXJyb3ItaDFcIiBzdHlsZT17c3R5bGVzLmgxfT5cbiAgICAgICAgICAgIHtzdGF0dXN9XG4gICAgICAgICAgPC9oMT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+e21lc3NhZ2V9PC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrIiwic3R5bGVzIiwiZXJyb3IiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJkZXNjIiwiaDEiLCJtYXJnaW4iLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwidmVydGljYWxBbGlnbiIsImxpbmVIZWlnaHQiLCJoMiIsInN0YXR1cyIsIm1lc3NhZ2UiLCJ0aXRsZSIsImRpdiIsInN0eWxlIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJjbGFzc05hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcaHR0cC1hY2Nlc3MtZmFsbGJhY2tcXGh0dHAtYWNjZXNzLWZhbGxiYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBIVFRQQWNjZXNzRXJyb3JTdGF0dXMgPSB7XG4gIE5PVF9GT1VORDogNDA0LFxuICBGT1JCSURERU46IDQwMyxcbiAgVU5BVVRIT1JJWkVEOiA0MDEsXG59XG5cbmNvbnN0IEFMTE9XRURfQ09ERVMgPSBuZXcgU2V0KE9iamVjdC52YWx1ZXMoSFRUUEFjY2Vzc0Vycm9yU3RhdHVzKSlcblxuZXhwb3J0IGNvbnN0IEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSA9ICdORVhUX0hUVFBfRVJST1JfRkFMTEJBQ0snXG5cbmV4cG9ydCB0eXBlIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yID0gRXJyb3IgJiB7XG4gIGRpZ2VzdDogYCR7dHlwZW9mIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07JHtzdHJpbmd9YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnlcbiAqIHRoZSBIVFRQIG5hdmlnYXRpb24gQVBJcyBgbm90Rm91bmQoKWAsIGBmb3JiaWRkZW4oKWAgb3IgYHVuYXV0aG9yaXplZCgpYC5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgdGhlIGVycm9yIHRoYXQgbWF5IHJlZmVyZW5jZSBhIEhUVFAgYWNjZXNzIGVycm9yXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBlcnJvciBpcyBhIEhUVFAgYWNjZXNzIGVycm9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBbcHJlZml4LCBodHRwU3RhdHVzXSA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG5cbiAgcmV0dXJuIChcbiAgICBwcmVmaXggPT09IEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSAmJlxuICAgIEFMTE9XRURfQ09ERVMuaGFzKE51bWJlcihodHRwU3RhdHVzKSlcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzKFxuICBlcnJvcjogSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3Jcbik6IG51bWJlciB7XG4gIGNvbnN0IGh0dHBTdGF0dXMgPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVsxXVxuICByZXR1cm4gTnVtYmVyKGh0dHBTdGF0dXMpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzKFxuICBzdGF0dXM6IG51bWJlclxuKTogJ25vdC1mb3VuZCcgfCAnZm9yYmlkZGVuJyB8ICd1bmF1dGhvcml6ZWQnIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICBjYXNlIDQwMTpcbiAgICAgIHJldHVybiAndW5hdXRob3JpemVkJ1xuICAgIGNhc2UgNDAzOlxuICAgICAgcmV0dXJuICdmb3JiaWRkZW4nXG4gICAgY2FzZSA0MDQ6XG4gICAgICByZXR1cm4gJ25vdC1mb3VuZCdcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJIVFRQQWNjZXNzRXJyb3JTdGF0dXMiLCJIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUiLCJnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzIiwiZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciIsIk5PVF9GT1VORCIsIkZPUkJJRERFTiIsIlVOQVVUSE9SSVpFRCIsIkFMTE9XRURfQ09ERVMiLCJTZXQiLCJPYmplY3QiLCJ2YWx1ZXMiLCJlcnJvciIsImRpZ2VzdCIsInByZWZpeCIsImh0dHBTdGF0dXMiLCJzcGxpdCIsImhhcyIsIk51bWJlciIsInN0YXR1cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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/layout-router.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/layout-router.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\client\\components\\layout-router.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/not-found-error.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/not-found-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 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-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQUVBOzs7ZUFBd0JBOzs7OzJDQUZnQjtBQUV6QixTQUFTQTtJQUN0QixxQkFDRSxxQkFBQ0MsZUFBQUEsdUJBQXVCO1FBQ3RCQyxRQUFRO1FBQ1JDLFNBQVE7O0FBR2QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcbm90LWZvdW5kLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItZmFsbGJhY2snXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE5vdEZvdW5kKCkge1xuICByZXR1cm4gKFxuICAgIDxIVFRQQWNjZXNzRXJyb3JGYWxsYmFja1xuICAgICAgc3RhdHVzPXs0MDR9XG4gICAgICBtZXNzYWdlPVwiVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZC5cIlxuICAgIC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJOb3RGb3VuZCIsIkhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrIiwic3RhdHVzIiwibWVzc2FnZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/not-found-error.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__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\client\\components\\render-from-template-context.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyJFOlxcc3JjXFxjbGllbnRcXGNvbXBvbmVudHNcXHN0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQgPSAnTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQnXG5cbmV4cG9ydCBjbGFzcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBjb2RlID0gTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RhdGljR2VuQmFpbG91dEVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgU3RhdGljR2VuQmFpbG91dEVycm9yIHtcbiAgaWYgKHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHwgZXJyb3IgPT09IG51bGwgfHwgISgnY29kZScgaW4gZXJyb3IpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gZXJyb3IuY29kZSA9PT0gTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVRcbn1cbiJdLCJuYW1lcyI6WyJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJpc1N0YXRpY0dlbkJhaWxvdXRFcnJvciIsIk5FWFRfU1RBVElDX0dFTl9CQUlMT1VUIiwiRXJyb3IiLCJjb2RlIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/unauthorized-error.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/unauthorized-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 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-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQUVBOzs7ZUFBd0JBOzs7OzJDQUZnQjtBQUV6QixTQUFTQTtJQUN0QixxQkFDRSxxQkFBQ0MsZUFBQUEsdUJBQXVCO1FBQ3RCQyxRQUFRO1FBQ1JDLFNBQVE7O0FBR2QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXGNsaWVudFxcY29tcG9uZW50c1xcdW5hdXRob3JpemVkLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItZmFsbGJhY2snXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFVuYXV0aG9yaXplZCgpIHtcbiAgcmV0dXJuIChcbiAgICA8SFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2tcbiAgICAgIHN0YXR1cz17NDAxfVxuICAgICAgbWVzc2FnZT1cIllvdSdyZSBub3QgYXV0aG9yaXplZCB0byBhY2Nlc3MgdGhpcyBwYWdlLlwiXG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlVuYXV0aG9yaXplZCIsIkhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrIiwic3RhdHVzIiwibWVzc2FnZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/unauthorized-error.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixrQ0FBa0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qiw0RkFBNEY7QUFDekg7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELGtCQUFrQixhQUFhOztBQUVuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUMsbUVBQW1FLGdGQUFnRjtBQUNuSixnRUFBZ0UsU0FBUztBQUN6RSwyQ0FBMkMsU0FBUztBQUNwRDtBQUNBO0FBQ0EsaURBQWlELFdBQVc7QUFDNUQ7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLHlCQUF5QixPQUFPLEdBQUcscURBQXFEO0FBQ3hGLCtDQUErQyxjQUFjLEVBQUUsY0FBYyxHQUFHO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEJBQTRCO0FBQ2hELHFCQUFxQixnQkFBZ0I7QUFDckMsdUNBQXVDLHdCQUF3QjtBQUMvRDtBQUNBLHFCQUFxQixtQ0FBbUM7QUFDeEQsbUJBQW1CLGNBQWM7QUFDakMscUJBQXFCLG1DQUFtQztBQUN4RCx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsYUFBYTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixhQUFhO0FBQ2pDO0FBQ0E7QUFDQSw0RUFBNEU7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBFQUEwRTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGlEQUFpRDtBQUM5RTtBQUNBO0FBQ0Esb0RBQW9ELE9BQU8sR0FBRyw0QkFBNEIsV0FBVztBQUNyRztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sNEVBQTRFO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHdCQUF3QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0ZBQWtGO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtRUFBbUU7QUFDekY7QUFDQTtBQUNBLDhCQUE4QixpREFBaUQ7QUFDL0U7QUFDQTtBQUNBLG1FQUFtRTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscUJBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sQ0FNTCIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcY29tcGlsZWRcXEBlZGdlLXJ1bnRpbWVcXGNvb2tpZXNcXGluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbnZhciBfX2dldE93blByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19leHBvcnQgPSAodGFyZ2V0LCBhbGwpID0+IHtcbiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpXG4gICAgX19kZWZQcm9wKHRhcmdldCwgbmFtZSwgeyBnZXQ6IGFsbFtuYW1lXSwgZW51bWVyYWJsZTogdHJ1ZSB9KTtcbn07XG52YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4ge1xuICBpZiAoZnJvbSAmJiB0eXBlb2YgZnJvbSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgZnJvbSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKVxuICAgICAgaWYgKCFfX2hhc093blByb3AuY2FsbCh0bywga2V5KSAmJiBrZXkgIT09IGV4Y2VwdClcbiAgICAgICAgX19kZWZQcm9wKHRvLCBrZXksIHsgZ2V0OiAoKSA9PiBmcm9tW2tleV0sIGVudW1lcmFibGU6ICEoZGVzYyA9IF9fZ2V0T3duUHJvcERlc2MoZnJvbSwga2V5KSkgfHwgZGVzYy5lbnVtZXJhYmxlIH0pO1xuICB9XG4gIHJldHVybiB0bztcbn07XG52YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KSwgbW9kKTtcblxuLy8gc3JjL2luZGV4LnRzXG52YXIgc3JjX2V4cG9ydHMgPSB7fTtcbl9fZXhwb3J0KHNyY19leHBvcnRzLCB7XG4gIFJlcXVlc3RDb29raWVzOiAoKSA9PiBSZXF1ZXN0Q29va2llcyxcbiAgUmVzcG9uc2VDb29raWVzOiAoKSA9PiBSZXNwb25zZUNvb2tpZXMsXG4gIHBhcnNlQ29va2llOiAoKSA9PiBwYXJzZUNvb2tpZSxcbiAgcGFyc2VTZXRDb29raWU6ICgpID0+IHBhcnNlU2V0Q29va2llLFxuICBzdHJpbmdpZnlDb29raWU6ICgpID0+IHN0cmluZ2lmeUNvb2tpZVxufSk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhzcmNfZXhwb3J0cyk7XG5cbi8vIHNyYy9zZXJpYWxpemUudHNcbmZ1bmN0aW9uIHN0cmluZ2lmeUNvb2tpZShjKSB7XG4gIHZhciBfYTtcbiAgY29uc3QgYXR0cnMgPSBbXG4gICAgXCJwYXRoXCIgaW4gYyAmJiBjLnBhdGggJiYgYFBhdGg9JHtjLnBhdGh9YCxcbiAgICBcImV4cGlyZXNcIiBpbiBjICYmIChjLmV4cGlyZXMgfHwgYy5leHBpcmVzID09PSAwKSAmJiBgRXhwaXJlcz0keyh0eXBlb2YgYy5leHBpcmVzID09PSBcIm51bWJlclwiID8gbmV3IERhdGUoYy5leHBpcmVzKSA6IGMuZXhwaXJlcykudG9VVENTdHJpbmcoKX1gLFxuICAgIFwibWF4QWdlXCIgaW4gYyAmJiB0eXBlb2YgYy5tYXhBZ2UgPT09IFwibnVtYmVyXCIgJiYgYE1heC1BZ2U9JHtjLm1heEFnZX1gLFxuICAgIFwiZG9tYWluXCIgaW4gYyAmJiBjLmRvbWFpbiAmJiBgRG9tYWluPSR7Yy5kb21haW59YCxcbiAgICBcInNlY3VyZVwiIGluIGMgJiYgYy5zZWN1cmUgJiYgXCJTZWN1cmVcIixcbiAgICBcImh0dHBPbmx5XCIgaW4gYyAmJiBjLmh0dHBPbmx5ICYmIFwiSHR0cE9ubHlcIixcbiAgICBcInNhbWVTaXRlXCIgaW4gYyAmJiBjLnNhbWVTaXRlICYmIGBTYW1lU2l0ZT0ke2Muc2FtZVNpdGV9YCxcbiAgICBcInBhcnRpdGlvbmVkXCIgaW4gYyAmJiBjLnBhcnRpdGlvbmVkICYmIFwiUGFydGl0aW9uZWRcIixcbiAgICBcInByaW9yaXR5XCIgaW4gYyAmJiBjLnByaW9yaXR5ICYmIGBQcmlvcml0eT0ke2MucHJpb3JpdHl9YFxuICBdLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3Qgc3RyaW5naWZpZWQgPSBgJHtjLm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KChfYSA9IGMudmFsdWUpICE9IG51bGwgPyBfYSA6IFwiXCIpfWA7XG4gIHJldHVybiBhdHRycy5sZW5ndGggPT09IDAgPyBzdHJpbmdpZmllZCA6IGAke3N0cmluZ2lmaWVkfTsgJHthdHRycy5qb2luKFwiOyBcIil9YDtcbn1cbmZ1bmN0aW9uIHBhcnNlQ29va2llKGNvb2tpZSkge1xuICBjb25zdCBtYXAgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBmb3IgKGNvbnN0IHBhaXIgb2YgY29va2llLnNwbGl0KC87ICovKSkge1xuICAgIGlmICghcGFpcilcbiAgICAgIGNvbnRpbnVlO1xuICAgIGNvbnN0IHNwbGl0QXQgPSBwYWlyLmluZGV4T2YoXCI9XCIpO1xuICAgIGlmIChzcGxpdEF0ID09PSAtMSkge1xuICAgICAgbWFwLnNldChwYWlyLCBcInRydWVcIik7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgW2tleSwgdmFsdWVdID0gW3BhaXIuc2xpY2UoMCwgc3BsaXRBdCksIHBhaXIuc2xpY2Uoc3BsaXRBdCArIDEpXTtcbiAgICB0cnkge1xuICAgICAgbWFwLnNldChrZXksIGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiBcInRydWVcIikpO1xuICAgIH0gY2F0Y2gge1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWFwO1xufVxuZnVuY3Rpb24gcGFyc2VTZXRDb29raWUoc2V0Q29va2llKSB7XG4gIGlmICghc2V0Q29va2llKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBjb25zdCBbW25hbWUsIHZhbHVlXSwgLi4uYXR0cmlidXRlc10gPSBwYXJzZUNvb2tpZShzZXRDb29raWUpO1xuICBjb25zdCB7XG4gICAgZG9tYWluLFxuICAgIGV4cGlyZXMsXG4gICAgaHR0cG9ubHksXG4gICAgbWF4YWdlLFxuICAgIHBhdGgsXG4gICAgc2FtZXNpdGUsXG4gICAgc2VjdXJlLFxuICAgIHBhcnRpdGlvbmVkLFxuICAgIHByaW9yaXR5XG4gIH0gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgYXR0cmlidXRlcy5tYXAoKFtrZXksIHZhbHVlMl0pID0+IFtcbiAgICAgIGtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLy0vZywgXCJcIiksXG4gICAgICB2YWx1ZTJcbiAgICBdKVxuICApO1xuICBjb25zdCBjb29raWUgPSB7XG4gICAgbmFtZSxcbiAgICB2YWx1ZTogZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKSxcbiAgICBkb21haW4sXG4gICAgLi4uZXhwaXJlcyAmJiB7IGV4cGlyZXM6IG5ldyBEYXRlKGV4cGlyZXMpIH0sXG4gICAgLi4uaHR0cG9ubHkgJiYgeyBodHRwT25seTogdHJ1ZSB9LFxuICAgIC4uLnR5cGVvZiBtYXhhZ2UgPT09IFwic3RyaW5nXCIgJiYgeyBtYXhBZ2U6IE51bWJlcihtYXhhZ2UpIH0sXG4gICAgcGF0aCxcbiAgICAuLi5zYW1lc2l0ZSAmJiB7IHNhbWVTaXRlOiBwYXJzZVNhbWVTaXRlKHNhbWVzaXRlKSB9LFxuICAgIC4uLnNlY3VyZSAmJiB7IHNlY3VyZTogdHJ1ZSB9LFxuICAgIC4uLnByaW9yaXR5ICYmIHsgcHJpb3JpdHk6IHBhcnNlUHJpb3JpdHkocHJpb3JpdHkpIH0sXG4gICAgLi4ucGFydGl0aW9uZWQgJiYgeyBwYXJ0aXRpb25lZDogdHJ1ZSB9XG4gIH07XG4gIHJldHVybiBjb21wYWN0KGNvb2tpZSk7XG59XG5mdW5jdGlvbiBjb21wYWN0KHQpIHtcbiAgY29uc3QgbmV3VCA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiB0KSB7XG4gICAgaWYgKHRba2V5XSkge1xuICAgICAgbmV3VFtrZXldID0gdFtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3VDtcbn1cbnZhciBTQU1FX1NJVEUgPSBbXCJzdHJpY3RcIiwgXCJsYXhcIiwgXCJub25lXCJdO1xuZnVuY3Rpb24gcGFyc2VTYW1lU2l0ZShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBTQU1FX1NJVEUuaW5jbHVkZXMoc3RyaW5nKSA/IHN0cmluZyA6IHZvaWQgMDtcbn1cbnZhciBQUklPUklUWSA9IFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl07XG5mdW5jdGlvbiBwYXJzZVByaW9yaXR5KHN0cmluZykge1xuICBzdHJpbmcgPSBzdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIFBSSU9SSVRZLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG5mdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcoY29va2llc1N0cmluZykge1xuICBpZiAoIWNvb2tpZXNTdHJpbmcpXG4gICAgcmV0dXJuIFtdO1xuICB2YXIgY29va2llc1N0cmluZ3MgPSBbXTtcbiAgdmFyIHBvcyA9IDA7XG4gIHZhciBzdGFydDtcbiAgdmFyIGNoO1xuICB2YXIgbGFzdENvbW1hO1xuICB2YXIgbmV4dFN0YXJ0O1xuICB2YXIgY29va2llc1NlcGFyYXRvckZvdW5kO1xuICBmdW5jdGlvbiBza2lwV2hpdGVzcGFjZSgpIHtcbiAgICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgL1xccy8udGVzdChjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpKSkge1xuICAgICAgcG9zICs9IDE7XG4gICAgfVxuICAgIHJldHVybiBwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aDtcbiAgfVxuICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgcmV0dXJuIGNoICE9PSBcIj1cIiAmJiBjaCAhPT0gXCI7XCIgJiYgY2ggIT09IFwiLFwiO1xuICB9XG4gIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgIHN0YXJ0ID0gcG9zO1xuICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgIHdoaWxlIChza2lwV2hpdGVzcGFjZSgpKSB7XG4gICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICBpZiAoY2ggPT09IFwiLFwiKSB7XG4gICAgICAgIGxhc3RDb21tYSA9IHBvcztcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIHNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgIG5leHRTdGFydCA9IHBvcztcbiAgICAgICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIG5vdFNwZWNpYWxDaGFyKCkpIHtcbiAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gXCI9XCIpIHtcbiAgICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBsYXN0Q29tbWEpKTtcbiAgICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwb3MgPSBsYXN0Q29tbWEgKyAxO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3MgKz0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFjb29raWVzU2VwYXJhdG9yRm91bmQgfHwgcG9zID49IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgICBjb29raWVzU3RyaW5ncy5wdXNoKGNvb2tpZXNTdHJpbmcuc3Vic3RyaW5nKHN0YXJ0LCBjb29raWVzU3RyaW5nLmxlbmd0aCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG5cbi8vIHNyYy9yZXF1ZXN0LWNvb2tpZXMudHNcbnZhciBSZXF1ZXN0Q29va2llcyA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocmVxdWVzdEhlYWRlcnMpIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5fcGFyc2VkID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB0aGlzLl9oZWFkZXJzID0gcmVxdWVzdEhlYWRlcnM7XG4gICAgY29uc3QgaGVhZGVyID0gcmVxdWVzdEhlYWRlcnMuZ2V0KFwiY29va2llXCIpO1xuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ29va2llKGhlYWRlcik7XG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgcGFyc2VkKSB7XG4gICAgICAgIHRoaXMuX3BhcnNlZC5zZXQobmFtZSwgeyBuYW1lLCB2YWx1ZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZFtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgY29va2llcyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnRcbiAgICovXG4gIGdldCBzaXplKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuc2l6ZTtcbiAgfVxuICBnZXQoLi4uYXJncykge1xuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5nZXQobmFtZSk7XG4gIH1cbiAgZ2V0QWxsKC4uLmFyZ3MpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgYWxsID0gQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQpO1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhbGwubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoW25dKSA9PiBuID09PSBuYW1lKS5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlKTtcbiAgfVxuICBoYXMobmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuaGFzKG5hbWUpO1xuICB9XG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlXSA9IGFyZ3MubGVuZ3RoID09PSAxID8gW2FyZ3NbMF0ubmFtZSwgYXJnc1swXS52YWx1ZV0gOiBhcmdzO1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBtYXAuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlMl0pID0+IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZTIpKS5qb2luKFwiOyBcIilcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgdGhlIGNvb2tpZXMgbWF0Y2hpbmcgdGhlIHBhc3NlZCBuYW1lIG9yIG5hbWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgZGVsZXRlKG5hbWVzKSB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIGNvbnN0IHJlc3VsdCA9ICFBcnJheS5pc0FycmF5KG5hbWVzKSA/IG1hcC5kZWxldGUobmFtZXMpIDogbmFtZXMubWFwKChuYW1lKSA9PiBtYXAuZGVsZXRlKG5hbWUpKTtcbiAgICB0aGlzLl9oZWFkZXJzLnNldChcbiAgICAgIFwiY29va2llXCIsXG4gICAgICBBcnJheS5mcm9tKG1hcCkubWFwKChbXywgdmFsdWVdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUpKS5qb2luKFwiOyBcIilcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgdGhlIGNvb2tpZXMgaW4gdGhlIGNvb2tpZXMgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLmRlbGV0ZShBcnJheS5mcm9tKHRoaXMuX3BhcnNlZC5rZXlzKCkpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRm9ybWF0IHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0IGFzIGEgc3RyaW5nIGZvciBsb2dnaW5nXG4gICAqL1xuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXF1ZXN0Q29va2llcyAke0pTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyh0aGlzLl9wYXJzZWQpKX1gO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fcGFyc2VkLnZhbHVlcygpXS5tYXAoKHYpID0+IGAke3YubmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQodi52YWx1ZSl9YCkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuXG4vLyBzcmMvcmVzcG9uc2UtY29va2llcy50c1xudmFyIFJlc3BvbnNlQ29va2llcyA9IGNsYXNzIHtcbiAgY29uc3RydWN0b3IocmVzcG9uc2VIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlc3BvbnNlSGVhZGVycztcbiAgICBjb25zdCBzZXRDb29raWUgPSAoX2MgPSAoX2IgPSAoX2EgPSByZXNwb25zZUhlYWRlcnMuZ2V0U2V0Q29va2llKSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChyZXNwb25zZUhlYWRlcnMpKSAhPSBudWxsID8gX2IgOiByZXNwb25zZUhlYWRlcnMuZ2V0KFwic2V0LWNvb2tpZVwiKSkgIT0gbnVsbCA/IF9jIDogW107XG4gICAgY29uc3QgY29va2llU3RyaW5ncyA9IEFycmF5LmlzQXJyYXkoc2V0Q29va2llKSA/IHNldENvb2tpZSA6IHNwbGl0Q29va2llc1N0cmluZyhzZXRDb29raWUpO1xuICAgIGZvciAoY29uc3QgY29va2llU3RyaW5nIG9mIGNvb2tpZVN0cmluZ3MpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlU2V0Q29va2llKGNvb2tpZVN0cmluZyk7XG4gICAgICBpZiAocGFyc2VkKVxuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KHBhcnNlZC5uYW1lLCBwYXJzZWQpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1nZXQgQ29va2llU3RvcmUjZ2V0fSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5nZXQoa2V5KTtcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1nZXRBbGwgQ29va2llU3RvcmUjZ2V0QWxsfSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZ2V0QWxsKC4uLmFyZ3MpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgYWxsID0gQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQudmFsdWVzKCkpO1xuICAgIGlmICghYXJncy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhbGw7XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IChfYSA9IGFyZ3NbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgIHJldHVybiBhbGwuZmlsdGVyKChjKSA9PiBjLm5hbWUgPT09IGtleSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1zZXQgQ29va2llU3RvcmUjc2V0fSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgc2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbbmFtZSwgdmFsdWUsIGNvb2tpZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWUsIGFyZ3NbMF1dIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCBub3JtYWxpemVDb29raWUoeyBuYW1lLCB2YWx1ZSwgLi4uY29va2llIH0pKTtcbiAgICByZXBsYWNlKG1hcCwgdGhpcy5faGVhZGVycyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZGVsZXRlIENvb2tpZVN0b3JlI2RlbGV0ZX0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGRlbGV0ZSguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIG9wdGlvbnNdID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBbYXJnc1swXV0gOiBbYXJnc1swXS5uYW1lLCBhcmdzWzBdXTtcbiAgICByZXR1cm4gdGhpcy5zZXQoeyAuLi5vcHRpb25zLCBuYW1lLCB2YWx1ZTogXCJcIiwgZXhwaXJlczogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKDApIH0pO1xuICB9XG4gIFtTeW1ib2wuZm9yKFwiZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tXCIpXSgpIHtcbiAgICByZXR1cm4gYFJlc3BvbnNlQ29va2llcyAke0pTT04uc3RyaW5naWZ5KE9iamVjdC5mcm9tRW50cmllcyh0aGlzLl9wYXJzZWQpKX1gO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fcGFyc2VkLnZhbHVlcygpXS5tYXAoc3RyaW5naWZ5Q29va2llKS5qb2luKFwiOyBcIik7XG4gIH1cbn07XG5mdW5jdGlvbiByZXBsYWNlKGJhZywgaGVhZGVycykge1xuICBoZWFkZXJzLmRlbGV0ZShcInNldC1jb29raWVcIik7XG4gIGZvciAoY29uc3QgWywgdmFsdWVdIG9mIGJhZykge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBzdHJpbmdpZnlDb29raWUodmFsdWUpO1xuICAgIGhlYWRlcnMuYXBwZW5kKFwic2V0LWNvb2tpZVwiLCBzZXJpYWxpemVkKTtcbiAgfVxufVxuZnVuY3Rpb24gbm9ybWFsaXplQ29va2llKGNvb2tpZSA9IHsgbmFtZTogXCJcIiwgdmFsdWU6IFwiXCIgfSkge1xuICBpZiAodHlwZW9mIGNvb2tpZS5leHBpcmVzID09PSBcIm51bWJlclwiKSB7XG4gICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZShjb29raWUuZXhwaXJlcyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5tYXhBZ2UpIHtcbiAgICBjb29raWUuZXhwaXJlcyA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBjb29raWUubWF4QWdlICogMWUzKTtcbiAgfVxuICBpZiAoY29va2llLnBhdGggPT09IG51bGwgfHwgY29va2llLnBhdGggPT09IHZvaWQgMCkge1xuICAgIGNvb2tpZS5wYXRoID0gXCIvXCI7XG4gIH1cbiAgcmV0dXJuIGNvb2tpZTtcbn1cbi8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZTpcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICBSZXF1ZXN0Q29va2llcyxcbiAgUmVzcG9uc2VDb29raWVzLFxuICBwYXJzZUNvb2tpZSxcbiAgcGFyc2VTZXRDb29raWUsXG4gIHN0cmluZ2lmeUNvb2tpZVxufSk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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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RSxnQ0FBZ0MsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsZ0NBQWdDLCtCQUErQixlQUFlLEVBQUUsaUNBQWlDLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsaUNBQWlDLHVDQUF1QywrQkFBK0Isc0JBQXNCLEVBQUUsaUNBQWlDLGlDQUFpQywrQkFBK0IsZ0JBQWdCLEVBQUUsY0FBYyx5RkFBeUYsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxAb3BlbnRlbGVtZXRyeVxcYXBpXFxpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17NDkxOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQ29udGV4dEFQST12b2lkIDA7Y29uc3Qgbj1yKDIyMyk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cImNvbnRleHRcIjtjb25zdCBjPW5ldyBuLk5vb3BDb250ZXh0TWFuYWdlcjtjbGFzcyBDb250ZXh0QVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IENvbnRleHRBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbENvbnRleHRNYW5hZ2VyKGUpe3JldHVybigwLGEucmVnaXN0ZXJHbG9iYWwpKGksZSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9YWN0aXZlKCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYWN0aXZlKCl9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS53aXRoKGUsdCxyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5iaW5kKGUsdCl9X2dldENvbnRleHRNYW5hZ2VyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxjfWRpc2FibGUoKXt0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmRpc2FibGUoKTsoMCxhLnVucmVnaXN0ZXJHbG9iYWwpKGksby5EaWFnQVBJLmluc3RhbmNlKCkpfX10LkNvbnRleHRBUEk9Q29udGV4dEFQSX0sOTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0FQST12b2lkIDA7Y29uc3Qgbj1yKDU2KTtjb25zdCBhPXIoOTEyKTtjb25zdCBvPXIoOTU3KTtjb25zdCBpPXIoMTcyKTtjb25zdCBjPVwiZGlhZ1wiO2NsYXNzIERpYWdBUEl7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfbG9nUHJveHkoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0IHI9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighcilyZXR1cm47cmV0dXJuIHJbZV0oLi4udCl9fWNvbnN0IGU9dGhpcztjb25zdCBzZXRMb2dnZXI9KHQscj17bG9nTGV2ZWw6by5EaWFnTG9nTGV2ZWwuSU5GT30pPT57dmFyIG4sYyxzO2lmKHQ9PT1lKXtjb25zdCB0PW5ldyBFcnJvcihcIkNhbm5vdCB1c2UgZGlhZyBhcyB0aGUgbG9nZ2VyIGZvciBpdHNlbGYuIFBsZWFzZSB1c2UgYSBEaWFnTG9nZ2VyIGltcGxlbWVudGF0aW9uIGxpa2UgQ29uc29sZURpYWdMb2dnZXIgb3IgYSBjdXN0b20gaW1wbGVtZW50YXRpb25cIik7ZS5lcnJvcigobj10LnN0YWNrKSE9PW51bGwmJm4hPT12b2lkIDA/bjp0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZih0eXBlb2Ygcj09PVwibnVtYmVyXCIpe3I9e2xvZ0xldmVsOnJ9fWNvbnN0IHU9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtjb25zdCBsPSgwLGEuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKSgoYz1yLmxvZ0xldmVsKSE9PW51bGwmJmMhPT12b2lkIDA/YzpvLkRpYWdMb2dMZXZlbC5JTkZPLHQpO2lmKHUmJiFyLnN1cHByZXNzT3ZlcnJpZGVNZXNzYWdlKXtjb25zdCBlPShzPShuZXcgRXJyb3IpLnN0YWNrKSE9PW51bGwmJnMhPT12b2lkIDA/czpcIjxmYWlsZWQgdG8gZ2VuZXJhdGUgc3RhY2t0cmFjZT5cIjt1Lndhcm4oYEN1cnJlbnQgbG9nZ2VyIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZnJvbSAke2V9YCk7bC53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIG92ZXJ3cml0ZSBvbmUgYWxyZWFkeSByZWdpc3RlcmVkIGZyb20gJHtlfWApfXJldHVybigwLGkucmVnaXN0ZXJHbG9iYWwpKFwiZGlhZ1wiLGwsZSx0cnVlKX07ZS5zZXRMb2dnZXI9c2V0TG9nZ2VyO2UuZGlzYWJsZT0oKT0+eygwLGkudW5yZWdpc3Rlckdsb2JhbCkoYyxlKX07ZS5jcmVhdGVDb21wb25lbnRMb2dnZXI9ZT0+bmV3IG4uRGlhZ0NvbXBvbmVudExvZ2dlcihlKTtlLnZlcmJvc2U9X2xvZ1Byb3h5KFwidmVyYm9zZVwiKTtlLmRlYnVnPV9sb2dQcm94eShcImRlYnVnXCIpO2UuaW5mbz1fbG9nUHJveHkoXCJpbmZvXCIpO2Uud2Fybj1fbG9nUHJveHkoXCJ3YXJuXCIpO2UuZXJyb3I9X2xvZ1Byb3h5KFwiZXJyb3JcIil9c3RhdGljIGluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgRGlhZ0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9fXQuRGlhZ0FQST1EaWFnQVBJfSw2NTM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5NZXRyaWNzQVBJPXZvaWQgMDtjb25zdCBuPXIoNjYwKTtjb25zdCBhPXIoMTcyKTtjb25zdCBvPXIoOTMwKTtjb25zdCBpPVwibWV0cmljc1wiO2NsYXNzIE1ldHJpY3NBUEl7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgTWV0cmljc0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsTWV0ZXJQcm92aWRlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWdldE1ldGVyUHJvdmlkZXIoKXtyZXR1cm4oMCxhLmdldEdsb2JhbCkoaSl8fG4uTk9PUF9NRVRFUl9QUk9WSURFUn1nZXRNZXRlcihlLHQscil7cmV0dXJuIHRoaXMuZ2V0TWV0ZXJQcm92aWRlcigpLmdldE1ldGVyKGUsdCxyKX1kaXNhYmxlKCl7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5NZXRyaWNzQVBJPU1ldHJpY3NBUEl9LDE4MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3BhZ2F0aW9uQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODc0KTtjb25zdCBvPXIoMTk0KTtjb25zdCBpPXIoMjc3KTtjb25zdCBjPXIoMzY5KTtjb25zdCBzPXIoOTMwKTtjb25zdCB1PVwicHJvcGFnYXRpb25cIjtjb25zdCBsPW5ldyBhLk5vb3BUZXh0TWFwUHJvcGFnYXRvcjtjbGFzcyBQcm9wYWdhdGlvbkFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuY3JlYXRlQmFnZ2FnZT1jLmNyZWF0ZUJhZ2dhZ2U7dGhpcy5nZXRCYWdnYWdlPWkuZ2V0QmFnZ2FnZTt0aGlzLmdldEFjdGl2ZUJhZ2dhZ2U9aS5nZXRBY3RpdmVCYWdnYWdlO3RoaXMuc2V0QmFnZ2FnZT1pLnNldEJhZ2dhZ2U7dGhpcy5kZWxldGVCYWdnYWdlPWkuZGVsZXRlQmFnZ2FnZX1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBQcm9wYWdhdGlvbkFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsUHJvcGFnYXRvcihlKXtyZXR1cm4oMCxuLnJlZ2lzdGVyR2xvYmFsKSh1LGUscy5EaWFnQVBJLmluc3RhbmNlKCkpfWluamVjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwU2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmluamVjdChlLHQscil9ZXh0cmFjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwR2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmV4dHJhY3QoZSx0LHIpfWZpZWxkcygpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuZmllbGRzKCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkodSxzLkRpYWdBUEkuaW5zdGFuY2UoKSl9X2dldEdsb2JhbFByb3BhZ2F0b3IoKXtyZXR1cm4oMCxuLmdldEdsb2JhbCkodSl8fGx9fXQuUHJvcGFnYXRpb25BUEk9UHJvcGFnYXRpb25BUEl9LDk5NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODQ2KTtjb25zdCBvPXIoMTM5KTtjb25zdCBpPXIoNjA3KTtjb25zdCBjPXIoOTMwKTtjb25zdCBzPVwidHJhY2VcIjtjbGFzcyBUcmFjZUFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcjt0aGlzLndyYXBTcGFuQ29udGV4dD1vLndyYXBTcGFuQ29udGV4dDt0aGlzLmlzU3BhbkNvbnRleHRWYWxpZD1vLmlzU3BhbkNvbnRleHRWYWxpZDt0aGlzLmRlbGV0ZVNwYW49aS5kZWxldGVTcGFuO3RoaXMuZ2V0U3Bhbj1pLmdldFNwYW47dGhpcy5nZXRBY3RpdmVTcGFuPWkuZ2V0QWN0aXZlU3Bhbjt0aGlzLmdldFNwYW5Db250ZXh0PWkuZ2V0U3BhbkNvbnRleHQ7dGhpcy5zZXRTcGFuPWkuc2V0U3Bhbjt0aGlzLnNldFNwYW5Db250ZXh0PWkuc2V0U3BhbkNvbnRleHR9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgVHJhY2VBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFRyYWNlclByb3ZpZGVyKGUpe2NvbnN0IHQ9KDAsbi5yZWdpc3Rlckdsb2JhbCkocyx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLGMuRGlhZ0FQSS5pbnN0YW5jZSgpKTtpZih0KXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLnNldERlbGVnYXRlKGUpfXJldHVybiB0fWdldFRyYWNlclByb3ZpZGVyKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHMpfHx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyfWdldFRyYWNlcihlLHQpe3JldHVybiB0aGlzLmdldFRyYWNlclByb3ZpZGVyKCkuZ2V0VHJhY2VyKGUsdCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkocyxjLkRpYWdBUEkuaW5zdGFuY2UoKSk7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgYS5Qcm94eVRyYWNlclByb3ZpZGVyfX10LlRyYWNlQVBJPVRyYWNlQVBJfSwyNzc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWxldGVCYWdnYWdlPXQuc2V0QmFnZ2FnZT10LmdldEFjdGl2ZUJhZ2dhZ2U9dC5nZXRCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoNDkxKTtjb25zdCBhPXIoNzgwKTtjb25zdCBvPSgwLGEuY3JlYXRlQ29udGV4dEtleSkoXCJPcGVuVGVsZW1ldHJ5IEJhZ2dhZ2UgS2V5XCIpO2Z1bmN0aW9uIGdldEJhZ2dhZ2UoZSl7cmV0dXJuIGUuZ2V0VmFsdWUobyl8fHVuZGVmaW5lZH10LmdldEJhZ2dhZ2U9Z2V0QmFnZ2FnZTtmdW5jdGlvbiBnZXRBY3RpdmVCYWdnYWdlKCl7cmV0dXJuIGdldEJhZ2dhZ2Uobi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlQmFnZ2FnZT1nZXRBY3RpdmVCYWdnYWdlO2Z1bmN0aW9uIHNldEJhZ2dhZ2UoZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShvLHQpfXQuc2V0QmFnZ2FnZT1zZXRCYWdnYWdlO2Z1bmN0aW9uIGRlbGV0ZUJhZ2dhZ2UoZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUobyl9dC5kZWxldGVCYWdnYWdlPWRlbGV0ZUJhZ2dhZ2V9LDk5MzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5CYWdnYWdlSW1wbD12b2lkIDA7Y2xhc3MgQmFnZ2FnZUltcGx7Y29uc3RydWN0b3IoZSl7dGhpcy5fZW50cmllcz1lP25ldyBNYXAoZSk6bmV3IE1hcH1nZXRFbnRyeShlKXtjb25zdCB0PXRoaXMuX2VudHJpZXMuZ2V0KGUpO2lmKCF0KXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQpfWdldEFsbEVudHJpZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9lbnRyaWVzLmVudHJpZXMoKSkubWFwKCgoW2UsdF0pPT5bZSx0XSkpfXNldEVudHJ5KGUsdCl7Y29uc3Qgcj1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7ci5fZW50cmllcy5zZXQoZSx0KTtyZXR1cm4gcn1yZW1vdmVFbnRyeShlKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTt0Ll9lbnRyaWVzLmRlbGV0ZShlKTtyZXR1cm4gdH1yZW1vdmVFbnRyaWVzKC4uLmUpe2NvbnN0IHQ9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO2Zvcihjb25zdCByIG9mIGUpe3QuX2VudHJpZXMuZGVsZXRlKHIpfXJldHVybiB0fWNsZWFyKCl7cmV0dXJuIG5ldyBCYWdnYWdlSW1wbH19dC5CYWdnYWdlSW1wbD1CYWdnYWdlSW1wbH0sODMwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPXZvaWQgMDt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPVN5bWJvbChcIkJhZ2dhZ2VFbnRyeU1ldGFkYXRhXCIpfSwzNjk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dC5jcmVhdGVCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoOTMwKTtjb25zdCBhPXIoOTkzKTtjb25zdCBvPXIoODMwKTtjb25zdCBpPW4uRGlhZ0FQSS5pbnN0YW5jZSgpO2Z1bmN0aW9uIGNyZWF0ZUJhZ2dhZ2UoZT17fSl7cmV0dXJuIG5ldyBhLkJhZ2dhZ2VJbXBsKG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoZSkpKX10LmNyZWF0ZUJhZ2dhZ2U9Y3JlYXRlQmFnZ2FnZTtmdW5jdGlvbiBiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmcoZSl7aWYodHlwZW9mIGUhPT1cInN0cmluZ1wiKXtpLmVycm9yKGBDYW5ub3QgY3JlYXRlIGJhZ2dhZ2UgbWV0YWRhdGEgZnJvbSB1bmtub3duIHR5cGU6ICR7dHlwZW9mIGV9YCk7ZT1cIlwifXJldHVybntfX1RZUEVfXzpvLmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sLHRvU3RyaW5nKCl7cmV0dXJuIGV9fX10LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz1iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmd9LDY3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY29udGV4dD12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7dC5jb250ZXh0PW4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpfSwyMjM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wQ29udGV4dE1hbmFnZXI9dm9pZCAwO2NvbnN0IG49cig3ODApO2NsYXNzIE5vb3BDb250ZXh0TWFuYWdlcnthY3RpdmUoKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdC5jYWxsKHIsLi4ubil9YmluZChlLHQpe3JldHVybiB0fWVuYWJsZSgpe3JldHVybiB0aGlzfWRpc2FibGUoKXtyZXR1cm4gdGhpc319dC5Ob29wQ29udGV4dE1hbmFnZXI9Tm9vcENvbnRleHRNYW5hZ2VyfSw3ODA6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUk9PVF9DT05URVhUPXQuY3JlYXRlQ29udGV4dEtleT12b2lkIDA7ZnVuY3Rpb24gY3JlYXRlQ29udGV4dEtleShlKXtyZXR1cm4gU3ltYm9sLmZvcihlKX10LmNyZWF0ZUNvbnRleHRLZXk9Y3JlYXRlQ29udGV4dEtleTtjbGFzcyBCYXNlQ29udGV4dHtjb25zdHJ1Y3RvcihlKXtjb25zdCB0PXRoaXM7dC5fY3VycmVudENvbnRleHQ9ZT9uZXcgTWFwKGUpOm5ldyBNYXA7dC5nZXRWYWx1ZT1lPT50Ll9jdXJyZW50Q29udGV4dC5nZXQoZSk7dC5zZXRWYWx1ZT0oZSxyKT0+e2NvbnN0IG49bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtuLl9jdXJyZW50Q29udGV4dC5zZXQoZSxyKTtyZXR1cm4gbn07dC5kZWxldGVWYWx1ZT1lPT57Y29uc3Qgcj1uZXcgQmFzZUNvbnRleHQodC5fY3VycmVudENvbnRleHQpO3IuX2N1cnJlbnRDb250ZXh0LmRlbGV0ZShlKTtyZXR1cm4gcn19fXQuUk9PVF9DT05URVhUPW5ldyBCYXNlQ29udGV4dH0sNTA2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGlhZz12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7dC5kaWFnPW4uRGlhZ0FQSS5pbnN0YW5jZSgpfSw1NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdDb21wb25lbnRMb2dnZXI9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NsYXNzIERpYWdDb21wb25lbnRMb2dnZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fbmFtZXNwYWNlPWUubmFtZXNwYWNlfHxcIkRpYWdDb21wb25lbnRMb2dnZXJcIn1kZWJ1ZyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJkZWJ1Z1wiLHRoaXMuX25hbWVzcGFjZSxlKX1lcnJvciguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJlcnJvclwiLHRoaXMuX25hbWVzcGFjZSxlKX1pbmZvKC4uLmUpe3JldHVybiBsb2dQcm94eShcImluZm9cIix0aGlzLl9uYW1lc3BhY2UsZSl9d2FybiguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJ3YXJuXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXZlcmJvc2UoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwidmVyYm9zZVwiLHRoaXMuX25hbWVzcGFjZSxlKX19dC5EaWFnQ29tcG9uZW50TG9nZ2VyPURpYWdDb21wb25lbnRMb2dnZXI7ZnVuY3Rpb24gbG9nUHJveHkoZSx0LHIpe2NvbnN0IGE9KDAsbi5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighYSl7cmV0dXJufXIudW5zaGlmdCh0KTtyZXR1cm4gYVtlXSguLi5yKX19LDk3MjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29uc29sZUxvZ2dlcj12b2lkIDA7Y29uc3Qgcj1be246XCJlcnJvclwiLGM6XCJlcnJvclwifSx7bjpcIndhcm5cIixjOlwid2FyblwifSx7bjpcImluZm9cIixjOlwiaW5mb1wifSx7bjpcImRlYnVnXCIsYzpcImRlYnVnXCJ9LHtuOlwidmVyYm9zZVwiLGM6XCJ0cmFjZVwifV07Y2xhc3MgRGlhZ0NvbnNvbGVMb2dnZXJ7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfY29uc29sZUZ1bmMoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2lmKGNvbnNvbGUpe2xldCByPWNvbnNvbGVbZV07aWYodHlwZW9mIHIhPT1cImZ1bmN0aW9uXCIpe3I9Y29uc29sZS5sb2d9aWYodHlwZW9mIHI9PT1cImZ1bmN0aW9uXCIpe3JldHVybiByLmFwcGx5KGNvbnNvbGUsdCl9fX19Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe3RoaXNbcltlXS5uXT1fY29uc29sZUZ1bmMocltlXS5jKX19fXQuRGlhZ0NvbnNvbGVMb2dnZXI9RGlhZ0NvbnNvbGVMb2dnZXJ9LDkxMjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj12b2lkIDA7Y29uc3Qgbj1yKDk1Nyk7ZnVuY3Rpb24gY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKGUsdCl7aWYoZTxuLkRpYWdMb2dMZXZlbC5OT05FKXtlPW4uRGlhZ0xvZ0xldmVsLk5PTkV9ZWxzZSBpZihlPm4uRGlhZ0xvZ0xldmVsLkFMTCl7ZT1uLkRpYWdMb2dMZXZlbC5BTEx9dD10fHx7fTtmdW5jdGlvbiBfZmlsdGVyRnVuYyhyLG4pe2NvbnN0IGE9dFtyXTtpZih0eXBlb2YgYT09PVwiZnVuY3Rpb25cIiYmZT49bil7cmV0dXJuIGEuYmluZCh0KX1yZXR1cm4gZnVuY3Rpb24oKXt9fXJldHVybntlcnJvcjpfZmlsdGVyRnVuYyhcImVycm9yXCIsbi5EaWFnTG9nTGV2ZWwuRVJST1IpLHdhcm46X2ZpbHRlckZ1bmMoXCJ3YXJuXCIsbi5EaWFnTG9nTGV2ZWwuV0FSTiksaW5mbzpfZmlsdGVyRnVuYyhcImluZm9cIixuLkRpYWdMb2dMZXZlbC5JTkZPKSxkZWJ1ZzpfZmlsdGVyRnVuYyhcImRlYnVnXCIsbi5EaWFnTG9nTGV2ZWwuREVCVUcpLHZlcmJvc2U6X2ZpbHRlckZ1bmMoXCJ2ZXJib3NlXCIsbi5EaWFnTG9nTGV2ZWwuVkVSQk9TRSl9fXQuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyPWNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcn0sOTU3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdMb2dMZXZlbD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiRVJST1JcIl09MzBdPVwiRVJST1JcIjtlW2VbXCJXQVJOXCJdPTUwXT1cIldBUk5cIjtlW2VbXCJJTkZPXCJdPTYwXT1cIklORk9cIjtlW2VbXCJERUJVR1wiXT03MF09XCJERUJVR1wiO2VbZVtcIlZFUkJPU0VcIl09ODBdPVwiVkVSQk9TRVwiO2VbZVtcIkFMTFwiXT05OTk5XT1cIkFMTFwifSkocj10LkRpYWdMb2dMZXZlbHx8KHQuRGlhZ0xvZ0xldmVsPXt9KSl9LDE3MjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnVucmVnaXN0ZXJHbG9iYWw9dC5nZXRHbG9iYWw9dC5yZWdpc3Rlckdsb2JhbD12b2lkIDA7Y29uc3Qgbj1yKDIwMCk7Y29uc3QgYT1yKDUyMSk7Y29uc3Qgbz1yKDEzMCk7Y29uc3QgaT1hLlZFUlNJT04uc3BsaXQoXCIuXCIpWzBdO2NvbnN0IGM9U3ltYm9sLmZvcihgb3BlbnRlbGVtZXRyeS5qcy5hcGkuJHtpfWApO2NvbnN0IHM9bi5fZ2xvYmFsVGhpcztmdW5jdGlvbiByZWdpc3Rlckdsb2JhbChlLHQscixuPWZhbHNlKXt2YXIgbztjb25zdCBpPXNbY109KG89c1tjXSkhPT1udWxsJiZvIT09dm9pZCAwP286e3ZlcnNpb246YS5WRVJTSU9OfTtpZighbiYmaVtlXSl7Y29uc3QgdD1uZXcgRXJyb3IoYEBvcGVudGVsZW1ldHJ5L2FwaTogQXR0ZW1wdGVkIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gb2YgQVBJOiAke2V9YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZihpLnZlcnNpb24hPT1hLlZFUlNJT04pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFJlZ2lzdHJhdGlvbiBvZiB2ZXJzaW9uIHYke2kudmVyc2lvbn0gZm9yICR7ZX0gZG9lcyBub3QgbWF0Y2ggcHJldmlvdXNseSByZWdpc3RlcmVkIEFQSSB2JHthLlZFUlNJT059YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pW2VdPXQ7ci5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RlcmVkIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7cmV0dXJuIHRydWV9dC5yZWdpc3Rlckdsb2JhbD1yZWdpc3Rlckdsb2JhbDtmdW5jdGlvbiBnZXRHbG9iYWwoZSl7dmFyIHQscjtjb25zdCBuPSh0PXNbY10pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC52ZXJzaW9uO2lmKCFufHwhKDAsby5pc0NvbXBhdGlibGUpKG4pKXtyZXR1cm59cmV0dXJuKHI9c1tjXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyW2VdfXQuZ2V0R2xvYmFsPWdldEdsb2JhbDtmdW5jdGlvbiB1bnJlZ2lzdGVyR2xvYmFsKGUsdCl7dC5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBVbnJlZ2lzdGVyaW5nIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7Y29uc3Qgcj1zW2NdO2lmKHIpe2RlbGV0ZSByW2VdfX10LnVucmVnaXN0ZXJHbG9iYWw9dW5yZWdpc3Rlckdsb2JhbH0sMTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuaXNDb21wYXRpYmxlPXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9dm9pZCAwO2NvbnN0IG49cig1MjEpO2NvbnN0IGE9L14oXFxkKylcXC4oXFxkKylcXC4oXFxkKykoLSguKykpPyQvO2Z1bmN0aW9uIF9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrKGUpe2NvbnN0IHQ9bmV3IFNldChbZV0pO2NvbnN0IHI9bmV3IFNldDtjb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybigpPT5mYWxzZX1jb25zdCBvPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKG8ucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uIGlzRXhhY3RtYXRjaCh0KXtyZXR1cm4gdD09PWV9fWZ1bmN0aW9uIF9yZWplY3QoZSl7ci5hZGQoZSk7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIF9hY2NlcHQoZSl7dC5hZGQoZSk7cmV0dXJuIHRydWV9cmV0dXJuIGZ1bmN0aW9uIGlzQ29tcGF0aWJsZShlKXtpZih0LmhhcyhlKSl7cmV0dXJuIHRydWV9aWYoci5oYXMoZSkpe3JldHVybiBmYWxzZX1jb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybiBfcmVqZWN0KGUpfWNvbnN0IGk9e21ham9yOituWzFdLG1pbm9yOituWzJdLHBhdGNoOituWzNdLHByZXJlbGVhc2U6bls0XX07aWYoaS5wcmVyZWxlYXNlIT1udWxsKXtyZXR1cm4gX3JlamVjdChlKX1pZihvLm1ham9yIT09aS5tYWpvcil7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvcj09PTApe2lmKG8ubWlub3I9PT1pLm1pbm9yJiZvLnBhdGNoPD1pLnBhdGNoKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX1pZihvLm1pbm9yPD1pLm1pbm9yKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX19dC5fbWFrZUNvbXBhdGliaWxpdHlDaGVjaz1fbWFrZUNvbXBhdGliaWxpdHlDaGVjazt0LmlzQ29tcGF0aWJsZT1fbWFrZUNvbXBhdGliaWxpdHlDaGVjayhuLlZFUlNJT04pfSw4ODY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5tZXRyaWNzPXZvaWQgMDtjb25zdCBuPXIoNjUzKTt0Lm1ldHJpY3M9bi5NZXRyaWNzQVBJLmdldEluc3RhbmNlKCl9LDkwMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WYWx1ZVR5cGU9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRcIl09MF09XCJJTlRcIjtlW2VbXCJET1VCTEVcIl09MV09XCJET1VCTEVcIn0pKHI9dC5WYWx1ZVR5cGV8fCh0LlZhbHVlVHlwZT17fSkpfSwxMDI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlTm9vcE1ldGVyPXQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9dC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDPXQuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9ISVNUT0dSQU1fTUVUUklDPXQuTk9PUF9DT1VOVEVSX01FVFJJQz10Lk5PT1BfTUVURVI9dC5Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVNZXRyaWM9dC5Ob29wSGlzdG9ncmFtTWV0cmljPXQuTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wQ291bnRlck1ldHJpYz10Lk5vb3BNZXRyaWM9dC5Ob29wTWV0ZXI9dm9pZCAwO2NsYXNzIE5vb3BNZXRlcntjb25zdHJ1Y3Rvcigpe31jcmVhdGVIaXN0b2dyYW0oZSxyKXtyZXR1cm4gdC5OT09QX0hJU1RPR1JBTV9NRVRSSUN9Y3JlYXRlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfQ09VTlRFUl9NRVRSSUN9Y3JlYXRlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlR2F1Z2UoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVDb3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVVcERvd25Db3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9YWRkQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSx0KXt9cmVtb3ZlQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSl7fX10Lk5vb3BNZXRlcj1Ob29wTWV0ZXI7Y2xhc3MgTm9vcE1ldHJpY3t9dC5Ob29wTWV0cmljPU5vb3BNZXRyaWM7Y2xhc3MgTm9vcENvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wQ291bnRlck1ldHJpYz1Ob29wQ291bnRlck1ldHJpYztjbGFzcyBOb29wVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7YWRkKGUsdCl7fX10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPU5vb3BVcERvd25Db3VudGVyTWV0cmljO2NsYXNzIE5vb3BIaXN0b2dyYW1NZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje3JlY29yZChlLHQpe319dC5Ob29wSGlzdG9ncmFtTWV0cmljPU5vb3BIaXN0b2dyYW1NZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVNZXRyaWN7YWRkQ2FsbGJhY2soZSl7fXJlbW92ZUNhbGxiYWNrKGUpe319dC5Ob29wT2JzZXJ2YWJsZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM9Tm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPU5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfTUVURVI9bmV3IE5vb3BNZXRlcjt0Lk5PT1BfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BDb3VudGVyTWV0cmljO3QuTk9PUF9ISVNUT0dSQU1fTUVUUklDPW5ldyBOb29wSGlzdG9ncmFtTWV0cmljO3QuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7ZnVuY3Rpb24gY3JlYXRlTm9vcE1ldGVyKCl7cmV0dXJuIHQuTk9PUF9NRVRFUn10LmNyZWF0ZU5vb3BNZXRlcj1jcmVhdGVOb29wTWV0ZXJ9LDY2MDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5PT1BfTUVURVJfUFJPVklERVI9dC5Ob29wTWV0ZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDEwMik7Y2xhc3MgTm9vcE1ldGVyUHJvdmlkZXJ7Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiBuLk5PT1BfTUVURVJ9fXQuTm9vcE1ldGVyUHJvdmlkZXI9Tm9vcE1ldGVyUHJvdmlkZXI7dC5OT09QX01FVEVSX1BST1ZJREVSPW5ldyBOb29wTWV0ZXJQcm92aWRlcn0sMjAwOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfTpmdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtlW25dPXRbcl19KTt2YXIgYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gZSlpZihyIT09XCJkZWZhdWx0XCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSluKHQsZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTthKHIoNDYpLHQpfSw2NTE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuX2dsb2JhbFRoaXM9dm9pZCAwO3QuX2dsb2JhbFRoaXM9dHlwZW9mIGdsb2JhbFRoaXM9PT1cIm9iamVjdFwiP2dsb2JhbFRoaXM6Z2xvYmFsfSw0NjpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDY1MSksdCl9LDkzOTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnByb3BhZ2F0aW9uPXZvaWQgMDtjb25zdCBuPXIoMTgxKTt0LnByb3BhZ2F0aW9uPW4uUHJvcGFnYXRpb25BUEkuZ2V0SW5zdGFuY2UoKX0sODc0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj12b2lkIDA7Y2xhc3MgTm9vcFRleHRNYXBQcm9wYWdhdG9ye2luamVjdChlLHQpe31leHRyYWN0KGUsdCl7cmV0dXJuIGV9ZmllbGRzKCl7cmV0dXJuW119fXQuTm9vcFRleHRNYXBQcm9wYWdhdG9yPU5vb3BUZXh0TWFwUHJvcGFnYXRvcn0sMTk0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRlZmF1bHRUZXh0TWFwU2V0dGVyPXQuZGVmYXVsdFRleHRNYXBHZXR0ZXI9dm9pZCAwO3QuZGVmYXVsdFRleHRNYXBHZXR0ZXI9e2dldChlLHQpe2lmKGU9PW51bGwpe3JldHVybiB1bmRlZmluZWR9cmV0dXJuIGVbdF19LGtleXMoZSl7aWYoZT09bnVsbCl7cmV0dXJuW119cmV0dXJuIE9iamVjdC5rZXlzKGUpfX07dC5kZWZhdWx0VGV4dE1hcFNldHRlcj17c2V0KGUsdCxyKXtpZihlPT1udWxsKXtyZXR1cm59ZVt0XT1yfX19LDg0NTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnRyYWNlPXZvaWQgMDtjb25zdCBuPXIoOTk3KTt0LnRyYWNlPW4uVHJhY2VBUEkuZ2V0SW5zdGFuY2UoKX0sNDAzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9uUmVjb3JkaW5nU3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDQ3Nik7Y2xhc3MgTm9uUmVjb3JkaW5nU3Bhbntjb25zdHJ1Y3RvcihlPW4uSU5WQUxJRF9TUEFOX0NPTlRFWFQpe3RoaXMuX3NwYW5Db250ZXh0PWV9c3BhbkNvbnRleHQoKXtyZXR1cm4gdGhpcy5fc3BhbkNvbnRleHR9c2V0QXR0cmlidXRlKGUsdCl7cmV0dXJuIHRoaXN9c2V0QXR0cmlidXRlcyhlKXtyZXR1cm4gdGhpc31hZGRFdmVudChlLHQpe3JldHVybiB0aGlzfXNldFN0YXR1cyhlKXtyZXR1cm4gdGhpc311cGRhdGVOYW1lKGUpe3JldHVybiB0aGlzfWVuZChlKXt9aXNSZWNvcmRpbmcoKXtyZXR1cm4gZmFsc2V9cmVjb3JkRXhjZXB0aW9uKGUsdCl7fX10Lk5vblJlY29yZGluZ1NwYW49Tm9uUmVjb3JkaW5nU3Bhbn0sNjE0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDYwNyk7Y29uc3Qgbz1yKDQwMyk7Y29uc3QgaT1yKDEzOSk7Y29uc3QgYz1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKTtjbGFzcyBOb29wVHJhY2Vye3N0YXJ0U3BhbihlLHQscj1jLmFjdGl2ZSgpKXtjb25zdCBuPUJvb2xlYW4odD09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQucm9vdCk7aWYobil7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59Y29uc3Qgcz1yJiYoMCxhLmdldFNwYW5Db250ZXh0KShyKTtpZihpc1NwYW5Db250ZXh0KHMpJiYoMCxpLmlzU3BhbkNvbnRleHRWYWxpZCkocykpe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFuKHMpfWVsc2V7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59fXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtsZXQgbztsZXQgaTtsZXQgcztpZihhcmd1bWVudHMubGVuZ3RoPDIpe3JldHVybn1lbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGg9PT0yKXtzPXR9ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Myl7bz10O3M9cn1lbHNle289dDtpPXI7cz1ufWNvbnN0IHU9aSE9PW51bGwmJmkhPT12b2lkIDA/aTpjLmFjdGl2ZSgpO2NvbnN0IGw9dGhpcy5zdGFydFNwYW4oZSxvLHUpO2NvbnN0IGc9KDAsYS5zZXRTcGFuKSh1LGwpO3JldHVybiBjLndpdGgoZyxzLHVuZGVmaW5lZCxsKX19dC5Ob29wVHJhY2VyPU5vb3BUcmFjZXI7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dChlKXtyZXR1cm4gdHlwZW9mIGU9PT1cIm9iamVjdFwiJiZ0eXBlb2YgZVtcInNwYW5JZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VJZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VGbGFnc1wiXT09PVwibnVtYmVyXCJ9fSwxMjQ6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cig2MTQpO2NsYXNzIE5vb3BUcmFjZXJQcm92aWRlcntnZXRUcmFjZXIoZSx0LHIpe3JldHVybiBuZXcgbi5Ob29wVHJhY2VyfX10Lk5vb3BUcmFjZXJQcm92aWRlcj1Ob29wVHJhY2VyUHJvdmlkZXJ9LDEyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjb25zdCBhPW5ldyBuLk5vb3BUcmFjZXI7Y2xhc3MgUHJveHlUcmFjZXJ7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5fcHJvdmlkZXI9ZTt0aGlzLm5hbWU9dDt0aGlzLnZlcnNpb249cjt0aGlzLm9wdGlvbnM9bn1zdGFydFNwYW4oZSx0LHIpe3JldHVybiB0aGlzLl9nZXRUcmFjZXIoKS5zdGFydFNwYW4oZSx0LHIpfXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtjb25zdCBhPXRoaXMuX2dldFRyYWNlcigpO3JldHVybiBSZWZsZWN0LmFwcGx5KGEuc3RhcnRBY3RpdmVTcGFuLGEsYXJndW1lbnRzKX1fZ2V0VHJhY2VyKCl7aWYodGhpcy5fZGVsZWdhdGUpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZX1jb25zdCBlPXRoaXMuX3Byb3ZpZGVyLmdldERlbGVnYXRlVHJhY2VyKHRoaXMubmFtZSx0aGlzLnZlcnNpb24sdGhpcy5vcHRpb25zKTtpZighZSl7cmV0dXJuIGF9dGhpcy5fZGVsZWdhdGU9ZTtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9fXQuUHJveHlUcmFjZXI9UHJveHlUcmFjZXJ9LDg0NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMjUpO2NvbnN0IGE9cigxMjQpO2NvbnN0IG89bmV3IGEuTm9vcFRyYWNlclByb3ZpZGVyO2NsYXNzIFByb3h5VHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXt2YXIgYTtyZXR1cm4oYT10aGlzLmdldERlbGVnYXRlVHJhY2VyKGUsdCxyKSkhPT1udWxsJiZhIT09dm9pZCAwP2E6bmV3IG4uUHJveHlUcmFjZXIodGhpcyxlLHQscil9Z2V0RGVsZWdhdGUoKXt2YXIgZTtyZXR1cm4oZT10aGlzLl9kZWxlZ2F0ZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6b31zZXREZWxlZ2F0ZShlKXt0aGlzLl9kZWxlZ2F0ZT1lfWdldERlbGVnYXRlVHJhY2VyKGUsdCxyKXt2YXIgbjtyZXR1cm4obj10aGlzLl9kZWxlZ2F0ZSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmdldFRyYWNlcihlLHQscil9fXQuUHJveHlUcmFjZXJQcm92aWRlcj1Qcm94eVRyYWNlclByb3ZpZGVyfSw5OTY6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU2FtcGxpbmdEZWNpc2lvbj12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PVF9SRUNPUkRcIl09MF09XCJOT1RfUkVDT1JEXCI7ZVtlW1wiUkVDT1JEXCJdPTFdPVwiUkVDT1JEXCI7ZVtlW1wiUkVDT1JEX0FORF9TQU1QTEVEXCJdPTJdPVwiUkVDT1JEX0FORF9TQU1QTEVEXCJ9KShyPXQuU2FtcGxpbmdEZWNpc2lvbnx8KHQuU2FtcGxpbmdEZWNpc2lvbj17fSkpfSw2MDc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5nZXRTcGFuQ29udGV4dD10LnNldFNwYW5Db250ZXh0PXQuZGVsZXRlU3Bhbj10LnNldFNwYW49dC5nZXRBY3RpdmVTcGFuPXQuZ2V0U3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDc4MCk7Y29uc3QgYT1yKDQwMyk7Y29uc3Qgbz1yKDQ5MSk7Y29uc3QgaT0oMCxuLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBDb250ZXh0IEtleSBTUEFOXCIpO2Z1bmN0aW9uIGdldFNwYW4oZSl7cmV0dXJuIGUuZ2V0VmFsdWUoaSl8fHVuZGVmaW5lZH10LmdldFNwYW49Z2V0U3BhbjtmdW5jdGlvbiBnZXRBY3RpdmVTcGFuKCl7cmV0dXJuIGdldFNwYW4oby5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlU3Bhbj1nZXRBY3RpdmVTcGFuO2Z1bmN0aW9uIHNldFNwYW4oZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShpLHQpfXQuc2V0U3Bhbj1zZXRTcGFuO2Z1bmN0aW9uIGRlbGV0ZVNwYW4oZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUoaSl9dC5kZWxldGVTcGFuPWRlbGV0ZVNwYW47ZnVuY3Rpb24gc2V0U3BhbkNvbnRleHQoZSx0KXtyZXR1cm4gc2V0U3BhbihlLG5ldyBhLk5vblJlY29yZGluZ1NwYW4odCkpfXQuc2V0U3BhbkNvbnRleHQ9c2V0U3BhbkNvbnRleHQ7ZnVuY3Rpb24gZ2V0U3BhbkNvbnRleHQoZSl7dmFyIHQ7cmV0dXJuKHQ9Z2V0U3BhbihlKSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnNwYW5Db250ZXh0KCl9dC5nZXRTcGFuQ29udGV4dD1nZXRTcGFuQ29udGV4dH0sMzI1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VTdGF0ZUltcGw9dm9pZCAwO2NvbnN0IG49cig1NjQpO2NvbnN0IGE9MzI7Y29uc3Qgbz01MTI7Y29uc3QgaT1cIixcIjtjb25zdCBjPVwiPVwiO2NsYXNzIFRyYWNlU3RhdGVJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcDtpZihlKXRoaXMuX3BhcnNlKGUpfXNldChlLHQpe2NvbnN0IHI9dGhpcy5fY2xvbmUoKTtpZihyLl9pbnRlcm5hbFN0YXRlLmhhcyhlKSl7ci5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSl9ci5faW50ZXJuYWxTdGF0ZS5zZXQoZSx0KTtyZXR1cm4gcn11bnNldChlKXtjb25zdCB0PXRoaXMuX2Nsb25lKCk7dC5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSk7cmV0dXJuIHR9Z2V0KGUpe3JldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlLmdldChlKX1zZXJpYWxpemUoKXtyZXR1cm4gdGhpcy5fa2V5cygpLnJlZHVjZSgoKGUsdCk9PntlLnB1c2godCtjK3RoaXMuZ2V0KHQpKTtyZXR1cm4gZX0pLFtdKS5qb2luKGkpfV9wYXJzZShlKXtpZihlLmxlbmd0aD5vKXJldHVybjt0aGlzLl9pbnRlcm5hbFN0YXRlPWUuc3BsaXQoaSkucmV2ZXJzZSgpLnJlZHVjZSgoKGUsdCk9Pntjb25zdCByPXQudHJpbSgpO2NvbnN0IGE9ci5pbmRleE9mKGMpO2lmKGEhPT0tMSl7Y29uc3Qgbz1yLnNsaWNlKDAsYSk7Y29uc3QgaT1yLnNsaWNlKGErMSx0Lmxlbmd0aCk7aWYoKDAsbi52YWxpZGF0ZUtleSkobykmJigwLG4udmFsaWRhdGVWYWx1ZSkoaSkpe2Uuc2V0KG8saSl9ZWxzZXt9fXJldHVybiBlfSksbmV3IE1hcCk7aWYodGhpcy5faW50ZXJuYWxTdGF0ZS5zaXplPmEpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcChBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUuZW50cmllcygpKS5yZXZlcnNlKCkuc2xpY2UoMCxhKSl9fV9rZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5rZXlzKCkpLnJldmVyc2UoKX1fY2xvbmUoKXtjb25zdCBlPW5ldyBUcmFjZVN0YXRlSW1wbDtlLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAodGhpcy5faW50ZXJuYWxTdGF0ZSk7cmV0dXJuIGV9fXQuVHJhY2VTdGF0ZUltcGw9VHJhY2VTdGF0ZUltcGx9LDU2NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC52YWxpZGF0ZVZhbHVlPXQudmFsaWRhdGVLZXk9dm9pZCAwO2NvbnN0IHI9XCJbXzAtOWEtei0qL11cIjtjb25zdCBuPWBbYS16XSR7cn17MCwyNTV9YDtjb25zdCBhPWBbYS16MC05XSR7cn17MCwyNDB9QFthLXpdJHtyfXswLDEzfWA7Y29uc3Qgbz1uZXcgUmVnRXhwKGBeKD86JHtufXwke2F9KSRgKTtjb25zdCBpPS9eWyAtfl17MCwyNTV9WyEtfl0kLztjb25zdCBjPS8sfD0vO2Z1bmN0aW9uIHZhbGlkYXRlS2V5KGUpe3JldHVybiBvLnRlc3QoZSl9dC52YWxpZGF0ZUtleT12YWxpZGF0ZUtleTtmdW5jdGlvbiB2YWxpZGF0ZVZhbHVlKGUpe3JldHVybiBpLnRlc3QoZSkmJiFjLnRlc3QoZSl9dC52YWxpZGF0ZVZhbHVlPXZhbGlkYXRlVmFsdWV9LDk4OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlVHJhY2VTdGF0ZT12b2lkIDA7Y29uc3Qgbj1yKDMyNSk7ZnVuY3Rpb24gY3JlYXRlVHJhY2VTdGF0ZShlKXtyZXR1cm4gbmV3IG4uVHJhY2VTdGF0ZUltcGwoZSl9dC5jcmVhdGVUcmFjZVN0YXRlPWNyZWF0ZVRyYWNlU3RhdGV9LDQ3NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LklOVkFMSURfU1BBTl9DT05URVhUPXQuSU5WQUxJRF9UUkFDRUlEPXQuSU5WQUxJRF9TUEFOSUQ9dm9pZCAwO2NvbnN0IG49cig0NzUpO3QuSU5WQUxJRF9TUEFOSUQ9XCIwMDAwMDAwMDAwMDAwMDAwXCI7dC5JTlZBTElEX1RSQUNFSUQ9XCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9e3RyYWNlSWQ6dC5JTlZBTElEX1RSQUNFSUQsc3BhbklkOnQuSU5WQUxJRF9TUEFOSUQsdHJhY2VGbGFnczpuLlRyYWNlRmxhZ3MuTk9ORX19LDM1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuS2luZD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIklOVEVSTkFMXCJdPTBdPVwiSU5URVJOQUxcIjtlW2VbXCJTRVJWRVJcIl09MV09XCJTRVJWRVJcIjtlW2VbXCJDTElFTlRcIl09Ml09XCJDTElFTlRcIjtlW2VbXCJQUk9EVUNFUlwiXT0zXT1cIlBST0RVQ0VSXCI7ZVtlW1wiQ09OU1VNRVJcIl09NF09XCJDT05TVU1FUlwifSkocj10LlNwYW5LaW5kfHwodC5TcGFuS2luZD17fSkpfSwxMzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC53cmFwU3BhbkNvbnRleHQ9dC5pc1NwYW5Db250ZXh0VmFsaWQ9dC5pc1ZhbGlkU3BhbklkPXQuaXNWYWxpZFRyYWNlSWQ9dm9pZCAwO2NvbnN0IG49cig0NzYpO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89L14oWzAtOWEtZl17MzJ9KSQvaTtjb25zdCBpPS9eWzAtOWEtZl17MTZ9JC9pO2Z1bmN0aW9uIGlzVmFsaWRUcmFjZUlkKGUpe3JldHVybiBvLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfVFJBQ0VJRH10LmlzVmFsaWRUcmFjZUlkPWlzVmFsaWRUcmFjZUlkO2Z1bmN0aW9uIGlzVmFsaWRTcGFuSWQoZSl7cmV0dXJuIGkudGVzdChlKSYmZSE9PW4uSU5WQUxJRF9TUEFOSUR9dC5pc1ZhbGlkU3BhbklkPWlzVmFsaWRTcGFuSWQ7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dFZhbGlkKGUpe3JldHVybiBpc1ZhbGlkVHJhY2VJZChlLnRyYWNlSWQpJiZpc1ZhbGlkU3BhbklkKGUuc3BhbklkKX10LmlzU3BhbkNvbnRleHRWYWxpZD1pc1NwYW5Db250ZXh0VmFsaWQ7ZnVuY3Rpb24gd3JhcFNwYW5Db250ZXh0KGUpe3JldHVybiBuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKGUpfXQud3JhcFNwYW5Db250ZXh0PXdyYXBTcGFuQ29udGV4dH0sODQ3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNwYW5TdGF0dXNDb2RlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiVU5TRVRcIl09MF09XCJVTlNFVFwiO2VbZVtcIk9LXCJdPTFdPVwiT0tcIjtlW2VbXCJFUlJPUlwiXT0yXT1cIkVSUk9SXCJ9KShyPXQuU3BhblN0YXR1c0NvZGV8fCh0LlNwYW5TdGF0dXNDb2RlPXt9KSl9LDQ3NTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUZsYWdzPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9ORVwiXT0wXT1cIk5PTkVcIjtlW2VbXCJTQU1QTEVEXCJdPTFdPVwiU0FNUExFRFwifSkocj10LlRyYWNlRmxhZ3N8fCh0LlRyYWNlRmxhZ3M9e30pKX0sNTIxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlZFUlNJT049dm9pZCAwO3QuVkVSU0lPTj1cIjEuNi4wXCJ9fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHIpe3ZhciBuPXRbcl07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgYT10W3JdPXtleHBvcnRzOnt9fTt2YXIgbz10cnVlO3RyeXtlW3JdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO289ZmFsc2V9ZmluYWxseXtpZihvKWRlbGV0ZSB0W3JdfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciByPXt9OygoKT0+e3ZhciBlPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTtlLnRyYWNlPWUucHJvcGFnYXRpb249ZS5tZXRyaWNzPWUuZGlhZz1lLmNvbnRleHQ9ZS5JTlZBTElEX1NQQU5fQ09OVEVYVD1lLklOVkFMSURfVFJBQ0VJRD1lLklOVkFMSURfU1BBTklEPWUuaXNWYWxpZFNwYW5JZD1lLmlzVmFsaWRUcmFjZUlkPWUuaXNTcGFuQ29udGV4dFZhbGlkPWUuY3JlYXRlVHJhY2VTdGF0ZT1lLlRyYWNlRmxhZ3M9ZS5TcGFuU3RhdHVzQ29kZT1lLlNwYW5LaW5kPWUuU2FtcGxpbmdEZWNpc2lvbj1lLlByb3h5VHJhY2VyUHJvdmlkZXI9ZS5Qcm94eVRyYWNlcj1lLmRlZmF1bHRUZXh0TWFwU2V0dGVyPWUuZGVmYXVsdFRleHRNYXBHZXR0ZXI9ZS5WYWx1ZVR5cGU9ZS5jcmVhdGVOb29wTWV0ZXI9ZS5EaWFnTG9nTGV2ZWw9ZS5EaWFnQ29uc29sZUxvZ2dlcj1lLlJPT1RfQ09OVEVYVD1lLmNyZWF0ZUNvbnRleHRLZXk9ZS5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dm9pZCAwO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oMzY5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfX0pO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oNzgwKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZUNvbnRleHRLZXlcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmNyZWF0ZUNvbnRleHRLZXl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJST09UX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlJPT1RfQ09OVEVYVH19KTt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDk3Mik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJEaWFnQ29uc29sZUxvZ2dlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuRGlhZ0NvbnNvbGVMb2dnZXJ9fSk7dmFyIG89X19uY2N3cGNrX3JlcXVpcmVfXyg5NTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0xvZ0xldmVsXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5EaWFnTG9nTGV2ZWx9fSk7dmFyIGk9X19uY2N3cGNrX3JlcXVpcmVfXygxMDIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlTm9vcE1ldGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaS5jcmVhdGVOb29wTWV0ZXJ9fSk7dmFyIGM9X19uY2N3cGNrX3JlcXVpcmVfXyg5MDEpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVmFsdWVUeXBlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5WYWx1ZVR5cGV9fSk7dmFyIHM9X19uY2N3cGNrX3JlcXVpcmVfXygxOTQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBHZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwR2V0dGVyfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBTZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwU2V0dGVyfX0pO3ZhciB1PV9fbmNjd3Bja19yZXF1aXJlX18oMTI1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlByb3h5VHJhY2VyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdS5Qcm94eVRyYWNlcn19KTt2YXIgbD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclByb3ZpZGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5Qcm94eVRyYWNlclByb3ZpZGVyfX0pO3ZhciBnPV9fbmNjd3Bja19yZXF1aXJlX18oOTk2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNhbXBsaW5nRGVjaXNpb25cIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBnLlNhbXBsaW5nRGVjaXNpb259fSk7dmFyIHA9X19uY2N3cGNrX3JlcXVpcmVfXygzNTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU3BhbktpbmRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBwLlNwYW5LaW5kfX0pO3ZhciBkPV9fbmNjd3Bja19yZXF1aXJlX18oODQ3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5TdGF0dXNDb2RlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC5TcGFuU3RhdHVzQ29kZX19KTt2YXIgXz1fX25jY3dwY2tfcmVxdWlyZV9fKDQ3NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJUcmFjZUZsYWdzXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5UcmFjZUZsYWdzfX0pO3ZhciBmPV9fbmNjd3Bja19yZXF1aXJlX18oOTgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlVHJhY2VTdGF0ZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGYuY3JlYXRlVHJhY2VTdGF0ZX19KTt2YXIgYj1fX25jY3dwY2tfcmVxdWlyZV9fKDEzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1NwYW5Db250ZXh0VmFsaWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzU3BhbkNvbnRleHRWYWxpZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRUcmFjZUlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkVHJhY2VJZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRTcGFuSWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzVmFsaWRTcGFuSWR9fSk7dmFyIHY9X19uY2N3cGNrX3JlcXVpcmVfXyg0NzYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOSURcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTklEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9UUkFDRUlEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1RSQUNFSUR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1NQQU5fQ09OVEVYVFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9TUEFOX0NPTlRFWFR9fSk7Y29uc3QgTz1fX25jY3dwY2tfcmVxdWlyZV9fKDY3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNvbnRleHRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBPLmNvbnRleHR9fSk7Y29uc3QgUD1fX25jY3dwY2tfcmVxdWlyZV9fKDUwNik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkaWFnXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUC5kaWFnfX0pO2NvbnN0IE49X19uY2N3cGNrX3JlcXVpcmVfXyg4ODYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwibWV0cmljc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4ubWV0cmljc319KTtjb25zdCBTPV9fbmNjd3Bja19yZXF1aXJlX18oOTM5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3BhZ2F0aW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUy5wcm9wYWdhdGlvbn19KTtjb25zdCBDPV9fbmNjd3Bja19yZXF1aXJlX18oODQ1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInRyYWNlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQy50cmFjZX19KTtlW1wiZGVmYXVsdFwiXT17Y29udGV4dDpPLmNvbnRleHQsZGlhZzpQLmRpYWcsbWV0cmljczpOLm1ldHJpY3MscHJvcGFnYXRpb246Uy5wcm9wYWdhdGlvbix0cmFjZTpDLnRyYWNlfX0pKCk7bW9kdWxlLmV4cG9ydHM9cn0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js":
|
||
/*!**************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js ***!
|
||
\**************************************************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * @license React\n * react-server-dom-webpack-client.edge.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n true && function() {\n function _defineProperty(obj, key, value) {\n key in obj ? Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : obj[key] = value;\n return obj;\n }\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 return Object.prototype.toString.call(object).replace(/^\\[object (.*)\\]$/, function(m, p0) {\n return p0;\n });\n }\n function describeKeyForErrorMessage(key) {\n var encodedKey = JSON.stringify(key);\n return '\"' + key + '\"' === encodedKey ? key : encodedKey;\n }\n function describeValueForErrorMessage(value) {\n switch(typeof value){\n case \"string\":\n 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(parentReference, 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 reference = knownServerReferences.get(this);\n if (!reference) 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 !== reference.bound) {\n data = boundCache.get(reference);\n data || (data = encodeFormData(reference), boundCache.set(reference, data));\n if (\"rejected\" === data.status) throw data.reason;\n if (\"fulfilled\" !== data.status) throw data;\n reference = data.value;\n var prefixedData = new FormData();\n reference.forEach(function(value, key) {\n prefixedData.append(\"$ACTION_\" + identifierPrefix + \":\" + key, value);\n });\n data = prefixedData;\n reference = \"$ACTION_REF_\" + identifierPrefix;\n } else reference = \"$ACTION_ID_\" + reference.id;\n return {\n name: reference,\n method: \"POST\",\n encType: \"multipart/form-data\",\n data: data\n };\n }\n function isSignatureEqual(referenceId, numberOfBoundArgs) {\n var reference = knownServerReferences.get(this);\n if (!reference) 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 (reference.id !== referenceId) return !1;\n var boundPromise = reference.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=rsc://React/\" + encodeURIComponent(environmentName) + \"/\" + 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 registerServerReference(proxy, reference$jscomp$0, encodeFormAction) {\n Object.defineProperties(proxy, {\n $$FORM_ACTION: {\n value: void 0 === encodeFormAction ? defaultEncodeFormAction : function() {\n var reference = knownServerReferences.get(this);\n if (!reference) 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 = reference.bound;\n null === boundPromise && (boundPromise = Promise.resolve([]));\n return encodeFormAction(reference.id, boundPromise);\n }\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n });\n knownServerReferences.set(proxy, reference$jscomp$0);\n }\n function bind() {\n var newFn = FunctionBind.apply(this, arguments), reference = knownServerReferences.get(this);\n if (reference) {\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 !== reference.bound ? Promise.resolve(reference.bound).then(function(boundArgs) {\n return boundArgs.concat(args);\n }) : Promise.resolve(args);\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 knownServerReferences.set(newFn, {\n id: reference.id,\n bound: boundPromise\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 registerServerReference(action, {\n id: id,\n bound: bound\n }, 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 registerServerReference(action, {\n id: id,\n bound: null\n }, 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_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\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_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\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 ReactPromise(status, value, reason, response) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n this._response = response;\n this._debugInfo = null;\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 throw chunk;\n default:\n throw chunk.reason;\n }\n }\n function createPendingChunk(response) {\n return new ReactPromise(\"pending\", null, null, response);\n }\n function wakeChunk(listeners, value) {\n for(var i = 0; i < listeners.length; i++)(0, listeners[i])(value);\n }\n function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {\n switch(chunk.status){\n case \"fulfilled\":\n wakeChunk(resolveListeners, chunk.value);\n break;\n case \"pending\":\n case \"blocked\":\n if (chunk.value) for(var 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 && wakeChunk(rejectListeners, chunk.reason);\n }\n }\n function triggerErrorOnChunk(chunk, error) {\n if (\"pending\" !== chunk.status && \"blocked\" !== chunk.status) chunk.reason.error(error);\n else {\n var listeners = chunk.reason;\n chunk.status = \"rejected\";\n chunk.reason = error;\n null !== listeners && wakeChunk(listeners, error);\n }\n }\n function createResolvedIteratorResultChunk(response, value, done) {\n return new ReactPromise(\"resolved_model\", (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\", null, response);\n }\n function resolveIteratorResultChunk(chunk, value, done) {\n resolveModelChunk(chunk, (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\");\n }\n function resolveModelChunk(chunk, value) {\n if (\"pending\" !== chunk.status) chunk.reason.enqueueModel(value);\n else {\n var resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"resolved_model\";\n chunk.value = value;\n null !== resolveListeners && (initializeModelChunk(chunk), wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));\n }\n }\n function resolveModuleChunk(chunk, value) {\n if (\"pending\" === chunk.status || \"blocked\" === chunk.status) {\n var resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"resolved_module\";\n chunk.value = value;\n null !== resolveListeners && (initializeModuleChunk(chunk), wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));\n }\n }\n function initializeModelChunk(chunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n var resolvedModel = chunk.value;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n var value = JSON.parse(resolvedModel, chunk._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.value;\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(response, error) {\n response._chunks.forEach(function(chunk) {\n \"pending\" === chunk.status && triggerErrorOnChunk(chunk, error);\n });\n }\n function nullRefGetter() {\n return null;\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 = createPendingChunk(response), chunks.set(id, chunk));\n return chunk;\n }\n function waitForReference(referencedChunk, parentObject, key, response, map, path) {\n function fulfill(value) {\n for(var 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 if (\"fulfilled\" === value.status) value = value.value;\n else {\n path.splice(0, i - 1);\n value.then(fulfill, reject);\n return;\n }\n value = value[path[i]];\n }\n i = map(response, value, parentObject, key);\n parentObject[key] = i;\n \"\" === key && null === handler.value && (handler.value = i);\n if (parentObject[0] === REACT_ELEMENT_TYPE && \"object\" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE) switch(value = handler.value, key){\n case \"3\":\n value.props = i;\n break;\n case \"4\":\n value._owner = i;\n }\n handler.deps--;\n 0 === handler.deps && (i = handler.chunk, null !== i && \"blocked\" === i.status && (value = i.value, i.status = \"fulfilled\", i.value = handler.value, null !== value && wakeChunk(value, handler.value)));\n }\n function reject(error) {\n if (!handler.errored) {\n var blockedValue = handler.value;\n handler.errored = !0;\n handler.value = error;\n var chunk = handler.chunk;\n null !== chunk && \"blocked\" === chunk.status && (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE && (blockedValue = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n }, (chunk._debugInfo || (chunk._debugInfo = [])).push(blockedValue)), triggerErrorOnChunk(chunk, error));\n }\n }\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n };\n referencedChunk.then(fulfill, reject);\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);\n if (response = preloadModule(serverReference)) metaData.bound && (response = Promise.all([\n response,\n metaData.bound\n ]));\n else if (metaData.bound) response = Promise.resolve(metaData.bound);\n else return requireModule(serverReference);\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n };\n response.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 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 = error;\n var chunk = handler.chunk;\n null !== chunk && \"blocked\" === chunk.status && (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE && (blockedValue = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n }, (chunk._debugInfo || (chunk._debugInfo = [])).push(blockedValue)), triggerErrorOnChunk(chunk, error));\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;)if (value = value._payload, \"fulfilled\" === value.status) value = value.value;\n else return waitForReference(value, parentObject, key, response, map, reference.slice(i - 1));\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 default:\n return initializingHandler ? (initializingHandler.errored = !0, initializingHandler.value = id.reason) : initializingHandler = {\n parent: null,\n chunk: null,\n value: 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 extractIterator(response, model) {\n return model[Symbol.iterator]();\n }\n function createModel(response, model) {\n return model;\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 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 if (2 === value.length) return new Promise(function() {});\n parentObject = parseInt(value.slice(2), 16);\n return getChunk(response, parentObject);\n case \"S\":\n return Symbol.for(value.slice(2));\n case \"F\":\n return value = value.slice(2), getOutlinedModel(response, value, 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 value = value.slice(2), getOutlinedModel(response, value, parentObject, key, createMap);\n case \"W\":\n return value = value.slice(2), getOutlinedModel(response, value, parentObject, key, createSet);\n case \"B\":\n return value = value.slice(2), getOutlinedModel(response, value, parentObject, key, createBlob);\n case \"K\":\n return value = value.slice(2), getOutlinedModel(response, value, parentObject, key, createFormData);\n case \"Z\":\n return value = value.slice(2), getOutlinedModel(response, value, parentObject, key, resolveErrorDev);\n case \"i\":\n return value = value.slice(2), getOutlinedModel(response, value, 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 \"E\":\n try {\n return (0, eval)(value.slice(2));\n } catch (x) {\n return function() {};\n }\n case \"Y\":\n return 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 }), null;\n default:\n return value = value.slice(1), getOutlinedModel(response, value, 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) {\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 TextDecoder();\n this._fromJSON = null;\n this._rowLength = this._rowTag = this._rowID = this._rowState = 0;\n this._buffer = [];\n this._tempRefs = temporaryReferences;\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 this._debugFindSourceMapURL = findSourceMapURL;\n this._replayConsole = replayConsole;\n this._rootEnvironmentName = void 0 === environmentName ? \"Server\" : environmentName;\n this._fromJSON = createFromJSONCallback(this);\n }\n function resolveModel(response, id, model) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk ? resolveModelChunk(chunk, model) : chunks.set(id, new ReactPromise(\"resolved_model\", model, null, response));\n }\n function resolveText(response, id, text) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk && \"pending\" !== chunk.status ? chunk.reason.enqueueValue(text) : chunks.set(id, new ReactPromise(\"fulfilled\", text, null, response));\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) : chunks.set(id, new ReactPromise(\"fulfilled\", buffer, null, response));\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 var blockedChunk = chunk;\n blockedChunk.status = \"blocked\";\n } else blockedChunk = new ReactPromise(\"blocked\", null, null, response), chunks.set(id, blockedChunk);\n model.then(function() {\n return resolveModuleChunk(blockedChunk, clientReference);\n }, function(error) {\n return triggerErrorOnChunk(blockedChunk, error);\n });\n } else chunk ? resolveModuleChunk(chunk, clientReference) : chunks.set(id, new ReactPromise(\"resolved_module\", clientReference, null, response));\n }\n function resolveStream(response, id, stream, controller) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk ? \"pending\" === chunk.status && (response = chunk.value, chunk.status = \"fulfilled\", chunk.value = stream, chunk.reason = controller, null !== response && wakeChunk(response, chunk.value)) : chunks.set(id, new ReactPromise(\"fulfilled\", stream, controller, response));\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 = new ReactPromise(\"resolved_model\", json, null, response);\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(_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 = _defineProperty({}, 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, response);\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, response);\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(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(buffer[nextWriteIndex], value, !0);\n for(nextWriteIndex++; nextWriteIndex < buffer.length;)resolveIteratorResultChunk(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(buffer[nextWriteIndex++], error);\n }\n });\n }\n function stopStream(response, id, row) {\n (response = response._chunks.get(id)) && \"fulfilled\" === response.status && response.reason.close(\"\" === row ? '\"$undefined\"' : row);\n }\n function resolveErrorDev(response, errorInfo) {\n var env = errorInfo.env;\n errorInfo = buildFakeCallStack(response, errorInfo.stack, env, 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.environmentName = env;\n return response;\n }\n function resolveHint(response, code, model) {\n response = JSON.parse(model, response._fromJSON);\n model = ReactDOMSharedInternals.d;\n switch(code){\n case \"D\":\n model.D(response);\n break;\n case \"C\":\n \"string\" === typeof response ? model.C(response) : model.C(response[0], response[1]);\n break;\n case \"L\":\n code = response[0];\n var as = response[1];\n 3 === response.length ? model.L(code, as, response[2]) : model.L(code, as);\n break;\n case \"m\":\n \"string\" === typeof response ? model.m(response) : model.m(response[0], response[1]);\n break;\n case \"X\":\n \"string\" === typeof response ? model.X(response) : model.X(response[0], response[1]);\n break;\n case \"S\":\n \"string\" === typeof response ? model.S(response) : model.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 ? model.M(response) : model.M(response[0], response[1]);\n }\n }\n function createFakeFunction(name, filename, sourceMap, line, col, environmentName) {\n name || (name = \"<anonymous>\");\n var encodedName = JSON.stringify(name);\n 1 >= line ? (line = encodedName.length + 7, col = \"({\" + encodedName + \":_=>\" + \" \".repeat(col < line ? 0 : col - line) + \"_()})\\n/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\") : col = \"/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\" + \"\\n\".repeat(line - 2) + \"({\" + encodedName + \":_=>\\n\" + \" \".repeat(1 > col ? 0 : col - 1) + \"_()})\";\n filename.startsWith(\"/\") && (filename = \"file://\" + filename);\n sourceMap ? (col += \"\\n//# sourceURL=rsc://React/\" + encodeURIComponent(environmentName) + \"/\" + encodeURI(filename) + \"?\" + fakeFunctionIdx++, col += \"\\n//# sourceMappingURL=\" + sourceMap) : col = filename ? col + (\"\\n//# sourceURL=\" + encodeURI(filename)) : col + \"\\n//# sourceURL=<anonymous>\";\n try {\n var fn = (0, eval)(col)[name];\n } catch (x) {\n fn = function(_) {\n return _();\n };\n }\n return fn;\n }\n function buildFakeCallStack(response, stack, environmentName, innerCall) {\n for(var i = 0; i < stack.length; i++){\n var frame = stack[i], frameKey = frame.join(\"-\") + \"-\" + environmentName, fn = fakeFunctionCache.get(frameKey);\n if (void 0 === fn) {\n fn = frame[0];\n var filename = frame[1], line = frame[2];\n frame = frame[3];\n var findSourceMapURL = response._debugFindSourceMapURL;\n findSourceMapURL = findSourceMapURL ? findSourceMapURL(filename, environmentName) : null;\n fn = createFakeFunction(fn, filename, findSourceMapURL, line, 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 fakeJSXCallSite() {\n return Error(\"react-stack-top-frame\");\n }\n function initializeFakeStack(response, debugInfo) {\n void 0 === debugInfo.debugStack && (null != debugInfo.stack && (debugInfo.debugStack = createFakeJSXCallStackInDEV(response, debugInfo.stack, null == debugInfo.env ? \"\" : debugInfo.env)), null != debugInfo.owner && initializeFakeStack(response, debugInfo.owner));\n }\n function resolveDebugInfo(response, id, debugInfo) {\n null === debugInfo.owner && null != response._debugRootOwner ? (debugInfo.owner = response._debugRootOwner, debugInfo.debugStack = response._debugRootStack) : initializeFakeStack(response, debugInfo);\n response = getChunk(response, id);\n (response._debugInfo || (response._debugInfo = [])).push(debugInfo);\n }\n function getCurrentStackInDEV() {\n return \"\";\n }\n function resolveConsoleEntry(response, value) {\n if (response._replayConsole) {\n var payload = JSON.parse(value, response._fromJSON);\n value = payload[0];\n var stackTrace = payload[1], owner = payload[2], env = payload[3];\n payload = payload.slice(4);\n replayConsoleWithCallStackInDEV(response, value, stackTrace, owner, env, payload);\n }\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 _i2 = i = 0; _i2 < l; _i2++){\n var chunk = buffer[_i2];\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 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 resolveHint(response, row[0], row.slice(1));\n break;\n case 69:\n row = JSON.parse(row);\n tag = resolveErrorDev(response, row);\n tag.digest = row.digest;\n row = response._chunks;\n var chunk = row.get(id);\n chunk ? triggerErrorOnChunk(chunk, tag) : row.set(id, new ReactPromise(\"rejected\", null, tag, response));\n break;\n case 84:\n resolveText(response, id, row);\n break;\n case 68:\n tag = new ReactPromise(\"resolved_model\", row, null, response);\n initializeModelChunk(tag);\n \"fulfilled\" === tag.status ? resolveDebugInfo(response, id, tag.value) : tag.then(function(v) {\n return resolveDebugInfo(response, id, v);\n }, function() {});\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 stopStream(response, id, row);\n break;\n default:\n resolveModel(response, id, row);\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) if (key = value[4], value = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: value[1],\n key: value[2],\n props: value[3],\n _owner: null === key ? response._debugRootOwner : key\n }, Object.defineProperty(value, \"ref\", {\n enumerable: !1,\n get: nullRefGetter\n }), value._store = {}, Object.defineProperty(value._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 1\n }), Object.defineProperty(value, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n }), null !== initializingHandler) {\n var handler = initializingHandler;\n initializingHandler = handler.parent;\n handler.errored ? (key = new ReactPromise(\"rejected\", null, handler.value, response), value = {\n name: getComponentNameFromType(value.type) || \"\",\n owner: value._owner\n }, key._debugInfo = [\n value\n ], value = createLazyChunkWrapper(key)) : 0 < handler.deps && (key = new ReactPromise(\"blocked\", null, null, response), handler.value = value, handler.chunk = key, value = Object.freeze.bind(Object, value.props), key.then(value, value), value = createLazyChunkWrapper(key));\n } else Object.freeze(value.props);\n return value;\n }\n return value;\n };\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 function createResponseFromOptions(options) {\n return new ResponseInstance(options.serverConsumerManifest.moduleMap, options.serverConsumerManifest.serverModuleMap, options.serverConsumerManifest.moduleLoading, noServerCall, 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);\n }\n function startReadingFromStream(response, stream) {\n function progress(_ref) {\n var value = _ref.value;\n if (_ref.done) reportGlobalError(response, Error(\"Connection closed.\"));\n else {\n var i = 0, rowState = response._rowState;\n _ref = response._rowID;\n for(var rowTag = response._rowTag, rowLength = response._rowLength, buffer = response._buffer, chunkLength = value.length; i < chunkLength;){\n var lastIdx = -1;\n switch(rowState){\n case 0:\n lastIdx = value[i++];\n 58 === lastIdx ? rowState = 1 : _ref = _ref << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 1:\n rowState = value[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 = value[i++];\n 44 === lastIdx ? rowState = 4 : rowLength = rowLength << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 3:\n lastIdx = value.indexOf(10, i);\n break;\n case 4:\n lastIdx = i + rowLength, lastIdx > value.length && (lastIdx = -1);\n }\n var offset = value.byteOffset + i;\n if (-1 < lastIdx) rowLength = new Uint8Array(value.buffer, offset, lastIdx - i), processFullBinaryRow(response, _ref, rowTag, buffer, rowLength), i = lastIdx, 3 === rowState && i++, rowLength = _ref = rowTag = rowState = 0, buffer.length = 0;\n else {\n value = new Uint8Array(value.buffer, offset, value.byteLength - i);\n buffer.push(value);\n rowLength -= value.byteLength;\n break;\n }\n }\n response._rowState = rowState;\n response._rowID = _ref;\n response._rowTag = rowTag;\n response._rowLength = rowLength;\n return reader.read().then(progress).catch(error);\n }\n }\n function error(e) {\n reportGlobalError(response, e);\n }\n var reader = stream.getReader();\n reader.read().then(progress).catch(error);\n }\n var 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\");\n Symbol.for(\"react.provider\");\n var 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\"), 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\");\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 switch(this.status){\n case \"resolved_model\":\n initializeModelChunk(this);\n break;\n case \"resolved_module\":\n initializeModuleChunk(this);\n }\n switch(this.status){\n case \"fulfilled\":\n resolve(this.value);\n break;\n case \"pending\":\n case \"blocked\":\n resolve && (null === this.value && (this.value = []), this.value.push(resolve));\n reject && (null === this.reason && (this.reason = []), this.reason.push(reject));\n break;\n default:\n reject && reject(this.reason);\n }\n };\n var initializingHandler = null, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, createFakeJSXCallStack = {\n \"react-stack-bottom-frame\": function(response, stack, environmentName) {\n return buildFakeCallStack(response, stack, environmentName, fakeJSXCallSite)();\n }\n }, createFakeJSXCallStackInDEV = createFakeJSXCallStack[\"react-stack-bottom-frame\"].bind(createFakeJSXCallStack), replayConsoleWithCallStack = {\n \"react-stack-bottom-frame\": function(response, methodName, stackTrace, owner, env, args) {\n var prevStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;\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(args));\n break a;\n case \"assert\":\n offset = 1;\n }\n var newArgs = args.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, JSCompiler_inline_result);\n null != owner && initializeFakeStack(response, owner);\n var rootTask = getRootTask(response, env);\n null != rootTask ? rootTask.run(callStack) : callStack();\n } finally{\n 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 getChunk(response, 0);\n };\n exports.createFromReadableStream = function(stream, options) {\n options = createResponseFromOptions(options);\n startReadingFromStream(options, stream);\n return getChunk(options, 0);\n };\n exports.createServerReference = function(id) {\n return createServerReference$1(id, noServerCall);\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}();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5lZGdlLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztDQVFDLEdBRVk7QUFDYixLQW1CRyxJQWxCRDtJQUNFLFNBQVNBLGdCQUFnQkMsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEtBQUs7UUFDdENELE9BQU9ELE1BQ0hHLE9BQU9DLGNBQWMsQ0FBQ0osS0FBS0MsS0FBSztZQUM5QkMsT0FBT0E7WUFDUEcsWUFBWSxDQUFDO1lBQ2JDLGNBQWMsQ0FBQztZQUNmQyxVQUFVLENBQUM7UUFDYixLQUNDUCxHQUFHLENBQUNDLElBQUksR0FBR0M7UUFDaEIsT0FBT0Y7SUFDVDtJQUNBLFNBQVNRLHVCQUF1QkMsYUFBYSxFQUFFQyxRQUFRO1FBQ3JELElBQUlELGVBQWU7WUFDakIsSUFBSUUsZ0JBQWdCRixhQUFhLENBQUNDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDOUMsSUFBS0QsZ0JBQWdCRSxpQkFBaUJBLGFBQWEsQ0FBQ0QsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUM5REMsZ0JBQWdCRixjQUFjRyxJQUFJO2lCQUMvQjtnQkFDSEgsZ0JBQWdCRSxpQkFBaUJBLGFBQWEsQ0FBQyxJQUFJO2dCQUNuRCxJQUFJLENBQUNGLGVBQ0gsTUFBTUksTUFDSixnQ0FDRUgsUUFBUSxDQUFDLEVBQUUsR0FDWDtnQkFFTkMsZ0JBQWdCRCxRQUFRLENBQUMsRUFBRTtZQUM3QjtZQUNBLE9BQU8sTUFBTUEsU0FBU0ksTUFBTSxHQUN4QjtnQkFBQ0wsY0FBY00sRUFBRTtnQkFBRU4sY0FBY08sTUFBTTtnQkFBRUw7Z0JBQWU7YUFBRSxHQUMxRDtnQkFBQ0YsY0FBY00sRUFBRTtnQkFBRU4sY0FBY08sTUFBTTtnQkFBRUw7YUFBYztRQUM3RDtRQUNBLE9BQU9EO0lBQ1Q7SUFDQSxTQUFT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SUEsT0FBT0MsT0FBTyxFQUFFRixNQUFNQyxPQUFPN2MsTUFBTTtxQkFDbEM7b0JBQ0gsSUFBSStjLFdBQVc7d0JBQ2JILE1BQU1DLE9BQU83YyxNQUFNO3dCQUNuQjZjLE9BQU9HLG1CQUFtQixDQUFDLFNBQVNEO29CQUN0QztvQkFDQUYsT0FBT0ksZ0JBQWdCLENBQUMsU0FBU0Y7Z0JBQ25DO1lBQ0Y7UUFDRjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGNvbXBpbGVkXFxyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2tcXGNqc1xccmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5lZGdlLmRldmVsb3BtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LXNlcnZlci1kb20td2VicGFjay1jbGllbnQuZWRnZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gICAgICBrZXkgaW4gb2JqXG4gICAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICAgICAgICB3cml0YWJsZTogITBcbiAgICAgICAgICB9KVxuICAgICAgICA6IChvYmpba2V5XSA9IHZhbHVlKTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVDbGllbnRSZWZlcmVuY2UoYnVuZGxlckNvbmZpZywgbWV0YWRhdGEpIHtcbiAgICAgIGlmIChidW5kbGVyQ29uZmlnKSB7XG4gICAgICAgIHZhciBtb2R1bGVFeHBvcnRzID0gYnVuZGxlckNvbmZpZ1ttZXRhZGF0YVswXV07XG4gICAgICAgIGlmICgoYnVuZGxlckNvbmZpZyA9IG1vZHVsZUV4cG9ydHMgJiYgbW9kdWxlRXhwb3J0c1ttZXRhZGF0YVsyXV0pKVxuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBidW5kbGVyQ29uZmlnLm5hbWU7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGJ1bmRsZXJDb25maWcgPSBtb2R1bGVFeHBvcnRzICYmIG1vZHVsZUV4cG9ydHNbXCIqXCJdO1xuICAgICAgICAgIGlmICghYnVuZGxlckNvbmZpZylcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSBcIicgK1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhWzBdICtcbiAgICAgICAgICAgICAgICAnXCIgaW4gdGhlIFJlYWN0IFNlcnZlciBDb25zdW1lciBNYW5pZmVzdC4gVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUgUmVhY3QgU2VydmVyIENvbXBvbmVudHMgYnVuZGxlci4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBtZXRhZGF0YVsyXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gNCA9PT0gbWV0YWRhdGEubGVuZ3RoXG4gICAgICAgICAgPyBbYnVuZGxlckNvbmZpZy5pZCwgYnVuZGxlckNvbmZpZy5jaHVua3MsIG1vZHVsZUV4cG9ydHMsIDFdXG4gICAgICAgICAgOiBbYnVuZGxlckNvbmZpZy5pZCwgYnVuZGxlckNvbmZpZy5jaHVua3MsIG1vZHVsZUV4cG9ydHNdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1ldGFkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlU2VydmVyUmVmZXJlbmNlKGJ1bmRsZXJDb25maWcsIGlkKSB7XG4gICAgICB2YXIgbmFtZSA9IFwiXCIsXG4gICAgICAgIHJlc29sdmVkTW9kdWxlRGF0YSA9IGJ1bmRsZXJDb25maWdbaWRdO1xuICAgICAgaWYgKHJlc29sdmVkTW9kdWxlRGF0YSkgbmFtZSA9IHJlc29sdmVkTW9kdWxlRGF0YS5uYW1lO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBpZHggPSBpZC5sYXN0SW5kZXhPZihcIiNcIik7XG4gICAgICAgIC0xICE9PSBpZHggJiZcbiAgICAgICAgICAoKG5hbWUgPSBpZC5zbGljZShpZHggKyAxKSksXG4gICAgICAgICAgKHJlc29sdmVkTW9kdWxlRGF0YSA9IGJ1bmRsZXJDb25maWdbaWQuc2xpY2UoMCwgaWR4KV0pKTtcbiAgICAgICAgaWYgKCFyZXNvbHZlZE1vZHVsZURhdGEpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSBcIicgK1xuICAgICAgICAgICAgICBpZCArXG4gICAgICAgICAgICAgICdcIiBpbiB0aGUgUmVhY3QgU2VydmVyIE1hbmlmZXN0LiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBidW5kbGVyLidcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVkTW9kdWxlRGF0YS5hc3luY1xuICAgICAgICA/IFtyZXNvbHZlZE1vZHVsZURhdGEuaWQsIHJlc29sdmVkTW9kdWxlRGF0YS5jaHVua3MsIG5hbWUsIDFdXG4gICAgICAgIDogW3Jlc29sdmVkTW9kdWxlRGF0YS5pZCwgcmVzb2x2ZWRNb2R1bGVEYXRhLmNodW5rcywgbmFtZV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVpcmVBc3luY01vZHVsZShpZCkge1xuICAgICAgdmFyIHByb21pc2UgPSBnbG9iYWxUaGlzLl9fbmV4dF9yZXF1aXJlX18oaWQpO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHByb21pc2UudGhlbiB8fCBcImZ1bGZpbGxlZFwiID09PSBwcm9taXNlLnN0YXR1cylcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBwcm9taXNlLnRoZW4oXG4gICAgICAgIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICBwcm9taXNlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICBwcm9taXNlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgICBwcm9taXNlLnJlYXNvbiA9IHJlYXNvbjtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpZ25vcmVSZWplY3QoKSB7fVxuICAgIGZ1bmN0aW9uIHByZWxvYWRNb2R1bGUobWV0YWRhdGEpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBjaHVua3MgPSBtZXRhZGF0YVsxXSwgcHJvbWlzZXMgPSBbXSwgaSA9IDA7XG4gICAgICAgIGkgPCBjaHVua3MubGVuZ3RoO1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIGNodW5rSWQgPSBjaHVua3NbaSsrXTtcbiAgICAgICAgY2h1bmtzW2krK107XG4gICAgICAgIHZhciBlbnRyeSA9IGNodW5rQ2FjaGUuZ2V0KGNodW5rSWQpO1xuICAgICAgICBpZiAodm9pZCAwID09PSBlbnRyeSkge1xuICAgICAgICAgIGVudHJ5ID0gX193ZWJwYWNrX2NodW5rX2xvYWRfXyhjaHVua0lkKTtcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKGVudHJ5KTtcbiAgICAgICAgICB2YXIgcmVzb2x2ZSA9IGNodW5rQ2FjaGUuc2V0LmJpbmQoY2h1bmtDYWNoZSwgY2h1bmtJZCwgbnVsbCk7XG4gICAgICAgICAgZW50cnkudGhlbihyZXNvbHZlLCBpZ25vcmVSZWplY3QpO1xuICAgICAgICAgIGNodW5rQ2FjaGUuc2V0KGNodW5rSWQsIGVudHJ5KTtcbiAgICAgICAgfSBlbHNlIG51bGwgIT09IGVudHJ5ICYmIHByb21pc2VzLnB1c2goZW50cnkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDQgPT09IG1ldGFkYXRhLmxlbmd0aFxuICAgICAgICA/IDAgPT09IHByb21pc2VzLmxlbmd0aFxuICAgICAgICAgID8gcmVxdWlyZUFzeW5jTW9kdWxlKG1ldGFkYXRhWzBdKVxuICAgICAgICAgIDogUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVxdWlyZUFzeW5jTW9kdWxlKG1ldGFkYXRhWzBdKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIDogMCA8IHByb21pc2VzLmxlbmd0aFxuICAgICAgICAgID8gUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXF1aXJlTW9kdWxlKG1ldGFkYXRhKSB7XG4gICAgICB2YXIgbW9kdWxlRXhwb3J0cyA9IGdsb2JhbFRoaXMuX19uZXh0X3JlcXVpcmVfXyhtZXRhZGF0YVswXSk7XG4gICAgICBpZiAoNCA9PT0gbWV0YWRhdGEubGVuZ3RoICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1vZHVsZUV4cG9ydHMudGhlbilcbiAgICAgICAgaWYgKFwiZnVsZmlsbGVkXCIgPT09IG1vZHVsZUV4cG9ydHMuc3RhdHVzKVxuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBtb2R1bGVFeHBvcnRzLnZhbHVlO1xuICAgICAgICBlbHNlIHRocm93IG1vZHVsZUV4cG9ydHMucmVhc29uO1xuICAgICAgcmV0dXJuIFwiKlwiID09PSBtZXRhZGF0YVsyXVxuICAgICAgICA/IG1vZHVsZUV4cG9ydHNcbiAgICAgICAgOiBcIlwiID09PSBtZXRhZGF0YVsyXVxuICAgICAgICAgID8gbW9kdWxlRXhwb3J0cy5fX2VzTW9kdWxlXG4gICAgICAgICAgICA/IG1vZHVsZUV4cG9ydHMuZGVmYXVsdFxuICAgICAgICAgICAgOiBtb2R1bGVFeHBvcnRzXG4gICAgICAgICAgOiBtb2R1bGVFeHBvcnRzW21ldGFkYXRhWzJdXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlcGFyZURlc3RpbmF0aW9uV2l0aENodW5rcyhcbiAgICAgIG1vZHVsZUxvYWRpbmcsXG4gICAgICBjaHVua3MsXG4gICAgICBub25jZSRqc2NvbXAkMFxuICAgICkge1xuICAgICAgaWYgKG51bGwgIT09IG1vZHVsZUxvYWRpbmcpXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY2h1bmtzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgICAgdmFyIG5vbmNlID0gbm9uY2UkanNjb21wJDAsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5kLFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQwID0gSlNDb21waWxlcl90ZW1wX2NvbnN0LlgsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDEgPSBtb2R1bGVMb2FkaW5nLnByZWZpeCArIGNodW5rc1tpXTtcbiAgICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gbW9kdWxlTG9hZGluZy5jcm9zc09yaWdpbjtcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPVxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgICA/IFwidXNlLWNyZWRlbnRpYWxzXCIgPT09IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgICAgID8gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgICAgIDogdm9pZCAwO1xuICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdCRqc2NvbXAkMC5jYWxsKFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0LFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQxLFxuICAgICAgICAgICAgeyBjcm9zc09yaWdpbjogSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LCBub25jZTogbm9uY2UgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgICBpZiAobnVsbCA9PT0gbWF5YmVJdGVyYWJsZSB8fCBcIm9iamVjdFwiICE9PSB0eXBlb2YgbWF5YmVJdGVyYWJsZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBtYXliZUl0ZXJhYmxlID1cbiAgICAgICAgKE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0pIHx8XG4gICAgICAgIG1heWJlSXRlcmFibGVbXCJAQGl0ZXJhdG9yXCJdO1xuICAgICAgcmV0dXJuIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1heWJlSXRlcmFibGUgPyBtYXliZUl0ZXJhYmxlIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNPYmplY3RQcm90b3R5cGUob2JqZWN0KSB7XG4gICAgICBpZiAoIW9iamVjdCkgcmV0dXJuICExO1xuICAgICAgdmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG4gICAgICBpZiAob2JqZWN0ID09PSBPYmplY3RQcm90b3R5cGUpIHJldHVybiAhMDtcbiAgICAgIGlmIChnZXRQcm90b3R5cGVPZihvYmplY3QpKSByZXR1cm4gITE7XG4gICAgICBvYmplY3QgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspXG4gICAgICAgIGlmICghKG9iamVjdFtpXSBpbiBPYmplY3RQcm90b3R5cGUpKSByZXR1cm4gITE7XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU2ltcGxlT2JqZWN0KG9iamVjdCkge1xuICAgICAgaWYgKCFpc09iamVjdFByb3RvdHlwZShnZXRQcm90b3R5cGVPZihvYmplY3QpKSkgcmV0dXJuICExO1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIG5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSwgaSA9IDA7XG4gICAgICAgIGkgPCBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKSB7XG4gICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIG5hbWVzW2ldKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFkZXNjcmlwdG9yIHx8XG4gICAgICAgICAgKCFkZXNjcmlwdG9yLmVudW1lcmFibGUgJiZcbiAgICAgICAgICAgICgoXCJrZXlcIiAhPT0gbmFtZXNbaV0gJiYgXCJyZWZcIiAhPT0gbmFtZXNbaV0pIHx8XG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGRlc2NyaXB0b3IuZ2V0KSlcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2JqZWN0TmFtZShvYmplY3QpIHtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nXG4gICAgICAgIC5jYWxsKG9iamVjdClcbiAgICAgICAgLnJlcGxhY2UoL15cXFtvYmplY3QgKC4qKVxcXSQvLCBmdW5jdGlvbiAobSwgcDApIHtcbiAgICAgICAgICByZXR1cm4gcDA7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUtleUZvckVycm9yTWVzc2FnZShrZXkpIHtcbiAgICAgIHZhciBlbmNvZGVkS2V5ID0gSlNPTi5zdHJpbmdpZnkoa2V5KTtcbiAgICAgIHJldHVybiAnXCInICsga2V5ICsgJ1wiJyA9PT0gZW5jb2RlZEtleSA/IGtleSA6IGVuY29kZWRLZXk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UodmFsdWUpIHtcbiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAxMCA+PSB2YWx1ZS5sZW5ndGggPyB2YWx1ZSA6IHZhbHVlLnNsaWNlKDAsIDEwKSArIFwiLi4uXCJcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKHZhbHVlKSkgcmV0dXJuIFwiWy4uLl1cIjtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gdmFsdWUgJiYgdmFsdWUuJCR0eXBlb2YgPT09IENMSUVOVF9SRUZFUkVOQ0VfVEFHKVxuICAgICAgICAgICAgcmV0dXJuIFwiY2xpZW50XCI7XG4gICAgICAgICAgdmFsdWUgPSBvYmplY3ROYW1lKHZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gXCJPYmplY3RcIiA9PT0gdmFsdWUgPyBcInsuLi59XCIgOiB2YWx1ZTtcbiAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLiQkdHlwZW9mID09PSBDTElFTlRfUkVGRVJFTkNFX1RBR1xuICAgICAgICAgICAgPyBcImNsaWVudFwiXG4gICAgICAgICAgICA6ICh2YWx1ZSA9IHZhbHVlLmRpc3BsYXlOYW1lIHx8IHZhbHVlLm5hbWUpXG4gICAgICAgICAgICAgID8gXCJmdW5jdGlvbiBcIiArIHZhbHVlXG4gICAgICAgICAgICAgIDogXCJmdW5jdGlvblwiO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIHR5cGU7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlLnJlbmRlcik7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlLnR5cGUpO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgdmFyIHBheWxvYWQgPSB0eXBlLl9wYXlsb2FkO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuX2luaXQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlKHBheWxvYWQpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShvYmplY3RPckFycmF5LCBleHBhbmRlZE5hbWUpIHtcbiAgICAgIHZhciBvYmpLaW5kID0gb2JqZWN0TmFtZShvYmplY3RPckFycmF5KTtcbiAgICAgIGlmIChcIk9iamVjdFwiICE9PSBvYmpLaW5kICYmIFwiQXJyYXlcIiAhPT0gb2JqS2luZCkgcmV0dXJuIG9iaktpbmQ7XG4gICAgICB2YXIgc3RhcnQgPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gMDtcbiAgICAgIGlmIChpc0FycmF5SW1wbChvYmplY3RPckFycmF5KSlcbiAgICAgICAgaWYgKGpzeENoaWxkcmVuUGFyZW50cy5oYXMob2JqZWN0T3JBcnJheSkpIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGpzeENoaWxkcmVuUGFyZW50cy5nZXQob2JqZWN0T3JBcnJheSk7XG4gICAgICAgICAgb2JqS2luZCA9IFwiPFwiICsgZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlKSArIFwiPlwiO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0T3JBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gb2JqZWN0T3JBcnJheVtpXTtcbiAgICAgICAgICAgIHZhbHVlID1cbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHZhbHVlXG4gICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgIDogXCJvYmplY3RcIiA9PT0gdHlwZW9mIHZhbHVlICYmIG51bGwgIT09IHZhbHVlXG4gICAgICAgICAgICAgICAgICA/IFwie1wiICsgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodmFsdWUpICsgXCJ9XCJcbiAgICAgICAgICAgICAgICAgIDogXCJ7XCIgKyBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKHZhbHVlKSArIFwifVwiO1xuICAgICAgICAgICAgXCJcIiArIGkgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICAgICAgICA/ICgoc3RhcnQgPSBvYmpLaW5kLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgKGxlbmd0aCA9IHZhbHVlLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgKG9iaktpbmQgKz0gdmFsdWUpKVxuICAgICAgICAgICAgICA6IChvYmpLaW5kID1cbiAgICAgICAgICAgICAgICAgIDE1ID4gdmFsdWUubGVuZ3RoICYmIDQwID4gb2JqS2luZC5sZW5ndGggKyB2YWx1ZS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyBvYmpLaW5kICsgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBvYmpLaW5kICsgXCJ7Li4ufVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqS2luZCArPSBcIjwvXCIgKyBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUpICsgXCI+XCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqS2luZCA9IFwiW1wiO1xuICAgICAgICAgIGZvciAodHlwZSA9IDA7IHR5cGUgPCBvYmplY3RPckFycmF5Lmxlbmd0aDsgdHlwZSsrKVxuICAgICAgICAgICAgMCA8IHR5cGUgJiYgKG9iaktpbmQgKz0gXCIsIFwiKSxcbiAgICAgICAgICAgICAgKGkgPSBvYmplY3RPckFycmF5W3R5cGVdKSxcbiAgICAgICAgICAgICAgKGkgPVxuICAgICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBpICYmIG51bGwgIT09IGlcbiAgICAgICAgICAgICAgICAgID8gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UoaSlcbiAgICAgICAgICAgICAgICAgIDogZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZShpKSksXG4gICAgICAgICAgICAgIFwiXCIgKyB0eXBlID09PSBleHBhbmRlZE5hbWVcbiAgICAgICAgICAgICAgICA/ICgoc3RhcnQgPSBvYmpLaW5kLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAobGVuZ3RoID0gaS5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgKG9iaktpbmQgKz0gaSkpXG4gICAgICAgICAgICAgICAgOiAob2JqS2luZCA9XG4gICAgICAgICAgICAgICAgICAgIDEwID4gaS5sZW5ndGggJiYgNDAgPiBvYmpLaW5kLmxlbmd0aCArIGkubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgPyBvYmpLaW5kICsgaVxuICAgICAgICAgICAgICAgICAgICAgIDogb2JqS2luZCArIFwiLi4uXCIpO1xuICAgICAgICAgIG9iaktpbmQgKz0gXCJdXCI7XG4gICAgICAgIH1cbiAgICAgIGVsc2UgaWYgKG9iamVjdE9yQXJyYXkuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSlcbiAgICAgICAgb2JqS2luZCA9IFwiPFwiICsgZGVzY3JpYmVFbGVtZW50VHlwZShvYmplY3RPckFycmF5LnR5cGUpICsgXCIvPlwiO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChvYmplY3RPckFycmF5LiQkdHlwZW9mID09PSBDTElFTlRfUkVGRVJFTkNFX1RBRykgcmV0dXJuIFwiY2xpZW50XCI7XG4gICAgICAgIGlmIChqc3hQcm9wc1BhcmVudHMuaGFzKG9iamVjdE9yQXJyYXkpKSB7XG4gICAgICAgICAgb2JqS2luZCA9IGpzeFByb3BzUGFyZW50cy5nZXQob2JqZWN0T3JBcnJheSk7XG4gICAgICAgICAgb2JqS2luZCA9IFwiPFwiICsgKGRlc2NyaWJlRWxlbWVudFR5cGUob2JqS2luZCkgfHwgXCIuLi5cIik7XG4gICAgICAgICAgdHlwZSA9IE9iamVjdC5rZXlzKG9iamVjdE9yQXJyYXkpO1xuICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0eXBlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBvYmpLaW5kICs9IFwiIFwiO1xuICAgICAgICAgICAgdmFsdWUgPSB0eXBlW2ldO1xuICAgICAgICAgICAgb2JqS2luZCArPSBkZXNjcmliZUtleUZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyBcIj1cIjtcbiAgICAgICAgICAgIHZhciBfdmFsdWUyID0gb2JqZWN0T3JBcnJheVt2YWx1ZV07XG4gICAgICAgICAgICB2YXIgX3N1YnN0cjIgPVxuICAgICAgICAgICAgICB2YWx1ZSA9PT0gZXhwYW5kZWROYW1lICYmXG4gICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBfdmFsdWUyICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IF92YWx1ZTJcbiAgICAgICAgICAgICAgICA/IGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKF92YWx1ZTIpXG4gICAgICAgICAgICAgICAgOiBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKF92YWx1ZTIpO1xuICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIF92YWx1ZTIgJiYgKF9zdWJzdHIyID0gXCJ7XCIgKyBfc3Vic3RyMiArIFwifVwiKTtcbiAgICAgICAgICAgIHZhbHVlID09PSBleHBhbmRlZE5hbWVcbiAgICAgICAgICAgICAgPyAoKHN0YXJ0ID0gb2JqS2luZC5sZW5ndGgpLFxuICAgICAgICAgICAgICAgIChsZW5ndGggPSBfc3Vic3RyMi5sZW5ndGgpLFxuICAgICAgICAgICAgICAgIChvYmpLaW5kICs9IF9zdWJzdHIyKSlcbiAgICAgICAgICAgICAgOiAob2JqS2luZCA9XG4gICAgICAgICAgICAgICAgICAxMCA+IF9zdWJzdHIyLmxlbmd0aCAmJiA0MCA+IG9iaktpbmQubGVuZ3RoICsgX3N1YnN0cjIubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gb2JqS2luZCArIF9zdWJzdHIyXG4gICAgICAgICAgICAgICAgICAgIDogb2JqS2luZCArIFwiLi4uXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYmpLaW5kICs9IFwiPlwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9iaktpbmQgPSBcIntcIjtcbiAgICAgICAgICB0eXBlID0gT2JqZWN0LmtleXMob2JqZWN0T3JBcnJheSk7XG4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHR5cGUubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAwIDwgaSAmJiAob2JqS2luZCArPSBcIiwgXCIpLFxuICAgICAgICAgICAgICAodmFsdWUgPSB0eXBlW2ldKSxcbiAgICAgICAgICAgICAgKG9iaktpbmQgKz0gZGVzY3JpYmVLZXlGb3JFcnJvck1lc3NhZ2UodmFsdWUpICsgXCI6IFwiKSxcbiAgICAgICAgICAgICAgKF92YWx1ZTIgPSBvYmplY3RPckFycmF5W3ZhbHVlXSksXG4gICAgICAgICAgICAgIChfdmFsdWUyID1cbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgX3ZhbHVlMiAmJiBudWxsICE9PSBfdmFsdWUyXG4gICAgICAgICAgICAgICAgICA/IGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKF92YWx1ZTIpXG4gICAgICAgICAgICAgICAgICA6IGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMikpLFxuICAgICAgICAgICAgICB2YWx1ZSA9PT0gZXhwYW5kZWROYW1lXG4gICAgICAgICAgICAgICAgPyAoKHN0YXJ0ID0gb2JqS2luZC5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgKGxlbmd0aCA9IF92YWx1ZTIubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIChvYmpLaW5kICs9IF92YWx1ZTIpKVxuICAgICAgICAgICAgICAgIDogKG9iaktpbmQgPVxuICAgICAgICAgICAgICAgICAgICAxMCA+IF92YWx1ZTIubGVuZ3RoICYmIDQwID4gb2JqS2luZC5sZW5ndGggKyBfdmFsdWUyLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgID8gb2JqS2luZCArIF92YWx1ZTJcbiAgICAgICAgICAgICAgICAgICAgICA6IG9iaktpbmQgKyBcIi4uLlwiKTtcbiAgICAgICAgICBvYmpLaW5kICs9IFwifVwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwID09PSBleHBhbmRlZE5hbWVcbiAgICAgICAgPyBvYmpLaW5kXG4gICAgICAgIDogLTEgPCBzdGFydCAmJiAwIDwgbGVuZ3RoXG4gICAgICAgICAgPyAoKG9iamVjdE9yQXJyYXkgPSBcIiBcIi5yZXBlYXQoc3RhcnQpICsgXCJeXCIucmVwZWF0KGxlbmd0aCkpLFxuICAgICAgICAgICAgXCJcXG4gIFwiICsgb2JqS2luZCArIFwiXFxuICBcIiArIG9iamVjdE9yQXJyYXkpXG4gICAgICAgICAgOiBcIlxcbiAgXCIgKyBvYmpLaW5kO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXJpYWxpemVOdW1iZXIobnVtYmVyKSB7XG4gICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG51bWJlcilcbiAgICAgICAgPyAwID09PSBudW1iZXIgJiYgLUluZmluaXR5ID09PSAxIC8gbnVtYmVyXG4gICAgICAgICAgPyBcIiQtMFwiXG4gICAgICAgICAgOiBudW1iZXJcbiAgICAgICAgOiBJbmZpbml0eSA9PT0gbnVtYmVyXG4gICAgICAgICAgPyBcIiRJbmZpbml0eVwiXG4gICAgICAgICAgOiAtSW5maW5pdHkgPT09IG51bWJlclxuICAgICAgICAgICAgPyBcIiQtSW5maW5pdHlcIlxuICAgICAgICAgICAgOiBcIiROYU5cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlcGx5KFxuICAgICAgcm9vdCxcbiAgICAgIGZvcm1GaWVsZFByZWZpeCxcbiAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMsXG4gICAgICByZXNvbHZlLFxuICAgICAgcmVqZWN0XG4gICAgKSB7XG4gICAgICBmdW5jdGlvbiBzZXJpYWxpemVUeXBlZEFycmF5KHRhZywgdHlwZWRBcnJheSkge1xuICAgICAgICB0eXBlZEFycmF5ID0gbmV3IEJsb2IoW1xuICAgICAgICAgIG5ldyBVaW50OEFycmF5KFxuICAgICAgICAgICAgdHlwZWRBcnJheS5idWZmZXIsXG4gICAgICAgICAgICB0eXBlZEFycmF5LmJ5dGVPZmZzZXQsXG4gICAgICAgICAgICB0eXBlZEFycmF5LmJ5dGVMZW5ndGhcbiAgICAgICAgICApXG4gICAgICAgIF0pO1xuICAgICAgICB2YXIgYmxvYklkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBibG9iSWQsIHR5cGVkQXJyYXkpO1xuICAgICAgICByZXR1cm4gXCIkXCIgKyB0YWcgKyBibG9iSWQudG9TdHJpbmcoMTYpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplQmluYXJ5UmVhZGVyKHJlYWRlcikge1xuICAgICAgICBmdW5jdGlvbiBwcm9ncmVzcyhlbnRyeSkge1xuICAgICAgICAgIGVudHJ5LmRvbmVcbiAgICAgICAgICAgID8gKChlbnRyeSA9IG5leHRQYXJ0SWQrKyksXG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGVudHJ5LCBuZXcgQmxvYihidWZmZXIpKSxcbiAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgZm9ybUZpZWxkUHJlZml4ICsgc3RyZWFtSWQsXG4gICAgICAgICAgICAgICAgJ1wiJG8nICsgZW50cnkudG9TdHJpbmcoMTYpICsgJ1wiJ1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgXCJDXCIpLFxuICAgICAgICAgICAgICBwZW5kaW5nUGFydHMtLSxcbiAgICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoZGF0YSkpXG4gICAgICAgICAgICA6IChidWZmZXIucHVzaChlbnRyeS52YWx1ZSksXG4gICAgICAgICAgICAgIHJlYWRlci5yZWFkKG5ldyBVaW50OEFycmF5KDEwMjQpKS50aGVuKHByb2dyZXNzLCByZWplY3QpKTtcbiAgICAgICAgfVxuICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgIHZhciBkYXRhID0gZm9ybURhdGE7XG4gICAgICAgIHBlbmRpbmdQYXJ0cysrO1xuICAgICAgICB2YXIgc3RyZWFtSWQgPSBuZXh0UGFydElkKyssXG4gICAgICAgICAgYnVmZmVyID0gW107XG4gICAgICAgIHJlYWRlci5yZWFkKG5ldyBVaW50OEFycmF5KDEwMjQpKS50aGVuKHByb2dyZXNzLCByZWplY3QpO1xuICAgICAgICByZXR1cm4gXCIkclwiICsgc3RyZWFtSWQudG9TdHJpbmcoMTYpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplUmVhZGVyKHJlYWRlcikge1xuICAgICAgICBmdW5jdGlvbiBwcm9ncmVzcyhlbnRyeSkge1xuICAgICAgICAgIGlmIChlbnRyeS5kb25lKVxuICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgc3RyZWFtSWQsIFwiQ1wiKSxcbiAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS0sXG4gICAgICAgICAgICAgIDAgPT09IHBlbmRpbmdQYXJ0cyAmJiByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHZhciBwYXJ0SlNPTiA9IEpTT04uc3RyaW5naWZ5KGVudHJ5LnZhbHVlLCByZXNvbHZlVG9KU09OKTtcbiAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgc3RyZWFtSWQsIHBhcnRKU09OKTtcbiAgICAgICAgICAgICAgcmVhZGVyLnJlYWQoKS50aGVuKHByb2dyZXNzLCByZWplY3QpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICByZWplY3QoeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICB2YXIgZGF0YSA9IGZvcm1EYXRhO1xuICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgdmFyIHN0cmVhbUlkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgIHJldHVybiBcIiRSXCIgKyBzdHJlYW1JZC50b1N0cmluZygxNik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzZXJpYWxpemVSZWFkYWJsZVN0cmVhbShzdHJlYW0pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgYmluYXJ5UmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcih7IG1vZGU6IFwiYnlvYlwiIH0pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVJlYWRlcihzdHJlYW0uZ2V0UmVhZGVyKCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVCaW5hcnlSZWFkZXIoYmluYXJ5UmVhZGVyKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZUFzeW5jSXRlcmFibGUoaXRlcmFibGUsIGl0ZXJhdG9yKSB7XG4gICAgICAgIGZ1bmN0aW9uIHByb2dyZXNzKGVudHJ5KSB7XG4gICAgICAgICAgaWYgKGVudHJ5LmRvbmUpIHtcbiAgICAgICAgICAgIGlmICh2b2lkIDAgPT09IGVudHJ5LnZhbHVlKVxuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgXCJDXCIpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHZhciBwYXJ0SlNPTiA9IEpTT04uc3RyaW5naWZ5KGVudHJ5LnZhbHVlLCByZXNvbHZlVG9KU09OKTtcbiAgICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgXCJDXCIgKyBwYXJ0SlNPTik7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoeCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBwZW5kaW5nUGFydHMtLTtcbiAgICAgICAgICAgIDAgPT09IHBlbmRpbmdQYXJ0cyAmJiByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdmFyIF9wYXJ0SlNPTiA9IEpTT04uc3RyaW5naWZ5KGVudHJ5LnZhbHVlLCByZXNvbHZlVG9KU09OKTtcbiAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgc3RyZWFtSWQsIF9wYXJ0SlNPTik7XG4gICAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoKS50aGVuKHByb2dyZXNzLCByZWplY3QpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCQwKSB7XG4gICAgICAgICAgICAgIHJlamVjdCh4JDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgdmFyIGRhdGEgPSBmb3JtRGF0YTtcbiAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgIHZhciBzdHJlYW1JZCA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgaXRlcmFibGUgPSBpdGVyYWJsZSA9PT0gaXRlcmF0b3I7XG4gICAgICAgIGl0ZXJhdG9yLm5leHQoKS50aGVuKHByb2dyZXNzLCByZWplY3QpO1xuICAgICAgICByZXR1cm4gXCIkXCIgKyAoaXRlcmFibGUgPyBcInhcIiA6IFwiWFwiKSArIHN0cmVhbUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHJlc29sdmVUb0pTT04oa2V5LCB2YWx1ZSkge1xuICAgICAgICB2YXIgb3JpZ2luYWxWYWx1ZSA9IHRoaXNba2V5XTtcbiAgICAgICAgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG9yaWdpbmFsVmFsdWUgfHxcbiAgICAgICAgICBvcmlnaW5hbFZhbHVlID09PSB2YWx1ZSB8fFxuICAgICAgICAgIG9yaWdpbmFsVmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8XG4gICAgICAgICAgKFwiT2JqZWN0XCIgIT09IG9iamVjdE5hbWUob3JpZ2luYWxWYWx1ZSlcbiAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIk9ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiAlcyBvYmplY3RzIGFyZSBub3Qgc3VwcG9ydGVkLiVzXCIsXG4gICAgICAgICAgICAgICAgb2JqZWN0TmFtZShvcmlnaW5hbFZhbHVlKSxcbiAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIk9ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiBPYmplY3RzIHdpdGggdG9KU09OIG1ldGhvZHMgYXJlIG5vdCBzdXBwb3J0ZWQuIENvbnZlcnQgaXQgbWFudWFsbHkgdG8gYSBzaW1wbGUgdmFsdWUgYmVmb3JlIHBhc3NpbmcgaXQgdG8gcHJvcHMuJXNcIixcbiAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICBpZiAobnVsbCA9PT0gdmFsdWUpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgc3dpdGNoICh2YWx1ZS4kJHR5cGVvZikge1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9FTEVNRU5UX1RZUEU6XG4gICAgICAgICAgICAgIGlmICh2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiYgLTEgPT09IGtleS5pbmRleE9mKFwiOlwiKSkge1xuICAgICAgICAgICAgICAgIHZhciBwYXJlbnRSZWZlcmVuY2UgPSB3cml0dGVuT2JqZWN0cy5nZXQodGhpcyk7XG4gICAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcy5zZXQocGFyZW50UmVmZXJlbmNlICsgXCI6XCIgKyBrZXksIHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgXCIkVFwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiUmVhY3QgRWxlbWVudCBjYW5ub3QgYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50IHdpdGhvdXQgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlIHNldC4gUGFzcyBhIFRlbXBvcmFyeVJlZmVyZW5jZVNldCB0byB0aGUgb3B0aW9ucy5cIiArXG4gICAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlLl9wYXlsb2FkO1xuICAgICAgICAgICAgICB2YXIgaW5pdCA9IHZhbHVlLl9pbml0O1xuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cysrO1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSA9IGluaXQob3JpZ2luYWxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdmFyIGxhenlJZCA9IG5leHRQYXJ0SWQrKyxcbiAgICAgICAgICAgICAgICAgIHBhcnRKU09OID0gc2VyaWFsaXplTW9kZWwocGFyZW50UmVmZXJlbmNlLCBsYXp5SWQpO1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBsYXp5SWQsIHBhcnRKU09OKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCIkXCIgKyBsYXp5SWQudG9TdHJpbmcoMTYpO1xuICAgICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHggJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IHggJiZcbiAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHgudGhlblxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgICAgICAgICAgICB2YXIgX2xhenlJZCA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICB2YXIgX3BhcnRKU09OMiA9IHNlcmlhbGl6ZU1vZGVsKHZhbHVlLCBfbGF6eUlkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhID0gZm9ybURhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgX2RhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIF9sYXp5SWQsIF9wYXJ0SlNPTjIpO1xuICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tO1xuICAgICAgICAgICAgICAgICAgICAgIDAgPT09IHBlbmRpbmdQYXJ0cyAmJiByZXNvbHZlKF9kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICB4LnRoZW4ocGFyZW50UmVmZXJlbmNlLCBwYXJlbnRSZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiJFwiICsgX2xhenlJZC50b1N0cmluZygxNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlamVjdCh4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBwZW5kaW5nUGFydHMtLTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUudGhlbikge1xuICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgICAgICB2YXIgcHJvbWlzZUlkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICAgICAgdmFsdWUudGhlbihmdW5jdGlvbiAocGFydFZhbHVlKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIF9wYXJ0SlNPTjMgPSBzZXJpYWxpemVNb2RlbChwYXJ0VmFsdWUsIHByb21pc2VJZCk7XG4gICAgICAgICAgICAgICAgcGFydFZhbHVlID0gZm9ybURhdGE7XG4gICAgICAgICAgICAgICAgcGFydFZhbHVlLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBwcm9taXNlSWQsIF9wYXJ0SlNPTjMpO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tO1xuICAgICAgICAgICAgICAgIDAgPT09IHBlbmRpbmdQYXJ0cyAmJiByZXNvbHZlKHBhcnRWYWx1ZSk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKHJlYXNvbikge1xuICAgICAgICAgICAgICAgIHJlamVjdChyZWFzb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCByZWplY3QpO1xuICAgICAgICAgICAgcmV0dXJuIFwiJEBcIiArIHByb21pc2VJZC50b1N0cmluZygxNik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSA9IHdyaXR0ZW5PYmplY3RzLmdldCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgICAgaWYgKG1vZGVsUm9vdCA9PT0gdmFsdWUpIG1vZGVsUm9vdCA9IG51bGw7XG4gICAgICAgICAgICBlbHNlIHJldHVybiBwYXJlbnRSZWZlcmVuY2U7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgLTEgPT09IGtleS5pbmRleE9mKFwiOlwiKSAmJlxuICAgICAgICAgICAgICAoKHBhcmVudFJlZmVyZW5jZSA9IHdyaXR0ZW5PYmplY3RzLmdldCh0aGlzKSksXG4gICAgICAgICAgICAgIHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlICYmXG4gICAgICAgICAgICAgICAgKChwYXJlbnRSZWZlcmVuY2UgPSBwYXJlbnRSZWZlcmVuY2UgKyBcIjpcIiArIGtleSksXG4gICAgICAgICAgICAgICAgd3JpdHRlbk9iamVjdHMuc2V0KHZhbHVlLCBwYXJlbnRSZWZlcmVuY2UpLFxuICAgICAgICAgICAgICAgIHZvaWQgMCAhPT0gdGVtcG9yYXJ5UmVmZXJlbmNlcyAmJlxuICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcy5zZXQocGFyZW50UmVmZXJlbmNlLCB2YWx1ZSkpKTtcbiAgICAgICAgICBpZiAoaXNBcnJheUltcGwodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgICAgIHZhciBfZGF0YTMgPSBmb3JtRGF0YTtcbiAgICAgICAgICAgIGtleSA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgICAgIHZhciBwcmVmaXggPSBmb3JtRmllbGRQcmVmaXggKyBrZXkgKyBcIl9cIjtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goZnVuY3Rpb24gKG9yaWdpbmFsVmFsdWUsIG9yaWdpbmFsS2V5KSB7XG4gICAgICAgICAgICAgIF9kYXRhMy5hcHBlbmQocHJlZml4ICsgb3JpZ2luYWxLZXksIG9yaWdpbmFsVmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gXCIkS1wiICsga2V5LnRvU3RyaW5nKDE2KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IG5leHRQYXJ0SWQrKyksXG4gICAgICAgICAgICAgIChwYXJlbnRSZWZlcmVuY2UgPSBzZXJpYWxpemVNb2RlbChBcnJheS5mcm9tKHZhbHVlKSwga2V5KSksXG4gICAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKSxcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGtleSwgcGFyZW50UmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgXCIkUVwiICsga2V5LnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgKHBhcmVudFJlZmVyZW5jZSA9IHNlcmlhbGl6ZU1vZGVsKEFycmF5LmZyb20odmFsdWUpLCBrZXkpKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsga2V5LCBwYXJlbnRSZWZlcmVuY2UpLFxuICAgICAgICAgICAgICBcIiRXXCIgKyBrZXkudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IG5ldyBCbG9iKFt2YWx1ZV0pKSxcbiAgICAgICAgICAgICAgKHBhcmVudFJlZmVyZW5jZSA9IG5leHRQYXJ0SWQrKyksXG4gICAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKSxcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHBhcmVudFJlZmVyZW5jZSwga2V5KSxcbiAgICAgICAgICAgICAgXCIkQVwiICsgcGFyZW50UmVmZXJlbmNlLnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJbnQ4QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIk9cIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIm9cIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJVXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJbnQxNkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJTXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50MTZBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwic1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSW50MzJBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiTFwiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDMyQXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcImxcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiR1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJnXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJNXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwibVwiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0YVZpZXcpIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiVlwiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIEJsb2IgJiYgdmFsdWUgaW5zdGFuY2VvZiBCbG9iKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICAoa2V5ID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgICBcIiRCXCIgKyBrZXkudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICgocGFyZW50UmVmZXJlbmNlID0gZ2V0SXRlcmF0b3JGbih2YWx1ZSkpKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHBhcmVudFJlZmVyZW5jZSA9IHBhcmVudFJlZmVyZW5jZS5jYWxsKHZhbHVlKSksXG4gICAgICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSA9PT0gdmFsdWVcbiAgICAgICAgICAgICAgICA/ICgoa2V5ID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgICAgIChwYXJlbnRSZWZlcmVuY2UgPSBzZXJpYWxpemVNb2RlbChcbiAgICAgICAgICAgICAgICAgICAgQXJyYXkuZnJvbShwYXJlbnRSZWZlcmVuY2UpLFxuICAgICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGtleSwgcGFyZW50UmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgICAgIFwiJGlcIiArIGtleS50b1N0cmluZygxNikpXG4gICAgICAgICAgICAgICAgOiBBcnJheS5mcm9tKHBhcmVudFJlZmVyZW5jZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgUmVhZGFibGVTdHJlYW0gJiZcbiAgICAgICAgICAgIHZhbHVlIGluc3RhbmNlb2YgUmVhZGFibGVTdHJlYW1cbiAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplUmVhZGFibGVTdHJlYW0odmFsdWUpO1xuICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSA9IHZhbHVlW0FTWU5DX0lURVJBVE9SXTtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUFzeW5jSXRlcmFibGUodmFsdWUsIHBhcmVudFJlZmVyZW5jZS5jYWxsKHZhbHVlKSk7XG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gZ2V0UHJvdG90eXBlT2YodmFsdWUpO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSAhPT0gT2JqZWN0UHJvdG90eXBlICYmXG4gICAgICAgICAgICAobnVsbCA9PT0gcGFyZW50UmVmZXJlbmNlIHx8XG4gICAgICAgICAgICAgIG51bGwgIT09IGdldFByb3RvdHlwZU9mKHBhcmVudFJlZmVyZW5jZSkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodm9pZCAwID09PSB0ZW1wb3JhcnlSZWZlcmVuY2VzKVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIk9ubHkgcGxhaW4gb2JqZWN0cywgYW5kIGEgZmV3IGJ1aWx0LWlucywgY2FuIGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zLiBDbGFzc2VzIG9yIG51bGwgcHJvdG90eXBlcyBhcmUgbm90IHN1cHBvcnRlZC5cIiArXG4gICAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gXCIkVFwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFXG4gICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJSZWFjdCBDb250ZXh0IFByb3ZpZGVycyBjYW5ub3QgYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiVzXCIsXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IFwiT2JqZWN0XCIgIT09IG9iamVjdE5hbWUodmFsdWUpXG4gICAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuICVzIG9iamVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXNcIixcbiAgICAgICAgICAgICAgICAgIG9iamVjdE5hbWUodmFsdWUpLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBpc1NpbXBsZU9iamVjdCh2YWx1ZSlcbiAgICAgICAgICAgICAgICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiZcbiAgICAgICAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh2YWx1ZSkpLFxuICAgICAgICAgICAgICAgICAgMCA8IHBhcmVudFJlZmVyZW5jZS5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIk9ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiBPYmplY3RzIHdpdGggc3ltYm9sIHByb3BlcnRpZXMgbGlrZSAlcyBhcmUgbm90IHN1cHBvcnRlZC4lc1wiLFxuICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFJlZmVyZW5jZVswXS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIk9ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiBDbGFzc2VzIG9yIG90aGVyIG9iamVjdHMgd2l0aCBtZXRob2RzIGFyZSBub3Qgc3VwcG9ydGVkLiVzXCIsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoXCJaXCIgPT09IHZhbHVlW3ZhbHVlLmxlbmd0aCAtIDFdICYmIHRoaXNba2V5XSBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAgICAgICByZXR1cm4gXCIkRFwiICsgdmFsdWU7XG4gICAgICAgICAga2V5ID0gXCIkXCIgPT09IHZhbHVlWzBdID8gXCIkXCIgKyB2YWx1ZSA6IHZhbHVlO1xuICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwiYm9vbGVhblwiID09PSB0eXBlb2YgdmFsdWUpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgaWYgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB2YWx1ZSkgcmV0dXJuIHNlcmlhbGl6ZU51bWJlcih2YWx1ZSk7XG4gICAgICAgIGlmIChcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgdmFsdWUpIHJldHVybiBcIiR1bmRlZmluZWRcIjtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IEpTT04uc3RyaW5naWZ5KHBhcmVudFJlZmVyZW5jZSwgcmVzb2x2ZVRvSlNPTikpLFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIChwYXJlbnRSZWZlcmVuY2UgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5zZXQoZm9ybUZpZWxkUHJlZml4ICsgcGFyZW50UmVmZXJlbmNlLCBrZXkpLFxuICAgICAgICAgICAgICBcIiRGXCIgKyBwYXJlbnRSZWZlcmVuY2UudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gdGVtcG9yYXJ5UmVmZXJlbmNlcyAmJlxuICAgICAgICAgICAgLTEgPT09IGtleS5pbmRleE9mKFwiOlwiKSAmJlxuICAgICAgICAgICAgKChwYXJlbnRSZWZlcmVuY2UgPSB3cml0dGVuT2JqZWN0cy5nZXQodGhpcykpLFxuICAgICAgICAgICAgdm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcy5zZXQocGFyZW50UmVmZXJlbmNlICsgXCI6XCIgKyBrZXksIHZhbHVlKSwgXCIkVFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJDbGllbnQgRnVuY3Rpb25zIGNhbm5vdCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gU2VydmVyIEZ1bmN0aW9ucy4gT25seSBGdW5jdGlvbnMgcGFzc2VkIGZyb20gdGhlIFNlcnZlciBjYW4gYmUgcGFzc2VkIGJhY2sgYWdhaW4uXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcInN5bWJvbFwiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiZcbiAgICAgICAgICAgIC0xID09PSBrZXkuaW5kZXhPZihcIjpcIikgJiZcbiAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHRoaXMpKSxcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KHBhcmVudFJlZmVyZW5jZSArIFwiOlwiICsga2V5LCB2YWx1ZSksIFwiJFRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiU3ltYm9scyBjYW5ub3QgYmUgcGFzc2VkIHRvIGEgU2VydmVyIEZ1bmN0aW9uIHdpdGhvdXQgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlIHNldC4gUGFzcyBhIFRlbXBvcmFyeVJlZmVyZW5jZVNldCB0byB0aGUgb3B0aW9ucy5cIiArXG4gICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcImJpZ2ludFwiID09PSB0eXBlb2YgdmFsdWUpIHJldHVybiBcIiRuXCIgKyB2YWx1ZS50b1N0cmluZygxMCk7XG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiVHlwZSBcIiArXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgK1xuICAgICAgICAgICAgXCIgaXMgbm90IHN1cHBvcnRlZCBhcyBhbiBhcmd1bWVudCB0byBhIFNlcnZlciBGdW5jdGlvbi5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplTW9kZWwobW9kZWwsIGlkKSB7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBtb2RlbCAmJlxuICAgICAgICAgIG51bGwgIT09IG1vZGVsICYmXG4gICAgICAgICAgKChpZCA9IFwiJFwiICsgaWQudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgICB3cml0dGVuT2JqZWN0cy5zZXQobW9kZWwsIGlkKSxcbiAgICAgICAgICB2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiYgdGVtcG9yYXJ5UmVmZXJlbmNlcy5zZXQoaWQsIG1vZGVsKSk7XG4gICAgICAgIG1vZGVsUm9vdCA9IG1vZGVsO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobW9kZWwsIHJlc29sdmVUb0pTT04pO1xuICAgICAgfVxuICAgICAgdmFyIG5leHRQYXJ0SWQgPSAxLFxuICAgICAgICBwZW5kaW5nUGFydHMgPSAwLFxuICAgICAgICBmb3JtRGF0YSA9IG51bGwsXG4gICAgICAgIHdyaXR0ZW5PYmplY3RzID0gbmV3IFdlYWtNYXAoKSxcbiAgICAgICAgbW9kZWxSb290ID0gcm9vdCxcbiAgICAgICAganNvbiA9IHNlcmlhbGl6ZU1vZGVsKHJvb3QsIDApO1xuICAgICAgbnVsbCA9PT0gZm9ybURhdGFcbiAgICAgICAgPyByZXNvbHZlKGpzb24pXG4gICAgICAgIDogKGZvcm1EYXRhLnNldChmb3JtRmllbGRQcmVmaXggKyBcIjBcIiwganNvbiksXG4gICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoZm9ybURhdGEpKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIDAgPCBwZW5kaW5nUGFydHMgJiZcbiAgICAgICAgICAoKHBlbmRpbmdQYXJ0cyA9IDApLFxuICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhID8gcmVzb2x2ZShqc29uKSA6IHJlc29sdmUoZm9ybURhdGEpKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVuY29kZUZvcm1EYXRhKHJlZmVyZW5jZSkge1xuICAgICAgdmFyIHJlc29sdmUsXG4gICAgICAgIHJlamVjdCxcbiAgICAgICAgdGhlbmFibGUgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzLCByZWopIHtcbiAgICAgICAgICByZXNvbHZlID0gcmVzO1xuICAgICAgICAgIHJlamVjdCA9IHJlajtcbiAgICAgICAgfSk7XG4gICAgICBwcm9jZXNzUmVwbHkoXG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgXCJcIixcbiAgICAgICAgdm9pZCAwLFxuICAgICAgICBmdW5jdGlvbiAoYm9keSkge1xuICAgICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYm9keSkge1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwiMFwiLCBib2R5KTtcbiAgICAgICAgICAgIGJvZHkgPSBkYXRhO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGVuYWJsZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgIHRoZW5hYmxlLnZhbHVlID0gYm9keTtcbiAgICAgICAgICByZXNvbHZlKGJvZHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIHRoZW5hYmxlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgICB0aGVuYWJsZS5yZWFzb24gPSBlO1xuICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiB0aGVuYWJsZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmYXVsdEVuY29kZUZvcm1BY3Rpb24oaWRlbnRpZmllclByZWZpeCkge1xuICAgICAgdmFyIHJlZmVyZW5jZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodGhpcyk7XG4gICAgICBpZiAoIXJlZmVyZW5jZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICB2YXIgZGF0YSA9IG51bGw7XG4gICAgICBpZiAobnVsbCAhPT0gcmVmZXJlbmNlLmJvdW5kKSB7XG4gICAgICAgIGRhdGEgPSBib3VuZENhY2hlLmdldChyZWZlcmVuY2UpO1xuICAgICAgICBkYXRhIHx8XG4gICAgICAgICAgKChkYXRhID0gZW5jb2RlRm9ybURhdGEocmVmZXJlbmNlKSksIGJvdW5kQ2FjaGUuc2V0KHJlZmVyZW5jZSwgZGF0YSkpO1xuICAgICAgICBpZiAoXCJyZWplY3RlZFwiID09PSBkYXRhLnN0YXR1cykgdGhyb3cgZGF0YS5yZWFzb247XG4gICAgICAgIGlmIChcImZ1bGZpbGxlZFwiICE9PSBkYXRhLnN0YXR1cykgdGhyb3cgZGF0YTtcbiAgICAgICAgcmVmZXJlbmNlID0gZGF0YS52YWx1ZTtcbiAgICAgICAgdmFyIHByZWZpeGVkRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICByZWZlcmVuY2UuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgICAgIHByZWZpeGVkRGF0YS5hcHBlbmQoXCIkQUNUSU9OX1wiICsgaWRlbnRpZmllclByZWZpeCArIFwiOlwiICsga2V5LCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkYXRhID0gcHJlZml4ZWREYXRhO1xuICAgICAgICByZWZlcmVuY2UgPSBcIiRBQ1RJT05fUkVGX1wiICsgaWRlbnRpZmllclByZWZpeDtcbiAgICAgIH0gZWxzZSByZWZlcmVuY2UgPSBcIiRBQ1RJT05fSURfXCIgKyByZWZlcmVuY2UuaWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiByZWZlcmVuY2UsXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGVuY1R5cGU6IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1NpZ25hdHVyZUVxdWFsKHJlZmVyZW5jZUlkLCBudW1iZXJPZkJvdW5kQXJncykge1xuICAgICAgdmFyIHJlZmVyZW5jZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodGhpcyk7XG4gICAgICBpZiAoIXJlZmVyZW5jZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICBpZiAocmVmZXJlbmNlLmlkICE9PSByZWZlcmVuY2VJZCkgcmV0dXJuICExO1xuICAgICAgdmFyIGJvdW5kUHJvbWlzZSA9IHJlZmVyZW5jZS5ib3VuZDtcbiAgICAgIGlmIChudWxsID09PSBib3VuZFByb21pc2UpIHJldHVybiAwID09PSBudW1iZXJPZkJvdW5kQXJncztcbiAgICAgIHN3aXRjaCAoYm91bmRQcm9taXNlLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgcmV0dXJuIGJvdW5kUHJvbWlzZS52YWx1ZS5sZW5ndGggPT09IG51bWJlck9mQm91bmRBcmdzO1xuICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICAgIHRocm93IGJvdW5kUHJvbWlzZTtcbiAgICAgICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgICAgICAgdGhyb3cgYm91bmRQcm9taXNlLnJlYXNvbjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgICAoXCJzdHJpbmdcIiAhPT0gdHlwZW9mIGJvdW5kUHJvbWlzZS5zdGF0dXMgJiZcbiAgICAgICAgICAgICAgKChib3VuZFByb21pc2Uuc3RhdHVzID0gXCJwZW5kaW5nXCIpLFxuICAgICAgICAgICAgICBib3VuZFByb21pc2UudGhlbihcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoYm91bmRBcmdzKSB7XG4gICAgICAgICAgICAgICAgICBib3VuZFByb21pc2Uuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICAgICAgICAgIGJvdW5kUHJvbWlzZS52YWx1ZSA9IGJvdW5kQXJncztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgYm91bmRQcm9taXNlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgICAgICAgICAgIGJvdW5kUHJvbWlzZS5yZWFzb24gPSBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgYm91bmRQcm9taXNlKVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZha2VTZXJ2ZXJGdW5jdGlvbihcbiAgICAgIG5hbWUsXG4gICAgICBmaWxlbmFtZSxcbiAgICAgIHNvdXJjZU1hcCxcbiAgICAgIGxpbmUsXG4gICAgICBjb2wsXG4gICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICBpbm5lckZ1bmN0aW9uXG4gICAgKSB7XG4gICAgICBuYW1lIHx8IChuYW1lID0gXCI8YW5vbnltb3VzPlwiKTtcbiAgICAgIHZhciBlbmNvZGVkTmFtZSA9IEpTT04uc3RyaW5naWZ5KG5hbWUpO1xuICAgICAgMSA+PSBsaW5lXG4gICAgICAgID8gKChsaW5lID0gZW5jb2RlZE5hbWUubGVuZ3RoICsgNyksXG4gICAgICAgICAgKGNvbCA9XG4gICAgICAgICAgICBcInM9Pih7XCIgK1xuICAgICAgICAgICAgZW5jb2RlZE5hbWUgK1xuICAgICAgICAgICAgXCIgXCIucmVwZWF0KGNvbCA8IGxpbmUgPyAwIDogY29sIC0gbGluZSkgK1xuICAgICAgICAgICAgXCI6KC4uLmFyZ3MpID0+IHMoLi4uYXJncyl9KVxcbi8qIFRoaXMgbW9kdWxlIGlzIGEgcHJveHkgdG8gYSBTZXJ2ZXIgQWN0aW9uLiBUdXJuIG9uIFNvdXJjZSBNYXBzIHRvIHNlZSB0aGUgc2VydmVyIHNvdXJjZS4gKi9cIikpXG4gICAgICAgIDogKGNvbCA9XG4gICAgICAgICAgICBcIi8qIFRoaXMgbW9kdWxlIGlzIGEgcHJveHkgdG8gYSBTZXJ2ZXIgQWN0aW9uLiBUdXJuIG9uIFNvdXJjZSBNYXBzIHRvIHNlZSB0aGUgc2VydmVyIHNvdXJjZS4gKi9cIiArXG4gICAgICAgICAgICBcIlxcblwiLnJlcGVhdChsaW5lIC0gMikgK1xuICAgICAgICAgICAgXCJzZXJ2ZXI9Pih7XCIgK1xuICAgICAgICAgICAgZW5jb2RlZE5hbWUgK1xuICAgICAgICAgICAgXCI6XFxuXCIgK1xuICAgICAgICAgICAgXCIgXCIucmVwZWF0KDEgPiBjb2wgPyAwIDogY29sIC0gMSkgK1xuICAgICAgICAgICAgXCIoLi4uYXJncykgPT4gc2VydmVyKC4uLmFyZ3MpfSlcIik7XG4gICAgICBmaWxlbmFtZS5zdGFydHNXaXRoKFwiL1wiKSAmJiAoZmlsZW5hbWUgPSBcImZpbGU6Ly9cIiArIGZpbGVuYW1lKTtcbiAgICAgIHNvdXJjZU1hcFxuICAgICAgICA/ICgoY29sICs9XG4gICAgICAgICAgICBcIlxcbi8vIyBzb3VyY2VVUkw9cnNjOi8vUmVhY3QvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGVudmlyb25tZW50TmFtZSkgK1xuICAgICAgICAgICAgXCIvXCIgK1xuICAgICAgICAgICAgZmlsZW5hbWUgK1xuICAgICAgICAgICAgXCI/c1wiICtcbiAgICAgICAgICAgIGZha2VTZXJ2ZXJGdW5jdGlvbklkeCsrKSxcbiAgICAgICAgICAoY29sICs9IFwiXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9XCIgKyBzb3VyY2VNYXApKVxuICAgICAgICA6IGZpbGVuYW1lICYmIChjb2wgKz0gXCJcXG4vLyMgc291cmNlVVJMPVwiICsgZmlsZW5hbWUpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuICgwLCBldmFsKShjb2wpKGlubmVyRnVuY3Rpb24pW25hbWVdO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICByZXR1cm4gaW5uZXJGdW5jdGlvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2UoXG4gICAgICBwcm94eSxcbiAgICAgIHJlZmVyZW5jZSRqc2NvbXAkMCxcbiAgICAgIGVuY29kZUZvcm1BY3Rpb25cbiAgICApIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHByb3h5LCB7XG4gICAgICAgICQkRk9STV9BQ1RJT046IHtcbiAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgIHZvaWQgMCA9PT0gZW5jb2RlRm9ybUFjdGlvblxuICAgICAgICAgICAgICA/IGRlZmF1bHRFbmNvZGVGb3JtQWN0aW9uXG4gICAgICAgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgdmFyIHJlZmVyZW5jZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodGhpcyk7XG4gICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB2YXIgYm91bmRQcm9taXNlID0gcmVmZXJlbmNlLmJvdW5kO1xuICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gYm91bmRQcm9taXNlICYmIChib3VuZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoW10pKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGVGb3JtQWN0aW9uKHJlZmVyZW5jZS5pZCwgYm91bmRQcm9taXNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICQkSVNfU0lHTkFUVVJFX0VRVUFMOiB7IHZhbHVlOiBpc1NpZ25hdHVyZUVxdWFsIH0sXG4gICAgICAgIGJpbmQ6IHsgdmFsdWU6IGJpbmQgfVxuICAgICAgfSk7XG4gICAgICBrbm93blNlcnZlclJlZmVyZW5jZXMuc2V0KHByb3h5LCByZWZlcmVuY2UkanNjb21wJDApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBiaW5kKCkge1xuICAgICAgdmFyIG5ld0ZuID0gRnVuY3Rpb25CaW5kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgIHJlZmVyZW5jZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodGhpcyk7XG4gICAgICBpZiAocmVmZXJlbmNlKSB7XG4gICAgICAgIG51bGwgIT0gYXJndW1lbnRzWzBdICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICdDYW5ub3QgYmluZCBcInRoaXNcIiBvZiBhIFNlcnZlciBBY3Rpb24uIFBhc3MgbnVsbCBvciB1bmRlZmluZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIC5iaW5kKCkuJ1xuICAgICAgICAgICk7XG4gICAgICAgIHZhciBhcmdzID0gQXJyYXlTbGljZS5jYWxsKGFyZ3VtZW50cywgMSksXG4gICAgICAgICAgYm91bmRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgYm91bmRQcm9taXNlID1cbiAgICAgICAgICBudWxsICE9PSByZWZlcmVuY2UuYm91bmRcbiAgICAgICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKHJlZmVyZW5jZS5ib3VuZCkudGhlbihmdW5jdGlvbiAoYm91bmRBcmdzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kQXJncy5jb25jYXQoYXJncyk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IFByb21pc2UucmVzb2x2ZShhcmdzKTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobmV3Rm4sIHtcbiAgICAgICAgICAkJEZPUk1fQUNUSU9OOiB7IHZhbHVlOiB0aGlzLiQkRk9STV9BQ1RJT04gfSxcbiAgICAgICAgICAkJElTX1NJR05BVFVSRV9FUVVBTDogeyB2YWx1ZTogaXNTaWduYXR1cmVFcXVhbCB9LFxuICAgICAgICAgIGJpbmQ6IHsgdmFsdWU6IGJpbmQgfVxuICAgICAgICB9KTtcbiAgICAgICAga25vd25TZXJ2ZXJSZWZlcmVuY2VzLnNldChuZXdGbiwge1xuICAgICAgICAgIGlkOiByZWZlcmVuY2UuaWQsXG4gICAgICAgICAgYm91bmQ6IGJvdW5kUHJvbWlzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdGbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQm91bmRTZXJ2ZXJSZWZlcmVuY2UoXG4gICAgICBtZXRhRGF0YSxcbiAgICAgIGNhbGxTZXJ2ZXIsXG4gICAgICBlbmNvZGVGb3JtQWN0aW9uLFxuICAgICAgZmluZFNvdXJjZU1hcFVSTFxuICAgICkge1xuICAgICAgZnVuY3Rpb24gYWN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgIHJldHVybiBib3VuZFxuICAgICAgICAgID8gXCJmdWxmaWxsZWRcIiA9PT0gYm91bmQuc3RhdHVzXG4gICAgICAgICAgICA/IGNhbGxTZXJ2ZXIoaWQsIGJvdW5kLnZhbHVlLmNvbmNhdChhcmdzKSlcbiAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKGJvdW5kKS50aGVuKGZ1bmN0aW9uIChib3VuZEFyZ3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbFNlcnZlcihpZCwgYm91bmRBcmdzLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBjYWxsU2VydmVyKGlkLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIHZhciBpZCA9IG1ldGFEYXRhLmlkLFxuICAgICAgICBib3VuZCA9IG1ldGFEYXRhLmJvdW5kLFxuICAgICAgICBsb2NhdGlvbiA9IG1ldGFEYXRhLmxvY2F0aW9uO1xuICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBtZXRhRGF0YS5uYW1lIHx8IFwiXCIsXG4gICAgICAgICAgZmlsZW5hbWUgPSBsb2NhdGlvblsxXSxcbiAgICAgICAgICBsaW5lID0gbG9jYXRpb25bMl07XG4gICAgICAgIGxvY2F0aW9uID0gbG9jYXRpb25bM107XG4gICAgICAgIG1ldGFEYXRhID0gbWV0YURhdGEuZW52IHx8IFwiU2VydmVyXCI7XG4gICAgICAgIGZpbmRTb3VyY2VNYXBVUkwgPVxuICAgICAgICAgIG51bGwgPT0gZmluZFNvdXJjZU1hcFVSTFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IGZpbmRTb3VyY2VNYXBVUkwoZmlsZW5hbWUsIG1ldGFEYXRhKTtcbiAgICAgICAgYWN0aW9uID0gY3JlYXRlRmFrZVNlcnZlckZ1bmN0aW9uKFxuICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgbWV0YURhdGEsXG4gICAgICAgICAgYWN0aW9uXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZWdpc3RlclNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICB7IGlkOiBpZCwgYm91bmQ6IGJvdW5kIH0sXG4gICAgICAgIGVuY29kZUZvcm1BY3Rpb25cbiAgICAgICk7XG4gICAgICByZXR1cm4gYWN0aW9uO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZVN0YWNrTG9jYXRpb24oZXJyb3IpIHtcbiAgICAgIGVycm9yID0gZXJyb3Iuc3RhY2s7XG4gICAgICBlcnJvci5zdGFydHNXaXRoKFwiRXJyb3I6IHJlYWN0LXN0YWNrLXRvcC1mcmFtZVxcblwiKSAmJlxuICAgICAgICAoZXJyb3IgPSBlcnJvci5zbGljZSgyOSkpO1xuICAgICAgdmFyIGVuZE9mRmlyc3QgPSBlcnJvci5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKC0xICE9PSBlbmRPZkZpcnN0KSB7XG4gICAgICAgIHZhciBlbmRPZlNlY29uZCA9IGVycm9yLmluZGV4T2YoXCJcXG5cIiwgZW5kT2ZGaXJzdCArIDEpO1xuICAgICAgICBlbmRPZkZpcnN0ID1cbiAgICAgICAgICAtMSA9PT0gZW5kT2ZTZWNvbmRcbiAgICAgICAgICAgID8gZXJyb3Iuc2xpY2UoZW5kT2ZGaXJzdCArIDEpXG4gICAgICAgICAgICA6IGVycm9yLnNsaWNlKGVuZE9mRmlyc3QgKyAxLCBlbmRPZlNlY29uZCk7XG4gICAgICB9IGVsc2UgZW5kT2ZGaXJzdCA9IGVycm9yO1xuICAgICAgZXJyb3IgPSB2OEZyYW1lUmVnRXhwLmV4ZWMoZW5kT2ZGaXJzdCk7XG4gICAgICBpZiAoXG4gICAgICAgICFlcnJvciAmJlxuICAgICAgICAoKGVycm9yID0ganNjU3BpZGVyTW9ua2V5RnJhbWVSZWdFeHAuZXhlYyhlbmRPZkZpcnN0KSksICFlcnJvcilcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBlbmRPZkZpcnN0ID0gZXJyb3JbMV0gfHwgXCJcIjtcbiAgICAgIFwiPGFub255bW91cz5cIiA9PT0gZW5kT2ZGaXJzdCAmJiAoZW5kT2ZGaXJzdCA9IFwiXCIpO1xuICAgICAgZW5kT2ZTZWNvbmQgPSBlcnJvclsyXSB8fCBlcnJvcls1XSB8fCBcIlwiO1xuICAgICAgXCI8YW5vbnltb3VzPlwiID09PSBlbmRPZlNlY29uZCAmJiAoZW5kT2ZTZWNvbmQgPSBcIlwiKTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGVuZE9mRmlyc3QsXG4gICAgICAgIGVuZE9mU2Vjb25kLFxuICAgICAgICArKGVycm9yWzNdIHx8IGVycm9yWzZdKSxcbiAgICAgICAgKyhlcnJvcls0XSB8fCBlcnJvcls3XSlcbiAgICAgIF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVNlcnZlclJlZmVyZW5jZSQxKFxuICAgICAgaWQsXG4gICAgICBjYWxsU2VydmVyLFxuICAgICAgZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgIGZpbmRTb3VyY2VNYXBVUkwsXG4gICAgICBmdW5jdGlvbk5hbWVcbiAgICApIHtcbiAgICAgIGZ1bmN0aW9uIGFjdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICByZXR1cm4gY2FsbFNlcnZlcihpZCwgYXJncyk7XG4gICAgICB9XG4gICAgICB2YXIgbG9jYXRpb24gPSBwYXJzZVN0YWNrTG9jYXRpb24oRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIikpO1xuICAgICAgaWYgKG51bGwgIT09IGxvY2F0aW9uKSB7XG4gICAgICAgIHZhciBmaWxlbmFtZSA9IGxvY2F0aW9uWzFdLFxuICAgICAgICAgIGxpbmUgPSBsb2NhdGlvblsyXTtcbiAgICAgICAgbG9jYXRpb24gPSBsb2NhdGlvblszXTtcbiAgICAgICAgZmluZFNvdXJjZU1hcFVSTCA9XG4gICAgICAgICAgbnVsbCA9PSBmaW5kU291cmNlTWFwVVJMXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogZmluZFNvdXJjZU1hcFVSTChmaWxlbmFtZSwgXCJDbGllbnRcIik7XG4gICAgICAgIGFjdGlvbiA9IGNyZWF0ZUZha2VTZXJ2ZXJGdW5jdGlvbihcbiAgICAgICAgICBmdW5jdGlvbk5hbWUgfHwgXCJcIixcbiAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgXCJDbGllbnRcIixcbiAgICAgICAgICBhY3Rpb25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlKFxuICAgICAgICBhY3Rpb24sXG4gICAgICAgIHsgaWQ6IGlkLCBib3VuZDogbnVsbCB9LFxuICAgICAgICBlbmNvZGVGb3JtQWN0aW9uXG4gICAgICApO1xuICAgICAgcmV0dXJuIGFjdGlvbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgICAgIGlmIChudWxsID09IHR5cGUpIHJldHVybiBudWxsO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHJldHVybiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiRnJhZ21lbnRcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQb3J0YWxcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlByb2ZpbGVyXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdHJpY3RNb2RlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgIH1cbiAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHR5cGUudGFnICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgdHlwZS4kJHR5cGVvZilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuUHJvdmlkZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICB2YXIgaW5uZXJUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIHR5cGUgfHxcbiAgICAgICAgICAgICAgKCh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAodHlwZSA9IFwiXCIgIT09IHR5cGUgPyBcIkZvcndhcmRSZWYoXCIgKyB0eXBlICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIikpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoaW5uZXJUeXBlID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgPyBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiTWVtb1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0UHJvbWlzZShzdGF0dXMsIHZhbHVlLCByZWFzb24sIHJlc3BvbnNlKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMucmVhc29uID0gcmVhc29uO1xuICAgICAgdGhpcy5fcmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgIHRoaXMuX2RlYnVnSW5mbyA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlYWRDaHVuayhjaHVuaykge1xuICAgICAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZGVsXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kdWxlXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZHVsZUNodW5rKGNodW5rKTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICByZXR1cm4gY2h1bmsudmFsdWU7XG4gICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgdGhyb3cgY2h1bms7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgY2h1bmsucmVhc29uO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiBuZXcgUmVhY3RQcm9taXNlKFwicGVuZGluZ1wiLCBudWxsLCBudWxsLCByZXNwb25zZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdha2VDaHVuayhsaXN0ZW5lcnMsIHZhbHVlKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykgKDAsIGxpc3RlbmVyc1tpXSkodmFsdWUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKGNodW5rLCByZXNvbHZlTGlzdGVuZXJzLCByZWplY3RMaXN0ZW5lcnMpIHtcbiAgICAgIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICB3YWtlQ2h1bmsocmVzb2x2ZUxpc3RlbmVycywgY2h1bmsudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICBjYXNlIFwiYmxvY2tlZFwiOlxuICAgICAgICAgIGlmIChjaHVuay52YWx1ZSlcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb2x2ZUxpc3RlbmVycy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgY2h1bmsudmFsdWUucHVzaChyZXNvbHZlTGlzdGVuZXJzW2ldKTtcbiAgICAgICAgICBlbHNlIGNodW5rLnZhbHVlID0gcmVzb2x2ZUxpc3RlbmVycztcbiAgICAgICAgICBpZiAoY2h1bmsucmVhc29uKSB7XG4gICAgICAgICAgICBpZiAocmVqZWN0TGlzdGVuZXJzKVxuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMgPSAwO1xuICAgICAgICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMgPCByZWplY3RMaXN0ZW5lcnMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMrK1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY2h1bmsucmVhc29uLnB1c2gocmVqZWN0TGlzdGVuZXJzW3Jlc29sdmVMaXN0ZW5lcnNdKTtcbiAgICAgICAgICB9IGVsc2UgY2h1bmsucmVhc29uID0gcmVqZWN0TGlzdGVuZXJzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICByZWplY3RMaXN0ZW5lcnMgJiYgd2FrZUNodW5rKHJlamVjdExpc3RlbmVycywgY2h1bmsucmVhc29uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdHJpZ2dlckVycm9yT25DaHVuayhjaHVuaywgZXJyb3IpIHtcbiAgICAgIGlmIChcInBlbmRpbmdcIiAhPT0gY2h1bmsuc3RhdHVzICYmIFwiYmxvY2tlZFwiICE9PSBjaHVuay5zdGF0dXMpXG4gICAgICAgIGNodW5rLnJlYXNvbi5lcnJvcihlcnJvcik7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGxpc3RlbmVycyA9IGNodW5rLnJlYXNvbjtcbiAgICAgICAgY2h1bmsuc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICBjaHVuay5yZWFzb24gPSBlcnJvcjtcbiAgICAgICAgbnVsbCAhPT0gbGlzdGVuZXJzICYmIHdha2VDaHVuayhsaXN0ZW5lcnMsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZWRJdGVyYXRvclJlc3VsdENodW5rKHJlc3BvbnNlLCB2YWx1ZSwgZG9uZSkge1xuICAgICAgcmV0dXJuIG5ldyBSZWFjdFByb21pc2UoXG4gICAgICAgIFwicmVzb2x2ZWRfbW9kZWxcIixcbiAgICAgICAgKGRvbmUgPyAne1wiZG9uZVwiOnRydWUsXCJ2YWx1ZVwiOicgOiAne1wiZG9uZVwiOmZhbHNlLFwidmFsdWVcIjonKSArXG4gICAgICAgICAgdmFsdWUgK1xuICAgICAgICAgIFwifVwiLFxuICAgICAgICBudWxsLFxuICAgICAgICByZXNwb25zZVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsoY2h1bmssIHZhbHVlLCBkb25lKSB7XG4gICAgICByZXNvbHZlTW9kZWxDaHVuayhcbiAgICAgICAgY2h1bmssXG4gICAgICAgIChkb25lID8gJ3tcImRvbmVcIjp0cnVlLFwidmFsdWVcIjonIDogJ3tcImRvbmVcIjpmYWxzZSxcInZhbHVlXCI6JykgK1xuICAgICAgICAgIHZhbHVlICtcbiAgICAgICAgICBcIn1cIlxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU1vZGVsQ2h1bmsoY2h1bmssIHZhbHVlKSB7XG4gICAgICBpZiAoXCJwZW5kaW5nXCIgIT09IGNodW5rLnN0YXR1cykgY2h1bmsucmVhc29uLmVucXVldWVNb2RlbCh2YWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIHJlc29sdmVMaXN0ZW5lcnMgPSBjaHVuay52YWx1ZSxcbiAgICAgICAgICByZWplY3RMaXN0ZW5lcnMgPSBjaHVuay5yZWFzb247XG4gICAgICAgIGNodW5rLnN0YXR1cyA9IFwicmVzb2x2ZWRfbW9kZWxcIjtcbiAgICAgICAgY2h1bmsudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgbnVsbCAhPT0gcmVzb2x2ZUxpc3RlbmVycyAmJlxuICAgICAgICAgIChpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuayksXG4gICAgICAgICAgd2FrZUNodW5rSWZJbml0aWFsaXplZChjaHVuaywgcmVzb2x2ZUxpc3RlbmVycywgcmVqZWN0TGlzdGVuZXJzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVNb2R1bGVDaHVuayhjaHVuaywgdmFsdWUpIHtcbiAgICAgIGlmIChcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzIHx8IFwiYmxvY2tlZFwiID09PSBjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgdmFyIHJlc29sdmVMaXN0ZW5lcnMgPSBjaHVuay52YWx1ZSxcbiAgICAgICAgICByZWplY3RMaXN0ZW5lcnMgPSBjaHVuay5yZWFzb247XG4gICAgICAgIGNodW5rLnN0YXR1cyA9IFwicmVzb2x2ZWRfbW9kdWxlXCI7XG4gICAgICAgIGNodW5rLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIG51bGwgIT09IHJlc29sdmVMaXN0ZW5lcnMgJiZcbiAgICAgICAgICAoaW5pdGlhbGl6ZU1vZHVsZUNodW5rKGNodW5rKSxcbiAgICAgICAgICB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKGNodW5rLCByZXNvbHZlTGlzdGVuZXJzLCByZWplY3RMaXN0ZW5lcnMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspIHtcbiAgICAgIHZhciBwcmV2SGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gbnVsbDtcbiAgICAgIHZhciByZXNvbHZlZE1vZGVsID0gY2h1bmsudmFsdWU7XG4gICAgICBjaHVuay5zdGF0dXMgPSBcImJsb2NrZWRcIjtcbiAgICAgIGNodW5rLnZhbHVlID0gbnVsbDtcbiAgICAgIGNodW5rLnJlYXNvbiA9IG51bGw7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKHJlc29sdmVkTW9kZWwsIGNodW5rLl9yZXNwb25zZS5fZnJvbUpTT04pLFxuICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMgPSBjaHVuay52YWx1ZTtcbiAgICAgICAgbnVsbCAhPT0gcmVzb2x2ZUxpc3RlbmVycyAmJlxuICAgICAgICAgICgoY2h1bmsudmFsdWUgPSBudWxsKSxcbiAgICAgICAgICAoY2h1bmsucmVhc29uID0gbnVsbCksXG4gICAgICAgICAgd2FrZUNodW5rKHJlc29sdmVMaXN0ZW5lcnMsIHZhbHVlKSk7XG4gICAgICAgIGlmIChudWxsICE9PSBpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgICAgaWYgKGluaXRpYWxpemluZ0hhbmRsZXIuZXJyb3JlZCkgdGhyb3cgaW5pdGlhbGl6aW5nSGFuZGxlci52YWx1ZTtcbiAgICAgICAgICBpZiAoMCA8IGluaXRpYWxpemluZ0hhbmRsZXIuZGVwcykge1xuICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlci5jaHVuayA9IGNodW5rO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaHVuay5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICBjaHVuay52YWx1ZSA9IHZhbHVlO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgKGNodW5rLnN0YXR1cyA9IFwicmVqZWN0ZWRcIiksIChjaHVuay5yZWFzb24gPSBlcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gcHJldkhhbmRsZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVNb2R1bGVDaHVuayhjaHVuaykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHZhbHVlID0gcmVxdWlyZU1vZHVsZShjaHVuay52YWx1ZSk7XG4gICAgICAgIGNodW5rLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgIGNodW5rLnZhbHVlID0gdmFsdWU7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAoY2h1bmsuc3RhdHVzID0gXCJyZWplY3RlZFwiKSwgKGNodW5rLnJlYXNvbiA9IGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVwb3J0R2xvYmFsRXJyb3IocmVzcG9uc2UsIGVycm9yKSB7XG4gICAgICByZXNwb25zZS5fY2h1bmtzLmZvckVhY2goZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgICAgIFwicGVuZGluZ1wiID09PSBjaHVuay5zdGF0dXMgJiYgdHJpZ2dlckVycm9yT25DaHVuayhjaHVuaywgZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG51bGxSZWZHZXR0ZXIoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihjaHVuaykge1xuICAgICAgdmFyIGxhenlUeXBlID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgICAgICBfcGF5bG9hZDogY2h1bmssXG4gICAgICAgIF9pbml0OiByZWFkQ2h1bmtcbiAgICAgIH07XG4gICAgICBjaHVuayA9IGNodW5rLl9kZWJ1Z0luZm8gfHwgKGNodW5rLl9kZWJ1Z0luZm8gPSBbXSk7XG4gICAgICBsYXp5VHlwZS5fZGVidWdJbmZvID0gY2h1bms7XG4gICAgICByZXR1cm4gbGF6eVR5cGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENodW5rKHJlc3BvbnNlLCBpZCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVuayB8fCAoKGNodW5rID0gY3JlYXRlUGVuZGluZ0NodW5rKHJlc3BvbnNlKSksIGNodW5rcy5zZXQoaWQsIGNodW5rKSk7XG4gICAgICByZXR1cm4gY2h1bms7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhaXRGb3JSZWZlcmVuY2UoXG4gICAgICByZWZlcmVuY2VkQ2h1bmssXG4gICAgICBwYXJlbnRPYmplY3QsXG4gICAgICBrZXksXG4gICAgICByZXNwb25zZSxcbiAgICAgIG1hcCxcbiAgICAgIHBhdGhcbiAgICApIHtcbiAgICAgIGZ1bmN0aW9uIGZ1bGZpbGwodmFsdWUpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgZm9yICg7IHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEU7IClcbiAgICAgICAgICAgIGlmICgoKHZhbHVlID0gdmFsdWUuX3BheWxvYWQpLCB2YWx1ZSA9PT0gaGFuZGxlci5jaHVuaykpXG4gICAgICAgICAgICAgIHZhbHVlID0gaGFuZGxlci52YWx1ZTtcbiAgICAgICAgICAgIGVsc2UgaWYgKFwiZnVsZmlsbGVkXCIgPT09IHZhbHVlLnN0YXR1cykgdmFsdWUgPSB2YWx1ZS52YWx1ZTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBwYXRoLnNwbGljZSgwLCBpIC0gMSk7XG4gICAgICAgICAgICAgIHZhbHVlLnRoZW4oZnVsZmlsbCwgcmVqZWN0KTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlID0gdmFsdWVbcGF0aFtpXV07XG4gICAgICAgIH1cbiAgICAgICAgaSA9IG1hcChyZXNwb25zZSwgdmFsdWUsIHBhcmVudE9iamVjdCwga2V5KTtcbiAgICAgICAgcGFyZW50T2JqZWN0W2tleV0gPSBpO1xuICAgICAgICBcIlwiID09PSBrZXkgJiYgbnVsbCA9PT0gaGFuZGxlci52YWx1ZSAmJiAoaGFuZGxlci52YWx1ZSA9IGkpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFyZW50T2JqZWN0WzBdID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgaGFuZGxlci52YWx1ZSAmJlxuICAgICAgICAgIG51bGwgIT09IGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgICBoYW5kbGVyLnZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICAgKVxuICAgICAgICAgIHN3aXRjaCAoKCh2YWx1ZSA9IGhhbmRsZXIudmFsdWUpLCBrZXkpKSB7XG4gICAgICAgICAgICBjYXNlIFwiM1wiOlxuICAgICAgICAgICAgICB2YWx1ZS5wcm9wcyA9IGk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIjRcIjpcbiAgICAgICAgICAgICAgdmFsdWUuX293bmVyID0gaTtcbiAgICAgICAgICB9XG4gICAgICAgIGhhbmRsZXIuZGVwcy0tO1xuICAgICAgICAwID09PSBoYW5kbGVyLmRlcHMgJiZcbiAgICAgICAgICAoKGkgPSBoYW5kbGVyLmNodW5rKSxcbiAgICAgICAgICBudWxsICE9PSBpICYmXG4gICAgICAgICAgICBcImJsb2NrZWRcIiA9PT0gaS5zdGF0dXMgJiZcbiAgICAgICAgICAgICgodmFsdWUgPSBpLnZhbHVlKSxcbiAgICAgICAgICAgIChpLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgICAgKGkudmFsdWUgPSBoYW5kbGVyLnZhbHVlKSxcbiAgICAgICAgICAgIG51bGwgIT09IHZhbHVlICYmIHdha2VDaHVuayh2YWx1ZSwgaGFuZGxlci52YWx1ZSkpKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHJlamVjdChlcnJvcikge1xuICAgICAgICBpZiAoIWhhbmRsZXIuZXJyb3JlZCkge1xuICAgICAgICAgIHZhciBibG9ja2VkVmFsdWUgPSBoYW5kbGVyLnZhbHVlO1xuICAgICAgICAgIGhhbmRsZXIuZXJyb3JlZCA9ICEwO1xuICAgICAgICAgIGhhbmRsZXIudmFsdWUgPSBlcnJvcjtcbiAgICAgICAgICB2YXIgY2h1bmsgPSBoYW5kbGVyLmNodW5rO1xuICAgICAgICAgIG51bGwgIT09IGNodW5rICYmXG4gICAgICAgICAgICBcImJsb2NrZWRcIiA9PT0gY2h1bmsuc3RhdHVzICYmXG4gICAgICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBibG9ja2VkVmFsdWUgJiZcbiAgICAgICAgICAgICAgYmxvY2tlZFZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgICAgICAgKChibG9ja2VkVmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGJsb2NrZWRWYWx1ZS50eXBlKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgIG93bmVyOiBibG9ja2VkVmFsdWUuX293bmVyXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAoY2h1bmsuX2RlYnVnSW5mbyB8fCAoY2h1bmsuX2RlYnVnSW5mbyA9IFtdKSkucHVzaChibG9ja2VkVmFsdWUpKSxcbiAgICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsoY2h1bmssIGVycm9yKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgaGFuZGxlci5kZXBzKys7XG4gICAgICB9IGVsc2VcbiAgICAgICAgaGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIGRlcHM6IDEsXG4gICAgICAgICAgZXJyb3JlZDogITFcbiAgICAgICAgfTtcbiAgICAgIHJlZmVyZW5jZWRDaHVuay50aGVuKGZ1bGZpbGwsIHJlamVjdCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG9hZFNlcnZlclJlZmVyZW5jZShyZXNwb25zZSwgbWV0YURhdGEsIHBhcmVudE9iamVjdCwga2V5KSB7XG4gICAgICBpZiAoIXJlc3BvbnNlLl9zZXJ2ZXJSZWZlcmVuY2VDb25maWcpXG4gICAgICAgIHJldHVybiBjcmVhdGVCb3VuZFNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgICBtZXRhRGF0YSxcbiAgICAgICAgICByZXNwb25zZS5fY2FsbFNlcnZlcixcbiAgICAgICAgICByZXNwb25zZS5fZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgICAgICByZXNwb25zZS5fZGVidWdGaW5kU291cmNlTWFwVVJMXG4gICAgICAgICk7XG4gICAgICB2YXIgc2VydmVyUmVmZXJlbmNlID0gcmVzb2x2ZVNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgcmVzcG9uc2UuX3NlcnZlclJlZmVyZW5jZUNvbmZpZyxcbiAgICAgICAgbWV0YURhdGEuaWRcbiAgICAgICk7XG4gICAgICBpZiAoKHJlc3BvbnNlID0gcHJlbG9hZE1vZHVsZShzZXJ2ZXJSZWZlcmVuY2UpKSlcbiAgICAgICAgbWV0YURhdGEuYm91bmQgJiYgKHJlc3BvbnNlID0gUHJvbWlzZS5hbGwoW3Jlc3BvbnNlLCBtZXRhRGF0YS5ib3VuZF0pKTtcbiAgICAgIGVsc2UgaWYgKG1ldGFEYXRhLmJvdW5kKSByZXNwb25zZSA9IFByb21pc2UucmVzb2x2ZShtZXRhRGF0YS5ib3VuZCk7XG4gICAgICBlbHNlIHJldHVybiByZXF1aXJlTW9kdWxlKHNlcnZlclJlZmVyZW5jZSk7XG4gICAgICBpZiAoaW5pdGlhbGl6aW5nSGFuZGxlcikge1xuICAgICAgICB2YXIgaGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICAgIGhhbmRsZXIuZGVwcysrO1xuICAgICAgfSBlbHNlXG4gICAgICAgIGhhbmRsZXIgPSBpbml0aWFsaXppbmdIYW5kbGVyID0ge1xuICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICBjaHVuazogbnVsbCxcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICBkZXBzOiAxLFxuICAgICAgICAgIGVycm9yZWQ6ICExXG4gICAgICAgIH07XG4gICAgICByZXNwb25zZS50aGVuKFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIHJlc29sdmVkVmFsdWUgPSByZXF1aXJlTW9kdWxlKHNlcnZlclJlZmVyZW5jZSk7XG4gICAgICAgICAgaWYgKG1ldGFEYXRhLmJvdW5kKSB7XG4gICAgICAgICAgICB2YXIgYm91bmRBcmdzID0gbWV0YURhdGEuYm91bmQudmFsdWUuc2xpY2UoMCk7XG4gICAgICAgICAgICBib3VuZEFyZ3MudW5zaGlmdChudWxsKTtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSByZXNvbHZlZFZhbHVlLmJpbmQuYXBwbHkocmVzb2x2ZWRWYWx1ZSwgYm91bmRBcmdzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGFyZW50T2JqZWN0W2tleV0gPSByZXNvbHZlZFZhbHVlO1xuICAgICAgICAgIFwiXCIgPT09IGtleSAmJlxuICAgICAgICAgICAgbnVsbCA9PT0gaGFuZGxlci52YWx1ZSAmJlxuICAgICAgICAgICAgKGhhbmRsZXIudmFsdWUgPSByZXNvbHZlZFZhbHVlKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXJlbnRPYmplY3RbMF0gPT09IFJFQUNUX0VMRU1FTlRfVFlQRSAmJlxuICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgICAgIG51bGwgIT09IGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgICAgIGhhbmRsZXIudmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHN3aXRjaCAoKChib3VuZEFyZ3MgPSBoYW5kbGVyLnZhbHVlKSwga2V5KSkge1xuICAgICAgICAgICAgICBjYXNlIFwiM1wiOlxuICAgICAgICAgICAgICAgIGJvdW5kQXJncy5wcm9wcyA9IHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCI0XCI6XG4gICAgICAgICAgICAgICAgYm91bmRBcmdzLl9vd25lciA9IHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgaGFuZGxlci5kZXBzLS07XG4gICAgICAgICAgMCA9PT0gaGFuZGxlci5kZXBzICYmXG4gICAgICAgICAgICAoKHJlc29sdmVkVmFsdWUgPSBoYW5kbGVyLmNodW5rKSxcbiAgICAgICAgICAgIG51bGwgIT09IHJlc29sdmVkVmFsdWUgJiZcbiAgICAgICAgICAgICAgXCJibG9ja2VkXCIgPT09IHJlc29sdmVkVmFsdWUuc3RhdHVzICYmXG4gICAgICAgICAgICAgICgoYm91bmRBcmdzID0gcmVzb2x2ZWRWYWx1ZS52YWx1ZSksXG4gICAgICAgICAgICAgIChyZXNvbHZlZFZhbHVlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgICAgICAocmVzb2x2ZWRWYWx1ZS52YWx1ZSA9IGhhbmRsZXIudmFsdWUpLFxuICAgICAgICAgICAgICBudWxsICE9PSBib3VuZEFyZ3MgJiYgd2FrZUNodW5rKGJvdW5kQXJncywgaGFuZGxlci52YWx1ZSkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKCFoYW5kbGVyLmVycm9yZWQpIHtcbiAgICAgICAgICAgIHZhciBibG9ja2VkVmFsdWUgPSBoYW5kbGVyLnZhbHVlO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcmVkID0gITA7XG4gICAgICAgICAgICBoYW5kbGVyLnZhbHVlID0gZXJyb3I7XG4gICAgICAgICAgICB2YXIgY2h1bmsgPSBoYW5kbGVyLmNodW5rO1xuICAgICAgICAgICAgbnVsbCAhPT0gY2h1bmsgJiZcbiAgICAgICAgICAgICAgXCJibG9ja2VkXCIgPT09IGNodW5rLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT09IGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIGJsb2NrZWRWYWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmXG4gICAgICAgICAgICAgICAgKChibG9ja2VkVmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoYmxvY2tlZFZhbHVlLnR5cGUpIHx8IFwiXCIsXG4gICAgICAgICAgICAgICAgICBvd25lcjogYmxvY2tlZFZhbHVlLl9vd25lclxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIChjaHVuay5fZGVidWdJbmZvIHx8IChjaHVuay5fZGVidWdJbmZvID0gW10pKS5wdXNoKFxuICAgICAgICAgICAgICAgICAgYmxvY2tlZFZhbHVlXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsoY2h1bmssIGVycm9yKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIHJlZmVyZW5jZSwgcGFyZW50T2JqZWN0LCBrZXksIG1hcCkge1xuICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlLnNwbGl0KFwiOlwiKTtcbiAgICAgIHZhciBpZCA9IHBhcnNlSW50KHJlZmVyZW5jZVswXSwgMTYpO1xuICAgICAgaWQgPSBnZXRDaHVuayhyZXNwb25zZSwgaWQpO1xuICAgICAgc3dpdGNoIChpZC5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZGVsXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoaWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kdWxlXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZHVsZUNodW5rKGlkKTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAoaWQuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICBmb3IgKHZhciB2YWx1ZSA9IGlkLnZhbHVlLCBpID0gMTsgaSA8IHJlZmVyZW5jZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yICg7IHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEU7IClcbiAgICAgICAgICAgICAgaWYgKCgodmFsdWUgPSB2YWx1ZS5fcGF5bG9hZCksIFwiZnVsZmlsbGVkXCIgPT09IHZhbHVlLnN0YXR1cykpXG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZTtcbiAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiB3YWl0Rm9yUmVmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZS5zbGljZShpIC0gMSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtyZWZlcmVuY2VbaV1dO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNwb25zZSA9IG1hcChyZXNwb25zZSwgdmFsdWUsIHBhcmVudE9iamVjdCwga2V5KTtcbiAgICAgICAgICBpZC5fZGVidWdJbmZvICYmXG4gICAgICAgICAgICAoXCJvYmplY3RcIiAhPT0gdHlwZW9mIHJlc3BvbnNlIHx8XG4gICAgICAgICAgICAgIG51bGwgPT09IHJlc3BvbnNlIHx8XG4gICAgICAgICAgICAgICghaXNBcnJheUltcGwocmVzcG9uc2UpICYmXG4gICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcmVzcG9uc2VbQVNZTkNfSVRFUkFUT1JdICYmXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuJCR0eXBlb2YgIT09IFJFQUNUX0VMRU1FTlRfVFlQRSkgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2UuX2RlYnVnSW5mbyB8fFxuICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzcG9uc2UsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkLl9kZWJ1Z0luZm9cbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICByZXR1cm4gd2FpdEZvclJlZmVyZW5jZShcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICByZWZlcmVuY2VcbiAgICAgICAgICApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyXG4gICAgICAgICAgICAgID8gKChpbml0aWFsaXppbmdIYW5kbGVyLmVycm9yZWQgPSAhMCksXG4gICAgICAgICAgICAgICAgKGluaXRpYWxpemluZ0hhbmRsZXIudmFsdWUgPSBpZC5yZWFzb24pKVxuICAgICAgICAgICAgICA6IChpbml0aWFsaXppbmdIYW5kbGVyID0ge1xuICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogaWQucmVhc29uLFxuICAgICAgICAgICAgICAgICAgZGVwczogMCxcbiAgICAgICAgICAgICAgICAgIGVycm9yZWQ6ICEwXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTWFwKHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmV0dXJuIG5ldyBNYXAobW9kZWwpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTZXQocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbmV3IFNldChtb2RlbCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUJsb2IocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2IobW9kZWwuc2xpY2UoMSksIHsgdHlwZTogbW9kZWxbMF0gfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZvcm1EYXRhKHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmVzcG9uc2UgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWwubGVuZ3RoOyBpKyspXG4gICAgICAgIHJlc3BvbnNlLmFwcGVuZChtb2RlbFtpXVswXSwgbW9kZWxbaV1bMV0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHRyYWN0SXRlcmF0b3IocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbW9kZWxbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVNb2RlbChyZXNwb25zZSwgbW9kZWwpIHtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VNb2RlbFN0cmluZyhyZXNwb25zZSwgcGFyZW50T2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoXCIkXCIgPT09IHZhbHVlWzBdKSB7XG4gICAgICAgIGlmIChcIiRcIiA9PT0gdmFsdWUpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG51bGwgIT09IGluaXRpYWxpemluZ0hhbmRsZXIgJiZcbiAgICAgICAgICAgICAgXCIwXCIgPT09IGtleSAmJlxuICAgICAgICAgICAgICAoaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGluaXRpYWxpemluZ0hhbmRsZXIsXG4gICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgZGVwczogMCxcbiAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICk7XG4gICAgICAgIHN3aXRjaCAodmFsdWVbMV0pIHtcbiAgICAgICAgICBjYXNlIFwiJFwiOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnNsaWNlKDEpO1xuICAgICAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyZW50T2JqZWN0ID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KSksXG4gICAgICAgICAgICAgIChyZXNwb25zZSA9IGdldENodW5rKHJlc3BvbnNlLCBwYXJlbnRPYmplY3QpKSxcbiAgICAgICAgICAgICAgY3JlYXRlTGF6eUNodW5rV3JhcHBlcihyZXNwb25zZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIkBcIjpcbiAgICAgICAgICAgIGlmICgyID09PSB2YWx1ZS5sZW5ndGgpIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgICBwYXJlbnRPYmplY3QgPSBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpO1xuICAgICAgICAgICAgcmV0dXJuIGdldENodW5rKHJlc3BvbnNlLCBwYXJlbnRPYmplY3QpO1xuICAgICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgICByZXR1cm4gU3ltYm9sLmZvcih2YWx1ZS5zbGljZSgyKSk7XG4gICAgICAgICAgY2FzZSBcIkZcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGxvYWRTZXJ2ZXJSZWZlcmVuY2VcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiVFwiOlxuICAgICAgICAgICAgcGFyZW50T2JqZWN0ID0gXCIkXCIgKyB2YWx1ZS5zbGljZSgyKTtcbiAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UuX3RlbXBSZWZzO1xuICAgICAgICAgICAgaWYgKG51bGwgPT0gcmVzcG9uc2UpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiTWlzc2luZyBhIHRlbXBvcmFyeSByZWZlcmVuY2Ugc2V0IGJ1dCB0aGUgUlNDIHJlc3BvbnNlIHJldHVybmVkIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZS4gUGFzcyBhIHRlbXBvcmFyeVJlZmVyZW5jZSBvcHRpb24gd2l0aCB0aGUgc2V0IHRoYXQgd2FzIHVzZWQgd2l0aCB0aGUgcmVwbHkuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5nZXQocGFyZW50T2JqZWN0KTtcbiAgICAgICAgICBjYXNlIFwiUVwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHZhbHVlID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCB2YWx1ZSwgcGFyZW50T2JqZWN0LCBrZXksIGNyZWF0ZU1hcClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIldcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgdmFsdWUsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVTZXQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJCXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAodmFsdWUgPSB2YWx1ZS5zbGljZSgyKSksXG4gICAgICAgICAgICAgIGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIHZhbHVlLCBwYXJlbnRPYmplY3QsIGtleSwgY3JlYXRlQmxvYilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIktcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGNyZWF0ZUZvcm1EYXRhXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIlpcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIHJlc29sdmVFcnJvckRldlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJpXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAodmFsdWUgPSB2YWx1ZS5zbGljZSgyKSksXG4gICAgICAgICAgICAgIGdldE91dGxpbmVkTW9kZWwoXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBleHRyYWN0SXRlcmF0b3JcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiSVwiOlxuICAgICAgICAgICAgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICAgIGNhc2UgXCItXCI6XG4gICAgICAgICAgICByZXR1cm4gXCIkLTBcIiA9PT0gdmFsdWUgPyAtMCA6IC1JbmZpbml0eTtcbiAgICAgICAgICBjYXNlIFwiTlwiOlxuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgICBjYXNlIFwidVwiOlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIGNhc2UgXCJEXCI6XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZS5zbGljZSgyKSkpO1xuICAgICAgICAgIGNhc2UgXCJuXCI6XG4gICAgICAgICAgICByZXR1cm4gQmlnSW50KHZhbHVlLnNsaWNlKDIpKTtcbiAgICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuICgwLCBldmFsKSh2YWx1ZS5zbGljZSgyKSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFwiWVwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudE9iamVjdCwga2V5LCB7XG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gXCJUaGlzIG9iamVjdCBoYXMgYmVlbiBvbWl0dGVkIGJ5IFJlYWN0IGluIHRoZSBjb25zb2xlIGxvZyB0byBhdm9pZCBzZW5kaW5nIHRvbyBtdWNoIGRhdGEgZnJvbSB0aGUgc2VydmVyLiBUcnkgbG9nZ2luZyBzbWFsbGVyIG9yIG1vcmUgc3BlY2lmaWMgb2JqZWN0cy5cIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICEwLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITFcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgdmFsdWUsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVNb2RlbClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWlzc2luZ0NhbGwoKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ1RyeWluZyB0byBjYWxsIGEgZnVuY3Rpb24gZnJvbSBcInVzZSBzZXJ2ZXJcIiBidXQgdGhlIGNhbGxTZXJ2ZXIgb3B0aW9uIHdhcyBub3QgaW1wbGVtZW50ZWQgaW4geW91ciByb3V0ZXIgcnVudGltZS4nXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBSZXNwb25zZUluc3RhbmNlKFxuICAgICAgYnVuZGxlckNvbmZpZyxcbiAgICAgIHNlcnZlclJlZmVyZW5jZUNvbmZpZyxcbiAgICAgIG1vZHVsZUxvYWRpbmcsXG4gICAgICBjYWxsU2VydmVyLFxuICAgICAgZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgIG5vbmNlLFxuICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcyxcbiAgICAgIGZpbmRTb3VyY2VNYXBVUkwsXG4gICAgICByZXBsYXlDb25zb2xlLFxuICAgICAgZW52aXJvbm1lbnROYW1lXG4gICAgKSB7XG4gICAgICB2YXIgY2h1bmtzID0gbmV3IE1hcCgpO1xuICAgICAgdGhpcy5fYnVuZGxlckNvbmZpZyA9IGJ1bmRsZXJDb25maWc7XG4gICAgICB0aGlzLl9zZXJ2ZXJSZWZlcmVuY2VDb25maWcgPSBzZXJ2ZXJSZWZlcmVuY2VDb25maWc7XG4gICAgICB0aGlzLl9tb2R1bGVMb2FkaW5nID0gbW9kdWxlTG9hZGluZztcbiAgICAgIHRoaXMuX2NhbGxTZXJ2ZXIgPSB2b2lkIDAgIT09IGNhbGxTZXJ2ZXIgPyBjYWxsU2VydmVyIDogbWlzc2luZ0NhbGw7XG4gICAgICB0aGlzLl9lbmNvZGVGb3JtQWN0aW9uID0gZW5jb2RlRm9ybUFjdGlvbjtcbiAgICAgIHRoaXMuX25vbmNlID0gbm9uY2U7XG4gICAgICB0aGlzLl9jaHVua3MgPSBjaHVua3M7XG4gICAgICB0aGlzLl9zdHJpbmdEZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgICB0aGlzLl9mcm9tSlNPTiA9IG51bGw7XG4gICAgICB0aGlzLl9yb3dMZW5ndGggPSB0aGlzLl9yb3dUYWcgPSB0aGlzLl9yb3dJRCA9IHRoaXMuX3Jvd1N0YXRlID0gMDtcbiAgICAgIHRoaXMuX2J1ZmZlciA9IFtdO1xuICAgICAgdGhpcy5fdGVtcFJlZnMgPSB0ZW1wb3JhcnlSZWZlcmVuY2VzO1xuICAgICAgdGhpcy5fZGVidWdSb290T3duZXIgPSBidW5kbGVyQ29uZmlnID1cbiAgICAgICAgdm9pZCAwID09PSBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyIHx8XG4gICAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIuQVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogUmVhY3RTaGFyZWRJbnRlcmFsc1NlcnZlci5BLmdldE93bmVyKCk7XG4gICAgICB0aGlzLl9kZWJ1Z1Jvb3RTdGFjayA9XG4gICAgICAgIG51bGwgIT09IGJ1bmRsZXJDb25maWcgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKSA6IG51bGw7XG4gICAgICB0aGlzLl9kZWJ1Z0ZpbmRTb3VyY2VNYXBVUkwgPSBmaW5kU291cmNlTWFwVVJMO1xuICAgICAgdGhpcy5fcmVwbGF5Q29uc29sZSA9IHJlcGxheUNvbnNvbGU7XG4gICAgICB0aGlzLl9yb290RW52aXJvbm1lbnROYW1lID1cbiAgICAgICAgdm9pZCAwID09PSBlbnZpcm9ubWVudE5hbWUgPyBcIlNlcnZlclwiIDogZW52aXJvbm1lbnROYW1lO1xuICAgICAgdGhpcy5fZnJvbUpTT04gPSBjcmVhdGVGcm9tSlNPTkNhbGxiYWNrKHRoaXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlTW9kZWwocmVzcG9uc2UsIGlkLCBtb2RlbCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVua1xuICAgICAgICA/IHJlc29sdmVNb2RlbENodW5rKGNodW5rLCBtb2RlbClcbiAgICAgICAgOiBjaHVua3Muc2V0KFxuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBuZXcgUmVhY3RQcm9taXNlKFwicmVzb2x2ZWRfbW9kZWxcIiwgbW9kZWwsIG51bGwsIHJlc3BvbnNlKVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVUZXh0KHJlc3BvbnNlLCBpZCwgdGV4dCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVuayAmJiBcInBlbmRpbmdcIiAhPT0gY2h1bmsuc3RhdHVzXG4gICAgICAgID8gY2h1bmsucmVhc29uLmVucXVldWVWYWx1ZSh0ZXh0KVxuICAgICAgICA6IGNodW5rcy5zZXQoaWQsIG5ldyBSZWFjdFByb21pc2UoXCJmdWxmaWxsZWRcIiwgdGV4dCwgbnVsbCwgcmVzcG9uc2UpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUJ1ZmZlcihyZXNwb25zZSwgaWQsIGJ1ZmZlcikge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVuayAmJiBcInBlbmRpbmdcIiAhPT0gY2h1bmsuc3RhdHVzXG4gICAgICAgID8gY2h1bmsucmVhc29uLmVucXVldWVWYWx1ZShidWZmZXIpXG4gICAgICAgIDogY2h1bmtzLnNldChpZCwgbmV3IFJlYWN0UHJvbWlzZShcImZ1bGZpbGxlZFwiLCBidWZmZXIsIG51bGwsIHJlc3BvbnNlKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVNb2R1bGUocmVzcG9uc2UsIGlkLCBtb2RlbCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBtb2RlbCA9IEpTT04ucGFyc2UobW9kZWwsIHJlc3BvbnNlLl9mcm9tSlNPTik7XG4gICAgICB2YXIgY2xpZW50UmVmZXJlbmNlID0gcmVzb2x2ZUNsaWVudFJlZmVyZW5jZShcbiAgICAgICAgcmVzcG9uc2UuX2J1bmRsZXJDb25maWcsXG4gICAgICAgIG1vZGVsXG4gICAgICApO1xuICAgICAgcHJlcGFyZURlc3RpbmF0aW9uV2l0aENodW5rcyhcbiAgICAgICAgcmVzcG9uc2UuX21vZHVsZUxvYWRpbmcsXG4gICAgICAgIG1vZGVsWzFdLFxuICAgICAgICByZXNwb25zZS5fbm9uY2VcbiAgICAgICk7XG4gICAgICBpZiAoKG1vZGVsID0gcHJlbG9hZE1vZHVsZShjbGllbnRSZWZlcmVuY2UpKSkge1xuICAgICAgICBpZiAoY2h1bmspIHtcbiAgICAgICAgICB2YXIgYmxvY2tlZENodW5rID0gY2h1bms7XG4gICAgICAgICAgYmxvY2tlZENodW5rLnN0YXR1cyA9IFwiYmxvY2tlZFwiO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICAoYmxvY2tlZENodW5rID0gbmV3IFJlYWN0UHJvbWlzZShcImJsb2NrZWRcIiwgbnVsbCwgbnVsbCwgcmVzcG9uc2UpKSxcbiAgICAgICAgICAgIGNodW5rcy5zZXQoaWQsIGJsb2NrZWRDaHVuayk7XG4gICAgICAgIG1vZGVsLnRoZW4oXG4gICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVNb2R1bGVDaHVuayhibG9ja2VkQ2h1bmssIGNsaWVudFJlZmVyZW5jZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyRXJyb3JPbkNodW5rKGJsb2NrZWRDaHVuaywgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZVxuICAgICAgICBjaHVua1xuICAgICAgICAgID8gcmVzb2x2ZU1vZHVsZUNodW5rKGNodW5rLCBjbGllbnRSZWZlcmVuY2UpXG4gICAgICAgICAgOiBjaHVua3Muc2V0KFxuICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgICAgICAgICBcInJlc29sdmVkX21vZHVsZVwiLFxuICAgICAgICAgICAgICAgIGNsaWVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVTdHJlYW0ocmVzcG9uc2UsIGlkLCBzdHJlYW0sIGNvbnRyb2xsZXIpIHtcbiAgICAgIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzLFxuICAgICAgICBjaHVuayA9IGNodW5rcy5nZXQoaWQpO1xuICAgICAgY2h1bmtcbiAgICAgICAgPyBcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzICYmXG4gICAgICAgICAgKChyZXNwb25zZSA9IGNodW5rLnZhbHVlKSxcbiAgICAgICAgICAoY2h1bmsuc3RhdHVzID0gXCJmdWxmaWxsZWRcIiksXG4gICAgICAgICAgKGNodW5rLnZhbHVlID0gc3RyZWFtKSxcbiAgICAgICAgICAoY2h1bmsucmVhc29uID0gY29udHJvbGxlciksXG4gICAgICAgICAgbnVsbCAhPT0gcmVzcG9uc2UgJiYgd2FrZUNodW5rKHJlc3BvbnNlLCBjaHVuay52YWx1ZSkpXG4gICAgICAgIDogY2h1bmtzLnNldChcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmV3IFJlYWN0UHJvbWlzZShcImZ1bGZpbGxlZFwiLCBzdHJlYW0sIGNvbnRyb2xsZXIsIHJlc3BvbnNlKVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0UmVhZGFibGVTdHJlYW0ocmVzcG9uc2UsIGlkLCB0eXBlKSB7XG4gICAgICB2YXIgY29udHJvbGxlciA9IG51bGw7XG4gICAgICB0eXBlID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgY29udHJvbGxlciA9IGM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbDtcbiAgICAgIHJlc29sdmVTdHJlYW0ocmVzcG9uc2UsIGlkLCB0eXBlLCB7XG4gICAgICAgIGVucXVldWVWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNCbG9ja2VkQ2h1bmtcbiAgICAgICAgICAgID8gY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKVxuICAgICAgICAgICAgOiBwcmV2aW91c0Jsb2NrZWRDaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5xdWV1ZU1vZGVsOiBmdW5jdGlvbiAoanNvbikge1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVuaykge1xuICAgICAgICAgICAgdmFyIGNodW5rID0gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgICAgICAgXCJyZXNvbHZlZF9tb2RlbFwiLFxuICAgICAgICAgICAgICBqc29uLFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICByZXNwb25zZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKTtcbiAgICAgICAgICAgIFwiZnVsZmlsbGVkXCIgPT09IGNodW5rLnN0YXR1c1xuICAgICAgICAgICAgICA/IGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuay52YWx1ZSlcbiAgICAgICAgICAgICAgOiAoY2h1bmsudGhlbihcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUodik7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAocHJldmlvdXNCbG9ja2VkQ2h1bmsgPSBjaHVuaykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaHVuayA9IHByZXZpb3VzQmxvY2tlZENodW5rO1xuICAgICAgICAgICAgdmFyIF9jaHVuazMgPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgICAgICAgX2NodW5rMy50aGVuKFxuICAgICAgICAgICAgICBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUodik7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwcmV2aW91c0Jsb2NrZWRDaHVuayA9IF9jaHVuazM7XG4gICAgICAgICAgICBjaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcHJldmlvdXNCbG9ja2VkQ2h1bmsgPT09IF9jaHVuazMgJiYgKHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbCk7XG4gICAgICAgICAgICAgIHJlc29sdmVNb2RlbENodW5rKF9jaHVuazMsIGpzb24pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVuaykgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyIGJsb2NrZWRDaHVuayA9IHByZXZpb3VzQmxvY2tlZENodW5rO1xuICAgICAgICAgICAgcHJldmlvdXNCbG9ja2VkQ2h1bmsgPSBudWxsO1xuICAgICAgICAgICAgYmxvY2tlZENodW5rLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHByZXZpb3VzQmxvY2tlZENodW5rKSBjb250cm9sbGVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBibG9ja2VkQ2h1bmsgPSBwcmV2aW91c0Jsb2NrZWRDaHVuaztcbiAgICAgICAgICAgIHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbDtcbiAgICAgICAgICAgIGJsb2NrZWRDaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXN5bmNJdGVyYXRvcigpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVJdGVyYXRvcihuZXh0KSB7XG4gICAgICBuZXh0ID0geyBuZXh0OiBuZXh0IH07XG4gICAgICBuZXh0W0FTWU5DX0lURVJBVE9SXSA9IGFzeW5jSXRlcmF0b3I7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRBc3luY0l0ZXJhYmxlKHJlc3BvbnNlLCBpZCwgaXRlcmF0b3IpIHtcbiAgICAgIHZhciBidWZmZXIgPSBbXSxcbiAgICAgICAgY2xvc2VkID0gITEsXG4gICAgICAgIG5leHRXcml0ZUluZGV4ID0gMCxcbiAgICAgICAgaXRlcmFibGUgPSBfZGVmaW5lUHJvcGVydHkoe30sIEFTWU5DX0lURVJBVE9SLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIG5leHRSZWFkSW5kZXggPSAwO1xuICAgICAgICAgIHJldHVybiBjcmVhdGVJdGVyYXRvcihmdW5jdGlvbiAoYXJnKSB7XG4gICAgICAgICAgICBpZiAodm9pZCAwICE9PSBhcmcpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiVmFsdWVzIGNhbm5vdCBiZSBwYXNzZWQgdG8gbmV4dCgpIG9mIEFzeW5jSXRlcmFibGVzIHBhc3NlZCB0byBDbGllbnQgQ29tcG9uZW50cy5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKG5leHRSZWFkSW5kZXggPT09IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgaWYgKGNsb3NlZClcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgICAgICAgICAgIFwiZnVsZmlsbGVkXCIsXG4gICAgICAgICAgICAgICAgICB7IGRvbmU6ICEwLCB2YWx1ZTogdm9pZCAwIH0sXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBidWZmZXJbbmV4dFJlYWRJbmRleF0gPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlcltuZXh0UmVhZEluZGV4KytdO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIHJlc29sdmVTdHJlYW0oXG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgICBpZCxcbiAgICAgICAgaXRlcmF0b3IgPyBpdGVyYWJsZVtBU1lOQ19JVEVSQVRPUl0oKSA6IGl0ZXJhYmxlLFxuICAgICAgICB7XG4gICAgICAgICAgZW5xdWV1ZVZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChuZXh0V3JpdGVJbmRleCA9PT0gYnVmZmVyLmxlbmd0aClcbiAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4XSA9IG5ldyBSZWFjdFByb21pc2UoXG4gICAgICAgICAgICAgICAgXCJmdWxmaWxsZWRcIixcbiAgICAgICAgICAgICAgICB7IGRvbmU6ICExLCB2YWx1ZTogdmFsdWUgfSxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIGNodW5rID0gYnVmZmVyW25leHRXcml0ZUluZGV4XSxcbiAgICAgICAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWUsXG4gICAgICAgICAgICAgICAgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICAgICAgICAgICAgICBjaHVuay5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgICAgICBjaHVuay52YWx1ZSA9IHsgZG9uZTogITEsIHZhbHVlOiB2YWx1ZSB9O1xuICAgICAgICAgICAgICBudWxsICE9PSByZXNvbHZlTGlzdGVuZXJzICYmXG4gICAgICAgICAgICAgICAgd2FrZUNodW5rSWZJbml0aWFsaXplZChcbiAgICAgICAgICAgICAgICAgIGNodW5rLFxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycyxcbiAgICAgICAgICAgICAgICAgIHJlamVjdExpc3RlbmVyc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCsrO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5xdWV1ZU1vZGVsOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIG5leHRXcml0ZUluZGV4ID09PSBidWZmZXIubGVuZ3RoXG4gICAgICAgICAgICAgID8gKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0gPSBjcmVhdGVSZXNvbHZlZEl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICA6IHJlc29sdmVJdGVyYXRvclJlc3VsdENodW5rKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0sIHZhbHVlLCAhMSk7XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCsrO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgY2xvc2VkID0gITA7XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCA9PT0gYnVmZmVyLmxlbmd0aFxuICAgICAgICAgICAgICA/IChidWZmZXJbbmV4dFdyaXRlSW5kZXhdID0gY3JlYXRlUmVzb2x2ZWRJdGVyYXRvclJlc3VsdENodW5rKFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICEwXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgOiByZXNvbHZlSXRlcmF0b3JSZXN1bHRDaHVuayhidWZmZXJbbmV4dFdyaXRlSW5kZXhdLCB2YWx1ZSwgITApO1xuICAgICAgICAgICAgZm9yIChuZXh0V3JpdGVJbmRleCsrOyBuZXh0V3JpdGVJbmRleCA8IGJ1ZmZlci5sZW5ndGg7IClcbiAgICAgICAgICAgICAgcmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4KytdLFxuICAgICAgICAgICAgICAgICdcIiR1bmRlZmluZWRcIicsXG4gICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNsb3NlZCA9ICEwO1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgbmV4dFdyaXRlSW5kZXggPT09IGJ1ZmZlci5sZW5ndGggJiZcbiAgICAgICAgICAgICAgKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0gPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpKTtcbiAgICAgICAgICAgICAgbmV4dFdyaXRlSW5kZXggPCBidWZmZXIubGVuZ3RoO1xuXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsoYnVmZmVyW25leHRXcml0ZUluZGV4KytdLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdG9wU3RyZWFtKHJlc3BvbnNlLCBpZCwgcm93KSB7XG4gICAgICAocmVzcG9uc2UgPSByZXNwb25zZS5fY2h1bmtzLmdldChpZCkpICYmXG4gICAgICAgIFwiZnVsZmlsbGVkXCIgPT09IHJlc3BvbnNlLnN0YXR1cyAmJlxuICAgICAgICByZXNwb25zZS5yZWFzb24uY2xvc2UoXCJcIiA9PT0gcm93ID8gJ1wiJHVuZGVmaW5lZFwiJyA6IHJvdyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVFcnJvckRldihyZXNwb25zZSwgZXJyb3JJbmZvKSB7XG4gICAgICB2YXIgZW52ID0gZXJyb3JJbmZvLmVudjtcbiAgICAgIGVycm9ySW5mbyA9IGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIGVycm9ySW5mby5zdGFjayxcbiAgICAgICAgZW52LFxuICAgICAgICBFcnJvci5iaW5kKFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgZXJyb3JJbmZvLm1lc3NhZ2UgfHxcbiAgICAgICAgICAgIFwiQW4gZXJyb3Igb2NjdXJyZWQgaW4gdGhlIFNlcnZlciBDb21wb25lbnRzIHJlbmRlciBidXQgbm8gbWVzc2FnZSB3YXMgcHJvdmlkZWRcIlxuICAgICAgICApXG4gICAgICApO1xuICAgICAgcmVzcG9uc2UgPSBnZXRSb290VGFzayhyZXNwb25zZSwgZW52KTtcbiAgICAgIHJlc3BvbnNlID0gbnVsbCAhPSByZXNwb25zZSA/IHJlc3BvbnNlLnJ1bihlcnJvckluZm8pIDogZXJyb3JJbmZvKCk7XG4gICAgICByZXNwb25zZS5lbnZpcm9ubWVudE5hbWUgPSBlbnY7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVIaW50KHJlc3BvbnNlLCBjb2RlLCBtb2RlbCkge1xuICAgICAgcmVzcG9uc2UgPSBKU09OLnBhcnNlKG1vZGVsLCByZXNwb25zZS5fZnJvbUpTT04pO1xuICAgICAgbW9kZWwgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5kO1xuICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgIGNhc2UgXCJEXCI6XG4gICAgICAgICAgbW9kZWwuRChyZXNwb25zZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJDXCI6XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICA/IG1vZGVsLkMocmVzcG9uc2UpXG4gICAgICAgICAgICA6IG1vZGVsLkMocmVzcG9uc2VbMF0sIHJlc3BvbnNlWzFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICBjb2RlID0gcmVzcG9uc2VbMF07XG4gICAgICAgICAgdmFyIGFzID0gcmVzcG9uc2VbMV07XG4gICAgICAgICAgMyA9PT0gcmVzcG9uc2UubGVuZ3RoXG4gICAgICAgICAgICA/IG1vZGVsLkwoY29kZSwgYXMsIHJlc3BvbnNlWzJdKVxuICAgICAgICAgICAgOiBtb2RlbC5MKGNvZGUsIGFzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcmVzcG9uc2VcbiAgICAgICAgICAgID8gbW9kZWwubShyZXNwb25zZSlcbiAgICAgICAgICAgIDogbW9kZWwubShyZXNwb25zZVswXSwgcmVzcG9uc2VbMV0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiWFwiOlxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiByZXNwb25zZVxuICAgICAgICAgICAgPyBtb2RlbC5YKHJlc3BvbnNlKVxuICAgICAgICAgICAgOiBtb2RlbC5YKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICA/IG1vZGVsLlMocmVzcG9uc2UpXG4gICAgICAgICAgICA6IG1vZGVsLlMoXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VbMF0sXG4gICAgICAgICAgICAgICAgMCA9PT0gcmVzcG9uc2VbMV0gPyB2b2lkIDAgOiByZXNwb25zZVsxXSxcbiAgICAgICAgICAgICAgICAzID09PSByZXNwb25zZS5sZW5ndGggPyByZXNwb25zZVsyXSA6IHZvaWQgMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiByZXNwb25zZVxuICAgICAgICAgICAgPyBtb2RlbC5NKHJlc3BvbnNlKVxuICAgICAgICAgICAgOiBtb2RlbC5NKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZha2VGdW5jdGlvbihcbiAgICAgIG5hbWUsXG4gICAgICBmaWxlbmFtZSxcbiAgICAgIHNvdXJjZU1hcCxcbiAgICAgIGxpbmUsXG4gICAgICBjb2wsXG4gICAgICBlbnZpcm9ubWVudE5hbWVcbiAgICApIHtcbiAgICAgIG5hbWUgfHwgKG5hbWUgPSBcIjxhbm9ueW1vdXM+XCIpO1xuICAgICAgdmFyIGVuY29kZWROYW1lID0gSlNPTi5zdHJpbmdpZnkobmFtZSk7XG4gICAgICAxID49IGxpbmVcbiAgICAgICAgPyAoKGxpbmUgPSBlbmNvZGVkTmFtZS5sZW5ndGggKyA3KSxcbiAgICAgICAgICAoY29sID1cbiAgICAgICAgICAgIFwiKHtcIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIjpfPT5cIiArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoY29sIDwgbGluZSA/IDAgOiBjb2wgLSBsaW5lKSArXG4gICAgICAgICAgICBcIl8oKX0pXFxuLyogVGhpcyBtb2R1bGUgd2FzIHJlbmRlcmVkIGJ5IGEgU2VydmVyIENvbXBvbmVudC4gVHVybiBvbiBTb3VyY2UgTWFwcyB0byBzZWUgdGhlIHNlcnZlciBzb3VyY2UuICovXCIpKVxuICAgICAgICA6IChjb2wgPVxuICAgICAgICAgICAgXCIvKiBUaGlzIG1vZHVsZSB3YXMgcmVuZGVyZWQgYnkgYSBTZXJ2ZXIgQ29tcG9uZW50LiBUdXJuIG9uIFNvdXJjZSBNYXBzIHRvIHNlZSB0aGUgc2VydmVyIHNvdXJjZS4gKi9cIiArXG4gICAgICAgICAgICBcIlxcblwiLnJlcGVhdChsaW5lIC0gMikgK1xuICAgICAgICAgICAgXCIoe1wiICtcbiAgICAgICAgICAgIGVuY29kZWROYW1lICtcbiAgICAgICAgICAgIFwiOl89PlxcblwiICtcbiAgICAgICAgICAgIFwiIFwiLnJlcGVhdCgxID4gY29sID8gMCA6IGNvbCAtIDEpICtcbiAgICAgICAgICAgIFwiXygpfSlcIik7XG4gICAgICBmaWxlbmFtZS5zdGFydHNXaXRoKFwiL1wiKSAmJiAoZmlsZW5hbWUgPSBcImZpbGU6Ly9cIiArIGZpbGVuYW1lKTtcbiAgICAgIHNvdXJjZU1hcFxuICAgICAgICA/ICgoY29sICs9XG4gICAgICAgICAgICBcIlxcbi8vIyBzb3VyY2VVUkw9cnNjOi8vUmVhY3QvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGVudmlyb25tZW50TmFtZSkgK1xuICAgICAgICAgICAgXCIvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJKGZpbGVuYW1lKSArXG4gICAgICAgICAgICBcIj9cIiArXG4gICAgICAgICAgICBmYWtlRnVuY3Rpb25JZHgrKyksXG4gICAgICAgICAgKGNvbCArPSBcIlxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVwiICsgc291cmNlTWFwKSlcbiAgICAgICAgOiAoY29sID0gZmlsZW5hbWVcbiAgICAgICAgICAgID8gY29sICsgKFwiXFxuLy8jIHNvdXJjZVVSTD1cIiArIGVuY29kZVVSSShmaWxlbmFtZSkpXG4gICAgICAgICAgICA6IGNvbCArIFwiXFxuLy8jIHNvdXJjZVVSTD08YW5vbnltb3VzPlwiKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBmbiA9ICgwLCBldmFsKShjb2wpW25hbWVdO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBmbiA9IGZ1bmN0aW9uIChfKSB7XG4gICAgICAgICAgcmV0dXJuIF8oKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gYnVpbGRGYWtlQ2FsbFN0YWNrKHJlc3BvbnNlLCBzdGFjaywgZW52aXJvbm1lbnROYW1lLCBpbm5lckNhbGwpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhY2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGZyYW1lID0gc3RhY2tbaV0sXG4gICAgICAgICAgZnJhbWVLZXkgPSBmcmFtZS5qb2luKFwiLVwiKSArIFwiLVwiICsgZW52aXJvbm1lbnROYW1lLFxuICAgICAgICAgIGZuID0gZmFrZUZ1bmN0aW9uQ2FjaGUuZ2V0KGZyYW1lS2V5KTtcbiAgICAgICAgaWYgKHZvaWQgMCA9PT0gZm4pIHtcbiAgICAgICAgICBmbiA9IGZyYW1lWzBdO1xuICAgICAgICAgIHZhciBmaWxlbmFtZSA9IGZyYW1lWzFdLFxuICAgICAgICAgICAgbGluZSA9IGZyYW1lWzJdO1xuICAgICAgICAgIGZyYW1lID0gZnJhbWVbM107XG4gICAgICAgICAgdmFyIGZpbmRTb3VyY2VNYXBVUkwgPSByZXNwb25zZS5fZGVidWdGaW5kU291cmNlTWFwVVJMO1xuICAgICAgICAgIGZpbmRTb3VyY2VNYXBVUkwgPSBmaW5kU291cmNlTWFwVVJMXG4gICAgICAgICAgICA/IGZpbmRTb3VyY2VNYXBVUkwoZmlsZW5hbWUsIGVudmlyb25tZW50TmFtZSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICBmbiA9IGNyZWF0ZUZha2VGdW5jdGlvbihcbiAgICAgICAgICAgIGZuLFxuICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgIGZyYW1lLFxuICAgICAgICAgICAgZW52aXJvbm1lbnROYW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgICBmYWtlRnVuY3Rpb25DYWNoZS5zZXQoZnJhbWVLZXksIGZuKTtcbiAgICAgICAgfVxuICAgICAgICBpbm5lckNhbGwgPSBmbi5iaW5kKG51bGwsIGlubmVyQ2FsbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5uZXJDYWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSb290VGFzayhyZXNwb25zZSwgY2hpbGRFbnZpcm9ubWVudE5hbWUpIHtcbiAgICAgIHZhciByb290VGFzayA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RUYXNrO1xuICAgICAgcmV0dXJuIHJvb3RUYXNrXG4gICAgICAgID8gcmVzcG9uc2UuX3Jvb3RFbnZpcm9ubWVudE5hbWUgIT09IGNoaWxkRW52aXJvbm1lbnROYW1lXG4gICAgICAgICAgPyAoKHJlc3BvbnNlID0gY29uc29sZS5jcmVhdGVUYXNrLmJpbmQoXG4gICAgICAgICAgICAgIGNvbnNvbGUsXG4gICAgICAgICAgICAgICdcInVzZSAnICsgY2hpbGRFbnZpcm9ubWVudE5hbWUudG9Mb3dlckNhc2UoKSArICdcIidcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgcm9vdFRhc2sucnVuKHJlc3BvbnNlKSlcbiAgICAgICAgICA6IHJvb3RUYXNrXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmFrZUpTWENhbGxTaXRlKCkge1xuICAgICAgcmV0dXJuIEVycm9yKFwicmVhY3Qtc3RhY2stdG9wLWZyYW1lXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBkZWJ1Z0luZm8pIHtcbiAgICAgIHZvaWQgMCA9PT0gZGVidWdJbmZvLmRlYnVnU3RhY2sgJiZcbiAgICAgICAgKG51bGwgIT0gZGVidWdJbmZvLnN0YWNrICYmXG4gICAgICAgICAgKGRlYnVnSW5mby5kZWJ1Z1N0YWNrID0gY3JlYXRlRmFrZUpTWENhbGxTdGFja0luREVWKFxuICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICBkZWJ1Z0luZm8uc3RhY2ssXG4gICAgICAgICAgICBudWxsID09IGRlYnVnSW5mby5lbnYgPyBcIlwiIDogZGVidWdJbmZvLmVudlxuICAgICAgICAgICkpLFxuICAgICAgICBudWxsICE9IGRlYnVnSW5mby5vd25lciAmJlxuICAgICAgICAgIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIGRlYnVnSW5mby5vd25lcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlRGVidWdJbmZvKHJlc3BvbnNlLCBpZCwgZGVidWdJbmZvKSB7XG4gICAgICBudWxsID09PSBkZWJ1Z0luZm8ub3duZXIgJiYgbnVsbCAhPSByZXNwb25zZS5fZGVidWdSb290T3duZXJcbiAgICAgICAgPyAoKGRlYnVnSW5mby5vd25lciA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RPd25lciksXG4gICAgICAgICAgKGRlYnVnSW5mby5kZWJ1Z1N0YWNrID0gcmVzcG9uc2UuX2RlYnVnUm9vdFN0YWNrKSlcbiAgICAgICAgOiBpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBkZWJ1Z0luZm8pO1xuICAgICAgcmVzcG9uc2UgPSBnZXRDaHVuayhyZXNwb25zZSwgaWQpO1xuICAgICAgKHJlc3BvbnNlLl9kZWJ1Z0luZm8gfHwgKHJlc3BvbnNlLl9kZWJ1Z0luZm8gPSBbXSkpLnB1c2goZGVidWdJbmZvKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q3VycmVudFN0YWNrSW5ERVYoKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUNvbnNvbGVFbnRyeShyZXNwb25zZSwgdmFsdWUpIHtcbiAgICAgIGlmIChyZXNwb25zZS5fcmVwbGF5Q29uc29sZSkge1xuICAgICAgICB2YXIgcGF5bG9hZCA9IEpTT04ucGFyc2UodmFsdWUsIHJlc3BvbnNlLl9mcm9tSlNPTik7XG4gICAgICAgIHZhbHVlID0gcGF5bG9hZFswXTtcbiAgICAgICAgdmFyIHN0YWNrVHJhY2UgPSBwYXlsb2FkWzFdLFxuICAgICAgICAgIG93bmVyID0gcGF5bG9hZFsyXSxcbiAgICAgICAgICBlbnYgPSBwYXlsb2FkWzNdO1xuICAgICAgICBwYXlsb2FkID0gcGF5bG9hZC5zbGljZSg0KTtcbiAgICAgICAgcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2tJbkRFVihcbiAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBzdGFja1RyYWNlLFxuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGVudixcbiAgICAgICAgICBwYXlsb2FkXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1lcmdlQnVmZmVyKGJ1ZmZlciwgbGFzdENodW5rKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgbCA9IGJ1ZmZlci5sZW5ndGgsIGJ5dGVMZW5ndGggPSBsYXN0Q2h1bmsubGVuZ3RoLCBpID0gMDtcbiAgICAgICAgaSA8IGw7XG4gICAgICAgIGkrK1xuICAgICAgKVxuICAgICAgICBieXRlTGVuZ3RoICs9IGJ1ZmZlcltpXS5ieXRlTGVuZ3RoO1xuICAgICAgYnl0ZUxlbmd0aCA9IG5ldyBVaW50OEFycmF5KGJ5dGVMZW5ndGgpO1xuICAgICAgZm9yICh2YXIgX2kyID0gKGkgPSAwKTsgX2kyIDwgbDsgX2kyKyspIHtcbiAgICAgICAgdmFyIGNodW5rID0gYnVmZmVyW19pMl07XG4gICAgICAgIGJ5dGVMZW5ndGguc2V0KGNodW5rLCBpKTtcbiAgICAgICAgaSArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgfVxuICAgICAgYnl0ZUxlbmd0aC5zZXQobGFzdENodW5rLCBpKTtcbiAgICAgIHJldHVybiBieXRlTGVuZ3RoO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlVHlwZWRBcnJheShcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgaWQsXG4gICAgICBidWZmZXIsXG4gICAgICBsYXN0Q2h1bmssXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICAgIGJ5dGVzUGVyRWxlbWVudFxuICAgICkge1xuICAgICAgYnVmZmVyID1cbiAgICAgICAgMCA9PT0gYnVmZmVyLmxlbmd0aCAmJiAwID09PSBsYXN0Q2h1bmsuYnl0ZU9mZnNldCAlIGJ5dGVzUGVyRWxlbWVudFxuICAgICAgICAgID8gbGFzdENodW5rXG4gICAgICAgICAgOiBtZXJnZUJ1ZmZlcihidWZmZXIsIGxhc3RDaHVuayk7XG4gICAgICBjb25zdHJ1Y3RvciA9IG5ldyBjb25zdHJ1Y3RvcihcbiAgICAgICAgYnVmZmVyLmJ1ZmZlcixcbiAgICAgICAgYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIGJ1ZmZlci5ieXRlTGVuZ3RoIC8gYnl0ZXNQZXJFbGVtZW50XG4gICAgICApO1xuICAgICAgcmVzb2x2ZUJ1ZmZlcihyZXNwb25zZSwgaWQsIGNvbnN0cnVjdG9yKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc0Z1bGxCaW5hcnlSb3cocmVzcG9uc2UsIGlkLCB0YWcsIGJ1ZmZlciwgY2h1bmspIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgNjU6XG4gICAgICAgICAgcmVzb2x2ZUJ1ZmZlcihyZXNwb25zZSwgaWQsIG1lcmdlQnVmZmVyKGJ1ZmZlciwgY2h1bmspLmJ1ZmZlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDc5OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgSW50OEFycmF5LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTExOlxuICAgICAgICAgIHJlc29sdmVCdWZmZXIoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgMCA9PT0gYnVmZmVyLmxlbmd0aCA/IGNodW5rIDogbWVyZ2VCdWZmZXIoYnVmZmVyLCBjaHVuaylcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA4NTpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIFVpbnQ4Q2xhbXBlZEFycmF5LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBJbnQxNkFycmF5LCAyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTE1OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgVWludDE2QXJyYXksIDIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIEludDMyQXJyYXksIDQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAxMDg6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBVaW50MzJBcnJheSwgNCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDcxOlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgRmxvYXQzMkFycmF5LCA0KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTAzOlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgRmxvYXQ2NEFycmF5LCA4KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgNzc6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBCaWdJbnQ2NEFycmF5LCA4KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgQmlnVWludDY0QXJyYXksIDgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA4NjpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIERhdGFWaWV3LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgc3RyaW5nRGVjb2RlciA9IHJlc3BvbnNlLl9zdHJpbmdEZWNvZGVyLCByb3cgPSBcIlwiLCBpID0gMDtcbiAgICAgICAgaSA8IGJ1ZmZlci5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKVxuICAgICAgICByb3cgKz0gc3RyaW5nRGVjb2Rlci5kZWNvZGUoYnVmZmVyW2ldLCBkZWNvZGVyT3B0aW9ucyk7XG4gICAgICByb3cgKz0gc3RyaW5nRGVjb2Rlci5kZWNvZGUoY2h1bmspO1xuICAgICAgcHJvY2Vzc0Z1bGxTdHJpbmdSb3cocmVzcG9uc2UsIGlkLCB0YWcsIHJvdyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NGdWxsU3RyaW5nUm93KHJlc3BvbnNlLCBpZCwgdGFnLCByb3cpIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgcmVzb2x2ZU1vZHVsZShyZXNwb25zZSwgaWQsIHJvdyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzI6XG4gICAgICAgICAgcmVzb2x2ZUhpbnQocmVzcG9uc2UsIHJvd1swXSwgcm93LnNsaWNlKDEpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OTpcbiAgICAgICAgICByb3cgPSBKU09OLnBhcnNlKHJvdyk7XG4gICAgICAgICAgdGFnID0gcmVzb2x2ZUVycm9yRGV2KHJlc3BvbnNlLCByb3cpO1xuICAgICAgICAgIHRhZy5kaWdlc3QgPSByb3cuZGlnZXN0O1xuICAgICAgICAgIHJvdyA9IHJlc3BvbnNlLl9jaHVua3M7XG4gICAgICAgICAgdmFyIGNodW5rID0gcm93LmdldChpZCk7XG4gICAgICAgICAgY2h1bmtcbiAgICAgICAgICAgID8gdHJpZ2dlckVycm9yT25DaHVuayhjaHVuaywgdGFnKVxuICAgICAgICAgICAgOiByb3cuc2V0KGlkLCBuZXcgUmVhY3RQcm9taXNlKFwicmVqZWN0ZWRcIiwgbnVsbCwgdGFnLCByZXNwb25zZSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg0OlxuICAgICAgICAgIHJlc29sdmVUZXh0KHJlc3BvbnNlLCBpZCwgcm93KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2ODpcbiAgICAgICAgICB0YWcgPSBuZXcgUmVhY3RQcm9taXNlKFwicmVzb2x2ZWRfbW9kZWxcIiwgcm93LCBudWxsLCByZXNwb25zZSk7XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsodGFnKTtcbiAgICAgICAgICBcImZ1bGZpbGxlZFwiID09PSB0YWcuc3RhdHVzXG4gICAgICAgICAgICA/IHJlc29sdmVEZWJ1Z0luZm8ocmVzcG9uc2UsIGlkLCB0YWcudmFsdWUpXG4gICAgICAgICAgICA6IHRhZy50aGVuKFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZURlYnVnSW5mbyhyZXNwb25zZSwgaWQsIHYpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkge31cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4NzpcbiAgICAgICAgICByZXNvbHZlQ29uc29sZUVudHJ5KHJlc3BvbnNlLCByb3cpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDgyOlxuICAgICAgICAgIHN0YXJ0UmVhZGFibGVTdHJlYW0ocmVzcG9uc2UsIGlkLCB2b2lkIDApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExNDpcbiAgICAgICAgICBzdGFydFJlYWRhYmxlU3RyZWFtKHJlc3BvbnNlLCBpZCwgXCJieXRlc1wiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4ODpcbiAgICAgICAgICBzdGFydEFzeW5jSXRlcmFibGUocmVzcG9uc2UsIGlkLCAhMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTIwOlxuICAgICAgICAgIHN0YXJ0QXN5bmNJdGVyYWJsZShyZXNwb25zZSwgaWQsICEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NzpcbiAgICAgICAgICBzdG9wU3RyZWFtKHJlc3BvbnNlLCBpZCwgcm93KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXNvbHZlTW9kZWwocmVzcG9uc2UsIGlkLCByb3cpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tSlNPTkNhbGxiYWNrKHJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB2YWx1ZSlcbiAgICAgICAgICByZXR1cm4gcGFyc2VNb2RlbFN0cmluZyhyZXNwb25zZSwgdGhpcywga2V5LCB2YWx1ZSk7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUgJiYgbnVsbCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBpZiAodmFsdWVbMF0gPT09IFJFQUNUX0VMRU1FTlRfVFlQRSlcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKChrZXkgPSB2YWx1ZVs0XSksXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgICAgICAgICAgICAgIHR5cGU6IHZhbHVlWzFdLFxuICAgICAgICAgICAgICAgIGtleTogdmFsdWVbMl0sXG4gICAgICAgICAgICAgICAgcHJvcHM6IHZhbHVlWzNdLFxuICAgICAgICAgICAgICAgIF9vd25lcjogbnVsbCA9PT0ga2V5ID8gcmVzcG9uc2UuX2RlYnVnUm9vdE93bmVyIDoga2V5XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIFwicmVmXCIsIHtcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBnZXQ6IG51bGxSZWZHZXR0ZXJcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICh2YWx1ZS5fc3RvcmUgPSB7fSksXG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBcIl9kZWJ1Z0luZm9cIiwge1xuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBudWxsICE9PSBpbml0aWFsaXppbmdIYW5kbGVyKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHZhciBoYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlciA9IGhhbmRsZXIucGFyZW50O1xuICAgICAgICAgICAgICBoYW5kbGVyLmVycm9yZWRcbiAgICAgICAgICAgICAgICA/ICgoa2V5ID0gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgICAgICAgICAgICAgXCJyZWplY3RlZFwiLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVxuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAodmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh2YWx1ZS50eXBlKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBvd25lcjogdmFsdWUuX293bmVyXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIChrZXkuX2RlYnVnSW5mbyA9IFt2YWx1ZV0pLFxuICAgICAgICAgICAgICAgICAgKHZhbHVlID0gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihrZXkpKSlcbiAgICAgICAgICAgICAgICA6IDAgPCBoYW5kbGVyLmRlcHMgJiZcbiAgICAgICAgICAgICAgICAgICgoa2V5ID0gbmV3IFJlYWN0UHJvbWlzZShcImJsb2NrZWRcIiwgbnVsbCwgbnVsbCwgcmVzcG9uc2UpKSxcbiAgICAgICAgICAgICAgICAgIChoYW5kbGVyLnZhbHVlID0gdmFsdWUpLFxuICAgICAgICAgICAgICAgICAgKGhhbmRsZXIuY2h1bmsgPSBrZXkpLFxuICAgICAgICAgICAgICAgICAgKHZhbHVlID0gT2JqZWN0LmZyZWV6ZS5iaW5kKE9iamVjdCwgdmFsdWUucHJvcHMpKSxcbiAgICAgICAgICAgICAgICAgIGtleS50aGVuKHZhbHVlLCB2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAodmFsdWUgPSBjcmVhdGVMYXp5Q2h1bmtXcmFwcGVyKGtleSkpKTtcbiAgICAgICAgICAgIH0gZWxzZSBPYmplY3QuZnJlZXplKHZhbHVlLnByb3BzKTtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9TZXJ2ZXJDYWxsKCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIFwiU2VydmVyIEZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGR1cmluZyBpbml0aWFsIHJlbmRlci4gVGhpcyB3b3VsZCBjcmVhdGUgYSBmZXRjaCB3YXRlcmZhbGwuIFRyeSB0byB1c2UgYSBTZXJ2ZXIgQ29tcG9uZW50IHRvIHBhc3MgZGF0YSB0byBDbGllbnQgQ29tcG9uZW50cyBpbnN0ZWFkLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zKG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBuZXcgUmVzcG9uc2VJbnN0YW5jZShcbiAgICAgICAgb3B0aW9ucy5zZXJ2ZXJDb25zdW1lck1hbmlmZXN0Lm1vZHVsZU1hcCxcbiAgICAgICAgb3B0aW9ucy5zZXJ2ZXJDb25zdW1lck1hbmlmZXN0LnNlcnZlck1vZHVsZU1hcCxcbiAgICAgICAgb3B0aW9ucy5zZXJ2ZXJDb25zdW1lck1hbmlmZXN0Lm1vZHVsZUxvYWRpbmcsXG4gICAgICAgIG5vU2VydmVyQ2FsbCxcbiAgICAgICAgb3B0aW9ucy5lbmNvZGVGb3JtQWN0aW9uLFxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB2b2lkIDAsXG4gICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy50ZW1wb3JhcnlSZWZlcmVuY2VzXG4gICAgICAgICAgPyBvcHRpb25zLnRlbXBvcmFyeVJlZmVyZW5jZXNcbiAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmZpbmRTb3VyY2VNYXBVUkwgPyBvcHRpb25zLmZpbmRTb3VyY2VNYXBVUkwgOiB2b2lkIDAsXG4gICAgICAgIG9wdGlvbnMgPyAhMCA9PT0gb3B0aW9ucy5yZXBsYXlDb25zb2xlTG9ncyA6ICExLFxuICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZW52aXJvbm1lbnROYW1lID8gb3B0aW9ucy5lbnZpcm9ubWVudE5hbWUgOiB2b2lkIDBcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0ocmVzcG9uc2UsIHN0cmVhbSkge1xuICAgICAgZnVuY3Rpb24gcHJvZ3Jlc3MoX3JlZikge1xuICAgICAgICB2YXIgdmFsdWUgPSBfcmVmLnZhbHVlO1xuICAgICAgICBpZiAoX3JlZi5kb25lKSByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSwgRXJyb3IoXCJDb25uZWN0aW9uIGNsb3NlZC5cIikpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgaSA9IDAsXG4gICAgICAgICAgICByb3dTdGF0ZSA9IHJlc3BvbnNlLl9yb3dTdGF0ZTtcbiAgICAgICAgICBfcmVmID0gcmVzcG9uc2UuX3Jvd0lEO1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICB2YXIgcm93VGFnID0gcmVzcG9uc2UuX3Jvd1RhZyxcbiAgICAgICAgICAgICAgcm93TGVuZ3RoID0gcmVzcG9uc2UuX3Jvd0xlbmd0aCxcbiAgICAgICAgICAgICAgYnVmZmVyID0gcmVzcG9uc2UuX2J1ZmZlcixcbiAgICAgICAgICAgICAgY2h1bmtMZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICBpIDwgY2h1bmtMZW5ndGg7XG5cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHZhciBsYXN0SWR4ID0gLTE7XG4gICAgICAgICAgICBzd2l0Y2ggKHJvd1N0YXRlKSB7XG4gICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICBsYXN0SWR4ID0gdmFsdWVbaSsrXTtcbiAgICAgICAgICAgICAgICA1OCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgICAgPyAocm93U3RhdGUgPSAxKVxuICAgICAgICAgICAgICAgICAgOiAoX3JlZiA9XG4gICAgICAgICAgICAgICAgICAgICAgKF9yZWYgPDwgNCkgfFxuICAgICAgICAgICAgICAgICAgICAgICg5NiA8IGxhc3RJZHggPyBsYXN0SWR4IC0gODcgOiBsYXN0SWR4IC0gNDgpKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgIHJvd1N0YXRlID0gdmFsdWVbaV07XG4gICAgICAgICAgICAgICAgODQgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgNjUgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgNzkgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgMTExID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgIDg1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgIDgzID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgIDExNSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICA3NiA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAxMDggPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgNzEgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgMTAzID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgIDc3ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgIDEwOSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICA4NiA9PT0gcm93U3RhdGVcbiAgICAgICAgICAgICAgICAgID8gKChyb3dUYWcgPSByb3dTdGF0ZSksIChyb3dTdGF0ZSA9IDIpLCBpKyspXG4gICAgICAgICAgICAgICAgICA6ICg2NCA8IHJvd1N0YXRlICYmIDkxID4gcm93U3RhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgMzUgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgMTE0ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgICAgIDEyMCA9PT0gcm93U3RhdGVcbiAgICAgICAgICAgICAgICAgICAgPyAoKHJvd1RhZyA9IHJvd1N0YXRlKSwgKHJvd1N0YXRlID0gMyksIGkrKylcbiAgICAgICAgICAgICAgICAgICAgOiAoKHJvd1RhZyA9IDApLCAocm93U3RhdGUgPSAzKSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICBsYXN0SWR4ID0gdmFsdWVbaSsrXTtcbiAgICAgICAgICAgICAgICA0NCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgICAgPyAocm93U3RhdGUgPSA0KVxuICAgICAgICAgICAgICAgICAgOiAocm93TGVuZ3RoID1cbiAgICAgICAgICAgICAgICAgICAgICAocm93TGVuZ3RoIDw8IDQpIHxcbiAgICAgICAgICAgICAgICAgICAgICAoOTYgPCBsYXN0SWR4ID8gbGFzdElkeCAtIDg3IDogbGFzdElkeCAtIDQ4KSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICBsYXN0SWR4ID0gdmFsdWUuaW5kZXhPZigxMCwgaSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAobGFzdElkeCA9IGkgKyByb3dMZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgbGFzdElkeCA+IHZhbHVlLmxlbmd0aCAmJiAobGFzdElkeCA9IC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSB2YWx1ZS5ieXRlT2Zmc2V0ICsgaTtcbiAgICAgICAgICAgIGlmICgtMSA8IGxhc3RJZHgpXG4gICAgICAgICAgICAgIChyb3dMZW5ndGggPSBuZXcgVWludDhBcnJheSh2YWx1ZS5idWZmZXIsIG9mZnNldCwgbGFzdElkeCAtIGkpKSxcbiAgICAgICAgICAgICAgICBwcm9jZXNzRnVsbEJpbmFyeVJvdyhyZXNwb25zZSwgX3JlZiwgcm93VGFnLCBidWZmZXIsIHJvd0xlbmd0aCksXG4gICAgICAgICAgICAgICAgKGkgPSBsYXN0SWR4KSxcbiAgICAgICAgICAgICAgICAzID09PSByb3dTdGF0ZSAmJiBpKyssXG4gICAgICAgICAgICAgICAgKHJvd0xlbmd0aCA9IF9yZWYgPSByb3dUYWcgPSByb3dTdGF0ZSA9IDApLFxuICAgICAgICAgICAgICAgIChidWZmZXIubGVuZ3RoID0gMCk7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgVWludDhBcnJheShcbiAgICAgICAgICAgICAgICB2YWx1ZS5idWZmZXIsXG4gICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgIHZhbHVlLmJ5dGVMZW5ndGggLSBpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgcm93TGVuZ3RoIC09IHZhbHVlLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXNwb25zZS5fcm93U3RhdGUgPSByb3dTdGF0ZTtcbiAgICAgICAgICByZXNwb25zZS5fcm93SUQgPSBfcmVmO1xuICAgICAgICAgIHJlc3BvbnNlLl9yb3dUYWcgPSByb3dUYWc7XG4gICAgICAgICAgcmVzcG9uc2UuX3Jvd0xlbmd0aCA9IHJvd0xlbmd0aDtcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQoKS50aGVuKHByb2dyZXNzKS5jYXRjaChlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGVycm9yKGUpIHtcbiAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IocmVzcG9uc2UsIGUpO1xuICAgICAgfVxuICAgICAgdmFyIHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkKCkudGhlbihwcm9ncmVzcykuY2F0Y2goZXJyb3IpO1xuICAgIH1cbiAgICB2YXIgUmVhY3RET00gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpLFxuICAgICAgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIiksXG4gICAgICBkZWNvZGVyT3B0aW9ucyA9IHsgc3RyZWFtOiAhMCB9LFxuICAgICAgYmluZCQxID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsXG4gICAgICBjaHVua0NhY2hlID0gbmV3IE1hcCgpLFxuICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMgPVxuICAgICAgICBSZWFjdERPTS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIiksXG4gICAgICBSRUFDVF9QT1JUQUxfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksXG4gICAgICBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLFxuICAgICAgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxcbiAgICAgIFJFQUNUX1BST0ZJTEVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik7XG4gICAgU3ltYm9sLmZvcihcInJlYWN0LnByb3ZpZGVyXCIpO1xuICAgIHZhciBSRUFDVF9DT05TVU1FUl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpLFxuICAgICAgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIiksXG4gICAgICBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxcbiAgICAgIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpLFxuICAgICAgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksXG4gICAgICBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSxcbiAgICAgIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcixcbiAgICAgIEFTWU5DX0lURVJBVE9SID0gU3ltYm9sLmFzeW5jSXRlcmF0b3IsXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICAgIGpzeFByb3BzUGFyZW50cyA9IG5ldyBXZWFrTWFwKCksXG4gICAgICBqc3hDaGlsZHJlblBhcmVudHMgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgQ0xJRU5UX1JFRkVSRU5DRV9UQUcgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGUsXG4gICAgICBrbm93blNlcnZlclJlZmVyZW5jZXMgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgYm91bmRDYWNoZSA9IG5ldyBXZWFrTWFwKCksXG4gICAgICBmYWtlU2VydmVyRnVuY3Rpb25JZHggPSAwLFxuICAgICAgRnVuY3Rpb25CaW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsXG4gICAgICBBcnJheVNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLFxuICAgICAgdjhGcmFtZVJlZ0V4cCA9XG4gICAgICAgIC9eIHszfSBhdCAoPzooLispIFxcKCguKyk6KFxcZCspOihcXGQrKVxcKXwoPzphc3luYyApPyguKyk6KFxcZCspOihcXGQrKSkkLyxcbiAgICAgIGpzY1NwaWRlck1vbmtleUZyYW1lUmVnRXhwID0gLyg/OiguKilAKT8oLiopOihcXGQrKTooXFxkKykvLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpO1xuICAgIG5ldyAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgV2Vha01hcCA/IFdlYWtNYXAgOiBNYXApKCk7XG4gICAgdmFyIFJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIgPVxuICAgICAgICBSZWFjdC5fX1NFUlZFUl9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSB8fFxuICAgICAgICBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyO1xuICAgIFJlYWN0UHJvbWlzZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFByb21pc2UucHJvdG90eXBlKTtcbiAgICBSZWFjdFByb21pc2UucHJvdG90eXBlLnRoZW4gPSBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2RlbFwiOlxuICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKHRoaXMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kdWxlXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZHVsZUNodW5rKHRoaXMpO1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICByZXNvbHZlICYmXG4gICAgICAgICAgICAobnVsbCA9PT0gdGhpcy52YWx1ZSAmJiAodGhpcy52YWx1ZSA9IFtdKSxcbiAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChyZXNvbHZlKSk7XG4gICAgICAgICAgcmVqZWN0ICYmXG4gICAgICAgICAgICAobnVsbCA9PT0gdGhpcy5yZWFzb24gJiYgKHRoaXMucmVhc29uID0gW10pLFxuICAgICAgICAgICAgdGhpcy5yZWFzb24ucHVzaChyZWplY3QpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZWplY3QgJiYgcmVqZWN0KHRoaXMucmVhc29uKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBpbml0aWFsaXppbmdIYW5kbGVyID0gbnVsbCxcbiAgICAgIGZha2VGdW5jdGlvbkNhY2hlID0gbmV3IE1hcCgpLFxuICAgICAgZmFrZUZ1bmN0aW9uSWR4ID0gMCxcbiAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2sgPSB7XG4gICAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCI6IGZ1bmN0aW9uIChcbiAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBlbnZpcm9ubWVudE5hbWVcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICAgICAgICBmYWtlSlNYQ2FsbFNpdGVcbiAgICAgICAgICApKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYgPSBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrW1xuICAgICAgICBcInJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZVwiXG4gICAgICBdLmJpbmQoY3JlYXRlRmFrZUpTWENhbGxTdGFjayksXG4gICAgICByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFjayA9IHtcbiAgICAgICAgXCJyZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcIjogZnVuY3Rpb24gKFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIG1ldGhvZE5hbWUsXG4gICAgICAgICAgc3RhY2tUcmFjZSxcbiAgICAgICAgICBvd25lcixcbiAgICAgICAgICBlbnYsXG4gICAgICAgICAgYXJnc1xuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgcHJldlN0YWNrID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrO1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IGdldEN1cnJlbnRTdGFja0luREVWO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwO1xuICAgICAgICAgICAgICBzd2l0Y2ggKG1ldGhvZE5hbWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGlyXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpcnhtbFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJncm91cEVuZFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJ0YWJsZVwiOlxuICAgICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGJpbmQkMS5hcHBseShcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZVttZXRob2ROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgW2NvbnNvbGVdLmNvbmNhdChhcmdzKVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBcImFzc2VydFwiOlxuICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gMTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgbmV3QXJncyA9IGFyZ3Muc2xpY2UoMCk7XG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBuZXdBcmdzW29mZnNldF1cbiAgICAgICAgICAgICAgICA/IG5ld0FyZ3Muc3BsaWNlKFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgIFwiXFx1MDAxYlswbVxcdTAwMWJbN20lYyVzXFx1MDAxYlswbSVjIFwiICsgbmV3QXJnc1tvZmZzZXRdLFxuICAgICAgICAgICAgICAgICAgICBcImJhY2tncm91bmQ6ICNlNmU2ZTY7YmFja2dyb3VuZDogbGlnaHQtZGFyayhyZ2JhKDAsMCwwLDAuMSksIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkpO2NvbG9yOiAjMDAwMDAwO2NvbG9yOiBsaWdodC1kYXJrKCMwMDAwMDAsICNmZmZmZmYpO2JvcmRlci1yYWRpdXM6IDJweFwiLFxuICAgICAgICAgICAgICAgICAgICBcIiBcIiArIGVudiArIFwiIFwiLFxuICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBuZXdBcmdzLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICBcIlxcdTAwMWJbMG1cXHUwMDFiWzdtJWMlc1xcdTAwMWJbMG0lYyBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kOiAjZTZlNmU2O2JhY2tncm91bmQ6IGxpZ2h0LWRhcmsocmdiYSgwLDAsMCwwLjEpLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpKTtjb2xvcjogIzAwMDAwMDtjb2xvcjogbGlnaHQtZGFyaygjMDAwMDAwLCAjZmZmZmZmKTtib3JkZXItcmFkaXVzOiAycHhcIixcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgKyBlbnYgKyBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgbmV3QXJncy51bnNoaWZ0KGNvbnNvbGUpO1xuICAgICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBiaW5kJDEuYXBwbHkoXG4gICAgICAgICAgICAgICAgY29uc29sZVttZXRob2ROYW1lXSxcbiAgICAgICAgICAgICAgICBuZXdBcmdzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgY2FsbFN0YWNrID0gYnVpbGRGYWtlQ2FsbFN0YWNrKFxuICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgc3RhY2tUcmFjZSxcbiAgICAgICAgICAgICAgZW52LFxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBudWxsICE9IG93bmVyICYmIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIG93bmVyKTtcbiAgICAgICAgICAgIHZhciByb290VGFzayA9IGdldFJvb3RUYXNrKHJlc3BvbnNlLCBlbnYpO1xuICAgICAgICAgICAgbnVsbCAhPSByb290VGFzayA/IHJvb3RUYXNrLnJ1bihjYWxsU3RhY2spIDogY2FsbFN0YWNrKCk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IHByZXZTdGFjaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFja0luREVWID0gcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2tbXG4gICAgICAgIFwicmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lXCJcbiAgICAgIF0uYmluZChyZXBsYXlDb25zb2xlV2l0aENhbGxTdGFjayk7XG4gICAgZXhwb3J0cy5jcmVhdGVGcm9tRmV0Y2ggPSBmdW5jdGlvbiAocHJvbWlzZUZvclJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgICB2YXIgcmVzcG9uc2UgPSBjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zKG9wdGlvbnMpO1xuICAgICAgcHJvbWlzZUZvclJlc3BvbnNlLnRoZW4oXG4gICAgICAgIGZ1bmN0aW9uIChyKSB7XG4gICAgICAgICAgc3RhcnRSZWFkaW5nRnJvbVN0cmVhbShyZXNwb25zZSwgci5ib2R5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSwgZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gZ2V0Q2h1bmsocmVzcG9uc2UsIDApO1xuICAgIH07XG4gICAgZXhwb3J0cy5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0gPSBmdW5jdGlvbiAoc3RyZWFtLCBvcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0gY3JlYXRlUmVzcG9uc2VGcm9tT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgIHN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0ob3B0aW9ucywgc3RyZWFtKTtcbiAgICAgIHJldHVybiBnZXRDaHVuayhvcHRpb25zLCAwKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlU2VydmVyUmVmZXJlbmNlID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VydmVyUmVmZXJlbmNlJDEoaWQsIG5vU2VydmVyQ2FsbCk7XG4gICAgfTtcbiAgICBleHBvcnRzLmNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBuZXcgTWFwKCk7XG4gICAgfTtcbiAgICBleHBvcnRzLmVuY29kZVJlcGx5ID0gZnVuY3Rpb24gKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICB2YXIgYWJvcnQgPSBwcm9jZXNzUmVwbHkoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMudGVtcG9yYXJ5UmVmZXJlbmNlc1xuICAgICAgICAgICAgPyBvcHRpb25zLnRlbXBvcmFyeVJlZmVyZW5jZXNcbiAgICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICAgIHJlc29sdmUsXG4gICAgICAgICAgcmVqZWN0XG4gICAgICAgICk7XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2lnbmFsKSB7XG4gICAgICAgICAgdmFyIHNpZ25hbCA9IG9wdGlvbnMuc2lnbmFsO1xuICAgICAgICAgIGlmIChzaWduYWwuYWJvcnRlZCkgYWJvcnQoc2lnbmFsLnJlYXNvbik7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGFib3J0KHNpZ25hbC5yZWFzb24pO1xuICAgICAgICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGxpc3RlbmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGxpc3RlbmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOlsiX2RlZmluZVByb3BlcnR5Iiwib2JqIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsInJlc29sdmVDbGllbnRSZWZlcmVuY2UiLCJidW5kbGVyQ29uZmlnIiwibWV0YWRhdGEiLCJtb2R1bGVFeHBvcnRzIiwibmFtZSIsIkVycm9yIiwibGVuZ3RoIiwiaWQiLCJjaHVua3MiLCJyZXNvbHZlU2VydmVyUmVmZXJlbmNlIiwicmVzb2x2ZWRNb2R1bGVEYXRhIiwiaWR4IiwibGFzdEluZGV4T2YiLCJzbGljZSIsImFzeW5jIiwicmVxdWlyZUFzeW5jTW9kdWxlIiwicHJvbWlzZSIsImdsb2JhbFRoaXMiLCJfX25leHRfcmVxdWlyZV9fIiwidGhlbiIsInN0YXR1cyIsInJlYXNvbiIsImlnbm9yZVJlamVjdCIsInByZWxvYWRNb2R1bGUiLCJwcm9taXNlcyIsImkiLCJjaHVua0lkIiwiZW50cnkiLCJjaHVua0NhY2hlIiwiZ2V0IiwiX193ZWJwYWNrX2NodW5rX2xvYWRfXyIsInB1c2giLCJyZXNvbHZlIiwic2V0IiwiYmluZCIsIlByb21pc2UiLCJhbGwiLCJyZXF1aXJlTW9kdWxlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJwcmVwYXJlRGVzdGluYXRpb25XaXRoQ2h1bmtzIiwibW9kdWxlTG9hZGluZyIsIm5vbmNlJGpzY29tcCQwIiwibm9uY2UiLCJKU0NvbXBpbGVyX3RlbXBfY29uc3QiLCJSZWFjdERPTVNoYXJlZEludGVybmFscyIsImQiLCJKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDAiLCJYIiwiSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQxIiwicHJlZml4IiwiSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0IiwiY3Jvc3NPcmlnaW4iLCJjYWxsIiwiZ2V0SXRlcmF0b3JGbiIsIm1heWJlSXRlcmFibGUiLCJNQVlCRV9JVEVSQVRPUl9TWU1CT0wiLCJpc09iamVjdFByb3RvdHlwZSIsIm9iamVjdCIsIk9iamVjdFByb3RvdHlwZSIsInByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImlzU2ltcGxlT2JqZWN0IiwibmFtZXMiLCJkZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib2JqZWN0TmFtZSIsInRvU3RyaW5nIiwicmVwbGFjZSIsIm0iLCJwMCIsImRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlIiwiZW5jb2RlZEtleSIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlIiwiaXNBcnJheUltcGwiLCIkJHR5cGVvZiIsIkNMSUVOVF9SRUZFUkVOQ0VfVEFHIiwiZGlzcGxheU5hbWUiLCJTdHJpbmciLCJkZXNjcmliZUVsZW1lbnRUeXBlIiwidHlwZSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIiwicmVuZGVyIiwiUkVBQ1RfTUVNT19UWVBFIiwiUkVBQ1RfTEFaWV9UWVBFIiwicGF5bG9hZCIsIl9wYXlsb2FkIiwiX2luaXQiLCJ4IiwiZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UiLCJvYmplY3RPckFycmF5IiwiZXhwYW5kZWROYW1lIiwib2JqS2luZCIsInN0YXJ0IiwianN4Q2hpbGRyZW5QYXJlbnRzIiwiaGFzIiwiUkVBQ1RfRUxFTUVOVF9UWVBFIiwianN4UHJvcHNQYXJlbnRzIiwia2V5cyIsIl92YWx1ZTIiLCJfc3Vic3RyMiIsInJlcGVhdCIsInNlcmlhbGl6ZU51bWJlciIsIm51bWJlciIsIk51bWJlciIsImlzRmluaXRlIiwiSW5maW5pdHkiLCJwcm9jZXNzUmVwbHkiLCJyb290IiwiZm9ybUZpZWxkUHJlZml4IiwidGVtcG9yYXJ5UmVmZXJlbmNlcyIsInJlamVjdCIsInNlcmlhbGl6ZVR5cGVkQXJyYXkiLCJ0YWciLCJ0eXBlZEFycmF5IiwiQmxvYiIsIlVpbnQ4QXJyYXkiLCJidWZmZXIiLCJieXRlT2Zmc2V0IiwiYnl0ZUxlbmd0aCIsImJsb2JJZCIsIm5leHRQYXJ0SWQiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwic2VyaWFsaXplQmluYXJ5UmVhZGVyIiwicmVhZGVyIiwicHJvZ3Jlc3MiLCJkb25lIiwiZGF0YSIsInN0cmVhbUlkIiwicGVuZGluZ1BhcnRzIiwicmVhZCIsInNlcmlhbGl6ZVJlYWRlciIsInBhcnRKU09OIiwicmVzb2x2ZVRvSlNPTiIsInNlcmlhbGl6ZVJlYWRhYmxlU3RyZWFtIiwic3RyZWFtIiwiYmluYXJ5UmVhZGVyIiwiZ2V0UmVhZGVyIiwibW9kZSIsInNlcmlhbGl6ZUFzeW5jSXRlcmFibGUiLCJpdGVyYWJsZSIsIml0ZXJhdG9yIiwiX3BhcnRKU09OIiwibmV4dCIsIngkMCIsIm9yaWdpbmFsVmFsdWUiLCJEYXRlIiwiY29uc29sZSIsImVycm9yIiwiaW5kZXhPZiIsInBhcmVudFJlZmVyZW5jZSIsIndyaXR0ZW5PYmplY3RzIiwiaW5pdCIsImxhenlJZCIsInNlcmlhbGl6ZU1vZGVsIiwiX2xhenlJZCIsIl9wYXJ0SlNPTjIiLCJfZGF0YSIsInByb21pc2VJZCIsInBhcnRWYWx1ZSIsIl9wYXJ0SlNPTjMiLCJtb2RlbFJvb3QiLCJfZGF0YTMiLCJmb3JFYWNoIiwib3JpZ2luYWxLZXkiLCJNYXAiLCJBcnJheSIsImZyb20iLCJTZXQiLCJBcnJheUJ1ZmZlciIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiRGF0YVZpZXciLCJSZWFkYWJsZVN0cmVhbSIsIkFTWU5DX0lURVJBVE9SIiwiUkVBQ1RfQ09OVEVYVF9UWVBFIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZGVzY3JpcHRpb24iLCJrbm93blNlcnZlclJlZmVyZW5jZXMiLCJtb2RlbCIsIldlYWtNYXAiLCJqc29uIiwiZW5jb2RlRm9ybURhdGEiLCJyZWZlcmVuY2UiLCJ0aGVuYWJsZSIsInJlcyIsInJlaiIsImJvZHkiLCJlIiwiZGVmYXVsdEVuY29kZUZvcm1BY3Rpb24iLCJpZGVudGlmaWVyUHJlZml4IiwiYm91bmQiLCJib3VuZENhY2hlIiwicHJlZml4ZWREYXRhIiwibWV0aG9kIiwiZW5jVHlwZSIsImlzU2lnbmF0dXJlRXF1YWwiLCJyZWZlcmVuY2VJZCIsIm51bWJlck9mQm91bmRBcmdzIiwiYm91bmRQcm9taXNlIiwiYm91bmRBcmdzIiwiY3JlYXRlRmFrZVNlcnZlckZ1bmN0aW9uIiwiZmlsZW5hbWUiLCJzb3VyY2VNYXAiLCJsaW5lIiwiY29sIiwiZW52aXJvbm1lbnROYW1lIiwiaW5uZXJGdW5jdGlvbiIsImVuY29kZWROYW1lIiwic3RhcnRzV2l0aCIsImVuY29kZVVSSUNvbXBvbmVudCIsImZha2VTZXJ2ZXJGdW5jdGlvbklkeCIsImV2YWwiLCJyZWdpc3RlclNlcnZlclJlZmVyZW5jZSIsInByb3h5IiwicmVmZXJlbmNlJGpzY29tcCQwIiwiZW5jb2RlRm9ybUFjdGlvbiIsImRlZmluZVByb3BlcnRpZXMiLCIkJEZPUk1fQUNUSU9OIiwiJCRJU19TSUdOQVRVUkVfRVFVQUwiLCJuZXdGbiIsIkZ1bmN0aW9uQmluZCIsImFwcGx5IiwiYXJndW1lbnRzIiwiYXJncyIsIkFycmF5U2xpY2UiLCJjb25jYXQiLCJjcmVhdGVCb3VuZFNlcnZlclJlZmVyZW5jZSIsIm1ldGFEYXRhIiwiY2FsbFNlcnZlciIsImZpbmRTb3VyY2VNYXBVUkwiLCJhY3Rpb24iLCJsb2NhdGlvbiIsImZ1bmN0aW9uTmFtZSIsImVudiIsInBhcnNlU3RhY2tMb2NhdGlvbiIsInN0YWNrIiwiZW5kT2ZGaXJzdCIsImVuZE9mU2Vjb25kIiwidjhGcmFtZVJlZ0V4cCIsImV4ZWMiLCJqc2NTcGlkZXJNb25rZXlGcmFtZVJlZ0V4cCIsImNyZWF0ZVNlcnZlclJlZmVyZW5jZSQxIiwiZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlIiwiUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX1BST0ZJTEVSX1RZUEUiLCJSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIiwiUkVBQ1RfQ09OU1VNRVJfVFlQRSIsIl9jb250ZXh0IiwiaW5uZXJUeXBlIiwiUmVhY3RQcm9taXNlIiwicmVzcG9uc2UiLCJfcmVzcG9uc2UiLCJfZGVidWdJbmZvIiwicmVhZENodW5rIiwiY2h1bmsiLCJpbml0aWFsaXplTW9kZWxDaHVuayIsImluaXRpYWxpemVNb2R1bGVDaHVuayIsImNyZWF0ZVBlbmRpbmdDaHVuayIsIndha2VDaHVuayIsImxpc3RlbmVycyIsIndha2VDaHVua0lmSW5pdGlhbGl6ZWQiLCJyZXNvbHZlTGlzdGVuZXJzIiwicmVqZWN0TGlzdGVuZXJzIiwidHJpZ2dlckVycm9yT25DaHVuayIsImNyZWF0ZVJlc29sdmVkSXRlcmF0b3JSZXN1bHRDaHVuayIsInJlc29sdmVJdGVyYXRvclJlc3VsdENodW5rIiwicmVzb2x2ZU1vZGVsQ2h1bmsiLCJlbnF1ZXVlTW9kZWwiLCJyZXNvbHZlTW9kdWxlQ2h1bmsiLCJwcmV2SGFuZGxlciIsImluaXRpYWxpemluZ0hhbmRsZXIiLCJyZXNvbHZlZE1vZGVsIiwicGFyc2UiLCJfZnJvbUpTT04iLCJlcnJvcmVkIiwiZGVwcyIsInJlcG9ydEdsb2JhbEVycm9yIiwiX2NodW5rcyIsIm51bGxSZWZHZXR0ZXIiLCJjcmVhdGVMYXp5Q2h1bmtXcmFwcGVyIiwibGF6eVR5cGUiLCJnZXRDaHVuayIsIndhaXRGb3JSZWZlcmVuY2UiLCJyZWZlcmVuY2VkQ2h1bmsiLCJwYXJlbnRPYmplY3QiLCJtYXAiLCJwYXRoIiwiZnVsZmlsbCIsImhhbmRsZXIiLCJzcGxpY2UiLCJwcm9wcyIsIl9vd25lciIsImJsb2NrZWRWYWx1ZSIsIm93bmVyIiwicGFyZW50IiwibG9hZFNlcnZlclJlZmVyZW5jZSIsIl9zZXJ2ZXJSZWZlcmVuY2VDb25maWciLCJfY2FsbFNlcnZlciIsIl9lbmNvZGVGb3JtQWN0aW9uIiwiX2RlYnVnRmluZFNvdXJjZU1hcFVSTCIsInNlcnZlclJlZmVyZW5jZSIsInJlc29sdmVkVmFsdWUiLCJ1bnNoaWZ0IiwiZ2V0T3V0bGluZWRNb2RlbCIsInNwbGl0IiwicGFyc2VJbnQiLCJjcmVhdGVNYXAiLCJjcmVhdGVTZXQiLCJjcmVhdGVCbG9iIiwiY3JlYXRlRm9ybURhdGEiLCJleHRyYWN0SXRlcmF0b3IiLCJTeW1ib2wiLCJjcmVhdGVNb2RlbCIsInBhcnNlTW9kZWxTdHJpbmciLCJmb3IiLCJfdGVtcFJlZnMiLCJyZXNvbHZlRXJyb3JEZXYiLCJOYU4iLCJCaWdJbnQiLCJtaXNzaW5nQ2FsbCIsIlJlc3BvbnNlSW5zdGFuY2UiLCJzZXJ2ZXJSZWZlcmVuY2VDb25maWciLCJyZXBsYXlDb25zb2xlIiwiX2J1bmRsZXJDb25maWciLCJfbW9kdWxlTG9hZGluZyIsIl9ub25jZSIsIl9zdHJpbmdEZWNvZGVyIiwiVGV4dERlY29kZXIiLCJfcm93TGVuZ3RoIiwiX3Jvd1RhZyIsIl9yb3dJRCIsIl9yb3dTdGF0ZSIsIl9idWZmZXIiLCJfZGVidWdSb290T3duZXIiLCJSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyIiwiQSIsImdldE93bmVyIiwiX2RlYnVnUm9vdFN0YWNrIiwiX3JlcGxheUNvbnNvbGUiLCJfcm9vdEVudmlyb25tZW50TmFtZSIsImNyZWF0ZUZyb21KU09OQ2FsbGJhY2siLCJyZXNvbHZlTW9kZWwiLCJyZXNvbHZlVGV4dCIsInRleHQiLCJlbnF1ZXVlVmFsdWUiLCJyZXNvbHZlQnVmZmVyIiwicmVzb2x2ZU1vZHVsZSIsImNsaWVudFJlZmVyZW5jZSIsImJsb2NrZWRDaHVuayIsInJlc29sdmVTdHJlYW0iLCJjb250cm9sbGVyIiwic3RhcnRSZWFkYWJsZVN0cmVhbSIsImMiLCJwcmV2aW91c0Jsb2NrZWRDaHVuayIsImVucXVldWUiLCJ2IiwiX2NodW5rMyIsImNsb3NlIiwiYXN5bmNJdGVyYXRvciIsImNyZWF0ZUl0ZXJhdG9yIiwic3RhcnRBc3luY0l0ZXJhYmxlIiwiY2xvc2VkIiwibmV4dFdyaXRlSW5kZXgiLCJuZXh0UmVhZEluZGV4IiwiYXJnIiwic3RvcFN0cmVhbSIsInJvdyIsImVycm9ySW5mbyIsImJ1aWxkRmFrZUNhbGxTdGFjayIsIm1lc3NhZ2UiLCJnZXRSb290VGFzayIsInJ1biIsInJlc29sdmVIaW50IiwiY29kZSIsIkQiLCJDIiwiYXMiLCJMIiwiUyIsIk0iLCJjcmVhdGVGYWtlRnVuY3Rpb24iLCJlbmNvZGVVUkkiLCJmYWtlRnVuY3Rpb25JZHgiLCJmbiIsIl8iLCJpbm5lckNhbGwiLCJmcmFtZSIsImZyYW1lS2V5Iiwiam9pbiIsImZha2VGdW5jdGlvbkNhY2hlIiwiY2hpbGRFbnZpcm9ubWVudE5hbWUiLCJyb290VGFzayIsIl9kZWJ1Z1Jvb3RUYXNrIiwiY3JlYXRlVGFzayIsInRvTG93ZXJDYXNlIiwiZmFrZUpTWENhbGxTaXRlIiwiaW5pdGlhbGl6ZUZha2VTdGFjayIsImRlYnVnSW5mbyIsImRlYnVnU3RhY2siLCJjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYiLCJyZXNvbHZlRGVidWdJbmZvIiwiZ2V0Q3VycmVudFN0YWNrSW5ERVYiLCJyZXNvbHZlQ29uc29sZUVudHJ5Iiwic3RhY2tUcmFjZSIsInJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrSW5ERVYiLCJtZXJnZUJ1ZmZlciIsImxhc3RDaHVuayIsImwiLCJfaTIiLCJyZXNvbHZlVHlwZWRBcnJheSIsImNvbnN0cnVjdG9yIiwiYnl0ZXNQZXJFbGVtZW50IiwicHJvY2Vzc0Z1bGxCaW5hcnlSb3ciLCJzdHJpbmdEZWNvZGVyIiwiZGVjb2RlIiwiZGVjb2Rlck9wdGlvbnMiLCJwcm9jZXNzRnVsbFN0cmluZ1JvdyIsImRpZ2VzdCIsIl9zdG9yZSIsImZyZWV6ZSIsIm5vU2VydmVyQ2FsbCIsImNyZWF0ZVJlc3BvbnNlRnJvbU9wdGlvbnMiLCJvcHRpb25zIiwic2VydmVyQ29uc3VtZXJNYW5pZmVzdCIsIm1vZHVsZU1hcCIsInNlcnZlck1vZHVsZU1hcCIsInJlcGxheUNvbnNvbGVMb2dzIiwic3RhcnRSZWFkaW5nRnJvbVN0cmVhbSIsIl9yZWYiLCJyb3dTdGF0ZSIsInJvd1RhZyIsInJvd0xlbmd0aCIsImNodW5rTGVuZ3RoIiwibGFzdElkeCIsIm9mZnNldCIsImNhdGNoIiwiUmVhY3RET00iLCJyZXF1aXJlIiwiUmVhY3QiLCJiaW5kJDEiLCJGdW5jdGlvbiIsIl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSIsImlzQXJyYXkiLCJfX1NFUlZFUl9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUiLCJSZWFjdFNoYXJlZEludGVybmFscyIsIl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSIsImNyZWF0ZSIsImNyZWF0ZUZha2VKU1hDYWxsU3RhY2siLCJyZXBsYXlDb25zb2xlV2l0aENhbGxTdGFjayIsIm1ldGhvZE5hbWUiLCJwcmV2U3RhY2siLCJnZXRDdXJyZW50U3RhY2siLCJhIiwibmV3QXJncyIsImNhbGxTdGFjayIsImV4cG9ydHMiLCJjcmVhdGVGcm9tRmV0Y2giLCJwcm9taXNlRm9yUmVzcG9uc2UiLCJyIiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIiwiY3JlYXRlU2VydmVyUmVmZXJlbmNlIiwiY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0IiwiZW5jb2RlUmVwbHkiLCJhYm9ydCIsInNpZ25hbCIsImFib3J0ZWQiLCJsaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-server-dom-webpack-client.edge.development.js */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQuZWRnZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsaU9BQXFGO0FBQ3ZGIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxjb21waWxlZFxccmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrXFxjbGllbnQuZWRnZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5lZGdlLnByb2R1Y3Rpb24uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5lZGdlLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9iYXRjaGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUJBQXlCLG1CQUFPLENBQUMsa0ZBQW9CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMkJBQTJCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXGJhdGNoZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCYXRjaGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXRjaGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuL2RldGFjaGVkLXByb21pc2VcIik7XG5jbGFzcyBCYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihjYWNoZUtleUZuLCAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8gc2NoZWR1bGUgdGhlIHdyYXBwZWQgZnVuY3Rpb24gdG8gYmVcbiAgICAgKiBleGVjdXRlZC4gVGhpcyBkZWZhdWx0cyB0byBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAqIGltbWVkaWF0ZWx5LlxuICAgICAqLyBzY2hlZHVsZXJGbiA9IChmbik9PmZuKCkpe1xuICAgICAgICB0aGlzLmNhY2hlS2V5Rm4gPSBjYWNoZUtleUZuO1xuICAgICAgICB0aGlzLnNjaGVkdWxlckZuID0gc2NoZWR1bGVyRm47XG4gICAgICAgIHRoaXMucGVuZGluZyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmF0Y2hlcihvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLmNhY2hlS2V5Rm4sIG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMuc2NoZWR1bGVyRm4pO1xuICAgIH1cbiAgICAvKipcbiAgICogV3JhcHMgYSBmdW5jdGlvbiBpbiBhIHByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIG9yIHJlamVjdGVkIG9ubHkgb25jZVxuICAgKiBmb3IgYSBnaXZlbiBrZXkuIFRoaXMgd2lsbCBhbGxvdyBtdWx0aXBsZSBjYWxscyB0byB0aGUgZnVuY3Rpb24gdG8gYmVcbiAgICogbWFkZSwgYnV0IG9ubHkgb25lIHdpbGwgYmUgZXhlY3V0ZWQgYXQgYSB0aW1lLiBUaGUgcmVzdWx0IG9mIHRoZSBmaXJzdFxuICAgKiBjYWxsIHdpbGwgYmUgcmV0dXJuZWQgdG8gYWxsIGNhbGxlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0gZm4gdGhlIGZ1bmN0aW9uIHRvIHdyYXBcbiAgICogQHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb25cbiAgICovIGFzeW5jIGJhdGNoKGtleSwgZm4pIHtcbiAgICAgICAgY29uc3QgY2FjaGVLZXkgPSB0aGlzLmNhY2hlS2V5Rm4gPyBhd2FpdCB0aGlzLmNhY2hlS2V5Rm4oa2V5KSA6IGtleTtcbiAgICAgICAgaWYgKGNhY2hlS2V5ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oY2FjaGVLZXksIFByb21pc2UucmVzb2x2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVuZGluZyA9IHRoaXMucGVuZGluZy5nZXQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuIHBlbmRpbmc7XG4gICAgICAgIGNvbnN0IHsgcHJvbWlzZSwgcmVzb2x2ZSwgcmVqZWN0IH0gPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nLnNldChjYWNoZUtleSwgcHJvbWlzZSk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyRm4oYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oY2FjaGVLZXksIHJlc29sdmUpO1xuICAgICAgICAgICAgICAgIC8vIFJlc29sdmluZyBhIHByb21pc2UgbXVsdGlwbGUgdGltZXMgaXMgYSBuby1vcCwgc28gd2UgY2FuIHNhZmVseVxuICAgICAgICAgICAgICAgIC8vIHJlc29sdmUgYWxsIHBlbmRpbmcgcHJvbWlzZXMgd2l0aCB0aGUgc2FtZSByZXN1bHQuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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 INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\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_TAGS_HEADER: function() {\n return NEXT_CACHE_SOFT_TAGS_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_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 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 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_SOFT_TAGS_HEADER = 'x-next-cache-soft-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_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_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 layer for the API routes.\n */ api: 'api',\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};\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.api\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 ],\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBc0RMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLG9CQUFvQjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxjb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBBQ1RJT05fU1VGRklYOiBudWxsLFxuICAgIEFQUF9ESVJfQUxJQVM6IG51bGwsXG4gICAgQ0FDSEVfT05FX1lFQVI6IG51bGwsXG4gICAgRE9UX05FWFRfQUxJQVM6IG51bGwsXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogbnVsbCxcbiAgICBHU1BfTk9fUkVUVVJORURfVkFMVUU6IG51bGwsXG4gICAgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SOiBudWxsLFxuICAgIEdTU1BfTk9fUkVUVVJORURfVkFMVUU6IG51bGwsXG4gICAgSU5GSU5JVEVfQ0FDSEU6IG51bGwsXG4gICAgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU6IG51bGwsXG4gICAgTUFUQ0hFRF9QQVRIX0hFQURFUjogbnVsbCxcbiAgICBNSURETEVXQVJFX0ZJTEVOQU1FOiBudWxsLFxuICAgIE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQOiBudWxsLFxuICAgIE5FWFRfQk9EWV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQ6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUjogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IG51bGwsXG4gICAgTkVYVF9EQVRBX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBudWxsLFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVg6IG51bGwsXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBudWxsLFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogbnVsbCxcbiAgICBQQUdFU19ESVJfQUxJQVM6IG51bGwsXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogbnVsbCxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IG51bGwsXG4gICAgUk9PVF9ESVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTOiBudWxsLFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTOiBudWxsLFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TVUZGSVg6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDogbnVsbCxcbiAgICBTRVJWRVJfUlVOVElNRTogbnVsbCxcbiAgICBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SOiBudWxsLFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogbnVsbCxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IG51bGwsXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IG51bGwsXG4gICAgV0VCUEFDS19MQVlFUlM6IG51bGwsXG4gICAgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFDVElPTl9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQUNUSU9OX1NVRkZJWDtcbiAgICB9LFxuICAgIEFQUF9ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQVBQX0RJUl9BTElBUztcbiAgICB9LFxuICAgIENBQ0hFX09ORV9ZRUFSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIENBQ0hFX09ORV9ZRUFSO1xuICAgIH0sXG4gICAgRE9UX05FWFRfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRE9UX05FWFRfQUxJQVM7XG4gICAgfSxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVTTElOVF9ERUZBVUxUX0RJUlM7XG4gICAgfSxcbiAgICBHU1BfTk9fUkVUVVJORURfVkFMVUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gR1NQX05PX1JFVFVSTkVEX1ZBTFVFO1xuICAgIH0sXG4gICAgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjtcbiAgICB9LFxuICAgIEdTU1BfTk9fUkVUVVJORURfVkFMVUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gR1NTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIElORklOSVRFX0NBQ0hFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElORklOSVRFX0NBQ0hFO1xuICAgIH0sXG4gICAgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU7XG4gICAgfSxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1BVENIRURfUEFUSF9IRUFERVI7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1JRERMRVdBUkVfRklMRU5BTUU7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDtcbiAgICB9LFxuICAgIE5FWFRfQk9EWV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9CT0RZX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9TT0ZUX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg7XG4gICAgfSxcbiAgICBORVhUX0RBVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfREFUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg7XG4gICAgfSxcbiAgICBORVhUX01FVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfTUVUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JFU1VNRV9IRUFERVI7XG4gICAgfSxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTk9OX1NUQU5EQVJEX05PREVfRU5WO1xuICAgIH0sXG4gICAgUEFHRVNfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBBR0VTX0RJUl9BTElBUztcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI7XG4gICAgfSxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSO1xuICAgIH0sXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDtcbiAgICB9LFxuICAgIFJPT1RfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9WQUxJREFURV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX01PRF9SRUZfUFJPWFlfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfUFJFRkVUQ0hfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19QUkVGRVRDSF9TVUZGSVg7XG4gICAgfSxcbiAgICBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TRUdNRU5UX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfU0VHTUVOVF9TVUZGSVg7XG4gICAgfSxcbiAgICBSU0NfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TVUZGSVg7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgU0VSVkVSX1JVTlRJTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1JVTlRJTUU7XG4gICAgfSxcbiAgICBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I7XG4gICAgfSxcbiAgICBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUjtcbiAgICB9LFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SO1xuICAgIH0sXG4gICAgV0VCUEFDS19MQVlFUlM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gV0VCUEFDS19MQVlFUlM7XG4gICAgfSxcbiAgICBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTO1xuICAgIH1cbn0pO1xuY29uc3QgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggPSAnbnh0UCc7XG5jb25zdCBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYID0gJ254dEknO1xuY29uc3QgTUFUQ0hFRF9QQVRIX0hFQURFUiA9ICd4LW1hdGNoZWQtcGF0aCc7XG5jb25zdCBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVIgPSAneC1wcmVyZW5kZXItcmV2YWxpZGF0ZSc7XG5jb25zdCBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIgPSAneC1wcmVyZW5kZXItcmV2YWxpZGF0ZS1pZi1nZW5lcmF0ZWQnO1xuY29uc3QgUlNDX1BSRUZFVENIX1NVRkZJWCA9ICcucHJlZmV0Y2gucnNjJztcbmNvbnN0IFJTQ19TRUdNRU5UU19ESVJfU1VGRklYID0gJy5zZWdtZW50cyc7XG5jb25zdCBSU0NfU0VHTUVOVF9TVUZGSVggPSAnLnNlZ21lbnQucnNjJztcbmNvbnN0IFJTQ19TVUZGSVggPSAnLnJzYyc7XG5jb25zdCBBQ1RJT05fU1VGRklYID0gJy5hY3Rpb24nO1xuY29uc3QgTkVYVF9EQVRBX1NVRkZJWCA9ICcuanNvbic7XG5jb25zdCBORVhUX01FVEFfU1VGRklYID0gJy5tZXRhJztcbmNvbnN0IE5FWFRfQk9EWV9TVUZGSVggPSAnLmJvZHknO1xuY29uc3QgTkVYVF9DQUNIRV9UQUdTX0hFQURFUiA9ICd4LW5leHQtY2FjaGUtdGFncyc7XG5jb25zdCBORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVIgPSAneC1uZXh0LWNhY2hlLXNvZnQtdGFncyc7XG5jb25zdCBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSID0gJ3gtbmV4dC1yZXZhbGlkYXRlZC10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSID0gJ3gtbmV4dC1yZXZhbGlkYXRlLXRhZy10b2tlbic7XG5jb25zdCBORVhUX1JFU1VNRV9IRUFERVIgPSAnbmV4dC1yZXN1bWUnO1xuY29uc3QgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TID0gMTI4O1xuY29uc3QgTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSCA9IDI1NjtcbmNvbnN0IE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSCA9IDEwMjQ7XG5jb25zdCBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRCA9ICdfTl9UXyc7XG5jb25zdCBDQUNIRV9PTkVfWUVBUiA9IDMxNTM2MDAwO1xuY29uc3QgSU5GSU5JVEVfQ0FDSEUgPSAweGZmZmZmZmZlO1xuY29uc3QgTUlERExFV0FSRV9GSUxFTkFNRSA9ICdtaWRkbGV3YXJlJztcbmNvbnN0IE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQID0gYCg/OnNyYy8pPyR7TUlERExFV0FSRV9GSUxFTkFNRX1gO1xuY29uc3QgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUUgPSAnaW5zdHJ1bWVudGF0aW9uJztcbmNvbnN0IFBBR0VTX0RJUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcGFnZXMnO1xuY29uc3QgRE9UX05FWFRfQUxJQVMgPSAncHJpdmF0ZS1kb3QtbmV4dCc7XG5jb25zdCBST09UX0RJUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcm9vdC1kaXInO1xuY29uc3QgQVBQX0RJUl9BTElBUyA9ICdwcml2YXRlLW5leHQtYXBwLWRpcic7XG5jb25zdCBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUyA9ICduZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9tb2R1bGUtcHJveHknO1xuY29uc3QgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi12YWxpZGF0ZSc7XG5jb25zdCBSU0NfQUNUSU9OX1BST1hZX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2Mtc2VydmVyLXJlZmVyZW5jZSc7XG5jb25zdCBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWNhY2hlLXdyYXBwZXInO1xuY29uc3QgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWVuY3J5cHRpb24nO1xuY29uc3QgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1jbGllbnQtd3JhcHBlcic7XG5jb25zdCBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgaGF2ZSBhICdfbmV4dCcgZm9sZGVyIGluc2lkZSBvZiB5b3VyIHB1YmxpYyBmb2xkZXIuIFRoaXMgY29uZmxpY3RzIHdpdGggdGhlIGludGVybmFsICcvX25leHQnIHJvdXRlLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wdWJsaWMtbmV4dC1mb2xkZXItY29uZmxpY3RgO1xuY29uc3QgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTdGF0aWNQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSB5b3VyIGdldEluaXRpYWxQcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gUGxlYXNlIHJlbW92ZSBnZXRJbml0aWFsUHJvcHMuYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldFN0YXRpY1Byb3BzIG9yIGdldFN0YXRpY1BhdGhzIHdpdGggZ2V0U2VydmVyU2lkZVByb3BzLiBUbyB1c2UgU1NHLCBwbGVhc2UgcmVtb3ZlIGdldFNlcnZlclNpZGVQcm9wc2A7XG5jb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IgPSBgY2FuIG5vdCBoYXZlIGdldEluaXRpYWxQcm9wcy9nZXRTZXJ2ZXJTaWRlUHJvcHMsIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLzQwNC1nZXQtaW5pdGlhbC1wcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SID0gYHBhZ2VzIHdpdGggXFxgZ2V0U2VydmVyU2lkZVByb3BzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1leHBvcnRgO1xuY29uc3QgR1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFN0YXRpY1Byb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gPyc7XG5jb25zdCBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFNlcnZlclNpZGVQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1IgPSAnVGhlIGB1bnN0YWJsZV9yZXZhbGlkYXRlYCBwcm9wZXJ0eSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYWwgdXNlLlxcbicgKyAnUGxlYXNlIHVzZSBgcmV2YWxpZGF0ZWAgaW5zdGVhZC4nO1xuY29uc3QgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SID0gYGNhbiBub3QgYmUgYXR0YWNoZWQgdG8gYSBwYWdlJ3MgY29tcG9uZW50IGFuZCBtdXN0IGJlIGV4cG9ydGVkIGZyb20gdGhlIHBhZ2UuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1jb21wb25lbnQtbWVtYmVyYDtcbmNvbnN0IE5PTl9TVEFOREFSRF9OT0RFX0VOViA9IGBZb3UgYXJlIHVzaW5nIGEgbm9uLXN0YW5kYXJkIFwiTk9ERV9FTlZcIiB2YWx1ZSBpbiB5b3VyIGVudmlyb25tZW50LiBUaGlzIGNyZWF0ZXMgaW5jb25zaXN0ZW5jaWVzIGluIHRoZSBwcm9qZWN0IGFuZCBpcyBzdHJvbmdseSBhZHZpc2VkIGFnYWluc3QuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm9uLXN0YW5kYXJkLW5vZGUtZW52YDtcbmNvbnN0IFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1IgPSBgUGFnZXMgd2l0aCBcXGBmYWxsYmFja1xcYCBlbmFibGVkIGluIFxcYGdldFN0YXRpY1BhdGhzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3NnLWZhbGxiYWNrLXRydWUtZXhwb3J0YDtcbmNvbnN0IEVTTElOVF9ERUZBVUxUX0RJUlMgPSBbXG4gICAgJ2FwcCcsXG4gICAgJ3BhZ2VzJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2xpYicsXG4gICAgJ3NyYydcbl07XG5jb25zdCBTRVJWRVJfUlVOVElNRSA9IHtcbiAgICBlZGdlOiAnZWRnZScsXG4gICAgZXhwZXJpbWVudGFsRWRnZTogJ2V4cGVyaW1lbnRhbC1lZGdlJyxcbiAgICBub2RlanM6ICdub2RlanMnXG59O1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHdlYnBhY2sgbGF5ZXJzLiBUaGVzZSBsYXllcnMgYXJlIHRoZSBwcmltaXRpdmVzIGZvciB0aGVcbiAqIHdlYnBhY2sgY2h1bmtzLlxuICovIGNvbnN0IFdFQlBBQ0tfTEFZRVJTX05BTUVTID0ge1xuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzaGFyZWQgY29kZSBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBidW5kbGVzLlxuICAgKi8gc2hhcmVkOiAnc2hhcmVkJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBzZXJ2ZXItb25seSBydW50aW1lIGFuZCBwaWNraW5nIHVwIGByZWFjdC1zZXJ2ZXJgIGV4cG9ydCBjb25kaXRpb25zLlxuICAgKiBJbmNsdWRpbmcgYXBwIHJvdXRlciBSU0MgcGFnZXMgYW5kIGFwcCByb3V0ZXIgY3VzdG9tIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzLlxuICAgKi8gcmVhY3RTZXJ2ZXJDb21wb25lbnRzOiAncnNjJyxcbiAgICAvKipcbiAgICogU2VydmVyIFNpZGUgUmVuZGVyaW5nIGxheWVyIGZvciBhcHAgKHNzcikuXG4gICAqLyBzZXJ2ZXJTaWRlUmVuZGVyaW5nOiAnc3NyJyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgYWN0aW9ucy5cbiAgICovIGFjdGlvbkJyb3dzZXI6ICdhY3Rpb24tYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGk6ICdhcGknLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBtaWRkbGV3YXJlIGNvZGUuXG4gICAqLyBtaWRkbGV3YXJlOiAnbWlkZGxld2FyZScsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIGluc3RydW1lbnRhdGlvbiBob29rcy5cbiAgICovIGluc3RydW1lbnQ6ICdpbnN0cnVtZW50JyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBhc3NldHMgb24gdGhlIGVkZ2UuXG4gICAqLyBlZGdlQXNzZXQ6ICdlZGdlLWFzc2V0JyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgQXBwIGRpcmVjdG9yeS5cbiAgICovIGFwcFBhZ2VzQnJvd3NlcjogJ2FwcC1wYWdlcy1icm93c2VyJ1xufTtcbmNvbnN0IFdFQlBBQ0tfTEFZRVJTID0ge1xuICAgIC4uLldFQlBBQ0tfTEFZRVJTX05BTUVTLFxuICAgIEdST1VQOiB7XG4gICAgICAgIGJ1aWx0aW5SZWFjdDogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBzZXJ2ZXJPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLm1pZGRsZXdhcmVcbiAgICAgICAgXSxcbiAgICAgICAgbmV1dHJhbFRhcmdldDogW1xuICAgICAgICAgICAgLy8gcGFnZXMgYXBpXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcGlcbiAgICAgICAgXSxcbiAgICAgICAgY2xpZW50T25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBidW5kbGVkOiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNoYXJlZCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnRcbiAgICAgICAgXSxcbiAgICAgICAgYXBwUGFnZXM6IFtcbiAgICAgICAgICAgIC8vIGFwcCByb3V0ZXIgcGFnZXMgYW5kIGxheW91dHNcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNlcnZlclNpZGVSZW5kZXJpbmcsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBQYWdlc0Jyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyXG4gICAgICAgIF1cbiAgICB9XG59O1xuY29uc3QgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTID0ge1xuICAgIGVkZ2VTU1JFbnRyeTogJ19fbmV4dF9lZGdlX3Nzcl9lbnRyeV9fJyxcbiAgICBtZXRhZGF0YTogJ19fbmV4dF9tZXRhZGF0YV9fJyxcbiAgICBtZXRhZGF0YVJvdXRlOiAnX19uZXh0X21ldGFkYXRhX3JvdXRlX18nLFxuICAgIG1ldGFkYXRhSW1hZ2VNZXRhOiAnX19uZXh0X21ldGFkYXRhX2ltYWdlX21ldGFfXydcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxkZXRhY2hlZC1wcm9taXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBgUHJvbWlzZS53aXRoUmVzb2x2ZXJzYCBpbXBsZW1lbnRhdGlvbiB0aGF0IGV4cG9zZXMgdGhlIGByZXNvbHZlYCBhbmRcbiAqIGByZWplY3RgIGZ1bmN0aW9ucyBvbiBhIGBQcm9taXNlYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1wcm9taXNlLXdpdGgtcmVzb2x2ZXJzL1xuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGV0YWNoZWRQcm9taXNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBEZXRhY2hlZFByb21pc2U7XG4gICAgfVxufSk7XG5jbGFzcyBEZXRhY2hlZFByb21pc2Uge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIGxldCByZXNvbHZlO1xuICAgICAgICBsZXQgcmVqZWN0O1xuICAgICAgICAvLyBDcmVhdGUgdGhlIHByb21pc2UgYW5kIGFzc2lnbiB0aGUgcmVzb2x2ZXJzIHRvIHRoZSBvYmplY3QuXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgICAgIHJlc29sdmUgPSByZXM7XG4gICAgICAgICAgICByZWplY3QgPSByZWo7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXZSBrbm93IHRoYXQgcmVzb2x2ZXJzIGlzIGRlZmluZWQgYmVjYXVzZSB0aGUgUHJvbWlzZSBjb25zdHJ1Y3RvciBydW5zXG4gICAgICAgIC8vIHN5bmNocm9ub3VzbHkuXG4gICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIHRoaXMucmVqZWN0ID0gcmVqZWN0O1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV0YWNoZWQtcHJvbWlzZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/detached-promise.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pbnRlcm9wLWRlZmF1bHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcaW50ZXJvcC1kZWZhdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaW50ZXJvcERlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGludGVyb3BEZWZhdWx0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW50ZXJvcERlZmF1bHQobW9kKSB7XG4gICAgcmV0dXJuIG1vZC5kZWZhdWx0IHx8IG1vZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJvcC1kZWZhdWx0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/interop-default.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jbG9uZS1tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxtZXRhZGF0YVxcY2xvbmUtbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjbG9uZU1ldGFkYXRhXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbG9uZU1ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgVFlQRV9VUkwgPSAnX19NRVRBREFUQV9VUkwnO1xuZnVuY3Rpb24gcmVwbGFjZXIoX2tleSwgdmFsKSB7XG4gICAgLy8gY2xvbmUgVVJMIGFzIHN0cmluZyBidXQgcmVjb3ZlciBpdCBhcyBVUkxcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBfdHlwZTogVFlQRV9VUkwsXG4gICAgICAgICAgICB2YWx1ZTogdmFsLmhyZWZcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn1cbmZ1bmN0aW9uIHJldml2ZXIoX2tleSwgdmFsKSB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCAhPT0gbnVsbCAmJiB2YWwuX3R5cGUgPT09IFRZUEVfVVJMKSB7XG4gICAgICAgIHJldHVybiBuZXcgVVJMKHZhbC52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59XG5mdW5jdGlvbiBjbG9uZU1ldGFkYXRhKG1ldGFkYXRhKSB7XG4gICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhLCByZXBsYWNlcik7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvblN0cmluZywgcmV2aXZlcik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsb25lLW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbWV0YWRhdGFcXGNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEljb25LZXlzOiBudWxsLFxuICAgIFZpZXdwb3J0TWV0YUtleXM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSWNvbktleXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSWNvbktleXM7XG4gICAgfSxcbiAgICBWaWV3cG9ydE1ldGFLZXlzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFZpZXdwb3J0TWV0YUtleXM7XG4gICAgfVxufSk7XG5jb25zdCBWaWV3cG9ydE1ldGFLZXlzID0ge1xuICAgIHdpZHRoOiAnd2lkdGgnLFxuICAgIGhlaWdodDogJ2hlaWdodCcsXG4gICAgaW5pdGlhbFNjYWxlOiAnaW5pdGlhbC1zY2FsZScsXG4gICAgbWluaW11bVNjYWxlOiAnbWluaW11bS1zY2FsZScsXG4gICAgbWF4aW11bVNjYWxlOiAnbWF4aW11bS1zY2FsZScsXG4gICAgdmlld3BvcnRGaXQ6ICd2aWV3cG9ydC1maXQnLFxuICAgIHVzZXJTY2FsYWJsZTogJ3VzZXItc2NhbGFibGUnLFxuICAgIGludGVyYWN0aXZlV2lkZ2V0OiAnaW50ZXJhY3RpdmUtd2lkZ2V0J1xufTtcbmNvbnN0IEljb25LZXlzID0gW1xuICAgICdpY29uJyxcbiAgICAnc2hvcnRjdXQnLFxuICAgICdhcHBsZScsXG4gICAgJ290aGVyJ1xuXTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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 abstract: null,\n appLinks: null,\n archives: null,\n assets: null,\n bookmarks: null,\n category: null,\n classification: null,\n other: {}\n };\n}\n\n//# sourceMappingURL=default-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9kZWZhdWx0LW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXG1ldGFkYXRhXFxkZWZhdWx0LW1ldGFkYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlRGVmYXVsdE1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZURlZmF1bHRWaWV3cG9ydDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVEZWZhdWx0TWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVmYXVsdE1ldGFkYXRhO1xuICAgIH0sXG4gICAgY3JlYXRlRGVmYXVsdFZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZmF1bHRWaWV3cG9ydDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRWaWV3cG9ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBuYW1lPXZpZXdwb3J0XG4gICAgICAgIHdpZHRoOiAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgaW5pdGlhbFNjYWxlOiAxLFxuICAgICAgICAvLyB2aXN1YWwgbWV0YWRhdGFcbiAgICAgICAgdGhlbWVDb2xvcjogbnVsbCxcbiAgICAgICAgY29sb3JTY2hlbWU6IG51bGxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlRGVmYXVsdE1ldGFkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIERlcHJlY2F0ZWQgb25lc1xuICAgICAgICB2aWV3cG9ydDogbnVsbCxcbiAgICAgICAgdGhlbWVDb2xvcjogbnVsbCxcbiAgICAgICAgY29sb3JTY2hlbWU6IG51bGwsXG4gICAgICAgIG1ldGFkYXRhQmFzZTogbnVsbCxcbiAgICAgICAgLy8gT3RoZXIgdmFsdWVzIGFyZSBhbGwgbnVsbFxuICAgICAgICB0aXRsZTogbnVsbCxcbiAgICAgICAgZGVzY3JpcHRpb246IG51bGwsXG4gICAgICAgIGFwcGxpY2F0aW9uTmFtZTogbnVsbCxcbiAgICAgICAgYXV0aG9yczogbnVsbCxcbiAgICAgICAgZ2VuZXJhdG9yOiBudWxsLFxuICAgICAgICBrZXl3b3JkczogbnVsbCxcbiAgICAgICAgcmVmZXJyZXI6IG51bGwsXG4gICAgICAgIGNyZWF0b3I6IG51bGwsXG4gICAgICAgIHB1Ymxpc2hlcjogbnVsbCxcbiAgICAgICAgcm9ib3RzOiBudWxsLFxuICAgICAgICBtYW5pZmVzdDogbnVsbCxcbiAgICAgICAgYWx0ZXJuYXRlczoge1xuICAgICAgICAgICAgY2Fub25pY2FsOiBudWxsLFxuICAgICAgICAgICAgbGFuZ3VhZ2VzOiBudWxsLFxuICAgICAgICAgICAgbWVkaWE6IG51bGwsXG4gICAgICAgICAgICB0eXBlczogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBpY29uczogbnVsbCxcbiAgICAgICAgb3BlbkdyYXBoOiBudWxsLFxuICAgICAgICB0d2l0dGVyOiBudWxsLFxuICAgICAgICB2ZXJpZmljYXRpb246IHt9LFxuICAgICAgICBhcHBsZVdlYkFwcDogbnVsbCxcbiAgICAgICAgZm9ybWF0RGV0ZWN0aW9uOiBudWxsLFxuICAgICAgICBpdHVuZXM6IG51bGwsXG4gICAgICAgIGZhY2Vib29rOiBudWxsLFxuICAgICAgICBhYnN0cmFjdDogbnVsbCxcbiAgICAgICAgYXBwTGlua3M6IG51bGwsXG4gICAgICAgIGFyY2hpdmVzOiBudWxsLFxuICAgICAgICBhc3NldHM6IG51bGwsXG4gICAgICAgIGJvb2ttYXJrczogbnVsbCxcbiAgICAgICAgY2F0ZWdvcnk6IG51bGwsXG4gICAgICAgIGNsYXNzaWZpY2F0aW9uOiBudWxsLFxuICAgICAgICBvdGhlcjoge31cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9hbHRlcm5hdGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixvQkFBb0IsbUJBQU8sQ0FBQyx5SEFBbUI7QUFDL0Msc0RBQXNELG1CQUFPLENBQUMsaUdBQU87QUFDckUsY0FBYyxtQkFBTyxDQUFDLDRFQUFRO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0JBQXNCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQSw4QkFBOEIsWUFBWTtBQUMxQztBQUNBLFlBQVkscUNBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbWV0YWRhdGFcXGdlbmVyYXRlXFxhbHRlcm5hdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBbHRlcm5hdGVzTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFsdGVybmF0ZXNNZXRhZGF0YTtcbiAgICB9XG59KTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9tZXRhID0gcmVxdWlyZShcIi4vbWV0YVwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gQWx0ZXJuYXRlTGluayh7IGRlc2NyaXB0b3IsIC4uLnByb3BzIH0pIHtcbiAgICBpZiAoIWRlc2NyaXB0b3IudXJsKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgLi4uZGVzY3JpcHRvci50aXRsZSAmJiB7XG4gICAgICAgICAgICB0aXRsZTogZGVzY3JpcHRvci50aXRsZVxuICAgICAgICB9LFxuICAgICAgICBocmVmOiBkZXNjcmlwdG9yLnVybC50b1N0cmluZygpXG4gICAgfSk7XG59XG5mdW5jdGlvbiBBbHRlcm5hdGVzTWV0YWRhdGEoeyBhbHRlcm5hdGVzIH0pIHtcbiAgICBpZiAoIWFsdGVybmF0ZXMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgY2Fub25pY2FsLCBsYW5ndWFnZXMsIG1lZGlhLCB0eXBlcyB9ID0gYWx0ZXJuYXRlcztcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgY2Fub25pY2FsID8gQWx0ZXJuYXRlTGluayh7XG4gICAgICAgICAgICByZWw6ICdjYW5vbmljYWwnLFxuICAgICAgICAgICAgZGVzY3JpcHRvcjogY2Fub25pY2FsXG4gICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgbGFuZ3VhZ2VzID8gT2JqZWN0LmVudHJpZXMobGFuZ3VhZ2VzKS5mbGF0TWFwKChbbG9jYWxlLCBkZXNjcmlwdG9yc10pPT5kZXNjcmlwdG9ycyA9PSBudWxsID8gdm9pZCAwIDogZGVzY3JpcHRvcnMubWFwKChkZXNjcmlwdG9yKT0+QWx0ZXJuYXRlTGluayh7XG4gICAgICAgICAgICAgICAgICAgIHJlbDogJ2FsdGVybmF0ZScsXG4gICAgICAgICAgICAgICAgICAgIGhyZWZMYW5nOiBsb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICB9KSkpIDogbnVsbCxcbiAgICAgICAgbWVkaWEgPyBPYmplY3QuZW50cmllcyhtZWRpYSkuZmxhdE1hcCgoW21lZGlhTmFtZSwgZGVzY3JpcHRvcnNdKT0+ZGVzY3JpcHRvcnMgPT0gbnVsbCA/IHZvaWQgMCA6IGRlc2NyaXB0b3JzLm1hcCgoZGVzY3JpcHRvcik9PkFsdGVybmF0ZUxpbmsoe1xuICAgICAgICAgICAgICAgICAgICByZWw6ICdhbHRlcm5hdGUnLFxuICAgICAgICAgICAgICAgICAgICBtZWRpYTogbWVkaWFOYW1lLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yXG4gICAgICAgICAgICAgICAgfSkpKSA6IG51bGwsXG4gICAgICAgIHR5cGVzID8gT2JqZWN0LmVudHJpZXModHlwZXMpLmZsYXRNYXAoKFt0eXBlLCBkZXNjcmlwdG9yc10pPT5kZXNjcmlwdG9ycyA9PSBudWxsID8gdm9pZCAwIDogZGVzY3JpcHRvcnMubWFwKChkZXNjcmlwdG9yKT0+QWx0ZXJuYXRlTGluayh7XG4gICAgICAgICAgICAgICAgICAgIHJlbDogJ2FsdGVybmF0ZScsXG4gICAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICB9KSkpIDogbnVsbFxuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbHRlcm5hdGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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 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 _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\");\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\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n// convert viewport object to string for viewport meta tag\nfunction resolveViewportLayout(viewport) {\n let resolved = null;\n if (viewport && typeof viewport === 'object') {\n resolved = '';\n for(const viewportKey_ in _constants.ViewportMetaKeys){\n const viewportKey = viewportKey_;\n if (viewportKey in viewport) {\n let value = viewport[viewportKey];\n if (typeof value === 'boolean') value = value ? 'yes' : 'no';\n if (resolved) resolved += ', ';\n resolved += `${_constants.ViewportMetaKeys[viewportKey]}=${value}`;\n }\n }\n }\n return resolved;\n}\nfunction ViewportMeta({ viewport }) {\n return (0, _meta.MetaFilter)([\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 /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }),\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 (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}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9iYXNpYy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FRTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLHNEQUFzRCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3JFLGNBQWMsbUJBQU8sQ0FBQyw0RUFBUTtBQUM5QixtQkFBbUIsbUJBQU8sQ0FBQyw4RUFBYztBQUN6QyxlQUFlLG1CQUFPLENBQUMsOEVBQVM7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IseUNBQXlDLEdBQUcsTUFBTTtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxxQkFBcUIsVUFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0JBQXNCLFFBQVE7QUFDOUI7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQyw0QkFBNEIsTUFBTTtBQUNsQztBQUNBLHFDQUFxQyxZQUFZO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGlCQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLElBQUk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJCQUEyQixhQUFhO0FBQ3hDO0FBQ0EsWUFBWSwrQ0FBK0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsNEJBQTRCLGNBQWM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxtZXRhZGF0YVxcZ2VuZXJhdGVcXGJhc2ljLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBwbGVXZWJBcHBNZXRhOiBudWxsLFxuICAgIEJhc2ljTWV0YTogbnVsbCxcbiAgICBGYWNlYm9va01ldGE6IG51bGwsXG4gICAgRm9ybWF0RGV0ZWN0aW9uTWV0YTogbnVsbCxcbiAgICBJdHVuZXNNZXRhOiBudWxsLFxuICAgIFZlcmlmaWNhdGlvbk1ldGE6IG51bGwsXG4gICAgVmlld3BvcnRNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFwcGxlV2ViQXBwTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBsZVdlYkFwcE1ldGE7XG4gICAgfSxcbiAgICBCYXNpY01ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmFzaWNNZXRhO1xuICAgIH0sXG4gICAgRmFjZWJvb2tNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZhY2Vib29rTWV0YTtcbiAgICB9LFxuICAgIEZvcm1hdERldGVjdGlvbk1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRm9ybWF0RGV0ZWN0aW9uTWV0YTtcbiAgICB9LFxuICAgIEl0dW5lc01ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSXR1bmVzTWV0YTtcbiAgICB9LFxuICAgIFZlcmlmaWNhdGlvbk1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVmVyaWZpY2F0aW9uTWV0YTtcbiAgICB9LFxuICAgIFZpZXdwb3J0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBWaWV3cG9ydE1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfbWV0YSA9IHJlcXVpcmUoXCIuL21ldGFcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2NvbnN0YW50c1wiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG4vLyBjb252ZXJ0IHZpZXdwb3J0IG9iamVjdCB0byBzdHJpbmcgZm9yIHZpZXdwb3J0IG1ldGEgdGFnXG5mdW5jdGlvbiByZXNvbHZlVmlld3BvcnRMYXlvdXQodmlld3BvcnQpIHtcbiAgICBsZXQgcmVzb2x2ZWQgPSBudWxsO1xuICAgIGlmICh2aWV3cG9ydCAmJiB0eXBlb2Ygdmlld3BvcnQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJlc29sdmVkID0gJyc7XG4gICAgICAgIGZvcihjb25zdCB2aWV3cG9ydEtleV8gaW4gX2NvbnN0YW50cy5WaWV3cG9ydE1ldGFLZXlzKXtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0S2V5ID0gdmlld3BvcnRLZXlfO1xuICAgICAgICAgICAgaWYgKHZpZXdwb3J0S2V5IGluIHZpZXdwb3J0KSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdmlld3BvcnRbdmlld3BvcnRLZXldO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykgdmFsdWUgPSB2YWx1ZSA/ICd5ZXMnIDogJ25vJztcbiAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQpIHJlc29sdmVkICs9ICcsICc7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWQgKz0gYCR7X2NvbnN0YW50cy5WaWV3cG9ydE1ldGFLZXlzW3ZpZXdwb3J0S2V5XX09JHt2YWx1ZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZDtcbn1cbmZ1bmN0aW9uIFZpZXdwb3J0TWV0YSh7IHZpZXdwb3J0IH0pIHtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd2aWV3cG9ydCcsXG4gICAgICAgICAgICBjb250ZW50OiByZXNvbHZlVmlld3BvcnRMYXlvdXQodmlld3BvcnQpXG4gICAgICAgIH0pLFxuICAgICAgICAuLi52aWV3cG9ydC50aGVtZUNvbG9yID8gdmlld3BvcnQudGhlbWVDb2xvci5tYXAoKHRoZW1lQ29sb3IpPT4oMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgIG5hbWU6ICd0aGVtZS1jb2xvcicsXG4gICAgICAgICAgICAgICAgY29udGVudDogdGhlbWVDb2xvci5jb2xvcixcbiAgICAgICAgICAgICAgICBtZWRpYTogdGhlbWVDb2xvci5tZWRpYVxuICAgICAgICAgICAgfSkpIDogW10sXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnY29sb3Itc2NoZW1lJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHZpZXdwb3J0LmNvbG9yU2NoZW1lXG4gICAgICAgIH0pXG4gICAgXSk7XG59XG5mdW5jdGlvbiBCYXNpY01ldGEoeyBtZXRhZGF0YSB9KSB7XG4gICAgdmFyIF9tZXRhZGF0YV9rZXl3b3JkcywgX21ldGFkYXRhX3JvYm90cywgX21ldGFkYXRhX3JvYm90czE7XG4gICAgY29uc3QgbWFuaWZlc3RPcmlnaW4gPSBtZXRhZGF0YS5tYW5pZmVzdCA/ICgwLCBfdXRpbHMuZ2V0T3JpZ2luKShtZXRhZGF0YS5tYW5pZmVzdCkgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIGNoYXJTZXQ6IFwidXRmLThcIlxuICAgICAgICB9KSxcbiAgICAgICAgbWV0YWRhdGEudGl0bGUgIT09IG51bGwgJiYgbWV0YWRhdGEudGl0bGUuYWJzb2x1dGUgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwidGl0bGVcIiwge1xuICAgICAgICAgICAgY2hpbGRyZW46IG1ldGFkYXRhLnRpdGxlLmFic29sdXRlXG4gICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5kZXNjcmlwdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdhcHBsaWNhdGlvbi1uYW1lJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmFwcGxpY2F0aW9uTmFtZVxuICAgICAgICB9KSxcbiAgICAgICAgLi4ubWV0YWRhdGEuYXV0aG9ycyA/IG1ldGFkYXRhLmF1dGhvcnMubWFwKChhdXRob3IpPT5bXG4gICAgICAgICAgICAgICAgYXV0aG9yLnVybCA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiBcImF1dGhvclwiLFxuICAgICAgICAgICAgICAgICAgICBocmVmOiBhdXRob3IudXJsLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2F1dGhvcicsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF1dGhvci5uYW1lXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0pIDogW10sXG4gICAgICAgIG1ldGFkYXRhLm1hbmlmZXN0ID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgcmVsOiBcIm1hbmlmZXN0XCIsXG4gICAgICAgICAgICBocmVmOiBtZXRhZGF0YS5tYW5pZmVzdC50b1N0cmluZygpLFxuICAgICAgICAgICAgLy8gSWYgaXQncyBzYW1lIG9yaWdpbiwgYW5kIGl0J3MgYSBwcmV2aWV3IGRlcGxveW1lbnQsXG4gICAgICAgICAgICAvLyBpbmNsdWRpbmcgY3JlZGVudGlhbHMgZm9yIG1hbmlmZXN0IHJlcXVlc3QuXG4gICAgICAgICAgICBjcm9zc09yaWdpbjogIW1hbmlmZXN0T3JpZ2luICYmIHByb2Nlc3MuZW52LlZFUkNFTF9FTlYgPT09ICdwcmV2aWV3JyA/ICd1c2UtY3JlZGVudGlhbHMnIDogdW5kZWZpbmVkXG4gICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdnZW5lcmF0b3InLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuZ2VuZXJhdG9yXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2tleXdvcmRzJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfbWV0YWRhdGFfa2V5d29yZHMgPSBtZXRhZGF0YS5rZXl3b3JkcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9tZXRhZGF0YV9rZXl3b3Jkcy5qb2luKCcsJylcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAncmVmZXJyZXInLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEucmVmZXJyZXJcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnY3JlYXRvcicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5jcmVhdG9yXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ3B1Ymxpc2hlcicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5wdWJsaXNoZXJcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAncm9ib3RzJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfbWV0YWRhdGFfcm9ib3RzID0gbWV0YWRhdGEucm9ib3RzKSA9PSBudWxsID8gdm9pZCAwIDogX21ldGFkYXRhX3JvYm90cy5iYXNpY1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdnb29nbGVib3QnLFxuICAgICAgICAgICAgY29udGVudDogKF9tZXRhZGF0YV9yb2JvdHMxID0gbWV0YWRhdGEucm9ib3RzKSA9PSBudWxsID8gdm9pZCAwIDogX21ldGFkYXRhX3JvYm90czEuZ29vZ2xlQm90XG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2Fic3RyYWN0JyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmFic3RyYWN0XG4gICAgICAgIH0pLFxuICAgICAgICAuLi5tZXRhZGF0YS5hcmNoaXZlcyA/IG1ldGFkYXRhLmFyY2hpdmVzLm1hcCgoYXJjaGl2ZSk9Pi8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwiYXJjaGl2ZXNcIixcbiAgICAgICAgICAgICAgICBocmVmOiBhcmNoaXZlXG4gICAgICAgICAgICB9KSkgOiBbXSxcbiAgICAgICAgLi4ubWV0YWRhdGEuYXNzZXRzID8gbWV0YWRhdGEuYXNzZXRzLm1hcCgoYXNzZXQpPT4vKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcImFzc2V0c1wiLFxuICAgICAgICAgICAgICAgIGhyZWY6IGFzc2V0XG4gICAgICAgICAgICB9KSkgOiBbXSxcbiAgICAgICAgLi4ubWV0YWRhdGEuYm9va21hcmtzID8gbWV0YWRhdGEuYm9va21hcmtzLm1hcCgoYm9va21hcmspPT4vKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgICAgICAgICAgcmVsOiBcImJvb2ttYXJrc1wiLFxuICAgICAgICAgICAgICAgIGhyZWY6IGJvb2ttYXJrXG4gICAgICAgICAgICB9KSkgOiBbXSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5jYXRlZ29yeVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjbGFzc2lmaWNhdGlvbicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5jbGFzc2lmaWNhdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgLi4ubWV0YWRhdGEub3RoZXIgPyBPYmplY3QuZW50cmllcyhtZXRhZGF0YS5vdGhlcikubWFwKChbbmFtZSwgY29udGVudF0pPT57XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50Lm1hcCgoY29udGVudEl0ZW0pPT4oMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRJdGVtXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkgOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gSXR1bmVzTWV0YSh7IGl0dW5lcyB9KSB7XG4gICAgaWYgKCFpdHVuZXMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgYXBwSWQsIGFwcEFyZ3VtZW50IH0gPSBpdHVuZXM7XG4gICAgbGV0IGNvbnRlbnQgPSBgYXBwLWlkPSR7YXBwSWR9YDtcbiAgICBpZiAoYXBwQXJndW1lbnQpIHtcbiAgICAgICAgY29udGVudCArPSBgLCBhcHAtYXJndW1lbnQ9JHthcHBBcmd1bWVudH1gO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICBuYW1lOiBcImFwcGxlLWl0dW5lcy1hcHBcIixcbiAgICAgICAgY29udGVudDogY29udGVudFxuICAgIH0pO1xufVxuZnVuY3Rpb24gRmFjZWJvb2tNZXRhKHsgZmFjZWJvb2sgfSkge1xuICAgIGlmICghZmFjZWJvb2spIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgYXBwSWQsIGFkbWlucyB9ID0gZmFjZWJvb2s7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIGFwcElkID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgcHJvcGVydHk6IFwiZmI6YXBwX2lkXCIsXG4gICAgICAgICAgICBjb250ZW50OiBhcHBJZFxuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgIC4uLmFkbWlucyA/IGFkbWlucy5tYXAoKGFkbWluKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcImZiOmFkbWluc1wiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFkbWluXG4gICAgICAgICAgICB9KSkgOiBbXVxuICAgIF0pO1xufVxuY29uc3QgZm9ybWF0RGV0ZWN0aW9uS2V5cyA9IFtcbiAgICAndGVsZXBob25lJyxcbiAgICAnZGF0ZScsXG4gICAgJ2FkZHJlc3MnLFxuICAgICdlbWFpbCcsXG4gICAgJ3VybCdcbl07XG5mdW5jdGlvbiBGb3JtYXREZXRlY3Rpb25NZXRhKHsgZm9ybWF0RGV0ZWN0aW9uIH0pIHtcbiAgICBpZiAoIWZvcm1hdERldGVjdGlvbikgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNvbnRlbnQgPSAnJztcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBmb3JtYXREZXRlY3Rpb25LZXlzKXtcbiAgICAgICAgaWYgKGtleSBpbiBmb3JtYXREZXRlY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChjb250ZW50KSBjb250ZW50ICs9ICcsICc7XG4gICAgICAgICAgICBjb250ZW50ICs9IGAke2tleX09bm9gO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgIG5hbWU6IFwiZm9ybWF0LWRldGVjdGlvblwiLFxuICAgICAgICBjb250ZW50OiBjb250ZW50XG4gICAgfSk7XG59XG5mdW5jdGlvbiBBcHBsZVdlYkFwcE1ldGEoeyBhcHBsZVdlYkFwcCB9KSB7XG4gICAgaWYgKCFhcHBsZVdlYkFwcCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBjYXBhYmxlLCB0aXRsZSwgc3RhcnR1cEltYWdlLCBzdGF0dXNCYXJTdHlsZSB9ID0gYXBwbGVXZWJBcHA7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIGNhcGFibGUgPyAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ21vYmlsZS13ZWItYXBwLWNhcGFibGUnLFxuICAgICAgICAgICAgY29udGVudDogJ3llcydcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2FwcGxlLW1vYmlsZS13ZWItYXBwLXRpdGxlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRpdGxlXG4gICAgICAgIH0pLFxuICAgICAgICBzdGFydHVwSW1hZ2UgPyBzdGFydHVwSW1hZ2UubWFwKChpbWFnZSk9Pi8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICBocmVmOiBpbWFnZS51cmwsXG4gICAgICAgICAgICAgICAgbWVkaWE6IGltYWdlLm1lZGlhLFxuICAgICAgICAgICAgICAgIHJlbDogXCJhcHBsZS10b3VjaC1zdGFydHVwLWltYWdlXCJcbiAgICAgICAgICAgIH0pKSA6IG51bGwsXG4gICAgICAgIHN0YXR1c0JhclN0eWxlID8gKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHN0YXR1c0JhclN0eWxlXG4gICAgICAgIH0pIDogbnVsbFxuICAgIF0pO1xufVxuZnVuY3Rpb24gVmVyaWZpY2F0aW9uTWV0YSh7IHZlcmlmaWNhdGlvbiB9KSB7XG4gICAgaWYgKCF2ZXJpZmljYXRpb24pIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiAnZ29vZ2xlLXNpdGUtdmVyaWZpY2F0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB2ZXJpZmljYXRpb24uZ29vZ2xlXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiAneV9rZXknLFxuICAgICAgICAgICAgY29udGVudHM6IHZlcmlmaWNhdGlvbi55YWhvb1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgbmFtZVByZWZpeDogJ3lhbmRleC12ZXJpZmljYXRpb24nLFxuICAgICAgICAgICAgY29udGVudHM6IHZlcmlmaWNhdGlvbi55YW5kZXhcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6ICdtZScsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLm1lXG4gICAgICAgIH0pLFxuICAgICAgICAuLi52ZXJpZmljYXRpb24ub3RoZXIgPyBPYmplY3QuZW50cmllcyh2ZXJpZmljYXRpb24ub3RoZXIpLm1hcCgoW2tleSwgdmFsdWVdKT0+KDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgIG5hbWVQcmVmaXg6IGtleSxcbiAgICAgICAgICAgICAgICBjb250ZW50czogdmFsdWVcbiAgICAgICAgICAgIH0pKSA6IFtdXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2ljLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.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 _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 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 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 ]);\n}\n\n//# sourceMappingURL=icons.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyxzREFBc0QsbUJBQU8sQ0FBQyxpR0FBTztBQUNyRSxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixNQUFNO0FBQ3BDLFlBQVksOEJBQThCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esb0JBQW9CLFdBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSx5QkFBeUIsT0FBTztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbWV0YWRhdGFcXGdlbmVyYXRlXFxpY29ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkljb25zTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEljb25zTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfbWV0YSA9IHJlcXVpcmUoXCIuL21ldGFcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIEljb25EZXNjcmlwdG9yTGluayh7IGljb24gfSkge1xuICAgIGNvbnN0IHsgdXJsLCByZWwgPSAnaWNvbicsIC4uLnByb3BzIH0gPSBpY29uO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgIHJlbDogcmVsLFxuICAgICAgICBocmVmOiB1cmwudG9TdHJpbmcoKSxcbiAgICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIEljb25MaW5rKHsgcmVsLCBpY29uIH0pIHtcbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdvYmplY3QnICYmICEoaWNvbiBpbnN0YW5jZW9mIFVSTCkpIHtcbiAgICAgICAgaWYgKCFpY29uLnJlbCAmJiByZWwpIGljb24ucmVsID0gcmVsO1xuICAgICAgICByZXR1cm4gSWNvbkRlc2NyaXB0b3JMaW5rKHtcbiAgICAgICAgICAgIGljb25cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaHJlZiA9IGljb24udG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgIHJlbDogcmVsLFxuICAgICAgICAgICAgaHJlZjogaHJlZlxuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBJY29uc01ldGFkYXRhKHsgaWNvbnMgfSkge1xuICAgIGlmICghaWNvbnMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHNob3J0Y3V0TGlzdCA9IGljb25zLnNob3J0Y3V0O1xuICAgIGNvbnN0IGljb25MaXN0ID0gaWNvbnMuaWNvbjtcbiAgICBjb25zdCBhcHBsZUxpc3QgPSBpY29ucy5hcHBsZTtcbiAgICBjb25zdCBvdGhlckxpc3QgPSBpY29ucy5vdGhlcjtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgc2hvcnRjdXRMaXN0ID8gc2hvcnRjdXRMaXN0Lm1hcCgoaWNvbik9Pkljb25MaW5rKHtcbiAgICAgICAgICAgICAgICByZWw6ICdzaG9ydGN1dCBpY29uJyxcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBpY29uTGlzdCA/IGljb25MaXN0Lm1hcCgoaWNvbik9Pkljb25MaW5rKHtcbiAgICAgICAgICAgICAgICByZWw6ICdpY29uJyxcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBhcHBsZUxpc3QgPyBhcHBsZUxpc3QubWFwKChpY29uKT0+SWNvbkxpbmsoe1xuICAgICAgICAgICAgICAgIHJlbDogJ2FwcGxlLXRvdWNoLWljb24nLFxuICAgICAgICAgICAgICAgIGljb25cbiAgICAgICAgICAgIH0pKSA6IG51bGwsXG4gICAgICAgIG90aGVyTGlzdCA/IG90aGVyTGlzdC5tYXAoKGljb24pPT5JY29uRGVzY3JpcHRvckxpbmsoe1xuICAgICAgICAgICAgICAgIGljb25cbiAgICAgICAgICAgIH0pKSA6IG51bGxcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aWNvbnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9tZXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLHNEQUFzRCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3JFLHFCQUFxQixtQkFBTyxDQUFDLDhFQUFvQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdDQUFnQztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixxQ0FBcUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBLHFCQUFxQixzQ0FBc0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbWV0YWRhdGFcXGdlbmVyYXRlXFxtZXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTWV0YTogbnVsbCxcbiAgICBNZXRhRmlsdGVyOiBudWxsLFxuICAgIE11bHRpTWV0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1ldGE7XG4gICAgfSxcbiAgICBNZXRhRmlsdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1ldGFGaWx0ZXI7XG4gICAgfSxcbiAgICBNdWx0aU1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTXVsdGlNZXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX25vbm51bGxhYmxlID0gcmVxdWlyZShcIi4uLy4uL25vbi1udWxsYWJsZVwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gTWV0YSh7IG5hbWUsIHByb3BlcnR5LCBjb250ZW50LCBtZWRpYSB9KSB7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAndW5kZWZpbmVkJyAmJiBjb250ZW50ICE9PSBudWxsICYmIGNvbnRlbnQgIT09ICcnKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgICAgICAuLi5uYW1lID8ge1xuICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgIH0gOiB7XG4gICAgICAgICAgICAgICAgcHJvcGVydHlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi5tZWRpYSA/IHtcbiAgICAgICAgICAgICAgICBtZWRpYVxuICAgICAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyA/IGNvbnRlbnQgOiBjb250ZW50LnRvU3RyaW5nKClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gTWV0YUZpbHRlcihpdGVtcykge1xuICAgIGNvbnN0IGFjYyA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcyl7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgICAgICAgICBhY2MucHVzaCguLi5pdGVtLmZpbHRlcihfbm9ubnVsbGFibGUubm9uTnVsbGFibGUpKTtcbiAgICAgICAgfSBlbHNlIGlmICgoMCwgX25vbm51bGxhYmxlLm5vbk51bGxhYmxlKShpdGVtKSkge1xuICAgICAgICAgICAgYWNjLnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbn1cbmZ1bmN0aW9uIGNhbWVsVG9TbmFrZShjYW1lbENhc2VTdHIpIHtcbiAgICByZXR1cm4gY2FtZWxDYXNlU3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgZnVuY3Rpb24obWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuICdfJyArIG1hdGNoLnRvTG93ZXJDYXNlKCk7XG4gICAgfSk7XG59XG5jb25zdCBhbGlhc1Byb3BQcmVmaXhlcyA9IG5ldyBTZXQoW1xuICAgICdvZzppbWFnZScsXG4gICAgJ3R3aXR0ZXI6aW1hZ2UnLFxuICAgICdvZzp2aWRlbycsXG4gICAgJ29nOmF1ZGlvJ1xuXSk7XG5mdW5jdGlvbiBnZXRNZXRhS2V5KHByZWZpeCwga2V5KSB7XG4gICAgLy8gVXNlIGB0d2l0dGVyOmltYWdlYCBhbmQgYG9nOmltYWdlYCBpbnN0ZWFkIG9mIGB0d2l0dGVyOmltYWdlOnVybGAgYW5kIGBvZzppbWFnZTp1cmxgXG4gICAgLy8gdG8gYmUgbW9yZSBjb21wYXRpYmxlIGFzIGl0J3MgYSBtb3JlIGNvbW1vbiBmb3JtYXQuXG4gICAgLy8gYG9nOnZpZGVvYCAmIGBvZzphdWRpb2AgZG8gbm90IGhhdmUgYSBgOnVybGAgc3VmZml4IGFsaWFzXG4gICAgaWYgKGFsaWFzUHJvcFByZWZpeGVzLmhhcyhwcmVmaXgpICYmIGtleSA9PT0gJ3VybCcpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeDtcbiAgICB9XG4gICAgaWYgKHByZWZpeC5zdGFydHNXaXRoKCdvZzonKSB8fCBwcmVmaXguc3RhcnRzV2l0aCgndHdpdHRlcjonKSkge1xuICAgICAgICBrZXkgPSBjYW1lbFRvU25ha2Uoa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIHByZWZpeCArICc6JyArIGtleTtcbn1cbmZ1bmN0aW9uIEV4dGVuZE1ldGEoeyBjb250ZW50LCBuYW1lUHJlZml4LCBwcm9wZXJ0eVByZWZpeCB9KSB7XG4gICAgaWYgKCFjb250ZW50KSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gTWV0YUZpbHRlcihPYmplY3QuZW50cmllcyhjb250ZW50KS5tYXAoKFtrLCB2XSk9PntcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBNZXRhKHtcbiAgICAgICAgICAgIC4uLnByb3BlcnR5UHJlZml4ICYmIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eTogZ2V0TWV0YUtleShwcm9wZXJ0eVByZWZpeCwgaylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi5uYW1lUHJlZml4ICYmIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBnZXRNZXRhS2V5KG5hbWVQcmVmaXgsIGspXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29udGVudDogdHlwZW9mIHYgPT09ICdzdHJpbmcnID8gdiA6IHYgPT0gbnVsbCA/IHZvaWQgMCA6IHYudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICB9KSk7XG59XG5mdW5jdGlvbiBNdWx0aU1ldGEoeyBwcm9wZXJ0eVByZWZpeCwgbmFtZVByZWZpeCwgY29udGVudHMgfSkge1xuICAgIGlmICh0eXBlb2YgY29udGVudHMgPT09ICd1bmRlZmluZWQnIHx8IGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gTWV0YUZpbHRlcihjb250ZW50cy5tYXAoKGNvbnRlbnQpPT57XG4gICAgICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNvbnRlbnQgPT09ICdudW1iZXInIHx8IGNvbnRlbnQgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgICAgICAgIHJldHVybiBNZXRhKHtcbiAgICAgICAgICAgICAgICAuLi5wcm9wZXJ0eVByZWZpeCA/IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IHByb3BlcnR5UHJlZml4XG4gICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZVByZWZpeFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29udGVudFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gRXh0ZW5kTWV0YSh7XG4gICAgICAgICAgICAgICAgbmFtZVByZWZpeCxcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeCxcbiAgICAgICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWV0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUIsNkJBQTZCLFdBQVc7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELGlCQUFpQjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsV0FBVztBQUNyQztBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsS0FBSztBQUMzQztBQUNBLFNBQVM7QUFDVDtBQUNBLG9DQUFvQyxLQUFLO0FBQ3pDO0FBQ0EsU0FBUztBQUNUO0FBQ0EscUNBQXFDLEtBQUs7QUFDMUM7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLDJCQUEyQixTQUFTO0FBQ3BDO0FBQ0E7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsVUFBVTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXG1ldGFkYXRhXFxnZW5lcmF0ZVxcb3BlbmdyYXBoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBwTGlua3NNZXRhOiBudWxsLFxuICAgIE9wZW5HcmFwaE1ldGFkYXRhOiBudWxsLFxuICAgIFR3aXR0ZXJNZXRhZGF0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBMaW5rc01ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwTGlua3NNZXRhO1xuICAgIH0sXG4gICAgT3BlbkdyYXBoTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gT3BlbkdyYXBoTWV0YWRhdGE7XG4gICAgfSxcbiAgICBUd2l0dGVyTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVHdpdHRlck1ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX21ldGEgPSByZXF1aXJlKFwiLi9tZXRhXCIpO1xuZnVuY3Rpb24gT3BlbkdyYXBoTWV0YWRhdGEoeyBvcGVuR3JhcGggfSkge1xuICAgIHZhciBfb3BlbkdyYXBoX3RpdGxlLCBfb3BlbkdyYXBoX3VybCwgX29wZW5HcmFwaF90dGw7XG4gICAgaWYgKCFvcGVuR3JhcGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGxldCB0eXBlZE9wZW5HcmFwaDtcbiAgICBpZiAoJ3R5cGUnIGluIG9wZW5HcmFwaCkge1xuICAgICAgICBjb25zdCBvcGVuR3JhcGhUeXBlID0gb3BlbkdyYXBoLnR5cGU7XG4gICAgICAgIHN3aXRjaChvcGVuR3JhcGhUeXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3dlYnNpdGUnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd3ZWJzaXRlJ1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhcnRpY2xlJzpcbiAgICAgICAgICAgICAgICB2YXIgX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lLCBfb3BlbkdyYXBoX21vZGlmaWVkVGltZSwgX29wZW5HcmFwaF9leHBpcmF0aW9uVGltZTtcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnYXJ0aWNsZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2FydGljbGU6cHVibGlzaGVkX3RpbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfcHVibGlzaGVkVGltZSA9IG9wZW5HcmFwaC5wdWJsaXNoZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2FydGljbGU6bW9kaWZpZWRfdGltZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF9tb2RpZmllZFRpbWUgPSBvcGVuR3JhcGgubW9kaWZpZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9tb2RpZmllZFRpbWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYXJ0aWNsZTpleHBpcmF0aW9uX3RpbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZXhwaXJhdGlvblRpbWUgPSBvcGVuR3JhcGguZXhwaXJhdGlvblRpbWUpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2V4cGlyYXRpb25UaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYXJ0aWNsZTphdXRob3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdXRob3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdhcnRpY2xlOnNlY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYXJ0aWNsZTp0YWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC50YWdzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2snOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdib29rJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYm9vazppc2JuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5pc2JuXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdib29rOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYm9vazphdXRob3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdXRob3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2Jvb2s6dGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcm9maWxlJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAncHJvZmlsZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6Zmlyc3RfbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZmlyc3ROYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdwcm9maWxlOmxhc3RfbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgubGFzdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6dXNlcm5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnVzZXJuYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdwcm9maWxlOmdlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZ2VuZGVyXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ211c2ljLnNvbmcnOlxuICAgICAgICAgICAgICAgIHZhciBfb3BlbkdyYXBoX2R1cmF0aW9uO1xuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdtdXNpYy5zb25nJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnbXVzaWM6ZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZHVyYXRpb24gPSBvcGVuR3JhcGguZHVyYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2R1cmF0aW9uLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6YWxidW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hbGJ1bXNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6bXVzaWNpYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5tdXNpY2lhbnNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMuYWxidW0nOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdtdXNpYy5hbGJ1bSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6c29uZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnNvbmdzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOm11c2ljaWFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgubXVzaWNpYW5zXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdtdXNpYzpyZWxlYXNlX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ211c2ljLnBsYXlsaXN0JzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnbXVzaWMucGxheWxpc3QnXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOnNvbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5zb25nc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdtdXNpYzpjcmVhdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguY3JlYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMucmFkaW9fc3RhdGlvbic6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ211c2ljLnJhZGlvX3N0YXRpb24nXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOmNyZWF0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5jcmVhdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5tb3ZpZSc6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3ZpZGVvLm1vdmllJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzphY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzpkaXJlY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmRpcmVjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzp3cml0ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC53cml0ZXJzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICd2aWRlbzpkdXJhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86dGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5lcGlzb2RlJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAndmlkZW8uZXBpc29kZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86YWN0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86ZGlyZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5kaXJlY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86d3JpdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgud3JpdGVyc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAndmlkZW86ZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmR1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICd2aWRlbzpyZWxlYXNlX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ3ZpZGVvOnRhZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnRhZ3NcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOnNlcmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguc2VyaWVzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvLnR2X3Nob3cnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd2aWRlby50dl9zaG93J1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5vdGhlcic6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3ZpZGVvLm90aGVyJ1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnN0IF9leGhhdXN0aXZlQ2hlY2sgPSBvcGVuR3JhcGhUeXBlO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBPcGVuR3JhcGggdHlwZTogJHtfZXhoYXVzdGl2ZUNoZWNrfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpkZXRlcm1pbmVyJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5kZXRlcm1pbmVyXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0aXRsZScsXG4gICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF90aXRsZSA9IG9wZW5HcmFwaC50aXRsZSkgPT0gbnVsbCA/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXG1ldGFkYXRhXFxnZW5lcmF0ZVxcdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRPcmlnaW46IG51bGwsXG4gICAgcmVzb2x2ZUFycmF5OiBudWxsLFxuICAgIHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2V0T3JpZ2luOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldE9yaWdpbjtcbiAgICB9LFxuICAgIHJlc29sdmVBcnJheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXJyYXk7XG4gICAgfSxcbiAgICByZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQ7XG4gICAgfVxufSk7XG5mdW5jdGlvbiByZXNvbHZlQXJyYXkodmFsdWUpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgICB2YWx1ZVxuICAgIF07XG59XG5mdW5jdGlvbiByZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVBcnJheSh2YWx1ZSk7XG59XG5mdW5jdGlvbiBnZXRPcmlnaW4odXJsKSB7XG4gICAgbGV0IG9yaWdpbiA9IHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIHVybCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwodXJsKTtcbiAgICAgICAgICAgIG9yaWdpbiA9IHVybC5vcmlnaW47XG4gICAgICAgIH0gY2F0Y2ggIHt9XG4gICAgfVxuICAgIHJldHVybiBvcmlnaW47XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/metadata-boundary.js ***!
|
||
\******************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
const { 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")
|
||
|
||
module.exports = createProxy("E:\\GIT\\mvp\\nashel-frontend\\node_modules\\next\\dist\\lib\\metadata\\metadata-boundary.js")
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/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 METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_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__';\n\n//# sourceMappingURL=metadata-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS1jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbWV0YWRhdGFcXG1ldGFkYXRhLWNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgVklFV1BPUlRfQk9VTkRBUllfTkFNRTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBNRVRBREFUQV9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBPVVRMRVRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBPVVRMRVRfQk9VTkRBUllfTkFNRTtcbiAgICB9LFxuICAgIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVklFV1BPUlRfQk9VTkRBUllfTkFNRTtcbiAgICB9XG59KTtcbmNvbnN0IE1FVEFEQVRBX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X21ldGFkYXRhX2JvdW5kYXJ5X18nO1xuY29uc3QgVklFV1BPUlRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfdmlld3BvcnRfYm91bmRhcnlfXyc7XG5jb25zdCBPVVRMRVRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfb3V0bGV0X2JvdW5kYXJ5X18nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhZGF0YS1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.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 = __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 _metadataconstants = __webpack_require__(/*! ./metadata-constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.js\");\nfunction createMetadataComponents({ tree, searchParams, metadataContext, getDynamicParamFromSegment, appUsingSizeAdjustment, errorType, createServerParamsForMetadata, workStore, MetadataBoundary, ViewportBoundary }) {\n function MetadataRoot() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Metadata, {})\n }),\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 async function viewport() {\n return getResolvedViewport(tree, searchParams, getDynamicParamFromSegment, createServerParamsForMetadata, 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, createServerParamsForMetadata, 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 = _metadataconstants.VIEWPORT_BOUNDARY_NAME;\n async function metadata() {\n return getResolvedMetadata(tree, searchParams, getDynamicParamFromSegment, metadataContext, createServerParamsForMetadata, workStore, errorType);\n }\n async function Metadata() {\n try {\n return await metadata();\n } catch (error) {\n if (!errorType && (0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {\n try {\n return await getNotFoundMetadata(tree, searchParams, getDynamicParamFromSegment, metadataContext, createServerParamsForMetadata, 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 Metadata.displayName = _metadataconstants.METADATA_BOUNDARY_NAME;\n async function getMetadataAndViewportReady() {\n await viewport();\n await metadata();\n return undefined;\n }\n return [\n MetadataRoot,\n getMetadataAndViewportReady\n ];\n}\nconst getResolvedMetadata = (0, _react.cache)(getResolvedMetadataImpl);\nasync function getResolvedMetadataImpl(tree, searchParams, getDynamicParamFromSegment, metadataContext, createServerParamsForMetadata, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n const metadataItems = await (0, _resolvemetadata.resolveMetadataItems)(tree, searchParams, errorConvention, getDynamicParamFromSegment, createServerParamsForMetadata, workStore);\n const elements = createMetadataElements(await (0, _resolvemetadata.accumulateMetadata)(metadataItems, metadataContext));\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}\nconst getNotFoundMetadata = (0, _react.cache)(getNotFoundMetadataImpl);\nasync function getNotFoundMetadataImpl(tree, searchParams, getDynamicParamFromSegment, metadataContext, createServerParamsForMetadata, workStore) {\n const notFoundErrorConvention = 'not-found';\n const notFoundMetadataItems = await (0, _resolvemetadata.resolveMetadataItems)(tree, searchParams, notFoundErrorConvention, getDynamicParamFromSegment, createServerParamsForMetadata, workStore);\n const elements = createMetadataElements(await (0, _resolvemetadata.accumulateMetadata)(notFoundMetadataItems, metadataContext));\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}\nconst getResolvedViewport = (0, _react.cache)(getResolvedViewportImpl);\nasync function getResolvedViewportImpl(tree, searchParams, getDynamicParamFromSegment, createServerParamsForMetadata, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n const metadataItems = await (0, _resolvemetadata.resolveMetadataItems)(tree, searchParams, errorConvention, getDynamicParamFromSegment, createServerParamsForMetadata, workStore);\n const elements = createViewportElements(await (0, _resolvemetadata.accumulateViewport)(metadataItems));\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}\nconst getNotFoundViewport = (0, _react.cache)(getNotFoundViewportImpl);\nasync function getNotFoundViewportImpl(tree, searchParams, getDynamicParamFromSegment, createServerParamsForMetadata, workStore) {\n const notFoundErrorConvention = 'not-found';\n const notFoundMetadataItems = await (0, _resolvemetadata.resolveMetadataItems)(tree, searchParams, notFoundErrorConvention, getDynamicParamFromSegment, createServerParamsForMetadata, workStore);\n const elements = createViewportElements(await (0, _resolvemetadata.accumulateViewport)(notFoundMetadataItems));\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.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDREQUEyRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyxlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIsZUFBZSxtQkFBTyxDQUFDLHVGQUFrQjtBQUN6QyxtQkFBbUIsbUJBQU8sQ0FBQywrRkFBc0I7QUFDakQsbUJBQW1CLG1CQUFPLENBQUMsK0ZBQXNCO0FBQ2pELGVBQWUsbUJBQU8sQ0FBQyx1RkFBa0I7QUFDekMseUJBQXlCLG1CQUFPLENBQUMsMkZBQW9CO0FBQ3JELGNBQWMsbUJBQU8sQ0FBQyxxRkFBaUI7QUFDdkMsNEJBQTRCLG1CQUFPLENBQUMsd0tBQW1FO0FBQ3ZHLDJCQUEyQixtQkFBTyxDQUFDLCtGQUFzQjtBQUN6RCxvQ0FBb0Msa0xBQWtMO0FBQ3ROO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUNqQjtBQUNBLDZFQUE2RTtBQUM3RSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXG1ldGFkYXRhXFxtZXRhZGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50c1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTWV0YWRhdGFDb21wb25lbnRzO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfYmFzaWMgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9iYXNpY1wiKTtcbmNvbnN0IF9hbHRlcm5hdGUgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9hbHRlcm5hdGVcIik7XG5jb25zdCBfb3BlbmdyYXBoID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvb3BlbmdyYXBoXCIpO1xuY29uc3QgX2ljb25zID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvaWNvbnNcIik7XG5jb25zdCBfcmVzb2x2ZW1ldGFkYXRhID0gcmVxdWlyZShcIi4vcmVzb2x2ZS1tZXRhZGF0YVwiKTtcbmNvbnN0IF9tZXRhID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvbWV0YVwiKTtcbmNvbnN0IF9odHRwYWNjZXNzZmFsbGJhY2sgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2tcIik7XG5jb25zdCBfbWV0YWRhdGFjb25zdGFudHMgPSByZXF1aXJlKFwiLi9tZXRhZGF0YS1jb25zdGFudHNcIik7XG5mdW5jdGlvbiBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHMoeyB0cmVlLCBzZWFyY2hQYXJhbXMsIG1ldGFkYXRhQ29udGV4dCwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGFwcFVzaW5nU2l6ZUFkanVzdG1lbnQsIGVycm9yVHlwZSwgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEsIHdvcmtTdG9yZSwgTWV0YWRhdGFCb3VuZGFyeSwgVmlld3BvcnRCb3VuZGFyeSB9KSB7XG4gICAgZnVuY3Rpb24gTWV0YWRhdGFSb290KCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4cykoX2pzeHJ1bnRpbWUuRnJhZ21lbnQsIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShNZXRhZGF0YUJvdW5kYXJ5LCB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKE1ldGFkYXRhLCB7fSlcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFZpZXdwb3J0Qm91bmRhcnksIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoVmlld3BvcnQsIHt9KVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFwcFVzaW5nU2l6ZUFkanVzdG1lbnQgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibmV4dC1zaXplLWFkanVzdFwiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiXG4gICAgICAgICAgICAgICAgfSkgOiBudWxsXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiB2aWV3cG9ydCgpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlc29sdmVkVmlld3BvcnQodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEsIHdvcmtTdG9yZSwgZXJyb3JUeXBlKTtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gVmlld3BvcnQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdmlld3BvcnQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICghZXJyb3JUeXBlICYmICgwLCBfaHR0cGFjY2Vzc2ZhbGxiYWNrLmlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpKGVycm9yKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBnZXROb3RGb3VuZFZpZXdwb3J0KHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhLCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBhY3R1YWxseSB3YW50IHRvIGVycm9yIGluIHRoaXMgY29tcG9uZW50LiBXZSB3aWxsXG4gICAgICAgICAgICAvLyBhbHNvIGVycm9yIGluIHRoZSBNZXRhZGF0YU91dGxldCB3aGljaCBjYXVzZXMgdGhlIGVycm9yIHRvXG4gICAgICAgICAgICAvLyBidWJibGUgZnJvbSB0aGUgcmlnaHQgcG9zaXRpb24gaW4gdGhlIHBhZ2UgdG8gYmUgY2F1Z2h0IGJ5IHRoZVxuICAgICAgICAgICAgLy8gYXBwcm9wcmlhdGUgYm91bmRhcmllc1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgVmlld3BvcnQuZGlzcGxheU5hbWUgPSBfbWV0YWRhdGFjb25zdGFudHMuVklFV1BPUlRfQk9VTkRBUllfTkFNRTtcbiAgICBhc3luYyBmdW5jdGlvbiBtZXRhZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlc29sdmVkTWV0YWRhdGEodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSwgd29ya1N0b3JlLCBlcnJvclR5cGUpO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiBNZXRhZGF0YSgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBtZXRhZGF0YSgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKCFlcnJvclR5cGUgJiYgKDAsIF9odHRwYWNjZXNzZmFsbGJhY2suaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcikoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGdldE5vdEZvdW5kTWV0YWRhdGEodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSwgd29ya1N0b3JlKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0byBlcnJvciBpbiB0aGlzIGNvbXBvbmVudC4gV2Ugd2lsbFxuICAgICAgICAgICAgLy8gYWxzbyBlcnJvciBpbiB0aGUgTWV0YWRhdGFPdXRsZXQgd2hpY2ggY2F1c2VzIHRoZSBlcnJvciB0b1xuICAgICAgICAgICAgLy8gYnViYmxlIGZyb20gdGhlIHJpZ2h0IHBvc2l0aW9uIGluIHRoZSBwYWdlIHRvIGJlIGNhdWdodCBieSB0aGVcbiAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGJvdW5kYXJpZXNcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIE1ldGFkYXRhLmRpc3BsYXlOYW1lID0gX21ldGFkYXRhY29uc3RhbnRzLk1FVEFEQVRBX0JPVU5EQVJZX05BTUU7XG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0TWV0YWRhdGFBbmRWaWV3cG9ydFJlYWR5KCkge1xuICAgICAgICBhd2FpdCB2aWV3cG9ydCgpO1xuICAgICAgICBhd2FpdCBtZXRhZGF0YSgpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgICBNZXRhZGF0YVJvb3QsXG4gICAgICAgIGdldE1ldGFkYXRhQW5kVmlld3BvcnRSZWFkeVxuICAgIF07XG59XG5jb25zdCBnZXRSZXNvbHZlZE1ldGFkYXRhID0gKDAsIF9yZWFjdC5jYWNoZSkoZ2V0UmVzb2x2ZWRNZXRhZGF0YUltcGwpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0UmVzb2x2ZWRNZXRhZGF0YUltcGwodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSwgd29ya1N0b3JlLCBlcnJvclR5cGUpIHtcbiAgICBjb25zdCBlcnJvckNvbnZlbnRpb24gPSBlcnJvclR5cGUgPT09ICdyZWRpcmVjdCcgPyB1bmRlZmluZWQgOiBlcnJvclR5cGU7XG4gICAgY29uc3QgbWV0YWRhdGFJdGVtcyA9IGF3YWl0ICgwLCBfcmVzb2x2ZW1ldGFkYXRhLnJlc29sdmVNZXRhZGF0YUl0ZW1zKSh0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhLCB3b3JrU3RvcmUpO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gY3JlYXRlTWV0YWRhdGFFbGVtZW50cyhhd2FpdCAoMCwgX3Jlc29sdmVtZXRhZGF0YS5hY2N1bXVsYXRlTWV0YWRhdGEpKG1ldGFkYXRhSXRlbXMsIG1ldGFkYXRhQ29udGV4dCkpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBlbGVtZW50cy5tYXAoKGVsLCBpbmRleCk9PntcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShlbCwge1xuICAgICAgICAgICAgICAgIGtleTogaW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH0pO1xufVxuY29uc3QgZ2V0Tm90Rm91bmRNZXRhZGF0YSA9ICgwLCBfcmVhY3QuY2FjaGUpKGdldE5vdEZvdW5kTWV0YWRhdGFJbXBsKTtcbmFzeW5jIGZ1bmN0aW9uIGdldE5vdEZvdW5kTWV0YWRhdGFJbXBsKHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IG5vdEZvdW5kRXJyb3JDb252ZW50aW9uID0gJ25vdC1mb3VuZCc7XG4gICAgY29uc3Qgbm90Rm91bmRNZXRhZGF0YUl0ZW1zID0gYXdhaXQgKDAsIF9yZXNvbHZlbWV0YWRhdGEucmVzb2x2ZU1ldGFkYXRhSXRlbXMpKHRyZWUsIHNlYXJjaFBhcmFtcywgbm90Rm91bmRFcnJvckNvbnZlbnRpb24sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSwgd29ya1N0b3JlKTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGNyZWF0ZU1ldGFkYXRhRWxlbWVudHMoYXdhaXQgKDAsIF9yZXNvbHZlbWV0YWRhdGEuYWNjdW11bGF0ZU1ldGFkYXRhKShub3RGb3VuZE1ldGFkYXRhSXRlbXMsIG1ldGFkYXRhQ29udGV4dCkpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBlbGVtZW50cy5tYXAoKGVsLCBpbmRleCk9PntcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShlbCwge1xuICAgICAgICAgICAgICAgIGtleTogaW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH0pO1xufVxuY29uc3QgZ2V0UmVzb2x2ZWRWaWV3cG9ydCA9ICgwLCBfcmVhY3QuY2FjaGUpKGdldFJlc29sdmVkVmlld3BvcnRJbXBsKTtcbmFzeW5jIGZ1bmN0aW9uIGdldFJlc29sdmVkVmlld3BvcnRJbXBsKHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhLCB3b3JrU3RvcmUsIGVycm9yVHlwZSkge1xuICAgIGNvbnN0IGVycm9yQ29udmVudGlvbiA9IGVycm9yVHlwZSA9PT0gJ3JlZGlyZWN0JyA/IHVuZGVmaW5lZCA6IGVycm9yVHlwZTtcbiAgICBjb25zdCBtZXRhZGF0YUl0ZW1zID0gYXdhaXQgKDAsIF9yZXNvbHZlbWV0YWRhdGEucmVzb2x2ZU1ldGFkYXRhSXRlbXMpKHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEsIHdvcmtTdG9yZSk7XG4gICAgY29uc3QgZWxlbWVudHMgPSBjcmVhdGVWaWV3cG9ydEVsZW1lbnRzKGF3YWl0ICgwLCBfcmVzb2x2ZW1ldGFkYXRhLmFjY3VtdWxhdGVWaWV3cG9ydCkobWV0YWRhdGFJdGVtcykpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9qc3hydW50aW1lLkZyYWdtZW50LCB7XG4gICAgICAgIGNoaWxkcmVuOiBlbGVtZW50cy5tYXAoKGVsLCBpbmRleCk9PntcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShlbCwge1xuICAgICAgICAgICAgICAgIGtleTogaW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgIH0pO1xufVxuY29uc3QgZ2V0Tm90Rm91bmRWaWV3cG9ydCA9ICgwLCBfcmVhY3QuY2FjaGUpKGdldE5vdEZvdW5kVmlld3BvcnRJbXBsKTtcbmFzeW5jIGZ1bmN0aW9uIGdldE5vdEZvdW5kVmlld3BvcnRJbXBsKHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBub3RGb3VuZEVycm9yQ29udmVudGlvbiA9ICdub3QtZm91bmQnO1xuICAgIGNvbnN0IG5vdEZvdW5kTWV0YWRhdGFJdGVtcyA9IGF3YWl0ICgwLCBfcmVzb2x2ZW1ldGFkYXRhLnJlc29sdmVNZXRhZGF0YUl0ZW1zKSh0cmVlLCBzZWFyY2hQYXJhbXMsIG5vdEZvdW5kRXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEsIHdvcmtTdG9yZSk7XG4gICAgY29uc3QgZWxlbWVudHMgPSBjcmVhdGVWaWV3cG9ydEVsZW1lbnRzKGF3YWl0ICgwLCBfcmVzb2x2ZW1ldGFkYXRhLmFjY3VtdWxhdGVWaWV3cG9ydCkobm90Rm91bmRNZXRhZGF0YUl0ZW1zKSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2pzeHJ1bnRpbWUuRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGVsZW1lbnRzLm1hcCgoZWwsIGluZGV4KT0+e1xuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKGVsLCB7XG4gICAgICAgICAgICAgICAga2V5OiBpbmRleFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVNZXRhZGF0YUVsZW1lbnRzKG1ldGFkYXRhKSB7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfYmFzaWMuQmFzaWNNZXRhKSh7XG4gICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9hbHRlcm5hdGUuQWx0ZXJuYXRlc01ldGFkYXRhKSh7XG4gICAgICAgICAgICBhbHRlcm5hdGVzOiBtZXRhZGF0YS5hbHRlcm5hdGVzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkl0dW5lc01ldGEpKHtcbiAgICAgICAgICAgIGl0dW5lczogbWV0YWRhdGEuaXR1bmVzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkZhY2Vib29rTWV0YSkoe1xuICAgICAgICAgICAgZmFjZWJvb2s6IG1ldGFkYXRhLmZhY2Vib29rXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkZvcm1hdERldGVjdGlvbk1ldGEpKHtcbiAgICAgICAgICAgIGZvcm1hdERldGVjdGlvbjogbWV0YWRhdGEuZm9ybWF0RGV0ZWN0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLlZlcmlmaWNhdGlvbk1ldGEpKHtcbiAgICAgICAgICAgIHZlcmlmaWNhdGlvbjogbWV0YWRhdGEudmVyaWZpY2F0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkFwcGxlV2ViQXBwTWV0YSkoe1xuICAgICAgICAgICAgYXBwbGVXZWJBcHA6IG1ldGFkYXRhLmFwcGxlV2ViQXBwXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX29wZW5ncmFwaC5PcGVuR3JhcGhNZXRhZGF0YSkoe1xuICAgICAgICAgICAgb3BlbkdyYXBoOiBtZXRhZGF0YS5vcGVuR3JhcGhcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfb3BlbmdyYXBoLlR3aXR0ZXJNZXRhZGF0YSkoe1xuICAgICAgICAgICAgdHdpdHRlcjogbWV0YWRhdGEudHdpdHRlclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9vcGVuZ3JhcGguQXBwTGlua3NNZXRhKSh7XG4gICAgICAgICAgICBhcHBMaW5rczogbWV0YWRhdGEuYXBwTGlua3NcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfaWNvbnMuSWNvbnNNZXRhZGF0YSkoe1xuICAgICAgICAgICAgaWNvbnM6IG1ldGFkYXRhLmljb25zXG4gICAgICAgIH0pXG4gICAgXSk7XG59XG5mdW5jdGlvbiBjcmVhdGVWaWV3cG9ydEVsZW1lbnRzKHZpZXdwb3J0KSB7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfYmFzaWMuVmlld3BvcnRNZXRhKSh7XG4gICAgICAgICAgICB2aWV3cG9ydDogdmlld3BvcnRcbiAgICAgICAgfSlcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWV0YWRhdGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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 resolveMetadataItems: function() {\n return cachedResolveMetadataItems;\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\"));\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}\nfunction mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons) {\n var _source_twitter, _source_openGraph;\n if (!staticFilesMetadata) return;\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 = (0, _resolveopengraph.resolveOpenGraph)({\n ...target.openGraph,\n images: openGraph\n }, target.metadataBase, {\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.\nfunction mergeMetadata({ 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 = (0, _resolvebasics.resolveAlternates)(source.alternates, metadataBase, metadataContext);\n break;\n }\n case 'openGraph':\n {\n target.openGraph = (0, _resolveopengraph.resolveOpenGraph)(source.openGraph, metadataBase, 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] = (0, _resolvebasics.resolveItunes)(source.itunes, metadataBase, metadataContext);\n break;\n }\n // directly assign fields that fallback to null\n case 'applicationName':\n case 'description':\n case 'generator':\n case 'creator':\n case 'publisher':\n case 'category':\n case 'classification':\n case 'referrer':\n case 'formatDetection':\n case 'manifest':\n // @ts-ignore TODO: support inferring\n target[key] = source[key] || null;\n break;\n case 'other':\n target.other = Object.assign({}, target.other, source.other);\n break;\n case 'metadataBase':\n target.metadataBase = metadataBase;\n break;\n default:\n {\n if ((key === 'viewport' || key === 'themeColor' || key === 'colorScheme') && source[key] != null) {\n buildState.warnings.add(`Unsupported metadata ${key} is configured in metadata export in ${metadataContext.pathname}. Please move it to viewport export instead.\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-viewport`);\n }\n break;\n }\n }\n }\n mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons);\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 default:\n if (typeof source[key] !== 'undefined') {\n // @ts-ignore viewport properties\n target[key] = source[key];\n }\n break;\n }\n }\n}\nasync function getDefinedViewport(mod, props, tracingProps) {\n if (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}\nasync function 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 ? await getDefinedMetadata(mod, props, {\n route\n }) : null;\n const viewportExport = mod ? await getDefinedViewport(mod, props, {\n route\n }) : null;\n metadataItems.push([\n metadataExport,\n staticFilesMetadata,\n viewportExport\n ]);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0, _appdirmodule.getComponentTypeModule)(tree, errorConvention);\n const errorViewportExport = errorMod ? await getDefinedViewport(errorMod, props, {\n route\n }) : null;\n const errorMetadataExport = errorMod ? await getDefinedMetadata(errorMod, props, {\n route\n }) : null;\n errorMetadataItem[0] = errorMetadataExport;\n errorMetadataItem[1] = staticFilesMetadata;\n errorMetadataItem[2] = errorViewportExport;\n }\n}\nconst cachedResolveMetadataItems = (0, _react.cache)(resolveMetadataItems);\nasync function resolveMetadataItems(tree, searchParams, errorConvention, getDynamicParamFromSegment, createServerParamsForMetadata, workStore) {\n const parentParams = {};\n const metadataItems = [];\n const errorMetadataItem = [\n null,\n null,\n null\n ];\n const treePrefix = undefined;\n return resolveMetadataItemsImpl(metadataItems, tree, treePrefix, parentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, createServerParamsForMetadata, 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, createServerParamsForMetadata, 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 = 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, createServerParamsForMetadata, 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 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 collectMetadataExportPreloading(results, dynamicMetadataExportFn, resolvers) {\n const result = dynamicMetadataExportFn(new Promise((resolve)=>{\n resolvers.push(resolve);\n }));\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 results.push(result);\n}\nasync function getMetadataFromExport(getPreloadMetadataExport, dynamicMetadataResolveState, metadataItems, currentIndex, resolvedMetadata, metadataResults) {\n const metadataExport = getPreloadMetadataExport(metadataItems[currentIndex]);\n const dynamicMetadataResolvers = dynamicMetadataResolveState.resolvers;\n let metadata = null;\n if (typeof metadataExport === 'function') {\n // Only preload at the beginning when resolves are empty\n if (!dynamicMetadataResolvers.length) {\n for(let j = currentIndex; j < metadataItems.length; j++){\n const preloadMetadataExport = getPreloadMetadataExport(metadataItems[j]);\n // call each `generateMetadata function concurrently and stash their resolver\n if (typeof preloadMetadataExport === 'function') {\n collectMetadataExportPreloading(metadataResults, preloadMetadataExport, dynamicMetadataResolvers);\n }\n }\n }\n const resolveParent = dynamicMetadataResolvers[dynamicMetadataResolveState.resolvingIndex];\n const metadataResult = metadataResults[dynamicMetadataResolveState.resolvingIndex++];\n // In dev we clone and freeze to prevent relying on mutating resolvedMetadata directly.\n // In prod we just pass resolvedMetadata through without any copying.\n const currentResolvedMetadata = true ? Object.freeze((__webpack_require__(/*! ./clone-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js\").cloneMetadata)(resolvedMetadata)) : 0;\n // This resolve should unblock the generateMetadata function if it awaited the parent\n // argument. If it didn't await the parent argument it might already have a value since it was\n // called concurrently. Regardless we await the return value before continuing on to the next layer\n resolveParent(currentResolvedMetadata);\n metadata = metadataResult instanceof Promise ? await metadataResult : metadataResult;\n if (metadata && typeof metadata === 'object' && '__nextError' in metadata) {\n // re-throw caught metadata error from preloading\n throw metadata['__nextError'];\n }\n } else if (metadataExport !== null && typeof metadataExport === 'object') {\n // This metadataExport is the object form\n metadata = metadataExport;\n }\n return metadata;\n}\nasync function accumulateMetadata(metadataItems, metadataContext) {\n const resolvedMetadata = (0, _defaultmetadata.createDefaultMetadata)();\n const metadataResults = [];\n let titleTemplates = {\n title: null,\n twitter: null,\n openGraph: null\n };\n // Loop over all metadata items again, merging synchronously any static object exports,\n // awaiting any static promise exports, and resolving parent metadata and awaiting any generated metadata\n const dynamicMetadataResolvers = {\n resolvers: [],\n resolvingIndex: 0\n };\n const buildState = {\n warnings: new Set()\n };\n 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 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 const metadata = await getMetadataFromExport((metadataItem)=>metadataItem[0], dynamicMetadataResolvers, metadataItems, i, resolvedMetadata, metadataResults);\n mergeMetadata({\n target: resolvedMetadata,\n source: metadata,\n metadataContext,\n staticFilesMetadata,\n titleTemplates,\n buildState,\n 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(metadataItems) {\n const resolvedViewport = (0, _defaultmetadata.createDefaultViewport)();\n const viewportResults = [];\n const dynamicMetadataResolvers = {\n resolvers: [],\n resolvingIndex: 0\n };\n for(let i = 0; i < metadataItems.length; i++){\n const viewport = await getMetadataFromExport((metadataItem)=>metadataItem[2], dynamicMetadataResolvers, metadataItems, i, resolvedViewport, viewportResults);\n mergeViewport({\n target: resolvedViewport,\n source: viewport\n });\n }\n return resolvedViewport;\n}\n\n//# sourceMappingURL=resolve-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQU8sQ0FBQyxpRkFBYTtBQUNyQixlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIseUJBQXlCLG1CQUFPLENBQUMsMkZBQW9CO0FBQ3JELDBCQUEwQixtQkFBTyxDQUFDLGlIQUErQjtBQUNqRSxzQkFBc0IsbUJBQU8sQ0FBQyx5R0FBMkI7QUFDekQsZUFBZSxtQkFBTyxDQUFDLHVGQUFrQjtBQUN6QyxzQkFBc0IsbUJBQU8sQ0FBQyxvR0FBaUM7QUFDL0Qsd0JBQXdCLG1CQUFPLENBQUMsaUZBQW9CO0FBQ3BELHVCQUF1QixtQkFBTyxDQUFDLDJHQUE0QjtBQUMzRCxzQkFBc0IsbUJBQU8sQ0FBQyx5R0FBMkI7QUFDekQsZ0JBQWdCLG1CQUFPLENBQUMsZ0dBQStCO0FBQ3ZELG1CQUFtQixtQkFBTyxDQUFDLHNHQUFrQztBQUM3RCxpQkFBaUIsbUJBQU8sQ0FBQyxzRkFBMEI7QUFDbkQscURBQXFELG1CQUFPLENBQUMsa0ZBQXdCO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QUFDQSxtQkFBbUIsMEJBQTBCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXG1ldGFkYXRhXFxyZXNvbHZlLW1ldGFkYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWNjdW11bGF0ZU1ldGFkYXRhOiBudWxsLFxuICAgIGFjY3VtdWxhdGVWaWV3cG9ydDogbnVsbCxcbiAgICByZXNvbHZlTWV0YWRhdGFJdGVtczogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBhY2N1bXVsYXRlTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0ZU1ldGFkYXRhO1xuICAgIH0sXG4gICAgYWNjdW11bGF0ZVZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdGVWaWV3cG9ydDtcbiAgICB9LFxuICAgIHJlc29sdmVNZXRhZGF0YUl0ZW1zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc29sdmVNZXRhZGF0YUl0ZW1zO1xuICAgIH1cbn0pO1xucmVxdWlyZShcInNlcnZlci1vbmx5XCIpO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX2RlZmF1bHRtZXRhZGF0YSA9IHJlcXVpcmUoXCIuL2RlZmF1bHQtbWV0YWRhdGFcIik7XG5jb25zdCBfcmVzb2x2ZW9wZW5ncmFwaCA9IHJlcXVpcmUoXCIuL3Jlc29sdmVycy9yZXNvbHZlLW9wZW5ncmFwaFwiKTtcbmNvbnN0IF9yZXNvbHZldGl0bGUgPSByZXF1aXJlKFwiLi9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL2dlbmVyYXRlL3V0aWxzXCIpO1xuY29uc3QgX2FwcGRpcm1vZHVsZSA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL2FwcC1kaXItbW9kdWxlXCIpO1xuY29uc3QgX2ludGVyb3BkZWZhdWx0ID0gcmVxdWlyZShcIi4uL2ludGVyb3AtZGVmYXVsdFwiKTtcbmNvbnN0IF9yZXNvbHZlYmFzaWNzID0gcmVxdWlyZShcIi4vcmVzb2x2ZXJzL3Jlc29sdmUtYmFzaWNzXCIpO1xuY29uc3QgX3Jlc29sdmVpY29ucyA9IHJlcXVpcmUoXCIuL3Jlc29sdmVycy9yZXNvbHZlLWljb25zXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfc2VnbWVudCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3NlZ21lbnRcIik7XG5jb25zdCBfbG9nID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCIuLi8uLi9idWlsZC9vdXRwdXQvbG9nXCIpKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuZnVuY3Rpb24gaXNGYXZpY29uKGljb24pIHtcbiAgICBpZiAoIWljb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyB0dXJib3BhY2sgYXBwZW5kcyBhIGhhc2ggdG8gYWxsIGltYWdlc1xuICAgIHJldHVybiAoaWNvbi51cmwgPT09ICcvZmF2aWNvbi5pY28nIHx8IGljb24udXJsLnRvU3RyaW5nKCkuc3RhcnRzV2l0aCgnL2Zhdmljb24uaWNvPycpKSAmJiBpY29uLnR5cGUgPT09ICdpbWFnZS94LWljb24nO1xufVxuZnVuY3Rpb24gbWVyZ2VTdGF0aWNNZXRhZGF0YShzb3VyY2UsIHRhcmdldCwgc3RhdGljRmlsZXNNZXRhZGF0YSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcywgbGVhZlNlZ21lbnRTdGF0aWNJY29ucykge1xuICAgIHZhciBfc291cmNlX3R3aXR0ZXIsIF9zb3VyY2Vfb3BlbkdyYXBoO1xuICAgIGlmICghc3RhdGljRmlsZXNNZXRhZGF0YSkgcmV0dXJuO1xuICAgIGNvbnN0IHsgaWNvbiwgYXBwbGUsIG9wZW5HcmFwaCwgdHdpdHRlciwgbWFuaWZlc3QgfSA9IHN0YXRpY0ZpbGVzTWV0YWRhdGE7XG4gICAgLy8gS2VlcCB1cGRhdGluZyB0aGUgc3RhdGljIGljb25zIGluIHRoZSBtb3N0IGxlYWYgbm9kZVxuICAgIGlmIChpY29uKSB7XG4gICAgICAgIGxlYWZTZWdtZW50U3RhdGljSWNvbnMuaWNvbiA9IGljb247XG4gICAgfVxuICAgIGlmIChhcHBsZSkge1xuICAgICAgICBsZWFmU2VnbWVudFN0YXRpY0ljb25zLmFwcGxlID0gYXBwbGU7XG4gICAgfVxuICAgIC8vIGZpbGUgYmFzZWQgbWV0YWRhdGEgaXMgc3BlY2lmaWVkIGFuZCBjdXJyZW50IGxldmVsIG1ldGFkYXRhIHR3aXR0ZXIuaW1hZ2VzIGlzIG5vdCBzcGVjaWZpZWRcbiAgICBpZiAodHdpdHRlciAmJiAhKHNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogKF9zb3VyY2VfdHdpdHRlciA9IHNvdXJjZS50d2l0dGVyKSA9PSBudWxsID8gdm9pZCAwIDogX3NvdXJjZV90d2l0dGVyLmhhc093blByb3BlcnR5KCdpbWFnZXMnKSkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRUd2l0dGVyID0gKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVUd2l0dGVyKSh7XG4gICAgICAgICAgICAuLi50YXJnZXQudHdpdHRlcixcbiAgICAgICAgICAgIGltYWdlczogdHdpdHRlclxuICAgICAgICB9LCB0YXJnZXQubWV0YWRhdGFCYXNlLCB7XG4gICAgICAgICAgICAuLi5tZXRhZGF0YUNvbnRleHQsXG4gICAgICAgICAgICBpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlOiB0cnVlXG4gICAgICAgIH0sIHRpdGxlVGVtcGxhdGVzLnR3aXR0ZXIpO1xuICAgICAgICB0YXJnZXQudHdpdHRlciA9IHJlc29sdmVkVHdpdHRlcjtcbiAgICB9XG4gICAgLy8gZmlsZSBiYXNlZCBtZXRhZGF0YSBpcyBzcGVjaWZpZWQgYW5kIGN1cnJlbnQgbGV2ZWwgbWV0YWRhdGEgb3BlbkdyYXBoLmltYWdlcyBpcyBub3Qgc3BlY2lmaWVkXG4gICAgaWYgKG9wZW5HcmFwaCAmJiAhKHNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogKF9zb3VyY2Vfb3BlbkdyYXBoID0gc291cmNlLm9wZW5HcmFwaCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9zb3VyY2Vfb3BlbkdyYXBoLmhhc093blByb3BlcnR5KCdpbWFnZXMnKSkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRPcGVuR3JhcGggPSAoMCwgX3Jlc29sdmVvcGVuZ3JhcGgucmVzb2x2ZU9wZW5HcmFwaCkoe1xuICAgICAgICAgICAgLi4udGFyZ2V0Lm9wZW5HcmFwaCxcbiAgICAgICAgICAgIGltYWdlczogb3BlbkdyYXBoXG4gICAgICAgIH0sIHRhcmdldC5tZXRhZGF0YUJhc2UsIHtcbiAgICAgICAgICAgIC4uLm1ldGFkYXRhQ29udGV4dCxcbiAgICAgICAgICAgIGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGU6IHRydWVcbiAgICAgICAgfSwgdGl0bGVUZW1wbGF0ZXMub3BlbkdyYXBoKTtcbiAgICAgICAgdGFyZ2V0Lm9wZW5HcmFwaCA9IHJlc29sdmVkT3BlbkdyYXBoO1xuICAgIH1cbiAgICBpZiAobWFuaWZlc3QpIHtcbiAgICAgICAgdGFyZ2V0Lm1hbmlmZXN0ID0gbWFuaWZlc3Q7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG59XG4vLyBNZXJnZSB0aGUgc291cmNlIG1ldGFkYXRhIGludG8gdGhlIHJlc29sdmVkIHRhcmdldCBtZXRhZGF0YS5cbmZ1bmN0aW9uIG1lcmdlTWV0YWRhdGEoeyBzb3VyY2UsIHRhcmdldCwgc3RhdGljRmlsZXNNZXRhZGF0YSwgdGl0bGVUZW1wbGF0ZXMsIG1ldGFkYXRhQ29udGV4dCwgYnVpbGRTdGF0ZSwgbGVhZlNlZ21lbnRTdGF0aWNJY29ucyB9KSB7XG4gICAgLy8gSWYgdGhlcmUncyBvdmVycmlkZSBtZXRhZGF0YSwgcHJlZmVyIGl0IG90aGVyd2lzZSBmYWxsYmFjayB0byB0aGUgZGVmYXVsdCBtZXRhZGF0YS5cbiAgICBjb25zdCBtZXRhZGF0YUJhc2UgPSB0eXBlb2YgKHNvdXJjZSA9PSBudWxsID8gdm9pZCAwIDogc291cmNlLm1ldGFkYXRhQmFzZSkgIT09ICd1bmRlZmluZWQnID8gc291cmNlLm1ldGFkYXRhQmFzZSA6IHRhcmdldC5tZXRhZGF0YUJhc2U7XG4gICAgZm9yKGNvbnN0IGtleV8gaW4gc291cmNlKXtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5XztcbiAgICAgICAgc3dpdGNoKGtleSl7XG4gICAgICAgICAgICBjYXNlICd0aXRsZSc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudGl0bGUgPSAoMCwgX3Jlc29sdmV0aXRsZS5yZXNvbHZlVGl0bGUpKHNvdXJjZS50aXRsZSwgdGl0bGVUZW1wbGF0ZXMudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhbHRlcm5hdGVzJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5hbHRlcm5hdGVzID0gKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVBbHRlcm5hdGVzKShzb3VyY2UuYWx0ZXJuYXRlcywgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdvcGVuR3JhcGgnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Lm9wZW5HcmFwaCA9ICgwLCBfcmVzb2x2ZW9wZW5ncmFwaC5yZXNvbHZlT3BlbkdyYXBoKShzb3VyY2Uub3BlbkdyYXBoLCBtZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZXMub3BlbkdyYXBoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAndHdpdHRlcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudHdpdHRlciA9ICgwLCBfcmVzb2x2ZW9wZW5ncmFwaC5yZXNvbHZlVHdpdHRlcikoc291cmNlLnR3aXR0ZXIsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZmFjZWJvb2snOlxuICAgICAgICAgICAgICAgIHRhcmdldC5mYWNlYm9vayA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlRmFjZWJvb2spKHNvdXJjZS5mYWNlYm9vayk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJpZmljYXRpb24nOlxuICAgICAgICAgICAgICAgIHRhcmdldC52ZXJpZmljYXRpb24gPSAoMCwgX3Jlc29sdmViYXNpY3MucmVzb2x2ZVZlcmlmaWNhdGlvbikoc291cmNlLnZlcmlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpY29ucyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuaWNvbnMgPSAoMCwgX3Jlc29sdmVpY29ucy5yZXNvbHZlSWNvbnMpKHNvdXJjZS5pY29ucyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2FwcGxlV2ViQXBwJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQuYXBwbGVXZWJBcHAgPSAoMCwgX3Jlc29sdmViYXNpY3MucmVzb2x2ZUFwcGxlV2ViQXBwKShzb3VyY2UuYXBwbGVXZWJBcHApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXBwTGlua3MnOlxuICAgICAgICAgICAgICAgIHRhcmdldC5hcHBMaW5rcyA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlQXBwTGlua3MpKHNvdXJjZS5hcHBMaW5rcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyb2JvdHMnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnJvYm90cyA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlUm9ib3RzKShzb3VyY2Uucm9ib3RzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXJjaGl2ZXMnOlxuICAgICAgICAgICAgY2FzZSAnYXNzZXRzJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2ttYXJrcyc6XG4gICAgICAgICAgICBjYXNlICdrZXl3b3Jkcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhdXRob3JzJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShzb3VyY2UuYXV0aG9ycyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2l0dW5lcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlSXR1bmVzKShzb3VyY2UuaXR1bmVzLCBtZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRpcmVjdGx5IGFzc2lnbiBmaWVsZHMgdGhhdCBmYWxsYmFjayB0byBudWxsXG4gICAgICAgICAgICBjYXNlICdhcHBsaWNhdGlvbk5hbWUnOlxuICAgICAgICAgICAgY2FzZSAnZGVzY3JpcHRpb24nOlxuICAgICAgICAgICAgY2FzZSAnZ2VuZXJhdG9yJzpcbiAgICAgICAgICAgIGNhc2UgJ2NyZWF0b3InOlxuICAgICAgICAgICAgY2FzZSAncHVibGlzaGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ2NhdGVnb3J5JzpcbiAgICAgICAgICAgIGNhc2UgJ2NsYXNzaWZpY2F0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ3JlZmVycmVyJzpcbiAgICAgICAgICAgIGNhc2UgJ2Zvcm1hdERldGVjdGlvbic6XG4gICAgICAgICAgICBjYXNlICdtYW5pZmVzdCc6XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBUT0RPOiBzdXBwb3J0IGluZmVycmluZ1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV0gfHwgbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ290aGVyJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQub3RoZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQub3RoZXIsIHNvdXJjZS5vdGhlcik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhZGF0YUJhc2UnOlxuICAgICAgICAgICAgICAgIHRhcmdldC5tZXRhZGF0YUJhc2UgPSBtZXRhZGF0YUJhc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChrZXkgPT09ICd2aWV3cG9ydCcgfHwga2V5ID09PSAndGhlbWVDb2xvcicgfHwga2V5ID09PSAnY29sb3JTY2hlbWUnKSAmJiBzb3VyY2Vba2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZFN0YXRlLndhcm5pbmdzLmFkZChgVW5zdXBwb3J0ZWQgbWV0YWRhdGEgJHtrZXl9IGlzIGNvbmZpZ3VyZWQgaW4gbWV0YWRhdGEgZXhwb3J0IGluICR7bWV0YWRhdGFDb250ZXh0LnBhdGhuYW1lfS4gUGxlYXNlIG1vdmUgaXQgdG8gdmlld3BvcnQgZXhwb3J0IGluc3RlYWQuXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvZ2VuZXJhdGUtdmlld3BvcnRgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVyZ2VTdGF0aWNNZXRhZGF0YShzb3VyY2UsIHRhcmdldCwgc3RhdGljRmlsZXNNZXRhZGF0YSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcywgbGVhZlNlZ21lbnRTdGF0aWNJY29ucyk7XG59XG5mdW5jdGlvbiBtZXJnZVZpZXdwb3J0KHsgdGFyZ2V0LCBzb3VyY2UgfSkge1xuICAgIGlmICghc291cmNlKSByZXR1cm47XG4gICAgZm9yKGNvbnN0IGtleV8gaW4gc291cmNlKXtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5XztcbiAgICAgICAgc3dpdGNoKGtleSl7XG4gICAgICAgICAgICBjYXNlICd0aGVtZUNvbG9yJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC50aGVtZUNvbG9yID0gKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVUaGVtZUNvbG9yKShzb3VyY2UudGhlbWVDb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2NvbG9yU2NoZW1lJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQuY29sb3JTY2hlbWUgPSBzb3VyY2UuY29sb3JTY2hlbWUgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2Vba2V5XSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSB2aWV3cG9ydCBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gZ2V0RGVmaW5lZFZpZXdwb3J0KG1vZCwgcHJvcHMsIHRyYWNpbmdQcm9wcykge1xuICAgIGlmICh0eXBlb2YgbW9kLmdlbmVyYXRlVmlld3BvcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgeyByb3V0ZSB9ID0gdHJhY2luZ1Byb3BzO1xuICAgICAgICByZXR1cm4gKHBhcmVudCk9PigwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLlJlc29sdmVNZXRhZGF0YVNwYW4uZ2VuZXJhdGVWaWV3cG9ydCwge1xuICAgICAgICAgICAgICAgIHNwYW5OYW1lOiBgZ2VuZXJhdGVWaWV3cG9ydCAke3JvdXRlfWAsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAnbmV4dC5wYWdlJzogcm91dGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAoKT0+bW9kLmdlbmVyYXRlVmlld3BvcnQocHJvcHMsIHBhcmVudCkpO1xuICAgIH1cbiAgICByZXR1cm4gbW9kLnZpZXdwb3J0IHx8IG51bGw7XG59XG5hc3luYyBmdW5jdGlvbiBnZXREZWZpbmVkTWV0YWRhdGEobW9kLCBwcm9wcywgdHJhY2luZ1Byb3BzKSB7XG4gICAgaWYgKHR5cGVvZiBtb2QuZ2VuZXJhdGVNZXRhZGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCB7IHJvdXRlIH0gPSB0cmFjaW5nUHJvcHM7XG4gICAgICAgIHJldHVybiAocGFyZW50KT0+KDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuUmVzb2x2ZU1ldGFkYXRhU3Bhbi5nZW5lcmF0ZU1ldGFkYXRhLCB7XG4gICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGBnZW5lcmF0ZU1ldGFkYXRhICR7cm91dGV9YCxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICduZXh0LnBhZ2UnOiByb3V0ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sICgpPT5tb2QuZ2VuZXJhdGVNZXRhZGF0YShwcm9wcywgcGFyZW50KSk7XG4gICAgfVxuICAgIHJldHVybiBtb2QubWV0YWRhdGEgfHwgbnVsbDtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RTdGF0aWNJbWFnZXNGaWxlcyhtZXRhZGF0YSwgcHJvcHMsIHR5cGUpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgaWYgKCEobWV0YWRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IG1ldGFkYXRhW3R5cGVdKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBpY29uUHJvbWlzZXMgPSBtZXRhZGF0YVt0eXBlXS5tYXAoYXN5bmMgKGltYWdlTW9kdWxlKT0+KDAsIF9pbnRlcm9wZGVmYXVsdC5pbnRlcm9wRGVmYXVsdCkoYXdhaXQgaW1hZ2VNb2R1bGUocHJvcHMpKSk7XG4gICAgcmV0dXJuIChpY29uUHJvbWlzZXMgPT0gbnVsbCA/IHZvaWQgMCA6IGljb25Qcm9taXNlcy5sZW5ndGgpID4gMCA/IChfdGhpcyA9IGF3YWl0IFByb21pc2UuYWxsKGljb25Qcm9taXNlcykpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpcy5mbGF0KCkgOiB1bmRlZmluZWQ7XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlU3RhdGljTWV0YWRhdGEobW9kdWxlcywgcHJvcHMpIHtcbiAgICBjb25zdCB7IG1ldGFkYXRhIH0gPSBtb2R1bGVzO1xuICAgIGlmICghbWV0YWRhdGEpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IFtpY29uLCBhcHBsZSwgb3BlbkdyYXBoLCB0d2l0dGVyXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgJ2ljb24nKSxcbiAgICAgICAgY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgJ2FwcGxlJyksXG4gICAgICAgIGNvbGxlY3RTdGF0aWNJbWFnZXNGaWxlcyhtZXRhZGF0YSwgcHJvcHMsICdvcGVuR3JhcGgnKSxcbiAgICAgICAgY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgJ3R3aXR0ZXInKVxuICAgIF0pO1xuICAgIGNvbnN0IHN0YXRpY01ldGFkYXRhID0ge1xuICAgICAgICBpY29uLFxuICAgICAgICBhcHBsZSxcbiAgICAgICAgb3BlbkdyYXBoLFxuICAgICAgICB0d2l0dGVyLFxuICAgICAgICBtYW5pZmVzdDogbWV0YWRhdGEubWFuaWZlc3RcbiAgICB9O1xuICAgIHJldHVybiBzdGF0aWNNZXRhZGF0YTtcbn1cbi8vIFtsYXlvdXQubWV0YWRhdGEsIHN0YXRpYyBmaWxlcyBtZXRhZGF0YV0gLT4gLi4uIC0+IFtwYWdlLm1ldGFkYXRhLCBzdGF0aWMgZmlsZXMgbWV0YWRhdGFdXG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0TWV0YWRhdGEoeyB0cmVlLCBtZXRhZGF0YUl0ZW1zLCBlcnJvck1ldGFkYXRhSXRlbSwgcHJvcHMsIHJvdXRlLCBlcnJvckNvbnZlbnRpb24gfSkge1xuICAgIGxldCBtb2Q7XG4gICAgbGV0IG1vZFR5cGU7XG4gICAgY29uc3QgaGFzRXJyb3JDb252ZW50aW9uQ29tcG9uZW50ID0gQm9vbGVhbihlcnJvckNvbnZlbnRpb24gJiYgdHJlZVsyXVtlcnJvckNvbnZlbnRpb25dKTtcbiAgICBpZiAoZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIG1vZCA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldENvbXBvbmVudFR5cGVNb2R1bGUpKHRyZWUsICdsYXlvdXQnKTtcbiAgICAgICAgbW9kVHlwZSA9IGVycm9yQ29udmVudGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IG1vZDogbGF5b3V0T3JQYWdlTW9kLCBtb2RUeXBlOiBsYXlvdXRPclBhZ2VNb2RUeXBlIH0gPSBhd2FpdCAoMCwgX2FwcGRpcm1vZHVsZS5nZXRMYXlvdXRPclBhZ2VNb2R1bGUpKHRyZWUpO1xuICAgICAgICBtb2QgPSBsYXlvdXRPclBhZ2VNb2Q7XG4gICAgICAgIG1vZFR5cGUgPSBsYXlvdXRPclBhZ2VNb2RUeXBlO1xuICAgIH1cbiAgICBpZiAobW9kVHlwZSkge1xuICAgICAgICByb3V0ZSArPSBgLyR7bW9kVHlwZX1gO1xuICAgIH1cbiAgICBjb25zdCBzdGF0aWNGaWxlc01ldGFkYXRhID0gYXdhaXQgcmVzb2x2ZVN0YXRpY01ldGFkYXRhKHRyZWVbMl0sIHByb3BzKTtcbiAgICBjb25zdCBtZXRhZGF0YUV4cG9ydCA9IG1vZCA/IGF3YWl0IGdldERlZmluZWRNZXRhZGF0YShtb2QsIHByb3BzLCB7XG4gICAgICAgIHJvdXRlXG4gICAgfSkgOiBudWxsO1xuICAgIGNvbnN0IHZpZXdwb3J0RXhwb3J0ID0gbW9kID8gYXdhaXQgZ2V0RGVmaW5lZFZpZXdwb3J0KG1vZCwgcHJvcHMsIHtcbiAgICAgICAgcm91dGVcbiAgICB9KSA6IG51bGw7XG4gICAgbWV0YWRhdGFJdGVtcy5wdXNoKFtcbiAgICAgICAgbWV0YWRhdGFFeHBvcnQsXG4gICAgICAgIHN0YXRpY0ZpbGVzTWV0YWRhdGEsXG4gICAgICAgIHZpZXdwb3J0RXhwb3J0XG4gICAgXSk7XG4gICAgaWYgKGhhc0Vycm9yQ29udmVudGlvbkNvbXBvbmVudCAmJiBlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgY29uc3QgZXJyb3JNb2QgPSBhd2FpdCAoMCwgX2FwcGRpcm1vZHVsZS5nZXRDb21wb25lbnRUeXBlTW9kdWxlKSh0cmVlLCBlcnJvckNvbnZlbnRpb24pO1xuICAgICAgICBjb25zdCBlcnJvclZpZXdwb3J0RXhwb3J0ID0gZXJyb3JNb2QgPyBhd2FpdCBnZXREZWZpbmVkVmlld3BvcnQoZXJyb3JNb2QsIHByb3BzLCB7XG4gICAgICAgICAgICByb3V0ZVxuICAgICAgICB9KSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGVycm9yTWV0YWRhdGFFeHBvcnQgPSBlcnJvck1vZCA/IGF3YWl0IGdldERlZmluZWRNZXRhZGF0YShlcnJvck1vZCwgcHJvcHMsIHtcbiAgICAgICAgICAgIHJvdXRlXG4gICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgZXJyb3JNZXRhZGF0YUl0ZW1bMF0gPSBlcnJvck1ldGFkYXRhRXhwb3J0O1xuICAgICAgICBlcnJvck1ldGFkYXRhSXRlbVsxXSA9IHN0YXRpY0ZpbGVzTWV0YWRhdGE7XG4gICAgICAgIGVycm9yTWV0YWRhdGFJdGVtWzJdID0gZXJyb3JWaWV3cG9ydEV4cG9ydDtcbiAgICB9XG59XG5jb25zdCBjYWNoZWRSZXNvbHZlTWV0YWRhdGFJdGVtcyA9ICgwLCBfcmVhY3QuY2FjaGUpKHJlc29sdmVNZXRhZGF0YUl0ZW1zKTtcbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVNZXRhZGF0YUl0ZW1zKHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHBhcmVudFBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IG1ldGFkYXRhSXRlbXMgPSBbXTtcbiAgICBjb25zdCBlcnJvck1ldGFkYXRhSXRlbSA9IFtcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbFxuICAgIF07XG4gICAgY29uc3QgdHJlZVByZWZpeCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcmVzb2x2ZU1ldGFkYXRhSXRlbXNJbXBsKG1ldGFkYXRhSXRlbXMsIHRyZWUsIHRyZWVQcmVmaXgsIHBhcmVudFBhcmFtcywgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGVycm9yTWV0YWRhdGFJdGVtLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEsIHdvcmtTdG9yZSk7XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlTWV0YWRhdGFJdGVtc0ltcGwobWV0YWRhdGFJdGVtcywgdHJlZSwgLyoqIFByb3ZpZGVkIHRyZWUgY2FuIGJlIG5lc3RlZCBzdWJ0cmVlLCB0aGlzIGFyZ3VtZW50IHNheXMgd2hhdCBpcyB0aGUgcGF0aCBvZiBzdWNoIHN1YnRyZWUgKi8gdHJlZVByZWZpeCwgcGFyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JNZXRhZGF0YUl0ZW0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSwgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCB7IHBhZ2UgfV0gPSB0cmVlO1xuICAgIGNvbnN0IGN1cnJlbnRUcmVlUHJlZml4ID0gdHJlZVByZWZpeCAmJiB0cmVlUHJlZml4Lmxlbmd0aCA/IFtcbiAgICAgICAgLi4udHJlZVByZWZpeCxcbiAgICAgICAgc2VnbWVudFxuICAgIF0gOiBbXG4gICAgICAgIHNlZ21lbnRcbiAgICBdO1xuICAgIGNvbnN0IGlzUGFnZSA9IHR5cGVvZiBwYWdlICE9PSAndW5kZWZpbmVkJztcbiAgICAvLyBIYW5kbGUgZHluYW1pYyBzZWdtZW50IHBhcmFtcy5cbiAgICBjb25zdCBzZWdtZW50UGFyYW0gPSBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudChzZWdtZW50KTtcbiAgICAvKipcbiAgICogQ3JlYXRlIG9iamVjdCBob2xkaW5nIHRoZSBwYXJlbnQgcGFyYW1zIGFuZCBjdXJyZW50IHBhcmFtc1xuICAgKi8gbGV0IGN1cnJlbnRQYXJhbXMgPSBwYXJlbnRQYXJhbXM7XG4gICAgaWYgKHNlZ21lbnRQYXJhbSAmJiBzZWdtZW50UGFyYW0udmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY3VycmVudFBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLnBhcmVudFBhcmFtcyxcbiAgICAgICAgICAgIFtzZWdtZW50UGFyYW0ucGFyYW1dOiBzZWdtZW50UGFyYW0udmFsdWVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zID0gY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEoY3VycmVudFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICBsZXQgbGF5ZXJQcm9wcztcbiAgICBpZiAoaXNQYWdlKSB7XG4gICAgICAgIGxheWVyUHJvcHMgPSB7XG4gICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXNcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsYXllclByb3BzID0ge1xuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgIH07XG4gICAgfVxuICAgIGF3YWl0IGNvbGxlY3RNZXRhZGF0YSh7XG4gICAgICAgIHRyZWUsXG4gICAgICAgIG1ldGFkYXRhSXRlbXMsXG4gICAgICAgIGVycm9yTWV0YWRhdGFJdGVtLFxuICAgICAgICBlcnJvckNvbnZlbnRpb24sXG4gICAgICAgIHByb3BzOiBsYXllclByb3BzLFxuICAgICAgICByb3V0ZTogY3VycmVudFRyZWVQcmVmaXgvLyBfX1BBR0VfXyBzaG91bGRuJ3QgYmUgc2hvd24gaW4gYSByb3V0ZVxuICAgICAgICAuZmlsdGVyKChzKT0+cyAhPT0gX3NlZ21lbnQuUEFHRV9TRUdNRU5UX0tFWSkuam9pbignLycpXG4gICAgfSk7XG4gICAgZm9yKGNvbnN0IGtleSBpbiBwYXJhbGxlbFJvdXRlcyl7XG4gICAgICAgIGNvbnN0IGNoaWxkVHJlZSA9IHBhcmFsbGVsUm91dGVzW2tleV07XG4gICAgICAgIGF3YWl0IHJlc29sdmVNZXRhZGF0YUl0ZW1zSW1wbChtZXRhZGF0YUl0ZW1zLCBjaGlsZFRyZWUsIGN1cnJlbnRUcmVlUHJlZml4LCBjdXJyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JNZXRhZGF0YUl0ZW0sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSwgd29ya1N0b3JlKTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5sZW5ndGggPT09IDAgJiYgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBwYXJhbGxlbCByb3V0ZXMsIHBsYWNlIGVycm9yIG1ldGFkYXRhIGFzIHRoZSBsYXN0IGl0ZW0uXG4gICAgICAgIC8vIGUuZy4gbGF5b3V0IC0+IGxheW91dCAtPiBub3QtZm91bmRcbiAgICAgICAgbWV0YWRhdGFJdGVtcy5wdXNoKGVycm9yTWV0YWRhdGFJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhSXRlbXM7XG59XG5jb25zdCBpc1RpdGxlVHJ1dGh5ID0gKHRpdGxlKT0+ISEodGl0bGUgPT0gbnVsbCA/IHZvaWQgMCA6IHRpdGxlLmFic29sdXRlKTtcbmNvbnN0IGhhc1RpdGxlID0gKG1ldGFkYXRhKT0+aXNUaXRsZVRydXRoeShtZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogbWV0YWRhdGEudGl0bGUpO1xuZnVuY3Rpb24gaW5oZXJpdEZyb21NZXRhZGF0YSh0YXJnZXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgICBpZiAoIWhhc1RpdGxlKHRhcmdldCkgJiYgaGFzVGl0bGUobWV0YWRhdGEpKSB7XG4gICAgICAgICAgICB0YXJnZXQudGl0bGUgPSBtZXRhZGF0YS50aXRsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRhcmdldC5kZXNjcmlwdGlvbiAmJiBtZXRhZGF0YS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGFyZ2V0LmRlc2NyaXB0aW9uID0gbWV0YWRhdGEuZGVzY3JpcHRpb247XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5jb25zdCBjb21tb25PZ0tleXMgPSBbXG4gICAgJ3RpdGxlJyxcbiAgICAnZGVzY3JpcHRpb24nLFxuICAgICdpbWFnZXMnXG5dO1xuZnVuY3Rpb24gcG9zdFByb2Nlc3NNZXRhZGF0YShtZXRhZGF0YSwgZmF2aWNvbiwgdGl0bGVUZW1wbGF0ZXMsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGNvbnN0IHsgb3BlbkdyYXBoLCB0d2l0dGVyIH0gPSBtZXRhZGF0YTtcbiAgICBpZiAob3BlbkdyYXBoKSB7XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgb3BlbkdyYXBoIGluZm9ybWF0aW9uIGJ1dCBub3QgY29uZmlndXJlZCBpbiB0d2l0dGVyLFxuICAgICAgICAvLyBpbmhlcml0IHRoZW0gZnJvbSBvcGVuR3JhcGggbWV0YWRhdGEuXG4gICAgICAgIGxldCBhdXRvRmlsbFByb3BzID0ge307XG4gICAgICAgIGNvbnN0IGhhc1R3VGl0bGUgPSBoYXNUaXRsZSh0d2l0dGVyKTtcbiAgICAgICAgY29uc3QgaGFzVHdEZXNjcmlwdGlvbiA9IHR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHR3aXR0ZXIuZGVzY3JpcHRpb247XG4gICAgICAgIGNvbnN0IGhhc1R3SW1hZ2VzID0gQm9vbGVhbigodHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogdHdpdHRlci5oYXNPd25Qcm9wZXJ0eSgnaW1hZ2VzJykpICYmIHR3aXR0ZXIuaW1hZ2VzKTtcbiAgICAgICAgaWYgKCFoYXNUd1RpdGxlKSB7XG4gICAgICAgICAgICBpZiAoaXNUaXRsZVRydXRoeShvcGVuR3JhcGgudGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgYXV0b0ZpbGxQcm9wcy50aXRsZSA9IG9wZW5HcmFwaC50aXRsZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudGl0bGUgJiYgaXNUaXRsZVRydXRoeShtZXRhZGF0YS50aXRsZSkpIHtcbiAgICAgICAgICAgICAgICBhdXRvRmlsbFByb3BzLnRpdGxlID0gbWV0YWRhdGEudGl0bGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFoYXNUd0Rlc2NyaXB0aW9uKSBhdXRvRmlsbFByb3BzLmRlc2NyaXB0aW9uID0gb3BlbkdyYXBoLmRlc2NyaXB0aW9uIHx8IG1ldGFkYXRhLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFoYXNUd0ltYWdlcykgYXV0b0ZpbGxQcm9wcy5pbWFnZXMgPSBvcGVuR3JhcGguaW1hZ2VzO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoYXV0b0ZpbGxQcm9wcykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcGFydGlhbFR3aXR0ZXIgPSAoMCwgX3Jlc29sdmVvcGVuZ3JhcGgucmVzb2x2ZVR3aXR0ZXIpKGF1dG9GaWxsUHJvcHMsIG1ldGFkYXRhLm1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgICAgIGlmIChtZXRhZGF0YS50d2l0dGVyKSB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEudHdpdHRlciA9IE9iamVjdC5hc3NpZ24oe30sIG1ldGFkYXRhLnR3aXR0ZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uIWhhc1R3VGl0bGUgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHBhcnRpYWxUd2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYXJ0aWFsVHdpdHRlci50aXRsZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4haGFzVHdEZXNjcmlwdGlvbiAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcGFydGlhbFR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHBhcnRpYWxUd2l0dGVyLmRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLiFoYXNUd0ltYWdlcyAmJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWFnZXM6IHBhcnRpYWxUd2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYXJ0aWFsVHdpdHRlci5pbWFnZXNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YS50d2l0dGVyID0gcGFydGlhbFR3aXR0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSWYgdGhlcmUncyBubyB0aXRsZSBhbmQgZGVzY3JpcHRpb24gY29uZmlndXJlZCBpbiBvcGVuR3JhcGggb3IgdHdpdHRlcixcbiAgICAvLyB1c2UgdGhlIHRpdGxlIGFuZCBkZXNjcmlwdGlvbiBmcm9tIG1ldGFkYXRhLlxuICAgIGluaGVyaXRGcm9tTWV0YWRhdGEob3BlbkdyYXBoLCBtZXRhZGF0YSk7XG4gICAgaW5oZXJpdEZyb21NZXRhZGF0YSh0d2l0dGVyLCBtZXRhZGF0YSk7XG4gICAgaWYgKGZhdmljb24pIHtcbiAgICAgICAgaWYgKCFtZXRhZGF0YS5pY29ucykge1xuICAgICAgICAgICAgbWV0YWRhdGEuaWNvbnMgPSB7XG4gICAgICAgICAgICAgICAgaWNvbjogW10sXG4gICAgICAgICAgICAgICAgYXBwbGU6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIG1ldGFkYXRhLmljb25zLmljb24udW5zaGlmdChmYXZpY29uKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xufVxuZnVuY3Rpb24gY29sbGVjdE1ldGFkYXRhRXhwb3J0UHJlbG9hZGluZyhyZXN1bHRzLCBkeW5hbWljTWV0YWRhdGFFeHBvcnRGbiwgcmVzb2x2ZXJzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gZHluYW1pY01ldGFkYXRhRXhwb3J0Rm4obmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIHJlc29sdmVycy5wdXNoKHJlc29sdmUpO1xuICAgIH0pKTtcbiAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAvLyBzaW5jZSB3ZSBlYWdlciBleGVjdXRlIGdlbmVyYXRlTWV0YWRhdGEgYW5kXG4gICAgICAgIC8vIHRoZXkgY2FuIHJlamVjdCBhdCBhbnl0aW1lIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAgIC8vIHdlIGF0dGFjaCB0aGUgY2F0Y2ggaGFuZGxlciByaWdodCBhd2F5IHRvXG4gICAgICAgIC8vIHByZXZlbnQgdW5oYW5kbGVkIHJlamVjdGlvbnMgY3Jhc2hpbmcgdGhlIHByb2Nlc3NcbiAgICAgICAgcmVzdWx0LmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIF9fbmV4dEVycm9yOiBlcnJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldE1ldGFkYXRhRnJvbUV4cG9ydChnZXRQcmVsb2FkTWV0YWRhdGFFeHBvcnQsIGR5bmFtaWNNZXRhZGF0YVJlc29sdmVTdGF0ZSwgbWV0YWRhdGFJdGVtcywgY3VycmVudEluZGV4LCByZXNvbHZlZE1ldGFkYXRhLCBtZXRhZGF0YVJlc3VsdHMpIHtcbiAgICBjb25zdCBtZXRhZGF0YUV4cG9ydCA9IGdldFByZWxvYWRNZXRhZGF0YUV4cG9ydChtZXRhZGF0YUl0ZW1zW2N1cnJlbnRJbmRleF0pO1xuICAgIGNvbnN0IGR5bmFtaWNNZXRhZGF0YVJlc29sdmVycyA9IGR5bmFtaWNNZXRhZGF0YVJlc29sdmVTdGF0ZS5yZXNvbHZlcnM7XG4gICAgbGV0IG1ldGFkYXRhID0gbnVsbDtcbiAgICBpZiAodHlwZW9mIG1ldGFkYXRhRXhwb3J0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIE9ubHkgcHJlbG9hZCBhdCB0aGUgYmVnaW5uaW5nIHdoZW4gcmVzb2x2ZXMgYXJlIGVtcHR5XG4gICAgICAgIGlmICghZHluYW1pY01ldGFkYXRhUmVzb2x2ZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yKGxldCBqID0gY3VycmVudEluZGV4OyBqIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGg7IGorKyl7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlbG9hZE1ldGFkYXRhRXhwb3J0ID0gZ2V0UHJlbG9hZE1ldGFkYXRhRXhwb3J0KG1ldGFkYXRhSXRlbXNbal0pO1xuICAgICAgICAgICAgICAgIC8vIGNhbGwgZWFjaCBgZ2VuZXJhdGVNZXRhZGF0YSBmdW5jdGlvbiBjb25jdXJyZW50bHkgYW5kIHN0YXNoIHRoZWlyIHJlc29sdmVyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcmVsb2FkTWV0YWRhdGFFeHBvcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdE1ldGFkYXRhRXhwb3J0UHJlbG9hZGluZyhtZXRhZGF0YVJlc3VsdHMsIHByZWxvYWRNZXRhZGF0YUV4cG9ydCwgZHluYW1pY01ldGFkYXRhUmVzb2x2ZXJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzb2x2ZVBhcmVudCA9IGR5bmFtaWNNZXRhZGF0YVJlc29sdmVyc1tkeW5hbWljTWV0YWRhdGFSZXNvbHZlU3RhdGUucmVzb2x2aW5nSW5kZXhdO1xuICAgICAgICBjb25zdCBtZXRhZGF0YVJlc3VsdCA9IG1ldGFkYXRhUmVzdWx0c1tkeW5hbWljTWV0YWRhdGFSZXNvbHZlU3RhdGUucmVzb2x2aW5nSW5kZXgrK107XG4gICAgICAgIC8vIEluIGRldiB3ZSBjbG9uZSBhbmQgZnJlZXplIHRvIHByZXZlbnQgcmVseWluZyBvbiBtdXRhdGluZyByZXNvbHZlZE1ldGFkYXRhIGRpcmVjdGx5LlxuICAgICAgICAvLyBJbiBwcm9kIHdlIGp1c3QgcGFzcyByZXNvbHZlZE1ldGFkYXRhIHRocm91Z2ggd2l0aG91dCBhbnkgY29weWluZy5cbiAgICAgICAgY29uc3QgY3VycmVudFJlc29sdmVkTWV0YWRhdGEgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyA/IE9iamVjdC5mcmVlemUocmVxdWlyZSgnLi9jbG9uZS1tZXRhZGF0YScpLmNsb25lTWV0YWRhdGEocmVzb2x2ZWRNZXRhZGF0YSkpIDogcmVzb2x2ZWRNZXRhZGF0YTtcbiAgICAgICAgLy8gVGhpcyByZXNvbHZlIHNob3VsZCB1bmJsb2NrIHRoZSBnZW5lcmF0ZU1ldGFkYXRhIGZ1bmN0aW9uIGlmIGl0IGF3YWl0ZWQgdGhlIHBhcmVudFxuICAgICAgICAvLyBhcmd1bWVudC4gSWYgaXQgZGlkbid0IGF3YWl0IHRoZSBwYXJlbnQgYXJndW1lbnQgaXQgbWlnaHQgYWxyZWFkeSBoYXZlIGEgdmFsdWUgc2luY2UgaXQgd2FzXG4gICAgICAgIC8vIGNhbGxlZCBjb25jdXJyZW50bHkuIFJlZ2FyZGxlc3Mgd2UgYXdhaXQgdGhlIHJldHVybiB2YWx1ZSBiZWZvcmUgY29udGludWluZyBvbiB0byB0aGUgbmV4dCBsYXllclxuICAgICAgICByZXNvbHZlUGFyZW50KGN1cnJlbnRSZXNvbHZlZE1ldGFkYXRhKTtcbiAgICAgICAgbWV0YWRhdGEgPSBtZXRhZGF0YVJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UgPyBhd2FpdCBtZXRhZGF0YVJlc3VsdCA6IG1ldGFkYXRhUmVzdWx0O1xuICAgICAgICBpZiAobWV0YWRhdGEgJiYgdHlwZW9mIG1ldGFkYXRhID09PSAnb2JqZWN0JyAmJiAnX19uZXh0RXJyb3InIGluIG1ldGFkYXRhKSB7XG4gICAgICAgICAgICAvLyByZS10aHJvdyBjYXVnaHQgbWV0YWRhdGEgZXJyb3IgZnJvbSBwcmVsb2FkaW5nXG4gICAgICAgICAgICB0aHJvdyBtZXRhZGF0YVsnX19uZXh0RXJyb3InXTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAobWV0YWRhdGFFeHBvcnQgIT09IG51bGwgJiYgdHlwZW9mIG1ldGFkYXRhRXhwb3J0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBUaGlzIG1ldGFkYXRhRXhwb3J0IGlzIHRoZSBvYmplY3QgZm9ybVxuICAgICAgICBtZXRhZGF0YSA9IG1ldGFkYXRhRXhwb3J0O1xuICAgIH1cbiAgICByZXR1cm4gbWV0YWRhdGE7XG59XG5hc3luYyBmdW5jdGlvbiBhY2N1bXVsYXRlTWV0YWRhdGEobWV0YWRhdGFJdGVtcywgbWV0YWRhdGFDb250ZXh0KSB7XG4gICAgY29uc3QgcmVzb2x2ZWRNZXRhZGF0YSA9ICgwLCBfZGVmYXVsdG1ldGFkYXRhLmNyZWF0ZURlZmF1bHRNZXRhZGF0YSkoKTtcbiAgICBjb25zdCBtZXRhZGF0YVJlc3VsdHMgPSBbXTtcbiAgICBsZXQgdGl0bGVUZW1wbGF0ZXMgPSB7XG4gICAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgICB0d2l0dGVyOiBudWxsLFxuICAgICAgICBvcGVuR3JhcGg6IG51bGxcbiAgICB9O1xuICAgIC8vIExvb3Agb3ZlciBhbGwgbWV0YWRhdGEgaXRlbXMgYWdhaW4sIG1lcmdpbmcgc3luY2hyb25vdXNseSBhbnkgc3RhdGljIG9iamVjdCBleHBvcnRzLFxuICAgIC8vIGF3YWl0aW5nIGFueSBzdGF0aWMgcHJvbWlzZSBleHBvcnRzLCBhbmQgcmVzb2x2aW5nIHBhcmVudCBtZXRhZGF0YSBhbmQgYXdhaXRpbmcgYW55IGdlbmVyYXRlZCBtZXRhZGF0YVxuICAgIGNvbnN0IGR5bmFtaWNNZXRhZGF0YVJlc29sdmVycyA9IHtcbiAgICAgICAgcmVzb2x2ZXJzOiBbXSxcbiAgICAgICAgcmVzb2x2aW5nSW5kZXg6IDBcbiAgICB9O1xuICAgIGNvbnN0IGJ1aWxkU3RhdGUgPSB7XG4gICAgICAgIHdhcm5pbmdzOiBuZXcgU2V0KClcbiAgICB9O1xuICAgIGxldCBmYXZpY29uO1xuICAgIC8vIENvbGxlY3QgdGhlIHN0YXRpYyBpY29ucyBpbiB0aGUgbW9zdCBsZWFmIG5vZGUsXG4gICAgLy8gc2luY2Ugd2UgZG9uJ3QgY29sbGVjdCBhbGwgdGhlIHN0YXRpYyBtZXRhZGF0YSBpY29ucyBpbiB0aGUgcGFyZW50IHNlZ21lbnRzLlxuICAgIGNvbnN0IGxlYWZTZWdtZW50U3RhdGljSWNvbnMgPSB7XG4gICAgICAgIGljb246IFtdLFxuICAgICAgICBhcHBsZTogW11cbiAgICB9O1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBtZXRhZGF0YUl0ZW1zLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb247XG4gICAgICAgIGNvbnN0IHN0YXRpY0ZpbGVzTWV0YWRhdGEgPSBtZXRhZGF0YUl0ZW1zW2ldWzFdO1xuICAgICAgICAvLyBUcmVhdCBmYXZpY29uIGFzIHNwZWNpYWwgY2FzZSwgaXQgc2hvdWxkIGJlIHRoZSBmaXJzdCBpY29uIGluIHRoZSBsaXN0XG4gICAgICAgIC8vIGkgPD0gMSByZXByZXNlbnRzIHJvb3QgbGF5b3V0LCBhbmQgaWYgY3VycmVudCBwYWdlIGlzIGFsc28gYXQgcm9vdFxuICAgICAgICBpZiAoaSA8PSAxICYmIGlzRmF2aWNvbihzdGF0aWNGaWxlc01ldGFkYXRhID09IG51bGwgPyB2b2lkIDAgOiAoX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbiA9IHN0YXRpY0ZpbGVzTWV0YWRhdGEuaWNvbikgPT0gbnVsbCA/IHZvaWQgMCA6IF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb25bMF0pKSB7XG4gICAgICAgICAgICB2YXIgX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjE7XG4gICAgICAgICAgICBjb25zdCBpY29uTW9kID0gc3RhdGljRmlsZXNNZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogKF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb24xID0gc3RhdGljRmlsZXNNZXRhZGF0YS5pY29uKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjEuc2hpZnQoKTtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSBmYXZpY29uID0gaWNvbk1vZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IGdldE1ldGFkYXRhRnJvbUV4cG9ydCgobWV0YWRhdGFJdGVtKT0+bWV0YWRhdGFJdGVtWzBdLCBkeW5hbWljTWV0YWRhdGFSZXNvbHZlcnMsIG1ldGFkYXRhSXRlbXMsIGksIHJlc29sdmVkTWV0YWRhdGEsIG1ldGFkYXRhUmVzdWx0cyk7XG4gICAgICAgIG1lcmdlTWV0YWRhdGEoe1xuICAgICAgICAgICAgdGFyZ2V0OiByZXNvbHZlZE1ldGFkYXRhLFxuICAgICAgICAgICAgc291cmNlOiBtZXRhZGF0YSxcbiAgICAgICAgICAgIG1ldGFkYXRhQ29udGV4dCxcbiAgICAgICAgICAgIHN0YXRpY0ZpbGVzTWV0YWRhdGEsXG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlcyxcbiAgICAgICAgICAgIGJ1aWxkU3RhdGUsXG4gICAgICAgICAgICBsZWFmU2VnbWVudFN0YXRpY0ljb25zXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBJZiB0aGUgbGF5b3V0IGlzIHRoZSBzYW1lIGxheWVyIHdpdGggcGFnZSwgc2tpcCB0aGUgbGVhZiBsYXlvdXQgYW5kIGxlYWYgcGFnZVxuICAgICAgICAvLyBUaGUgbGVhZiBsYXlvdXQgYW5kIHBhZ2UgYXJlIHRoZSBsYXN0IHR3byBpdGVtc1xuICAgICAgICBpZiAoaSA8IG1ldGFkYXRhSXRlbXMubGVuZ3RoIC0gMikge1xuICAgICAgICAgICAgdmFyIF9yZXNvbHZlZE1ldGFkYXRhX3RpdGxlLCBfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGgsIF9yZXNvbHZlZE1ldGFkYXRhX3R3aXR0ZXI7XG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlcyA9IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogKChfcmVzb2x2ZWRNZXRhZGF0YV90aXRsZSA9IHJlc29sdmVkTWV0YWRhdGEudGl0bGUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV90aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICBvcGVuR3JhcGg6ICgoX3Jlc29sdmVkTWV0YWRhdGFfb3BlbkdyYXBoID0gcmVzb2x2ZWRNZXRhZGF0YS5vcGVuR3JhcGgpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGgudGl0bGUudGVtcGxhdGUpIHx8IG51bGwsXG4gICAgICAgICAgICAgICAgdHdpdHRlcjogKChfcmVzb2x2ZWRNZXRhZGF0YV90d2l0dGVyID0gcmVzb2x2ZWRNZXRhZGF0YS50d2l0dGVyKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVkTWV0YWRhdGFfdHdpdHRlci50aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobGVhZlNlZ21lbnRTdGF0aWNJY29ucy5pY29uLmxlbmd0aCA+IDAgfHwgbGVhZlNlZ21lbnRTdGF0aWNJY29ucy5hcHBsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghcmVzb2x2ZWRNZXRhZGF0YS5pY29ucykge1xuICAgICAgICAgICAgcmVzb2x2ZWRNZXRhZGF0YS5pY29ucyA9IHtcbiAgICAgICAgICAgICAgICBpY29uOiBbXSxcbiAgICAgICAgICAgICAgICBhcHBsZTogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobGVhZlNlZ21lbnRTdGF0aWNJY29ucy5pY29uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZE1ldGFkYXRhLmljb25zLmljb24udW5zaGlmdCguLi5sZWFmU2VnbWVudFN0YXRpY0ljb25zLmljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlYWZTZWdtZW50U3RhdGljSWNvbnMuYXBwbGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkTWV0YWRhdGEuaWNvbnMuYXBwbGUudW5zaGlmdCguLi5sZWFmU2VnbWVudFN0YXRpY0ljb25zLmFwcGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBPbmx5IGxvZyB3YXJuaW5ncyBpZiB0aGVyZSBhcmUgYW55LCBhbmQgb25seSBvbmNlIGFmdGVyIHRoZSBtZXRhZGF0YSByZXNvbHZpbmcgcHJvY2VzcyBpcyBmaW5pc2hlZFxuICAgIGlmIChidWlsZFN0YXRlLndhcm5pbmdzLnNpemUgPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3Qgd2FybmluZyBvZiBidWlsZFN0YXRlLndhcm5pbmdzKXtcbiAgICAgICAgICAgIF9sb2cud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcG9zdFByb2Nlc3NNZXRhZGF0YShyZXNvbHZlZE1ldGFkYXRhLCBmYXZpY29uLCB0aXRsZVRlbXBsYXRlcywgbWV0YWRhdGFDb250ZXh0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGFjY3VtdWxhdGVWaWV3cG9ydChtZXRhZGF0YUl0ZW1zKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRWaWV3cG9ydCA9ICgwLCBfZGVmYXVsdG1ldGFkYXRhLmNyZWF0ZURlZmF1bHRWaWV3cG9ydCkoKTtcbiAgICBjb25zdCB2aWV3cG9ydFJlc3VsdHMgPSBbXTtcbiAgICBjb25zdCBkeW5hbWljTWV0YWRhdGFSZXNvbHZlcnMgPSB7XG4gICAgICAgIHJlc29sdmVyczogW10sXG4gICAgICAgIHJlc29sdmluZ0luZGV4OiAwXG4gICAgfTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gYXdhaXQgZ2V0TWV0YWRhdGFGcm9tRXhwb3J0KChtZXRhZGF0YUl0ZW0pPT5tZXRhZGF0YUl0ZW1bMl0sIGR5bmFtaWNNZXRhZGF0YVJlc29sdmVycywgbWV0YWRhdGFJdGVtcywgaSwgcmVzb2x2ZWRWaWV3cG9ydCwgdmlld3BvcnRSZXN1bHRzKTtcbiAgICAgICAgbWVyZ2VWaWV3cG9ydCh7XG4gICAgICAgICAgICB0YXJnZXQ6IHJlc29sdmVkVmlld3BvcnQsXG4gICAgICAgICAgICBzb3VyY2U6IHZpZXdwb3J0XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWRWaWV3cG9ydDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1tZXRhZGF0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 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, 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(metadataContext.pathname, url);\n url.searchParams.forEach((value, key)=>newUrl.searchParams.set(key, value));\n url = newUrl;\n }\n return (0, _resolveurl.resolveAbsoluteUrlWithPathname)(url, metadataBase, 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};\nfunction resolveUrlValuesOfObject(obj, metadataBase, 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 result[key] = [\n {\n url: resolveAlternateUrl(value, metadataBase, metadataContext)\n }\n ];\n } else {\n result[key] = [];\n value == null ? void 0 : value.forEach((item, index)=>{\n const url = resolveAlternateUrl(item.url, metadataBase, metadataContext);\n result[key][index] = {\n url,\n title: item.title\n };\n });\n }\n }\n return result;\n}\nfunction resolveCanonicalUrl(urlOrDescriptor, metadataBase, metadataContext) {\n if (!urlOrDescriptor) return null;\n const url = typeof urlOrDescriptor === 'string' || urlOrDescriptor instanceof URL ? urlOrDescriptor : urlOrDescriptor.url;\n // Return string url because structureClone can't handle URL instance\n return {\n url: resolveAlternateUrl(url, metadataBase, metadataContext)\n };\n}\nconst resolveAlternates = (alternates, metadataBase, context)=>{\n if (!alternates) return null;\n const canonical = resolveCanonicalUrl(alternates.canonical, metadataBase, context);\n const languages = resolveUrlValuesOfObject(alternates.languages, metadataBase, context);\n const media = resolveUrlValuesOfObject(alternates.media, metadataBase, context);\n const types = resolveUrlValuesOfObject(alternates.types, metadataBase, 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 = (itunes, metadataBase, context)=>{\n if (!itunes) return null;\n return {\n appId: itunes.appId,\n appArgument: itunes.appArgument ? resolveAlternateUrl(itunes.appArgument, metadataBase, 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};\n\n//# sourceMappingURL=resolve-basics.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1iYXNpY3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBU0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLHdGQUFtQjtBQUMxQyxvQkFBb0IsbUJBQU8sQ0FBQywyRkFBZTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQsSUFBSSxHQUFHLE1BQU07QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxtZXRhZGF0YVxccmVzb2x2ZXJzXFxyZXNvbHZlLWJhc2ljcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHJlc29sdmVBbHRlcm5hdGVzOiBudWxsLFxuICAgIHJlc29sdmVBcHBMaW5rczogbnVsbCxcbiAgICByZXNvbHZlQXBwbGVXZWJBcHA6IG51bGwsXG4gICAgcmVzb2x2ZUZhY2Vib29rOiBudWxsLFxuICAgIHJlc29sdmVJdHVuZXM6IG51bGwsXG4gICAgcmVzb2x2ZVJvYm90czogbnVsbCxcbiAgICByZXNvbHZlVGhlbWVDb2xvcjogbnVsbCxcbiAgICByZXNvbHZlVmVyaWZpY2F0aW9uOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHJlc29sdmVBbHRlcm5hdGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBbHRlcm5hdGVzO1xuICAgIH0sXG4gICAgcmVzb2x2ZUFwcExpbmtzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcHBMaW5rcztcbiAgICB9LFxuICAgIHJlc29sdmVBcHBsZVdlYkFwcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXBwbGVXZWJBcHA7XG4gICAgfSxcbiAgICByZXNvbHZlRmFjZWJvb2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUZhY2Vib29rO1xuICAgIH0sXG4gICAgcmVzb2x2ZUl0dW5lczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSXR1bmVzO1xuICAgIH0sXG4gICAgcmVzb2x2ZVJvYm90czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlUm9ib3RzO1xuICAgIH0sXG4gICAgcmVzb2x2ZVRoZW1lQ29sb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVRoZW1lQ29sb3I7XG4gICAgfSxcbiAgICByZXNvbHZlVmVyaWZpY2F0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVWZXJpZmljYXRpb247XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vZ2VuZXJhdGUvdXRpbHNcIik7XG5jb25zdCBfcmVzb2x2ZXVybCA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtdXJsXCIpO1xuZnVuY3Rpb24gcmVzb2x2ZUFsdGVybmF0ZVVybCh1cmwsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KSB7XG4gICAgLy8gSWYgYWx0ZXIgbmF0aXZlIHVybCBpcyBhbiBVUkwgaW5zdGFuY2UsXG4gICAgLy8gd2UgdHJlYXQgaXQgYXMgYSBVUkwgYmFzZSBhbmQgcmVzb2x2ZSB3aXRoIGN1cnJlbnQgcGF0aG5hbWVcbiAgICBpZiAodXJsIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgIGNvbnN0IG5ld1VybCA9IG5ldyBVUkwobWV0YWRhdGFDb250ZXh0LnBhdGhuYW1lLCB1cmwpO1xuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpPT5uZXdVcmwuc2VhcmNoUGFyYW1zLnNldChrZXksIHZhbHVlKSk7XG4gICAgICAgIHVybCA9IG5ld1VybDtcbiAgICB9XG4gICAgcmV0dXJuICgwLCBfcmVzb2x2ZXVybC5yZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUpKHVybCwgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQpO1xufVxuY29uc3QgcmVzb2x2ZVRoZW1lQ29sb3IgPSAodGhlbWVDb2xvcik9PntcbiAgICB2YXIgX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQ7XG4gICAgaWYgKCF0aGVtZUNvbG9yKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB0aGVtZUNvbG9yRGVzY3JpcHRvcnMgPSBbXTtcbiAgICAoX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQgPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKHRoZW1lQ29sb3IpKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVBc0FycmF5T3JVbmRlZmluZWQuZm9yRWFjaCgoZGVzY3JpcHRvcik9PntcbiAgICAgICAgaWYgKHR5cGVvZiBkZXNjcmlwdG9yID09PSAnc3RyaW5nJykgdGhlbWVDb2xvckRlc2NyaXB0b3JzLnB1c2goe1xuICAgICAgICAgICAgY29sb3I6IGRlc2NyaXB0b3JcbiAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBkZXNjcmlwdG9yID09PSAnb2JqZWN0JykgdGhlbWVDb2xvckRlc2NyaXB0b3JzLnB1c2goe1xuICAgICAgICAgICAgY29sb3I6IGRlc2NyaXB0b3IuY29sb3IsXG4gICAgICAgICAgICBtZWRpYTogZGVzY3JpcHRvci5tZWRpYVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhlbWVDb2xvckRlc2NyaXB0b3JzO1xufTtcbmZ1bmN0aW9uIHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChvYmosIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KSB7XG4gICAgaWYgKCFvYmopIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpe1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIFVSTCkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB1cmw6IHJlc29sdmVBbHRlcm5hdGVVcmwodmFsdWUsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IFtdO1xuICAgICAgICAgICAgdmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlLmZvckVhY2goKGl0ZW0sIGluZGV4KT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHJlc29sdmVBbHRlcm5hdGVVcmwoaXRlbS51cmwsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KTtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XVtpbmRleF0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIHJlc29sdmVDYW5vbmljYWxVcmwodXJsT3JEZXNjcmlwdG9yLCBtZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGlmICghdXJsT3JEZXNjcmlwdG9yKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB1cmwgPSB0eXBlb2YgdXJsT3JEZXNjcmlwdG9yID09PSAnc3RyaW5nJyB8fCB1cmxPckRlc2NyaXB0b3IgaW5zdGFuY2VvZiBVUkwgPyB1cmxPckRlc2NyaXB0b3IgOiB1cmxPckRlc2NyaXB0b3IudXJsO1xuICAgIC8vIFJldHVybiBzdHJpbmcgdXJsIGJlY2F1c2Ugc3RydWN0dXJlQ2xvbmUgY2FuJ3QgaGFuZGxlIFVSTCBpbnN0YW5jZVxuICAgIHJldHVybiB7XG4gICAgICAgIHVybDogcmVzb2x2ZUFsdGVybmF0ZVVybCh1cmwsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KVxuICAgIH07XG59XG5jb25zdCByZXNvbHZlQWx0ZXJuYXRlcyA9IChhbHRlcm5hdGVzLCBtZXRhZGF0YUJhc2UsIGNvbnRleHQpPT57XG4gICAgaWYgKCFhbHRlcm5hdGVzKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBjYW5vbmljYWwgPSByZXNvbHZlQ2Fub25pY2FsVXJsKGFsdGVybmF0ZXMuY2Fub25pY2FsLCBtZXRhZGF0YUJhc2UsIGNvbnRleHQpO1xuICAgIGNvbnN0IGxhbmd1YWdlcyA9IHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChhbHRlcm5hdGVzLmxhbmd1YWdlcywgbWV0YWRhdGFCYXNlLCBjb250ZXh0KTtcbiAgICBjb25zdCBtZWRpYSA9IHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChhbHRlcm5hdGVzLm1lZGlhLCBtZXRhZGF0YUJhc2UsIGNvbnRleHQpO1xuICAgIGNvbnN0IHR5cGVzID0gcmVzb2x2ZVVybFZhbHVlc09mT2JqZWN0KGFsdGVybmF0ZXMudHlwZXMsIG1ldGFkYXRhQmFzZSwgY29udGV4dCk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgICBjYW5vbmljYWwsXG4gICAgICAgIGxhbmd1YWdlcyxcbiAgICAgICAgbWVkaWEsXG4gICAgICAgIHR5cGVzXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmNvbnN0IHJvYm90c0tleXMgPSBbXG4gICAgJ25vYXJjaGl2ZScsXG4gICAgJ25vc25pcHBldCcsXG4gICAgJ25vaW1hZ2VpbmRleCcsXG4gICAgJ25vY2FjaGUnLFxuICAgICdub3RyYW5zbGF0ZScsXG4gICAgJ2luZGV4aWZlbWJlZGRlZCcsXG4gICAgJ25vc2l0ZWxpbmtzc2VhcmNoYm94JyxcbiAgICAndW5hdmFpbGFibGVfYWZ0ZXInLFxuICAgICdtYXgtdmlkZW8tcHJldmlldycsXG4gICAgJ21heC1pbWFnZS1wcmV2aWV3JyxcbiAgICAnbWF4LXNuaXBwZXQnXG5dO1xuY29uc3QgcmVzb2x2ZVJvYm90c1ZhbHVlID0gKHJvYm90cyk9PntcbiAgICBpZiAoIXJvYm90cykgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiByb2JvdHMgPT09ICdzdHJpbmcnKSByZXR1cm4gcm9ib3RzO1xuICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xuICAgIGlmIChyb2JvdHMuaW5kZXgpIHZhbHVlcy5wdXNoKCdpbmRleCcpO1xuICAgIGVsc2UgaWYgKHR5cGVvZiByb2JvdHMuaW5kZXggPT09ICdib29sZWFuJykgdmFsdWVzLnB1c2goJ25vaW5kZXgnKTtcbiAgICBpZiAocm9ib3RzLmZvbGxvdykgdmFsdWVzLnB1c2goJ2ZvbGxvdycpO1xuICAgIGVsc2UgaWYgKHR5cGVvZiByb2JvdHMuZm9sbG93ID09PSAnYm9vbGVhbicpIHZhbHVlcy5wdXNoKCdub2ZvbGxvdycpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHJvYm90c0tleXMpe1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJvYm90c1trZXldO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nID8ga2V5IDogYCR7a2V5fToke3ZhbHVlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXMuam9pbignLCAnKTtcbn07XG5jb25zdCByZXNvbHZlUm9ib3RzID0gKHJvYm90cyk9PntcbiAgICBpZiAoIXJvYm90cykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYmFzaWM6IHJlc29sdmVSb2JvdHNWYWx1ZShyb2JvdHMpLFxuICAgICAgICBnb29nbGVCb3Q6IHR5cGVvZiByb2JvdHMgIT09ICdzdHJpbmcnID8gcmVzb2x2ZVJvYm90c1ZhbHVlKHJvYm90cy5nb29nbGVCb3QpIDogbnVsbFxuICAgIH07XG59O1xuY29uc3QgVmVyaWZpY2F0aW9uS2V5cyA9IFtcbiAgICAnZ29vZ2xlJyxcbiAgICAneWFob28nLFxuICAgICd5YW5kZXgnLFxuICAgICdtZScsXG4gICAgJ290aGVyJ1xuXTtcbmNvbnN0IHJlc29sdmVWZXJpZmljYXRpb24gPSAodmVyaWZpY2F0aW9uKT0+e1xuICAgIGlmICghdmVyaWZpY2F0aW9uKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBWZXJpZmljYXRpb25LZXlzKXtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2ZXJpZmljYXRpb25ba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnb3RoZXInKSB7XG4gICAgICAgICAgICAgICAgcmVzLm90aGVyID0ge307XG4gICAgICAgICAgICAgICAgZm9yKGNvbnN0IG90aGVyS2V5IGluIHZlcmlmaWNhdGlvbi5vdGhlcil7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG90aGVyVmFsdWUgPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKHZlcmlmaWNhdGlvbi5vdGhlcltvdGhlcktleV0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJWYWx1ZSkgcmVzLm90aGVyW290aGVyS2V5XSA9IG90aGVyVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHJlc1trZXldID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn07XG5jb25zdCByZXNvbHZlQXBwbGVXZWJBcHAgPSAoYXBwV2ViQXBwKT0+e1xuICAgIHZhciBfcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZDtcbiAgICBpZiAoIWFwcFdlYkFwcCkgcmV0dXJuIG51bGw7XG4gICAgaWYgKGFwcFdlYkFwcCA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2FwYWJsZTogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBzdGFydHVwSW1hZ2VzID0gYXBwV2ViQXBwLnN0YXJ0dXBJbWFnZSA/IChfcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoYXBwV2ViQXBwLnN0YXJ0dXBJbWFnZSkpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZC5tYXAoKGl0ZW0pPT50eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyB7XG4gICAgICAgICAgICB1cmw6IGl0ZW1cbiAgICAgICAgfSA6IGl0ZW0pIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBjYXBhYmxlOiAnY2FwYWJsZScgaW4gYXBwV2ViQXBwID8gISFhcHBXZWJBcHAuY2FwYWJsZSA6IHRydWUsXG4gICAgICAgIHRpdGxlOiBhcHBXZWJBcHAudGl0bGUgfHwgbnVsbCxcbiAgICAgICAgc3RhcnR1cEltYWdlOiBzdGFydHVwSW1hZ2VzLFxuICAgICAgICBzdGF0dXNCYXJTdHlsZTogYXBwV2ViQXBwLnN0YXR1c0JhclN0eWxlIHx8ICdkZWZhdWx0J1xuICAgIH07XG59O1xuY29uc3QgcmVzb2x2ZUFwcExpbmtzID0gKGFwcExpbmtzKT0+e1xuICAgIGlmICghYXBwTGlua3MpIHJldHVybiBudWxsO1xuICAgIGZvcihjb25zdCBrZXkgaW4gYXBwTGlua3Mpe1xuICAgICAgICAvLyBAdHMtaWdub3JlIC8vIFRPRE86IHR5cGUgaW5mZXJcbiAgICAgICAgYXBwTGlua3Nba2V5XSA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoYXBwTGlua3Nba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiBhcHBMaW5rcztcbn07XG5jb25zdCByZXNvbHZlSXR1bmVzID0gKGl0dW5lcywgbWV0YWRhdGFCYXNlLCBjb250ZXh0KT0+e1xuICAgIGlmICghaXR1bmVzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcHBJZDogaXR1bmVzLmFwcElkLFxuICAgICAgICBhcHBBcmd1bWVudDogaXR1bmVzLmFwcEFyZ3VtZW50ID8gcmVzb2x2ZUFsdGVybmF0ZVVybChpdHVuZXMuYXBwQXJndW1lbnQsIG1ldGFkYXRhQmFzZSwgY29udGV4dCkgOiB1bmRlZmluZWRcbiAgICB9O1xufTtcbmNvbnN0IHJlc29sdmVGYWNlYm9vayA9IChmYWNlYm9vayk9PntcbiAgICBpZiAoIWZhY2Vib29rKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcHBJZDogZmFjZWJvb2suYXBwSWQsXG4gICAgICAgIGFkbWluczogKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShmYWNlYm9vay5hZG1pbnMpXG4gICAgfTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtYmFzaWNzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLG1CQUFtQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxsaWJcXG1ldGFkYXRhXFxyZXNvbHZlcnNcXHJlc29sdmUtaWNvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICByZXNvbHZlSWNvbjogbnVsbCxcbiAgICByZXNvbHZlSWNvbnM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgcmVzb2x2ZUljb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUljb247XG4gICAgfSxcbiAgICByZXNvbHZlSWNvbnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUljb25zO1xuICAgIH1cbn0pO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL2dlbmVyYXRlL3V0aWxzXCIpO1xuY29uc3QgX3Jlc29sdmV1cmwgPSByZXF1aXJlKFwiLi9yZXNvbHZlLXVybFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gcmVzb2x2ZUljb24oaWNvbikge1xuICAgIGlmICgoMCwgX3Jlc29sdmV1cmwuaXNTdHJpbmdPclVSTCkoaWNvbikpIHJldHVybiB7XG4gICAgICAgIHVybDogaWNvblxuICAgIH07XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpY29uKSkgcmV0dXJuIGljb247XG4gICAgcmV0dXJuIGljb247XG59XG5jb25zdCByZXNvbHZlSWNvbnMgPSAoaWNvbnMpPT57XG4gICAgaWYgKCFpY29ucykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB7XG4gICAgICAgIGljb246IFtdLFxuICAgICAgICBhcHBsZTogW11cbiAgICB9O1xuICAgIGlmIChBcnJheS5pc0FycmF5KGljb25zKSkge1xuICAgICAgICByZXNvbHZlZC5pY29uID0gaWNvbnMubWFwKHJlc29sdmVJY29uKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfSBlbHNlIGlmICgoMCwgX3Jlc29sdmV1cmwuaXNTdHJpbmdPclVSTCkoaWNvbnMpKSB7XG4gICAgICAgIHJlc29sdmVkLmljb24gPSBbXG4gICAgICAgICAgICByZXNvbHZlSWNvbihpY29ucylcbiAgICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBfY29uc3RhbnRzLkljb25LZXlzKXtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoaWNvbnNba2V5XSk7XG4gICAgICAgICAgICBpZiAodmFsdWVzKSByZXNvbHZlZFtrZXldID0gdmFsdWVzLm1hcChyZXNvbHZlSWNvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1pY29ucy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 && ( 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 = (openGraph, metadataBase, 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, 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 default:\n break;\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-opengraph.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLCtGQUFpQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMsNERBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHFGQUEyQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3RUFBd0UsTUFBcUM7QUFDN0c7QUFDQSxnSkFBZ0osNEJBQTRCO0FBQzVLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbWV0YWRhdGFcXHJlc29sdmVyc1xccmVzb2x2ZS1vcGVuZ3JhcGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICByZXNvbHZlSW1hZ2VzOiBudWxsLFxuICAgIHJlc29sdmVPcGVuR3JhcGg6IG51bGwsXG4gICAgcmVzb2x2ZVR3aXR0ZXI6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgcmVzb2x2ZUltYWdlczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSW1hZ2VzO1xuICAgIH0sXG4gICAgcmVzb2x2ZU9wZW5HcmFwaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlT3BlbkdyYXBoO1xuICAgIH0sXG4gICAgcmVzb2x2ZVR3aXR0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVR3aXR0ZXI7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vZ2VuZXJhdGUvdXRpbHNcIik7XG5jb25zdCBfcmVzb2x2ZXVybCA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtdXJsXCIpO1xuY29uc3QgX3Jlc29sdmV0aXRsZSA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtdGl0bGVcIik7XG5jb25zdCBfdXJsID0gcmVxdWlyZShcIi4uLy4uL3VybFwiKTtcbmNvbnN0IF9sb2cgPSByZXF1aXJlKFwiLi4vLi4vLi4vYnVpbGQvb3V0cHV0L2xvZ1wiKTtcbmNvbnN0IE9nVHlwZUZpZWxkcyA9IHtcbiAgICBhcnRpY2xlOiBbXG4gICAgICAgICdhdXRob3JzJyxcbiAgICAgICAgJ3RhZ3MnXG4gICAgXSxcbiAgICBzb25nOiBbXG4gICAgICAgICdhbGJ1bXMnLFxuICAgICAgICAnbXVzaWNpYW5zJ1xuICAgIF0sXG4gICAgcGxheWxpc3Q6IFtcbiAgICAgICAgJ2FsYnVtcycsXG4gICAgICAgICdtdXNpY2lhbnMnXG4gICAgXSxcbiAgICByYWRpbzogW1xuICAgICAgICAnY3JlYXRvcnMnXG4gICAgXSxcbiAgICB2aWRlbzogW1xuICAgICAgICAnYWN0b3JzJyxcbiAgICAgICAgJ2RpcmVjdG9ycycsXG4gICAgICAgICd3cml0ZXJzJyxcbiAgICAgICAgJ3RhZ3MnXG4gICAgXSxcbiAgICBiYXNpYzogW1xuICAgICAgICAnZW1haWxzJyxcbiAgICAgICAgJ3Bob25lTnVtYmVycycsXG4gICAgICAgICdmYXhOdW1iZXJzJyxcbiAgICAgICAgJ2FsdGVybmF0ZUxvY2FsZScsXG4gICAgICAgICdhdWRpbycsXG4gICAgICAgICd2aWRlb3MnXG4gICAgXVxufTtcbmZ1bmN0aW9uIHJlc29sdmVBbmRWYWxpZGF0ZUltYWdlKGl0ZW0sIG1ldGFkYXRhQmFzZSwgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSkge1xuICAgIGlmICghaXRlbSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBpc0l0ZW1VcmwgPSAoMCwgX3Jlc29sdmV1cmwuaXNTdHJpbmdPclVSTCkoaXRlbSk7XG4gICAgY29uc3QgaW5wdXRVcmwgPSBpc0l0ZW1VcmwgPyBpdGVtIDogaXRlbS51cmw7XG4gICAgaWYgKCFpbnB1dFVybCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAvLyBwcm9jZXNzLmVudi5WRVJDRUwgaXMgc2V0IHRvIFwiMVwiIHdoZW4gU3lzdGVtIEVudmlyb25tZW50IFZhcmlhYmxlcyBhcmVcbiAgICAvLyBleHBvc2VkLiBXaGVuIGV4cG9zZWQsIHZhbGlkYXRpb24gaXMgbm90IG5lY2Vzc2FyeSBzaW5jZSB3ZSBhcmUgZmFsbGluZyBiYWNrIHRvXG4gICAgLy8gcHJvY2Vzcy5lbnYuVkVSQ0VMX1BST0pFQ1RfUFJPRFVDVElPTl9VUkwsIHByb2Nlc3MuZW52LlZFUkNFTF9CUkFOQ0hfVVJMLCBvclxuICAgIC8vIHByb2Nlc3MuZW52LlZFUkNFTF9VUkwgZm9yIHRoZSBgbWV0YWRhdGFCYXNlYC4gcHJvY2Vzcy5lbnYuVkVSQ0VMIGlzIHVuZGVmaW5lZFxuICAgIC8vIHdoZW4gU3lzdGVtIEVudmlyb25tZW50IFZhcmlhYmxlcyBhcmUgbm90IGV4cG9zZWQuIFdoZW4gbm90IGV4cG9zZWQsIHdlIGNhbm5vdFxuICAgIC8vIGRldGVjdCBpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaWYgdGhlIGRlcGxveW1lbnQgaXMgYSBWZXJjZWwgZGVwbG95bWVudCBvciBub3QuXG4gICAgLy9cbiAgICAvLyB4LXJlZjogaHR0cHM6Ly92ZXJjZWwuY29tL2RvY3MvcHJvamVjdHMvZW52aXJvbm1lbnQtdmFyaWFibGVzL3N5c3RlbS1lbnZpcm9ubWVudC12YXJpYWJsZXMjc3lzdGVtLWVudmlyb25tZW50LXZhcmlhYmxlc1xuICAgIGNvbnN0IGlzVXNpbmdWZXJjZWxTeXN0ZW1FbnZpcm9ubWVudFZhcmlhYmxlcyA9IEJvb2xlYW4ocHJvY2Vzcy5lbnYuVkVSQ0VMKTtcbiAgICBjb25zdCBpc1JlbGF0aXZlVXJsID0gdHlwZW9mIGlucHV0VXJsID09PSAnc3RyaW5nJyAmJiAhKDAsIF91cmwuaXNGdWxsU3RyaW5nVXJsKShpbnB1dFVybCk7XG4gICAgLy8gV2hlbiBubyBleHBsaWNpdCBtZXRhZGF0YUJhc2UgaXMgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB3ZSdsbCBvdmVycmlkZSBpdCB3aXRoIHRoZSBmYWxsYmFjayBtZXRhZGF0YVxuICAgIC8vIHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAgICAvLyAtIFRoZSBwcm92aWRlZCBVUkwgaXMgcmVsYXRpdmUgKGllIC4vb2ctaW1hZ2UpLlxuICAgIC8vIC0gVGhlIGltYWdlIGlzIHN0YXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IE5leHQuanMgKHN1Y2ggYXMgdGhlIHNwZWNpYWwgYG9wZW5ncmFwaC1pbWFnZWAgcm91dGUpXG4gICAgLy8gSW4gYm90aCBjYXNlcywgd2Ugd2FudCB0byBlbnN1cmUgdGhhdCBhY3Jvc3MgYWxsIGVudmlyb25tZW50cywgdGhlIG9nSW1hZ2UgaXMgYSBmdWxseSBxdWFsaWZpZWQgVVJMLlxuICAgIC8vIEluIHRoZSBgb3BlbmdyYXBoLWltYWdlYCBjYXNlLCBzaW5jZSB0aGUgdXNlciBpc24ndCBleHBsaWNpdGx5IHBhc3NpbmcgYSByZWxhdGl2ZSBwYXRoLCB0aGlzIGVuc3VyZXNcbiAgICAvLyB0aGUgb2dJbWFnZSB3aWxsIGJlIHByb3Blcmx5IGRpc2NvdmVyZWQgYWNyb3NzIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgd2l0aG91dCB0aGUgdXNlciBuZWVkaW5nIHRvXG4gICAgLy8gaGF2ZSBhIGJ1bmNoIG9mIGBwcm9jZXNzLmVudmAgY2hlY2tzIHdoZW4gZGVmaW5pbmcgdGhlaXIgYG1ldGFkYXRhQmFzZWAuXG4gICAgaWYgKGlzUmVsYXRpdmVVcmwgJiYgKCFtZXRhZGF0YUJhc2UgfHwgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSkpIHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tNZXRhZGF0YUJhc2UgPSAoMCwgX3Jlc29sdmV1cmwuZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjaykobWV0YWRhdGFCYXNlKTtcbiAgICAgICAgLy8gV2hlbiBub3QgdXNpbmcgVmVyY2VsIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgVVJMIGluamVjdGlvbiwgd2UgYXJlbid0IGFibGUgdG8gZGV0ZXJtaW5lXG4gICAgICAgIC8vIGEgZmFsbGJhY2sgdmFsdWUgZm9yIGBtZXRhZGF0YUJhc2VgLiBGb3Igc2VsZi1ob3N0ZWQgc2V0dXBzLCB3ZSB3YW50IHRvIHdhcm5cbiAgICAgICAgLy8gYWJvdXQgdGhpcyBzaW5jZSB0aGUgb25seSBmYWxsYmFjayB3ZSdsbCBiZSBhYmxlIHRvIGdlbmVyYXRlIGlzIGBsb2NhbGhvc3RgLlxuICAgICAgICAvLyBJbiBkZXZlbG9wbWVudCwgd2UnbGwgb25seSB3YXJuIGZvciByZWxhdGl2ZSBtZXRhZGF0YSB0aGF0IGlzbid0IHBhcnQgb2YgdGhlIHN0YXRpY1xuICAgICAgICAvLyBtZXRhZGF0YSBjb252ZW50aW9ucyAoZWcgYG9wZW5ncmFwaC1pbWFnZWApLCBhcyBvdGhlcndpc2UgaXQncyBjdXJyZW50bHkgdmVyeSBub2lzeVxuICAgICAgICAvLyBmb3IgY29tbW9uIGNhc2VzLiBFdmVudHVhbGx5IHdlIHNob3VsZCByZW1vdmUgdGhpcyB3YXJuaW5nIGFsbCB0b2dldGhlciBpbiBmYXZvciBvZlxuICAgICAgICAvLyBkZXZ0b29scy5cbiAgICAgICAgY29uc3Qgc2hvdWxkV2FybiA9ICFpc1VzaW5nVmVyY2VsU3lzdGVtRW52aXJvbm1lbnRWYXJpYWJsZXMgJiYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgfHwgIWlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpO1xuICAgICAgICBpZiAoc2hvdWxkV2Fybikge1xuICAgICAgICAgICAgKDAsIF9sb2cud2Fybk9uY2UpKGBtZXRhZGF0YUJhc2UgcHJvcGVydHkgaW4gbWV0YWRhdGEgZXhwb3J0IGlzIG5vdCBzZXQgZm9yIHJlc29sdmluZyBzb2NpYWwgb3BlbiBncmFwaCBvciB0d2l0dGVyIGltYWdlcywgdXNpbmcgXCIke2ZhbGxiYWNrTWV0YWRhdGFCYXNlLm9yaWdpbn1cIi4gU2VlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9nZW5lcmF0ZS1tZXRhZGF0YSNtZXRhZGF0YWJhc2VgKTtcbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YUJhc2UgPSBmYWxsYmFja01ldGFkYXRhQmFzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzSXRlbVVybCA/IHtcbiAgICAgICAgdXJsOiAoMCwgX3Jlc29sdmV1cmwucmVzb2x2ZVVybCkoaW5wdXRVcmwsIG1ldGFkYXRhQmFzZSlcbiAgICB9IDoge1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICAvLyBVcGRhdGUgaW1hZ2UgZGVzY3JpcHRvciB1cmxcbiAgICAgICAgdXJsOiAoMCwgX3Jlc29sdmV1cmwucmVzb2x2ZVVybCkoaW5wdXRVcmwsIG1ldGFkYXRhQmFzZSlcbiAgICB9O1xufVxuZnVuY3Rpb24gcmVzb2x2ZUltYWdlcyhpbWFnZXMsIG1ldGFkYXRhQmFzZSwgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSkge1xuICAgIGNvbnN0IHJlc29sdmVkSW1hZ2VzID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShpbWFnZXMpO1xuICAgIGlmICghcmVzb2x2ZWRJbWFnZXMpIHJldHVybiByZXNvbHZlZEltYWdlcztcbiAgICBjb25zdCBub25OdWxsYWJsZUltYWdlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiByZXNvbHZlZEltYWdlcyl7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkSXRlbSA9IHJlc29sdmVBbmRWYWxpZGF0ZUltYWdlKGl0ZW0sIG1ldGFkYXRhQmFzZSwgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSk7XG4gICAgICAgIGlmICghcmVzb2x2ZWRJdGVtKSBjb250aW51ZTtcbiAgICAgICAgbm9uTnVsbGFibGVJbWFnZXMucHVzaChyZXNvbHZlZEl0ZW0pO1xuICAgIH1cbiAgICByZXR1cm4gbm9uTnVsbGFibGVJbWFnZXM7XG59XG5jb25zdCBvZ1R5cGVUb0ZpZWxkcyA9IHtcbiAgICBhcnRpY2xlOiBPZ1R5cGVGaWVsZHMuYXJ0aWNsZSxcbiAgICBib29rOiBPZ1R5cGVGaWVsZHMuYXJ0aWNsZSxcbiAgICAnbXVzaWMuc29uZyc6IE9nVHlwZUZpZWxkcy5zb25nLFxuICAgICdtdXNpYy5hbGJ1bSc6IE9nVHlwZUZpZWxkcy5zb25nLFxuICAgICdtdXNpYy5wbGF5bGlzdCc6IE9nVHlwZUZpZWxkcy5wbGF5bGlzdCxcbiAgICAnbXVzaWMucmFkaW9fc3RhdGlvbic6IE9nVHlwZUZpZWxkcy5yYWRpbyxcbiAgICAndmlkZW8ubW92aWUnOiBPZ1R5cGVGaWVsZHMudmlkZW8sXG4gICAgJ3ZpZGVvLmVwaXNvZGUnOiBPZ1R5cGVGaWVsZHMudmlkZW9cbn07XG5mdW5jdGlvbiBnZXRGaWVsZHNCeU9nVHlwZShvZ1R5cGUpIHtcbiAgICBpZiAoIW9nVHlwZSB8fCAhKG9nVHlwZSBpbiBvZ1R5cGVUb0ZpZWxkcykpIHJldHVybiBPZ1R5cGVGaWVsZHMuYmFzaWM7XG4gICAgcmV0dXJuIG9nVHlwZVRvRmllbGRzW29nVHlwZV0uY29uY2F0KE9nVHlwZUZpZWxkcy5iYXNpYyk7XG59XG5jb25zdCByZXNvbHZlT3BlbkdyYXBoID0gKG9wZW5HcmFwaCwgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGUpPT57XG4gICAgaWYgKCFvcGVuR3JhcGgpIHJldHVybiBudWxsO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVQcm9wcyh0YXJnZXQsIG9nKSB7XG4gICAgICAgIGNvbnN0IG9nVHlwZSA9IG9nICYmICd0eXBlJyBpbiBvZyA/IG9nLnR5cGUgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGtleXMgPSBnZXRGaWVsZHNCeU9nVHlwZShvZ1R5cGUpO1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2Yga2V5cyl7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBrO1xuICAgICAgICAgICAgaWYgKGtleSBpbiBvZyAmJiBrZXkgIT09ICd1cmwnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvZ1trZXldO1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gdmFsdWUgPyAoMCwgX3V0aWxzLnJlc29sdmVBcnJheSkodmFsdWUpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0YXJnZXQuaW1hZ2VzID0gcmVzb2x2ZUltYWdlcyhvZy5pbWFnZXMsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LmlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpO1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICAgICAgLi4ub3BlbkdyYXBoLFxuICAgICAgICB0aXRsZTogKDAsIF9yZXNvbHZldGl0bGUucmVzb2x2ZVRpdGxlKShvcGVuR3JhcGgudGl0bGUsIHRpdGxlVGVtcGxhdGUpXG4gICAgfTtcbiAgICByZXNvbHZlUHJvcHMocmVzb2x2ZWQsIG9wZW5HcmFwaCk7XG4gICAgcmVzb2x2ZWQudXJsID0gb3BlbkdyYXBoLnVybCA/ICgwLCBfcmVzb2x2ZXVybC5yZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUpKG9wZW5HcmFwaC51cmwsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0KSA6IG51bGw7XG4gICAgcmV0dXJuIHJlc29sdmVkO1xufTtcbmNvbnN0IFR3aXR0ZXJCYXNpY0luZm9LZXlzID0gW1xuICAgICdzaXRlJyxcbiAgICAnc2l0ZUlkJyxcbiAgICAnY3JlYXRvcicsXG4gICAgJ2NyZWF0b3JJZCcsXG4gICAgJ2Rlc2NyaXB0aW9uJ1xuXTtcbmNvbnN0IHJlc29sdmVUd2l0dGVyID0gKHR3aXR0ZXIsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlKT0+e1xuICAgIHZhciBfcmVzb2x2ZWRfaW1hZ2VzO1xuICAgIGlmICghdHdpdHRlcikgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNhcmQgPSAnY2FyZCcgaW4gdHdpdHRlciA/IHR3aXR0ZXIuY2FyZCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICAgICAgLi4udHdpdHRlcixcbiAgICAgICAgdGl0bGU6ICgwLCBfcmVzb2x2ZXRpdGxlLnJlc29sdmVUaXRsZSkodHdpdHRlci50aXRsZSwgdGl0bGVUZW1wbGF0ZSlcbiAgICB9O1xuICAgIGZvciAoY29uc3QgaW5mb0tleSBvZiBUd2l0dGVyQmFzaWNJbmZvS2V5cyl7XG4gICAgICAgIHJlc29sdmVkW2luZm9LZXldID0gdHdpdHRlcltpbmZvS2V5XSB8fCBudWxsO1xuICAgIH1cbiAgICByZXNvbHZlZC5pbWFnZXMgPSByZXNvbHZlSW1hZ2VzKHR3aXR0ZXIuaW1hZ2VzLCBtZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dC5pc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKTtcbiAgICBjYXJkID0gY2FyZCB8fCAoKChfcmVzb2x2ZWRfaW1hZ2VzID0gcmVzb2x2ZWQuaW1hZ2VzKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVkX2ltYWdlcy5sZW5ndGgpID8gJ3N1bW1hcnlfbGFyZ2VfaW1hZ2UnIDogJ3N1bW1hcnknKTtcbiAgICByZXNvbHZlZC5jYXJkID0gY2FyZDtcbiAgICBpZiAoJ2NhcmQnIGluIHJlc29sdmVkKSB7XG4gICAgICAgIHN3aXRjaChyZXNvbHZlZC5jYXJkKXtcbiAgICAgICAgICAgIGNhc2UgJ3BsYXllcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZC5wbGF5ZXJzID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShyZXNvbHZlZC5wbGF5ZXJzKSB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXBwJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkLmFwcCA9IHJlc29sdmVkLmFwcCB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLW9wZW5ncmFwaC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGdEQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxtZXRhZGF0YVxccmVzb2x2ZXJzXFxyZXNvbHZlLXRpdGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicmVzb2x2ZVRpdGxlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVGl0bGU7XG4gICAgfVxufSk7XG5mdW5jdGlvbiByZXNvbHZlVGl0bGVUZW1wbGF0ZSh0ZW1wbGF0ZSwgdGl0bGUpIHtcbiAgICByZXR1cm4gdGVtcGxhdGUgPyB0ZW1wbGF0ZS5yZXBsYWNlKC8lcy9nLCB0aXRsZSkgOiB0aXRsZTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVUaXRsZSh0aXRsZSwgc3Rhc2hlZFRlbXBsYXRlKSB7XG4gICAgbGV0IHJlc29sdmVkO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gdHlwZW9mIHRpdGxlICE9PSAnc3RyaW5nJyAmJiB0aXRsZSAmJiAndGVtcGxhdGUnIGluIHRpdGxlID8gdGl0bGUudGVtcGxhdGUgOiBudWxsO1xuICAgIGlmICh0eXBlb2YgdGl0bGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlc29sdmVkID0gcmVzb2x2ZVRpdGxlVGVtcGxhdGUoc3Rhc2hlZFRlbXBsYXRlLCB0aXRsZSk7XG4gICAgfSBlbHNlIGlmICh0aXRsZSkge1xuICAgICAgICBpZiAoJ2RlZmF1bHQnIGluIHRpdGxlKSB7XG4gICAgICAgICAgICByZXNvbHZlZCA9IHJlc29sdmVUaXRsZVRlbXBsYXRlKHN0YXNoZWRUZW1wbGF0ZSwgdGl0bGUuZGVmYXVsdCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdhYnNvbHV0ZScgaW4gdGl0bGUgJiYgdGl0bGUuYWJzb2x1dGUpIHtcbiAgICAgICAgICAgIHJlc29sdmVkID0gdGl0bGUuYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRpdGxlICYmIHR5cGVvZiB0aXRsZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRlbXBsYXRlLFxuICAgICAgICAgICAgYWJzb2x1dGU6IHJlc29sdmVkIHx8ICcnXG4gICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFic29sdXRlOiByZXNvbHZlZCB8fCB0aXRsZSB8fCAnJyxcbiAgICAgICAgICAgIHRlbXBsYXRlXG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLXRpdGxlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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 return new URL(`http://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 basePath = metadataBase.pathname || '';\n const joinedPath = _path.default.posix.join(basePath, url);\n return new URL(joinedPath, metadataBase);\n}\n// Resolve with `pathname` if `url` is a relative path.\nfunction resolveRelativeUrl(url, pathname) {\n if (typeof url === 'string' && url.startsWith('./')) {\n return _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, { trailingSlash, pathname }) {\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscURBQXFELG1CQUFPLENBQUMseUdBQXFDO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1Qyx5QkFBeUI7QUFDaEU7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLE9BQU87QUFDOUM7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLE9BQU87QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBLE1BQU0sS0FBSyxFQUVOO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCx5QkFBeUI7QUFDdEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQsWUFBWTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxtZXRhZGF0YVxccmVzb2x2ZXJzXFxyZXNvbHZlLXVybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldFNvY2lhbEltYWdlTWV0YWRhdGFCYXNlRmFsbGJhY2s6IG51bGwsXG4gICAgaXNTdHJpbmdPclVSTDogbnVsbCxcbiAgICByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWU6IG51bGwsXG4gICAgcmVzb2x2ZVJlbGF0aXZlVXJsOiBudWxsLFxuICAgIHJlc29sdmVVcmw6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRTb2NpYWxJbWFnZU1ldGFkYXRhQmFzZUZhbGxiYWNrO1xuICAgIH0sXG4gICAgaXNTdHJpbmdPclVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZ09yVVJMO1xuICAgIH0sXG4gICAgcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZTtcbiAgICB9LFxuICAgIHJlc29sdmVSZWxhdGl2ZVVybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlUmVsYXRpdmVVcmw7XG4gICAgfSxcbiAgICByZXNvbHZlVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVVcmw7XG4gICAgfVxufSk7XG5jb25zdCBfcGF0aCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL2lzb21vcnBoaWMvcGF0aFwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzU3RyaW5nT3JVUkwoaWNvbikge1xuICAgIHJldHVybiB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZycgfHwgaWNvbiBpbnN0YW5jZW9mIFVSTDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUxvY2FsTWV0YWRhdGFCYXNlKCkge1xuICAgIHJldHVybiBuZXcgVVJMKGBodHRwOi8vbG9jYWxob3N0OiR7cHJvY2Vzcy5lbnYuUE9SVCB8fCAzMDAwfWApO1xufVxuZnVuY3Rpb24gZ2V0UHJldmlld0RlcGxveW1lbnRVcmwoKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gcHJvY2Vzcy5lbnYuVkVSQ0VMX0JSQU5DSF9VUkwgfHwgcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTDtcbiAgICByZXR1cm4gb3JpZ2luID8gbmV3IFVSTChgaHR0cHM6Ly8ke29yaWdpbn1gKSA6IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIGdldFByb2R1Y3Rpb25EZXBsb3ltZW50VXJsKCkge1xuICAgIGNvbnN0IG9yaWdpbiA9IHByb2Nlc3MuZW52LlZFUkNFTF9QUk9KRUNUX1BST0RVQ1RJT05fVVJMO1xuICAgIHJldHVybiBvcmlnaW4gPyBuZXcgVVJMKGBodHRwczovLyR7b3JpZ2lufWApIDogdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjayhtZXRhZGF0YUJhc2UpIHtcbiAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGFCYXNlID0gY3JlYXRlTG9jYWxNZXRhZGF0YUJhc2UoKTtcbiAgICBjb25zdCBwcmV2aWV3RGVwbG95bWVudFVybCA9IGdldFByZXZpZXdEZXBsb3ltZW50VXJsKCk7XG4gICAgY29uc3QgcHJvZHVjdGlvbkRlcGxveW1lbnRVcmwgPSBnZXRQcm9kdWN0aW9uRGVwbG95bWVudFVybCgpO1xuICAgIGxldCBmYWxsYmFja01ldGFkYXRhQmFzZTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgZmFsbGJhY2tNZXRhZGF0YUJhc2UgPSBkZWZhdWx0TWV0YWRhdGFCYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZhbGxiYWNrTWV0YWRhdGFCYXNlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiBwcmV2aWV3RGVwbG95bWVudFVybCAmJiBwcm9jZXNzLmVudi5WRVJDRUxfRU5WID09PSAncHJldmlldycgPyBwcmV2aWV3RGVwbG95bWVudFVybCA6IG1ldGFkYXRhQmFzZSB8fCBwcm9kdWN0aW9uRGVwbG95bWVudFVybCB8fCBkZWZhdWx0TWV0YWRhdGFCYXNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2tNZXRhZGF0YUJhc2U7XG59XG5mdW5jdGlvbiByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSB7XG4gICAgaWYgKHVybCBpbnN0YW5jZW9mIFVSTCkgcmV0dXJuIHVybDtcbiAgICBpZiAoIXVybCkgcmV0dXJuIG51bGw7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gSWYgd2UgY2FuIGNvbnN0cnVjdCBhIFVSTCBpbnN0YW5jZSBmcm9tIHVybCwgaWdub3JlIG1ldGFkYXRhQmFzZVxuICAgICAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybCk7XG4gICAgICAgIHJldHVybiBwYXJzZWRVcmw7XG4gICAgfSBjYXRjaCAge31cbiAgICBpZiAoIW1ldGFkYXRhQmFzZSkge1xuICAgICAgICBtZXRhZGF0YUJhc2UgPSBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpO1xuICAgIH1cbiAgICAvLyBIYW5kbGUgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHNcbiAgICBjb25zdCBiYXNlUGF0aCA9IG1ldGFkYXRhQmFzZS5wYXRobmFtZSB8fCAnJztcbiAgICBjb25zdCBqb2luZWRQYXRoID0gX3BhdGguZGVmYXVsdC5wb3NpeC5qb2luKGJhc2VQYXRoLCB1cmwpO1xuICAgIHJldHVybiBuZXcgVVJMKGpvaW5lZFBhdGgsIG1ldGFkYXRhQmFzZSk7XG59XG4vLyBSZXNvbHZlIHdpdGggYHBhdGhuYW1lYCBpZiBgdXJsYCBpcyBhIHJlbGF0aXZlIHBhdGguXG5mdW5jdGlvbiByZXNvbHZlUmVsYXRpdmVVcmwodXJsLCBwYXRobmFtZSkge1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJyAmJiB1cmwuc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgICAgICByZXR1cm4gX3BhdGguZGVmYXVsdC5wb3NpeC5yZXNvbHZlKHBhdGhuYW1lLCB1cmwpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xufVxuLy8gVGhlIHJlZ2V4IGlzIG1hdGNoaW5nIGxvZ2ljIGZyb20gcGFja2FnZXMvbmV4dC9zcmMvbGliL2xvYWQtY3VzdG9tLXJvdXRlcy50c1xuY29uc3QgRklMRV9SRUdFWCA9IC9eKD86XFwvKCg/IVxcLndlbGwta25vd24oPzpcXC8uKik/KSg/OlteL10rXFwvKSpbXi9dK1xcLlxcdyspKShcXC8/fCQpL2k7XG5mdW5jdGlvbiBpc0ZpbGVQYXR0ZXJuKHBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIEZJTEVfUkVHRVgudGVzdChwYXRobmFtZSk7XG59XG4vLyBSZXNvbHZlIGBwYXRobmFtZWAgaWYgYHVybGAgaXMgYSByZWxhdGl2ZSBwYXRoIHRoZSBjb21wb3NlIHdpdGggYG1ldGFkYXRhQmFzZWAuXG5mdW5jdGlvbiByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUodXJsLCBtZXRhZGF0YUJhc2UsIHsgdHJhaWxpbmdTbGFzaCwgcGF0aG5hbWUgfSkge1xuICAgIC8vIFJlc29sdmUgdXJsIHdpdGggcGF0aG5hbWUgdGhhdCBhbHdheXMgc3RhcnRzIHdpdGggYC9gXG4gICAgdXJsID0gcmVzb2x2ZVJlbGF0aXZlVXJsKHVybCwgcGF0aG5hbWUpO1xuICAgIC8vIENvbnZlcnQgc3RyaW5nIHVybCBvciBVUkwgaW5zdGFuY2UgdG8gYWJzb2x1dGUgdXJsIHN0cmluZyxcbiAgICAvLyBpZiB0aGVyZSdzIGNhc2UgbmVlZHMgdG8gYmUgcmVzb2x2ZWQgd2l0aCBtZXRhZGF0YUJhc2VcbiAgICBsZXQgcmVzb2x2ZWRVcmwgPSAnJztcbiAgICBjb25zdCByZXN1bHQgPSBtZXRhZGF0YUJhc2UgPyByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSA6IHVybDtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzb2x2ZWRVcmwgPSByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZWRVcmwgPSByZXN1bHQucGF0aG5hbWUgPT09ICcvJyA/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9ub24tbnVsbGFibGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXGxpYlxcbm9uLW51bGxhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibm9uTnVsbGFibGVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vbk51bGxhYmxlO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gbm9uTnVsbGFibGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9uLW51bGxhYmxlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9waWNvY29sb3JzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0EyQkw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxRQUFRLGNBQWM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLEVBQUU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsRUFBRSxJQUFJLElBQUk7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxwaWNvY29sb3JzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIElTQyBMaWNlbnNlXG4vLyBDb3B5cmlnaHQgKGMpIDIwMjEgQWxleGV5IFJhc3BvcG92LCBLb3N0aWFudHluIERlbnlzb3YsIEFudG9uIFZlcmlub3Zcbi8vIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxuLy8gcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZVxuLy8gY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy5cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTXG4vLyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUlxuLy8gQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFU1xuLy8gV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOXG4vLyBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRlxuLy8gT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cbi8vXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYWxleGV5cmFzcG9wb3YvcGljb2NvbG9ycy9ibG9iL2I2MjYxNDg3ZTdiODFhYWFiMjQ0MGUzOTdhMzU2NzMyY2FkOWUzNDIvcGljb2NvbG9ycy5qcyNMMVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBiZ0JsYWNrOiBudWxsLFxuICAgIGJnQmx1ZTogbnVsbCxcbiAgICBiZ0N5YW46IG51bGwsXG4gICAgYmdHcmVlbjogbnVsbCxcbiAgICBiZ01hZ2VudGE6IG51bGwsXG4gICAgYmdSZWQ6IG51bGwsXG4gICAgYmdXaGl0ZTogbnVsbCxcbiAgICBiZ1llbGxvdzogbnVsbCxcbiAgICBibGFjazogbnVsbCxcbiAgICBibHVlOiBudWxsLFxuICAgIGJvbGQ6IG51bGwsXG4gICAgY3lhbjogbnVsbCxcbiAgICBkaW06IG51bGwsXG4gICAgZ3JheTogbnVsbCxcbiAgICBncmVlbjogbnVsbCxcbiAgICBoaWRkZW46IG51bGwsXG4gICAgaW52ZXJzZTogbnVsbCxcbiAgICBpdGFsaWM6IG51bGwsXG4gICAgbWFnZW50YTogbnVsbCxcbiAgICBwdXJwbGU6IG51bGwsXG4gICAgcmVkOiBudWxsLFxuICAgIHJlc2V0OiBudWxsLFxuICAgIHN0cmlrZXRocm91Z2g6IG51bGwsXG4gICAgdW5kZXJsaW5lOiBudWxsLFxuICAgIHdoaXRlOiBudWxsLFxuICAgIHllbGxvdzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBiZ0JsYWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnQmxhY2s7XG4gICAgfSxcbiAgICBiZ0JsdWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdCbHVlO1xuICAgIH0sXG4gICAgYmdDeWFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnQ3lhbjtcbiAgICB9LFxuICAgIGJnR3JlZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdHcmVlbjtcbiAgICB9LFxuICAgIGJnTWFnZW50YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ01hZ2VudGE7XG4gICAgfSxcbiAgICBiZ1JlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ1JlZDtcbiAgICB9LFxuICAgIGJnV2hpdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdXaGl0ZTtcbiAgICB9LFxuICAgIGJnWWVsbG93OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnWWVsbG93O1xuICAgIH0sXG4gICAgYmxhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmxhY2s7XG4gICAgfSxcbiAgICBibHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJsdWU7XG4gICAgfSxcbiAgICBib2xkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJvbGQ7XG4gICAgfSxcbiAgICBjeWFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGN5YW47XG4gICAgfSxcbiAgICBkaW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGltO1xuICAgIH0sXG4gICAgZ3JheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBncmF5O1xuICAgIH0sXG4gICAgZ3JlZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ3JlZW47XG4gICAgfSxcbiAgICBoaWRkZW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGlkZGVuO1xuICAgIH0sXG4gICAgaW52ZXJzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlO1xuICAgIH0sXG4gICAgaXRhbGljOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGl0YWxpYztcbiAgICB9LFxuICAgIG1hZ2VudGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbWFnZW50YTtcbiAgICB9LFxuICAgIHB1cnBsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwdXJwbGU7XG4gICAgfSxcbiAgICByZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVkO1xuICAgIH0sXG4gICAgcmVzZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzZXQ7XG4gICAgfSxcbiAgICBzdHJpa2V0aHJvdWdoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmlrZXRocm91Z2g7XG4gICAgfSxcbiAgICB1bmRlcmxpbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdW5kZXJsaW5lO1xuICAgIH0sXG4gICAgd2hpdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2hpdGU7XG4gICAgfSxcbiAgICB5ZWxsb3c6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4geWVsbG93O1xuICAgIH1cbn0pO1xudmFyIF9nbG9iYWxUaGlzO1xuY29uc3QgeyBlbnYsIHN0ZG91dCB9ID0gKChfZ2xvYmFsVGhpcyA9IGdsb2JhbFRoaXMpID09IG51bGwgPyB2b2lkIDAgOiBfZ2xvYmFsVGhpcy5wcm9jZXNzKSA/PyB7fTtcbmNvbnN0IGVuYWJsZWQgPSBlbnYgJiYgIWVudi5OT19DT0xPUiAmJiAoZW52LkZPUkNFX0NPTE9SIHx8IChzdGRvdXQgPT0gbnVsbCA/IHZvaWQgMCA6IHN0ZG91dC5pc1RUWSkgJiYgIWVudi5DSSAmJiBlbnYuVEVSTSAhPT0gJ2R1bWInKTtcbmNvbnN0IHJlcGxhY2VDbG9zZSA9IChzdHIsIGNsb3NlLCByZXBsYWNlLCBpbmRleCk9PntcbiAgICBjb25zdCBzdGFydCA9IHN0ci5zdWJzdHJpbmcoMCwgaW5kZXgpICsgcmVwbGFjZTtcbiAgICBjb25zdCBlbmQgPSBzdHIuc3Vic3RyaW5nKGluZGV4ICsgY2xvc2UubGVuZ3RoKTtcbiAgICBjb25zdCBuZXh0SW5kZXggPSBlbmQuaW5kZXhPZihjbG9zZSk7XG4gICAgcmV0dXJuIH5uZXh0SW5kZXggPyBzdGFydCArIHJlcGxhY2VDbG9zZShlbmQsIGNsb3NlLCByZXBsYWNlLCBuZXh0SW5kZXgpIDogc3RhcnQgKyBlbmQ7XG59O1xuY29uc3QgZm9ybWF0dGVyID0gKG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3Blbik9PntcbiAgICBpZiAoIWVuYWJsZWQpIHJldHVybiBTdHJpbmc7XG4gICAgcmV0dXJuIChpbnB1dCk9PntcbiAgICAgICAgY29uc3Qgc3RyaW5nID0gJycgKyBpbnB1dDtcbiAgICAgICAgY29uc3QgaW5kZXggPSBzdHJpbmcuaW5kZXhPZihjbG9zZSwgb3Blbi5sZW5ndGgpO1xuICAgICAgICByZXR1cm4gfmluZGV4ID8gb3BlbiArIHJlcGxhY2VDbG9zZShzdHJpbmcsIGNsb3NlLCByZXBsYWNlLCBpbmRleCkgKyBjbG9zZSA6IG9wZW4gKyBzdHJpbmcgKyBjbG9zZTtcbiAgICB9O1xufTtcbmNvbnN0IHJlc2V0ID0gZW5hYmxlZCA/IChzKT0+YFxceDFiWzBtJHtzfVxceDFiWzBtYCA6IFN0cmluZztcbmNvbnN0IGJvbGQgPSBmb3JtYXR0ZXIoJ1xceDFiWzFtJywgJ1xceDFiWzIybScsICdcXHgxYlsyMm1cXHgxYlsxbScpO1xuY29uc3QgZGltID0gZm9ybWF0dGVyKCdcXHgxYlsybScsICdcXHgxYlsyMm0nLCAnXFx4MWJbMjJtXFx4MWJbMm0nKTtcbmNvbnN0IGl0YWxpYyA9IGZvcm1hdHRlcignXFx4MWJbM20nLCAnXFx4MWJbMjNtJyk7XG5jb25zdCB1bmRlcmxpbmUgPSBmb3JtYXR0ZXIoJ1xceDFiWzRtJywgJ1xceDFiWzI0bScpO1xuY29uc3QgaW52ZXJzZSA9IGZvcm1hdHRlcignXFx4MWJbN20nLCAnXFx4MWJbMjdtJyk7XG5jb25zdCBoaWRkZW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzhtJywgJ1xceDFiWzI4bScpO1xuY29uc3Qgc3RyaWtldGhyb3VnaCA9IGZvcm1hdHRlcignXFx4MWJbOW0nLCAnXFx4MWJbMjltJyk7XG5jb25zdCBibGFjayA9IGZvcm1hdHRlcignXFx4MWJbMzBtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgcmVkID0gZm9ybWF0dGVyKCdcXHgxYlszMW0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBncmVlbiA9IGZvcm1hdHRlcignXFx4MWJbMzJtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgeWVsbG93ID0gZm9ybWF0dGVyKCdcXHgxYlszM20nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBibHVlID0gZm9ybWF0dGVyKCdcXHgxYlszNG0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBtYWdlbnRhID0gZm9ybWF0dGVyKCdcXHgxYlszNW0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBwdXJwbGUgPSBmb3JtYXR0ZXIoJ1xceDFiWzM4OzI7MTczOzEyNzsxNjhtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgY3lhbiA9IGZvcm1hdHRlcignXFx4MWJbMzZtJywgJ1xceDFiWzM5bScpO1xuY29uc3Qgd2hpdGUgPSBmb3JtYXR0ZXIoJ1xceDFiWzM3bScsICdcXHgxYlszOW0nKTtcbmNvbnN0IGdyYXkgPSBmb3JtYXR0ZXIoJ1xceDFiWzkwbScsICdcXHgxYlszOW0nKTtcbmNvbnN0IGJnQmxhY2sgPSBmb3JtYXR0ZXIoJ1xceDFiWzQwbScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnUmVkID0gZm9ybWF0dGVyKCdcXHgxYls0MW0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ0dyZWVuID0gZm9ybWF0dGVyKCdcXHgxYls0Mm0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ1llbGxvdyA9IGZvcm1hdHRlcignXFx4MWJbNDNtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdCbHVlID0gZm9ybWF0dGVyKCdcXHgxYls0NG0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ01hZ2VudGEgPSBmb3JtYXR0ZXIoJ1xceDFiWzQ1bScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnQ3lhbiA9IGZvcm1hdHRlcignXFx4MWJbNDZtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdXaGl0ZSA9IGZvcm1hdHRlcignXFx4MWJbNDdtJywgJ1xceDFiWzQ5bScpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1waWNvY29sb3JzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/picocolors.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFxzY2hlZHVsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhdExlYXN0T25lVGFzazogbnVsbCxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogbnVsbCxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IG51bGwsXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXRMZWFzdE9uZVRhc2s7XG4gICAgfSxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZUltbWVkaWF0ZTtcbiAgICB9LFxuICAgIHNjaGVkdWxlT25OZXh0VGljazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZU9uTmV4dFRpY2s7XG4gICAgfSxcbiAgICB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaztcbiAgICB9XG59KTtcbmNvbnN0IHNjaGVkdWxlT25OZXh0VGljayA9IChjYik9PntcbiAgICAvLyBXZSB1c2UgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigpIGhlcmUgc28gdGhhdCB0aGUgb3BlcmF0aW9uIGlzIHNjaGVkdWxlZCBhdFxuICAgIC8vIHRoZSBlbmQgb2YgdGhlIHByb21pc2Ugam9iIHF1ZXVlLCB3ZSB0aGVuIGFkZCBpdCB0byB0aGUgbmV4dCBwcm9jZXNzIHRpY2tcbiAgICAvLyB0byBlbnN1cmUgaXQncyBldmFsdWF0ZWQgYWZ0ZXJ3YXJkcy5cbiAgICAvL1xuICAgIC8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGF0YUxvYWRlciBpbnRlcmZhY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsL2RhdGFsb2FkZXIvYmxvYi9kMzM2YmQxNTI4MjY2NGUwYmU0YjRhNjU3Y2I3OTZmMDliYWZiYzZiL3NyYy9pbmRleC5qcyNMMjEzLUwyNTVcbiAgICAvL1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soY2IpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3Qgc2NoZWR1bGVJbW1lZGlhdGUgPSAoY2IpPT57XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEltbWVkaWF0ZShjYik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIGF0TGVhc3RPbmVUYXNrKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnNjaGVkdWxlSW1tZWRpYXRlKHJlc29sdmUpKTtcbn1cbmZ1bmN0aW9uIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRUaW1lb3V0KHIsIDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRJbW1lZGlhdGUocikpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NoZWR1bGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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 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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi91cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCwwQkFBMEIsbUJBQU8sQ0FBQyx1SEFBeUM7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcbGliXFx1cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0Z1bGxTdHJpbmdVcmw6IG51bGwsXG4gICAgcGFyc2VVcmw6IG51bGwsXG4gICAgc3RyaXBOZXh0UnNjVW5pb25RdWVyeTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0Z1bGxTdHJpbmdVcmw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNGdWxsU3RyaW5nVXJsO1xuICAgIH0sXG4gICAgcGFyc2VVcmw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGFyc2VVcmw7XG4gICAgfSxcbiAgICBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmlwTmV4dFJzY1VuaW9uUXVlcnk7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcm91dGVyaGVhZGVycyA9IHJlcXVpcmUoXCIuLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIik7XG5jb25zdCBEVU1NWV9PUklHSU4gPSAnaHR0cDovL24nO1xuZnVuY3Rpb24gaXNGdWxsU3RyaW5nVXJsKHVybCkge1xuICAgIHJldHVybiAvaHR0cHM/OlxcL1xcLy8udGVzdCh1cmwpO1xufVxuZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gICAgbGV0IHBhcnNlZCA9IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSBuZXcgVVJMKHVybCwgRFVNTVlfT1JJR0lOKTtcbiAgICB9IGNhdGNoICB7fVxuICAgIHJldHVybiBwYXJzZWQ7XG59XG5mdW5jdGlvbiBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5KHJlbGF0aXZlVXJsKSB7XG4gICAgY29uc3QgdXJsSW5zdGFuY2UgPSBuZXcgVVJMKHJlbGF0aXZlVXJsLCBEVU1NWV9PUklHSU4pO1xuICAgIHVybEluc3RhbmNlLnNlYXJjaFBhcmFtcy5kZWxldGUoX2FwcHJvdXRlcmhlYWRlcnMuTkVYVF9SU0NfVU5JT05fUVVFUlkpO1xuICAgIHJldHVybiB1cmxJbnN0YW5jZS5wYXRobmFtZSArIHVybEluc3RhbmNlLnNlYXJjaDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXJsLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/url.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 _clientedge = __webpack_require__(/*! react-server-dom-webpack/client.edge */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.edge.js\");\nconst _staticedge = __webpack_require__(/*! react-server-dom-webpack/static.edge */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static-edge.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 _constants = __webpack_require__(/*! ../../api/constants */ \"(rsc)/./node_modules/next/dist/api/constants.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nasync function collectSegmentData(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, _clientedge.createFromReadableStream)((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer), {\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, _staticedge.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 fullPageDataBuffer: fullPageDataBuffer,\n serverConsumerManifest: serverConsumerManifest,\n clientModules: clientModules,\n staleTime: staleTime,\n segmentTasks: segmentTasks,\n onCompletedProcessingRouteTree: onCompletedProcessingRouteTree\n }), clientModules, {\n signal: abortController.signal,\n onError () {\n // Ignore any errors. These would have already been reported when\n // we created the full page data.\n }\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({ 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, _clientedge.createFromReadableStream)(createUnclosingPrefetchStream((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer)), {\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 = await collectSegmentDataImpl(flightRouterState, buildId, seedData, fullPageDataBuffer, clientModules, serverConsumerManifest, '', '', 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}\nasync function collectSegmentDataImpl(route, buildId, seedData, fullPageDataBuffer, clientModules, serverConsumerManifest, segmentPathStr, accessToken, 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 childSegmentPathStr = segmentPathStr + '/' + encodeChildSegmentAsFilesystemSafePathname(parallelRouteKey, childSegment);\n // Create an access token for each child slot.\n const childAccessToken = await createSegmentAccessToken(segmentPathStr, parallelRouteKey);\n const childTree = await collectSegmentDataImpl(childRoute, buildId, childSeedData, fullPageDataBuffer, clientModules, serverConsumerManifest, childSegmentPathStr, childAccessToken, 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, segmentPathStr, accessToken, 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 // Metadata about the segment. Sent to the client as part of the\n // tree prefetch.\n const segment = route[0];\n const isRootLayout = route[4];\n return {\n path: segmentPathStr === '' ? '/' : segmentPathStr,\n token: accessToken,\n slots: slotMetadata,\n extra: [\n segment,\n isRootLayout === true\n ]\n };\n}\nasync function renderSegmentPrefetch(buildId, seedData, segmentPathStr, accessToken, 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, _staticedge.prerender)(segmentPrefetch, clientModules, {\n signal: abortController.signal,\n onError () {\n // Ignore any errors. These would have already been reported when\n // we created the full page data.\n }\n });\n const segmentBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(segmentStream);\n // Add the buffer to the result map.\n if (segmentPathStr === '') {\n return [\n '/',\n segmentBuffer\n ];\n } else {\n // The access token is appended to the end of the segment name. To request\n // a segment, the client sends a header like:\n //\n // Next-Router-Segment-Prefetch: /path/to/segment.accesstoken\n //\n // The segment path is provided by the tree prefetch, and the access\n // token is provided in the parent layout's data.\n const fullPath = `${segmentPathStr}.${accessToken}`;\n return [\n fullPath,\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, _staticedge.prerender)(rsc, clientModules, {\n signal: abortController.signal,\n onError () {}\n });\n return isPartial;\n}\n// TODO: Consider updating or unifying this encoding logic for segments with\n// createRouterCacheKey on the client, perhaps by including it as part of\n// the FlightRouterState. Theoretically the client should never have to do its\n// own encoding of segment keys; it can pass back whatever the server gave it.\nfunction encodeChildSegmentAsFilesystemSafePathname(parallelRouteKey, segment) {\n // Encode a child segment and its corresponding parallel route key to a\n // filesystem-safe pathname. The format is internal-only and can be somewhat\n // arbitrary as long as there are no collisions, because these will be used\n // as filenames during build and in the incremental cache. They will also\n // be sent by the client to request the corresponding segment, but they\n // do not need to be decodable. The server will merely look for a matching\n // file in the cache.\n //\n // For ease of debugging, the format looks roughly similar to the App Router\n // convention for defining routes in the source, but again the exact format is\n // not important as long as it's consistent between the client and server and\n // meets the above requirements.\n //\n // TODO: If the segment did not read from params, then we can omit the\n // params from the cache key. Need to track this during the prerender somehow.\n let safeSegmentValue;\n if (typeof segment === 'string') {\n safeSegmentValue = encodeParamValue(segment);\n } else {\n // Parameterized segments.\n const [paramName, paramValue, paramType] = segment;\n let paramPrefix;\n switch(paramType){\n case 'c':\n case 'ci':\n paramPrefix = `[...${paramName}]`;\n break;\n case 'oc':\n paramPrefix = `[[...${paramName}]]`;\n break;\n case 'd':\n case 'di':\n paramPrefix = `[${paramName}]`;\n break;\n default:\n throw new Error('Unknown dynamic param type');\n }\n safeSegmentValue = `${paramPrefix}-${encodeParamValue(paramValue)}`;\n }\n let result;\n if (parallelRouteKey === 'children') {\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes.\n result = `${safeSegmentValue}`;\n } else {\n result = `@${parallelRouteKey}/${safeSegmentValue}`;\n }\n return result;\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 encodeParamValue(segment) {\n if (segment === _constants.UNDERSCORE_NOT_FOUND_ROUTE) {\n // TODO: FlightRouterState encodes Not Found routes as \"/_not-found\". But\n // params typically don't include the leading slash. We should use a\n // different encoding to avoid this special case.\n return '_not-found';\n }\n if (simpleParamValueRegex.test(segment)) {\n return segment;\n }\n // If there are any unsafe characters, base64url-encode the entire segment.\n // We also add a $ prefix so it doesn't collide with the simple case.\n return '$' + Buffer.from(segment, 'utf-8').toString('base64url');\n}\nasync function createSegmentAccessToken(parentSegmentPathStr, parallelRouteKey) {\n // Create an access token that the client passes when requesting a segment.\n // The token is sent to the client as part of the parent layout's data.\n //\n // The token is hash of the parent segment path and the parallel route key. A\n // subtle detail here is that it does *not* include the value of the segment\n // itself — the token grants access to the parallel route slot, not the\n // particular segment that is rendered there.\n //\n // TODO: Because this only affects prefetches, this doesn't need to be secure.\n // It's just for obfuscation. But eventually we will use this technique when\n // performing dynamic navigations, to support auth checks in a layout that\n // conditionally renders its slots. At that point we'll need to add a salt.\n // Encode the inputs as Uint8Array\n const encoder = new TextEncoder();\n const data = encoder.encode(parentSegmentPathStr + parallelRouteKey);\n // Use the Web Crypto API to generate a SHA-256 hash.\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n // Convert the ArrayBuffer to a hex string\n const hashArray = new Uint8Array(hashBuffer);\n const hashHex = Array.from(hashArray).map((byte)=>byte.toString(16).padStart(2, '0')).join('');\n return hashHex;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NvbGxlY3Qtc2VnbWVudC1kYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysc0RBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLG9CQUFvQixtQkFBTyxDQUFDLDZIQUFzQztBQUNsRSxvQkFBb0IsbUJBQU8sQ0FBQywrSkFBc0M7QUFDbEUsOEJBQThCLG1CQUFPLENBQUMsOEhBQXlDO0FBQy9FLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHNCQUFzQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0Msb0hBQW9IO0FBQ3RKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHlCQUF5QjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLGVBQWUsR0FBRyxZQUFZO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxVQUFVO0FBQy9DO0FBQ0E7QUFDQSxzQ0FBc0MsVUFBVTtBQUNoRDtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsVUFBVTtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixZQUFZLEdBQUcsNkJBQTZCO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDLE1BQU07QUFDTixxQkFBcUIsaUJBQWlCLEdBQUcsaUJBQWlCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RDtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixjQUFjO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcYXBwLXJlbmRlclxcY29sbGVjdC1zZWdtZW50LWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjb2xsZWN0U2VnbWVudERhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbGxlY3RTZWdtZW50RGF0YTtcbiAgICB9XG59KTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX2NsaWVudGVkZ2UgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudC5lZGdlXCIpO1xuY29uc3QgX3N0YXRpY2VkZ2UgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3N0YXRpYy5lZGdlXCIpO1xuY29uc3QgX25vZGV3ZWJzdHJlYW1zaGVscGVyID0gcmVxdWlyZShcIi4uL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlclwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vYXBpL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RTZWdtZW50RGF0YShmdWxsUGFnZURhdGFCdWZmZXIsIHN0YWxlVGltZSwgY2xpZW50TW9kdWxlcywgc2VydmVyQ29uc3VtZXJNYW5pZmVzdCkge1xuICAgIC8vIFRyYXZlcnNlIHRoZSByb3V0ZXIgdHJlZSBhbmQgZ2VuZXJhdGUgYSBwcmVmZXRjaCByZXNwb25zZSBmb3IgZWFjaCBzZWdtZW50LlxuICAgIC8vIEEgbXV0YWJsZSBtYXAgdG8gY29sbGVjdCB0aGUgcmVzdWx0cyBhcyB3ZSB0cmF2ZXJzZSB0aGUgcm91dGUgdHJlZS5cbiAgICBjb25zdCByZXN1bHRNYXAgPSBuZXcgTWFwKCk7XG4gICAgLy8gQmVmb3JlIHdlIHN0YXJ0LCB3YXJtIHVwIHRoZSBtb2R1bGUgY2FjaGUgYnkgZGVjb2RpbmcgdGhlIHBhZ2UgZGF0YSBvbmNlLlxuICAgIC8vIFRoZW4gd2UgY2FuIGFzc3VtZSB0aGF0IGFueSByZW1haW5pbmcgYXN5bmMgdGFza3MgdGhhdCBvY2N1ciB0aGUgbmV4dCB0aW1lXG4gICAgLy8gYXJlIGR1ZSB0byBoYW5naW5nIHByb21pc2VzIGNhdXNlZCBieSBkeW5hbWljIGRhdGEgYWNjZXNzLiBOb3RlIHdlIG9ubHlcbiAgICAvLyBoYXZlIHRvIGRvIHRoaXMgb25jZSBwZXIgcGFnZSwgbm90IHBlciBpbmRpdmlkdWFsIHNlZ21lbnQuXG4gICAgLy9cbiAgICB0cnkge1xuICAgICAgICBhd2FpdCAoMCwgX2NsaWVudGVkZ2UuY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtKSgoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKGZ1bGxQYWdlRGF0YUJ1ZmZlciksIHtcbiAgICAgICAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3RcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLndhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKSgpO1xuICAgIH0gY2F0Y2ggIHt9XG4gICAgLy8gQ3JlYXRlIGFuIGFib3J0IGNvbnRyb2xsZXIgdGhhdCB3ZSdsbCB1c2UgdG8gc3RvcCB0aGUgc3RyZWFtLlxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWUgPSBhc3luYyAoKT0+e1xuICAgICAgICAvLyBTaW5jZSBhbGwgd2UncmUgZG9pbmcgaXMgZGVjb2RpbmcgYW5kIHJlLWVuY29kaW5nIGEgY2FjaGVkIHByZXJlbmRlciwgaWZcbiAgICAgICAgLy8gc2VyaWFsaXppbmcgdGhlIHN0cmVhbSB0YWtlcyBsb25nZXIgdGhhbiBhIG1pY3JvdGFzaywgaXQgbXVzdCBiZWNhdXNlIG9mXG4gICAgICAgIC8vIGhhbmdpbmcgcHJvbWlzZXMgY2F1c2VkIGJ5IGR5bmFtaWMgZGF0YS5cbiAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCk7XG4gICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIH07XG4gICAgLy8gR2VuZXJhdGUgYSBzdHJlYW0gZm9yIHRoZSByb3V0ZSB0cmVlIHByZWZldGNoLiBXaGlsZSB3ZSdyZSB3YWxraW5nIHRoZVxuICAgIC8vIHRyZWUsIHdlJ2xsIGFsc28gc3Bhd24gYWRkaXRpb25hbCB0YXNrcyB0byBnZW5lcmF0ZSB0aGUgc2VnbWVudCBwcmVmZXRjaGVzLlxuICAgIC8vIFRoZSBwcm9taXNlcyBmb3IgdGhlc2UgdGFza3MgYXJlIHB1c2hlZCB0byBhIG11dGFibGUgYXJyYXkgdGhhdCB3ZSB3aWxsXG4gICAgLy8gYXdhaXQgb25jZSB0aGUgcm91dGUgdHJlZSBpcyBmdWxseSByZW5kZXJlZC5cbiAgICBjb25zdCBzZWdtZW50VGFza3MgPSBbXTtcbiAgICBjb25zdCB7IHByZWx1ZGU6IHRyZWVTdHJlYW0gfSA9IGF3YWl0ICgwLCBfc3RhdGljZWRnZS5wcmVyZW5kZXIpKC8vIFJvb3RUcmVlUHJlZmV0Y2ggaXMgbm90IGEgdmFsaWQgcmV0dXJuIHR5cGUgZm9yIGEgUmVhY3QgY29tcG9uZW50LCBidXRcbiAgICAvLyB3ZSBuZWVkIHRvIHVzZSBhIGNvbXBvbmVudCBzbyB0aGF0IHdoZW4gd2UgZGVjb2RlIHRoZSBvcmlnaW5hbCBzdHJlYW1cbiAgICAvLyBpbnNpZGUgb2YgaXQsIHRoZSBzaWRlIGVmZmVjdHMgYXJlIHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgc3RyZWFtLlxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFByZWZldGNoVHJlZURhdGEsIHtcbiAgICAgICAgZnVsbFBhZ2VEYXRhQnVmZmVyOiBmdWxsUGFnZURhdGFCdWZmZXIsXG4gICAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3Q6IHNlcnZlckNvbnN1bWVyTWFuaWZlc3QsXG4gICAgICAgIGNsaWVudE1vZHVsZXM6IGNsaWVudE1vZHVsZXMsXG4gICAgICAgIHN0YWxlVGltZTogc3RhbGVUaW1lLFxuICAgICAgICBzZWdtZW50VGFza3M6IHNlZ21lbnRUYXNrcyxcbiAgICAgICAgb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlOiBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWVcbiAgICB9KSwgY2xpZW50TW9kdWxlcywge1xuICAgICAgICBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIG9uRXJyb3IgKCkge1xuICAgICAgICAvLyBJZ25vcmUgYW55IGVycm9ycy4gVGhlc2Ugd291bGQgaGF2ZSBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQgd2hlblxuICAgICAgICAvLyB3ZSBjcmVhdGVkIHRoZSBmdWxsIHBhZ2UgZGF0YS5cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIFdyaXRlIHRoZSByb3V0ZSB0cmVlIHRvIGEgc3BlY2lhbCBgL190cmVlYCBzZWdtZW50LlxuICAgIGNvbnN0IHRyZWVCdWZmZXIgPSBhd2FpdCAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvQnVmZmVyKSh0cmVlU3RyZWFtKTtcbiAgICByZXN1bHRNYXAuc2V0KCcvX3RyZWUnLCB0cmVlQnVmZmVyKTtcbiAgICAvLyBOb3cgdGhhdCB3ZSd2ZSBmaW5pc2hlZCByZW5kZXJpbmcgdGhlIHJvdXRlIHRyZWUsIGFsbCB0aGUgc2VnbWVudCB0YXNrc1xuICAgIC8vIHNob3VsZCBoYXZlIGJlZW4gc3Bhd25lZC4gQXdhaXQgdGhlbSBpbiBwYXJhbGxlbCBhbmQgd3JpdGUgdGhlIHNlZ21lbnRcbiAgICAvLyBwcmVmZXRjaGVzIHRvIHRoZSByZXN1bHQgbWFwLlxuICAgIGZvciAoY29uc3QgW3NlZ21lbnRQYXRoLCBidWZmZXJdIG9mIChhd2FpdCBQcm9taXNlLmFsbChzZWdtZW50VGFza3MpKSl7XG4gICAgICAgIHJlc3VsdE1hcC5zZXQoc2VnbWVudFBhdGgsIGJ1ZmZlcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRNYXA7XG59XG5hc3luYyBmdW5jdGlvbiBQcmVmZXRjaFRyZWVEYXRhKHsgZnVsbFBhZ2VEYXRhQnVmZmVyLCBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0LCBjbGllbnRNb2R1bGVzLCBzdGFsZVRpbWUsIHNlZ21lbnRUYXNrcywgb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlIH0pIHtcbiAgICAvLyBXZSdyZSBjdXJyZW50bHkgcmVuZGVyaW5nIGEgRmxpZ2h0IHJlc3BvbnNlIGZvciB0aGUgcm91dGUgdHJlZSBwcmVmZXRjaC5cbiAgICAvLyBJbnNpZGUgdGhpcyBjb21wb25lbnQsIGRlY29kZSB0aGUgRmxpZ2h0IHN0cmVhbSBmb3IgdGhlIHdob2xlIHBhZ2UuIFRoaXMgaXNcbiAgICAvLyBhIGhhY2sgdG8gdHJhbnNmZXIgdGhlIHNpZGUgZWZmZWN0cyBmcm9tIHRoZSBvcmlnaW5hbCBGbGlnaHQgc3RyZWFtIChlLmcuXG4gICAgLy8gRmxvYXQgcHJlbG9hZHMpIG9udG8gdGhlIEZsaWdodCBzdHJlYW0gZm9yIHRoZSB0cmVlIHByZWZldGNoLlxuICAgIC8vIFRPRE86IFJlYWN0IG5lZWRzIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLiBOZWVkZWQgZm9yIFNlcnZlciBBY3Rpb25zLCB0b28uXG4gICAgY29uc3QgaW5pdGlhbFJTQ1BheWxvYWQgPSBhd2FpdCAoMCwgX2NsaWVudGVkZ2UuY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtKShjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbSgoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKGZ1bGxQYWdlRGF0YUJ1ZmZlcikpLCB7XG4gICAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3RcbiAgICB9KTtcbiAgICBjb25zdCBidWlsZElkID0gaW5pdGlhbFJTQ1BheWxvYWQuYjtcbiAgICAvLyBGbGlnaHREYXRhUGF0aCBpcyBhbiB1bnNvdW5kIHR5cGUsIGhlbmNlIHRoZSBhZGRpdGlvbmFsIGNoZWNrcy5cbiAgICBjb25zdCBmbGlnaHREYXRhUGF0aHMgPSBpbml0aWFsUlNDUGF5bG9hZC5mO1xuICAgIGlmIChmbGlnaHREYXRhUGF0aHMubGVuZ3RoICE9PSAxICYmIGZsaWdodERhdGFQYXRoc1swXS5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignSW50ZXJuYWwgTmV4dC5qcyBlcnJvcjogSW5pdGlhbFJTQ1BheWxvYWQgZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkICcgKyAnc2hhcGUgZm9yIGEgcHJlcmVuZGVyZWQgcGFnZSBkdXJpbmcgc2VnbWVudCBwcmVmZXRjaCBnZW5lcmF0aW9uLicpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgZmxpZ2h0Um91dGVyU3RhdGUgPSBmbGlnaHREYXRhUGF0aHNbMF1bMF07XG4gICAgY29uc3Qgc2VlZERhdGEgPSBmbGlnaHREYXRhUGF0aHNbMF1bMV07XG4gICAgY29uc3QgaGVhZCA9IGZsaWdodERhdGFQYXRoc1swXVsyXTtcbiAgICAvLyBDb21wdXRlIHRoZSByb3V0ZSBtZXRhZGF0YSB0cmVlIGJ5IHRyYXZlcnNpbmcgdGhlIEZsaWdodFJvdXRlclN0YXRlLiBBcyB3ZVxuICAgIC8vIHdhbGsgdGhlIHRyZWUsIHdlIHdpbGwgYWxzbyBzcGF3biBhIHRhc2sgdG8gcHJvZHVjZSBhIHByZWZldGNoIHJlc3BvbnNlIGZvclxuICAgIC8vIGVhY2ggc2VnbWVudC5cbiAgICBjb25zdCB0cmVlID0gYXdhaXQgY29sbGVjdFNlZ21lbnREYXRhSW1wbChmbGlnaHRSb3V0ZXJTdGF0ZSwgYnVpbGRJZCwgc2VlZERhdGEsIGZ1bGxQYWdlRGF0YUJ1ZmZlciwgY2xpZW50TW9kdWxlcywgc2VydmVyQ29uc3VtZXJNYW5pZmVzdCwgJycsICcnLCBzZWdtZW50VGFza3MpO1xuICAgIGNvbnN0IGlzSGVhZFBhcnRpYWwgPSBhd2FpdCBpc1BhcnRpYWxSU0NEYXRhKGhlYWQsIGNsaWVudE1vZHVsZXMpO1xuICAgIC8vIE5vdGlmeSB0aGUgYWJvcnQgY29udHJvbGxlciB0aGF0IHdlJ3JlIGRvbmUgcHJvY2Vzc2luZyB0aGUgcm91dGUgdHJlZS5cbiAgICAvLyBBbnl0aGluZyBhc3luYyB0aGF0IGhhcHBlbnMgYWZ0ZXIgdGhpcyBwb2ludCBtdXN0IGJlIGR1ZSB0byBoYW5naW5nXG4gICAgLy8gcHJvbWlzZXMgaW4gdGhlIG9yaWdpbmFsIHN0cmVhbS5cbiAgICBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWUoKTtcbiAgICAvLyBSZW5kZXIgdGhlIHJvdXRlIHRyZWUgdG8gYSBzcGVjaWFsIGAvX3RyZWVgIHNlZ21lbnQuXG4gICAgY29uc3QgdHJlZVByZWZldGNoID0ge1xuICAgICAgICBidWlsZElkLFxuICAgICAgICB0cmVlLFxuICAgICAgICBoZWFkLFxuICAgICAgICBpc0hlYWRQYXJ0aWFsLFxuICAgICAgICBzdGFsZVRpbWVcbiAgICB9O1xuICAgIHJldHVybiB0cmVlUHJlZmV0Y2g7XG59XG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0U2VnbWVudERhdGFJbXBsKHJvdXRlLCBidWlsZElkLCBzZWVkRGF0YSwgZnVsbFBhZ2VEYXRhQnVmZmVyLCBjbGllbnRNb2R1bGVzLCBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0LCBzZWdtZW50UGF0aFN0ciwgYWNjZXNzVG9rZW4sIHNlZ21lbnRUYXNrcykge1xuICAgIC8vIE1ldGFkYXRhIGFib3V0IHRoZSBzZWdtZW50LiBTZW50IGFzIHBhcnQgb2YgdGhlIHRyZWUgcHJlZmV0Y2guIE51bGwgaWZcbiAgICAvLyB0aGVyZSBhcmUgbm8gY2hpbGRyZW4uXG4gICAgbGV0IHNsb3RNZXRhZGF0YSA9IG51bGw7XG4gICAgY29uc3QgY2hpbGRyZW4gPSByb3V0ZVsxXTtcbiAgICBjb25zdCBzZWVkRGF0YUNoaWxkcmVuID0gc2VlZERhdGEgIT09IG51bGwgPyBzZWVkRGF0YVsyXSA6IG51bGw7XG4gICAgZm9yKGNvbnN0IHBhcmFsbGVsUm91dGVLZXkgaW4gY2hpbGRyZW4pe1xuICAgICAgICBjb25zdCBjaGlsZFJvdXRlID0gY2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV07XG4gICAgICAgIGNvbnN0IGNoaWxkU2VnbWVudCA9IGNoaWxkUm91dGVbMF07XG4gICAgICAgIGNvbnN0IGNoaWxkU2VlZERhdGEgPSBzZWVkRGF0YUNoaWxkcmVuICE9PSBudWxsID8gc2VlZERhdGFDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNoaWxkU2VnbWVudFBhdGhTdHIgPSBzZWdtZW50UGF0aFN0ciArICcvJyArIGVuY29kZUNoaWxkU2VnbWVudEFzRmlsZXN5c3RlbVNhZmVQYXRobmFtZShwYXJhbGxlbFJvdXRlS2V5LCBjaGlsZFNlZ21lbnQpO1xuICAgICAgICAvLyBDcmVhdGUgYW4gYWNjZXNzIHRva2VuIGZvciBlYWNoIGNoaWxkIHNsb3QuXG4gICAgICAgIGNvbnN0IGNoaWxkQWNjZXNzVG9rZW4gPSBhd2FpdCBjcmVhdGVTZWdtZW50QWNjZXNzVG9rZW4oc2VnbWVudFBhdGhTdHIsIHBhcmFsbGVsUm91dGVLZXkpO1xuICAgICAgICBjb25zdCBjaGlsZFRyZWUgPSBhd2FpdCBjb2xsZWN0U2VnbWVudERhdGFJbXBsKGNoaWxkUm91dGUsIGJ1aWxkSWQsIGNoaWxkU2VlZERhdGEsIGZ1bGxQYWdlRGF0YUJ1ZmZlciwgY2xpZW50TW9kdWxlcywgc2VydmVyQ29uc3VtZXJNYW5pZmVzdCwgY2hpbGRTZWdtZW50UGF0aFN0ciwgY2hpbGRBY2Nlc3NUb2tlbiwgc2VnbWVudFRhc2tzKTtcbiAgICAgICAgaWYgKHNsb3RNZXRhZGF0YSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgc2xvdE1ldGFkYXRhID0ge307XG4gICAgICAgIH1cbiAgICAgICAgc2xvdE1ldGFkYXRhW3BhcmFsbGVsUm91dGVLZXldID0gY2hpbGRUcmVlO1xuICAgIH1cbiAgICBpZiAoc2VlZERhdGEgIT09IG51bGwpIHtcbiAgICAgICAgLy8gU3Bhd24gYSB0YXNrIHRvIHdyaXRlIHRoZSBzZWdtZW50IGRhdGEgdG8gYSBuZXcgRmxpZ2h0IHN0cmVhbS5cbiAgICAgICAgc2VnbWVudFRhc2tzLnB1c2goLy8gU2luY2Ugd2UncmUgYWxyZWFkeSBpbiB0aGUgbWlkZGxlIG9mIGEgcmVuZGVyLCB3YWl0IHVudGlsIGFmdGVyIHRoZVxuICAgICAgICAvLyBjdXJyZW50IHRhc2sgdG8gZXNjYXBlIHRoZSBjdXJyZW50IHJlbmRlcmluZyBjb250ZXh0LlxuICAgICAgICAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKS50aGVuKCgpPT5yZW5kZXJTZWdtZW50UHJlZmV0Y2goYnVpbGRJZCwgc2VlZERhdGEsIHNlZ21lbnRQYXRoU3RyLCBhY2Nlc3NUb2tlbiwgY2xpZW50TW9kdWxlcykpKTtcbiAgICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgc2VnbWVudCBkb2VzIG5vdCBoYXZlIGFueSBzZWVkIGRhdGEuIFNraXAgZ2VuZXJhdGluZyBhIHByZWZldGNoXG4gICAgLy8gcmVzcG9uc2UgZm9yIGl0LiBXZSdsbCBzdGlsbCBpbmNsdWRlIGl0IGluIHRoZSByb3V0ZSB0cmVlLCB0aG91Z2guXG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIGVuY29kZSBpbiB0aGUgcm91dGUgdHJlZSB3aGV0aGVyIGEgc2VnbWVudCBpcyBtaXNzaW5nXG4gICAgLy8gc28gd2UgZG9uJ3QgYXR0ZW1wdCB0byBmZXRjaCBpdCBmb3Igbm8gcmVhc29uLiBBcyBvZiBub3cgdGhpcyBzaG91bGRuJ3RcbiAgICAvLyBldmVyIGhhcHBlbiBpbiBwcmFjdGljZSwgdGhvdWdoLlxuICAgIH1cbiAgICAvLyBNZXRhZGF0YSBhYm91dCB0aGUgc2VnbWVudC4gU2VudCB0byB0aGUgY2xpZW50IGFzIHBhcnQgb2YgdGhlXG4gICAgLy8gdHJlZSBwcmVmZXRjaC5cbiAgICBjb25zdCBzZWdtZW50ID0gcm91dGVbMF07XG4gICAgY29uc3QgaXNSb290TGF5b3V0ID0gcm91dGVbNF07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogc2VnbWVudFBhdGhTdHIgPT09ICcnID8gJy8nIDogc2VnbWVudFBhdGhTdHIsXG4gICAgICAgIHRva2VuOiBhY2Nlc3NUb2tlbixcbiAgICAgICAgc2xvdHM6IHNsb3RNZXRhZGF0YSxcbiAgICAgICAgZXh0cmE6IFtcbiAgICAgICAgICAgIHNlZ21lbnQsXG4gICAgICAgICAgICBpc1Jvb3RMYXlvdXQgPT09IHRydWVcbiAgICAgICAgXVxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJTZWdtZW50UHJlZmV0Y2goYnVpbGRJZCwgc2VlZERhdGEsIHNlZ21lbnRQYXRoU3RyLCBhY2Nlc3NUb2tlbiwgY2xpZW50TW9kdWxlcykge1xuICAgIC8vIFJlbmRlciB0aGUgc2VnbWVudCBkYXRhIHRvIGEgc3RyZWFtLlxuICAgIC8vIEluIHRoZSBmdXR1cmUsIHRoaXMgaXMgd2hlcmUgd2UgY2FuIGluY2x1ZGUgYWRkaXRpb25hbCBtZXRhZGF0YSwgbGlrZSB0aGVcbiAgICAvLyBzdGFsZSB0aW1lIGFuZCBjYWNoZSB0YWdzLlxuICAgIGNvbnN0IHJzYyA9IHNlZWREYXRhWzFdO1xuICAgIGNvbnN0IGxvYWRpbmcgPSBzZWVkRGF0YVszXTtcbiAgICBjb25zdCBzZWdtZW50UHJlZmV0Y2ggPSB7XG4gICAgICAgIGJ1aWxkSWQsXG4gICAgICAgIHJzYyxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgaXNQYXJ0aWFsOiBhd2FpdCBpc1BhcnRpYWxSU0NEYXRhKHJzYywgY2xpZW50TW9kdWxlcylcbiAgICB9O1xuICAgIC8vIFNpbmNlIGFsbCB3ZSdyZSBkb2luZyBpcyBkZWNvZGluZyBhbmQgcmUtZW5jb2RpbmcgYSBjYWNoZWQgcHJlcmVuZGVyLCBpZlxuICAgIC8vIGl0IHRha2VzIGxvbmdlciB0aGFuIGEgbWljcm90YXNrLCBpdCBtdXN0IGJlY2F1c2Ugb2YgaGFuZ2luZyBwcm9taXNlc1xuICAgIC8vIGNhdXNlZCBieSBkeW5hbWljIGRhdGEuIEFib3J0IHRoZSBzdHJlYW0gYXQgdGhlIGVuZCBvZiB0aGUgY3VycmVudCB0YXNrLlxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKS50aGVuKCgpPT5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKSk7XG4gICAgY29uc3QgeyBwcmVsdWRlOiBzZWdtZW50U3RyZWFtIH0gPSBhd2FpdCAoMCwgX3N0YXRpY2VkZ2UucHJlcmVuZGVyKShzZWdtZW50UHJlZmV0Y2gsIGNsaWVudE1vZHVsZXMsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBvbkVycm9yICgpIHtcbiAgICAgICAgLy8gSWdub3JlIGFueSBlcnJvcnMuIFRoZXNlIHdvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIHJlcG9ydGVkIHdoZW5cbiAgICAgICAgLy8gd2UgY3JlYXRlZCB0aGUgZnVsbCBwYWdlIGRhdGEuXG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBzZWdtZW50QnVmZmVyID0gYXdhaXQgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Ub0J1ZmZlcikoc2VnbWVudFN0cmVhbSk7XG4gICAgLy8gQWRkIHRoZSBidWZmZXIgdG8gdGhlIHJlc3VsdCBtYXAuXG4gICAgaWYgKHNlZ21lbnRQYXRoU3RyID09PSAnJykge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJy8nLFxuICAgICAgICAgICAgc2VnbWVudEJ1ZmZlclxuICAgICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBhY2Nlc3MgdG9rZW4gaXMgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgc2VnbWVudCBuYW1lLiBUbyByZXF1ZXN0XG4gICAgICAgIC8vIGEgc2VnbWVudCwgdGhlIGNsaWVudCBzZW5kcyBhIGhlYWRlciBsaWtlOlxuICAgICAgICAvL1xuICAgICAgICAvLyAgIE5leHQtUm91dGVyLVNlZ21lbnQtUHJlZmV0Y2g6IC9wYXRoL3RvL3NlZ21lbnQuYWNjZXNzdG9rZW5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhlIHNlZ21lbnQgcGF0aCBpcyBwcm92aWRlZCBieSB0aGUgdHJlZSBwcmVmZXRjaCwgYW5kIHRoZSBhY2Nlc3NcbiAgICAgICAgLy8gdG9rZW4gaXMgcHJvdmlkZWQgaW4gdGhlIHBhcmVudCBsYXlvdXQncyBkYXRhLlxuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IGAke3NlZ21lbnRQYXRoU3RyfS4ke2FjY2Vzc1Rva2VufWA7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBmdWxsUGF0aCxcbiAgICAgICAgICAgIHNlZ21lbnRCdWZmZXJcbiAgICAgICAgXTtcbiAgICB9XG59XG5hc3luYyBmdW5jdGlvbiBpc1BhcnRpYWxSU0NEYXRhKHJzYywgY2xpZW50TW9kdWxlcykge1xuICAgIC8vIFdlIGNhbiBkZXRlcm1pbmUgaWYgYSBzZWdtZW50IGNvbnRhaW5zIG9ubHkgcGFydGlhbCBkYXRhIGlmIGl0IHRha2VzIGxvbmdlclxuICAgIC8vIHRoYW4gYSB0YXNrIHRvIGVuY29kZSwgYmVjYXVzZSBkeW5hbWljIGRhdGEgaXMgZW5jb2RlZCBhcyBhbiBpbmZpbml0ZVxuICAgIC8vIHByb21pc2UuIFdlIG11c3QgZG8gdGhpcyBpbiBhIHNlcGFyYXRlIEZsaWdodCBwcmVyZW5kZXIgZnJvbSB0aGUgb25lIHRoYXRcbiAgICAvLyBhY3R1YWxseSBnZW5lcmF0ZXMgdGhlIHByZWZldGNoIHN0cmVhbSBiZWNhdXNlIHdlIG5lZWQgdG8gaW5jbHVkZVxuICAgIC8vIGBpc1BhcnRpYWxgIGluIHRoZSBzdHJlYW0gaXRzZWxmLlxuICAgIGxldCBpc1BhcnRpYWwgPSBmYWxzZTtcbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCkudGhlbigoKT0+e1xuICAgICAgICAvLyBJZiB3ZSBoYXZlbid0IHlldCBmaW5pc2hlZCB0aGUgb3V0ZXIgdGFzaywgdGhlbiBpdCBtdXN0IGJlIGJlY2F1c2Ugd2VcbiAgICAgICAgLy8gYWNjZXNzZWQgZHluYW1pYyBkYXRhLlxuICAgICAgICBpc1BhcnRpYWwgPSB0cnVlO1xuICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9KTtcbiAgICBhd2FpdCAoMCwgX3N0YXRpY2VkZ2UucHJlcmVuZGVyKShyc2MsIGNsaWVudE1vZHVsZXMsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBvbkVycm9yICgpIHt9XG4gICAgfSk7XG4gICAgcmV0dXJuIGlzUGFydGlhbDtcbn1cbi8vIFRPRE86IENvbnNpZGVyIHVwZGF0aW5nIG9yIHVuaWZ5aW5nIHRoaXMgZW5jb2RpbmcgbG9naWMgZm9yIHNlZ21lbnRzIHdpdGhcbi8vIGNyZWF0ZVJvdXRlckNhY2hlS2V5IG9uIHRoZSBjbGllbnQsIHBlcmhhcHMgYnkgaW5jbHVkaW5nIGl0IGFzIHBhcnQgb2Zcbi8vIHRoZSBGbGlnaHRSb3V0ZXJTdGF0ZS4gVGhlb3JldGljYWxseSB0aGUgY2xpZW50IHNob3VsZCBuZXZlciBoYXZlIHRvIGRvIGl0c1xuLy8gb3duIGVuY29kaW5nIG9mIHNlZ21lbnQga2V5czsgaXQgY2FuIHBhc3MgYmFjayB3aGF0ZXZlciB0aGUgc2VydmVyIGdhdmUgaXQuXG5mdW5jdGlvbiBlbmNvZGVDaGlsZFNlZ21lbnRBc0ZpbGVzeXN0ZW1TYWZlUGF0aG5hbWUocGFyYWxsZWxSb3V0ZUtleSwgc2VnbWVudCkge1xuICAgIC8vIEVuY29kZSBhIGNoaWxkIHNlZ21lbnQgYW5kIGl0cyBjb3JyZXNwb25kaW5nIHBhcmFsbGVsIHJvdXRlIGtleSB0byBhXG4gICAgLy8gZmlsZXN5c3RlbS1zYWZlIHBhdGhuYW1lLiBUaGUgZm9ybWF0IGlzIGludGVybmFsLW9ubHkgYW5kIGNhbiBiZSBzb21ld2hhdFxuICAgIC8vIGFyYml0cmFyeSBhcyBsb25nIGFzIHRoZXJlIGFyZSBubyBjb2xsaXNpb25zLCBiZWNhdXNlIHRoZXNlIHdpbGwgYmUgdXNlZFxuICAgIC8vIGFzIGZpbGVuYW1lcyBkdXJpbmcgYnVpbGQgYW5kIGluIHRoZSBpbmNyZW1lbnRhbCBjYWNoZS4gVGhleSB3aWxsIGFsc29cbiAgICAvLyBiZSBzZW50IGJ5IHRoZSBjbGllbnQgdG8gcmVxdWVzdCB0aGUgY29ycmVzcG9uZGluZyBzZWdtZW50LCBidXQgdGhleVxuICAgIC8vIGRvIG5vdCBuZWVkIHRvIGJlIGRlY29kYWJsZS4gVGhlIHNlcnZlciB3aWxsIG1lcmVseSBsb29rIGZvciBhIG1hdGNoaW5nXG4gICAgLy8gZmlsZSBpbiB0aGUgY2FjaGUuXG4gICAgLy9cbiAgICAvLyBGb3IgZWFzZSBvZiBkZWJ1Z2dpbmcsIHRoZSBmb3JtYXQgbG9va3Mgcm91Z2hseSBzaW1pbGFyIHRvIHRoZSBBcHAgUm91dGVyXG4gICAgLy8gY29udmVudGlvbiBmb3IgZGVmaW5pbmcgcm91dGVzIGluIHRoZSBzb3VyY2UsIGJ1dCBhZ2FpbiB0aGUgZXhhY3QgZm9ybWF0IGlzXG4gICAgLy8gbm90IGltcG9ydGFudCBhcyBsb25nIGFzIGl0J3MgY29uc2lzdGVudCBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBhbmRcbiAgICAvLyBtZWV0cyB0aGUgYWJvdmUgcmVxdWlyZW1lbnRzLlxuICAgIC8vXG4gICAgLy8gVE9ETzogSWYgdGhlIHNlZ21lbnQgZGlkIG5vdCByZWFkIGZyb20gcGFyYW1zLCB0aGVuIHdlIGNhbiBvbWl0IHRoZVxuICAgIC8vIHBhcmFtcyBmcm9tIHRoZSBjYWNoZSBrZXkuIE5lZWQgdG8gdHJhY2sgdGhpcyBkdXJpbmcgdGhlIHByZXJlbmRlciBzb21laG93LlxuICAgIGxldCBzYWZlU2VnbWVudFZhbHVlO1xuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgc2FmZVNlZ21lbnRWYWx1ZSA9IGVuY29kZVBhcmFtVmFsdWUoc2VnbWVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUGFyYW1ldGVyaXplZCBzZWdtZW50cy5cbiAgICAgICAgY29uc3QgW3BhcmFtTmFtZSwgcGFyYW1WYWx1ZSwgcGFyYW1UeXBlXSA9IHNlZ21lbnQ7XG4gICAgICAgIGxldCBwYXJhbVByZWZpeDtcbiAgICAgICAgc3dpdGNoKHBhcmFtVHlwZSl7XG4gICAgICAgICAgICBjYXNlICdjJzpcbiAgICAgICAgICAgIGNhc2UgJ2NpJzpcbiAgICAgICAgICAgICAgICBwYXJhbVByZWZpeCA9IGBbLi4uJHtwYXJhbU5hbWV9XWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvYyc6XG4gICAgICAgICAgICAgICAgcGFyYW1QcmVmaXggPSBgW1suLi4ke3BhcmFtTmFtZX1dXWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgIGNhc2UgJ2RpJzpcbiAgICAgICAgICAgICAgICBwYXJhbVByZWZpeCA9IGBbJHtwYXJhbU5hbWV9XWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBkeW5hbWljIHBhcmFtIHR5cGUnKTtcbiAgICAgICAgfVxuICAgICAgICBzYWZlU2VnbWVudFZhbHVlID0gYCR7cGFyYW1QcmVmaXh9LSR7ZW5jb2RlUGFyYW1WYWx1ZShwYXJhbVZhbHVlKX1gO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0O1xuICAgIGlmIChwYXJhbGxlbFJvdXRlS2V5ID09PSAnY2hpbGRyZW4nKSB7XG4gICAgICAgIC8vIE9taXQgdGhlIHBhcmFsbGVsIHJvdXRlIGtleSBmb3IgY2hpbGRyZW4sIHNpbmNlIHRoaXMgaXMgdGhlIG1vc3RcbiAgICAgICAgLy8gY29tbW9uIGNhc2UuIFNhdmVzIHNvbWUgYnl0ZXMuXG4gICAgICAgIHJlc3VsdCA9IGAke3NhZmVTZWdtZW50VmFsdWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBgQCR7cGFyYWxsZWxSb3V0ZUtleX0vJHtzYWZlU2VnbWVudFZhbHVlfWA7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyBEZWZpbmUgYSByZWdleCBwYXR0ZXJuIHRvIG1hdGNoIHRoZSBtb3N0IGNvbW1vbiBjaGFyYWN0ZXJzIGZvdW5kIGluIGEgcm91dGVcbi8vIHBhcmFtLiBJdCBleGNsdWRlcyBhbnl0aGluZyB0aGF0IG1pZ2h0IG5vdCBiZSBjcm9zcy1wbGF0Zm9ybSBmaWxlc3lzdGVtXG4vLyBjb21wYXRpYmxlLCBsaWtlIHwuIEl0IGRvZXMgbm90IG5lZWQgdG8gYmUgcHJlY2lzZSBiZWNhdXNlIHRoZSBmYWxsYmFjayBpcyB0b1xuLy8ganVzdCBiYXNlNjR1cmwtZW5jb2RlIHRoZSB3aG9sZSBwYXJhbWV0ZXIsIHdoaWNoIGlzIGZpbmU7IHdlIGp1c3QgZG9uJ3QgZG8gaXRcbi8vIGJ5IGRlZmF1bHQgZm9yIGNvbXBhY3RuZXNzLCBhbmQgZm9yIGVhc2llciBkZWJ1Z2dpbmcuXG5jb25zdCBzaW1wbGVQYXJhbVZhbHVlUmVnZXggPSAvXlthLXpBLVowLTlcXC1fQF0rJC87XG5mdW5jdGlvbiBlbmNvZGVQYXJhbVZhbHVlKHNlZ21lbnQpIHtcbiAgICBpZiAoc2VnbWVudCA9PT0gX2NvbnN0YW50cy5VTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURSkge1xuICAgICAgICAvLyBUT0RPOiBGbGlnaHRSb3V0ZXJTdGF0ZSBlbmNvZGVzIE5vdCBGb3VuZCByb3V0ZXMgYXMgXCIvX25vdC1mb3VuZFwiLiBCdXRcbiAgICAgICAgLy8gcGFyYW1zIHR5cGljYWxseSBkb24ndCBpbmNsdWRlIHRoZSBsZWFkaW5nIHNsYXNoLiBXZSBzaG91bGQgdXNlIGFcbiAgICAgICAgLy8gZGlmZmVyZW50IGVuY29kaW5nIHRvIGF2b2lkIHRoaXMgc3BlY2lhbCBjYXNlLlxuICAgICAgICByZXR1cm4gJ19ub3QtZm91bmQnO1xuICAgIH1cbiAgICBpZiAoc2ltcGxlUGFyYW1WYWx1ZVJlZ2V4LnRlc3Qoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHNlZ21lbnQ7XG4gICAgfVxuICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgdW5zYWZlIGNoYXJhY3RlcnMsIGJhc2U2NHVybC1lbmNvZGUgdGhlIGVudGlyZSBzZWdtZW50LlxuICAgIC8vIFdlIGFsc28gYWRkIGEgJCBwcmVmaXggc28gaXQgZG9lc24ndCBjb2xsaWRlIHdpdGggdGhlIHNpbXBsZSBjYXNlLlxuICAgIHJldHVybiAnJCcgKyBCdWZmZXIuZnJvbShzZWdtZW50LCAndXRmLTgnKS50b1N0cmluZygnYmFzZTY0dXJsJyk7XG59XG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTZWdtZW50QWNjZXNzVG9rZW4ocGFyZW50U2VnbWVudFBhdGhTdHIsIHBhcmFsbGVsUm91dGVLZXkpIHtcbiAgICAvLyBDcmVhdGUgYW4gYWNjZXNzIHRva2VuIHRoYXQgdGhlIGNsaWVudCBwYXNzZXMgd2hlbiByZXF1ZXN0aW5nIGEgc2VnbWVudC5cbiAgICAvLyBUaGUgdG9rZW4gaXMgc2VudCB0byB0aGUgY2xpZW50IGFzIHBhcnQgb2YgdGhlIHBhcmVudCBsYXlvdXQncyBkYXRhLlxuICAgIC8vXG4gICAgLy8gVGhlIHRva2VuIGlzIGhhc2ggb2YgdGhlIHBhcmVudCBzZWdtZW50IHBhdGggYW5kIHRoZSBwYXJhbGxlbCByb3V0ZSBrZXkuIEFcbiAgICAvLyBzdWJ0bGUgZGV0YWlsIGhlcmUgaXMgdGhhdCBpdCBkb2VzICpub3QqIGluY2x1ZGUgdGhlIHZhbHVlIG9mIHRoZSBzZWdtZW50XG4gICAgLy8gaXRzZWxmIOKAlCB0aGUgdG9rZW4gZ3JhbnRzIGFjY2VzcyB0byB0aGUgcGFyYWxsZWwgcm91dGUgc2xvdCwgbm90IHRoZVxuICAgIC8vIHBhcnRpY3VsYXIgc2VnbWVudCB0aGF0IGlzIHJlbmRlcmVkIHRoZXJlLlxuICAgIC8vXG4gICAgLy8gVE9ETzogQmVjYXVzZSB0aGlzIG9ubHkgYWZmZWN0cyBwcmVmZXRjaGVzLCB0aGlzIGRvZXNuJ3QgbmVlZCB0byBiZSBzZWN1cmUuXG4gICAgLy8gSXQncyBqdXN0IGZvciBvYmZ1c2NhdGlvbi4gQnV0IGV2ZW50dWFsbHkgd2Ugd2lsbCB1c2UgdGhpcyB0ZWNobmlxdWUgd2hlblxuICAgIC8vIHBlcmZvcm1pbmcgZHluYW1pYyBuYXZpZ2F0aW9ucywgdG8gc3VwcG9ydCBhdXRoIGNoZWNrcyBpbiBhIGxheW91dCB0aGF0XG4gICAgLy8gY29uZGl0aW9uYWxseSByZW5kZXJzIGl0cyBzbG90cy4gQXQgdGhhdCBwb2ludCB3ZSdsbCBuZWVkIHRvIGFkZCBhIHNhbHQuXG4gICAgLy8gRW5jb2RlIHRoZSBpbnB1dHMgYXMgVWludDhBcnJheVxuICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2Rlci5lbmNvZGUocGFyZW50U2VnbWVudFBhdGhTdHIgKyBwYXJhbGxlbFJvdXRlS2V5KTtcbiAgICAvLyBVc2UgdGhlIFdlYiBDcnlwdG8gQVBJIHRvIGdlbmVyYXRlIGEgU0hBLTI1NiBoYXNoLlxuICAgIGNvbnN0IGhhc2hCdWZmZXIgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGRhdGEpO1xuICAgIC8vIENvbnZlcnQgdGhlIEFycmF5QnVmZmVyIHRvIGEgaGV4IHN0cmluZ1xuICAgIGNvbnN0IGhhc2hBcnJheSA9IG5ldyBVaW50OEFycmF5KGhhc2hCdWZmZXIpO1xuICAgIGNvbnN0IGhhc2hIZXggPSBBcnJheS5mcm9tKGhhc2hBcnJheSkubWFwKChieXRlKT0+Ynl0ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gICAgcmV0dXJuIGhhc2hIZXg7XG59XG5mdW5jdGlvbiBjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbShvcmlnaW5hbEZsaWdodFN0cmVhbSkge1xuICAgIC8vIFdoZW4gUFBSIGlzIGVuYWJsZWQsIHByZWZldGNoIHN0cmVhbXMgbWF5IGNvbnRhaW4gcmVmZXJlbmNlcyB0aGF0IG5ldmVyXG4gICAgLy8gcmVzb2x2ZSwgYmVjYXVzZSB0aGF0J3MgaG93IHdlIGVuY29kZSBkeW5hbWljIGRhdGEgYWNjZXNzLiBJbiB0aGUgZGVjb2RlZFxuICAgIC8vIG9iamVjdCByZXR1cm5lZCBieSB0aGUgRmxpZ2h0IGNsaWVudCwgdGhlc2UgYXJlIHJlaWZpZWQgaW50byBoYW5naW5nXG4gICAgLy8gcHJvbWlzZXMgdGhhdCBzdXNwZW5kIGR1cmluZyByZW5kZXIsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IHdoYXQgd2Ugd2FudC5cbiAgICAvLyBUaGUgVUkgcmVzb2x2ZXMgd2hlbiBpdCBzd2l0Y2hlcyB0byB0aGUgZHluYW1pYyBkYXRhIHN0cmVhbVxuICAgIC8vICh2aWEgdXNlRGVmZXJyZWRWYWx1ZShkeW5hbWljLCBzdGF0aWMpKS5cbiAgICAvL1xuICAgIC8vIEhvd2V2ZXIsIHRoZSBGbGlnaHQgaW1wbGVtZW50YXRpb24gY3VycmVudGx5IGVycm9ycyBpZiB0aGUgc2VydmVyIGNsb3Nlc1xuICAgIC8vIHRoZSByZXNwb25zZSBiZWZvcmUgYWxsIHRoZSByZWZlcmVuY2VzIGFyZSByZXNvbHZlZC4gQXMgYSBjaGVhdCB0byB3b3JrXG4gICAgLy8gYXJvdW5kIHRoaXMsIHdlIHdyYXAgdGhlIG9yaWdpbmFsIHN0cmVhbSBpbiBhIG5ldyBzdHJlYW0gdGhhdCBuZXZlciBjbG9zZXMsXG4gICAgLy8gYW5kIHRoZXJlZm9yZSBkb2Vzbid0IGVycm9yLlxuICAgIGNvbnN0IHJlYWRlciA9IG9yaWdpbmFsRmxpZ2h0U3RyZWFtLmdldFJlYWRlcigpO1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBhc3luYyBwdWxsIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICB3aGlsZSh0cnVlKXtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICAgICAgICAgIGlmICghZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIHRvIHRoZSB0YXJnZXQgc3RyZWFtIGFuZCBrZWVwIGNvbnN1bWluZyB0aGUgRmxpZ2h0IHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIHNlcnZlci5cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRoZSBzZXJ2ZXIgc3RyZWFtIGhhcyBjbG9zZWQuIEV4aXQsIGJ1dCBpbnRlbnRpb25hbGx5IGRvIG5vdCBjbG9zZVxuICAgICAgICAgICAgICAgIC8vIHRoZSB0YXJnZXQgc3RyZWFtLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb2xsZWN0LXNlZ21lbnQtZGF0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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/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 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 createPostponedAbortSignal: function() {\n return createPostponedAbortSignal;\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 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 trackFallbackParamAccessed: function() {\n return trackFallbackParamAccessed;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\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 */ \"../app-render/work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _metadataconstants = __webpack_require__(/*! ../../lib/metadata/metadata-constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.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 syncDynamicExpression: undefined,\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspendedDynamic: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasSyncDynamicErrors: 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 if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\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 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`);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender-ppr') {\n postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = 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`);\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n } else if ( true && workUnitStore && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\nfunction trackFallbackParamAccessed(store, expression) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!prerenderStore || prerenderStore.type !== 'prerender-ppr') return;\n postponeWithTracking(store.route, expression, prerenderStore.dynamicTracking);\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 = 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`);\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(_store, workUnitStore) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n }\n if ( true && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\n// Despite it's name we don't actually abort unless we have a controller to call abort on\n// There are times when we let a prerender run long to discover caches where we want the semantics\n// of tracking dynamic access without terminating the prerender early\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 if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicExpression = expression;\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n return abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\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 dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicExpression = expression;\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n if (prerenderStore.validating === true) {\n // We always log Request Access in dev at the point of calling the function\n // So we mark the dynamic validation as not requiring it to be printed\n dynamicTracking.syncDynamicLogged = true;\n }\n }\n }\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\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 new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js');\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = new Error(message);\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 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`);\n }\n}\nfunction createPostponedAbortSignal(reason) {\n assertPostpone();\n const controller = new AbortController();\n // We get our hands on a postpone instance by calling postpone and catching the throw\n try {\n _react.default.unstable_postpone(reason);\n } catch (x) {\n controller.abort(x);\n }\n return controller.signal;\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 if (typeof window === 'undefined') {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore && workStore.isStaticGeneration && workStore.fallbackRouteParams && workStore.fallbackRouteParams.size > 0) {\n // There are fallback route params, we should track these as dynamic\n // accesses.\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n // We're prerendering with dynamicIO or PPR or both\n if (workUnitStore.type === 'prerender') {\n // We are in a prerender with dynamicIO semantics\n // We are going to 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, expression));\n } else if (workUnitStore.type === 'prerender-ppr') {\n // We're prerendering with PPR\n postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n throwToInterruptStaticGeneration(expression, workStore, workUnitStore);\n }\n }\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(route, componentStack, dynamicValidation, serverDynamic, 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 (hasSuspenseRegex.test(componentStack)) {\n dynamicValidation.hasSuspendedDynamic = true;\n return;\n } else if (serverDynamic.syncDynamicErrorWithStack || clientDynamic.syncDynamicErrorWithStack) {\n dynamicValidation.hasSyncDynamicErrors = true;\n return;\n } else {\n const message = `Route \"${route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. We don't have the exact line number added to error messages yet but you can see which component in the stack below. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\nfunction createErrorWithComponentStack(message, componentStack) {\n const error = new Error(message);\n error.stack = 'Error: ' + message + componentStack;\n return error;\n}\nfunction throwIfDisallowedDynamic(route, dynamicValidation, serverDynamic, clientDynamic) {\n let syncError;\n let syncExpression;\n let syncLogged;\n if (serverDynamic.syncDynamicErrorWithStack) {\n syncError = serverDynamic.syncDynamicErrorWithStack;\n syncExpression = serverDynamic.syncDynamicExpression;\n syncLogged = serverDynamic.syncDynamicLogged === true;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n syncError = clientDynamic.syncDynamicErrorWithStack;\n syncExpression = clientDynamic.syncDynamicExpression;\n syncLogged = clientDynamic.syncDynamicLogged === true;\n } else {\n syncError = null;\n syncExpression = undefined;\n syncLogged = false;\n }\n if (dynamicValidation.hasSyncDynamicErrors && syncError) {\n if (!syncLogged) {\n // In dev we already log errors about sync dynamic access. But during builds we need to ensure\n // the offending sync error is logged before we exit the build\n console.error(syncError);\n }\n // The actual error should have been logged when the sync access ocurred\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length) {\n for(let i = 0; i < dynamicErrors.length; i++){\n console.error(dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (!dynamicValidation.hasSuspendedDynamic) {\n if (dynamicValidation.hasDynamicMetadata) {\n if (syncError) {\n console.error(syncError);\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateMetadata\\` that could not finish rendering before ${syncExpression} was used. Follow the instructions in the error for this expression to resolve.`);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or external data (\\`fetch(...)\\`, etc...) but the rest of the route was static or only used cached data (\\`\"use cache\"\\`). If you expected this route to be prerenderable update your \\`generateMetadata\\` to not use Request data and only use cached external data. Otherwise, add \\`await connection()\\` somewhere within this route to indicate explicitly it should not be prerendered.`);\n } else if (dynamicValidation.hasDynamicViewport) {\n if (syncError) {\n console.error(syncError);\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateViewport\\` that could not finish rendering before ${syncExpression} was used. Follow the instructions in the error for this expression to resolve.`);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route \"${route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or external data (\\`fetch(...)\\`, etc...) but the rest of the route was static or only used cached data (\\`\"use cache\"\\`). If you expected this route to be prerenderable update your \\`generateViewport\\` to not use Request data and only use cached external data. Otherwise, add \\`await connection()\\` somewhere within this route to indicate explicitly it should not be prerendered.`);\n }\n }\n}\n\n//# sourceMappingURL=dynamic-rendering.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBd0JMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNEQUFzRCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3JFLDRCQUE0QixtQkFBTyxDQUFDLDhIQUE4QztBQUNsRixpQ0FBaUMsbUJBQU8sQ0FBQyx3SUFBbUQ7QUFDNUYsc0NBQXNDLG1CQUFPLENBQUMsOEVBQW9DO0FBQ2xGLGtD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TjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDLE1BQU07QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsMEJBQTBCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRkFBbUYsTUFBTSxzRUFBc0UsZ0JBQWdCO0FBQy9LO0FBQ0EsK0VBQStFLE1BQU07QUFDckYsVUFBVTtBQUNWO0FBQ0E7QUFDQSxtRkFBbUYsTUFBTSxzRUFBc0UsZ0JBQWdCO0FBQy9LO0FBQ0EsK0VBQStFLE1BQU07QUFDckY7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGFwcC1yZW5kZXJcXGR5bmFtaWMtcmVuZGVyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGZ1bmN0aW9ucyBwcm92aWRlZCBieSB0aGlzIG1vZHVsZSBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGFib3V0IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb2RlIHNvIHRoYXQgTmV4dC5qcyBjYW4gbWFrZSBkZWNpc2lvbnMgb24gaG93IHRvIGhhbmRsZVxuICogdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGluIGRpZmZlcmVudCByZW5kZXJpbmcgbW9kZXMgc3VjaCBhcyBwcmUtcmVuZGVyaW5nLCByZXN1bWluZywgYW5kIFNTUi5cbiAqXG4gKiBUb2RheSBOZXh0LmpzIHRyZWF0cyBhbGwgY29kZSBhcyBwb3RlbnRpYWxseSBzdGF0aWMuIENlcnRhaW4gQVBJcyBtYXkgb25seSBtYWtlIHNlbnNlIHdoZW4gZHluYW1pY2FsbHkgcmVuZGVyaW5nLlxuICogVHJhZGl0aW9uYWxseSB0aGlzIG1lYW50IGRlb3B0aW5nIHRoZSBlbnRpcmUgcmVuZGVyIHRvIGR5bmFtaWMgaG93ZXZlciB3aXRoIFBQUiB3ZSBjYW4gbm93IGRlb3B0IHBhcnRzXG4gKiBvZiBhIFJlYWN0IHRyZWUgYXMgZHluYW1pYyB3aGlsZSBzdGlsbCBrZWVwaW5nIG90aGVyIHBhcnRzIHN0YXRpYy4gVGhlcmUgYXJlIHJlYWxseSB0d28gZGlmZmVyZW50IGtpbmRzIG9mXG4gKiBEeW5hbWljIGluZGljYXRpb25zLlxuICpcbiAqIFRoZSBmaXJzdCBpcyBzaW1wbHkgYW4gaW50ZW50aW9uIHRvIGJlIGR5bmFtaWMuIHVuc3RhYmxlX25vU3RvcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHdoZXJlXG4gKiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb2RlIHNpbXBseSBkZWNsYXJlcyB0aGF0IHRoZSBjdXJyZW50IHNjb3BlIGlzIGR5bmFtaWMgYnV0IGlmIHlvdSB1c2UgaXRcbiAqIGluc2lkZSB1bnN0YWJsZV9jYWNoZSBpdCBjYW4gc3RpbGwgYmUgY2FjaGVkLiBUaGlzIHR5cGUgb2YgaW5kaWNhdGlvbiBjYW4gYmUgcmVtb3ZlZCBpZiB3ZSBldmVyXG4gKiBtYWtlIHRoZSBkZWZhdWx0IGR5bmFtaWMgdG8gYmVnaW4gd2l0aCBiZWNhdXNlIHRoZSBvbmx5IHdheSB5b3Ugd291bGQgZXZlciBiZSBzdGF0aWMgaXMgaW5zaWRlXG4gKiBhIGNhY2hlIHNjb3BlIHdoaWNoIHRoaXMgaW5kaWNhdGlvbiBkb2VzIG5vdCBhZmZlY3QuXG4gKlxuICogVGhlIHNlY29uZCBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgYSBkeW5hbWljIGRhdGEgc291cmNlIHdhcyByZWFkLiBUaGlzIGlzIGEgc3Ryb25nZXIgZm9ybSBvZiBkeW5hbWljXG4gKiBiZWNhdXNlIGl0IG1lYW5zIHRoYXQgaXQgaXMgaW5hcHByb3ByaWF0ZSB0byBjYWNoZSB0aGlzIGF0IGFsbC4gdXNpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIGluc2lkZVxuICogdW5zdGFibGVfY2FjaGUgc2hvdWxkIGVycm9yLiBJZiB5b3Ugd2FudCB0byB1c2Ugc29tZSBkeW5hbWljIGRhdGEgaW5zaWRlIHVuc3RhYmxlX2NhY2hlIHlvdSBzaG91bGRcbiAqIHJlYWQgdGhhdCBkYXRhIG91dHNpZGUgdGhlIGNhY2hlIGFuZCBwYXNzIGl0IGluIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBjYWNoZWQgZnVuY3Rpb24uXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBQb3N0cG9uZTogbnVsbCxcbiAgICBhYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzOiBudWxsLFxuICAgIGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3M6IG51bGwsXG4gICAgYWNjZXNzZWREeW5hbWljRGF0YTogbnVsbCxcbiAgICBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3M6IG51bGwsXG4gICAgY29uc3VtZUR5bmFtaWNBY2Nlc3M6IG51bGwsXG4gICAgY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGU6IG51bGwsXG4gICAgY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZTogbnVsbCxcbiAgICBjcmVhdGVQb3N0cG9uZWRBYm9ydFNpZ25hbDogbnVsbCxcbiAgICBmb3JtYXREeW5hbWljQVBJQWNjZXNzZXM6IG51bGwsXG4gICAgZ2V0Rmlyc3REeW5hbWljUmVhc29uOiBudWxsLFxuICAgIGlzRHluYW1pY1Bvc3Rwb25lOiBudWxsLFxuICAgIGlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcjogbnVsbCxcbiAgICBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljOiBudWxsLFxuICAgIHBvc3Rwb25lV2l0aFRyYWNraW5nOiBudWxsLFxuICAgIHRocm93SWZEaXNhbGxvd2VkRHluYW1pYzogbnVsbCxcbiAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbjogbnVsbCxcbiAgICB0cmFja0FsbG93ZWREeW5hbWljQWNjZXNzOiBudWxsLFxuICAgIHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXI6IG51bGwsXG4gICAgdHJhY2tGYWxsYmFja1BhcmFtQWNjZXNzZWQ6IG51bGwsXG4gICAgdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldjogbnVsbCxcbiAgICB0cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldjogbnVsbCxcbiAgICB1c2VEeW5hbWljUm91dGVQYXJhbXM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUG9zdHBvbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUG9zdHBvbmU7XG4gICAgfSxcbiAgICBhYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3M7XG4gICAgfSxcbiAgICBhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3M7XG4gICAgfSxcbiAgICBhY2Nlc3NlZER5bmFtaWNEYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFjY2Vzc2VkRHluYW1pY0RhdGE7XG4gICAgfSxcbiAgICBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYW5ub3RhdGVEeW5hbWljQWNjZXNzO1xuICAgIH0sXG4gICAgY29uc3VtZUR5bmFtaWNBY2Nlc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29uc3VtZUR5bmFtaWNBY2Nlc3M7XG4gICAgfSxcbiAgICBjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZUR5bmFtaWNWYWxpZGF0aW9uU3RhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZVBvc3Rwb25lZEFib3J0U2lnbmFsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVBvc3Rwb25lZEFib3J0U2lnbmFsO1xuICAgIH0sXG4gICAgZm9ybWF0RHluYW1pY0FQSUFjY2Vzc2VzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcztcbiAgICB9LFxuICAgIGdldEZpcnN0RHluYW1pY1JlYXNvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRGaXJzdER5bmFtaWNSZWFzb247XG4gICAgfSxcbiAgICBpc0R5bmFtaWNQb3N0cG9uZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0R5bmFtaWNQb3N0cG9uZTtcbiAgICB9LFxuICAgIGlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1ByZXJlbmRlckludGVycnVwdGVkRXJyb3I7XG4gICAgfSxcbiAgICBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1hcmtDdXJyZW50U2NvcGVBc0R5bmFtaWM7XG4gICAgfSxcbiAgICBwb3N0cG9uZVdpdGhUcmFja2luZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwb3N0cG9uZVdpdGhUcmFja2luZztcbiAgICB9LFxuICAgIHRocm93SWZEaXNhbGxvd2VkRHluYW1pYzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aHJvd0lmRGlzYWxsb3dlZER5bmFtaWM7XG4gICAgfSxcbiAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbjtcbiAgICB9LFxuICAgIHRyYWNrQWxsb3dlZER5bmFtaWNBY2Nlc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcztcbiAgICB9LFxuICAgIHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcjtcbiAgICB9LFxuICAgIHRyYWNrRmFsbGJhY2tQYXJhbUFjY2Vzc2VkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNrRmFsbGJhY2tQYXJhbUFjY2Vzc2VkO1xuICAgIH0sXG4gICAgdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2O1xuICAgIH0sXG4gICAgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXY7XG4gICAgfSxcbiAgICB1c2VEeW5hbWljUm91dGVQYXJhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlRHluYW1pY1JvdXRlUGFyYW1zO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9ob29rc3NlcnZlcmNvbnRleHQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHRcIik7XG5jb25zdCBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4vd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9tZXRhZGF0YWNvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvbWV0YWRhdGEvbWV0YWRhdGEtY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBoYXNQb3N0cG9uZSA9IHR5cGVvZiBfcmVhY3QuZGVmYXVsdC51bnN0YWJsZV9wb3N0cG9uZSA9PT0gJ2Z1bmN0aW9uJztcbmZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNUcmFja2luZ1N0YXRlKGlzRGVidWdEeW5hbWljQWNjZXNzZXMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzLFxuICAgICAgICBkeW5hbWljQWNjZXNzZXM6IFtdLFxuICAgICAgICBzeW5jRHluYW1pY0V4cHJlc3Npb246IHVuZGVmaW5lZCxcbiAgICAgICAgc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjazogbnVsbFxuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGhhc1N1c3BlbmRlZER5bmFtaWM6IGZhbHNlLFxuICAgICAgICBoYXNEeW5hbWljTWV0YWRhdGE6IGZhbHNlLFxuICAgICAgICBoYXNEeW5hbWljVmlld3BvcnQ6IGZhbHNlLFxuICAgICAgICBoYXNTeW5jRHluYW1pY0Vycm9yczogZmFsc2UsXG4gICAgICAgIGR5bmFtaWNFcnJvcnM6IFtdXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldEZpcnN0RHluYW1pY1JlYXNvbih0cmFja2luZ1N0YXRlKSB7XG4gICAgdmFyIF90cmFja2luZ1N0YXRlX2R5bmFtaWNBY2Nlc3Nlc187XG4gICAgcmV0dXJuIChfdHJhY2tpbmdTdGF0ZV9keW5hbWljQWNjZXNzZXNfID0gdHJhY2tpbmdTdGF0ZS5keW5hbWljQWNjZXNzZXNbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfdHJhY2tpbmdTdGF0ZV9keW5hbWljQWNjZXNzZXNfLmV4cHJlc3Npb247XG59XG5mdW5jdGlvbiBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKHN0b3JlLCB3b3JrVW5pdFN0b3JlLCBleHByZXNzaW9uKSB7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJyB8fCB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICd1bnN0YWJsZS1jYWNoZScpIHtcbiAgICAgICAgICAgIC8vIGluc2lkZSBjYWNoZSBzY29wZXMgbWFya2luZyBhIHNjb3BlIGFzIGR5bmFtaWMgaGFzIG5vIGVmZmVjdCBiZWNhdXNlIHRoZSBvdXRlciBjYWNoZSBzY29wZVxuICAgICAgICAgICAgLy8gY3JlYXRlcyBhIGNhY2hlIGJvdW5kYXJ5LiBUaGlzIGlzIHN1YnRseSBkaWZmZXJlbnQgZnJvbSByZWFkaW5nIGEgZHluYW1pYyBkYXRhIHNvdXJjZSB3aGljaCBpc1xuICAgICAgICAgICAgLy8gZm9yYmlkZGVuIGluc2lkZSBhIGNhY2hlIHNjb3BlLlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIGZvcmNpbmcgZHluYW1pYyByZW5kZXJpbmcgb3Igd2UncmUgZm9yY2luZyBzdGF0aWMgcmVuZGVyaW5nLCB3ZVxuICAgIC8vIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgaGVyZSBiZWNhdXNlIHRoZSBlbnRpcmUgcGFnZSBpcyBhbHJlYWR5IGR5bmFtaWNcbiAgICAvLyBvciBpdCdzIHN0YXRpYyBhbmQgaXQgc2hvdWxkIG5vdCB0aHJvdyBvciBwb3N0cG9uZSBoZXJlLlxuICAgIGlmIChzdG9yZS5mb3JjZUR5bmFtaWMgfHwgc3RvcmUuZm9yY2VTdGF0aWMpIHJldHVybjtcbiAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQuU3RhdGljR2VuQmFpbG91dEVycm9yKGBSb3V0ZSAke3N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYCk7XG4gICAgfVxuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgcG9zdHBvbmVXaXRoVHJhY2tpbmcoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgfSBlbHNlIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5Jykge1xuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgIC8vIFdlIGFyZW4ndCBwcmVyZW5kZXJpbmcgYnV0IHdlIGFyZSBnZW5lcmF0aW5nIGEgc3RhdGljIHBhZ2UuIFdlIG5lZWQgdG8gYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb25cbiAgICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBfaG9va3NzZXJ2ZXJjb250ZXh0LkR5bmFtaWNTZXJ2ZXJFcnJvcihgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmApO1xuICAgICAgICAgICAgc3RvcmUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb24gPSBleHByZXNzaW9uO1xuICAgICAgICAgICAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2s7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgd29ya1VuaXRTdG9yZSAmJiB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdyZXF1ZXN0Jykge1xuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiB0cmFja0ZhbGxiYWNrUGFyYW1BY2Nlc3NlZChzdG9yZSwgZXhwcmVzc2lvbikge1xuICAgIGNvbnN0IHByZXJlbmRlclN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXByZXJlbmRlclN0b3JlIHx8IHByZXJlbmRlclN0b3JlLnR5cGUgIT09ICdwcmVyZW5kZXItcHByJykgcmV0dXJuO1xuICAgIHBvc3Rwb25lV2l0aFRyYWNraW5nKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xufVxuZnVuY3Rpb24gdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24oZXhwcmVzc2lvbiwgc3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZyBidXQgd2UgYXJlIGdlbmVyYXRpbmcgYSBzdGF0aWMgcGFnZS4gV2UgbmVlZCB0byBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvblxuICAgIGNvbnN0IGVyciA9IG5ldyBfaG9va3NzZXJ2ZXJjb250ZXh0LkR5bmFtaWNTZXJ2ZXJFcnJvcihgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmApO1xuICAgIHByZXJlbmRlclN0b3JlLnJldmFsaWRhdGUgPSAwO1xuICAgIHN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZXhwcmVzc2lvbjtcbiAgICBzdG9yZS5keW5hbWljVXNhZ2VTdGFjayA9IGVyci5zdGFjaztcbiAgICB0aHJvdyBlcnI7XG59XG5mdW5jdGlvbiB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKF9zdG9yZSwgd29ya1VuaXRTdG9yZSkge1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdjYWNoZScgfHwgd29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnKSB7XG4gICAgICAgICAgICAvLyBpbnNpZGUgY2FjaGUgc2NvcGVzIG1hcmtpbmcgYSBzY29wZSBhcyBkeW5hbWljIGhhcyBubyBlZmZlY3QgYmVjYXVzZSB0aGUgb3V0ZXIgY2FjaGUgc2NvcGVcbiAgICAgICAgICAgIC8vIGNyZWF0ZXMgYSBjYWNoZSBib3VuZGFyeS4gVGhpcyBpcyBzdWJ0bHkgZGlmZmVyZW50IGZyb20gcmVhZGluZyBhIGR5bmFtaWMgZGF0YSBzb3VyY2Ugd2hpY2ggaXNcbiAgICAgICAgICAgIC8vIGZvcmJpZGRlbiBpbnNpZGUgYSBjYWNoZSBzY29wZS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJyB8fCB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5Jykge1xuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcpIHtcbiAgICAgICAgICAgIHdvcmtVbml0U3RvcmUudXNlZER5bmFtaWMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gRGVzcGl0ZSBpdCdzIG5hbWUgd2UgZG9uJ3QgYWN0dWFsbHkgYWJvcnQgdW5sZXNzIHdlIGhhdmUgYSBjb250cm9sbGVyIHRvIGNhbGwgYWJvcnQgb25cbi8vIFRoZXJlIGFyZSB0aW1lcyB3aGVuIHdlIGxldCBhIHByZXJlbmRlciBydW4gbG9uZyB0byBkaXNjb3ZlciBjYWNoZXMgd2hlcmUgd2Ugd2FudCB0aGUgc2VtYW50aWNzXG4vLyBvZiB0cmFja2luZyBkeW5hbWljIGFjY2VzcyB3aXRob3V0IHRlcm1pbmF0aW5nIHRoZSBwcmVyZW5kZXIgZWFybHlcbmZ1bmN0aW9uIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IHJlYXNvbiA9IGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS5gO1xuICAgIGNvbnN0IGVycm9yID0gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihyZWFzb24pO1xuICAgIHByZXJlbmRlclN0b3JlLmNvbnRyb2xsZXIuYWJvcnQoZXJyb3IpO1xuICAgIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZztcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZW4ndCBkZWJ1Z2dpbmcsIHdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgZXJyb3IgZm9yIHRoZVxuICAgICAgICAgICAgLy8gc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXMgPyBuZXcgRXJyb3IoKS5zdGFjayA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV4cHJlc3Npb25cbiAgICAgICAgfSk7XG4gICAgfVxufVxuZnVuY3Rpb24gYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgZXJyb3JXaXRoU3RhY2ssIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nO1xuICAgIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICAgICAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID09PSBudWxsKSB7XG4gICAgICAgICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFeHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID0gZXJyb3JXaXRoU3RhY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSk7XG59XG5mdW5jdGlvbiB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2KHJlcXVlc3RTdG9yZSkge1xuICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjb250cm9sbGVyIHRvIGFib3J0IGJ1dCB3ZSBkbyB0aGUgc2VtYW50aWMgZXF1aXZhbGVudCBieVxuICAgIC8vIGFkdmFuY2luZyB0aGUgcmVxdWVzdCBzdG9yZSBvdXQgb2YgcHJlcmVuZGVyIG1vZGVcbiAgICByZXF1ZXN0U3RvcmUucHJlcmVuZGVyUGhhc2UgPSBmYWxzZTtcbn1cbmZ1bmN0aW9uIGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24sIGVycm9yV2l0aFN0YWNrLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZztcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgICAgIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9PT0gbnVsbCkge1xuICAgICAgICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gICAgICAgICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9IGVycm9yV2l0aFN0YWNrO1xuICAgICAgICAgICAgaWYgKHByZXJlbmRlclN0b3JlLnZhbGlkYXRpbmcgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBhbHdheXMgbG9nIFJlcXVlc3QgQWNjZXNzIGluIGRldiBhdCB0aGUgcG9pbnQgb2YgY2FsbGluZyB0aGUgZnVuY3Rpb25cbiAgICAgICAgICAgICAgICAvLyBTbyB3ZSBtYXJrIHRoZSBkeW5hbWljIHZhbGlkYXRpb24gYXMgbm90IHJlcXVpcmluZyBpdCB0byBiZSBwcmludGVkXG4gICAgICAgICAgICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljTG9nZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgIHRocm93IGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IoYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LmApO1xufVxuY29uc3QgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYgPSB0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2O1xuZnVuY3Rpb24gUG9zdHBvbmUoeyByZWFzb24sIHJvdXRlIH0pIHtcbiAgICBjb25zdCBwcmVyZW5kZXJTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUgJiYgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInID8gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nIDogbnVsbDtcbiAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhyb3V0ZSwgcmVhc29uLCBkeW5hbWljVHJhY2tpbmcpO1xufVxuZnVuY3Rpb24gcG9zdHBvbmVXaXRoVHJhY2tpbmcocm91dGUsIGV4cHJlc3Npb24sIGR5bmFtaWNUcmFja2luZykge1xuICAgIGFzc2VydFBvc3Rwb25lKCk7XG4gICAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgICAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmVuJ3QgZGVidWdnaW5nLCB3ZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGVycm9yIGZvciB0aGVcbiAgICAgICAgICAgIC8vIHN0YWNrIHRyYWNlLlxuICAgICAgICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzID8gbmV3IEVycm9yKCkuc3RhY2sgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBleHByZXNzaW9uXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfcmVhY3QuZGVmYXVsdC51bnN0YWJsZV9wb3N0cG9uZShjcmVhdGVQb3N0cG9uZVJlYXNvbihyb3V0ZSwgZXhwcmVzc2lvbikpO1xufVxuZnVuY3Rpb24gY3JlYXRlUG9zdHBvbmVSZWFzb24ocm91dGUsIGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBgICsgYFJlYWN0IHRocm93cyB0aGlzIHNwZWNpYWwgb2JqZWN0IHRvIGluZGljYXRlIHdoZXJlLiBJdCBzaG91bGQgbm90IGJlIGNhdWdodCBieSBgICsgYHlvdXIgb3duIHRyeS9jYXRjaC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcmA7XG59XG5mdW5jdGlvbiBpc0R5bmFtaWNQb3N0cG9uZShlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmIHR5cGVvZiBlcnIubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKGVyci5tZXNzYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gaXNEeW5hbWljUG9zdHBvbmVSZWFzb24ocmVhc29uKSB7XG4gICAgcmV0dXJuIHJlYXNvbi5pbmNsdWRlcygnbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkJykgJiYgcmVhc29uLmluY2x1ZGVzKCdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yJyk7XG59XG5pZiAoaXNEeW5hbWljUG9zdHBvbmVSZWFzb24oY3JlYXRlUG9zdHBvbmVSZWFzb24oJyUlJScsICdeXl4nKSkgPT09IGZhbHNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IGlzRHluYW1pY1Bvc3Rwb25lIG1pc2lkZW50aWZpZWQgYSBwb3N0cG9uZSByZWFzb24uIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpO1xufVxuY29uc3QgTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQgPSAnTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQnO1xuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgZXJyb3IuZGlnZXN0ID0gTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQ7XG4gICAgcmV0dXJuIGVycm9yO1xufVxuZnVuY3Rpb24gaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgZXJyb3IuZGlnZXN0ID09PSBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCAmJiAnbmFtZScgaW4gZXJyb3IgJiYgJ21lc3NhZ2UnIGluIGVycm9yICYmIGVycm9yIGluc3RhbmNlb2YgRXJyb3I7XG59XG5mdW5jdGlvbiBhY2Nlc3NlZER5bmFtaWNEYXRhKGR5bmFtaWNBY2Nlc3Nlcykge1xuICAgIHJldHVybiBkeW5hbWljQWNjZXNzZXMubGVuZ3RoID4gMDtcbn1cbmZ1bmN0aW9uIGNvbnN1bWVEeW5hbWljQWNjZXNzKHNlcnZlckR5bmFtaWMsIGNsaWVudER5bmFtaWMpIHtcbiAgICAvLyBXZSBtdXRhdGUgYmVjYXVzZSB3ZSBvbmx5IGNhbGwgdGhpcyBvbmNlIHdlIGFyZSBubyBsb25nZXIgd3JpdGluZ1xuICAgIC8vIHRvIHRoZSBkeW5hbWljVHJhY2tpbmdTdGF0ZSBhbmQgaXQncyBtb3JlIGVmZmljaWVudCB0aGFuIGNyZWF0aW5nIGEgbmV3XG4gICAgLy8gYXJyYXkuXG4gICAgc2VydmVyRHluYW1pYy5keW5hbWljQWNjZXNzZXMucHVzaCguLi5jbGllbnREeW5hbWljLmR5bmFtaWNBY2Nlc3Nlcyk7XG4gICAgcmV0dXJuIHNlcnZlckR5bmFtaWMuZHluYW1pY0FjY2Vzc2VzO1xufVxuZnVuY3Rpb24gZm9ybWF0RHluYW1pY0FQSUFjY2Vzc2VzKGR5bmFtaWNBY2Nlc3Nlcykge1xuICAgIHJldHVybiBkeW5hbWljQWNjZXNzZXMuZmlsdGVyKChhY2Nlc3MpPT50eXBlb2YgYWNjZXNzLnN0YWNrID09PSAnc3RyaW5nJyAmJiBhY2Nlc3Muc3RhY2subGVuZ3RoID4gMCkubWFwKCh7IGV4cHJlc3Npb24sIHN0YWNrIH0pPT57XG4gICAgICAgIHN0YWNrID0gc3RhY2suc3BsaXQoJ1xcbicpLy8gUmVtb3ZlIHRoZSBcIkVycm9yOiBcIiBwcmVmaXggZnJvbSB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc3RhY2sgdHJhY2UgYXNcbiAgICAgICAgLy8gd2VsbCBhcyB0aGUgZmlyc3QgNCBsaW5lcyBvZiB0aGUgc3RhY2sgdHJhY2Ugd2hpY2ggaXMgdGhlIGRpc3RhbmNlXG4gICAgICAgIC8vIGZyb20gdGhlIHVzZXIgY29kZSBhbmQgdGhlIGBuZXcgRXJyb3IoKS5zdGFja2AgY2FsbC5cbiAgICAgICAgLnNsaWNlKDQpLmZpbHRlcigobGluZSk9PntcbiAgICAgICAgICAgIC8vIEV4Y2x1ZGUgTmV4dC5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzL25leHQvJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBFeGNsdWRlIGFub255bW91cyBmdW5jdGlvbnMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnICg8YW5vbnltb3VzPiknKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEV4Y2x1ZGUgTm9kZS5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnIChub2RlOicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pLmpvaW4oJ1xcbicpO1xuICAgICAgICByZXR1cm4gYER5bmFtaWMgQVBJIFVzYWdlIERlYnVnIC0gJHtleHByZXNzaW9ufTpcXG4ke3N0YWNrfWA7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBhc3NlcnRQb3N0cG9uZSgpIHtcbiAgICBpZiAoIWhhc1Bvc3Rwb25lKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YXJpYW50OiBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZSBpcyBub3QgZGVmaW5lZC4gVGhpcyBzdWdnZXN0cyB0aGUgd3JvbmcgdmVyc2lvbiBvZiBSZWFjdCB3YXMgbG9hZGVkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanNgKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVQb3N0cG9uZWRBYm9ydFNpZ25hbChyZWFzb24pIHtcbiAgICBhc3NlcnRQb3N0cG9uZSgpO1xuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgLy8gV2UgZ2V0IG91ciBoYW5kcyBvbiBhIHBvc3Rwb25lIGluc3RhbmNlIGJ5IGNhbGxpbmcgcG9zdHBvbmUgYW5kIGNhdGNoaW5nIHRoZSB0aHJvd1xuICAgIHRyeSB7XG4gICAgICAgIF9yZWFjdC5kZWZhdWx0LnVuc3RhYmxlX3Bvc3Rwb25lKHJlYXNvbik7XG4gICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBjb250cm9sbGVyLmFib3J0KHgpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbGxlci5zaWduYWw7XG59XG5mdW5jdGlvbiBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3MoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmc7XG4gICAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgICAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzID8gbmV3IEVycm9yKCkuc3RhY2sgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBleHByZXNzaW9uXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHVzZUR5bmFtaWNSb3V0ZVBhcmFtcyhleHByZXNzaW9uKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnN0IHdvcmtTdG9yZSA9IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICBpZiAod29ya1N0b3JlICYmIHdvcmtTdG9yZS5pc1N0YXRpY0dlbmVyYXRpb24gJiYgd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXMgJiYgd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBmYWxsYmFjayByb3V0ZSBwYXJhbXMsIHdlIHNob3VsZCB0cmFjayB0aGVzZSBhcyBkeW5hbWljXG4gICAgICAgICAgICAvLyBhY2Nlc3Nlcy5cbiAgICAgICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgd2l0aCBkeW5hbWljSU8gb3IgUFBSIG9yIGJvdGhcbiAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgaW4gYSBwcmVyZW5kZXIgd2l0aCBkeW5hbWljSU8gc2VtYW50aWNzXG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBoYW5nIGhlcmUgYW5kIG5ldmVyIHJlc29sdmUuIFRoaXMgd2lsbCBjYXVzZSB0aGUgY3VycmVudGx5XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbmRlcmluZyBjb21wb25lbnQgdG8gZWZmZWN0aXZlbHkgYmUgYSBkeW5hbWljIGhvbGVcbiAgICAgICAgICAgICAgICAgICAgX3JlYWN0LmRlZmF1bHQudXNlKCgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsIGV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyB3aXRoIFBQUlxuICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1sZWdhY3knKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgaGFzU3VzcGVuc2VSZWdleCA9IC9cXG5cXHMrYXQgU3VzcGVuc2UgXFwoPGFub255bW91cz5cXCkvO1xuY29uc3QgaGFzTWV0YWRhdGFSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtfbWV0YWRhdGFjb25zdGFudHMuTUVUQURBVEFfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gKTtcbmNvbnN0IGhhc1ZpZXdwb3J0UmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcblxcXFxzK2F0ICR7X21ldGFkYXRhY29uc3RhbnRzLlZJRVdQT1JUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYCk7XG5jb25zdCBoYXNPdXRsZXRSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtfbWV0YWRhdGFjb25zdGFudHMuT1VUTEVUX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYCk7XG5mdW5jdGlvbiB0cmFja0FsbG93ZWREeW5hbWljQWNjZXNzKHJvdXRlLCBjb21wb25lbnRTdGFjaywgZHluYW1pY1ZhbGlkYXRpb24sIHNlcnZlckR5bmFtaWMsIGNsaWVudER5bmFtaWMpIHtcbiAgICBpZiAoaGFzT3V0bGV0UmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byB0cmFjayB0aGF0IHRoaXMgaXMgZHluYW1pYy4gSXQgaXMgb25seSBzbyB3aGVuIHNvbWV0aGluZyBlbHNlIGlzIGFsc28gZHluYW1pYy5cbiAgICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoaGFzTWV0YWRhdGFSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgICAgICBkeW5hbWljVmFsaWRhdGlvbi5oYXNEeW5hbWljTWV0YWRhdGEgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChoYXNWaWV3cG9ydFJlZ2V4LnRlc3QoY29tcG9uZW50U3RhY2spKSB7XG4gICAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGhhc1N1c3BlbnNlUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3VzcGVuZGVkRHluYW1pYyA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHNlcnZlckR5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayB8fCBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3luY0R5bmFtaWNFcnJvcnMgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBSb3V0ZSBcIiR7cm91dGV9XCI6IEEgY29tcG9uZW50IGFjY2Vzc2VkIGRhdGEsIGhlYWRlcnMsIHBhcmFtcywgc2VhcmNoUGFyYW1zLCBvciBhIHNob3J0LWxpdmVkIGNhY2hlIHdpdGhvdXQgYSBTdXNwZW5zZSBib3VuZGFyeSBub3IgYSBcInVzZSBjYWNoZVwiIGFib3ZlIGl0LiBXZSBkb24ndCBoYXZlIHRoZSBleGFjdCBsaW5lIG51bWJlciBhZGRlZCB0byBlcnJvciBtZXNzYWdlcyB5ZXQgYnV0IHlvdSBjYW4gc2VlIHdoaWNoIGNvbXBvbmVudCBpbiB0aGUgc3RhY2sgYmVsb3cuIFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLW1pc3Npbmctc3VzcGVuc2VgO1xuICAgICAgICBjb25zdCBlcnJvciA9IGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudFN0YWNrKG1lc3NhZ2UsIGNvbXBvbmVudFN0YWNrKTtcbiAgICAgICAgZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudFN0YWNrKG1lc3NhZ2UsIGNvbXBvbmVudFN0YWNrKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgZXJyb3Iuc3RhY2sgPSAnRXJyb3I6ICcgKyBtZXNzYWdlICsgY29tcG9uZW50U3RhY2s7XG4gICAgcmV0dXJuIGVycm9yO1xufVxuZnVuY3Rpb24gdGhyb3dJZkRpc2FsbG93ZWREeW5hbWljKHJvdXRlLCBkeW5hbWljVmFsaWRhdGlvbiwgc2VydmVyRHluYW1pYywgY2xpZW50RHluYW1pYykge1xuICAgIGxldCBzeW5jRXJyb3I7XG4gICAgbGV0IHN5bmNFeHByZXNzaW9uO1xuICAgIGxldCBzeW5jTG9nZ2VkO1xuICAgIGlmIChzZXJ2ZXJEeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgICAgc3luY0Vycm9yID0gc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrO1xuICAgICAgICBzeW5jRXhwcmVzc2lvbiA9IHNlcnZlckR5bmFtaWMuc3luY0R5bmFtaWNFeHByZXNzaW9uO1xuICAgICAgICBzeW5jTG9nZ2VkID0gc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0xvZ2dlZCA9PT0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNsaWVudER5bmFtaWMuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaykge1xuICAgICAgICBzeW5jRXJyb3IgPSBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s7XG4gICAgICAgIHN5bmNFeHByZXNzaW9uID0gY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0V4cHJlc3Npb247XG4gICAgICAgIHN5bmNMb2dnZWQgPSBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljTG9nZ2VkID09PSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHN5bmNFcnJvciA9IG51bGw7XG4gICAgICAgIHN5bmNFeHByZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgICBzeW5jTG9nZ2VkID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChkeW5hbWljVmFsaWRhdGlvbi5oYXNTeW5jRHluYW1pY0Vycm9ycyAmJiBzeW5jRXJyb3IpIHtcbiAgICAgICAgaWYgKCFzeW5jTG9nZ2VkKSB7XG4gICAgICAgICAgICAvLyBJbiBkZXYgd2UgYWxyZWFkeSBsb2cgZXJyb3JzIGFib3V0IHN5bmMgZHluYW1pYyBhY2Nlc3MuIEJ1dCBkdXJpbmcgYnVpbGRzIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAgICAgICAvLyB0aGUgb2ZmZW5kaW5nIHN5bmMgZXJyb3IgaXMgbG9nZ2VkIGJlZm9yZSB3ZSBleGl0IHRoZSBidWlsZFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihzeW5jRXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBhY3R1YWwgZXJyb3Igc2hvdWxkIGhhdmUgYmVlbiBsb2dnZWQgd2hlbiB0aGUgc3luYyBhY2Nlc3Mgb2N1cnJlZFxuICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcigpO1xuICAgIH1cbiAgICBjb25zdCBkeW5hbWljRXJyb3JzID0gZHluYW1pY1ZhbGlkYXRpb24uZHluYW1pY0Vycm9ycztcbiAgICBpZiAoZHluYW1pY0Vycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGR5bmFtaWNFcnJvcnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihkeW5hbWljRXJyb3JzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcigpO1xuICAgIH1cbiAgICBpZiAoIWR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbmRlZER5bmFtaWMpIHtcbiAgICAgICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YSkge1xuICAgICAgICAgICAgaWYgKHN5bmNFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3Ioc3luY0Vycm9yKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlTWV0YWRhdGFcXGAgdGhhdCBjb3VsZCBub3QgZmluaXNoIHJlbmRlcmluZyBiZWZvcmUgJHtzeW5jRXhwcmVzc2lvbn0gd2FzIHVzZWQuIEZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBlcnJvciBmb3IgdGhpcyBleHByZXNzaW9uIHRvIHJlc29sdmUuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlTWV0YWRhdGFcXGAgdGhhdCBkZXBlbmRzIG9uIFJlcXVlc3QgZGF0YSAoXFxgY29va2llcygpXFxgLCBldGMuLi4pIG9yIGV4dGVybmFsIGRhdGEgKFxcYGZldGNoKC4uLilcXGAsIGV0Yy4uLikgYnV0IHRoZSByZXN0IG9mIHRoZSByb3V0ZSB3YXMgc3RhdGljIG9yIG9ubHkgdXNlZCBjYWNoZWQgZGF0YSAoXFxgXCJ1c2UgY2FjaGVcIlxcYCkuIElmIHlvdSBleHBlY3RlZCB0aGlzIHJvdXRlIHRvIGJlIHByZXJlbmRlcmFibGUgdXBkYXRlIHlvdXIgXFxgZ2VuZXJhdGVNZXRhZGF0YVxcYCB0byBub3QgdXNlIFJlcXVlc3QgZGF0YSBhbmQgb25seSB1c2UgY2FjaGVkIGV4dGVybmFsIGRhdGEuIE90aGVyd2lzZSwgYWRkIFxcYGF3YWl0IGNvbm5lY3Rpb24oKVxcYCBzb21ld2hlcmUgd2l0aGluIHRoaXMgcm91dGUgdG8gaW5kaWNhdGUgZXhwbGljaXRseSBpdCBzaG91bGQgbm90IGJlIHByZXJlbmRlcmVkLmApO1xuICAgICAgICB9IGVsc2UgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNWaWV3cG9ydCkge1xuICAgICAgICAgICAgaWYgKHN5bmNFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3Ioc3luY0Vycm9yKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlVmlld3BvcnRcXGAgdGhhdCBjb3VsZCBub3QgZmluaXNoIHJlbmRlcmluZyBiZWZvcmUgJHtzeW5jRXhwcmVzc2lvbn0gd2FzIHVzZWQuIEZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBlcnJvciBmb3IgdGhpcyBleHByZXNzaW9uIHRvIHJlc29sdmUuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgX3N0YXRpY2dlbmVyYXRpb25iYWlsb3V0LlN0YXRpY0dlbkJhaWxvdXRFcnJvcihgUm91dGUgXCIke3JvdXRlfVwiIGhhcyBhIFxcYGdlbmVyYXRlVmlld3BvcnRcXGAgdGhhdCBkZXBlbmRzIG9uIFJlcXVlc3QgZGF0YSAoXFxgY29va2llcygpXFxgLCBldGMuLi4pIG9yIGV4dGVybmFsIGRhdGEgKFxcYGZldGNoKC4uLilcXGAsIGV0Yy4uLikgYnV0IHRoZSByZXN0IG9mIHRoZSByb3V0ZSB3YXMgc3RhdGljIG9yIG9ubHkgdXNlZCBjYWNoZWQgZGF0YSAoXFxgXCJ1c2UgY2FjaGVcIlxcYCkuIElmIHlvdSBleHBlY3RlZCB0aGlzIHJvdXRlIHRvIGJlIHByZXJlbmRlcmFibGUgdXBkYXRlIHlvdXIgXFxgZ2VuZXJhdGVWaWV3cG9ydFxcYCB0byBub3QgdXNlIFJlcXVlc3QgZGF0YSBhbmQgb25seSB1c2UgY2FjaGVkIGV4dGVybmFsIGRhdGEuIE90aGVyd2lzZSwgYWRkIFxcYGF3YWl0IGNvbm5lY3Rpb24oKVxcYCBzb21ld2hlcmUgd2l0aGluIHRoaXMgcm91dGUgdG8gaW5kaWNhdGUgZXhwbGljaXRseSBpdCBzaG91bGQgbm90IGJlIHByZXJlbmRlcmVkLmApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1keW5hbWljLXJlbmRlcmluZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.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 _metadataboundary.MetadataBoundary;\n },\n OutletBoundary: function() {\n return _metadataboundary.OutletBoundary;\n },\n Postpone: function() {\n return _postpone.Postpone;\n },\n RenderFromTemplateContext: function() {\n return _renderfromtemplatecontext.default;\n },\n ViewportBoundary: function() {\n return _metadataboundary.ViewportBoundary;\n },\n actionAsyncStorage: function() {\n return _actionasyncstorageexternal.actionAsyncStorage;\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 createServerParamsForMetadata: function() {\n return _params.createServerParamsForMetadata;\n },\n createServerParamsForServerSegment: function() {\n return _params.createServerParamsForServerSegment;\n },\n createServerSearchParamsForMetadata: function() {\n return _searchparams.createServerSearchParamsForMetadata;\n },\n createServerSearchParamsForServerPage: function() {\n return _searchparams.createServerSearchParamsForServerPage;\n },\n createTemporaryReferenceSet: function() {\n return _serveredge.createTemporaryReferenceSet;\n },\n decodeAction: function() {\n return _serveredge.decodeAction;\n },\n decodeFormState: function() {\n return _serveredge.decodeFormState;\n },\n decodeReply: function() {\n return _serveredge.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 _staticedge.prerender;\n },\n renderToReadableStream: function() {\n return _serveredge.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 _serveredge = __webpack_require__(/*! react-server-dom-webpack/server.edge */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server-edge.js\");\nconst _staticedge = __webpack_require__(/*! react-server-dom-webpack/static.edge */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static-edge.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 */ \"../app-render/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 _patchfetch = __webpack_require__(/*! ../lib/patch-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\");\n__webpack_require__(/*! ../../client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _metadataboundary = __webpack_require__(/*! ../../lib/metadata/metadata-boundary */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.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\");\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// patchFetch makes use of APIs such as `React.unstable_postpone` which are only available\n// in the experimental channel of React, so export it from here so that it comes from the bundled runtime\nfunction patchFetch() {\n return (0, _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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FpQ0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLG1CQUFPLENBQUMsK0pBQXNDO0FBQ2xFLG9CQUFvQixtQkFBTyxDQUFDLCtKQUFzQztBQUNsRSw2REFBNkQsbUJBQU8sQ0FBQyxnSEFBdUM7QUFDNUcsMEVBQTBFLG1CQUFPLENBQUMsOElBQXNEO0FBQ3hJLGtDQUFrQyxtQkFBTyxDQUFDLDRGQUEyQztBQUNyRixzQ0FBc0MsbUJBQU8sQ0FBQyw4RUFBb0M7QUFDbEYsb0NBQW9DLG1CQUFPLENBQUMsZ0dBQTZDO0FBQ3pGLG9CQUFvQixtQkFBTyxDQUFDLDRHQUFxQztBQUNqRSx1QkFBdUIsbUJBQU8sQ0FBQyxrSEFBd0M7QUFDdkUsc0JBQXNCLG1CQUFPLENBQUMsZ0dBQTBCO0FBQ3hELGdCQUFnQixtQkFBTyxDQUFDLGtGQUFtQjtBQUMzQyxvRUFBb0UsbUJBQU8sQ0FBQyw4SEFBOEM7QUFDMUgsdUJBQXVCLG1CQUFPLENBQUMsNEpBQTZEO0FBQzVGLGtCQUFrQixtQkFBTyxDQUFDLDRGQUE2QjtBQUN2RCxvQkFBb0IsbUJBQU8sQ0FBQyxvRkFBb0I7QUFDaEQsbUJBQU8sQ0FBQyxrSEFBd0M7QUFDaEQsMEJBQTBCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3hFLGtCQUFrQixtQkFBTyxDQUFDLHdGQUFnQjtBQUMxQyxrQkFBa0IsbUJBQU8sQ0FBQyx3RkFBZ0I7QUFDMUMsZUFBZSxtQkFBTyxDQUFDLGtGQUFhO0FBQ3BDLDRCQUE0QixtQkFBTyxDQUFDLHdHQUF3QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcYXBwLXJlbmRlclxcZW50cnktYmFzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIENsaWVudFBhZ2VSb290OiBudWxsLFxuICAgIENsaWVudFNlZ21lbnRSb290OiBudWxsLFxuICAgIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5OiBudWxsLFxuICAgIExheW91dFJvdXRlcjogbnVsbCxcbiAgICBNZXRhZGF0YUJvdW5kYXJ5OiBudWxsLFxuICAgIE91dGxldEJvdW5kYXJ5OiBudWxsLFxuICAgIFBvc3Rwb25lOiBudWxsLFxuICAgIFJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQ6IG51bGwsXG4gICAgVmlld3BvcnRCb3VuZGFyeTogbnVsbCxcbiAgICBhY3Rpb25Bc3luY1N0b3JhZ2U6IG51bGwsXG4gICAgY29sbGVjdFNlZ21lbnREYXRhOiBudWxsLFxuICAgIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50czogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBudWxsLFxuICAgIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBudWxsLFxuICAgIGNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldDogbnVsbCxcbiAgICBkZWNvZGVBY3Rpb246IG51bGwsXG4gICAgZGVjb2RlRm9ybVN0YXRlOiBudWxsLFxuICAgIGRlY29kZVJlcGx5OiBudWxsLFxuICAgIHBhdGNoRmV0Y2g6IG51bGwsXG4gICAgcHJlY29ubmVjdDogbnVsbCxcbiAgICBwcmVsb2FkRm9udDogbnVsbCxcbiAgICBwcmVsb2FkU3R5bGU6IG51bGwsXG4gICAgcHJlcmVuZGVyOiBudWxsLFxuICAgIHJlbmRlclRvUmVhZGFibGVTdHJlYW06IG51bGwsXG4gICAgc2VydmVySG9va3M6IG51bGwsXG4gICAgdGFpbnRPYmplY3RSZWZlcmVuY2U6IG51bGwsXG4gICAgd29ya0FzeW5jU3RvcmFnZTogbnVsbCxcbiAgICB3b3JrVW5pdEFzeW5jU3RvcmFnZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBDbGllbnRQYWdlUm9vdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY2xpZW50cGFnZS5DbGllbnRQYWdlUm9vdDtcbiAgICB9LFxuICAgIENsaWVudFNlZ21lbnRSb290OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jbGllbnRzZWdtZW50LkNsaWVudFNlZ21lbnRSb290O1xuICAgIH0sXG4gICAgSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Vycm9yYm91bmRhcnkuSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk7XG4gICAgfSxcbiAgICBMYXlvdXRSb3V0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2xheW91dHJvdXRlci5kZWZhdWx0O1xuICAgIH0sXG4gICAgTWV0YWRhdGFCb3VuZGFyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfbWV0YWRhdGFib3VuZGFyeS5NZXRhZGF0YUJvdW5kYXJ5O1xuICAgIH0sXG4gICAgT3V0bGV0Qm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX21ldGFkYXRhYm91bmRhcnkuT3V0bGV0Qm91bmRhcnk7XG4gICAgfSxcbiAgICBQb3N0cG9uZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcG9zdHBvbmUuUG9zdHBvbmU7XG4gICAgfSxcbiAgICBSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9yZW5kZXJmcm9tdGVtcGxhdGVjb250ZXh0LmRlZmF1bHQ7XG4gICAgfSxcbiAgICBWaWV3cG9ydEJvdW5kYXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9tZXRhZGF0YWJvdW5kYXJ5LlZpZXdwb3J0Qm91bmRhcnk7XG4gICAgfSxcbiAgICBhY3Rpb25Bc3luY1N0b3JhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2FjdGlvbmFzeW5jc3RvcmFnZWV4dGVybmFsLmFjdGlvbkFzeW5jU3RvcmFnZTtcbiAgICB9LFxuICAgIGNvbGxlY3RTZWdtZW50RGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29sbGVjdHNlZ21lbnRkYXRhLmNvbGxlY3RTZWdtZW50RGF0YTtcbiAgICB9LFxuICAgIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfbWV0YWRhdGEuY3JlYXRlTWV0YWRhdGFDb21wb25lbnRzO1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcGFyYW1zLmNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ7XG4gICAgfSxcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZWFyY2hwYXJhbXMuY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9wYXJhbXMuY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9wYXJhbXMuY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZWFyY2hwYXJhbXMuY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZWFyY2hwYXJhbXMuY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTtcbiAgICB9LFxuICAgIGNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2VydmVyZWRnZS5jcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQ7XG4gICAgfSxcbiAgICBkZWNvZGVBY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlcmVkZ2UuZGVjb2RlQWN0aW9uO1xuICAgIH0sXG4gICAgZGVjb2RlRm9ybVN0YXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXJlZGdlLmRlY29kZUZvcm1TdGF0ZTtcbiAgICB9LFxuICAgIGRlY29kZVJlcGx5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXJlZGdlLmRlY29kZVJlcGx5O1xuICAgIH0sXG4gICAgcGF0Y2hGZXRjaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXRjaEZldGNoO1xuICAgIH0sXG4gICAgcHJlY29ubmVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcHJlbG9hZHMucHJlY29ubmVjdDtcbiAgICB9LFxuICAgIHByZWxvYWRGb250OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9wcmVsb2Fkcy5wcmVsb2FkRm9udDtcbiAgICB9LFxuICAgIHByZWxvYWRTdHlsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcHJlbG9hZHMucHJlbG9hZFN0eWxlO1xuICAgIH0sXG4gICAgcHJlcmVuZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zdGF0aWNlZGdlLnByZXJlbmRlcjtcbiAgICB9LFxuICAgIHJlbmRlclRvUmVhZGFibGVTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlcmVkZ2UucmVuZGVyVG9SZWFkYWJsZVN0cmVhbTtcbiAgICB9LFxuICAgIHNlcnZlckhvb2tzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9ob29rc3NlcnZlcmNvbnRleHQ7XG4gICAgfSxcbiAgICB0YWludE9iamVjdFJlZmVyZW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdGFpbnQudGFpbnRPYmplY3RSZWZlcmVuY2U7XG4gICAgfSxcbiAgICB3b3JrQXN5bmNTdG9yYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZTtcbiAgICB9LFxuICAgIHdvcmtVbml0QXN5bmNTdG9yYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlO1xuICAgIH1cbn0pO1xuY29uc3QgX3NlcnZlcmVkZ2UgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3NlcnZlci5lZGdlXCIpO1xuY29uc3QgX3N0YXRpY2VkZ2UgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3N0YXRpYy5lZGdlXCIpO1xuY29uc3QgX2xheW91dHJvdXRlciA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyXCIpKTtcbmNvbnN0IF9yZW5kZXJmcm9tdGVtcGxhdGVjb250ZXh0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHRcIikpO1xuY29uc3QgX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4vd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfYWN0aW9uYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9jbGllbnRwYWdlID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlXCIpO1xuY29uc3QgX2NsaWVudHNlZ21lbnQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnRcIik7XG5jb25zdCBfc2VhcmNocGFyYW1zID0gcmVxdWlyZShcIi4uL3JlcXVlc3Qvc2VhcmNoLXBhcmFtc1wiKTtcbmNvbnN0IF9wYXJhbXMgPSByZXF1aXJlKFwiLi4vcmVxdWVzdC9wYXJhbXNcIik7XG5jb25zdCBfaG9va3NzZXJ2ZXJjb250ZXh0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9ob29rcy1zZXJ2ZXItY29udGV4dFwiKSk7XG5jb25zdCBfZXJyb3Jib3VuZGFyeSA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeVwiKTtcbmNvbnN0IF9tZXRhZGF0YSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvbWV0YWRhdGEvbWV0YWRhdGFcIik7XG5jb25zdCBfcGF0Y2hmZXRjaCA9IHJlcXVpcmUoXCIuLi9saWIvcGF0Y2gtZmV0Y2hcIik7XG5yZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnlcIik7XG5jb25zdCBfbWV0YWRhdGFib3VuZGFyeSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvbWV0YWRhdGEvbWV0YWRhdGEtYm91bmRhcnlcIik7XG5jb25zdCBfcHJlbG9hZHMgPSByZXF1aXJlKFwiLi9yc2MvcHJlbG9hZHNcIik7XG5jb25zdCBfcG9zdHBvbmUgPSByZXF1aXJlKFwiLi9yc2MvcG9zdHBvbmVcIik7XG5jb25zdCBfdGFpbnQgPSByZXF1aXJlKFwiLi9yc2MvdGFpbnRcIik7XG5jb25zdCBfY29sbGVjdHNlZ21lbnRkYXRhID0gcmVxdWlyZShcIi4vY29sbGVjdC1zZWdtZW50LWRhdGFcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuLy8gcGF0Y2hGZXRjaCBtYWtlcyB1c2Ugb2YgQVBJcyBzdWNoIGFzIGBSZWFjdC51bnN0YWJsZV9wb3N0cG9uZWAgd2hpY2ggYXJlIG9ubHkgYXZhaWxhYmxlXG4vLyBpbiB0aGUgZXhwZXJpbWVudGFsIGNoYW5uZWwgb2YgUmVhY3QsIHNvIGV4cG9ydCBpdCBmcm9tIGhlcmUgc28gdGhhdCBpdCBjb21lcyBmcm9tIHRoZSBidW5kbGVkIHJ1bnRpbWVcbmZ1bmN0aW9uIHBhdGNoRmV0Y2goKSB7XG4gICAgcmV0dXJuICgwLCBfcGF0Y2hmZXRjaC5wYXRjaEZldGNoKSh7XG4gICAgICAgIHdvcmtBc3luY1N0b3JhZ2U6IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZSxcbiAgICAgICAgd29ya1VuaXRBc3luY1N0b3JhZ2U6IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVudHJ5LWJhc2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/entry-base.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wb3N0cG9uZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNENBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsbUdBQXNCOztBQUV4RCIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxhcHAtcmVuZGVyXFxyc2NcXHBvc3Rwb25lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5cbkZpbGVzIGluIHRoZSByc2MgZGlyZWN0b3J5IGFyZSBtZWFudCB0byBiZSBwYWNrYWdlZCBhcyBwYXJ0IG9mIHRoZSBSU0MgZ3JhcGggdXNpbmcgbmV4dC1hcHAtbG9hZGVyLlxuXG4qLyAvLyBXaGVuIHBvc3Rwb25lIGlzIGF2YWlsYWJsZSBpbiBjYW5hcnkgUmVhY3Qgd2UgY2FuIHN3aXRjaCB0byBpbXBvcnRpbmcgaXQgZGlyZWN0bHlcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUG9zdHBvbmVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9keW5hbWljcmVuZGVyaW5nLlBvc3Rwb25lO1xuICAgIH1cbn0pO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmdcIik7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBvc3Rwb25lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wcmVsb2Fkcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5REFBeUQsbUJBQU8sQ0FBQyx5R0FBVztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGFwcC1yZW5kZXJcXHJzY1xccHJlbG9hZHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcblxuRmlsZXMgaW4gdGhlIHJzYyBkaXJlY3RvcnkgYXJlIG1lYW50IHRvIGJlIHBhY2thZ2VkIGFzIHBhcnQgb2YgdGhlIFJTQyBncmFwaCB1c2luZyBuZXh0LWFwcC1sb2FkZXIuXG5cbiovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgcHJlY29ubmVjdDogbnVsbCxcbiAgICBwcmVsb2FkRm9udDogbnVsbCxcbiAgICBwcmVsb2FkU3R5bGU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgcHJlY29ubmVjdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmVjb25uZWN0O1xuICAgIH0sXG4gICAgcHJlbG9hZEZvbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHJlbG9hZEZvbnQ7XG4gICAgfSxcbiAgICBwcmVsb2FkU3R5bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHJlbG9hZFN0eWxlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ZG9tID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcInJlYWN0LWRvbVwiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHByZWxvYWRTdHlsZShocmVmLCBjcm9zc09yaWdpbiwgbm9uY2UpIHtcbiAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBhczogJ3N0eWxlJ1xuICAgIH07XG4gICAgaWYgKHR5cGVvZiBjcm9zc09yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5jcm9zc09yaWdpbiA9IGNyb3NzT3JpZ2luO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG5vbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLm5vbmNlID0gbm9uY2U7XG4gICAgfVxuICAgIF9yZWFjdGRvbS5kZWZhdWx0LnByZWxvYWQoaHJlZiwgb3B0cyk7XG59XG5mdW5jdGlvbiBwcmVsb2FkRm9udChocmVmLCB0eXBlLCBjcm9zc09yaWdpbiwgbm9uY2UpIHtcbiAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBhczogJ2ZvbnQnLFxuICAgICAgICB0eXBlXG4gICAgfTtcbiAgICBpZiAodHlwZW9mIGNyb3NzT3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLmNyb3NzT3JpZ2luID0gY3Jvc3NPcmlnaW47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygbm9uY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMubm9uY2UgPSBub25jZTtcbiAgICB9XG4gICAgX3JlYWN0ZG9tLmRlZmF1bHQucHJlbG9hZChocmVmLCBvcHRzKTtcbn1cbmZ1bmN0aW9uIHByZWNvbm5lY3QoaHJlZiwgY3Jvc3NPcmlnaW4sIG5vbmNlKSB7XG4gICAgY29uc3Qgb3B0cyA9IHt9O1xuICAgIGlmICh0eXBlb2YgY3Jvc3NPcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMuY3Jvc3NPcmlnaW4gPSBjcm9zc09yaWdpbjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBub25jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5ub25jZSA9IG5vbmNlO1xuICAgIH1cbiAgICA7XG4gICAgX3JlYWN0ZG9tLmRlZmF1bHQucHJlY29ubmVjdChocmVmLCBvcHRzKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlbG9hZHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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 new Error('Taint can only be used with the taint flag.');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy90YWludC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsTUFBcUMsR0FBRyxDQUF3QztBQUM3Ryx5QkFBeUIsTUFBcUMsR0FBRyxDQUFvQzs7QUFFckciLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcYXBwLXJlbmRlclxccnNjXFx0YWludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5GaWxlcyBpbiB0aGUgcnNjIGRpcmVjdG9yeSBhcmUgbWVhbnQgdG8gYmUgcGFja2FnZWQgYXMgcGFydCBvZiB0aGUgUlNDIGdyYXBoIHVzaW5nIG5leHQtYXBwLWxvYWRlci5cblxuKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB0YWludE9iamVjdFJlZmVyZW5jZTogbnVsbCxcbiAgICB0YWludFVuaXF1ZVZhbHVlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRhaW50T2JqZWN0UmVmZXJlbmNlO1xuICAgIH0sXG4gICAgdGFpbnRVbmlxdWVWYWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0YWludFVuaXF1ZVZhbHVlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgICAgIH07XG4gICAgfVxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgICB9XG4gICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgX19wcm90b19fOiBudWxsXG4gICAgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmZ1bmN0aW9uIG5vdEltcGxlbWVudGVkKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGFpbnQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZSB0YWludCBmbGFnLicpO1xufVxuY29uc3QgdGFpbnRPYmplY3RSZWZlcmVuY2UgPSBwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUID8gX3JlYWN0LmV4cGVyaW1lbnRhbF90YWludE9iamVjdFJlZmVyZW5jZSA6IG5vdEltcGxlbWVudGVkO1xuY29uc3QgdGFpbnRVbmlxdWVWYWx1ZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QgPyBfcmVhY3QuZXhwZXJpbWVudGFsX3RhaW50VW5pcXVlVmFsdWUgOiBub3RJbXBsZW1lbnRlZDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGFpbnQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0NBQWdDLFFBQXdCO0FBQ3hELGlDQUFpQyxRQUF3QjtBQUN6RCxpQ0FBaUMsUUFBd0I7QUFDekQsa0NBQWtDLFFBQXdCOztBQUUxRCIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxiYXNlLWh0dHBcXGhlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc05vZGVOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBpc05vZGVOZXh0UmVzcG9uc2U6IG51bGwsXG4gICAgaXNXZWJOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBpc1dlYk5leHRSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc05vZGVOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc05vZGVOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIGlzTm9kZU5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc05vZGVOZXh0UmVzcG9uc2U7XG4gICAgfSxcbiAgICBpc1dlYk5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzV2ViTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBpc1dlYk5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1dlYk5leHRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IGlzV2ViTmV4dFJlcXVlc3QgPSAocmVxKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSc7XG5jb25zdCBpc1dlYk5leHRSZXNwb25zZSA9IChyZXMpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IGlzTm9kZU5leHRSZXF1ZXN0ID0gKHJlcSk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnO1xuY29uc3QgaXNOb2RlTmV4dFJlc3BvbnNlID0gKHJlcyk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/helpers.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("// Combined load times for loading client components\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 getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\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 try {\n return ComponentMod.__next_app__.loadChunk(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcY2xpZW50LWNvbXBvbmVudC1yZW5kZXJlci1sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29tYmluZWQgbG9hZCB0aW1lcyBmb3IgbG9hZGluZyBjbGllbnQgY29tcG9uZW50c1xuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzOiBudWxsLFxuICAgIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzO1xuICAgIH0sXG4gICAgd3JhcENsaWVudENvbXBvbmVudExvYWRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyO1xuICAgIH1cbn0pO1xubGV0IGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9IDA7XG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzID0gMDtcbmxldCBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgPSAwO1xuZnVuY3Rpb24gd3JhcENsaWVudENvbXBvbmVudExvYWRlcihDb21wb25lbnRNb2QpIHtcbiAgICBpZiAoISgncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMpKSB7XG4gICAgICAgIHJldHVybiBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICByZXF1aXJlOiAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICAgICAgaWYgKGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9IHN0YXJ0VGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ICs9IDE7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbXBvbmVudE1vZC5fX25leHRfYXBwX18ucmVxdWlyZSguLi5hcmdzKTtcbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgKz0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRDaHVuazogKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENvbXBvbmVudE1vZC5fX25leHRfYXBwX18ubG9hZENodW5rKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyArPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59XG5mdW5jdGlvbiBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzKG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IG1ldHJpY3MgPSBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPT09IDAgPyB1bmRlZmluZWQgOiB7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRTdGFydCxcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzLFxuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnRcbiAgICB9O1xuICAgIGlmIChvcHRpb25zLnJlc2V0KSB7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9IDA7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyA9IDA7XG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudCA9IDA7XG4gICAgfVxuICAgIHJldHVybiBtZXRyaWNzO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 Dynamic IO 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQTZCLEdBQUcsQ0FBYTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxjcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldlwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldjtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5jb25zdCBlcnJvclJlZiA9IHtcbiAgICBjdXJyZW50OiBudWxsXG59O1xuLy8gUmVhY3QuY2FjaGUgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIGNhbmFyeS9leHBlcmltZW50YWwgUmVhY3QgY2hhbm5lbHMuXG5jb25zdCBjYWNoZSA9IHR5cGVvZiBfcmVhY3QuY2FjaGUgPT09ICdmdW5jdGlvbicgPyBfcmVhY3QuY2FjaGUgOiAoZm4pPT5mbjtcbi8vIFdoZW4gRHluYW1pYyBJTyBpcyBlbmFibGVkLCB3ZSByZWNvcmQgdGhlc2UgYXMgZXJyb3JzIHNvIHRoYXQgdGhleVxuLy8gYXJlIGNhcHR1cmVkIGJ5IHRoZSBkZXYgb3ZlcmxheSBhcyBpdCdzIG1vcmUgY3JpdGljYWwgdG8gZml4IHRoZXNlXG4vLyB3aGVuIGVuYWJsZWQuXG5jb25zdCBsb2dFcnJvck9yV2FybiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9EWU5BTUlDX0lPID8gY29uc29sZS5lcnJvciA6IGNvbnNvbGUud2Fybjtcbi8vIFdlIGRvbid0IHdhbnQgdG8gZGVkdXBlIGFjcm9zcyByZXF1ZXN0cy5cbi8vIFRoZSBkZXZlbG9wZXIgbWlnaHQndmUganVzdCBhdHRlbXB0ZWQgdG8gZml4IHRoZSB3YXJuaW5nIHNvIHdlIHNob3VsZCB3YXJuIGFnYWluIGlmIGl0IHN0aWxsIGhhcHBlbnMuXG5jb25zdCBmbHVzaEN1cnJlbnRFcnJvcklmTmV3ID0gY2FjaGUoLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBjYWNoZSBrZXlcbihrZXkpPT57XG4gICAgdHJ5IHtcbiAgICAgICAgbG9nRXJyb3JPcldhcm4oZXJyb3JSZWYuY3VycmVudCk7XG4gICAgfSBmaW5hbGx5e1xuICAgICAgICBlcnJvclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYoZ2V0TWVzc2FnZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBsb2dEZWR1cGVkRXJyb3IoLi4uYXJncykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZ2V0TWVzc2FnZSguLi5hcmdzKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHZhciBfc3RhY2s7XG4gICAgICAgICAgICBjb25zdCBjYWxsU3RhY2tGcmFtZXMgPSAoX3N0YWNrID0gbmV3IEVycm9yKCkuc3RhY2spID09IG51bGwgPyB2b2lkIDAgOiBfc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgaWYgKGNhbGxTdGFja0ZyYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGNhbGxTdGFja0ZyYW1lcy5sZW5ndGggPCA0KSB7XG4gICAgICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEVycm9yOlxuICAgICAgICAgICAgICAgIC8vICAgbG9nRGVkdXBlZEVycm9yXG4gICAgICAgICAgICAgICAgLy8gICBhc3luY0FwaUJlaW5nQWNjZXNzZWRTeW5jaHJvbm91c2x5XG4gICAgICAgICAgICAgICAgLy8gICA8dXNlcmxhbmQgY2FsbHNpdGU+XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBicmVha3MgaWYgc291cmNlbWFwcyB3aXRoIGlnbm9yZSBsaXN0cyBhcmUgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBjYWxsU3RhY2tGcmFtZXNbNF07XG4gICAgICAgICAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyhrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nRXJyb3JPcldhcm4obWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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("/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for dynamicIO where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"makeHangingPromise\", ({\n enumerable: true,\n get: function() {\n return makeHangingPromise;\n }\n}));\nfunction makeHangingPromise(signal, expression) {\n const hangingPromise = new Promise((_, reject)=>{\n signal.addEventListener('abort', ()=>{\n reject(new Error(`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.`));\n }, {\n once: true\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}\nfunction ignoreReject() {}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsWUFBWSxzR0FBc0csWUFBWTtBQUNuTCxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGR5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1Y3RzIGEgcHJvbWlzZSB0aGF0IHdpbGwgbmV2ZXIgcmVzb2x2ZS4gVGhpcyBpcyBwcmltYXJpbHlcbiAqIHVzZWZ1bCBmb3IgZHluYW1pY0lPIHdoZXJlIHdlIHVzZSBwcm9taXNlIHJlc29sdXRpb24gdGltaW5nIHRvIGRldGVybWluZSB3aGljaFxuICogcGFydHMgb2YgYSByZW5kZXIgY2FuIGJlIGluY2x1ZGVkIGluIGEgcHJlcmVuZGVyLlxuICpcbiAqIEBpbnRlcm5hbFxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwibWFrZUhhbmdpbmdQcm9taXNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1Byb21pc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1Byb21pc2Uoc2lnbmFsLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgaGFuZ2luZ1Byb21pc2UgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KT0+e1xuICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCAoKT0+e1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgRHVyaW5nIHByZXJlbmRlcmluZywgJHtleHByZXNzaW9ufSByZWplY3RzIHdoZW4gdGhlIHByZXJlbmRlciBpcyBjb21wbGV0ZS4gVHlwaWNhbGx5IHRoZXNlIGVycm9ycyBhcmUgaGFuZGxlZCBieSBSZWFjdCBidXQgaWYgeW91IG1vdmUgJHtleHByZXNzaW9ufSB0byBhIGRpZmZlcmVudCBjb250ZXh0IGJ5IHVzaW5nIFxcYHNldFRpbWVvdXRcXGAsIFxcYGFmdGVyXFxgLCBvciBzaW1pbGFyIGZ1bmN0aW9ucyB5b3UgbWF5IG9ic2VydmUgdGhpcyBlcnJvciBhbmQgeW91IHNob3VsZCBoYW5kbGUgaXQgaW4gdGhhdCBjb250ZXh0LmApKTtcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBXZSBhcmUgZmluZSBpZiBubyBvbmUgYWN0dWFsbHkgYXdhaXRzIHRoaXMgcHJvbWlzZS4gV2Ugc2hvdWxkbid0IGNvbnNpZGVyIHRoaXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiBzb1xuICAgIC8vIHdlIGF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciBoZXJlIHRvIHN1cHByZXNzIHRoaXMgd2FybmluZy4gSWYgeW91IGFjdHVhbGx5IGF3YWl0IHNvbWV3aGVyZSBvciBjb25zdHJ1Y3RcbiAgICAvLyB5b3VyIG93biBwcm9taXNlIG91dCBvZiBpdCB5b3UnbGwgbmVlZCB0byBlbnN1cmUgeW91IGhhbmRsZSB0aGUgZXJyb3Igd2hlbiBpdCByZWplY3RzLlxuICAgIGhhbmdpbmdQcm9taXNlLmNhdGNoKGlnbm9yZVJlamVjdCk7XG4gICAgcmV0dXJuIGhhbmdpbmdQcm9taXNlO1xufVxuZnVuY3Rpb24gaWdub3JlUmVqZWN0KCkge31cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZHluYW1pYy1yZW5kZXJpbmctdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/dynamic-rendering-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvYXBwLWRpci1tb2R1bGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsc0ZBQTBCO0FBQ25EO0FBQ0EsWUFBWSw0QkFBNEI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHdCQUF3QjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGxpYlxcYXBwLWRpci1tb2R1bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRDb21wb25lbnRUeXBlTW9kdWxlOiBudWxsLFxuICAgIGdldExheW91dE9yUGFnZU1vZHVsZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRDb21wb25lbnRUeXBlTW9kdWxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudFR5cGVNb2R1bGU7XG4gICAgfSxcbiAgICBnZXRMYXlvdXRPclBhZ2VNb2R1bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0TGF5b3V0T3JQYWdlTW9kdWxlO1xuICAgIH1cbn0pO1xuY29uc3QgX3NlZ21lbnQgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCIpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF5b3V0T3JQYWdlTW9kdWxlKGxvYWRlclRyZWUpIHtcbiAgICBjb25zdCB7IGxheW91dCwgcGFnZSwgZGVmYXVsdFBhZ2UgfSA9IGxvYWRlclRyZWVbMl07XG4gICAgY29uc3QgaXNMYXlvdXQgPSB0eXBlb2YgbGF5b3V0ICE9PSAndW5kZWZpbmVkJztcbiAgICBjb25zdCBpc1BhZ2UgPSB0eXBlb2YgcGFnZSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgY29uc3QgaXNEZWZhdWx0UGFnZSA9IHR5cGVvZiBkZWZhdWx0UGFnZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9hZGVyVHJlZVswXSA9PT0gX3NlZ21lbnQuREVGQVVMVF9TRUdNRU5UX0tFWTtcbiAgICBsZXQgbW9kID0gdW5kZWZpbmVkO1xuICAgIGxldCBtb2RUeXBlID0gdW5kZWZpbmVkO1xuICAgIGxldCBmaWxlUGF0aCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNMYXlvdXQpIHtcbiAgICAgICAgbW9kID0gYXdhaXQgbGF5b3V0WzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSAnbGF5b3V0JztcbiAgICAgICAgZmlsZVBhdGggPSBsYXlvdXRbMV07XG4gICAgfSBlbHNlIGlmIChpc1BhZ2UpIHtcbiAgICAgICAgbW9kID0gYXdhaXQgcGFnZVswXSgpO1xuICAgICAgICBtb2RUeXBlID0gJ3BhZ2UnO1xuICAgICAgICBmaWxlUGF0aCA9IHBhZ2VbMV07XG4gICAgfSBlbHNlIGlmIChpc0RlZmF1bHRQYWdlKSB7XG4gICAgICAgIG1vZCA9IGF3YWl0IGRlZmF1bHRQYWdlWzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSAncGFnZSc7XG4gICAgICAgIGZpbGVQYXRoID0gZGVmYXVsdFBhZ2VbMV07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1vZCxcbiAgICAgICAgbW9kVHlwZSxcbiAgICAgICAgZmlsZVBhdGhcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29tcG9uZW50VHlwZU1vZHVsZShsb2FkZXJUcmVlLCBtb2R1bGVUeXBlKSB7XG4gICAgY29uc3QgeyBbbW9kdWxlVHlwZV06IG1vZHVsZTEgfSA9IGxvYWRlclRyZWVbMl07XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUxICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gYXdhaXQgbW9kdWxlMVswXSgpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtZGlyLW1vZHVsZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/app-dir-module.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("/**\n * Clones a response by teeing the body so we can return two independent\n * ReadableStreams from it. This avoids the bug in the undici library around\n * response cloning.\n *\n * After cloning, the original response's body will be consumed and closed.\n *\n * @see https://github.com/vercel/next.js/pull/73274\n *\n * @param original - The original response to clone.\n * @returns A tuple containing two independent clones of the original response.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cloneResponse\", ({\n enumerable: true,\n get: function() {\n return cloneResponse;\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 });\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 });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2xvbmUtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcbGliXFxjbG9uZS1yZXNwb25zZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsb25lcyBhIHJlc3BvbnNlIGJ5IHRlZWluZyB0aGUgYm9keSBzbyB3ZSBjYW4gcmV0dXJuIHR3byBpbmRlcGVuZGVudFxuICogUmVhZGFibGVTdHJlYW1zIGZyb20gaXQuIFRoaXMgYXZvaWRzIHRoZSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZFxuICogcmVzcG9uc2UgY2xvbmluZy5cbiAqXG4gKiBBZnRlciBjbG9uaW5nLCB0aGUgb3JpZ2luYWwgcmVzcG9uc2UncyBib2R5IHdpbGwgYmUgY29uc3VtZWQgYW5kIGNsb3NlZC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzczMjc0XG4gKlxuICogQHBhcmFtIG9yaWdpbmFsIC0gVGhlIG9yaWdpbmFsIHJlc3BvbnNlIHRvIGNsb25lLlxuICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHR3byBpbmRlcGVuZGVudCBjbG9uZXMgb2YgdGhlIG9yaWdpbmFsIHJlc3BvbnNlLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY2xvbmVSZXNwb25zZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2xvbmVSZXNwb25zZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNsb25lUmVzcG9uc2Uob3JpZ2luYWwpIHtcbiAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaGFzIG5vIGJvZHksIHRoZW4gd2UgY2FuIGp1c3QgcmV0dXJuIHRoZSBvcmlnaW5hbCByZXNwb25zZVxuICAgIC8vIHR3aWNlIGJlY2F1c2UgaXQncyBpbW11dGFibGUuXG4gICAgaWYgKCFvcmlnaW5hbC5ib2R5KSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBvcmlnaW5hbCxcbiAgICAgICAgICAgIG9yaWdpbmFsXG4gICAgICAgIF07XG4gICAgfVxuICAgIGNvbnN0IFtib2R5MSwgYm9keTJdID0gb3JpZ2luYWwuYm9keS50ZWUoKTtcbiAgICBjb25zdCBjbG9uZWQxID0gbmV3IFJlc3BvbnNlKGJvZHkxLCB7XG4gICAgICAgIHN0YXR1czogb3JpZ2luYWwuc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiBvcmlnaW5hbC5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBvcmlnaW5hbC5oZWFkZXJzXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNsb25lZDEsICd1cmwnLCB7XG4gICAgICAgIHZhbHVlOiBvcmlnaW5hbC51cmxcbiAgICB9KTtcbiAgICBjb25zdCBjbG9uZWQyID0gbmV3IFJlc3BvbnNlKGJvZHkyLCB7XG4gICAgICAgIHN0YXR1czogb3JpZ2luYWwuc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiBvcmlnaW5hbC5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBvcmlnaW5hbC5oZWFkZXJzXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNsb25lZDIsICd1cmwnLCB7XG4gICAgICAgIHZhbHVlOiBvcmlnaW5hbC51cmxcbiAgICB9KTtcbiAgICByZXR1cm4gW1xuICAgICAgICBjbG9uZWQxLFxuICAgICAgICBjbG9uZWQyXG4gICAgXTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xvbmUtcmVzcG9uc2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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 new _invarianterror.InvariantError('No cached 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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVkdXBlLWZldGNoLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixxREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBdUQsbUJBQU8sQ0FBQyxpR0FBTztBQUN0RSx1QkFBdUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDakQsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxPQUFPO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGxpYlxcZGVkdXBlLWZldGNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvZDRlNzhjNDJhOTRiZTAyN2I0ZGM3ZWQyNjU5YTVmZGRmYmY5YmQ0ZS9wYWNrYWdlcy9yZWFjdC9zcmMvUmVhY3RGZXRjaC5qc1xuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlRGVkdXBlRmV0Y2hcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZHVwZUZldGNoO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfY2xvbmVyZXNwb25zZSA9IHJlcXVpcmUoXCIuL2Nsb25lLXJlc3BvbnNlXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5jb25zdCBzaW1wbGVDYWNoZUtleSA9ICdbXCJHRVRcIixbXSxudWxsLFwiZm9sbG93XCIsbnVsbCxudWxsLG51bGwsbnVsbF0nIC8vIGdlbmVyYXRlQ2FjaGVLZXkobmV3IFJlcXVlc3QoJ2h0dHBzOi8vYmxhbmsnKSk7XG47XG5mdW5jdGlvbiBnZW5lcmF0ZUNhY2hlS2V5KHJlcXVlc3QpIHtcbiAgICAvLyBXZSBwaWNrIHRoZSBmaWVsZHMgdGhhdCBnb2VzIGludG8gdGhlIGtleSB1c2VkIHRvIGRlZHVwZSByZXF1ZXN0cy5cbiAgICAvLyBXZSBkb24ndCBpbmNsdWRlIHRoZSBgY2FjaGVgIGZpZWxkLCBiZWNhdXNlIHdlIGVuZCB1cCB1c2luZyB3aGF0ZXZlclxuICAgIC8vIGNhY2hpbmcgcmVzdWx0ZWQgZnJvbSB0aGUgZmlyc3QgcmVxdWVzdC5cbiAgICAvLyBOb3RhYmx5IHdlIGN1cnJlbnRseSBkb24ndCBjb25zaWRlciBub24tc3RhbmRhcmQgKG9yIGZ1dHVyZSkgb3B0aW9ucy5cbiAgICAvLyBUaGlzIG1pZ2h0IG5vdCBiZSBzYWZlLiBUT0RPOiB3YXJuIGZvciBub24tc3RhbmRhcmQgZXh0ZW5zaW9ucyBkaWZmZXJpbmcuXG4gICAgLy8gSUYgWU9VIENIQU5HRSBUSElTIFVQREFURSBUSEUgc2ltcGxlQ2FjaGVLZXkgQUJPVkUuXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgcmVxdWVzdC5tZXRob2QsXG4gICAgICAgIEFycmF5LmZyb20ocmVxdWVzdC5oZWFkZXJzLmVudHJpZXMoKSksXG4gICAgICAgIHJlcXVlc3QubW9kZSxcbiAgICAgICAgcmVxdWVzdC5yZWRpcmVjdCxcbiAgICAgICAgcmVxdWVzdC5jcmVkZW50aWFscyxcbiAgICAgICAgcmVxdWVzdC5yZWZlcnJlcixcbiAgICAgICAgcmVxdWVzdC5yZWZlcnJlclBvbGljeSxcbiAgICAgICAgcmVxdWVzdC5pbnRlZ3JpdHlcbiAgICBdKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZHVwZUZldGNoKG9yaWdpbmFsRmV0Y2gpIHtcbiAgICBjb25zdCBnZXRDYWNoZUVudHJpZXMgPSBfcmVhY3QuY2FjaGUoLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSB1cmwgaXMgdGhlIGNhY2hlIGtleVxuICAgICh1cmwpPT5bXSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGRlZHVwZUZldGNoKHJlc291cmNlLCBvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2lnbmFsKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBwYXNzZWQgYSBzaWduYWwsIHRoZW4gd2UgYXNzdW1lIHRoYXRcbiAgICAgICAgICAgIC8vIHNvbWVvbmUgZWxzZSBjb250cm9scyB0aGUgbGlmZXRpbWUgb2YgdGhpcyBvYmplY3QgYW5kIG9wdHMgb3V0IG9mXG4gICAgICAgICAgICAvLyBjYWNoaW5nLiBJdCdzIGVmZmVjdGl2ZWx5IHRoZSBvcHQtb3V0IG1lY2hhbmlzbS5cbiAgICAgICAgICAgIC8vIElkZWFsbHkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gY2hlY2sgdGhpcyBvbiB0aGUgUmVxdWVzdCBidXRcbiAgICAgICAgICAgIC8vIGl0IGFsd2F5cyBnZXRzIGluaXRpYWxpemVkIHdpdGggaXRzIG93biBzaWduYWwgc28gd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIGtub3cgaWYgaXQncyBzdXBwb3NlZCB0byBvdmVycmlkZSAtIHVubGVzcyB3ZSBhbHNvIG92ZXJyaWRlIHRoZVxuICAgICAgICAgICAgLy8gUmVxdWVzdCBjb25zdHJ1Y3Rvci5cbiAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOb3JtYWxpemUgdGhlIFJlcXVlc3RcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgbGV0IGNhY2hlS2V5O1xuICAgICAgICBpZiAodHlwZW9mIHJlc291cmNlID09PSAnc3RyaW5nJyAmJiAhb3B0aW9ucykge1xuICAgICAgICAgICAgLy8gRmFzdCBwYXRoLlxuICAgICAgICAgICAgY2FjaGVLZXkgPSBzaW1wbGVDYWNoZUtleTtcbiAgICAgICAgICAgIHVybCA9IHJlc291cmNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTm9ybWFsaXplIHRoZSByZXF1ZXN0LlxuICAgICAgICAgICAgLy8gaWYgcmVzb3VyY2UgaXMgbm90IGEgc3RyaW5nIG9yIGEgVVJMIChpdHMgYW4gaW5zdGFuY2Ugb2YgUmVxdWVzdClcbiAgICAgICAgICAgIC8vIHRoZW4gZG8gbm90IGluc3RhbnRpYXRlIGEgbmV3IFJlcXVlc3QgYnV0IGluc3RlYWRcbiAgICAgICAgICAgIC8vIHJldXNlIHRoZSByZXF1ZXN0IGFzIHRvIG5vdCBkaXN0dXJiIHRoZSBib2R5IGluIHRoZSBldmVudCBpdCdzIGEgUmVhZGFibGVTdHJlYW0uXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0ID0gdHlwZW9mIHJlc291cmNlID09PSAnc3RyaW5nJyB8fCByZXNvdXJjZSBpbnN0YW5jZW9mIFVSTCA/IG5ldyBSZXF1ZXN0KHJlc291cmNlLCBvcHRpb25zKSA6IHJlc291cmNlO1xuICAgICAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnIHx8IHJlcXVlc3Qua2VlcGFsaXZlKSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgY3VycmVudGx5IGRvbid0IGRlZHVwZSByZXF1ZXN0cyB0aGF0IG1pZ2h0IGhhdmUgc2lkZS1lZmZlY3RzLiBUaG9zZVxuICAgICAgICAgICAgICAgIC8vIGhhdmUgdG8gYmUgZXhwbGljaXRseSBjYWNoZWQuIFdlIGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0IGRvZXNuJ3QgaGF2ZSBhXG4gICAgICAgICAgICAgICAgLy8gYm9keSBpZiBpdCdzIEdFVCBvciBIRUFELlxuICAgICAgICAgICAgICAgIC8vIGtlZXBhbGl2ZSBnZXRzIHRyZWF0ZWQgdGhlIHNhbWUgYXMgaWYgeW91IHBhc3NlZCBhIGN1c3RvbSBjYWNoZSBzaWduYWwuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRmV0Y2gocmVzb3VyY2UsIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FjaGVLZXkgPSBnZW5lcmF0ZUNhY2hlS2V5KHJlcXVlc3QpO1xuICAgICAgICAgICAgdXJsID0gcmVxdWVzdC51cmw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVFbnRyaWVzID0gZ2V0Q2FjaGVFbnRyaWVzKHVybCk7XG4gICAgICAgIGZvcihsZXQgaSA9IDAsIGogPSBjYWNoZUVudHJpZXMubGVuZ3RoOyBpIDwgajsgaSArPSAxKXtcbiAgICAgICAgICAgIGNvbnN0IFtrZXksIHByb21pc2VdID0gY2FjaGVFbnRyaWVzW2ldO1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gY2FjaGVLZXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gY2FjaGVFbnRyaWVzW2ldWzJdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlKSB0aHJvdyBuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdObyBjYWNoZWQgcmVzcG9uc2UnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UncmUgY2xvbmluZyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhpcyB1dGlsaXR5IGJlY2F1c2UgdGhlcmUgZXhpc3RzXG4gICAgICAgICAgICAgICAgICAgIC8vIGEgYnVnIGluIHRoZSB1bmRpY2kgbGlicmFyeSBhcm91bmQgcmVzcG9uc2UgY2xvbmluZy4gU2VlIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBmb2xsb3dpbmcgcHVsbCByZXF1ZXN0IGZvciBtb3JlIGRldGFpbHM6XG4gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzczMjc0XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtjbG9uZWQxLCBjbG9uZWQyXSA9ICgwLCBfY2xvbmVyZXNwb25zZS5jbG9uZVJlc3BvbnNlKShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlRW50cmllc1tpXVsyXSA9IGNsb25lZDI7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZWQxO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFdlIHBhc3MgdGhlIG9yaWdpbmFsIGFyZ3VtZW50cyBoZXJlIGluIGNhc2Ugbm9ybWFsaXppbmcgdGhlIFJlcXVlc3RcbiAgICAgICAgLy8gZG9lc24ndCBpbmNsdWRlIGFsbCB0aGUgb3B0aW9ucyBpbiB0aGlzIGVudmlyb25tZW50LlxuICAgICAgICBjb25zdCBwcm9taXNlID0gb3JpZ2luYWxGZXRjaChyZXNvdXJjZSwgb3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gW1xuICAgICAgICAgICAgY2FjaGVLZXksXG4gICAgICAgICAgICBwcm9taXNlLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICBdO1xuICAgICAgICBjYWNoZUVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oKHJlc3BvbnNlKT0+e1xuICAgICAgICAgICAgLy8gV2UncmUgY2xvbmluZyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhpcyB1dGlsaXR5IGJlY2F1c2UgdGhlcmUgZXhpc3RzXG4gICAgICAgICAgICAvLyBhIGJ1ZyBpbiB0aGUgdW5kaWNpIGxpYnJhcnkgYXJvdW5kIHJlc3BvbnNlIGNsb25pbmcuIFNlZSB0aGVcbiAgICAgICAgICAgIC8vIGZvbGxvd2luZyBwdWxsIHJlcXVlc3QgZm9yIG1vcmUgZGV0YWlsczpcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzczMjc0XG4gICAgICAgICAgICBjb25zdCBbY2xvbmVkMSwgY2xvbmVkMl0gPSAoMCwgX2Nsb25lcmVzcG9uc2UuY2xvbmVSZXNwb25zZSkocmVzcG9uc2UpO1xuICAgICAgICAgICAgZW50cnlbMl0gPSBjbG9uZWQyO1xuICAgICAgICAgICAgcmV0dXJuIGNsb25lZDE7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZHVwZS1mZXRjaC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.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("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"LRUCache\", ({\n enumerable: true,\n get: function() {\n return LRUCache;\n }\n}));\nclass LRUCache {\n constructor(maxSize, calculateSize){\n this.cache = new Map();\n this.sizes = new Map();\n this.totalSize = 0;\n this.maxSize = maxSize;\n this.calculateSize = calculateSize || (()=>1);\n }\n set(key, value) {\n if (!key || !value) return;\n const size = this.calculateSize(value);\n if (size > this.maxSize) {\n console.warn('Single item size exceeds maxSize');\n return;\n }\n if (this.cache.has(key)) {\n this.totalSize -= this.sizes.get(key) || 0;\n }\n this.cache.set(key, value);\n this.sizes.set(key, size);\n this.totalSize += size;\n this.touch(key);\n }\n has(key) {\n if (!key) return false;\n this.touch(key);\n return Boolean(this.cache.get(key));\n }\n get(key) {\n if (!key) return;\n const value = this.cache.get(key);\n if (value === undefined) {\n return undefined;\n }\n this.touch(key);\n return value;\n }\n touch(key) {\n const value = this.cache.get(key);\n if (value !== undefined) {\n this.cache.delete(key);\n this.cache.set(key, value);\n this.evictIfNecessary();\n }\n }\n evictIfNecessary() {\n while(this.totalSize > this.maxSize && this.cache.size > 0){\n this.evictLeastRecentlyUsed();\n }\n }\n evictLeastRecentlyUsed() {\n const lruKey = this.cache.keys().next().value;\n if (lruKey !== undefined) {\n const lruSize = this.sizes.get(lruKey) || 0;\n this.totalSize -= lruSize;\n this.cache.delete(lruKey);\n this.sizes.delete(lruKey);\n }\n }\n reset() {\n this.cache.clear();\n this.sizes.clear();\n this.totalSize = 0;\n }\n keys() {\n return [\n ...this.cache.keys()\n ];\n }\n remove(key) {\n if (this.cache.has(key)) {\n this.totalSize -= this.sizes.get(key) || 0;\n this.cache.delete(key);\n this.sizes.delete(key);\n }\n }\n clear() {\n this.cache.clear();\n this.sizes.clear();\n this.totalSize = 0;\n }\n get size() {\n return this.cache.size;\n }\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvbHJ1LWNhY2hlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNENBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcbGliXFxscnUtY2FjaGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJMUlVDYWNoZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTFJVQ2FjaGU7XG4gICAgfVxufSk7XG5jbGFzcyBMUlVDYWNoZSB7XG4gICAgY29uc3RydWN0b3IobWF4U2l6ZSwgY2FsY3VsYXRlU2l6ZSl7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuc2l6ZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMudG90YWxTaXplID0gMDtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gbWF4U2l6ZTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVTaXplID0gY2FsY3VsYXRlU2l6ZSB8fCAoKCk9PjEpO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAoIWtleSB8fCAhdmFsdWUpIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuY2FsY3VsYXRlU2l6ZSh2YWx1ZSk7XG4gICAgICAgIGlmIChzaXplID4gdGhpcy5tYXhTaXplKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1NpbmdsZSBpdGVtIHNpemUgZXhjZWVkcyBtYXhTaXplJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMudG90YWxTaXplIC09IHRoaXMuc2l6ZXMuZ2V0KGtleSkgfHwgMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhY2hlLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgdGhpcy5zaXplcy5zZXQoa2V5LCBzaXplKTtcbiAgICAgICAgdGhpcy50b3RhbFNpemUgKz0gc2l6ZTtcbiAgICAgICAgdGhpcy50b3VjaChrZXkpO1xuICAgIH1cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIGlmICgha2V5KSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHRoaXMudG91Y2goa2V5KTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5jYWNoZS5nZXQoa2V5KSk7XG4gICAgfVxuICAgIGdldChrZXkpIHtcbiAgICAgICAgaWYgKCFrZXkpIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvdWNoKGtleSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgdG91Y2goa2V5KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZXZpY3RJZk5lY2Vzc2FyeSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGV2aWN0SWZOZWNlc3NhcnkoKSB7XG4gICAgICAgIHdoaWxlKHRoaXMudG90YWxTaXplID4gdGhpcy5tYXhTaXplICYmIHRoaXMuY2FjaGUuc2l6ZSA+IDApe1xuICAgICAgICAgICAgdGhpcy5ldmljdExlYXN0UmVjZW50bHlVc2VkKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZpY3RMZWFzdFJlY2VudGx5VXNlZCgpIHtcbiAgICAgICAgY29uc3QgbHJ1S2V5ID0gdGhpcy5jYWNoZS5rZXlzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICBpZiAobHJ1S2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxydVNpemUgPSB0aGlzLnNpemVzLmdldChscnVLZXkpIHx8IDA7XG4gICAgICAgICAgICB0aGlzLnRvdGFsU2l6ZSAtPSBscnVTaXplO1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUobHJ1S2V5KTtcbiAgICAgICAgICAgIHRoaXMuc2l6ZXMuZGVsZXRlKGxydUtleSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5zaXplcy5jbGVhcigpO1xuICAgICAgICB0aGlzLnRvdGFsU2l6ZSA9IDA7XG4gICAgfVxuICAgIGtleXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi50aGlzLmNhY2hlLmtleXMoKVxuICAgICAgICBdO1xuICAgIH1cbiAgICByZW1vdmUoa2V5KSB7XG4gICAgICAgIGlmICh0aGlzLmNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLnRvdGFsU2l6ZSAtPSB0aGlzLnNpemVzLmdldChrZXkpIHx8IDA7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgdGhpcy5zaXplcy5kZWxldGUoa2V5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgICAgICB0aGlzLnNpemVzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudG90YWxTaXplID0gMDtcbiAgICB9XG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlLnNpemU7XG4gICAgfVxuICAgIGdldCBjdXJyZW50U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG90YWxTaXplO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bHJ1LWNhY2hlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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 _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 new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${route}\", must be a non-negative number or false`);\n }\n return normalizedRevalidate;\n } catch (err) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes('Invalid revalidate')) {\n throw err;\n }\n return undefined;\n }\n}\nfunction validateTags(tags, description) {\n const validTags = [];\n const invalidTags = [];\n for(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 var _workStore_requestEndedState;\n // If the static generation store is not available, we can't track the fetch\n if (!workStore) return;\n if ((_workStore_requestEndedState = workStore.requestEndedState) == null ? void 0 : _workStore_requestEndedState.ended) return;\n const isDebugBuild = (!!process.env.NEXT_DEBUG_BUILD || process.env.NEXT_SSG_FETCH_METRICS === '1') && workStore.isStaticGeneration;\n const isDevelopment = \"development\" === 'development';\n if (// The only time we want to track fetch metrics outside of development is when\n // we are performing a static generation & we are in debug mode.\n !isDebugBuild && !isDevelopment) {\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}\nfunction createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) {\n // Create the patched fetch function. We don't set the type here, as it's\n // verified as the return value of this function.\n const patched = async (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 && workUnitStore.type === 'prerender' ? workUnitStore.cacheSignal : 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 let currentFetchRevalidate = getNextField('revalidate');\n const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`);\n const revalidateStore = workUnitStore && (workUnitStore.type === 'cache' || workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-ppr' || workUnitStore.type === 'prerender-legacy') ? workUnitStore : undefined;\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 || workUnitStore.type === 'unstable-cache' ? [] : workUnitStore.implicitTags;\n // Inside unstable-cache we treat it the same as force-no-store on the\n // page.\n const pageFetchCacheMode = workUnitStore && workUnitStore.type === 'unstable-cache' ? 'force-no-store' : workStore.fetchCache;\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 (// if we are inside of \"use cache\"/\"unstable_cache\"\n // we shouldn't set the revalidate to 0 as it's overridden\n // by the cache context\n (workUnitStore == null ? void 0 : workUnitStore.type) !== 'cache' && (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 const autoNoCache = // this condition is hit for null/undefined\n // eslint-disable-next-line eqeqeq\n hasNoExplicitCacheConfig && // we disable automatic no caching behavior during build time SSG so that we can still\n // leverage the fetch cache between SSG workers\n !workStore.isPrerendering || (hasUnCacheableHeader || isUnCacheableMethod) && revalidateStore && revalidateStore.revalidate === 0;\n if (hasNoExplicitCacheConfig && workUnitStore !== undefined && workUnitStore.type === 'prerender') {\n // If we have no cache config, and we're in Dynamic I/O prerendering, it'll be a dynamic call.\n // We don't have to issue that dynamic call.\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\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 new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`);\n }\n cacheReason = 'fetchCache = only-no-store';\n break;\n }\n case 'only-cache':\n {\n if (currentFetchCacheConfig === 'no-store') {\n throw new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`);\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 default:\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 && workUnitStore.type === 'prerender') {\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n } else {\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\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. currentFetchRevalidate.\n if (revalidateStore && currentFetchRevalidate === finalRevalidate) {\n revalidateStore.revalidate = finalRevalidate;\n }\n }\n const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0;\n let cacheKey;\n const { incrementalCache } = workStore;\n const requestStore = workUnitStore !== undefined && workUnitStore.type === 'request' ? workUnitStore : undefined;\n if (incrementalCache && (isCacheableRevalidate || (requestStore == null ? void 0 : requestStore.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 = ()=>Promise.resolve();\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 || (requestStore == null ? void 0 : requestStore.serverComponentsHmrCache))) {\n const normalizedRevalidate = finalRevalidate >= _constants1.INFINITE_CACHE ? _constants1.CACHE_ONE_YEAR : finalRevalidate;\n const externalRevalidate = finalRevalidate >= _constants1.INFINITE_CACHE ? false : finalRevalidate;\n if (workUnitStore && workUnitStore.type === 'prerender') {\n // We are prerendering at build time or revalidate time with dynamicIO so we need to\n // buffer the response so we can guarantee it can be read in a 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 checking the serverComponentsHmrCache because we aren't in\n // dev mode.\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n revalidate: externalRevalidate,\n fetchUrl,\n fetchIdx,\n tags\n });\n await handleUnlock();\n // We 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 } else {\n // 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 const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(res);\n // We are dynamically rendering including dev mode. We want to return\n // the response to the caller as soon as possible because it might stream\n // over a very long time.\n cloned1.arrayBuffer().then(async (arrayBuffer)=>{\n var _requestStore_serverComponentsHmrCache;\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 requestStore == null ? void 0 : (_requestStore_serverComponentsHmrCache = requestStore.serverComponentsHmrCache) == null ? void 0 : _requestStore_serverComponentsHmrCache.set(cacheKey, fetchedData);\n if (isCacheableRevalidate) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n revalidate: externalRevalidate,\n fetchUrl,\n fetchIdx,\n tags\n });\n }\n }).catch((error)=>console.warn(`Failed to set fetch cache`, input, error)).finally(handleUnlock);\n return cloned2;\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 });\n };\n let cacheReasonOverride;\n let isForegroundRevalidate = false;\n let isHmrRefreshCache = false;\n if (cacheKey && incrementalCache) {\n let cachedFetchData;\n if ((requestStore == null ? void 0 : requestStore.isHmrRefresh) && requestStore.serverComponentsHmrCache) {\n cachedFetchData = requestStore.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,\n isFallback: false\n });\n if (hasNoExplicitCacheConfig) {\n // We sometimes use the cache to dedupe fetches that do not specify a cache configuration\n // In these cases we want to make sure we still exclude them from prerenders if dynamicIO is on\n // so we introduce an artificial Task boundary here.\n if (workUnitStore && workUnitStore.type === 'prerender') {\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\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 && workUnitStore.type === 'prerender') {\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n } else {\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`);\n }\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 && workUnitStore.type === 'prerender') {\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n } else {\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\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 dynamicIO 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 dynamicIO.\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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcGF0Y2gtZmV0Y2guanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsdUZBQW1CO0FBQzlDLGdCQUFnQixtQkFBTyxDQUFDLGlGQUFnQjtBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDakQsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxxQkFBcUIsbUJBQU8sQ0FBQyxpRkFBZ0I7QUFDN0MsdUJBQXVCLG1CQUFPLENBQUMsd0ZBQW1CO0FBQ2xELG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCx1QkFBdUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDakQsc0JBQXNCLFFBQXdCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVix5REFBeUQsY0FBYyxRQUFRLE1BQU07QUFDckY7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixpQkFBaUI7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixVQUFVO0FBQ1Y7QUFDQTtBQUNBLGtEQUFrRCxzQ0FBc0M7QUFDeEYsYUFBYTtBQUNiLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0UsWUFB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Q1Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcbGliXFxwYXRjaC1mZXRjaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5FWFRfUEFUQ0hfU1lNQk9MOiBudWxsLFxuICAgIGNyZWF0ZVBhdGNoZWRGZXRjaGVyOiBudWxsLFxuICAgIHBhdGNoRmV0Y2g6IG51bGwsXG4gICAgdmFsaWRhdGVSZXZhbGlkYXRlOiBudWxsLFxuICAgIHZhbGlkYXRlVGFnczogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBORVhUX1BBVENIX1NZTUJPTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1BBVENIX1NZTUJPTDtcbiAgICB9LFxuICAgIGNyZWF0ZVBhdGNoZWRGZXRjaGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVBhdGNoZWRGZXRjaGVyO1xuICAgIH0sXG4gICAgcGF0Y2hGZXRjaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXRjaEZldGNoO1xuICAgIH0sXG4gICAgdmFsaWRhdGVSZXZhbGlkYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlUmV2YWxpZGF0ZTtcbiAgICB9LFxuICAgIHZhbGlkYXRlVGFnczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZVRhZ3M7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4vdHJhY2UvY29uc3RhbnRzXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9jb25zdGFudHMxID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9kZWR1cGVmZXRjaCA9IHJlcXVpcmUoXCIuL2RlZHVwZS1mZXRjaFwiKTtcbmNvbnN0IF9yZXNwb25zZWNhY2hlID0gcmVxdWlyZShcIi4uL3Jlc3BvbnNlLWNhY2hlXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX2Nsb25lcmVzcG9uc2UgPSByZXF1aXJlKFwiLi9jbG9uZS1yZXNwb25zZVwiKTtcbmNvbnN0IGlzRWRnZVJ1bnRpbWUgPSBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IE5FWFRfUEFUQ0hfU1lNQk9MID0gU3ltYm9sLmZvcignbmV4dC1wYXRjaCcpO1xuZnVuY3Rpb24gaXNGZXRjaFBhdGNoZWQoKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXNbTkVYVF9QQVRDSF9TWU1CT0xdID09PSB0cnVlO1xufVxuZnVuY3Rpb24gdmFsaWRhdGVSZXZhbGlkYXRlKHJldmFsaWRhdGVWYWwsIHJvdXRlKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAocmV2YWxpZGF0ZVZhbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gX2NvbnN0YW50czEuSU5GSU5JVEVfQ0FDSEU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldmFsaWRhdGVWYWwgPT09ICdudW1iZXInICYmICFpc05hTihyZXZhbGlkYXRlVmFsKSAmJiByZXZhbGlkYXRlVmFsID4gLTEpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZVZhbDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmV2YWxpZGF0ZVZhbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZXZhbGlkYXRlIHZhbHVlIFwiJHtyZXZhbGlkYXRlVmFsfVwiIG9uIFwiJHtyb3V0ZX1cIiwgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIgb3IgZmFsc2VgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZFJldmFsaWRhdGU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGhhbmRsZSBjbGllbnQgY29tcG9uZW50IGVycm9yIGZyb20gYXR0ZW1wdGluZyB0byBjaGVjayByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcygnSW52YWxpZCByZXZhbGlkYXRlJykpIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHZhbGlkYXRlVGFncyh0YWdzLCBkZXNjcmlwdGlvbikge1xuICAgIGNvbnN0IHZhbGlkVGFncyA9IFtdO1xuICAgIGNvbnN0IGludmFsaWRUYWdzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCB0YWcgPSB0YWdzW2ldO1xuICAgICAgICBpZiAodHlwZW9mIHRhZyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGludmFsaWRUYWdzLnB1c2goe1xuICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICByZWFzb246ICdpbnZhbGlkIHR5cGUsIG11c3QgYmUgYSBzdHJpbmcnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0YWcubGVuZ3RoID4gX2NvbnN0YW50czEuTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgaW52YWxpZFRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgIHJlYXNvbjogYGV4Y2VlZGVkIG1heCBsZW5ndGggb2YgJHtfY29uc3RhbnRzMS5ORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIfWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsaWRUYWdzLnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsaWRUYWdzLmxlbmd0aCA+IF9jb25zdGFudHMxLk5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBXYXJuaW5nOiBleGNlZWRlZCBtYXggdGFnIGNvdW50IGZvciAke2Rlc2NyaXB0aW9ufSwgZHJvcHBlZCB0YWdzOmAsIHRhZ3Muc2xpY2UoaSkuam9pbignLCAnKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW52YWxpZFRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IGludmFsaWQgdGFncyBwYXNzZWQgdG8gJHtkZXNjcmlwdGlvbn06IGApO1xuICAgICAgICBmb3IgKGNvbnN0IHsgdGFnLCByZWFzb24gfSBvZiBpbnZhbGlkVGFncyl7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdGFnOiBcIiR7dGFnfVwiICR7cmVhc29ufWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWxpZFRhZ3M7XG59XG5mdW5jdGlvbiB0cmFja0ZldGNoTWV0cmljKHdvcmtTdG9yZSwgY3R4KSB7XG4gICAgdmFyIF93b3JrU3RvcmVfcmVxdWVzdEVuZGVkU3RhdGU7XG4gICAgLy8gSWYgdGhlIHN0YXRpYyBnZW5lcmF0aW9uIHN0b3JlIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbid0IHRyYWNrIHRoZSBmZXRjaFxuICAgIGlmICghd29ya1N0b3JlKSByZXR1cm47XG4gICAgaWYgKChfd29ya1N0b3JlX3JlcXVlc3RFbmRlZFN0YXRlID0gd29ya1N0b3JlLnJlcXVlc3RFbmRlZFN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX3dvcmtTdG9yZV9yZXF1ZXN0RW5kZWRTdGF0ZS5lbmRlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGlzRGVidWdCdWlsZCA9ICghIXByb2Nlc3MuZW52Lk5FWFRfREVCVUdfQlVJTEQgfHwgcHJvY2Vzcy5lbnYuTkVYVF9TU0dfRkVUQ0hfTUVUUklDUyA9PT0gJzEnKSAmJiB3b3JrU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uO1xuICAgIGNvbnN0IGlzRGV2ZWxvcG1lbnQgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JztcbiAgICBpZiAoLy8gVGhlIG9ubHkgdGltZSB3ZSB3YW50IHRvIHRyYWNrIGZldGNoIG1ldHJpY3Mgb3V0c2lkZSBvZiBkZXZlbG9wbWVudCBpcyB3aGVuXG4gICAgLy8gd2UgYXJlIHBlcmZvcm1pbmcgYSBzdGF0aWMgZ2VuZXJhdGlvbiAmIHdlIGFyZSBpbiBkZWJ1ZyBtb2RlLlxuICAgICFpc0RlYnVnQnVpbGQgJiYgIWlzRGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB3b3JrU3RvcmUuZmV0Y2hNZXRyaWNzID8/PSBbXTtcbiAgICB3b3JrU3RvcmUuZmV0Y2hNZXRyaWNzLnB1c2goe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIGVuZDogcGVyZm9ybWFuY2UudGltZU9yaWdpbiArIHBlcmZvcm1hbmNlLm5vdygpLFxuICAgICAgICBpZHg6IHdvcmtTdG9yZS5uZXh0RmV0Y2hJZCB8fCAwXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQYXRjaGVkRmV0Y2hlcihvcmlnaW5GZXRjaCwgeyB3b3JrQXN5bmNTdG9yYWdlLCB3b3JrVW5pdEFzeW5jU3RvcmFnZSB9KSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBwYXRjaGVkIGZldGNoIGZ1bmN0aW9uLiBXZSBkb24ndCBzZXQgdGhlIHR5cGUgaGVyZSwgYXMgaXQnc1xuICAgIC8vIHZlcmlmaWVkIGFzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBmdW5jdGlvbi5cbiAgICBjb25zdCBwYXRjaGVkID0gYXN5bmMgKGlucHV0LCBpbml0KT0+e1xuICAgICAgICB2YXIgX2luaXRfbWV0aG9kLCBfaW5pdF9uZXh0O1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QgPyBpbnB1dC51cmwgOiBpbnB1dCk7XG4gICAgICAgICAgICB1cmwudXNlcm5hbWUgPSAnJztcbiAgICAgICAgICAgIHVybC5wYXNzd29yZCA9ICcnO1xuICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBFcnJvciBjYXVzZWQgYnkgbWFsZm9ybWVkIFVSTCBzaG91bGQgYmUgaGFuZGxlZCBieSBuYXRpdmUgZmV0Y2hcbiAgICAgICAgICAgIHVybCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmZXRjaFVybCA9ICh1cmwgPT0gbnVsbCA/IHZvaWQgMCA6IHVybC5ocmVmKSA/PyAnJztcbiAgICAgICAgY29uc3QgbWV0aG9kID0gKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9tZXRob2QgPSBpbml0Lm1ldGhvZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X21ldGhvZC50b1VwcGVyQ2FzZSgpKSB8fCAnR0VUJztcbiAgICAgICAgLy8gRG8gY3JlYXRlIGEgbmV3IHNwYW4gdHJhY2UgZm9yIGludGVybmFsIGZldGNoZXMgaW4gdGhlXG4gICAgICAgIC8vIG5vbi12ZXJib3NlIG1vZGUuXG4gICAgICAgIGNvbnN0IGlzSW50ZXJuYWwgPSAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X25leHQgPSBpbml0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9uZXh0LmludGVybmFsKSA9PT0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaGlkZVNwYW4gPSBwcm9jZXNzLmVudi5ORVhUX09URUxfRkVUQ0hfRElTQUJMRUQgPT09ICcxJztcbiAgICAgICAgLy8gV2UgZG9uJ3QgdHJhY2sgZmV0Y2ggbWV0cmljcyBmb3IgaW50ZXJuYWwgZmV0Y2hlc1xuICAgICAgICAvLyBzbyBpdCdzIG5vdCBjcml0aWNhbCB0aGF0IHdlIGhhdmUgYSBzdGFydCB0aW1lLCBhcyBpdCB3b24ndCBiZSByZWNvcmRlZC5cbiAgICAgICAgLy8gVGhpcyBpcyB0byB3b3JrYXJvdW5kIGEgZmxha3kgaXNzdWUgd2hlcmUgcGVyZm9ybWFuY2UgQVBJcyBtaWdodFxuICAgICAgICAvLyBub3QgYmUgYXZhaWxhYmxlIGFuZCB3aWxsIHJlcXVpcmUgZm9sbG93LXVwIGludmVzdGlnYXRpb24uXG4gICAgICAgIGNvbnN0IGZldGNoU3RhcnQgPSBpc0ludGVybmFsID8gdW5kZWZpbmVkIDogcGVyZm9ybWFuY2UudGltZU9yaWdpbiArIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAvLyBEdXJpbmcgc3RhdGljIGdlbmVyYXRpb24gd2UgdHJhY2sgY2FjaGUgcmVhZHMgc28gd2UgY2FuIHJlYXNvbiBhYm91dCB3aGVuIHRoZXkgZmlsbFxuICAgICAgICBsZXQgY2FjaGVTaWduYWwgPSB3b3JrVW5pdFN0b3JlICYmIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgPyB3b3JrVW5pdFN0b3JlLmNhY2hlU2lnbmFsIDogbnVsbDtcbiAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICBjYWNoZVNpZ25hbC5iZWdpblJlYWQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoaXNJbnRlcm5hbCA/IF9jb25zdGFudHMuTmV4dE5vZGVTZXJ2ZXJTcGFuLmludGVybmFsRmV0Y2ggOiBfY29uc3RhbnRzLkFwcFJlbmRlclNwYW4uZmV0Y2gsIHtcbiAgICAgICAgICAgIGhpZGVTcGFuLFxuICAgICAgICAgICAga2luZDogX3RyYWNlci5TcGFuS2luZC5DTElFTlQsXG4gICAgICAgICAgICBzcGFuTmFtZTogW1xuICAgICAgICAgICAgICAgICdmZXRjaCcsXG4gICAgICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgICAgIGZldGNoVXJsXG4gICAgICAgICAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyksXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgJ2h0dHAudXJsJzogZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgJ2h0dHAubWV0aG9kJzogbWV0aG9kLFxuICAgICAgICAgICAgICAgICduZXQucGVlci5uYW1lJzogdXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgJ25ldC5wZWVyLnBvcnQnOiAodXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwucG9ydCkgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGFzeW5jICgpPT57XG4gICAgICAgICAgICB2YXIgX2dldFJlcXVlc3RNZXRhO1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhbiBpbnRlcm5hbCBmZXRjaCwgd2Ugc2hvdWxkIG5vdCBkbyBhbnkgc3BlY2lhbCB0cmVhdG1lbnQuXG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgaW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgd29ya1N0b3JlIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbid0IGRvIGFueVxuICAgICAgICAgICAgLy8gc3BlY2lhbCB0cmVhdG1lbnQgb2YgZmV0Y2gsIHRoZXJlZm9yZSBmYWxsYmFjayB0byB0aGUgb3JpZ2luYWxcbiAgICAgICAgICAgIC8vIGZldGNoIGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgICAgaWYgKCF3b3JrU3RvcmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGluaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGFsc28gZmFsbGJhY2sgdG8gdGhlIG9yaWdpbmFsIGZldGNoIGltcGxlbWVudGF0aW9uIGlmIHdlXG4gICAgICAgICAgICAvLyBhcmUgaW4gZHJhZnQgbW9kZSwgaXQgZG9lcyBub3QgY29uc3RpdHV0ZSBhIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgaW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVlc3RJbnB1dCA9IGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGlucHV0Lm1ldGhvZCA9PT0gJ3N0cmluZyc7XG4gICAgICAgICAgICBjb25zdCBnZXRSZXF1ZXN0TWV0YSA9IChmaWVsZCk9PntcbiAgICAgICAgICAgICAgICAvLyBJZiByZXF1ZXN0IGlucHV0IGlzIHByZXNlbnQgYnV0IGluaXQgaXMgbm90LCByZXRyaWV2ZSBmcm9tIGlucHV0IGZpcnN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdFtmaWVsZF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlIHx8IChpc1JlcXVlc3RJbnB1dCA/IGlucHV0W2ZpZWxkXSA6IG51bGwpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxldCBmaW5hbFJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBnZXROZXh0RmllbGQgPSAoZmllbGQpPT57XG4gICAgICAgICAgICAgICAgdmFyIF9pbml0X25leHQsIF9pbml0X25leHQxLCBfaW5wdXRfbmV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbmV4dCA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHRbZmllbGRdKSAhPT0gJ3VuZGVmaW5lZCcgPyBpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbmV4dDEgPSBpbml0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9uZXh0MVtmaWVsZF0gOiBpc1JlcXVlc3RJbnB1dCA/IChfaW5wdXRfbmV4dCA9IGlucHV0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5wdXRfbmV4dFtmaWVsZF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gUmVxdWVzdEluaXQgZG9lc24ndCBrZWVwIGV4dHJhIGZpZWxkcyBlLmcuIG5leHQgc28gaXQnc1xuICAgICAgICAgICAgLy8gb25seSBhdmFpbGFibGUgaWYgaW5pdCBpcyB1c2VkIHNlcGFyYXRlXG4gICAgICAgICAgICBsZXQgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9IGdldE5leHRGaWVsZCgncmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgY29uc3QgdGFncyA9IHZhbGlkYXRlVGFncyhnZXROZXh0RmllbGQoJ3RhZ3MnKSB8fCBbXSwgYGZldGNoICR7aW5wdXQudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdGVTdG9yZSA9IHdvcmtVbml0U3RvcmUgJiYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJyB8fCB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXInIHx8IHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInIHx8IHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1sZWdhY3knKSA/IHdvcmtVbml0U3RvcmUgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocmV2YWxpZGF0ZVN0b3JlKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFncykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29sbGVjdCB0YWdzIG9udG8gcGFyZW50IGNhY2hlcyBvciBwYXJlbnQgcHJlcmVuZGVycy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGVkVGFncyA9IHJldmFsaWRhdGVTdG9yZS50YWdzID8/IChyZXZhbGlkYXRlU3RvcmUudGFncyA9IFtdKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgdGFncyl7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbGxlY3RlZFRhZ3MuaW5jbHVkZXModGFnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3RlZFRhZ3MucHVzaCh0YWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaW1wbGljaXRUYWdzID0gIXdvcmtVbml0U3RvcmUgfHwgd29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnID8gW10gOiB3b3JrVW5pdFN0b3JlLmltcGxpY2l0VGFncztcbiAgICAgICAgICAgIC8vIEluc2lkZSB1bnN0YWJsZS1jYWNoZSB3ZSB0cmVhdCBpdCB0aGUgc2FtZSBhcyBmb3JjZS1uby1zdG9yZSBvbiB0aGVcbiAgICAgICAgICAgIC8vIHBhZ2UuXG4gICAgICAgICAgICBjb25zdCBwYWdlRmV0Y2hDYWNoZU1vZGUgPSB3b3JrVW5pdFN0b3JlICYmIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3Vuc3RhYmxlLWNhY2hlJyA/ICdmb3JjZS1uby1zdG9yZScgOiB3b3JrU3RvcmUuZmV0Y2hDYWNoZTtcbiAgICAgICAgICAgIGNvbnN0IGlzVXNpbmdOb1N0b3JlID0gISF3b3JrU3RvcmUuaXNVbnN0YWJsZU5vU3RvcmU7XG4gICAgICAgICAgICBsZXQgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPSBnZXRSZXF1ZXN0TWV0YSgnY2FjaGUnKTtcbiAgICAgICAgICAgIGxldCBjYWNoZVJlYXNvbiA9ICcnO1xuICAgICAgICAgICAgbGV0IGNhY2hlV2FybmluZztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSByZXZhbGlkYXRlIHZhbHVlIGNvbmZsaWN0cyB3aXRoIHRoZSBjYWNoZSB2YWx1ZSwgd2Ugc2hvdWxkIHdhcm4gdGhlIHVzZXIgYW5kIHVuc2V0IHRoZSBjb25mbGljdGluZyB2YWx1ZXMuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb25mbGljdGluZ1JldmFsaWRhdGUgPSAvLyByZXZhbGlkYXRlOiAwIGFuZCBjYWNoZTogZm9yY2UtY2FjaGVcbiAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ2ZvcmNlLWNhY2hlJyAmJiBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID09PSAwIHx8IC8vIHJldmFsaWRhdGU6ID4wIG9yIHJldmFsaWRhdGU6IGZhbHNlIGFuZCBjYWNoZTogbm8tc3RvcmVcbiAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLXN0b3JlJyAmJiAoY3VycmVudEZldGNoUmV2YWxpZGF0ZSA+IDAgfHwgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9PT0gZmFsc2UpO1xuICAgICAgICAgICAgICAgIGlmIChpc0NvbmZsaWN0aW5nUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVdhcm5pbmcgPSBgU3BlY2lmaWVkIFwiY2FjaGU6ICR7Y3VycmVudEZldGNoQ2FjaGVDb25maWd9XCIgYW5kIFwicmV2YWxpZGF0ZTogJHtjdXJyZW50RmV0Y2hSZXZhbGlkYXRlfVwiLCBvbmx5IG9uZSBzaG91bGQgYmUgc3BlY2lmaWVkLmA7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGhhc0V4cGxpY2l0RmV0Y2hDYWNoZU9wdE91dCA9IC8vIGZldGNoIGNvbmZpZyBpdHNlbGYgc2lnbmFscyBub3QgdG8gY2FjaGVcbiAgICAgICAgICAgIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnbm8tY2FjaGUnIHx8IGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnbm8tc3RvcmUnIHx8IC8vIHRoZSBmZXRjaCBpc24ndCBleHBsaWNpdGx5IGNhY2hpbmcgYW5kIHRoZSBzZWdtZW50IGxldmVsIGNhY2hlIGNvbmZpZyBzaWduYWxzIG5vdCB0byBjYWNoZVxuICAgICAgICAgICAgLy8gbm90ZTogYHBhZ2VGZXRjaENhY2hlTW9kZWAgaXMgYWxzbyBzZXQgYnkgYmVpbmcgaW4gYW4gdW5zdGFibGVfY2FjaGUgY29udGV4dC5cbiAgICAgICAgICAgIHBhZ2VGZXRjaENhY2hlTW9kZSA9PT0gJ2ZvcmNlLW5vLXN0b3JlJyB8fCBwYWdlRmV0Y2hDYWNoZU1vZGUgPT09ICdvbmx5LW5vLXN0b3JlJztcbiAgICAgICAgICAgIC8vIElmIG5vIGV4cGxpY2l0IGZldGNoIGNhY2hlIG1vZGUgaXMgc2V0LCBidXQgZHluYW1pYyA9IGBmb3JjZS1keW5hbWljYCBpcyBzZXQsXG4gICAgICAgICAgICAvLyB3ZSBzaG91bGRuJ3QgY29uc2lkZXIgY2FjaGluZyB0aGUgZmV0Y2guIFRoaXMgaXMgYmVjYXVzZSB0aGUgYGR5bmFtaWNgIGNhY2hlXG4gICAgICAgICAgICAvLyBpcyBjb25zaWRlcmVkIGEgXCJ0b3AtbGV2ZWxcIiBjYWNoZSBtb2RlLCB3aGVyZWFzIHNvbWV0aGluZyBsaWtlIGBmZXRjaENhY2hlYCBpcyBtb3JlXG4gICAgICAgICAgICAvLyBmaW5lLWdyYWluZWQuIFRvcC1sZXZlbCBtb2RlcyBhcmUgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgcmVhc29uYWJsZSBkZWZhdWx0cyBmb3IgdGhlXG4gICAgICAgICAgICAvLyBvdGhlciBjb25maWd1cmF0aW9ucy5cbiAgICAgICAgICAgIGNvbnN0IG5vRmV0Y2hDb25maWdBbmRGb3JjZUR5bmFtaWMgPSAhcGFnZUZldGNoQ2FjaGVNb2RlICYmICFjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyAmJiAhY3VycmVudEZldGNoUmV2YWxpZGF0ZSAmJiB3b3JrU3RvcmUuZm9yY2VEeW5hbWljO1xuICAgICAgICAgICAgaWYgKC8vIGZvcmNlLWNhY2hlIHdhcyBzcGVjaWZpZWQgd2l0aG91dCBhIHJldmFsaWRhdGUgdmFsdWUuIFdlIHNldCB0aGUgcmV2YWxpZGF0ZSB2YWx1ZSB0byBmYWxzZVxuICAgICAgICAgICAgLy8gd2hpY2ggd2lsbCBzaWduYWwgdGhlIGNhY2hlIHRvIG5vdCByZXZhbGlkYXRlXG4gICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ2ZvcmNlLWNhY2hlJyAmJiB0eXBlb2YgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8vIGlmIHdlIGFyZSBpbnNpZGUgb2YgXCJ1c2UgY2FjaGVcIi9cInVuc3RhYmxlX2NhY2hlXCJcbiAgICAgICAgICAgIC8vIHdlIHNob3VsZG4ndCBzZXQgdGhlIHJldmFsaWRhdGUgdG8gMCBhcyBpdCdzIG92ZXJyaWRkZW5cbiAgICAgICAgICAgIC8vIGJ5IHRoZSBjYWNoZSBjb250ZXh0XG4gICAgICAgICAgICAod29ya1VuaXRTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogd29ya1VuaXRTdG9yZS50eXBlKSAhPT0gJ2NhY2hlJyAmJiAoaGFzRXhwbGljaXRGZXRjaENhY2hlT3B0T3V0IHx8IG5vRmV0Y2hDb25maWdBbmRGb3JjZUR5bmFtaWMpKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICduby1jYWNoZScgfHwgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICduby1zdG9yZScpIHtcbiAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IGBjYWNoZTogJHtjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZ31gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gdmFsaWRhdGVSZXZhbGlkYXRlKGN1cnJlbnRGZXRjaFJldmFsaWRhdGUsIHdvcmtTdG9yZS5yb3V0ZSk7XG4gICAgICAgICAgICBjb25zdCBfaGVhZGVycyA9IGdldFJlcXVlc3RNZXRhKCdoZWFkZXJzJyk7XG4gICAgICAgICAgICBjb25zdCBpbml0SGVhZGVycyA9IHR5cGVvZiAoX2hlYWRlcnMgPT0gbnVsbCA/IHZvaWQgMCA6IF9oZWFkZXJzLmdldCkgPT09ICdmdW5jdGlvbicgPyBfaGVhZGVycyA6IG5ldyBIZWFkZXJzKF9oZWFkZXJzIHx8IHt9KTtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VuQ2FjaGVhYmxlSGVhZGVyID0gaW5pdEhlYWRlcnMuZ2V0KCdhdXRob3JpemF0aW9uJykgfHwgaW5pdEhlYWRlcnMuZ2V0KCdjb29raWUnKTtcbiAgICAgICAgICAgIGNvbnN0IGlzVW5DYWNoZWFibGVNZXRob2QgPSAhW1xuICAgICAgICAgICAgICAgICdnZXQnLFxuICAgICAgICAgICAgICAgICdoZWFkJ1xuICAgICAgICAgICAgXS5pbmNsdWRlcygoKF9nZXRSZXF1ZXN0TWV0YSA9IGdldFJlcXVlc3RNZXRhKCdtZXRob2QnKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9nZXRSZXF1ZXN0TWV0YS50b0xvd2VyQ2FzZSgpKSB8fCAnZ2V0Jyk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICogV2UgYXV0b21hdGljYWxseSBkaXNhYmxlIGZldGNoIGNhY2hpbmcgdW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICAgICAgICAgKiAtIEZldGNoIGNhY2hlIGNvbmZpZ3MgYXJlIG5vdCBzZXQuIFNwZWNpZmljYWxseTpcbiAgICAgICAgICogICAgLSBBIHBhZ2UgZmV0Y2ggY2FjaGUgbW9kZSBpcyBub3Qgc2V0IChleHBvcnQgY29uc3QgZmV0Y2hDYWNoZT0uLi4pXG4gICAgICAgICAqICAgIC0gQSBmZXRjaCBjYWNoZSBtb2RlIGlzIG5vdCBzZXQgaW4gdGhlIGZldGNoIGNhbGwgKGZldGNoKHVybCwgeyBjYWNoZTogLi4uIH0pKVxuICAgICAgICAgKiAgICAgIG9yIHRoZSBmZXRjaCBjYWNoZSBtb2RlIGlzIHNldCB0byAnZGVmYXVsdCdcbiAgICAgICAgICogICAgLSBBIGZldGNoIHJldmFsaWRhdGUgdmFsdWUgaXMgbm90IHNldCBpbiB0aGUgZmV0Y2ggY2FsbCAoZmV0Y2godXJsLCB7IHJldmFsaWRhdGU6IC4uLiB9KSlcbiAgICAgICAgICogLSBPUiB0aGUgZmV0Y2ggY29tZXMgYWZ0ZXIgYSBjb25maWd1cmF0aW9uIHRoYXQgdHJpZ2dlcmVkIGR5bmFtaWMgcmVuZGVyaW5nIChlLmcuLCByZWFkaW5nIGNvb2tpZXMoKSlcbiAgICAgICAgICogICBhbmQgdGhlIGZldGNoIHdhcyBjb25zaWRlcmVkIHVuY2FjaGVhYmxlIChlLmcuLCBQT1NUIG1ldGhvZCBvciBoYXMgYXV0aG9yaXphdGlvbiBoZWFkZXJzKVxuICAgICAgICAgKi8gY29uc3QgaGFzTm9FeHBsaWNpdENhY2hlQ29uZmlnID0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgcGFnZUZldGNoQ2FjaGVNb2RlID09IHVuZGVmaW5lZCAmJiAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgICAgICAoY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT0gdW5kZWZpbmVkIHx8IC8vIHdoZW4gY29uc2lkZXJpbmcgd2hldGhlciB0byBvcHQgaW50byB0aGUgZGVmYXVsdCBcIm5vLWNhY2hlXCIgZmV0Y2ggc2VtYW50aWNzLFxuICAgICAgICAgICAgLy8gYSBcImRlZmF1bHRcIiBjYWNoZSBjb25maWcgc2hvdWxkIGJlIHRyZWF0ZWQgdGhlIHNhbWUgYXMgbm8gY2FjaGUgY29uZmlnXG4gICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ2RlZmF1bHQnKSAmJiAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgICAgICBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGF1dG9Ob0NhY2hlID0gLy8gdGhpcyBjb25kaXRpb24gaXMgaGl0IGZvciBudWxsL3VuZGVmaW5lZFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgaGFzTm9FeHBsaWNpdENhY2hlQ29uZmlnICYmIC8vIHdlIGRpc2FibGUgYXV0b21hdGljIG5vIGNhY2hpbmcgYmVoYXZpb3IgZHVyaW5nIGJ1aWxkIHRpbWUgU1NHIHNvIHRoYXQgd2UgY2FuIHN0aWxsXG4gICAgICAgICAgICAvLyBsZXZlcmFnZSB0aGUgZmV0Y2ggY2FjaGUgYmV0d2VlbiBTU0cgd29ya2Vyc1xuICAgICAgICAgICAgIXdvcmtTdG9yZS5pc1ByZXJlbmRlcmluZyB8fCAoaGFzVW5DYWNoZWFibGVIZWFkZXIgfHwgaXNVbkNhY2hlYWJsZU1ldGhvZCkgJiYgcmV2YWxpZGF0ZVN0b3JlICYmIHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlID09PSAwO1xuICAgICAgICAgICAgaWYgKGhhc05vRXhwbGljaXRDYWNoZUNvbmZpZyAmJiB3b3JrVW5pdFN0b3JlICE9PSB1bmRlZmluZWQgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgbm8gY2FjaGUgY29uZmlnLCBhbmQgd2UncmUgaW4gRHluYW1pYyBJL08gcHJlcmVuZGVyaW5nLCBpdCdsbCBiZSBhIGR5bmFtaWMgY2FsbC5cbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYXZlIHRvIGlzc3VlIHRoYXQgZHluYW1pYyBjYWxsLlxuICAgICAgICAgICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbC5lbmRSZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocGFnZUZldGNoQ2FjaGVNb2RlKXtcbiAgICAgICAgICAgICAgICBjYXNlICdmb3JjZS1uby1zdG9yZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBmb3JjZS1uby1zdG9yZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ29ubHktbm8tc3RvcmUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdmb3JjZS1jYWNoZScgfHwgdHlwZW9mIGZpbmFsUmV2YWxpZGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgZmluYWxSZXZhbGlkYXRlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FjaGU6ICdmb3JjZS1jYWNoZScgdXNlZCBvbiBmZXRjaCBmb3IgJHtmZXRjaFVybH0gd2l0aCAnZXhwb3J0IGNvbnN0IGZldGNoQ2FjaGUgPSAnb25seS1uby1zdG9yZSdgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBvbmx5LW5vLXN0b3JlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnb25seS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLXN0b3JlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FjaGU6ICduby1zdG9yZScgdXNlZCBvbiBmZXRjaCBmb3IgJHtmZXRjaFVybH0gd2l0aCAnZXhwb3J0IGNvbnN0IGZldGNoQ2FjaGUgPSAnb25seS1jYWNoZSdgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnZm9yY2UtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnIHx8IGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdmZXRjaENhY2hlID0gZm9yY2UtY2FjaGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IF9jb25zdGFudHMxLklORklOSVRFX0NBQ0hFO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBmaW5hbFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VGZXRjaENhY2hlTW9kZSA9PT0gJ2RlZmF1bHQtY2FjaGUnICYmICFpc1VzaW5nTm9TdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFJldmFsaWRhdGUgPSBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnZmV0Y2hDYWNoZSA9IGRlZmF1bHQtY2FjaGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFnZUZldGNoQ2FjaGVNb2RlID09PSAnZGVmYXVsdC1uby1zdG9yZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnZmV0Y2hDYWNoZSA9IGRlZmF1bHQtbm8tc3RvcmUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNVc2luZ05vU3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnbm9TdG9yZSBjYWxsJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF1dG9Ob0NhY2hlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2F1dG8gbm8gY2FjaGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHNob3VsZCB3ZSBjb25zaWRlciB0aGlzIGNhc2UgYW4gaW52YXJpYW50P1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdhdXRvIGNhY2hlJztcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZVN0b3JlID8gcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUgOiBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZVJlYXNvbikge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gYHJldmFsaWRhdGU6ICR7ZmluYWxSZXZhbGlkYXRlfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoLy8gd2hlbiBmb3JjZSBzdGF0aWMgaXMgY29uZmlndXJlZCB3ZSBkb24ndCBiYWlsIGZyb21cbiAgICAgICAgICAgIC8vIGByZXZhbGlkYXRlOiAwYCB2YWx1ZXNcbiAgICAgICAgICAgICEod29ya1N0b3JlLmZvcmNlU3RhdGljICYmIGZpbmFsUmV2YWxpZGF0ZSA9PT0gMCkgJiYgLy8gd2UgZG9uJ3QgY29uc2lkZXIgYXV0b05vQ2FjaGUgdG8gc3dpdGNoIHRvIGR5bmFtaWMgZm9yIElTUlxuICAgICAgICAgICAgIWF1dG9Ob0NhY2hlICYmIC8vIElmIHRoZSByZXZhbGlkYXRlIHZhbHVlIGlzbid0IGN1cnJlbnRseSBzZXQgb3IgdGhlIHZhbHVlIGlzIGxlc3NcbiAgICAgICAgICAgIC8vIHRoYW4gdGhlIGN1cnJlbnQgcmV2YWxpZGF0ZSB2YWx1ZSwgd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgLy8gdmFsdWUuXG4gICAgICAgICAgICByZXZhbGlkYXRlU3RvcmUgJiYgZmluYWxSZXZhbGlkYXRlIDwgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3ZXJlIHNldHRpbmcgdGhlIHJldmFsaWRhdGUgdmFsdWUgdG8gMCwgd2Ugc2hvdWxkIHRyeSB0b1xuICAgICAgICAgICAgICAgIC8vIHBvc3Rwb25lIGluc3RlYWQgZmlyc3QuXG4gICAgICAgICAgICAgICAgaWYgKGZpbmFsUmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSAmJiB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVTaWduYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbC5lbmRSZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTaWduYWwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IHdhbnQgdG8gc2V0IHRoZSByZXZhbGlkYXRlIHN0b3JlJ3MgcmV2YWxpZGF0ZSB0aW1lIGlmIGl0XG4gICAgICAgICAgICAgICAgLy8gd2FzIGV4cGxpY2l0bHkgc2V0IGZvciB0aGUgZmV0Y2ggY2FsbCwgaS5lLiBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlLlxuICAgICAgICAgICAgICAgIGlmIChyZXZhbGlkYXRlU3RvcmUgJiYgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9PT0gZmluYWxSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlID0gZmluYWxSZXZhbGlkYXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSA9IHR5cGVvZiBmaW5hbFJldmFsaWRhdGUgPT09ICdudW1iZXInICYmIGZpbmFsUmV2YWxpZGF0ZSA+IDA7XG4gICAgICAgICAgICBsZXQgY2FjaGVLZXk7XG4gICAgICAgICAgICBjb25zdCB7IGluY3JlbWVudGFsQ2FjaGUgfSA9IHdvcmtTdG9yZTtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RTdG9yZSA9IHdvcmtVbml0U3RvcmUgIT09IHVuZGVmaW5lZCAmJiB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdyZXF1ZXN0JyA/IHdvcmtVbml0U3RvcmUgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoaW5jcmVtZW50YWxDYWNoZSAmJiAoaXNDYWNoZWFibGVSZXZhbGlkYXRlIHx8IChyZXF1ZXN0U3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IHJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5ID0gYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5nZW5lcmF0ZUNhY2hlS2V5KGZldGNoVXJsLCBpc1JlcXVlc3RJbnB1dCA/IGlucHV0IDogaW5pdCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBjYWNoZSBrZXkgZm9yYCwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZldGNoSWR4ID0gd29ya1N0b3JlLm5leHRGZXRjaElkID8/IDE7XG4gICAgICAgICAgICB3b3JrU3RvcmUubmV4dEZldGNoSWQgPSBmZXRjaElkeCArIDE7XG4gICAgICAgICAgICBsZXQgaGFuZGxlVW5sb2NrID0gKCk9PlByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgY29uc3QgZG9PcmlnaW5hbEZldGNoID0gYXN5bmMgKGlzU3RhbGUsIGNhY2hlUmVhc29uT3ZlcnJpZGUpPT57XG4gICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdElucHV0RmllbGRzID0gW1xuICAgICAgICAgICAgICAgICAgICAnY2FjaGUnLFxuICAgICAgICAgICAgICAgICAgICAnY3JlZGVudGlhbHMnLFxuICAgICAgICAgICAgICAgICAgICAnaGVhZGVycycsXG4gICAgICAgICAgICAgICAgICAgICdpbnRlZ3JpdHknLFxuICAgICAgICAgICAgICAgICAgICAna2VlcGFsaXZlJyxcbiAgICAgICAgICAgICAgICAgICAgJ21ldGhvZCcsXG4gICAgICAgICAgICAgICAgICAgICdtb2RlJyxcbiAgICAgICAgICAgICAgICAgICAgJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgJ3JlZmVycmVyJyxcbiAgICAgICAgICAgICAgICAgICAgJ3JlZmVycmVyUG9saWN5JyxcbiAgICAgICAgICAgICAgICAgICAgJ3dpbmRvdycsXG4gICAgICAgICAgICAgICAgICAgICdkdXBsZXgnLFxuICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCBwYXNzIHRocm91Z2ggc2lnbmFsIHdoZW4gcmV2YWxpZGF0aW5nXG4gICAgICAgICAgICAgICAgICAgIC4uLmlzU3RhbGUgPyBbXSA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICdzaWduYWwnXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGlmIChpc1JlcXVlc3RJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFJbnB1dCA9IGlucHV0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogcmVxSW5wdXQuX29nQm9keSB8fCByZXFJbnB1dC5ib2R5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcmVxdWVzdElucHV0RmllbGRzKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxT3B0aW9uc1tmaWVsZF0gPSByZXFJbnB1dFtmaWVsZF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBuZXcgUmVxdWVzdChyZXFJbnB1dC51cmwsIHJlcU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IF9vZ0JvZHksIGJvZHksIHNpZ25hbCwgLi4ub3RoZXJJbnB1dCB9ID0gaW5pdDtcbiAgICAgICAgICAgICAgICAgICAgaW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLm90aGVySW5wdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBfb2dCb2R5IHx8IGJvZHksXG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduYWw6IGlzU3RhbGUgPyB1bmRlZmluZWQgOiBzaWduYWxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYWRkIG1ldGFkYXRhIHRvIGluaXQgd2l0aG91dCBlZGl0aW5nIHRoZSBvcmlnaW5hbFxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lZEluaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQubmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoVHlwZTogJ29yaWdpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaElkeFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGNsb25lZEluaXQpLnRoZW4oYXN5bmMgKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1N0YWxlICYmIGZldGNoU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMod29ya1N0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbjogY2FjaGVSZWFzb25PdmVycmlkZSB8fCBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogZmluYWxSZXZhbGlkYXRlID09PSAwIHx8IGNhY2hlUmVhc29uT3ZlcnJpZGUgPyAnc2tpcCcgOiAnbWlzcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IGNsb25lZEluaXQubWV0aG9kIHx8ICdHRVQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwICYmIGluY3JlbWVudGFsQ2FjaGUgJiYgY2FjaGVLZXkgJiYgKGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSB8fCAocmVxdWVzdFN0b3JlID09IG51bGwgPyB2b2lkIDAgOiByZXF1ZXN0U3RvcmUuc2VydmVyQ29tcG9uZW50c0htckNhY2hlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gZmluYWxSZXZhbGlkYXRlID49IF9jb25zdGFudHMxLklORklOSVRFX0NBQ0hFID8gX2NvbnN0YW50czEuQ0FDSEVfT05FX1lFQVIgOiBmaW5hbFJldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRlcm5hbFJldmFsaWRhdGUgPSBmaW5hbFJldmFsaWRhdGUgPj0gX2NvbnN0YW50czEuSU5GSU5JVEVfQ0FDSEUgPyBmYWxzZSA6IGZpbmFsUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlICYmIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgcHJlcmVuZGVyaW5nIGF0IGJ1aWxkIHRpbWUgb3IgcmV2YWxpZGF0ZSB0aW1lIHdpdGggZHluYW1pY0lPIHNvIHdlIG5lZWQgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidWZmZXIgdGhlIHJlc3BvbnNlIHNvIHdlIGNhbiBndWFyYW50ZWUgaXQgY2FuIGJlIHJlYWQgaW4gYSBtaWNyb3Rhc2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5QnVmZmVyID0gYXdhaXQgcmVzLmFycmF5QnVmZmVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmV0Y2hlZERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyhyZXMuaGVhZGVycy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBCdWZmZXIuZnJvbShib2R5QnVmZmVyKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiByZXMudXJsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBjYW4gc2tpcCBjaGVja2luZyB0aGUgc2VydmVyQ29tcG9uZW50c0htckNhY2hlIGJlY2F1c2Ugd2UgYXJlbid0IGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGV2IG1vZGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoY2FjaGVLZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogX3Jlc3BvbnNlY2FjaGUuQ2FjaGVkUm91dGVLaW5kLkZFVENILFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBmZXRjaGVkRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogbm9ybWFsaXplZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoQ2FjaGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IGV4dGVybmFsUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoSWR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgaGFuZGxlVW5sb2NrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2UgcmV0dXJuIGEgbmV3IFJlc3BvbnNlIHRvIHRoZSBjYWxsZXIuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZShib2R5QnVmZmVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcy5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlcy5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6IHJlcy5zdGF0dXNUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3JlIGNsb25pbmcgdGhlIHJlc3BvbnNlIHVzaW5nIHRoaXMgdXRpbGl0eSBiZWNhdXNlIHRoZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhpc3RzIGEgYnVnIGluIHRoZSB1bmRpY2kgbGlicmFyeSBhcm91bmQgcmVzcG9uc2UgY2xvbmluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGZvbGxvd2luZyBwdWxsIHJlcXVlc3QgZm9yIG1vcmUgZGV0YWlsczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MzI3NFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtjbG9uZWQxLCBjbG9uZWQyXSA9ICgwLCBfY2xvbmVyZXNwb25zZS5jbG9uZVJlc3BvbnNlKShyZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBkeW5hbWljYWxseSByZW5kZXJpbmcgaW5jbHVkaW5nIGRldiBtb2RlLiBXZSB3YW50IHRvIHJldHVyblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXNwb25zZSB0byB0aGUgY2FsbGVyIGFzIHNvb24gYXMgcG9zc2libGUgYmVjYXVzZSBpdCBtaWdodCBzdHJlYW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdmVyIGEgdmVyeSBsb25nIHRpbWUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmVkMS5hcnJheUJ1ZmZlcigpLnRoZW4oYXN5bmMgKGFycmF5QnVmZmVyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX3JlcXVlc3RTdG9yZV9zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlCdWZmZXIgPSBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZldGNoZWREYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKGNsb25lZDEuaGVhZGVycy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogYm9keUJ1ZmZlci50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGNsb25lZDEuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjbG9uZWQxLnVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IChfcmVxdWVzdFN0b3JlX3NlcnZlckNvbXBvbmVudHNIbXJDYWNoZSA9IHJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVxdWVzdFN0b3JlX3NlcnZlckNvbXBvbmVudHNIbXJDYWNoZS5zZXQoY2FjaGVLZXksIGZldGNoZWREYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoY2FjaGVLZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuRkVUQ0gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZmV0Y2hlZERhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogbm9ybWFsaXplZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaENhY2hlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IGV4dGVybmFsUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaElkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlcnJvcik9PmNvbnNvbGUud2FybihgRmFpbGVkIHRvIHNldCBmZXRjaCBjYWNoZWAsIGlucHV0LCBlcnJvcikpLmZpbmFsbHkoaGFuZGxlVW5sb2NrKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xvbmVkMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYWQgcmVzcG9uc2UgdGhhdCB3ZSBkZXRlcm1pbmVkIHNob3VsZG4ndCBiZSBjYWNoZWQgc28gd2UgcmV0dXJuIGl0XG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCBkb24ndCBjYWNoZSBpdC4gVGhpcyBhbHNvIG5lZWRzIHRvIHVubG9jayB0aGUgY2FjaGUgbG9jayB3ZSBhY3F1aXJlZC5cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgaGFuZGxlVW5sb2NrKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGNhY2hlUmVhc29uT3ZlcnJpZGU7XG4gICAgICAgICAgICBsZXQgaXNGb3JlZ3JvdW5kUmV2YWxpZGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGlzSG1yUmVmcmVzaENhY2hlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoY2FjaGVLZXkgJiYgaW5jcmVtZW50YWxDYWNoZSkge1xuICAgICAgICAgICAgICAgIGxldCBjYWNoZWRGZXRjaERhdGE7XG4gICAgICAgICAgICAgICAgaWYgKChyZXF1ZXN0U3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IHJlcXVlc3RTdG9yZS5pc0htclJlZnJlc2gpICYmIHJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVkRmV0Y2hEYXRhID0gcmVxdWVzdFN0b3JlLnNlcnZlckNvbXBvbmVudHNIbXJDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICBpc0htclJlZnJlc2hDYWNoZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0NhY2hlYWJsZVJldmFsaWRhdGUgJiYgIWNhY2hlZEZldGNoRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVVbmxvY2sgPSBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLmxvY2soY2FjaGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRyeSA9IHdvcmtTdG9yZS5pc09uRGVtYW5kUmV2YWxpZGF0ZSA/IG51bGwgOiBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLmdldChjYWNoZUtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogX3Jlc3BvbnNlY2FjaGUuSW5jcmVtZW50YWxDYWNoZUtpbmQuRkVUQ0gsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBmaW5hbFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoSWR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvZnRUYWdzOiBpbXBsaWNpdFRhZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc05vRXhwbGljaXRDYWNoZUNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugc29tZXRpbWVzIHVzZSB0aGUgY2FjaGUgdG8gZGVkdXBlIGZldGNoZXMgdGhhdCBkbyBub3Qgc3BlY2lmeSBhIGNhY2hlIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIHRoZXNlIGNhc2VzIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIHN0aWxsIGV4Y2x1ZGUgdGhlbSBmcm9tIHByZXJlbmRlcnMgaWYgZHluYW1pY0lPIGlzIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBpbnRyb2R1Y2UgYW4gYXJ0aWZpY2lhbCBUYXNrIGJvdW5kYXJ5IGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSAmJiB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVVbmxvY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGRldiwgaW5jcmVtZW50YWwgY2FjaGUgcmVzcG9uc2Ugd2lsbCBiZSBudWxsIGluIGNhc2UgdGhlIGJyb3dzZXIgYWRkcyBgY2FjaGUtY29udHJvbDogbm8tY2FjaGVgIGluIHRoZSByZXF1ZXN0IGhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uT3ZlcnJpZGUgPSAnY2FjaGUtY29udHJvbDogbm8tY2FjaGUgKGhhcmQgcmVmcmVzaCknO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgoZW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IGVudHJ5LnZhbHVlKSAmJiBlbnRyeS52YWx1ZS5raW5kID09PSBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuRkVUQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gc3RhbGUgYW5kIGlzIHJldmFsaWRhdGluZyB3ZSB3YWl0IGZvciBmcmVzaCBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGUgcmV2YWxpZGF0ZWQgZW50cnkgaGFzIHRoZSB1cGRhdGVkIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuaXNSZXZhbGlkYXRlICYmIGVudHJ5LmlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvcmVncm91bmRSZXZhbGlkYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1tjYWNoZUtleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlbmRpbmdSZXZhbGlkYXRlID0gZG9PcmlnaW5hbEZldGNoKHRydWUpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogYXdhaXQgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlLnN0YXR1c1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMgPz89IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5IHx8ICcnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXR0YWNoIHRoZSBlbXB0eSBjYXRjaCBoZXJlIHNvIHdlIGRvbid0IGdldCBhIFwidW5oYW5kbGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9taXNlIHJlamVjdGlvblwiIHdhcm5pbmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUmV2YWxpZGF0ZS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbY2FjaGVLZXldID0gcGVuZGluZ1JldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkRmV0Y2hEYXRhID0gZW50cnkudmFsdWUuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2FjaGVkRmV0Y2hEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmZXRjaFN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFja0ZldGNoTWV0cmljKHdvcmtTdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmZXRjaFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXM6IGlzSG1yUmVmcmVzaENhY2hlID8gJ2htcicgOiAnaGl0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBjYWNoZWRGZXRjaERhdGEuc3RhdHVzIHx8IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IChpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0Lm1ldGhvZCkgfHwgJ0dFVCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKEJ1ZmZlci5mcm9tKGNhY2hlZEZldGNoRGF0YS5ib2R5LCAnYmFzZTY0JyksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IGNhY2hlZEZldGNoRGF0YS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBjYWNoZWRGZXRjaERhdGEuc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzcG9uc2UsICd1cmwnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2FjaGVkRmV0Y2hEYXRhLnVybFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uICYmIGluaXQgJiYgdHlwZW9mIGluaXQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjYWNoZSB9ID0gaW5pdDtcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgYGNhY2hlYCBwcm9wZXJ0eSBhcyBDbG91ZGZsYXJlIFdvcmtlcnMgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgICAgICAgICAgICAgIGlmIChpc0VkZ2VSdW50aW1lKSBkZWxldGUgaW5pdC5jYWNoZTtcbiAgICAgICAgICAgICAgICBpZiAoY2FjaGUgPT09ICduby1zdG9yZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZW5hYmxlZCwgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSAmJiB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVTaWduYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbC5lbmRSZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTaWduYWwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgbm8tc3RvcmUgZmV0Y2ggJHtpbnB1dH0gJHt3b3JrU3RvcmUucm91dGV9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzTmV4dENvbmZpZyA9ICduZXh0JyBpbiBpbml0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbmV4dCA9IHt9IH0gPSBpbml0O1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbmV4dC5yZXZhbGlkYXRlID09PSAnbnVtYmVyJyAmJiByZXZhbGlkYXRlU3RvcmUgJiYgbmV4dC5yZXZhbGlkYXRlIDwgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQucmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgZW5hYmxlZCwgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCAnZmV0Y2goKScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXdvcmtTdG9yZS5mb3JjZVN0YXRpYyB8fCBuZXh0LnJldmFsaWRhdGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlID0gbmV4dC5yZXZhbGlkYXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChoYXNOZXh0Q29uZmlnKSBkZWxldGUgaW5pdC5uZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgd2UgYXJlIHJldmFsaWRhdGluZyB0aGUgd2hvbGUgcGFnZSB2aWEgdGltZSBvciBvbi1kZW1hbmQgYW5kXG4gICAgICAgICAgICAvLyB0aGUgZmV0Y2ggY2FjaGUgZW50cnkgaXMgc3RhbGUgd2Ugc2hvdWxkIHN0aWxsIGRlLWR1cGUgdGhlXG4gICAgICAgICAgICAvLyBvcmlnaW4gaGl0IGlmIGl0J3MgYSBjYWNoZS1hYmxlIGVudHJ5XG4gICAgICAgICAgICBpZiAoY2FjaGVLZXkgJiYgaXNGb3JlZ3JvdW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlbmRpbmdSZXZhbGlkYXRlS2V5ID0gY2FjaGVLZXk7XG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgbGV0IHBlbmRpbmdSZXZhbGlkYXRlID0gd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV07XG4gICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdGVkUmVzdWx0ID0gYXdhaXQgcGVuZGluZ1JldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UocmV2YWxpZGF0ZWRSZXN1bHQuYm9keSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmV2YWxpZGF0ZWRSZXN1bHQuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmV2YWxpZGF0ZWRSZXN1bHQuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmV2YWxpZGF0ZWRSZXN1bHQuc3RhdHVzVGV4dFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2UgdXNlZCB0byBqdXN0IHJlc29sdmUgdGhlIFJlc3BvbnNlIGFuZCBjbG9uZSBpdCBob3dldmVyIGZvclxuICAgICAgICAgICAgICAgIC8vIHN0YXRpYyBnZW5lcmF0aW9uIHdpdGggZHluYW1pY0lPIHdlIG5lZWQgdGhlIHJlc3BvbnNlIHRvIGJlIGFibGUgdG9cbiAgICAgICAgICAgICAgICAvLyBiZSByZXNvbHZlZCBpbiBhIG1pY3JvdGFzayBhbmQgY2xvbmluZyB0aGUgcmVzcG9uc2Ugd2lsbCBuZXZlciBoYXZlXG4gICAgICAgICAgICAgICAgLy8gYSBib2R5IHRoYXQgY2FuIHJlc29sdmUgaW4gYSBtaWNyb3Rhc2sgaW4gbm9kZSAoYXMgb2JzZXJ2ZWQgdGhyb3VnaFxuICAgICAgICAgICAgICAgIC8vIGV4cGVyaW1lbnRhdGlvbikgU28gaW5zdGVhZCB3ZSBhd2FpdCB0aGUgYm9keSBhbmQgdGhlbiB3aGVuIGl0IGlzXG4gICAgICAgICAgICAgICAgLy8gYXZhaWxhYmxlIHdlIGNvbnN0cnVjdCBtYW51YWxseSBjbG9uZWQgUmVzcG9uc2Ugb2JqZWN0cyB3aXRoIHRoZVxuICAgICAgICAgICAgICAgIC8vIGJvZHkgYXMgYW4gQXJyYXlCdWZmZXIuIFRoaXMgd2lsbCBiZSByZXNvbHZhYmxlIGluIGEgbWljcm90YXNrXG4gICAgICAgICAgICAgICAgLy8gbWFraW5nIGl0IGNvbXBhdGlibGUgd2l0aCBkeW5hbWljSU8uXG4gICAgICAgICAgICAgICAgY29uc3QgcGVuZGluZ1Jlc3BvbnNlID0gZG9PcmlnaW5hbEZldGNoKHRydWUsIGNhY2hlUmVhc29uT3ZlcnJpZGUpLy8gV2UncmUgY2xvbmluZyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhpcyB1dGlsaXR5IGJlY2F1c2UgdGhlcmVcbiAgICAgICAgICAgICAgICAvLyBleGlzdHMgYSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLlxuICAgICAgICAgICAgICAgIC8vIFNlZSB0aGUgZm9sbG93aW5nIHB1bGwgcmVxdWVzdCBmb3IgbW9yZSBkZXRhaWxzOlxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzczMjc0XG4gICAgICAgICAgICAgICAgLnRoZW4oX2Nsb25lcmVzcG9uc2UuY2xvbmVSZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1JldmFsaWRhdGUgPSBwZW5kaW5nUmVzcG9uc2UudGhlbihhc3luYyAocmVzcG9uc2VzKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHJlc3BvbnNlc1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwZW5kaW5nIHJldmFsaWRhdGUgaXMgbm90IHByZXNlbnQgaW4gdGhlIHN0b3JlLCB0aGVuXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm90aGluZyB0byBkZWxldGUuXG4gICAgICAgICAgICAgICAgICAgIGlmICghKChfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlcyA9IHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMpID09IG51bGwgPyB2b2lkIDAgOiBfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIEF0dGFjaCB0aGUgZW1wdHkgY2F0Y2ggaGVyZSBzbyB3ZSBkb24ndCBnZXQgYSBcInVuaGFuZGxlZCBwcm9taXNlXG4gICAgICAgICAgICAgICAgLy8gcmVqZWN0aW9uXCIgd2FybmluZ1xuICAgICAgICAgICAgICAgIHBlbmRpbmdSZXZhbGlkYXRlLmNhdGNoKCgpPT57fSk7XG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0gPSBwZW5kaW5nUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGVuZGluZ1Jlc3BvbnNlLnRoZW4oKHJlc3BvbnNlcyk9PnJlc3BvbnNlc1sxXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkb09yaWdpbmFsRmV0Y2goZmFsc2UsIGNhY2hlUmVhc29uT3ZlcnJpZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXN1bHQ7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsLmVuZFJlYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIC8vIEF0dGFjaCB0aGUgbmVjZXNzYXJ5IHByb3BlcnRpZXMgdG8gdGhlIHBhdGNoZWQgZmV0Y2ggZnVuY3Rpb24uXG4gICAgLy8gV2UgZG9uJ3QgdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmZXRjaCBmdW5jdGlvbiBoYXMgYmVlbiBwYXRjaGVkLFxuICAgIC8vIGJ1dCBmb3IgZXh0ZXJuYWwgY29uc3VtZXJzIHRvIGRldGVybWluZSBpZiB0aGUgZmV0Y2ggZnVuY3Rpb24gaGFzIGJlZW5cbiAgICAvLyBwYXRjaGVkLlxuICAgIHBhdGNoZWQuX19uZXh0UGF0Y2hlZCA9IHRydWU7XG4gICAgcGF0Y2hlZC5fX25leHRHZXRTdGF0aWNTdG9yZSA9ICgpPT53b3JrQXN5bmNTdG9yYWdlO1xuICAgIHBhdGNoZWQuX25leHRPcmlnaW5hbEZldGNoID0gb3JpZ2luRmV0Y2g7XG4gICAgZ2xvYmFsVGhpc1tORVhUX1BBVENIX1NZTUJPTF0gPSB0cnVlO1xuICAgIHJldHVybiBwYXRjaGVkO1xufVxuZnVuY3Rpb24gcGF0Y2hGZXRjaChvcHRpb25zKSB7XG4gICAgLy8gSWYgd2UndmUgYWxyZWFkeSBwYXRjaGVkIGZldGNoLCB3ZSBzaG91bGQgbm90IHBhdGNoIGl0IGFnYWluLlxuICAgIGlmIChpc0ZldGNoUGF0Y2hlZCgpKSByZXR1cm47XG4gICAgLy8gR3JhYiB0aGUgb3JpZ2luYWwgZmV0Y2ggZnVuY3Rpb24uIFdlJ2xsIGF0dGFjaCB0aGlzIHNvIHdlIGNhbiB1c2UgaXQgaW5cbiAgICAvLyB0aGUgcGF0Y2hlZCBmZXRjaCBmdW5jdGlvbi5cbiAgICBjb25zdCBvcmlnaW5hbCA9ICgwLCBfZGVkdXBlZmV0Y2guY3JlYXRlRGVkdXBlRmV0Y2gpKGdsb2JhbFRoaXMuZmV0Y2gpO1xuICAgIC8vIFNldCB0aGUgZ2xvYmFsIGZldGNoIHRvIHRoZSBwYXRjaGVkIGZldGNoLlxuICAgIGdsb2JhbFRoaXMuZmV0Y2ggPSBjcmVhdGVQYXRjaGVkRmV0Y2hlcihvcmlnaW5hbCwgb3B0aW9ucyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhdGNoLWZldGNoLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/patch-fetch.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUE0QztBQUM1Qyw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBZUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQkFBc0I7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9CQUFvQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGVBQWU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0M7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXGxpYlxcdHJhY2VcXGNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRhaW5zIHByZWRlZmluZWQgY29uc3RhbnRzIGZvciB0aGUgdHJhY2Ugc3BhbiBuYW1lIGluIG5leHQvc2VydmVyLlxuICpcbiAqIEN1cnJlbnRseSwgbmV4dC9zZXJ2ZXIvdHJhY2VyIGlzIGludGVybmFsIGltcGxlbWVudGF0aW9uIG9ubHkgZm9yIHRyYWNraW5nXG4gKiBuZXh0LmpzJ3MgaW1wbGVtZW50YXRpb24gb25seSB3aXRoIGtub3duIHNwYW4gbmFtZXMgZGVmaW5lZCBoZXJlLlxuICoqLyAvLyBlc2xpbnQgdHlwZXNjcmlwdCBoYXMgYSBidWcgd2l0aCBUUyBlbnVtc1xuLyogZXNsaW50LWRpc2FibGUgbm8tc2hhZG93ICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBwUmVuZGVyU3BhbjogbnVsbCxcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuOiBudWxsLFxuICAgIEJhc2VTZXJ2ZXJTcGFuOiBudWxsLFxuICAgIExvYWRDb21wb25lbnRzU3BhbjogbnVsbCxcbiAgICBMb2dTcGFuQWxsb3dMaXN0OiBudWxsLFxuICAgIE1pZGRsZXdhcmVTcGFuOiBudWxsLFxuICAgIE5leHROb2RlU2VydmVyU3BhbjogbnVsbCxcbiAgICBOZXh0U2VydmVyU3BhbjogbnVsbCxcbiAgICBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q6IG51bGwsXG4gICAgTm9kZVNwYW46IG51bGwsXG4gICAgUmVuZGVyU3BhbjogbnVsbCxcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuOiBudWxsLFxuICAgIFJvdXRlclNwYW46IG51bGwsXG4gICAgU3RhcnRTZXJ2ZXJTcGFuOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFwcFJlbmRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwUmVuZGVyU3BhbjtcbiAgICB9LFxuICAgIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjtcbiAgICB9LFxuICAgIEJhc2VTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhc2VTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTG9hZENvbXBvbmVudHNTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExvYWRDb21wb25lbnRzU3BhbjtcbiAgICB9LFxuICAgIExvZ1NwYW5BbGxvd0xpc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTG9nU3BhbkFsbG93TGlzdDtcbiAgICB9LFxuICAgIE1pZGRsZXdhcmVTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1pZGRsZXdhcmVTcGFuO1xuICAgIH0sXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHROb2RlU2VydmVyU3BhbjtcbiAgICB9LFxuICAgIE5leHRTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDtcbiAgICB9LFxuICAgIE5vZGVTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5vZGVTcGFuO1xuICAgIH0sXG4gICAgUmVuZGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW5kZXJTcGFuO1xuICAgIH0sXG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNvbHZlTWV0YWRhdGFTcGFuO1xuICAgIH0sXG4gICAgUm91dGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSb3V0ZXJTcGFuO1xuICAgIH0sXG4gICAgU3RhcnRTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFN0YXJ0U2VydmVyU3BhbjtcbiAgICB9XG59KTtcbnZhciBCYXNlU2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQmFzZVNlcnZlclNwYW4pIHtcbiAgICBCYXNlU2VydmVyU3BhbltcImhhbmRsZVJlcXVlc3RcIl0gPSBcIkJhc2VTZXJ2ZXIuaGFuZGxlUmVxdWVzdFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicnVuXCJdID0gXCJCYXNlU2VydmVyLnJ1blwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicGlwZVwiXSA9IFwiQmFzZVNlcnZlci5waXBlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJnZXRTdGF0aWNIVE1MXCJdID0gXCJCYXNlU2VydmVyLmdldFN0YXRpY0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50c1wiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9SZXNwb25zZVwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyNDA0XCI7XG4gICAgcmV0dXJuIEJhc2VTZXJ2ZXJTcGFuO1xufShCYXNlU2VydmVyU3BhbiB8fCB7fSk7XG52YXIgTG9hZENvbXBvbmVudHNTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihMb2FkQ29tcG9uZW50c1NwYW4pIHtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkRGVmYXVsdEVycm9yQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIjtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZENvbXBvbmVudHNcIjtcbiAgICByZXR1cm4gTG9hZENvbXBvbmVudHNTcGFuO1xufShMb2FkQ29tcG9uZW50c1NwYW4gfHwge30pO1xudmFyIE5leHRTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOZXh0U2VydmVyU3Bhbikge1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0UmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJjcmVhdGVTZXJ2ZXJcIl0gPSBcImNyZWF0ZVNlcnZlci5jcmVhdGVTZXJ2ZXJcIjtcbiAgICByZXR1cm4gTmV4dFNlcnZlclNwYW47XG59KE5leHRTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBOZXh0Tm9kZVNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5leHROb2RlU2VydmVyU3Bhbikge1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNvbXByZXNzaW9uXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jb21wcmVzc2lvblwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEJ1aWxkSWRcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEJ1aWxkSWRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjcmVhdGVDb21wb25lbnRUcmVlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldExheW91dE9yUGFnZU1vZHVsZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlU3RhdGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVGc1N0YXRpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVGc1N0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlUHVibGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVB1YmxpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlSW1hZ2VSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlSW1hZ2VSb3V0ZXMucm91dGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJzZW5kUmVuZGVyUmVzdWx0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5zZW5kUmVuZGVyUmVzdWx0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicHJveHlSZXF1ZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5wcm94eVJlcXVlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJydW5BcGlcIl0gPSBcIk5leHROb2RlU2VydmVyLnJ1bkFwaVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVySFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVySFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImltYWdlT3B0aW1pemVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5pbWFnZU9wdGltaXplclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFBhZ2VQYXRoXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRQYWdlUGF0aFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFJvdXRlc01hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRSb3V0ZXNNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImZpbmRQYWdlQ29tcG9uZW50c1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0Rm9udE1hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRGb250TWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJDb21wb25lbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJUb0hUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclRvSFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJFcnJvclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlcjQwNFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyNDA0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic3RhcnRSZXNwb25zZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc3RhcnRSZXNwb25zZVwiO1xuICAgIC8vIG5lc3RlZCBpbm5lciBzcGFuLCBkb2VzIG5vdCByZXF1aXJlIHBhcmVudCBzY29wZSBuYW1lXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicm91dGVcIl0gPSBcInJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wib25Qcm94eVJlcVwiXSA9IFwib25Qcm94eVJlcVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImFwaVJlc29sdmVyXCJdID0gXCJhcGlSZXNvbHZlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImludGVybmFsRmV0Y2hcIl0gPSBcImludGVybmFsRmV0Y2hcIjtcbiAgICByZXR1cm4gTmV4dE5vZGVTZXJ2ZXJTcGFuO1xufShOZXh0Tm9kZVNlcnZlclNwYW4gfHwge30pO1xudmFyIFN0YXJ0U2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oU3RhcnRTZXJ2ZXJTcGFuKSB7XG4gICAgU3RhcnRTZXJ2ZXJTcGFuW1wic3RhcnRTZXJ2ZXJcIl0gPSBcInN0YXJ0U2VydmVyLnN0YXJ0U2VydmVyXCI7XG4gICAgcmV0dXJuIFN0YXJ0U2VydmVyU3Bhbjtcbn0oU3RhcnRTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBSZW5kZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSZW5kZXJTcGFuKSB7XG4gICAgUmVuZGVyU3BhbltcImdldFNlcnZlclNpZGVQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFNlcnZlclNpZGVQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJnZXRTdGF0aWNQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFN0YXRpY1Byb3BzXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBSZW5kZXJTcGFuW1wicmVuZGVyRG9jdW1lbnRcIl0gPSBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiO1xuICAgIFJlbmRlclNwYW5bXCJjcmVhdGVCb2R5UmVzdWx0XCJdID0gXCJSZW5kZXIuY3JlYXRlQm9keVJlc3VsdFwiO1xuICAgIHJldHVybiBSZW5kZXJTcGFuO1xufShSZW5kZXJTcGFuIHx8IHt9KTtcbnZhciBBcHBSZW5kZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihBcHBSZW5kZXJTcGFuKSB7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJBcHBSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wicmVuZGVyVG9SZWFkYWJsZVN0cmVhbVwiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW1cIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZ2V0Qm9keVJlc3VsdFwiXSA9IFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZmV0Y2hcIl0gPSBcIkFwcFJlbmRlci5mZXRjaFwiO1xuICAgIHJldHVybiBBcHBSZW5kZXJTcGFuO1xufShBcHBSZW5kZXJTcGFuIHx8IHt9KTtcbnZhciBSb3V0ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSb3V0ZXJTcGFuKSB7XG4gICAgUm91dGVyU3BhbltcImV4ZWN1dGVSb3V0ZVwiXSA9IFwiUm91dGVyLmV4ZWN1dGVSb3V0ZVwiO1xuICAgIHJldHVybiBSb3V0ZXJTcGFuO1xufShSb3V0ZXJTcGFuIHx8IHt9KTtcbnZhciBOb2RlU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTm9kZVNwYW4pIHtcbiAgICBOb2RlU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIk5vZGUucnVuSGFuZGxlclwiO1xuICAgIHJldHVybiBOb2RlU3Bhbjtcbn0oTm9kZVNwYW4gfHwge30pO1xudmFyIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4pIHtcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuW1wicnVuSGFuZGxlclwiXSA9IFwiQXBwUm91dGVSb3V0ZUhhbmRsZXJzLnJ1bkhhbmRsZXJcIjtcbiAgICByZXR1cm4gQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3Bhbjtcbn0oQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbiB8fCB7fSk7XG52YXIgUmVzb2x2ZU1ldGFkYXRhU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUmVzb2x2ZU1ldGFkYXRhU3Bhbikge1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZU1ldGFkYXRhXCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiO1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZVZpZXdwb3J0XCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVWaWV3cG9ydFwiO1xuICAgIHJldHVybiBSZXNvbHZlTWV0YWRhdGFTcGFuO1xufShSZXNvbHZlTWV0YWRhdGFTcGFuIHx8IHt9KTtcbnZhciBNaWRkbGV3YXJlU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTWlkZGxld2FyZVNwYW4pIHtcbiAgICBNaWRkbGV3YXJlU3BhbltcImV4ZWN1dGVcIl0gPSBcIk1pZGRsZXdhcmUuZXhlY3V0ZVwiO1xuICAgIHJldHVybiBNaWRkbGV3YXJlU3Bhbjtcbn0oTWlkZGxld2FyZVNwYW4gfHwge30pO1xuY29uc3QgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0ID0gW1xuICAgIFwiTWlkZGxld2FyZS5leGVjdXRlXCIsXG4gICAgXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIixcbiAgICBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIixcbiAgICBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiLFxuICAgIFwiQXBwUmVuZGVyLmZldGNoXCIsXG4gICAgXCJBcHBSZW5kZXIuZ2V0Qm9keVJlc3VsdFwiLFxuICAgIFwiUmVuZGVyLnJlbmRlckRvY3VtZW50XCIsXG4gICAgXCJOb2RlLnJ1bkhhbmRsZXJcIixcbiAgICBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNyZWF0ZUNvbXBvbmVudFRyZWVcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5zdGFydFJlc3BvbnNlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCJcbl07XG5jb25zdCBMb2dTcGFuQWxsb3dMaXN0ID0gW1xuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCJcbl07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 }\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLGlGQUFhO0FBQ3hDLG9CQUFvQixtQkFBTyxDQUFDLGlHQUFpQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRjtBQUNBLGNBQWMsbUJBQU8sQ0FBQywrRkFBb0I7QUFDMUMsTUFBTTtBQUNOLGNBQWMsbUJBQU8sQ0FBQyxrSEFBdUM7QUFDN0Q7QUFDQTtBQUNBLFFBQVEsc0VBQXNFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5Q0FBeUMsUUFBUSxvRkFBb0Y7QUFDcEw7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSx1R0FBdUc7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RTtBQUM5RTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxsaWJcXHRyYWNlXFx0cmFjZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBCdWJibGVkRXJyb3I6IG51bGwsXG4gICAgU3BhbktpbmQ6IG51bGwsXG4gICAgU3BhblN0YXR1c0NvZGU6IG51bGwsXG4gICAgZ2V0VHJhY2VyOiBudWxsLFxuICAgIGlzQnViYmxlZEVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEJ1YmJsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCdWJibGVkRXJyb3I7XG4gICAgfSxcbiAgICBTcGFuS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTcGFuS2luZDtcbiAgICB9LFxuICAgIFNwYW5TdGF0dXNDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNwYW5TdGF0dXNDb2RlO1xuICAgIH0sXG4gICAgZ2V0VHJhY2VyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlcjtcbiAgICB9LFxuICAgIGlzQnViYmxlZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQnViYmxlZEVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9pc3RoZW5hYmxlID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvaXMtdGhlbmFibGVcIik7XG5sZXQgYXBpO1xuLy8gd2Ugd2FudCB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YgQG9wZW50ZWxlbWV0cnkvYXBpIGlmIHRoZXlcbi8vIHdhbnQgdG8sIHNvIHdlIHRyeSB0byByZXF1aXJlIGl0IGZpcnN0LCBhbmQgaWYgaXQgZmFpbHMgd2UgZmFsbCBiYWNrIHRvIHRoZVxuLy8gdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzXG4vLyB0aGlzIGlzIGJlY2F1c2UgQG9wZW50ZWxlbWV0cnkvYXBpIGhhcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgdmVyc2lvbiBvZlxuLy8gQG9wZW50ZWxlbWV0cnkvdHJhY2luZyB0aGF0IGlzIHVzZWQsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZvcmNlIHVzZXJzIHRvIHVzZVxuLy8gdGhlIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qcy5cbi8vIHRoZSBBUEkgaXMgfnN0YWJsZSwgc28gdGhpcyBzaG91bGQgYmUgZmluZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgYXBpID0gcmVxdWlyZSgnQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG59IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoJ0BvcGVudGVsZW1ldHJ5L2FwaScpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhcGkgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG4gICAgfVxufVxuY29uc3QgeyBjb250ZXh0LCBwcm9wYWdhdGlvbiwgdHJhY2UsIFNwYW5TdGF0dXNDb2RlLCBTcGFuS2luZCwgUk9PVF9DT05URVhUIH0gPSBhcGk7XG5jbGFzcyBCdWJibGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoYnViYmxlLCByZXN1bHQpe1xuICAgICAgICBzdXBlcigpLCB0aGlzLmJ1YmJsZSA9IGJ1YmJsZSwgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNCdWJibGVkRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEJ1YmJsZWRFcnJvcjtcbn1cbmNvbnN0IGNsb3NlU3BhbldpdGhFcnJvciA9IChzcGFuLCBlcnJvcik9PntcbiAgICBpZiAoaXNCdWJibGVkRXJyb3IoZXJyb3IpICYmIGVycm9yLmJ1YmJsZSkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnbmV4dC5idWJibGUnLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgICBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzcGFuLmVuZCgpO1xufTtcbi8qKiB3ZSB1c2UgdGhpcyBtYXAgdG8gcHJvcGFnYXRlIGF0dHJpYnV0ZXMgZnJvbSBuZXN0ZWQgc3BhbnMgdG8gdGhlIHRvcCBzcGFuICovIGNvbnN0IHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlID0gbmV3IE1hcCgpO1xuY29uc3Qgcm9vdFNwYW5JZEtleSA9IGFwaS5jcmVhdGVDb250ZXh0S2V5KCduZXh0LnJvb3RTcGFuSWQnKTtcbmxldCBsYXN0U3BhbklkID0gMDtcbmNvbnN0IGdldFNwYW5JZCA9ICgpPT5sYXN0U3BhbklkKys7XG5jb25zdCBjbGllbnRUcmFjZURhdGFTZXR0ZXIgPSB7XG4gICAgc2V0IChjYXJyaWVyLCBrZXksIHZhbHVlKSB7XG4gICAgICAgIGNhcnJpZXIucHVzaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICB9XG59O1xuY2xhc3MgTmV4dFRyYWNlckltcGwge1xuICAgIC8qKlxuICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIHRvIHRoZSB0cmFjZSB3aXRoIGNvbmZpZ3VyZWQgbmFtZS5cbiAgICogU2luY2Ugd3JhcCAvIHRyYWNlIGNhbiBiZSBkZWZpbmVkIGluIGFueSBwbGFjZSBwcmlvciB0byBhY3R1YWwgdHJhY2Ugc3Vic2NyaWJlciBpbml0aWFsaXphdGlvbixcbiAgICogVGhpcyBzaG91bGQgYmUgbGF6aWx5IGV2YWx1YXRlZC5cbiAgICovIGdldFRyYWNlckluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0VHJhY2VyKCduZXh0LmpzJywgJzAuMC4xJyk7XG4gICAgfVxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH1cbiAgICBnZXRUcmFjZVByb3BhZ2F0aW9uRGF0YSgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBbXTtcbiAgICAgICAgcHJvcGFnYXRpb24uaW5qZWN0KGFjdGl2ZUNvbnRleHQsIGVudHJpZXMsIGNsaWVudFRyYWNlRGF0YVNldHRlcik7XG4gICAgICAgIHJldHVybiBlbnRyaWVzO1xuICAgIH1cbiAgICBnZXRBY3RpdmVTY29wZVNwYW4oKSB7XG4gICAgICAgIHJldHVybiB0cmFjZS5nZXRTcGFuKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpO1xuICAgIH1cbiAgICB3aXRoUHJvcGFnYXRlZENvbnRleHQoY2FycmllciwgZm4sIGdldHRlcikge1xuICAgICAgICBjb25zdCBhY3RpdmVDb250ZXh0ID0gY29udGV4dC5hY3RpdmUoKTtcbiAgICAgICAgaWYgKHRyYWNlLmdldFNwYW5Db250ZXh0KGFjdGl2ZUNvbnRleHQpKSB7XG4gICAgICAgICAgICAvLyBBY3RpdmUgc3BhbiBpcyBhbHJlYWR5IHNldCwgdG9vIGxhdGUgdG8gcHJvcGFnYXRlLlxuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVtb3RlQ29udGV4dCA9IHByb3BhZ2F0aW9uLmV4dHJhY3QoYWN0aXZlQ29udGV4dCwgY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChyZW1vdGVDb250ZXh0LCBmbik7XG4gICAgfVxuICAgIHRyYWNlKC4uLmFyZ3MpIHtcbiAgICAgICAgdmFyIF90cmFjZV9nZXRTcGFuQ29udGV4dDtcbiAgICAgICAgY29uc3QgW3R5cGUsIGZuT3JPcHRpb25zLCBmbk9yRW1wdHldID0gYXJncztcbiAgICAgICAgLy8gY29lcmNlIG9wdGlvbnMgZm9ybSBvdmVybG9hZFxuICAgICAgICBjb25zdCB7IGZuLCBvcHRpb25zIH0gPSB0eXBlb2YgZm5Pck9wdGlvbnMgPT09ICdmdW5jdGlvbicgPyB7XG4gICAgICAgICAgICBmbjogZm5Pck9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zOiB7fVxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgZm46IGZuT3JFbXB0eSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAuLi5mbk9yT3B0aW9uc1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzcGFuTmFtZSA9IG9wdGlvbnMuc3Bhbk5hbWUgPz8gdHlwZTtcbiAgICAgICAgaWYgKCFfY29uc3RhbnRzLk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyh0eXBlKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gJzEnIHx8IG9wdGlvbnMuaGlkZVNwYW4pIHtcbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyeWluZyB0byBnZXQgYWN0aXZlIHNjb3BlZCBzcGFuIHRvIGFzc2lnbiBwYXJlbnQuIElmIG9wdGlvbiBzcGVjaWZpZXMgcGFyZW50IHNwYW4gbWFudWFsbHksIHdpbGwgdHJ5IHRvIHVzZSBpdC5cbiAgICAgICAgbGV0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgbGV0IGlzUm9vdFNwYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFzcGFuQ29udGV4dCkge1xuICAgICAgICAgICAgc3BhbkNvbnRleHQgPSAoY29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogY29udGV4dC5hY3RpdmUoKSkgPz8gUk9PVF9DT05URVhUO1xuICAgICAgICAgICAgaXNSb290U3BhbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoKF90cmFjZV9nZXRTcGFuQ29udGV4dCA9IHRyYWNlLmdldFNwYW5Db250ZXh0KHNwYW5Db250ZXh0KSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90cmFjZV9nZXRTcGFuQ29udGV4dC5pc1JlbW90ZSkge1xuICAgICAgICAgICAgaXNSb290U3BhbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3BhbklkID0gZ2V0U3BhbklkKCk7XG4gICAgICAgIG9wdGlvbnMuYXR0cmlidXRlcyA9IHtcbiAgICAgICAgICAgICduZXh0LnNwYW5fbmFtZSc6IHNwYW5OYW1lLFxuICAgICAgICAgICAgJ25leHQuc3Bhbl90eXBlJzogdHlwZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXR0cmlidXRlc1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY29udGV4dC53aXRoKHNwYW5Db250ZXh0LnNldFZhbHVlKHJvb3RTcGFuSWRLZXksIHNwYW5JZCksICgpPT50aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRBY3RpdmVTcGFuKHNwYW5OYW1lLCBvcHRpb25zLCAoc3Bhbik9PntcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSAncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMgJiYgJ21lYXN1cmUnIGluIHBlcmZvcm1hbmNlID8gZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZS5ub3coKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBjb25zdCBvbkNsZWFudXAgPSAoKT0+e1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5kZWxldGUoc3BhbklkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYICYmIF9jb25zdGFudHMuTG9nU3BhbkFsbG93TGlzdC5pbmNsdWRlcyh0eXBlIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZShgJHtwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYfTpuZXh0LSR7KHR5cGUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJykucmVwbGFjZSgvW0EtWl0vZywgKG1hdGNoKT0+Jy0nICsgbWF0Y2gudG9Mb3dlckNhc2UoKSl9YCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBwZXJmb3JtYW5jZS5ub3coKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChpc1Jvb3RTcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLnNldChzcGFuSWQsIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMob3B0aW9ucy5hdHRyaWJ1dGVzID8/IHt9KSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuKHNwYW4sIChlcnIpPT5jbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4oc3Bhbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICgoMCwgX2lzdGhlbmFibGUuaXNUaGVuYWJsZSkocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBlcnJvciBtYWtlIHN1cmUgaXQgdGhyb3dzXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgdG8gcGFzcyBkb3duIHRoZSBwcm9taXNlIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBjb3VsZCBiZSByZWFjdCBzdHJlYW0gcmVzcG9uc2Ugd2l0aCBlcnJvciB7IGVycm9yLCBzdHJlYW0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkob25DbGVhbnVwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIHdyYXAoLi4uYXJncykge1xuICAgICAgICBjb25zdCB0cmFjZXIgPSB0aGlzO1xuICAgICAgICBjb25zdCBbbmFtZSwgb3B0aW9ucywgZm5dID0gYXJncy5sZW5ndGggPT09IDMgPyBhcmdzIDogW1xuICAgICAgICAgICAgYXJnc1swXSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgYXJnc1sxXVxuICAgICAgICBdO1xuICAgICAgICBpZiAoIV9jb25zdGFudHMuTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0LmluY2x1ZGVzKG5hbWUpICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9WRVJCT1NFICE9PSAnMScpIHtcbiAgICAgICAgICAgIHJldHVybiBmbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgb3B0aW9uc09iaiA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPYmogPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uc09iaiA9IG9wdGlvbnNPYmouYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhc3RBcmdJZCA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgY29uc3QgY2IgPSBhcmd1bWVudHNbbGFzdEFyZ0lkXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY29wZUJvdW5kQ2IgPSB0cmFjZXIuZ2V0Q29udGV4dCgpLmJpbmQoY29udGV4dC5hY3RpdmUoKSwgY2IpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKF9zcGFuLCBkb25lKT0+e1xuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbbGFzdEFyZ0lkXSA9IGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9PSBudWxsID8gdm9pZCAwIDogZG9uZShlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlQm91bmRDYi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoKT0+Zm4uYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN0YXJ0U3BhbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydFNwYW4odHlwZSwgb3B0aW9ucywgc3BhbkNvbnRleHQpO1xuICAgIH1cbiAgICBnZXRTcGFuQ29udGV4dChwYXJlbnRTcGFuKSB7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gcGFyZW50U3BhbiA/IHRyYWNlLnNldFNwYW4oY29udGV4dC5hY3RpdmUoKSwgcGFyZW50U3BhbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBzcGFuQ29udGV4dDtcbiAgICB9XG4gICAgZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCkge1xuICAgICAgICBjb25zdCBzcGFuSWQgPSBjb250ZXh0LmFjdGl2ZSgpLmdldFZhbHVlKHJvb3RTcGFuSWRLZXkpO1xuICAgICAgICByZXR1cm4gcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZ2V0KHNwYW5JZCk7XG4gICAgfVxuICAgIHNldFJvb3RTcGFuQXR0cmlidXRlKGtleSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc3BhbklkID0gY29udGV4dC5hY3RpdmUoKS5nZXRWYWx1ZShyb290U3BhbklkS2V5KTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmdldChzcGFuSWQpO1xuICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgYXR0cmlidXRlcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5jb25zdCBnZXRUcmFjZXIgPSAoKCk9PntcbiAgICBjb25zdCB0cmFjZXIgPSBuZXcgTmV4dFRyYWNlckltcGwoKTtcbiAgICByZXR1cm4gKCk9PnRyYWNlcjtcbn0pKCk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYWNlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 new Error('failed to write chunk to response', {\n cause: err\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0, _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 new Error('failed to pipe response', {\n cause: err\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLHFJQUE0QztBQUN6RSx5QkFBeUIsbUJBQU8sQ0FBQyx1RkFBeUI7QUFDMUQsZ0JBQWdCLG1CQUFPLENBQUMscUZBQW9CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDJGQUF1QjtBQUNsRCx1Q0FBdUMsbUJBQU8sQ0FBQyxxSEFBb0M7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUNBQXlDO0FBQ3hGO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQkFBcUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccGlwZS1yZWFkYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzQWJvcnRFcnJvcjogbnVsbCxcbiAgICBwaXBlVG9Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNBYm9ydEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQWJvcnRFcnJvcjtcbiAgICB9LFxuICAgIHBpcGVUb05vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwaXBlVG9Ob2RlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfbmV4dHJlcXVlc3QgPSByZXF1aXJlKFwiLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0XCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIgPSByZXF1aXJlKFwiLi9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlclwiKTtcbmZ1bmN0aW9uIGlzQWJvcnRFcnJvcihlKSB7XG4gICAgcmV0dXJuIChlID09IG51bGwgPyB2b2lkIDAgOiBlLm5hbWUpID09PSAnQWJvcnRFcnJvcicgfHwgKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09IF9uZXh0cmVxdWVzdC5SZXNwb25zZUFib3J0ZWROYW1lO1xufVxuZnVuY3Rpb24gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKSB7XG4gICAgbGV0IHN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9uY2UgdGhlIHJlc3BvbnNlIGhhcyBkcmFpbmVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL3N0cmVhbS5odG1sI3N0cmVhbV9ldmVudF9kcmFpblxuICAgIGxldCBkcmFpbmVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgZnVuY3Rpb24gb25EcmFpbigpIHtcbiAgICAgICAgZHJhaW5lZC5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJlcy5vbignZHJhaW4nLCBvbkRyYWluKTtcbiAgICAvLyBJZiB0aGUgZmluaXNoIGV2ZW50IGZpcmVzLCBpdCBtZWFucyB3ZSBzaG91bGRuJ3QgYmxvY2sgYW5kIHdhaXQgZm9yIHRoZVxuICAgIC8vIGRyYWluIGV2ZW50LlxuICAgIHJlcy5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIHJlcy5vZmYoJ2RyYWluJywgb25EcmFpbik7XG4gICAgICAgIGRyYWluZWQucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgcmVzcG9uc2UgaGFzIGZpbmlzaGVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL2h0dHAuaHRtbCNldmVudC1maW5pc2hfMVxuICAgIGNvbnN0IGZpbmlzaGVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgcmVzLm9uY2UoJ2ZpbmlzaCcsICgpPT57XG4gICAgICAgIGZpbmlzaGVkLnJlc29sdmUoKTtcbiAgICB9KTtcbiAgICAvLyBDcmVhdGUgYSB3cml0YWJsZSBzdHJlYW0gdGhhdCB3aWxsIHdyaXRlIHRvIHRoZSByZXNwb25zZS5cbiAgICByZXR1cm4gbmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgd3JpdGU6IGFzeW5jIChjaHVuayk9PntcbiAgICAgICAgICAgIC8vIFlvdSdkIHRoaW5rIHdlJ2Qgd2FudCB0byB1c2UgYHN0YXJ0YCBpbnN0ZWFkIG9mIHBsYWNpbmcgdGhpcyBpbiBgd3JpdGVgXG4gICAgICAgICAgICAvLyBidXQgdGhpcyBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgYWN0dWFsbHkgZmx1c2ggdGhlIGhlYWRlcnMgdW50aWwgd2UndmVcbiAgICAgICAgICAgIC8vIHN0YXJ0ZWQgd3JpdGluZyBjaHVua3MuXG4gICAgICAgICAgICBpZiAoIXN0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0cmljcyA9ICgwLCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIuZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcykoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldHJpY3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC1jbGllbnQtY29tcG9uZW50LWxvYWRpbmdgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkU3RhcnQgKyBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRUaW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzLmZsdXNoSGVhZGVycygpO1xuICAgICAgICAgICAgICAgICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLk5leHROb2RlU2VydmVyU3Bhbi5zdGFydFJlc3BvbnNlLCB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW5OYW1lOiAnc3RhcnQgcmVzcG9uc2UnXG4gICAgICAgICAgICAgICAgfSwgKCk9PnVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9rID0gcmVzLndyaXRlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAvLyBBZGRlZCBieSB0aGUgYGNvbXByZXNzaW9uYCBtaWRkbGV3YXJlLCB0aGlzIGlzIGEgZnVuY3Rpb24gdGhhdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gZmx1c2ggdGhlIHBhcnRpYWxseS1jb21wcmVzc2VkIHJlc3BvbnNlIHRvIHRoZSBjbGllbnQuXG4gICAgICAgICAgICAgICAgaWYgKCdmbHVzaCcgaW4gcmVzICYmIHR5cGVvZiByZXMuZmx1c2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmZsdXNoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3cml0ZSByZXR1cm5zIGZhbHNlLCBpdCBtZWFucyB0aGVyZSdzIHNvbWUgYmFja3ByZXNzdXJlLCBzb1xuICAgICAgICAgICAgICAgIC8vIHdhaXQgdW50aWwgaXQncyBzdHJlYW1lZCBiZWZvcmUgY29udGludWluZy5cbiAgICAgICAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGRyYWluZWQucHJvbWlzZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGRyYWluZWQgcHJvbWlzZSBzbyB0aGF0IHdlIGNhbiB3YWl0IGZvciB0aGUgbmV4dCBkcmFpbiBldmVudC5cbiAgICAgICAgICAgICAgICAgICAgZHJhaW5lZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byB3cml0ZSBjaHVuayB0byByZXNwb25zZScsIHtcbiAgICAgICAgICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhYm9ydDogKGVycik9PntcbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmRlc3Ryb3koZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGFzeW5jICgpPT57XG4gICAgICAgICAgICAvLyBpZiBhIHdhaXRVbnRpbCBwcm9taXNlIHdhcyBwYXNzZWQsIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlXG4gICAgICAgICAgICAvLyBlbmRpbmcgdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgaWYgKHdhaXRVbnRpbEZvckVuZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEZvckVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgcmV0dXJuIGZpbmlzaGVkLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHBpcGVUb05vZGVSZXNwb25zZShyZWFkYWJsZSwgcmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgZXJyb3JlZCwgdGhlbiBqdXN0IHJldHVybiBub3cuXG4gICAgICAgIGNvbnN0IHsgZXJyb3JlZCwgZGVzdHJveWVkIH0gPSByZXM7XG4gICAgICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQWJvcnRDb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIGFib3J0IHRoZSByZWFkYWJsZSBpZiB0aGVcbiAgICAgICAgLy8gY2xpZW50IGRpc2Nvbm5lY3RzLlxuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gKDAsIF9uZXh0cmVxdWVzdC5jcmVhdGVBYm9ydENvbnRyb2xsZXIpKHJlcyk7XG4gICAgICAgIGNvbnN0IHdyaXRlciA9IGNyZWF0ZVdyaXRlckZyb21SZXNwb25zZShyZXMsIHdhaXRVbnRpbEZvckVuZCk7XG4gICAgICAgIGF3YWl0IHJlYWRhYmxlLnBpcGVUbyh3cml0ZXIsIHtcbiAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIElmIHRoaXMgaXNuJ3QgcmVsYXRlZCB0byBhbiBhYm9ydCBlcnJvciwgcmUtdGhyb3cgaXQuXG4gICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyKSkgcmV0dXJuO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBwaXBlIHJlc3BvbnNlJywge1xuICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpcGUtcmVhZGFibGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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\");\nclass RenderResult {\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @returns a new RenderResult instance\n */ static fromStatic(value) {\n return new RenderResult(value, {\n metadata: {}\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedBuffer(stream = false) {\n if (this.response === null) {\n throw new Error('Invariant: null responses cannot be unchunked');\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js');\n }\n return (0, _nodewebstreamshelper.streamToBuffer)(this.readable);\n }\n return Buffer.from(this.response);\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n throw new Error('Invariant: null responses cannot be unchunked');\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js');\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns the response if it is a stream, or throws an error if it is a\n * string.\n */ get readable() {\n if (this.response === null) {\n throw new Error('Invariant: null responses cannot be streamed');\n }\n if (typeof this.response === 'string') {\n throw new Error('Invariant: static responses cannot be streamed');\n }\n if (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 * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ chain(readable) {\n if (this.response === null) {\n throw new Error('Invariant: response is null. This is a bug in Next.js');\n }\n // If the response is not an array of streams already, make it one.\n let responses;\n if (typeof this.response === 'string') {\n responses = [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n responses = this.response;\n } else if (Buffer.isBuffer(this.response)) {\n responses = [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n responses = [\n this.response\n ];\n }\n // Add the new stream to the array.\n responses.push(readable);\n // Update the response.\n this.response = responses;\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0, _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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOEJBQThCLG1CQUFPLENBQUMsNkhBQXdDO0FBQzlFLHNCQUFzQixtQkFBTyxDQUFDLCtFQUFpQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSw0QkFBNEIsa0NBQWtDO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJlbmRlci1yZXN1bHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW5kZXJSZXN1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIgPSByZXF1aXJlKFwiLi9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXJcIik7XG5jb25zdCBfcGlwZXJlYWRhYmxlID0gcmVxdWlyZShcIi4vcGlwZS1yZWFkYWJsZVwiKTtcbmNsYXNzIFJlbmRlclJlc3VsdCB7XG4gICAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgUmVuZGVyUmVzdWx0IGluc3RhbmNlIGZyb20gYSBzdGF0aWMgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgc3RhdGljIHJlc3BvbnNlIHZhbHVlXG4gICAqIEByZXR1cm5zIGEgbmV3IFJlbmRlclJlc3VsdCBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb21TdGF0aWModmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZW5kZXJSZXN1bHQodmFsdWUsIHtcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7fVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocmVzcG9uc2UsIHsgY29udGVudFR5cGUsIHdhaXRVbnRpbCwgbWV0YWRhdGEgfSl7XG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICAgIHRoaXMud2FpdFVudGlsID0gd2FpdFVudGlsO1xuICAgIH1cbiAgICBhc3NpZ25NZXRhZGF0YShtZXRhZGF0YSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGFkYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVzcG9uc2UgaXMgbnVsbC4gSXQgY2FuIGJlIG51bGwgaWYgdGhlIHJlc3BvbnNlIHdhc1xuICAgKiBub3QgZm91bmQgb3Igd2FzIGFscmVhZHkgc2VudC5cbiAgICovIGdldCBpc051bGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlID09PSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcmVzcG9uc2UgaXMgYSBzdHJpbmcuIEl0IGNhbiBiZSBhIHN0cmluZyBpZiB0aGUgcGFnZVxuICAgKiB3YXMgcHJlcmVuZGVyZWQuIElmIGl0J3Mgbm90LCB0aGVuIGl0IHdhcyBnZW5lcmF0ZWQgZHluYW1pY2FsbHkuXG4gICAqLyBnZXQgaXNEeW5hbWljKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMucmVzcG9uc2UgIT09ICdzdHJpbmcnO1xuICAgIH1cbiAgICB0b1VuY2h1bmtlZEJ1ZmZlcihzdHJlYW0gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiBkeW5hbWljIHJlc3BvbnNlcyBjYW5ub3QgYmUgdW5jaHVua2VkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvQnVmZmVyKSh0aGlzLnJlYWRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20odGhpcy5yZXNwb25zZSk7XG4gICAgfVxuICAgIHRvVW5jaHVua2VkU3RyaW5nKHN0cmVhbSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFyaWFudDogbnVsbCByZXNwb25zZXMgY2Fubm90IGJlIHVuY2h1bmtlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICghc3RyZWFtKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IGR5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtVG9TdHJpbmcpKHRoaXMucmVhZGFibGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVzcG9uc2UgaWYgaXQgaXMgYSBzdHJlYW0sIG9yIHRocm93cyBhbiBlcnJvciBpZiBpdCBpcyBhXG4gICAqIHN0cmluZy5cbiAgICovIGdldCByZWFkYWJsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiBudWxsIHJlc3BvbnNlcyBjYW5ub3QgYmUgc3RyZWFtZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFyaWFudDogc3RhdGljIHJlc3BvbnNlcyBjYW5ub3QgYmUgc3RyZWFtZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYW4gYXJyYXkgb2Ygc3RyZWFtcywgdGhlbiBjaGFpbiB0aGVtIHRvZ2V0aGVyLlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuY2hhaW5TdHJlYW1zKSguLi50aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENoYWlucyBhIG5ldyBzdHJlYW0gdG8gdGhlIHJlc3BvbnNlLiBUaGlzIHdpbGwgY29udmVydCB0aGUgcmVzcG9uc2UgdG8gYW5cbiAgICogYXJyYXkgb2Ygc3RyZWFtcyBpZiBpdCBpcyBub3QgYWxyZWFkeSBvbmUgYW5kIHdpbGwgYWRkIHRoZSBuZXcgc3RyZWFtIHRvXG4gICAqIHRoZSBlbmQuIFdoZW4gdGhpcyByZXNwb25zZSBpcyBwaXBlZCwgYWxsIG9mIHRoZSBzdHJlYW1zIHdpbGwgYmUgcGlwZWRcbiAgICogb25lIGFmdGVyIHRoZSBvdGhlci5cbiAgICpcbiAgICogQHBhcmFtIHJlYWRhYmxlIFRoZSBuZXcgc3RyZWFtIHRvIGNoYWluXG4gICAqLyBjaGFpbihyZWFkYWJsZSkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IHJlc3BvbnNlIGlzIG51bGwuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBub3QgYW4gYXJyYXkgb2Ygc3RyZWFtcyBhbHJlYWR5LCBtYWtlIGl0IG9uZS5cbiAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gW1xuICAgICAgICAgICAgICAgICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbVN0cmluZykodGhpcy5yZXNwb25zZSlcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5yZXNwb25zZTtcbiAgICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlcyA9IFtcbiAgICAgICAgICAgICAgICAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKHRoaXMucmVzcG9uc2UpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gW1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIHRoZSBuZXcgc3RyZWFtIHRvIHRoZSBhcnJheS5cbiAgICAgICAgcmVzcG9uc2VzLnB1c2gocmVhZGFibGUpO1xuICAgICAgICAvLyBVcGRhdGUgdGhlIHJlc3BvbnNlLlxuICAgICAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2VzO1xuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgd3JpdGFibGUgc3RyZWFtLiBUaGlzIHdpbGwgY2xvc2UvY2FuY2VsIHRoZVxuICAgKiB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuIElmIHRoaXMgZG9lc24ndCB0aHJvdywgdGhlblxuICAgKiB0aGUgd3JpdGFibGUgc3RyZWFtIHdpbGwgYmUgY2xvc2VkIG9yIGFib3J0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB3cml0YWJsZSBXcml0YWJsZSBzdHJlYW0gdG8gcGlwZSB0aGUgcmVzcG9uc2UgdG9cbiAgICovIGFzeW5jIHBpcGVUbyh3cml0YWJsZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWFkYWJsZS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gb3Vyc2VsdmVzIHNvIHRoYXQgd2UgY2FuIHdhaXRcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHdhaXRVbnRpbCBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNsb3NpbmcgaXQuIElmIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgLy8gaXMgZW5jb3VudGVyZWQsIHdlJ2xsIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgd2Ugc3dhbGxvd2VkIHRoZVxuICAgICAgICAgICAgICAgIC8vIGVycm9yLlxuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHdhaXRVbnRpbCBwcm9taXNlLCB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZVxuICAgICAgICAgICAgLy8gY2xvc2luZyB0aGUgd3JpdGFibGUgc3RyZWFtLlxuICAgICAgICAgICAgaWYgKHRoaXMud2FpdFVudGlsKSBhd2FpdCB0aGlzLndhaXRVbnRpbDtcbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYW4gYWJvcnQgZXJyb3IsIHdlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIChhcyB3ZVxuICAgICAgICAgICAgLy8gdG9vayBvd25lcnNoaXAgb2YgaXQgd2hlbiB3ZSBzdGFydGVkIHBpcGluZykuIFdlIGRvbid0IG5lZWQgdG8gcmUtdGhyb3dcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGFuZGxlZCB0aGUgZXJyb3IuXG4gICAgICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKShlcnIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5hYm9ydChlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBhYm9ydGluZyB0aGUgd3JpdGVyIGhlcmUgYXMgd2hlbiB0aGlzIG1ldGhvZCB0aHJvd3MgaXQncyBub3RcbiAgICAgICAgICAgIC8vIGNsZWFyIGFzIHRvIGhvdyBzbyB0aGUgY2FsbGVyIHNob3VsZCBhc3N1bWUgaXQncyB0aGVpciByZXNwb25zaWJpbGl0eVxuICAgICAgICAgICAgLy8gdG8gY2xlYW4gdXAgdGhlIHdyaXRlci5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgbm9kZSByZXNwb25zZS4gVGhpcyB3aWxsIGNsb3NlL2NhbmNlbCB0aGUgbm9kZVxuICAgKiByZXNwb25zZSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlc1xuICAgKi8gYXN5bmMgcGlwZVRvTm9kZVJlc3BvbnNlKHJlcykge1xuICAgICAgICBhd2FpdCAoMCwgX3BpcGVyZWFkYWJsZS5waXBlVG9Ob2RlUmVzcG9uc2UpKHRoaXMucmVhZGFibGUsIHJlcywgdGhpcy53YWl0VW50aWwpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLXJlc3VsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 getNextInternalQuery: function() {\n return getNextInternalQuery;\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}\nfunction getNextInternalQuery(query) {\n const keysToInclude = [\n '__nextDefaultLocale',\n '__nextFallback',\n '__nextLocale',\n '__nextSsgPath',\n '_nextBubbleNoFallback',\n '__nextDataReq',\n '__nextInferredLocaleFromDefault'\n ];\n const nextInternalQuery = {};\n for (const key of keysToInclude){\n if (key in query) {\n // @ts-ignore this can't be typed correctly\n nextInternalQuery[key] = query[key];\n }\n }\n return nextInternalQuery;\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQUEsa0NBQStDO0FBQy9DLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FPTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVxdWVzdC1tZXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlZGVjbGFyZSAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBudWxsLFxuICAgIGFkZFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIGdldE5leHRJbnRlcm5hbFF1ZXJ5OiBudWxsLFxuICAgIGdldFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHNldFJlcXVlc3RNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVRVUVTVF9NRVRBO1xuICAgIH0sXG4gICAgYWRkUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWRkUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBnZXROZXh0SW50ZXJuYWxRdWVyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXROZXh0SW50ZXJuYWxRdWVyeTtcbiAgICB9LFxuICAgIGdldFJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgcmVtb3ZlUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBzZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRSZXF1ZXN0TWV0YTtcbiAgICB9XG59KTtcbmNvbnN0IE5FWFRfUkVRVUVTVF9NRVRBID0gU3ltYm9sLmZvcignTmV4dEludGVybmFsUmVxdWVzdE1ldGEnKTtcbmZ1bmN0aW9uIGdldFJlcXVlc3RNZXRhKHJlcSwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gfHwge307XG4gICAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gbWV0YVtrZXldIDogbWV0YTtcbn1cbmZ1bmN0aW9uIHNldFJlcXVlc3RNZXRhKHJlcSwgbWV0YSkge1xuICAgIHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gPSBtZXRhO1xuICAgIHJldHVybiBtZXRhO1xufVxuZnVuY3Rpb24gYWRkUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRSZXF1ZXN0TWV0YShyZXF1ZXN0KTtcbiAgICBtZXRhW2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5mdW5jdGlvbiByZW1vdmVSZXF1ZXN0TWV0YShyZXF1ZXN0LCBrZXkpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgZGVsZXRlIG1ldGFba2V5XTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5mdW5jdGlvbiBnZXROZXh0SW50ZXJuYWxRdWVyeShxdWVyeSkge1xuICAgIGNvbnN0IGtleXNUb0luY2x1ZGUgPSBbXG4gICAgICAgICdfX25leHREZWZhdWx0TG9jYWxlJyxcbiAgICAgICAgJ19fbmV4dEZhbGxiYWNrJyxcbiAgICAgICAgJ19fbmV4dExvY2FsZScsXG4gICAgICAgICdfX25leHRTc2dQYXRoJyxcbiAgICAgICAgJ19uZXh0QnViYmxlTm9GYWxsYmFjaycsXG4gICAgICAgICdfX25leHREYXRhUmVxJyxcbiAgICAgICAgJ19fbmV4dEluZmVycmVkTG9jYWxlRnJvbURlZmF1bHQnXG4gICAgXTtcbiAgICBjb25zdCBuZXh0SW50ZXJuYWxRdWVyeSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXNUb0luY2x1ZGUpe1xuICAgICAgICBpZiAoa2V5IGluIHF1ZXJ5KSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHRoaXMgY2FuJ3QgYmUgdHlwZWQgY29ycmVjdGx5XG4gICAgICAgICAgICBuZXh0SW50ZXJuYWxRdWVyeVtrZXldID0gcXVlcnlba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dEludGVybmFsUXVlcnk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtbWV0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request-meta.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 _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 _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/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 _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\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-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams, workStore) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && prerenderStore.type === 'prerender') {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one of more fallback params so we need to consider\n // the awaiting of this params object \"dynamic\". Since we are in dynamicIO mode\n // we encode this as a promise that never resolves\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`');\n }\n }\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 createPrerenderParams(underlyingParams, workStore, prerenderStore) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n let hasSomeFallbackParams = false;\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n hasSomeFallbackParams = true;\n break;\n }\n }\n if (hasSomeFallbackParams) {\n // params need to be treated as dynamic because we have at least one fallback param\n if (prerenderStore.type === 'prerender') {\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeAbortingExoticParams(underlyingParams, workStore.route, prerenderStore);\n }\n // remaining cases are prender-ppr and prerender-legacy\n // We aren't in a dynamicIO prerender but we do have fallback params at this\n // level so we need to make an erroring exotic params object which will postpone\n // if you access the fallback params\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParams(underlyingParams, workStore) {\n if ( true && !workStore.isPrefetchRequest) {\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, workStore);\n } else {\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nconst CachedParams = new WeakMap();\nfunction makeAbortingExoticParams(underlyingParams, route, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`');\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_utils.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 Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _utils.describeStringPropertyAccess)('params', prop);\n const error = createParamsAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\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 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 (_utils.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, _utils.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 dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\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, _utils.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 dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\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 (_utils.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 makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, 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 = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingParams)));\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_utils.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, _utils.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}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\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 noop = ()=>{};\nconst warnForSyncAccess = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return 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`);\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQyw0SEFBd0M7QUFDakUsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLHNDQUFzQyxtQkFBTyxDQUFDLDBGQUFnRDtBQUM5Rix3QkFBd0IsbUJBQU8sQ0FBQyxzR0FBa0M7QUFDbEUsZUFBZSxtQkFBTyxDQUFDLHVFQUFTO0FBQ2hDLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBc0M7QUFDOUM7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixNQUFvRCxHQUFHLENBQUk7QUFDckYscUNBQXFDLE1BQW9ELEdBQUcsQ0FBSTtBQUNoRztBQUNBLHFDQUFxQyxNQUFNO0FBQzNDLHdCQUF3QixPQUFPLE9BQU8sV0FBVztBQUNqRDtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0Msd0JBQXdCLE9BQU8sT0FBTyxXQUFXLHFNQUFxTSwrQ0FBK0M7QUFDclM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQSx3QkFBd0IsY0FBYyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVxdWVzdFxccGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlciA9IHJlcXVpcmUoXCIuLi9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuZnVuY3Rpb24gY3JlYXRlUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpO1xufVxuY29uc3QgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEgPSBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50O1xuZnVuY3Rpb24gY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiBwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHBhcmFtcyBvYmplY3QgaGFzIG9uZSBvZiBtb3JlIGZhbGxiYWNrIHBhcmFtcyBzbyB3ZSBuZWVkIHRvIGNvbnNpZGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBhd2FpdGluZyBvZiB0aGlzIHBhcmFtcyBvYmplY3QgXCJkeW5hbWljXCIuIFNpbmNlIHdlIGFyZSBpbiBkeW5hbWljSU8gbW9kZVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlciByZXNvbHZlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgcGFyYW1zYCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnQuIFdlIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aG91dFxuICAgIC8vIGFueSB0cmFja2luZyBiZWNhdXNlIHdlJ3JlIGp1c3QgdHJhbnNwb3J0aW5nIGEgdmFsdWUgZnJvbSBzZXJ2ZXIgdG8gY2xpZW50IHdoZXJlIHRoZSB0cmFja2luZ1xuICAgIC8vIHdpbGwgYmUgYXBwbGllZC5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICBsZXQgaGFzU29tZUZhbGxiYWNrUGFyYW1zID0gZmFsc2U7XG4gICAgICAgIGZvcihjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcyl7XG4gICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBoYXNTb21lRmFsbGJhY2tQYXJhbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNTb21lRmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIC8vIHBhcmFtcyBuZWVkIHRvIGJlIHRyZWF0ZWQgYXMgZHluYW1pYyBiZWNhdXNlIHdlIGhhdmUgYXQgbGVhc3Qgb25lIGZhbGxiYWNrIHBhcmFtXG4gICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBhcmUgaW4gYSBkeW5hbWljSU8gKFBQUiBvciBvdGhlcndpc2UpIHByZXJlbmRlclxuICAgICAgICAgICAgICAgIHJldHVybiBtYWtlQWJvcnRpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLnJvdXRlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyByZW1haW5pbmcgY2FzZXMgYXJlIHByZW5kZXItcHByIGFuZCBwcmVyZW5kZXItbGVnYWN5XG4gICAgICAgICAgICAvLyBXZSBhcmVuJ3QgaW4gYSBkeW5hbWljSU8gcHJlcmVuZGVyIGJ1dCB3ZSBkbyBoYXZlIGZhbGxiYWNrIHBhcmFtcyBhdCB0aGlzXG4gICAgICAgICAgICAvLyBsZXZlbCBzbyB3ZSBuZWVkIHRvIG1ha2UgYW4gZXJyb3JpbmcgZXhvdGljIHBhcmFtcyBvYmplY3Qgd2hpY2ggd2lsbCBwb3N0cG9uZVxuICAgICAgICAgICAgLy8gaWYgeW91IGFjY2VzcyB0aGUgZmFsbGJhY2sgcGFyYW1zXG4gICAgICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIGZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSBkb24ndCBoYXZlIGFueSBmYWxsYmFjayBwYXJhbXMgc28gd2UgaGF2ZSBhbiBlbnRpcmVseSBzdGF0aWMgc2FmZSBwYXJhbXMgb2JqZWN0XG4gICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcyk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmICF3b3JrU3RvcmUuaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9XG59XG5jb25zdCBDYWNoZWRQYXJhbXMgPSBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gbWFrZUFib3J0aW5nRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHJvdXRlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgcGFyYW1zYCcpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzKShyb3V0ZSwgZXhwcmVzc2lvbiwgZXJyb3IsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIGZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IGF1Z21lbnRlZFVuZGVybHlpbmcgPSB7XG4gICAgICAgIC4uLnVuZGVybHlpbmdQYXJhbXNcbiAgICB9O1xuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoYXVnbWVudGVkVW5kZXJseWluZyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3V0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGR5bmFtaWNJTyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBkeW5hbWljSU8gaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc2V0IChuZXdWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgcHJvbWlzZVtwcm9wXSA9IHVuZGVybHlpbmdQYXJhbXNbcHJvcF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcykge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBwYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1BhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBwYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT4oMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PnJlc29sdmUodW5kZXJseWluZ1BhcmFtcykpKTtcbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgICAgIHByb21pc2VbcHJvcF0gPSB1bmRlcmx5aW5nUGFyYW1zW3Byb3BdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgd2FzIHByb3hpZWQgdG8gdGhlIHByb21pc2UgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2AuLi5wYXJhbXNgIG9yIHNpbWlsYXIgZXhwcmVzc2lvbic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlICYmIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3JlcXVlc3QnICYmIHdvcmtVbml0U3RvcmUucHJlcmVuZGVyUGhhc2UgPT09IHRydWUpIHtcbiAgICAgICAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgZHluYW1pY2FsbHkgaW4gZGV2IHdlIG5lZWQgdG8gYWR2YW5jZSBvdXQgb2YgdGhlXG4gICAgICAgIC8vIFByZXJlbmRlciBlbnZpcm9ubWVudCB3aGVuIHdlIHJlYWQgUmVxdWVzdCBkYXRhIHN5bmNocm9ub3VzbHlcbiAgICAgICAgY29uc3QgcmVxdWVzdFN0b3JlID0gd29ya1VuaXRTdG9yZTtcbiAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2KShyZXF1ZXN0U3RvcmUpO1xuICAgIH1cbiAgICAvLyBJbiBhbGwgY2FzZXMgd2Ugd2FybiBub3JtYWxseVxuICAgIGlmIChtaXNzaW5nUHJvcGVydGllcyAmJiBtaXNzaW5nUHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24ocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgfVxufVxuY29uc3Qgbm9vcCA9ICgpPT57fTtcbmNvbnN0IHdhcm5Gb3JTeW5jQWNjZXNzID0gcHJvY2Vzcy5lbnYuX19ORVhUX0RJU0FCTEVfU1lOQ19EWU5BTUlDX0FQSV9XQVJOSU5HUyA/IG5vb3AgOiAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlUGFyYW1zQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ESVNBQkxFX1NZTkNfRFlOQU1JQ19BUElfV0FSTklOR1MgPyBub29wIDogKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVBhcmFtc0FjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBwYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdlcmUgbm90IGF2YWlsYWJsZSB0aHJvdWdoIGVudW1lcmF0aW9uIGAgKyBgYmVjYXVzZSB0aGV5IGNvbmZsaWN0IHdpdGggYnVpbHRpbiBwcm9wZXJ0eSBuYW1lczogYCArIGAke2Rlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhtaXNzaW5nUHJvcGVydGllcyl9LiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ0V4cGVjdGVkIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyB0byBiZSBjYWxsZWQgd2l0aCBhIG5vbi1lbXB0eSBsaXN0IG9mIHN0cmluZ3MuJyk7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYGA7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYCBhbmQgXFxgJHtwcm9wZXJ0aWVzWzFdfVxcYGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYFxcYCR7cHJvcGVydGllc1tpXX1cXGAsIGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGAsIGFuZCBcXGAke3Byb3BlcnRpZXNbcHJvcGVydGllcy5sZW5ndGggLSAxXX1cXGBgO1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/params.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});\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 _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\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-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\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 prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && prerenderStore.type === 'prerender') {\n // dynamicIO Prerender\n // We're prerendering in a mode that aborts (dynamicIO) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`searchParams`');\n }\n // We're prerendering in a mode that does not aborts. 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({});\n}\nfunction createPrerenderSearchParams(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 if (prerenderStore.type === 'prerender') {\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeAbortingExoticSearchParams(workStore.route, prerenderStore);\n }\n // The remaining cases are prerender-ppr and prerender-legacy\n // We are in a legacy static generation and need to interrupt the prerender\n // when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\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 && !workStore.isPrefetchRequest) {\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {\n return makeUntrackedExoticSearchParams(underlyingSearchParams, workStore);\n }\n }\n}\nconst CachedSearchParams = new WeakMap();\nfunction makeAbortingExoticSearchParams(route, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`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 // Object prototype\n case 'hasOwnProperty':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'valueOf':\n case 'toLocaleString':\n // Promise prototype\n // fallthrough\n case 'catch':\n case 'finally':\n // Common tested properties\n // fallthrough\n case 'toJSON':\n case '$$typeof':\n case '__esModule':\n {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n if (typeof prop === 'string') {\n const expression = (0, _utils.describeStringPropertyAccess)('searchParams', prop);\n const error = createSearchAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\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, _utils.describeHasCheckingStringProperty)('searchParams', prop);\n const error = createSearchAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n const error = createSearchAccessError(route, expression);\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(route, expression, error, prerenderStore);\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 // Object prototype\n case 'hasOwnProperty':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'valueOf':\n case 'toLocaleString':\n // Promise prototype\n // fallthrough\n case 'catch':\n case 'finally':\n // Common tested properties\n // fallthrough\n case 'toJSON':\n case '$$typeof':\n case '__esModule':\n {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\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 dynamicIO)\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 dynamicIO)\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') {\n const expression = (0, _utils.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 dynamicIO)\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, _utils.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 dynamicIO)\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 dynamicIO)\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 makeUntrackedExoticSearchParams(underlyingSearchParams, store) {\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 switch(prop){\n // Object prototype\n case 'hasOwnProperty':\n case 'isPrototypeOf':\n case 'propertyIsEnumerable':\n case 'toString':\n case 'valueOf':\n case 'toLocaleString':\n // Promise prototype\n // fallthrough\n case 'then':\n case 'catch':\n case 'finally':\n // React Promise extension\n // fallthrough\n case 'status':\n // Common tested properties\n // fallthrough\n case 'toJSON':\n case '$$typeof':\n case '__esModule':\n {\n break;\n }\n default:\n {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\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 });\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, _utils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\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, _utils.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 = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingSearchParams)));\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_utils.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 (!_utils.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, _utils.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 (!_utils.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, _utils.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}\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 && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n}\nconst noop = ()=>{};\nconst warnForSyncAccess = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = false ? 0 : (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return 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`);\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.');\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLDRIQUF3QztBQUNqRSwwQkFBMEIsbUJBQU8sQ0FBQyw4R0FBaUM7QUFDbkUsc0NBQXNDLG1CQUFPLENBQUMsMEZBQWdEO0FBQzlGLHdCQUF3QixtQkFBTyxDQUFDLHNHQUFrQztBQUNsRSwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsa0RBQWtELG1CQUFPLENBQUMsa0pBQW1EO0FBQzdHLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQyxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakMsTUFBTTtBQUNOLFlBQVksS0FBc0M7QUFDbEQ7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxrQ0FBa0MsZ0JBQWdCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtB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dFxcc2VydmVyXFxyZXF1ZXN0XFxzZWFyY2gtcGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogbnVsbCxcbiAgICBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlO1xuICAgIH0sXG4gICAgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG4gICAgfVxufSk7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyID0gcmVxdWlyZShcIi4uL2NyZWF0ZS1kZWR1cGVkLWJ5LWNhbGxzaXRlLXNlcnZlci1lcnJvci1sb2dnZXJcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbn1cbmNvbnN0IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhID0gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2UodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Uod29ya1N0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiBwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAvLyBkeW5hbWljSU8gUHJlcmVuZGVyXG4gICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyBpbiBhIG1vZGUgdGhhdCBhYm9ydHMgKGR5bmFtaWNJTykgYW5kIHNob3VsZCBzdGFsbFxuICAgICAgICAvLyB0aGUgcHJvbWlzZSB0byBlbnN1cmUgdGhlIFJTQyBzaWRlIGlzIGNvbnNpZGVyZWQgZHluYW1pY1xuICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnRzLiBXZSByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGhvdXRcbiAgICAvLyBhbnkgdHJhY2tpbmcgYmVjYXVzZSB3ZSdyZSBqdXN0IHRyYW5zcG9ydGluZyBhIHZhbHVlIGZyb20gc2VydmVyIHRvIGNsaWVudCB3aGVyZSB0aGUgdHJhY2tpbmdcbiAgICAvLyB3aWxsIGJlIGFwcGxpZWQuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfVxuICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJykge1xuICAgICAgICAvLyBXZSBhcmUgaW4gYSBkeW5hbWljSU8gKFBQUiBvciBvdGhlcndpc2UpIHByZXJlbmRlclxuICAgICAgICByZXR1cm4gbWFrZUFib3J0aW5nRXhvdGljU2VhcmNoUGFyYW1zKHdvcmtTdG9yZS5yb3V0ZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgIH1cbiAgICAvLyBUaGUgcmVtYWluaW5nIGNhc2VzIGFyZSBwcmVyZW5kZXItcHByIGFuZCBwcmVyZW5kZXItbGVnYWN5XG4gICAgLy8gV2UgYXJlIGluIGEgbGVnYWN5IHN0YXRpYyBnZW5lcmF0aW9uIGFuZCBuZWVkIHRvIGludGVycnVwdCB0aGUgcHJlcmVuZGVyXG4gICAgLy8gd2hlbiBzZWFyY2ggcGFyYW1zIGFyZSBhY2Nlc3NlZC5cbiAgICByZXR1cm4gbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmICF3b3JrU3RvcmUuaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgQ2FjaGVkU2VhcmNoUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VBYm9ydGluZ0V4b3RpY1NlYXJjaFBhcmFtcyhyb3V0ZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHByZXJlbmRlclN0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHByZXJlbmRlclN0b3JlLnJlbmRlclNpZ25hbCwgJ2BzZWFyY2hQYXJhbXNgJyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFubm90YXRlRHluYW1pY0FjY2VzcykoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHVzZShzZWFyY2hQYXJhbXMpYCwgYHNlYXJjaFBhcmFtcy5zdGF0dXNgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hbm5vdGF0ZUR5bmFtaWNBY2Nlc3MpKGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBPYmplY3QgcHJvdG90eXBlXG4gICAgICAgICAgICAgICAgY2FzZSAnaGFzT3duUHJvcGVydHknOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2lzUHJvdG90eXBlT2YnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJzpcbiAgICAgICAgICAgICAgICBjYXNlICd0b1N0cmluZyc6XG4gICAgICAgICAgICAgICAgY2FzZSAndmFsdWVPZic6XG4gICAgICAgICAgICAgICAgY2FzZSAndG9Mb2NhbGVTdHJpbmcnOlxuICAgICAgICAgICAgICAgIC8vIFByb21pc2UgcHJvdG90eXBlXG4gICAgICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgICAgICBjYXNlICdjYXRjaCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZmluYWxseSc6XG4gICAgICAgICAgICAgICAgLy8gQ29tbW9uIHRlc3RlZCBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgICAgICBjYXNlICd0b0pTT04nOlxuICAgICAgICAgICAgICAgIGNhc2UgJyQkdHlwZW9mJzpcbiAgICAgICAgICAgICAgICBjYXNlICdfX2VzTW9kdWxlJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzKShyb3V0ZSwgZXhwcmVzc2lvbiwgZXJyb3IsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0cmlnZ2VyIGR5bmFtaWMuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjcmVhdGVTZWFyY2hBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MpKHJvdXRlLCBleHByZXNzaW9uLCBlcnJvciwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3Iocm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MpKHJvdXRlLCBleHByZXNzaW9uLCBlcnJvciwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldChwcmVyZW5kZXJTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh3b3JrU3RvcmUpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgdW5kZXJseWluZ1NlYXJjaFBhcmFtcyA9IHt9O1xuICAgIC8vIEZvciBzZWFyY2ggcGFyYW1zIHdlIGRvbid0IGNvbnN0cnVjdCBhIFJlYWN0UHJvbWlzZSBiZWNhdXNlIHdlIHdhbnQgdG8gaW50ZXJydXB0XG4gICAgLy8gcmVuZGVyaW5nIG9uIGFueSBwcm9wZXJ0eSBhY2Nlc3MgdGhhdCB3YXMgbm90IHNldCBmcm9tIG91dHNpZGUgYW5kIHNvIHdlIG9ubHkgd2FudFxuICAgIC8vIHRvIGhhdmUgcHJvcGVydGllcyBsaWtlIHZhbHVlIGFuZCBzdGF0dXMgaWYgUmVhY3Qgc2V0cyB0aGVtLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgLy8gT2JqZWN0IHByb3RvdHlwZVxuICAgICAgICAgICAgICAgIGNhc2UgJ2hhc093blByb3BlcnR5JzpcbiAgICAgICAgICAgICAgICBjYXNlICdpc1Byb3RvdHlwZU9mJzpcbiAgICAgICAgICAgICAgICBjYXNlICdwcm9wZXJ0eUlzRW51bWVyYWJsZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAndG9TdHJpbmcnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbHVlT2YnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3RvTG9jYWxlU3RyaW5nJzpcbiAgICAgICAgICAgICAgICAvLyBQcm9taXNlIHByb3RvdHlwZVxuICAgICAgICAgICAgICAgIC8vIGZhbGx0aHJvdWdoXG4gICAgICAgICAgICAgICAgY2FzZSAnY2F0Y2gnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbmFsbHknOlxuICAgICAgICAgICAgICAgIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIC8vIGZhbGx0aHJvdWdoXG4gICAgICAgICAgICAgICAgY2FzZSAndG9KU09OJzpcbiAgICAgICAgICAgICAgICBjYXNlICckJHR5cGVvZic6XG4gICAgICAgICAgICAgICAgY2FzZSAnX19lc01vZHVsZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgdXNlKHNlYXJjaFBhcmFtcylgLCBgc2VhcmNoUGFyYW1zLnN0YXR1c2AsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0cmlnZ2VyIGR5bmFtaWMuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQod29ya1N0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgLy8gT2JqZWN0IHByb3RvdHlwZVxuICAgICAgICAgICAgY2FzZSAnaGFzT3duUHJvcGVydHknOlxuICAgICAgICAgICAgY2FzZSAnaXNQcm90b3R5cGVPZic6XG4gICAgICAgICAgICBjYXNlICdwcm9wZXJ0eUlzRW51bWVyYWJsZSc6XG4gICAgICAgICAgICBjYXNlICd0b1N0cmluZyc6XG4gICAgICAgICAgICBjYXNlICd2YWx1ZU9mJzpcbiAgICAgICAgICAgIGNhc2UgJ3RvTG9jYWxlU3RyaW5nJzpcbiAgICAgICAgICAgIC8vIFByb21pc2UgcHJvdG90eXBlXG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICBjYXNlICdjYXRjaCc6XG4gICAgICAgICAgICBjYXNlICdmaW5hbGx5JzpcbiAgICAgICAgICAgIC8vIFJlYWN0IFByb21pc2UgZXh0ZW5zaW9uXG4gICAgICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAgICAgICAgICAgLy8gZmFsbHRocm91Z2hcbiAgICAgICAgICAgIGNhc2UgJ3RvSlNPTic6XG4gICAgICAgICAgICBjYXNlICckJHR5cGVvZic6XG4gICAgICAgICAgICBjYXNlICdfX2VzTW9kdWxlJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0ICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikoc3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlcmx5aW5nU2VhcmNoUGFyYW1zW3Byb3BdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgLy8gV2UgaGF2ZSBhbiB1bmZvcnR1bmF0ZSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCByZXF1aXJlcyB0aGlzIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBXZSB3YW50IHRvIGluc3RydW1lbnQgdGhlIHVuZGVybHlpbmdcbiAgICAvLyBzZWFyY2hQYXJhbXMgb2JqZWN0IHRvIGRldGVjdCBpZiB5b3UgYXJlIGFjY2Vzc2luZyB2YWx1ZXMgaW4gZGV2LiBUaGlzIGlzIHVzZWQgZm9yIHdhcm5pbmdzIGFuZCBmb3IgdGhpbmdzIGxpa2UgdGhlIHN0YXRpYyBwcmVyZW5kZXJcbiAgICAvLyBpbmRpY2F0b3IuIEhvd2V2ZXIgd2hlbiB3ZSBwYXNzIHRoaXMgcHJveHkgdG8gb3VyIFByb21pc2UucmVzb2x2ZSgpIGJlbG93IHRoZSBWTSBjaGVja3MgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGEgcHJvbWlzZSBieSBsb29raW5nXG4gICAgLy8gYXQgdGhlIGAudGhlbmAgcHJvcGVydHkuIFRvIG91ciBkeW5hbWljIHRyYWNraW5nIGxvZ2ljIHRoaXMgaXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIGB0aGVuYCBzZWFyY2hQYXJhbSBhbmQgc28gd2Ugd291bGQgbm9ybWFsbHkgdHJpZ2dlclxuICAgIC8vIGR5bmFtaWMgdHJhY2tpbmcuIEhvd2V2ZXIgd2Uga25vdyB0aGF0IHRoaXMgLnRoZW4gaXMgbm90IHJlYWwgZHluYW1pYyBhY2Nlc3MsIGl0J3MganVzdCBob3cgdGhlbmFibGVzIHJlc29sdmUgaW4gc2VxdWVuY2UuIFNvIHdlIGludHJvZHVjZVxuICAgIC8vIHRoaXMgaW5pdGlhbGl6YXRpb24gY29uY2VwdCBzbyB3ZSBvbWl0IHRoZSBkeW5hbWljIGNoZWNrIHVudGlsIGFmdGVyIHdlJ3ZlIGNvbnN0cnVjdGVkIG91ciByZXNvbHZlZCBwcm9taXNlLlxuICAgIGxldCBwcm9taXNlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBwcm94aWVkVW5kZXJseWluZyA9IG5ldyBQcm94eSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiBwcm9taXNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikoc3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3V0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKShzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgaWYgKHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHsuLi5zZWFyY2hQYXJhbXN9YCwgYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKShzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT4oMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PnJlc29sdmUodW5kZXJseWluZ1NlYXJjaFBhcmFtcykpKTtcbiAgICBwcm9taXNlLnRoZW4oKCk9PntcbiAgICAgICAgcHJvbWlzZUluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3V0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJveGllZFVuZGVybHlpbmdbcHJvcF07XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJyAmJiBzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BzZWFyY2hQYXJhbXMudGhlbmAnO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV91dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF91dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfdXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfdXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcgJiYgd29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZiB0aGVcbiAgICAgICAgLy8gUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseVxuICAgICAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHJlcXVlc3RTdG9yZSk7XG4gICAgfVxufVxuY29uc3Qgbm9vcCA9ICgpPT57fTtcbmNvbnN0IHdhcm5Gb3JTeW5jQWNjZXNzID0gcHJvY2Vzcy5lbnYuX19ORVhUX0RJU0FCTEVfU1lOQ19EWU5BTUlDX0FQSV9XQVJOSU5HUyA/IG5vb3AgOiAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ESVNBQkxFX1NZTkNfRFlOQU1JQ19BUElfV0FSTklOR1MgPyBub29wIDogKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaEFjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBzZWFyY2hQYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHNlYXJjaFBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdlcmUgbm90IGF2YWlsYWJsZSB0aHJvdWdoIGVudW1lcmF0aW9uIGAgKyBgYmVjYXVzZSB0aGV5IGNvbmZsaWN0IHdpdGggYnVpbHRpbiBvciB3ZWxsLWtub3duIHByb3BlcnR5IG5hbWVzOiBgICsgYCR7ZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKG1pc3NpbmdQcm9wZXJ0aWVzKX0uIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhwcm9wZXJ0aWVzKSB7XG4gICAgc3dpdGNoKHByb3BlcnRpZXMubGVuZ3RoKXtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgdGhyb3cgbmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignRXhwZWN0ZWQgZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgbm9uLWVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4nKTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VhcmNoLXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\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\");\n// 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.ಠ_ಠ`\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}\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw 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`);\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw 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`);\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\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 // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]);\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU9MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUNBQWlDLG1CQUFPLENBQUMsd0lBQW1EO0FBQzVGLHVDQUF1QyxtQkFBTyxDQUFDLHdHQUFpRDtBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU8sR0FBRyxLQUFLO0FBQ25DO0FBQ0EsZ0JBQWdCLE9BQU8sR0FBRyxxQkFBcUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLE9BQU8sSUFBSSxnQkFBZ0IsU0FBUyxpQkFBaUIsS0FBSyxPQUFPO0FBQzdGO0FBQ0E7QUFDQSxzRUFBc0UsT0FBTyxrREFBa0QsV0FBVztBQUMxSTtBQUNBO0FBQ0Esc0VBQXNFLE9BQU8sNkVBQTZFLFdBQVc7QUFDcks7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVxdWVzdFxcdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHk6IG51bGwsXG4gICAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzczogbnVsbCxcbiAgICBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyOiBudWxsLFxuICAgIHRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3I6IG51bGwsXG4gICAgdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3I6IG51bGwsXG4gICAgd2VsbEtub3duUHJvcGVydGllczogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5O1xuICAgIH0sXG4gICAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzO1xuICAgIH0sXG4gICAgaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyO1xuICAgIH0sXG4gICAgdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yO1xuICAgIH0sXG4gICAgdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3I7XG4gICAgfSxcbiAgICB3ZWxsS25vd25Qcm9wZXJ0aWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdlbGxLbm93blByb3BlcnRpZXM7XG4gICAgfVxufSk7XG5jb25zdCBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiKTtcbmNvbnN0IF9hZnRlcnRhc2thc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbi8vIFRoaXMgcmVnZXggd2lsbCBoYXZlIGZhc3QgbmVnYXRpdmVzIG1lYW5pbmcgdmFsaWQgaWRlbnRpZmllcnMgbWF5IG5vdCBwYXNzXG4vLyB0aGlzIHRlc3QuIEhvd2V2ZXIgdGhpcyBpcyBvbmx5IHVzZWQgZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uIHRvIHByb3ZpZGUgaGludHNcbi8vIGFib3V0IHdoeSBhIHBhZ2UgYmFpbGVkIG91dCBvZiBzb21lIG9yIGFsbCBwcmVyZW5kZXJpbmcgYW5kIHdlIGNhbiB1c2UgYnJhY2tldCBub3RhdGlvblxuLy8gZm9yIGV4YW1wbGUgd2hpbGUgYOCyoF/gsqBgIGlzIGEgdmFsaWQgaWRlbnRpZmllciBpdCdzIG9rIHRvIHByaW50IGBzZWFyY2hQYXJhbXNbJ+CyoF/gsqAnXWBcbi8vIGV2ZW4gaWYgdGhpcyB3b3VsZCBoYXZlIGJlZW4gZmluZSB0b28gYHNlYXJjaFBhcmFtcy7gsqBf4LKgYFxuY29uc3QgaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciA9IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC87XG5mdW5jdGlvbiBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKHRhcmdldCwgcHJvcCkge1xuICAgIGlmIChpc0RlZmluaXRlbHlBVmFsaWRJZGVudGlmaWVyLnRlc3QocHJvcCkpIHtcbiAgICAgICAgcmV0dXJuIGBcXGAke3RhcmdldH0uJHtwcm9wfVxcYGA7XG4gICAgfVxuICAgIHJldHVybiBgXFxgJHt0YXJnZXR9WyR7SlNPTi5zdHJpbmdpZnkocHJvcCl9XVxcYGA7XG59XG5mdW5jdGlvbiBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgY29uc3Qgc3RyaW5naWZpZWRQcm9wID0gSlNPTi5zdHJpbmdpZnkocHJvcCk7XG4gICAgcmV0dXJuIGBcXGBSZWZsZWN0Lmhhcygke3RhcmdldH0sICR7c3RyaW5naWZpZWRQcm9wfSlcXGAsIFxcYCR7c3RyaW5naWZpZWRQcm9wfSBpbiAke3RhcmdldH1cXGAsIG9yIHNpbWlsYXJgO1xufVxuZnVuY3Rpb24gdGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIHRocm93IG5ldyBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQuU3RhdGljR2VuQmFpbG91dEVycm9yKGBSb3V0ZSAke3JvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgKTtcbn1cbmZ1bmN0aW9uIHRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgdGhyb3cgbmV3IF9zdGF0aWNnZW5lcmF0aW9uYmFpbG91dC5TdGF0aWNHZW5CYWlsb3V0RXJyb3IoYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgKTtcbn1cbmZ1bmN0aW9uIGlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIoKSB7XG4gICAgY29uc3QgYWZ0ZXJUYXNrU3RvcmUgPSBfYWZ0ZXJ0YXNrYXN5bmNzdG9yYWdlZXh0ZXJuYWwuYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgcmV0dXJuIChhZnRlclRhc2tTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogYWZ0ZXJUYXNrU3RvcmUucm9vdFRhc2tTcGF3blBoYXNlKSA9PT0gJ2FjdGlvbic7XG59XG5jb25zdCB3ZWxsS25vd25Qcm9wZXJ0aWVzID0gbmV3IFNldChbXG4gICAgJ2hhc093blByb3BlcnR5JyxcbiAgICAnaXNQcm90b3R5cGVPZicsXG4gICAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgICAndG9TdHJpbmcnLFxuICAgICd2YWx1ZU9mJyxcbiAgICAndG9Mb2NhbGVTdHJpbmcnLFxuICAgIC8vIFByb21pc2UgcHJvdG90eXBlXG4gICAgLy8gZmFsbHRocm91Z2hcbiAgICAndGhlbicsXG4gICAgJ2NhdGNoJyxcbiAgICAnZmluYWxseScsXG4gICAgLy8gUmVhY3QgUHJvbWlzZSBleHRlbnNpb25cbiAgICAvLyBmYWxsdGhyb3VnaFxuICAgICdzdGF0dXMnLFxuICAgIC8vIFJlYWN0IGludHJvc3BlY3Rpb25cbiAgICAnZGlzcGxheU5hbWUnLFxuICAgIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAgIC8vIGZhbGx0aHJvdWdoXG4gICAgJ3RvSlNPTicsXG4gICAgJyQkdHlwZW9mJyxcbiAgICAnX19lc01vZHVsZSdcbl0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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 _types = _export_star(__webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/response-cache/types.js\"), exports);\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\");\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(minimalMode){\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 is a hack to avoid Webpack knowing this is equal to this.minimalMode\n // because we replace this.minimalMode to true in production bundles.\n const minimalModeKey = 'minimalMode';\n this[minimalModeKey] = minimalMode;\n }\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 } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, async (cacheKey, resolve)=>{\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.minimalMode && ((_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.minimalMode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n var _cachedResponse_value;\n if (((_cachedResponse_value = cachedResponse.value) == null ? void 0 : _cachedResponse_value.kind) === _types.CachedRouteKind.FETCH) {\n throw new Error(`invariant: unexpected cachedResponse of kind fetch in response cache`);\n }\n resolve({\n ...cachedResponse,\n revalidate: cachedResponse.curRevalidate\n });\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.minimalMode) 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.minimalMode) 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 revalidate value\n // defined.\n if (typeof resolveValue.revalidate !== 'undefined') {\n if (this.minimalMode) {\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 revalidate: resolveValue.revalidate,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a getStaticProps path is erroring we automatically re-set the\n // existing cache under a new expiration to prevent non-stop retrying.\n if (cachedResponse) {\n await incrementalCache.set(key, cachedResponse.value, {\n revalidate: Math.min(Math.max(cachedResponse.revalidate || 3, 3), 30),\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 return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsNEJBQTRCLG1CQUFPLENBQUMsOEVBQVM7QUFDN0MsaUJBQWlCLG1CQUFPLENBQUMsd0VBQW1CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxlQUFlLG1CQUFPLENBQUMsOEVBQVM7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQiwyQkFBMkIsTUFBTSxJQUFJLEdBQUcsaUNBQWlDO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGdCQUFnQixnR0FBZ0c7QUFDaEg7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJlc3BvbnNlLWNhY2hlXFxpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQ2FjaGU7XG4gICAgfVxufSk7XG4wICYmIF9fZXhwb3J0KHJlcXVpcmUoXCIuL3R5cGVzXCIpKTtcbmNvbnN0IF90eXBlcyA9IF9leHBvcnRfc3RhcihyZXF1aXJlKFwiLi90eXBlc1wiKSwgZXhwb3J0cyk7XG5jb25zdCBfYmF0Y2hlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvYmF0Y2hlclwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuZnVuY3Rpb24gX2V4cG9ydF9zdGFyKGZyb20sIHRvKSB7XG4gICAgT2JqZWN0LmtleXMoZnJvbSkuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgICAgIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRvLCBrKSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRvLCBrLCB7XG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbVtrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmcm9tO1xufVxuY2xhc3MgUmVzcG9uc2VDYWNoZSB7XG4gICAgY29uc3RydWN0b3IobWluaW1hbE1vZGUpe1xuICAgICAgICB0aGlzLmJhdGNoZXIgPSBfYmF0Y2hlci5CYXRjaGVyLmNyZWF0ZSh7XG4gICAgICAgICAgICAvLyBFbnN1cmUgb24tZGVtYW5kIHJldmFsaWRhdGUgZG9lc24ndCBibG9jayBub3JtYWwgcmVxdWVzdHMsIGl0IHNob3VsZCBiZVxuICAgICAgICAgICAgLy8gc2FmZSB0byBydW4gYW4gb24tZGVtYW5kIHJldmFsaWRhdGUgZm9yIHRoZSBzYW1lIGtleSBhcyBhIG5vcm1hbCByZXF1ZXN0LlxuICAgICAgICAgICAgY2FjaGVLZXlGbjogKHsga2V5LCBpc09uRGVtYW5kUmV2YWxpZGF0ZSB9KT0+YCR7a2V5fS0ke2lzT25EZW1hbmRSZXZhbGlkYXRlID8gJzEnIDogJzAnfWAsXG4gICAgICAgICAgICAvLyBXZSB3YWl0IHRvIGRvIGFueSBhc3luYyB3b3JrIHVudGlsIGFmdGVyIHdlJ3ZlIGFkZGVkIG91ciBwcm9taXNlIHRvXG4gICAgICAgICAgICAvLyBgcGVuZGluZ1Jlc3BvbnNlc2AgdG8gZW5zdXJlIHRoYXQgYW55IGFueSBvdGhlciBjYWxscyB3aWxsIHJldXNlIHRoZVxuICAgICAgICAgICAgLy8gc2FtZSBwcm9taXNlIHVudGlsIHdlJ3ZlIGZ1bGx5IGZpbmlzaGVkIG91ciB3b3JrLlxuICAgICAgICAgICAgc2NoZWR1bGVyRm46IF9zY2hlZHVsZXIuc2NoZWR1bGVPbk5leHRUaWNrXG4gICAgICAgIH0pO1xuICAgICAgICAvLyB0aGlzIGlzIGEgaGFjayB0byBhdm9pZCBXZWJwYWNrIGtub3dpbmcgdGhpcyBpcyBlcXVhbCB0byB0aGlzLm1pbmltYWxNb2RlXG4gICAgICAgIC8vIGJlY2F1c2Ugd2UgcmVwbGFjZSB0aGlzLm1pbmltYWxNb2RlIHRvIHRydWUgaW4gcHJvZHVjdGlvbiBidW5kbGVzLlxuICAgICAgICBjb25zdCBtaW5pbWFsTW9kZUtleSA9ICdtaW5pbWFsTW9kZSc7XG4gICAgICAgIHRoaXNbbWluaW1hbE1vZGVLZXldID0gbWluaW1hbE1vZGU7XG4gICAgfVxuICAgIGFzeW5jIGdldChrZXksIHJlc3BvbnNlR2VuZXJhdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGtleSBmb3IgdGhlIGNhY2hlLCB3ZSBjYW4ndCBwb3NzaWJseSBsb29rIHRoaXMgdXAgaW4gdGhlXG4gICAgICAgIC8vIGNhY2hlIHNvIGp1c3QgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIHJlc3BvbnNlIGdlbmVyYXRvci5cbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgaGFzUmVzb2x2ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzQ2FjaGVFbnRyeTogbnVsbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBpbmNyZW1lbnRhbENhY2hlLCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IGZhbHNlLCBpc0ZhbGxiYWNrID0gZmFsc2UsIGlzUm91dGVQUFJFbmFibGVkID0gZmFsc2UgfSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5iYXRjaGVyLmJhdGNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlXG4gICAgICAgIH0sIGFzeW5jIChjYWNoZUtleSwgcmVzb2x2ZSk9PntcbiAgICAgICAgICAgIHZhciBfdGhpc19wcmV2aW91c0NhY2hlSXRlbTtcbiAgICAgICAgICAgIC8vIFdlIGtlZXAgdGhlIHByZXZpb3VzIGNhY2hlIGVudHJ5IGFyb3VuZCB0byBsZXZlcmFnZSB3aGVuIHRoZVxuICAgICAgICAgICAgLy8gaW5jcmVtZW50YWwgY2FjaGUgaXMgZGlzYWJsZWQgaW4gbWluaW1hbCBtb2RlLlxuICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbE1vZGUgJiYgKChfdGhpc19wcmV2aW91c0NhY2hlSXRlbSA9IHRoaXMucHJldmlvdXNDYWNoZUl0ZW0pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19wcmV2aW91c0NhY2hlSXRlbS5rZXkpID09PSBjYWNoZUtleSAmJiB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtLmV4cGlyZXNBdCA+IERhdGUubm93KCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91c0NhY2hlSXRlbS5lbnRyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUga2luZEhpbnQgaW50byBhIGdpdmVuIGtpbmQgZm9yIHRoZSBpbmNyZW1lbnRhbCBjYWNoZS5cbiAgICAgICAgICAgIGNvbnN0IGtpbmQgPSAoMCwgX3V0aWxzLnJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQpKGNvbnRleHQucm91dGVLaW5kKTtcbiAgICAgICAgICAgIGxldCByZXNvbHZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGNhY2hlZFJlc3BvbnNlID0gbnVsbDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSAhdGhpcy5taW5pbWFsTW9kZSA/IGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuZ2V0KGtleSwge1xuICAgICAgICAgICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZDogY29udGV4dC5pc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzcG9uc2UgJiYgIWlzT25EZW1hbmRSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfY2FjaGVkUmVzcG9uc2VfdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmICgoKF9jYWNoZWRSZXNwb25zZV92YWx1ZSA9IGNhY2hlZFJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlZFJlc3BvbnNlX3ZhbHVlLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkZFVENIKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFyaWFudDogdW5leHBlY3RlZCBjYWNoZWRSZXNwb25zZSBvZiBraW5kIGZldGNoIGluIHJlc3BvbnNlIGNhY2hlYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZWRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IGNhY2hlZFJlc3BvbnNlLmN1clJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNwb25zZS5pc1N0YWxlIHx8IGNvbnRleHQuaXNQcmVmZXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGNhY2hlZCB2YWx1ZSBpcyBzdGlsbCB2YWxpZCwgc28gd2UgZG9uJ3QgbmVlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdXBkYXRlIGl0IHlldC5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlRW50cnkgPSBhd2FpdCByZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgICAgIGhhc1Jlc29sdmVkOiByZXNvbHZlZCxcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDYWNoZUVudHJ5OiBjYWNoZWRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRpbmc6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FjaGUgZW50cnkgY291bGRuJ3QgYmUgZ2VuZXJhdGVkLCB3ZSBkb24ndCB3YW50IHRvIGNhY2hlXG4gICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdC5cbiAgICAgICAgICAgICAgICBpZiAoIWNhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVW5zZXQgdGhlIHByZXZpb3VzIGNhY2hlIGl0ZW0gaWYgaXQgd2FzIHNldC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbE1vZGUpIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlVmFsdWUgPSBhd2FpdCAoMCwgX3V0aWxzLmZyb21SZXNwb25zZUNhY2hlRW50cnkpKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgaXNNaXNzOiAhY2FjaGVkUmVzcG9uc2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBVbnNldCB0aGUgcHJldmlvdXMgY2FjaGUgaXRlbSBpZiBpdCB3YXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsTW9kZSkgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEZvciBvbi1kZW1hbmQgcmV2YWxpZGF0ZSB3YWl0IHRvIHJlc29sdmUgdW50aWwgY2FjaGUgaXMgc2V0LlxuICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSByZXNvbHZlIG5vdy5cbiAgICAgICAgICAgICAgICBpZiAoIWlzT25EZW1hbmRSZXZhbGlkYXRlICYmICFyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc29sdmVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBwZXJzaXN0IHRoZSByZXN1bHQgb25seSBpZiBpdCBoYXMgYSByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgICAgICAgICAgLy8gZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc29sdmVWYWx1ZS5yZXZhbGlkYXRlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNhY2hlS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiByZXNvbHZlVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgMTAwMFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuc2V0KGtleSwgcmVzb2x2ZVZhbHVlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogcmVzb2x2ZVZhbHVlLnJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIFdoZW4gYSBnZXRTdGF0aWNQcm9wcyBwYXRoIGlzIGVycm9yaW5nIHdlIGF1dG9tYXRpY2FsbHkgcmUtc2V0IHRoZVxuICAgICAgICAgICAgICAgIC8vIGV4aXN0aW5nIGNhY2hlIHVuZGVyIGEgbmV3IGV4cGlyYXRpb24gdG8gcHJldmVudCBub24tc3RvcCByZXRyeWluZy5cbiAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoa2V5LCBjYWNoZWRSZXNwb25zZS52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogTWF0aC5taW4oTWF0aC5tYXgoY2FjaGVkUmVzcG9uc2UucmV2YWxpZGF0ZSB8fCAzLCAzKSwgMzApLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXaGlsZSByZXZhbGlkYXRpbmcgaW4gdGhlIGJhY2tncm91bmQgd2UgY2FuJ3QgcmVqZWN0IGFzIHdlIGFscmVhZHlcbiAgICAgICAgICAgICAgICAvLyByZXNvbHZlZCB0aGUgY2FjaGUgZW50cnkgc28gbG9nIHRoZSBlcnJvciBoZXJlLlxuICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSBoYXZlbid0IHJlc29sdmVkIHlldCwgc28gbGV0J3MgdGhyb3cgdG8gaW5kaWNhdGUgYW4gZXJyb3IuXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMudG9SZXNwb25zZUNhY2hlRW50cnkpKHJlc3BvbnNlKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccmVzcG9uc2UtY2FjaGVcXHR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQ2FjaGVkUm91dGVLaW5kOiBudWxsLFxuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIENhY2hlZFJvdXRlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDYWNoZWRSb3V0ZUtpbmQ7XG4gICAgfSxcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJbmNyZW1lbnRhbENhY2hlS2luZDtcbiAgICB9XG59KTtcbnZhciBDYWNoZWRSb3V0ZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKENhY2hlZFJvdXRlS2luZCkge1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiRkVUQ0hcIl0gPSBcIkZFVENIXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiUkVESVJFQ1RcIl0gPSBcIlJFRElSRUNUXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIENhY2hlZFJvdXRlS2luZDtcbn0oe30pO1xudmFyIEluY3JlbWVudGFsQ2FjaGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihJbmNyZW1lbnRhbENhY2hlS2luZCkge1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJGRVRDSFwiXSA9IFwiRkVUQ0hcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIklNQUdFXCJdID0gXCJJTUFHRVwiO1xuICAgIHJldHVybiBJbmNyZW1lbnRhbENhY2hlS2luZDtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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\");\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, _response_value2;\n if (!response) return null;\n if (((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.FETCH) {\n throw new Error('Invariant: unexpected cachedResponse of kind fetch in response cache');\n }\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n revalidate: response.revalidate,\n isFallback: response.isFallback,\n value: ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value2 = response.value) == null ? void 0 : _response_value2.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html),\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 default:\n throw new Error(`Unexpected route kind ${routeKind}`);\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyw4RUFBUztBQUNoQyw2REFBNkQsbUJBQU8sQ0FBQyxnRkFBa0I7QUFDdkYsbUJBQW1CLG1CQUFPLENBQUMsMEVBQWU7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELFVBQVU7QUFDL0Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFxyZXNwb25zZS1jYWNoZVxcdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5OiBudWxsLFxuICAgIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ6IG51bGwsXG4gICAgdG9SZXNwb25zZUNhY2hlRW50cnk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5O1xuICAgIH0sXG4gICAgcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kO1xuICAgIH0sXG4gICAgdG9SZXNwb25zZUNhY2hlRW50cnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdG9SZXNwb25zZUNhY2hlRW50cnk7XG4gICAgfVxufSk7XG5jb25zdCBfdHlwZXMgPSByZXF1aXJlKFwiLi90eXBlc1wiKTtcbmNvbnN0IF9yZW5kZXJyZXN1bHQgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vcmVuZGVyLXJlc3VsdFwiKSk7XG5jb25zdCBfcm91dGVraW5kID0gcmVxdWlyZShcIi4uL3JvdXRlLWtpbmRcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGZyb21SZXNwb25zZUNhY2hlRW50cnkoY2FjaGVFbnRyeSkge1xuICAgIHZhciBfY2FjaGVFbnRyeV92YWx1ZSwgX2NhY2hlRW50cnlfdmFsdWUxO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNhY2hlRW50cnksXG4gICAgICAgIHZhbHVlOiAoKF9jYWNoZUVudHJ5X3ZhbHVlID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgIGh0bWw6IGF3YWl0IGNhY2hlRW50cnkudmFsdWUuaHRtbC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKSxcbiAgICAgICAgICAgIHBhZ2VEYXRhOiBjYWNoZUVudHJ5LnZhbHVlLnBhZ2VEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogY2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiBjYWNoZUVudHJ5LnZhbHVlLnN0YXR1c1xuICAgICAgICB9IDogKChfY2FjaGVFbnRyeV92YWx1ZTEgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUxLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgIGh0bWw6IGF3YWl0IGNhY2hlRW50cnkudmFsdWUuaHRtbC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKSxcbiAgICAgICAgICAgIHBvc3Rwb25lZDogY2FjaGVFbnRyeS52YWx1ZS5wb3N0cG9uZWQsXG4gICAgICAgICAgICByc2NEYXRhOiBjYWNoZUVudHJ5LnZhbHVlLnJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBjYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgc2VnbWVudERhdGE6IGNhY2hlRW50cnkudmFsdWUuc2VnbWVudERhdGFcbiAgICAgICAgfSA6IGNhY2hlRW50cnkudmFsdWVcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gdG9SZXNwb25zZUNhY2hlRW50cnkocmVzcG9uc2UpIHtcbiAgICB2YXIgX3Jlc3BvbnNlX3ZhbHVlLCBfcmVzcG9uc2VfdmFsdWUxLCBfcmVzcG9uc2VfdmFsdWUyO1xuICAgIGlmICghcmVzcG9uc2UpIHJldHVybiBudWxsO1xuICAgIGlmICgoKF9yZXNwb25zZV92YWx1ZSA9IHJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3BvbnNlX3ZhbHVlLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkZFVENIKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIGNhY2hlZFJlc3BvbnNlIG9mIGtpbmQgZmV0Y2ggaW4gcmVzcG9uc2UgY2FjaGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNNaXNzOiByZXNwb25zZS5pc01pc3MsXG4gICAgICAgIGlzU3RhbGU6IHJlc3BvbnNlLmlzU3RhbGUsXG4gICAgICAgIHJldmFsaWRhdGU6IHJlc3BvbnNlLnJldmFsaWRhdGUsXG4gICAgICAgIGlzRmFsbGJhY2s6IHJlc3BvbnNlLmlzRmFsbGJhY2ssXG4gICAgICAgIHZhbHVlOiAoKF9yZXNwb25zZV92YWx1ZTEgPSByZXNwb25zZS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNwb25zZV92YWx1ZTEua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgaHRtbDogX3JlbmRlcnJlc3VsdC5kZWZhdWx0LmZyb21TdGF0aWMocmVzcG9uc2UudmFsdWUuaHRtbCksXG4gICAgICAgICAgICBwYWdlRGF0YTogcmVzcG9uc2UudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXNcbiAgICAgICAgfSA6ICgoX3Jlc3BvbnNlX3ZhbHVlMiA9IHJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3BvbnNlX3ZhbHVlMi5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sKSxcbiAgICAgICAgICAgIHJzY0RhdGE6IHJlc3BvbnNlLnZhbHVlLnJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICBwb3N0cG9uZWQ6IHJlc3BvbnNlLnZhbHVlLnBvc3Rwb25lZCxcbiAgICAgICAgICAgIHNlZ21lbnREYXRhOiByZXNwb25zZS52YWx1ZS5zZWdtZW50RGF0YVxuICAgICAgICB9IDogcmVzcG9uc2UudmFsdWVcbiAgICB9O1xufVxuZnVuY3Rpb24gcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZChyb3V0ZUtpbmQpIHtcbiAgICBzd2l0Y2gocm91dGVLaW5kKXtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5QQUdFUzpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuUEFHRVM7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuQVBQX1BBR0U6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLkFQUF9QQUdFO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLklNQUdFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5JTUFHRTtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5BUFBfUk9VVEU6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLkFQUF9ST1VURTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCByb3V0ZSBraW5kICR7cm91dGVLaW5kfWApO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkNBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLWtpbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZUtpbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlS2luZDtcbiAgICB9XG59KTtcbnZhciBSb3V0ZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJvdXRlS2luZCkge1xuICAgIC8qKlxuICAgKiBgUEFHRVNgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgcGFnZXMvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIC8qKlxuICAgKiBgUEFHRVNfQVBJYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyB1bmRlciBgcGFnZXMvYXBpL2AuXG4gICAqLyBSb3V0ZUtpbmRbXCJQQUdFU19BUElcIl0gPSBcIlBBR0VTX0FQSVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1BBR0VgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHBhZ2Uue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICAvKipcbiAgICogYEFQUF9ST1VURWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHJvdXRlLntqLHR9c3sseH1gLlxuICAgKi8gUm91dGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICAvKipcbiAgICogYElNQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgaW1hZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCBieSBgbmV4dC9pbWFnZWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gUm91dGVLaW5kO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWtpbmQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-kind.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?91d2":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./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 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 } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz85MWQyIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFRMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsWUFBWSw0SkFBa0Y7QUFDOUYsVUFBVSxLQUFLLEVBSU47QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFxtb2R1bGUuY29tcGlsZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuanMnKTtcbn0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?91d2\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?91d2\").vendored[\"react-rsc\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFx2ZW5kb3JlZFxccnNjXFxyZWFjdC1kb20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdERPTTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtZG9tLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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?91d2\").vendored[\"react-rsc\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFx2ZW5kb3JlZFxccnNjXFxyZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdEpzeERldlJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1kZXYtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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?91d2\").vendored[\"react-rsc\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xcYXBwLXBhZ2VcXHZlbmRvcmVkXFxyc2NcXHJlYWN0LWpzeC1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3RKc3hSdW50aW1lO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1qc3gtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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-edge.js":
|
||
/*!*******************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server-edge.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?91d2\").vendored[\"react-rsc\"].ReactServerDOMWebpackServerEdge;\n\n//# sourceMappingURL=react-server-dom-webpack-server-edge.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLWVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiwrTUFBdUc7O0FBRXZHIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFx2ZW5kb3JlZFxccnNjXFxyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLWVkZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdFNlcnZlckRPTVdlYnBhY2tTZXJ2ZXJFZGdlO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLWVkZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server-edge.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static-edge.js":
|
||
/*!*******************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static-edge.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?91d2\").vendored[\"react-rsc\"].ReactServerDOMWebpackStaticEdge;\n\n//# sourceMappingURL=react-server-dom-webpack-static-edge.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLWVkZ2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiwrTUFBdUc7O0FBRXZHIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHJvdXRlLW1vZHVsZXNcXGFwcC1wYWdlXFx2ZW5kb3JlZFxccnNjXFxyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLWVkZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdFNlcnZlckRPTVdlYnBhY2tTdGF0aWNFZGdlO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLWVkZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static-edge.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?91d2\").vendored[\"react-rsc\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxccm91dGUtbW9kdWxlc1xcYXBwLXBhZ2VcXHZlbmRvcmVkXFxyc2NcXHJlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3Q7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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/stream-utils/encodedTags.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/stream-utils/encodedTags.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};\n\n//# sourceMappingURL=encodedTags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZFRhZ3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHN0cmVhbS11dGlsc1xcZW5jb2RlZFRhZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJFTkNPREVEX1RBR1NcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVOQ09ERURfVEFHUztcbiAgICB9XG59KTtcbmNvbnN0IEVOQ09ERURfVEFHUyA9IHtcbiAgICAvLyBvcGVuaW5nIHRhZ3MgZG8gbm90IGhhdmUgdGhlIGNsb3NpbmcgYD5gIHNpbmNlIHRoZXkgY2FuIGNvbnRhaW4gb3RoZXIgYXR0cmlidXRlcyBzdWNoIGFzIGA8Ym9keSBjbGFzc05hbWU9Jyc+YFxuICAgIE9QRU5JTkc6IHtcbiAgICAgICAgLy8gPGh0bWxcbiAgICAgICAgSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDhcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDxib2R5XG4gICAgICAgIEJPRFk6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjFcbiAgICAgICAgXSlcbiAgICB9LFxuICAgIENMT1NFRDoge1xuICAgICAgICAvLyA8L2hlYWQ+XG4gICAgICAgIEhFQUQ6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMDEsXG4gICAgICAgICAgICA5NyxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2JvZHk+XG4gICAgICAgIEJPRFk6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMSxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2h0bWw+XG4gICAgICAgIEhUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDgsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9ib2R5PjwvaHRtbD5cbiAgICAgICAgQk9EWV9BTkRfSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxLFxuICAgICAgICAgICAgNjIsXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSlcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lbmNvZGVkVGFncy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/encodedTags.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__(/*! ./encodedTags */ \"(rsc)/./node_modules/next/dist/server/stream-utils/encodedTags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.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 // We could encode this invariant in the arguments but current uses of this function pass\n // use spread so it would be missed by\n if (streams.length === 0) {\n throw new Error('Invariant: chainStreams requires at least one stream');\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) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\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 createInsertedHTMLStream(getServerInsertedHTML) {\n return new TransformStream({\n transform: async (chunk, controller)=>{\n const html = await getServerInsertedHTML();\n if (html) {\n controller.enqueue(encoder.encode(html));\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n let freezing = 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 // While react is flushing chunks, we don't apply insertions\n if (freezing) {\n controller.enqueue(chunk);\n return;\n }\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n freezing = true;\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 if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n insertedHeadContent.set(chunk.slice(0, index));\n insertedHeadContent.set(encodedInsertion, index);\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n freezing = true;\n inserted = true;\n }\n }\n if (!inserted) {\n controller.enqueue(chunk);\n } else {\n (0, _scheduler.scheduleImmediate)(()=>{\n freezing = false;\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}\n// Merge two streams into one. Ensure the final transform stream is closed\n// when both are finished.\nfunction createMergedTransformStream(stream) {\n let pull = null;\n let donePulling = false;\n async function startPulling(controller) {\n if (pull) {\n return;\n }\n const reader = stream.getReader();\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // 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 try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (!pull) {\n pull = startPulling(controller);\n }\n },\n flush (controller) {\n if (donePulling) {\n return;\n }\n return pull || startPulling(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(`<script>self.__next_root_layout_missing_tags=${JSON.stringify(missingTags)}</script>`));\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, getServerInsertedHTML, serverInsertedHTMLToHead, validateRootLayout }) {\n // 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 and there's an `allReady` promise on the\n // stream, we need to wait for it to resolve before continuing.\n if (isStaticGeneration && 'allReady' in renderStream) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Insert generated tags to head\n getServerInsertedHTML && !serverInsertedHTMLToHead ? createInsertedHTMLStream(getServerInsertedHTML) : null,\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createMergedTransformStream(inlinedDataStream) : null,\n // 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 getServerInsertedHTML && serverInsertedHTMLToHead ? createHeadInsertionTransformStream(getServerInsertedHTML) : null\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { inlinedDataStream, getServerInsertedHTML }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGdCQUFnQixtQkFBTyxDQUFDLHNGQUFxQjtBQUM3QyxtQkFBbUIsbUJBQU8sQ0FBQyw0RkFBd0I7QUFDbkQseUJBQXlCLG1CQUFPLENBQUMsMEZBQTRCO0FBQzdELG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxxQkFBcUIsbUJBQU8sQ0FBQyx3RkFBZTtBQUM1QywyQkFBMkIsbUJBQU8sQ0FBQyxzR0FBc0I7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFVBQVUsd0JBQXdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGNBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwyQkFBMkI7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLHFDQUFxQyx3Q0FBd0M7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhGQUE4Riw0QkFBNEI7QUFDMUg7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELG9IQUFvSDtBQUN0SztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELHVCQUF1QjtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRCwwQ0FBMEM7QUFDcEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELDBDQUEwQztBQUNuRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcc3RyZWFtLXV0aWxzXFxub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNoYWluU3RyZWFtczogbnVsbCxcbiAgICBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lOiBudWxsLFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogbnVsbCxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IG51bGwsXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IG51bGwsXG4gICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW06IG51bGwsXG4gICAgY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtOiBudWxsLFxuICAgIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW06IG51bGwsXG4gICAgcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTogbnVsbCxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBudWxsLFxuICAgIHN0cmVhbUZyb21TdHJpbmc6IG51bGwsXG4gICAgc3RyZWFtVG9CdWZmZXI6IG51bGwsXG4gICAgc3RyZWFtVG9TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY2hhaW5TdHJlYW1zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNoYWluU3RyZWFtcztcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVEeW5hbWljSFRNTFJlc3VtZTtcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVGaXp6U3RyZWFtO1xuICAgIH0sXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVTdGF0aWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTtcbiAgICB9LFxuICAgIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW07XG4gICAgfSxcbiAgICBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW07XG4gICAgfSxcbiAgICByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW07XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21CdWZmZXI7XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmc7XG4gICAgfSxcbiAgICBzdHJlYW1Ub0J1ZmZlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1Ub0J1ZmZlcjtcbiAgICB9LFxuICAgIHN0cmVhbVRvU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbVRvU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvY29uc3RhbnRzXCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF9lbmNvZGVkVGFncyA9IHJlcXVpcmUoXCIuL2VuY29kZWRUYWdzXCIpO1xuY29uc3QgX3VpbnQ4YXJyYXloZWxwZXJzID0gcmVxdWlyZShcIi4vdWludDhhcnJheS1oZWxwZXJzXCIpO1xuZnVuY3Rpb24gdm9pZENhdGNoKCkge1xuLy8gdGhpcyBjYXRjaGVyIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBwaXBlVG8gd2hlcmUgd2UgZXhwZWN0IHRoZSB1bmRlcmx5aW5nXG4vLyBwaXBlIGltcGxlbWVudGF0aW9uIHRvIGZvcndhcmQgZXJyb3JzIGJ1dCB3ZSBkb24ndCB3YW50IHRoZSBwaXBlVG8gcHJvbWlzZSB0byByZWplY3Rcbi8vIGFuZCBiZSB1bmhhbmRsZWRcbn1cbi8vIFdlIGNhbiBzaGFyZSB0aGUgc2FtZSBlbmNvZGVyIGluc3RhbmNlIGV2ZXJ5d2hlcmVcbi8vIE5vdGFibHkgd2UgY2Fubm90IGRvIHRoZSBzYW1lIGZvciBUZXh0RGVjb2RlciBiZWNhdXNlIGl0IGlzIHN0YXRlZnVsXG4vLyB3aGVuIGhhbmRsaW5nIHN0cmVhbWluZyBkYXRhXG5jb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBjaGFpblN0cmVhbXMoLi4uc3RyZWFtcykge1xuICAgIC8vIFdlIGNvdWxkIGVuY29kZSB0aGlzIGludmFyaWFudCBpbiB0aGUgYXJndW1lbnRzIGJ1dCBjdXJyZW50IHVzZXMgb2YgdGhpcyBmdW5jdGlvbiBwYXNzXG4gICAgLy8gdXNlIHNwcmVhZCBzbyBpdCB3b3VsZCBiZSBtaXNzZWQgYnlcbiAgICBpZiAoc3RyZWFtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IGNoYWluU3RyZWFtcyByZXF1aXJlcyBhdCBsZWFzdCBvbmUgc3RyZWFtJyk7XG4gICAgfVxuICAgIC8vIElmIHdlIG9ubHkgaGF2ZSAxIHN0cmVhbSB3ZSBmYXN0IHBhdGggaXQgYnkgcmV0dXJuaW5nIGp1c3QgdGhpcyBzdHJlYW1cbiAgICBpZiAoc3RyZWFtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbXNbMF07XG4gICAgfVxuICAgIGNvbnN0IHsgcmVhZGFibGUsIHdyaXRhYmxlIH0gPSBuZXcgVHJhbnNmb3JtU3RyZWFtKCk7XG4gICAgLy8gV2UgYWx3YXlzIGluaXRpYXRlIHBpcGVUbyBpbW1lZGlhdGVseS4gV2Uga25vdyB3ZSBoYXZlIGF0IGxlYXN0IDIgc3RyZWFtc1xuICAgIC8vIHNvIHdlIG5lZWQgdG8gYXZvaWQgY2xvc2luZyB0aGUgd3JpdGFibGUgd2hlbiB0aGlzIG9uZSBmaW5pc2hlcy5cbiAgICBsZXQgcHJvbWlzZSA9IHN0cmVhbXNbMF0ucGlwZVRvKHdyaXRhYmxlLCB7XG4gICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBpID0gMTtcbiAgICBmb3IoOyBpIDwgc3RyZWFtcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICBjb25zdCBuZXh0U3RyZWFtID0gc3RyZWFtc1tpXTtcbiAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKT0+bmV4dFN0cmVhbS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICBwcmV2ZW50Q2xvc2U6IHRydWVcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgLy8gV2UgY2FuIG9taXQgdGhlIGxlbmd0aCBjaGVjayBiZWNhdXNlIHdlIGhhbHRlZCBiZWZvcmUgdGhlIGxhc3Qgc3RyZWFtIGFuZCB0aGVyZVxuICAgIC8vIGlzIGF0IGxlYXN0IHR3byBzdHJlYW1zIHNvIHRoZSBsYXN0U3RyZWFtIGhlcmUgd2lsbCBhbHdheXMgYmUgZGVmaW5lZFxuICAgIGNvbnN0IGxhc3RTdHJlYW0gPSBzdHJlYW1zW2ldO1xuICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oKCk9Pmxhc3RTdHJlYW0ucGlwZVRvKHdyaXRhYmxlKSk7XG4gICAgLy8gQ2F0Y2ggYW55IGVycm9ycyBmcm9tIHRoZSBzdHJlYW1zIGFuZCBpZ25vcmUgdGhlbSwgdGhleSB3aWxsIGJlIGhhbmRsZWRcbiAgICAvLyBieSB3aGF0ZXZlciBpcyBjb25zdW1pbmcgdGhlIHJlYWRhYmxlIHN0cmVhbS5cbiAgICBwcm9taXNlLmNhdGNoKHZvaWRDYXRjaCk7XG4gICAgcmV0dXJuIHJlYWRhYmxlO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbVN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdHIpKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbUJ1ZmZlcihjaHVuaykge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9CdWZmZXIoc3RyZWFtKSB7XG4gICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgIHdoaWxlKHRydWUpe1xuICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2h1bmtzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9TdHJpbmcoc3RyZWFtKSB7XG4gICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnLCB7XG4gICAgICAgIGZhdGFsOiB0cnVlXG4gICAgfSk7XG4gICAgbGV0IHN0cmluZyA9ICcnO1xuICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2Ygc3RyZWFtKXtcbiAgICAgICAgc3RyaW5nICs9IGRlY29kZXIuZGVjb2RlKGNodW5rLCB7XG4gICAgICAgICAgICBzdHJlYW06IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0cmluZyArPSBkZWNvZGVyLmRlY29kZSgpO1xuICAgIHJldHVybiBzdHJpbmc7XG59XG5mdW5jdGlvbiBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpIHtcbiAgICBsZXQgYnVmZmVyZWRDaHVua3MgPSBbXTtcbiAgICBsZXQgYnVmZmVyQnl0ZUxlbmd0aCA9IDA7XG4gICAgbGV0IHBlbmRpbmc7XG4gICAgY29uc3QgZmx1c2ggPSAoY29udHJvbGxlcik9PntcbiAgICAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgcGVuZGluZyBmbHVzaCwgdGhlbiByZXR1cm4gZWFybHkuXG4gICAgICAgIGlmIChwZW5kaW5nKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGRldGFjaGVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgIHBlbmRpbmcgPSBkZXRhY2hlZDtcbiAgICAgICAgKDAsIF9zY2hlZHVsZXIuc2NoZWR1bGVJbW1lZGlhdGUpKCgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyQnl0ZUxlbmd0aCk7XG4gICAgICAgICAgICAgICAgbGV0IGNvcGllZEJ5dGVzID0gMDtcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgYnVmZmVyZWRDaHVua3MubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBidWZmZXJlZENodW5rID0gYnVmZmVyZWRDaHVua3NbaV07XG4gICAgICAgICAgICAgICAgICAgIGNodW5rLnNldChidWZmZXJlZENodW5rLCBjb3BpZWRCeXRlcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvcGllZEJ5dGVzICs9IGJ1ZmZlcmVkQ2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2UganVzdCB3cm90ZSBhbGwgdGhlIGJ1ZmZlcmVkIGNodW5rcyBzbyB3ZSBuZWVkIHRvIHJlc2V0IHRoZSBidWZmZXJlZENodW5rcyBhcnJheVxuICAgICAgICAgICAgICAgIC8vIGFuZCBvdXIgYnVmZmVyQnl0ZUxlbmd0aCB0byBwcmVwYXJlIGZvciB0aGUgbmV4dCByb3VuZCBvZiBidWZmZXJlZCBjaHVua3NcbiAgICAgICAgICAgICAgICBidWZmZXJlZENodW5rcy5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgIGJ1ZmZlckJ5dGVMZW5ndGggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZW5xdWV1aW5nIGl0IGNhbid0IGJlIGR1ZSB0byB0aGlzXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm1lcnMgZmF1bHQuIEl0J3MgbGlrZWx5IGR1ZSB0byB0aGUgY29udHJvbGxlciBiZWluZ1xuICAgICAgICAgICAgLy8gZXJyb3JlZCBkdWUgdG8gdGhlIHN0cmVhbSBiZWluZyBjYW5jZWxsZWQuXG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBDb21iaW5lIHRoZSBwcmV2aW91cyBidWZmZXIgd2l0aCB0aGUgbmV3IGNodW5rLlxuICAgICAgICAgICAgYnVmZmVyZWRDaHVua3MucHVzaChjaHVuayk7XG4gICAgICAgICAgICBidWZmZXJCeXRlTGVuZ3RoICs9IGNodW5rLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgICAvLyBGbHVzaCB0aGUgYnVmZmVyIHRvIHRoZSBjb250cm9sbGVyLlxuICAgICAgICAgICAgZmx1c2goY29udHJvbGxlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoICgpIHtcbiAgICAgICAgICAgIGlmICghcGVuZGluZykgcmV0dXJuO1xuICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmcucHJvbWlzZTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSW5zZXJ0ZWRIVE1MU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkge1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtOiBhc3luYyAoY2h1bmssIGNvbnRyb2xsZXIpPT57XG4gICAgICAgICAgICBjb25zdCBodG1sID0gYXdhaXQgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKCk7XG4gICAgICAgICAgICBpZiAoaHRtbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShodG1sKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtKHsgUmVhY3RET01TZXJ2ZXIsIGVsZW1lbnQsIHN0cmVhbU9wdGlvbnMgfSkge1xuICAgIHJldHVybiAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoX2NvbnN0YW50cy5BcHBSZW5kZXJTcGFuLnJlbmRlclRvUmVhZGFibGVTdHJlYW0sIGFzeW5jICgpPT5SZWFjdERPTVNlcnZlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtKGVsZW1lbnQsIHN0cmVhbU9wdGlvbnMpKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oaW5zZXJ0KSB7XG4gICAgbGV0IGluc2VydGVkID0gZmFsc2U7XG4gICAgbGV0IGZyZWV6aW5nID0gZmFsc2U7XG4gICAgLy8gV2UgbmVlZCB0byB0cmFjayBpZiB0aGlzIHRyYW5zZm9ybSBzYXcgYW55IGJ5dGVzIGJlY2F1c2UgaWYgaXQgZGlkbid0XG4gICAgLy8gd2Ugd29uJ3Qgd2FudCB0byBpbnNlcnQgYW55IHNlcnZlciBIVE1MIGF0IGFsbFxuICAgIGxldCBoYXNCeXRlcyA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaGFzQnl0ZXMgPSB0cnVlO1xuICAgICAgICAgICAgLy8gV2hpbGUgcmVhY3QgaXMgZmx1c2hpbmcgY2h1bmtzLCB3ZSBkb24ndCBhcHBseSBpbnNlcnRpb25zXG4gICAgICAgICAgICBpZiAoZnJlZXppbmcpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgaWYgKGluc2VydGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkSW5zZXJ0aW9uID0gZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZWRJbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgIGZyZWV6aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETyAoQEV0aGFuLUFycm93b29kKTogUmVwbGFjZSB0aGUgZ2VuZXJpYyBgaW5kZXhPZlVpbnQ4QXJyYXlgIG1ldGhvZCB3aXRoIHNvbWV0aGluZyBmaW5lbHkgdHVuZWQgZm9yIHRoZSBzdWJzZXQgb2YgdGhpbmdzIGFjdHVhbGx5IGJlaW5nIGNoZWNrZWQgZm9yLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkVGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRlZEhlYWRDb250ZW50ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoICsgZW5jb2RlZEluc2VydGlvbi5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoY2h1bmsuc2xpY2UoMCwgaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkSGVhZENvbnRlbnQuc2V0KGVuY29kZWRJbnNlcnRpb24sIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkSGVhZENvbnRlbnQuc2V0KGNodW5rLnNsaWNlKGluZGV4KSwgaW5kZXggKyBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoaW5zZXJ0ZWRIZWFkQ29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGZyZWV6aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaW5zZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAoMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgZnJlZXppbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGJlZm9yZSBjbG9zaW5nIGlmIHRoZXJlJ3MgYW55dGhpbmcgcmVtYWluaW5nIHRvIGluc2VydC5cbiAgICAgICAgICAgIGlmIChoYXNCeXRlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGlvbikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8gU3VmZml4IGFmdGVyIG1haW4gYm9keSBjb250ZW50IC0gc2NyaXB0cyBiZWZvcmUgPC9ib2R5Pixcbi8vIGJ1dCB3YWl0IGZvciB0aGUgbWFqb3IgY2h1bmtzIHRvIGJlIGVucXVldWVkLlxuZnVuY3Rpb24gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4KSB7XG4gICAgbGV0IGZsdXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3VmZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZW5xdWV1aW5nIGl0IGNhbid0IGJlIGR1ZSB0byB0aGlzXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm1lcnMgZmF1bHQuIEl0J3MgbGlrZWx5IGR1ZSB0byB0aGUgY29udHJvbGxlciBiZWluZ1xuICAgICAgICAgICAgLy8gZXJyb3JlZCBkdWUgdG8gdGhlIHN0cmVhbSBiZWluZyBjYW5jZWxsZWQuXG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBmbHVzaGVkLCB3ZSdyZSBkb25lLlxuICAgICAgICAgICAgaWYgKGZsdXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBmbHVzaCB0byBoYXBwZW4uXG4gICAgICAgICAgICBmbHVzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgICAgICBpZiAoZmx1c2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgLy8gRmx1c2ggbm93LlxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN1ZmZpeCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4vLyBNZXJnZSB0d28gc3RyZWFtcyBpbnRvIG9uZS4gRW5zdXJlIHRoZSBmaW5hbCB0cmFuc2Zvcm0gc3RyZWFtIGlzIGNsb3NlZFxuLy8gd2hlbiBib3RoIGFyZSBmaW5pc2hlZC5cbmZ1bmN0aW9uIGNyZWF0ZU1lcmdlZFRyYW5zZm9ybVN0cmVhbShzdHJlYW0pIHtcbiAgICBsZXQgcHVsbCA9IG51bGw7XG4gICAgbGV0IGRvbmVQdWxsaW5nID0gZmFsc2U7XG4gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgaWYgKHB1bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgICAgIC8vIE5PVEU6IHN0cmVhbWluZyBmbHVzaFxuICAgICAgICAvLyBXZSBhcmUgYnVmZmVyaW5nIGhlcmUgZm9yIHRoZSBpbmxpbmVkIGRhdGEgc3RyZWFtIGJlY2F1c2UgdGhlXG4gICAgICAgIC8vIFwic2hlbGxcIiBzdHJlYW0gbWlnaHQgYmUgY2h1bmtlbml6ZWQgYWdhaW4gYnkgdGhlIHVuZGVybHlpbmcgc3RyZWFtXG4gICAgICAgIC8vIGltcGxlbWVudGF0aW9uLCBlLmcuIHdpdGggYSBzcGVjaWZpYyBoaWdoLXdhdGVyIG1hcmsuIFRvIGVuc3VyZSBpdCdzXG4gICAgICAgIC8vIHRoZSBzYWZlIHRpbWluZyB0byBwaXBlIHRoZSBkYXRhIHN0cmVhbSwgdGhpcyBleHRyYSB0aWNrIGlzXG4gICAgICAgIC8vIG5lY2Vzc2FyeS5cbiAgICAgICAgLy8gV2UgZG9uJ3Qgc3RhcnQgcmVhZGluZyB1bnRpbCB3ZSd2ZSBsZWZ0IHRoZSBjdXJyZW50IFRhc2sgdG8gZW5zdXJlXG4gICAgICAgIC8vIHRoYXQgaXQncyBpbnNlcnRlZCBhZnRlciBmbHVzaGluZyB0aGUgc2hlbGwuIE5vdGUgdGhhdCB0aGlzIGltcGxlbWVudGF0aW9uXG4gICAgICAgIC8vIG1pZ2h0IGdldCBzdGFsZSBpZiBpbXBsIGRldGFpbHMgb2YgRml6eiBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS5cbiAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIuYXRMZWFzdE9uZVRhc2spKCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aGlsZSh0cnVlKXtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICAgICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbmVQdWxsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAvLyBTdGFydCB0aGUgc3RyZWFtaW5nIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gc3RhcnRlZCB5ZXQuXG4gICAgICAgICAgICBpZiAoIXB1bGwpIHtcbiAgICAgICAgICAgICAgICBwdWxsID0gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGRvbmVQdWxsaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHB1bGwgfHwgc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5jb25zdCBDTE9TRV9UQUcgPSAnPC9ib2R5PjwvaHRtbD4nO1xuLyoqXG4gKiBUaGlzIHRyYW5zZm9ybSBzdHJlYW0gbW92ZXMgdGhlIHN1ZmZpeCB0byB0aGUgZW5kIG9mIHRoZSBzdHJlYW0sIHNvIHJlc3VsdHNcbiAqIGxpa2UgYDwvYm9keT48L2h0bWw+PHNjcmlwdD4uLi48L3NjcmlwdD5gIHdpbGwgYmUgdHJhbnNmb3JtZWQgdG9cbiAqIGA8c2NyaXB0Pi4uLjwvc2NyaXB0PjwvYm9keT48L2h0bWw+YC5cbiAqLyBmdW5jdGlvbiBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkge1xuICAgIGxldCBmb3VuZFN1ZmZpeCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGZvdW5kU3VmZml4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZFRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRTdWZmaXggPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3aG9sZSBjaHVuayBpcyB0aGUgc3VmZml4LCB0aGVuIGRvbid0IHdyaXRlIGFueXRoaW5nLCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gYmUgd3JpdHRlbiBpbiB0aGUgZmx1c2guXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA9PT0gX2VuY29kZWRUYWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIHBhcnQgYmVmb3JlIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gY2h1bmsuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShiZWZvcmUpO1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdWZmaXggaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY2h1bmssIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAvLyB0byBzcGxpdCB0aGUgY2h1bmsgaW50byB0d28gcGFydHMuXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA+IF9lbmNvZGVkVGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoICsgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBwYXJ0IGFmdGVyIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyID0gY2h1bmsuc2xpY2UoaW5kZXggKyBfZW5jb2RlZFRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShhZnRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3QgZmluZCB0aGUgc3VmZml4LCB0aGUgSFRNTCBpcyBub3QgdmFsaWQgaWYgd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIGFkZCBpdCwgc28gaW5zZXJ0IGl0IGF0IHRoZSBlbmQuXG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoX2VuY29kZWRUYWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0cmlwRG9jdW1lbnRDbG9zaW5nVGFnc1RyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHJlbHkgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjaHVua3Mgd2lsbCBuZXZlciBicmVhayBhY3Jvc3MgYSBjb2RlIHVuaXQuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIHJlYXNvbmFibGUgYmVjYXVzZSB3ZSBjdXJyZW50bHkgY29uY2F0IGFsbCBvZiBSZWFjdCdzIG91dHB1dCBmcm9tIGEgc2luZ2xlXG4gICAgICAgICAgICAvLyBmbHVzaCBpbnRvIG9uZSBjaHVuayBiZWZvcmUgc3RyZWFtaW5nIGl0IGZvcndhcmQgd2hpY2ggbWVhbnMgdGhlIGNodW5rIHdpbGwgcmVwcmVzZW50XG4gICAgICAgICAgICAvLyBhIHNpbmdsZSBjb2hlcmVudCB1dGYtOCBzdHJpbmcuIFRoaXMgaXMgbm90IHNhZmUgdG8gdXNlIGlmIHdlIGNoYW5nZSBvdXIgc3RyZWFtaW5nIHRvIG5vXG4gICAgICAgICAgICAvLyBsb25nZXIgZG8gdGhpcyBsYXJnZSBidWZmZXJlZCBjaHVua1xuICAgICAgICAgICAgaWYgKCgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZFRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKSB8fCAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWRUYWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWSkgfHwgKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkVGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGVudGlyZSBjaHVuayBpcyB0aGUgY2xvc2luZyB0YWdzOyByZXR1cm4gd2l0aG91dCBlbnF1ZXVlaW5nIGFueXRoaW5nLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIGFzc3VtZSB0aGVzZSB0YWdzIHdpbGwgZ28gYXQgdG9nZXRoZXIgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgYW5kIHRoYXRcbiAgICAgICAgICAgIC8vIHRoZXkgd29uJ3QgYXBwZWFyIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LiBUaGlzIGlzIG5vdCByZWFsbHkgYSBzYWZlIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIGJ1dCB1bnRpbCB3ZSByZXZhbXAgb3VyIHN0cmVhbWluZyBpbmZyYSB0aGlzIGlzIGEgcGVyZm9ybWFudCB3YXkgdG8gc3RyaW5nIHRoZSB0YWdzXG4gICAgICAgICAgICBjaHVuayA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMucmVtb3ZlRnJvbVVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZFRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZKTtcbiAgICAgICAgICAgIGNodW5rID0gKDAsIF91aW50OGFycmF5aGVscGVycy5yZW1vdmVGcm9tVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkVGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIHtcbiAgICBsZXQgZm91bmRIdG1sID0gZmFsc2U7XG4gICAgbGV0IGZvdW5kQm9keSA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gUGVlayBpbnRvIHRoZSBzdHJlYW1lZCBjaHVuayB0byBzZWUgaWYgdGhlIHRhZ3MgYXJlIHByZXNlbnQuXG4gICAgICAgICAgICBpZiAoIWZvdW5kSHRtbCAmJiAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWRUYWdzLkVOQ09ERURfVEFHUy5PUEVOSU5HLkhUTUwpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmb3VuZEh0bWwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmb3VuZEJvZHkgJiYgKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkVGFncy5FTkNPREVEX1RBR1MuT1BFTklORy5CT0RZKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRCb2R5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBtaXNzaW5nVGFncyA9IFtdO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwpIG1pc3NpbmdUYWdzLnB1c2goJ2h0bWwnKTtcbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5KSBtaXNzaW5nVGFncy5wdXNoKCdib2R5Jyk7XG4gICAgICAgICAgICBpZiAoIW1pc3NpbmdUYWdzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGA8c2NyaXB0PnNlbGYuX19uZXh0X3Jvb3RfbGF5b3V0X21pc3NpbmdfdGFncz0ke0pTT04uc3RyaW5naWZ5KG1pc3NpbmdUYWdzKX08L3NjcmlwdD5gKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNoYWluVHJhbnNmb3JtZXJzKHJlYWRhYmxlLCB0cmFuc2Zvcm1lcnMpIHtcbiAgICBsZXQgc3RyZWFtID0gcmVhZGFibGU7XG4gICAgZm9yIChjb25zdCB0cmFuc2Zvcm1lciBvZiB0cmFuc2Zvcm1lcnMpe1xuICAgICAgICBpZiAoIXRyYW5zZm9ybWVyKSBjb250aW51ZTtcbiAgICAgICAgc3RyZWFtID0gc3RyZWFtLnBpcGVUaHJvdWdoKHRyYW5zZm9ybWVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0cmVhbTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRml6elN0cmVhbShyZW5kZXJTdHJlYW0sIHsgc3VmZml4LCBpbmxpbmVkRGF0YVN0cmVhbSwgaXNTdGF0aWNHZW5lcmF0aW9uLCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIHNlcnZlckluc2VydGVkSFRNTFRvSGVhZCwgdmFsaWRhdGVSb290TGF5b3V0IH0pIHtcbiAgICAvLyBTdWZmaXggaXRzZWxmIG1pZ2h0IGNvbnRhaW4gY2xvc2UgdGFncyBhdCB0aGUgZW5kLCBzbyB3ZSBuZWVkIHRvIHNwbGl0IGl0LlxuICAgIGNvbnN0IHN1ZmZpeFVuY2xvc2VkID0gc3VmZml4ID8gc3VmZml4LnNwbGl0KENMT1NFX1RBRywgMSlbMF0gOiBudWxsO1xuICAgIC8vIElmIHdlJ3JlIGdlbmVyYXRpbmcgc3RhdGljIEhUTUwgYW5kIHRoZXJlJ3MgYW4gYGFsbFJlYWR5YCBwcm9taXNlIG9uIHRoZVxuICAgIC8vIHN0cmVhbSwgd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZSBjb250aW51aW5nLlxuICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24gJiYgJ2FsbFJlYWR5JyBpbiByZW5kZXJTdHJlYW0pIHtcbiAgICAgICAgYXdhaXQgcmVuZGVyU3RyZWFtLmFsbFJlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gY2hhaW5UcmFuc2Zvcm1lcnMocmVuZGVyU3RyZWFtLCBbXG4gICAgICAgIC8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCksXG4gICAgICAgIC8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgICAgIGdldFNlcnZlckluc2VydGVkSFRNTCAmJiAhc2VydmVySW5zZXJ0ZWRIVE1MVG9IZWFkID8gY3JlYXRlSW5zZXJ0ZWRIVE1MU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkgOiBudWxsLFxuICAgICAgICAvLyBJbnNlcnQgc3VmZml4IGNvbnRlbnRcbiAgICAgICAgc3VmZml4VW5jbG9zZWQgIT0gbnVsbCAmJiBzdWZmaXhVbmNsb3NlZC5sZW5ndGggPiAwID8gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4VW5jbG9zZWQpIDogbnVsbCxcbiAgICAgICAgLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgICAgICBpbmxpbmVkRGF0YVN0cmVhbSA/IGNyZWF0ZU1lcmdlZFRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSkgOiBudWxsLFxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgcm9vdCBsYXlvdXQgZm9yIG1pc3NpbmcgaHRtbCBvciBib2R5IHRhZ3NcbiAgICAgICAgdmFsaWRhdGVSb290TGF5b3V0ID8gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIDogbnVsbCxcbiAgICAgICAgLy8gQ2xvc2UgdGFncyBzaG91bGQgYWx3YXlzIGJlIGRlZmVycmVkIHRvIHRoZSBlbmRcbiAgICAgICAgY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpLFxuICAgICAgICAvLyBTcGVjaWFsIGhlYWQgaW5zZXJ0aW9uc1xuICAgICAgICAvLyBUT0RPLUFQUDogSW5zZXJ0IHNlcnZlciBzaWRlIGh0bWwgdG8gZW5kIG9mIGhlYWQgaW4gYXBwIGxheW91dCByZW5kZXJpbmcsIHRvIGF2b2lkXG4gICAgICAgIC8vIGh5ZHJhdGlvbiBlcnJvcnMuIFJlbW92ZSB0aGlzIG9uY2UgaXQncyByZWFkeSB0byBiZSBoYW5kbGVkIGJ5IHJlYWN0IGl0c2VsZi5cbiAgICAgICAgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MICYmIHNlcnZlckluc2VydGVkSFRNTFRvSGVhZCA/IGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSA6IG51bGxcbiAgICBdKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcihwcmVyZW5kZXJTdHJlYW0sIHsgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MIH0pIHtcbiAgICByZXR1cm4gcHJlcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkucGlwZVRocm91Z2goY3JlYXRlU3RyaXBEb2N1bWVudENsb3NpbmdUYWdzVHJhbnNmb3JtKCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlU3RhdGljUHJlcmVuZGVyKHByZXJlbmRlclN0cmVhbSwgeyBpbmxpbmVkRGF0YVN0cmVhbSwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MIH0pIHtcbiAgICByZXR1cm4gcHJlcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXJnZWRUcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0pKS8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSk7XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lKHJlbmRlclN0cmVhbSwgeyBpbmxpbmVkRGF0YVN0cmVhbSwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MIH0pIHtcbiAgICByZXR1cm4gcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXJnZWRUcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0pKS8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmcoQ0xPU0VfVEFHKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvdWludDhhcnJheS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBLHVCQUF1QixjQUFjO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHN0cmVhbS11dGlsc1xcdWludDhhcnJheS1oZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmluZCB0aGUgc3RhcnRpbmcgaW5kZXggb2YgVWludDhBcnJheSBgYmAgd2l0aGluIFVpbnQ4QXJyYXkgYGFgLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaW5kZXhPZlVpbnQ4QXJyYXk6IG51bGwsXG4gICAgaXNFcXVpdmFsZW50VWludDhBcnJheXM6IG51bGwsXG4gICAgcmVtb3ZlRnJvbVVpbnQ4QXJyYXk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaW5kZXhPZlVpbnQ4QXJyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW5kZXhPZlVpbnQ4QXJyYXk7XG4gICAgfSxcbiAgICBpc0VxdWl2YWxlbnRVaW50OEFycmF5czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0VxdWl2YWxlbnRVaW50OEFycmF5cztcbiAgICB9LFxuICAgIHJlbW92ZUZyb21VaW50OEFycmF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZUZyb21VaW50OEFycmF5O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW5kZXhPZlVpbnQ4QXJyYXkoYSwgYikge1xuICAgIGlmIChiLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG4gICAgaWYgKGEubGVuZ3RoID09PSAwIHx8IGIubGVuZ3RoID4gYS5sZW5ndGgpIHJldHVybiAtMTtcbiAgICAvLyBzdGFydCBpdGVyYXRpbmcgdGhyb3VnaCBgYWBcbiAgICBmb3IobGV0IGkgPSAwOyBpIDw9IGEubGVuZ3RoIC0gYi5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGxldCBjb21wbGV0ZU1hdGNoID0gdHJ1ZTtcbiAgICAgICAgLy8gZnJvbSBpbmRleCBgaWAsIGl0ZXJhdGUgdGhyb3VnaCBgYmAgYW5kIGNoZWNrIGZvciBtaXNtYXRjaFxuICAgICAgICBmb3IobGV0IGogPSAwOyBqIDwgYi5sZW5ndGg7IGorKyl7XG4gICAgICAgICAgICAvLyBpZiB0aGUgdmFsdWVzIGRvIG5vdCBtYXRjaCwgdGhlbiB0aGlzIGlzbid0IGEgY29tcGxldGUgbWF0Y2gsIGV4aXQgYGJgIGl0ZXJhdGlvbiBlYXJseSBhbmQgaXRlcmF0ZSB0byBuZXh0IGluZGV4IG9mIGBhYC5cbiAgICAgICAgICAgIGlmIChhW2kgKyBqXSAhPT0gYltqXSkge1xuICAgICAgICAgICAgICAgIGNvbXBsZXRlTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tcGxldGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xufVxuZnVuY3Rpb24gaXNFcXVpdmFsZW50VWludDhBcnJheXMoYSwgYikge1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gcmVtb3ZlRnJvbVVpbnQ4QXJyYXkoYSwgYikge1xuICAgIGNvbnN0IHRhZ0luZGV4ID0gaW5kZXhPZlVpbnQ4QXJyYXkoYSwgYik7XG4gICAgaWYgKHRhZ0luZGV4ID09PSAwKSByZXR1cm4gYS5zdWJhcnJheShiLmxlbmd0aCk7XG4gICAgaWYgKHRhZ0luZGV4ID4gLTEpIHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IG5ldyBVaW50OEFycmF5KGEubGVuZ3RoIC0gYi5sZW5ndGgpO1xuICAgICAgICByZW1vdmVkLnNldChhLnNsaWNlKDAsIHRhZ0luZGV4KSk7XG4gICAgICAgIHJlbW92ZWQuc2V0KGEuc2xpY2UodGFnSW5kZXggKyBiLmxlbmd0aCksIHRhZ0luZGV4KTtcbiAgICAgICAgcmV0dXJuIHJlbW92ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11aW50OGFycmF5LWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLGtCQUFrQixNQUFNO0FBQ3hCLGlDQUFpQyxLQUFLO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcd2ViXFxlcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFBhZ2VTaWduYXR1cmVFcnJvcjogbnVsbCxcbiAgICBSZW1vdmVkUGFnZUVycm9yOiBudWxsLFxuICAgIFJlbW92ZWRVQUVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFBhZ2VTaWduYXR1cmVFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQYWdlU2lnbmF0dXJlRXJyb3I7XG4gICAgfSxcbiAgICBSZW1vdmVkUGFnZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbW92ZWRQYWdlRXJyb3I7XG4gICAgfSxcbiAgICBSZW1vdmVkVUFFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW1vdmVkVUFFcnJvcjtcbiAgICB9XG59KTtcbmNsYXNzIFBhZ2VTaWduYXR1cmVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcih7IHBhZ2UgfSl7XG4gICAgICAgIHN1cGVyKGBUaGUgbWlkZGxld2FyZSBcIiR7cGFnZX1cIiBhY2NlcHRzIGFuIGFzeW5jIEFQSSBkaXJlY3RseSB3aXRoIHRoZSBmb3JtOlxuICBcbiAgZXhwb3J0IGZ1bmN0aW9uIG1pZGRsZXdhcmUocmVxdWVzdCwgZXZlbnQpIHtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLnJlZGlyZWN0KCcvbmV3LWxvY2F0aW9uJylcbiAgfVxuICBcbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLW5ldy1zaWduYXR1cmVcbiAgYCk7XG4gICAgfVxufVxuY2xhc3MgUmVtb3ZlZFBhZ2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihgVGhlIHJlcXVlc3QucGFnZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBcXGBVUkxQYXR0ZXJuXFxgLlxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVxdWVzdC1wYWdlXG4gIGApO1xuICAgIH1cbn1cbmNsYXNzIFJlbW92ZWRVQUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKGBUaGUgcmVxdWVzdC51YSBoYXMgYmVlbiByZW1vdmVkIGluIGZhdm91ciBvZiBcXGB1c2VyQWdlbnRcXGAgZnVuY3Rpb24uXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1wYXJzZS11c2VyLWFnZW50XG4gIGApO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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 new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw0QkFBNEIsbUJBQU8sQ0FBQywwSEFBNEM7QUFDaEYsZ0NBQWdDLG1CQUFPLENBQUMsb0pBQXlEO0FBQ2pHLHFCQUFxQixtQkFBTyxDQUFDLGdHQUErQjtBQUM1RCw2QkFBNkIsbUJBQU8sQ0FBQyw4SUFBc0Q7QUFDM0YscUdBQXFHLEVBQUU7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixTQUE4QztBQUN0RTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRkFBaUYsT0FBTztBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsY0FBYyxJQUFJLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVU7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFLE1BQU07QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHdlYlxcbmV4dC11cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0VVJMXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VVJMO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGVjdGRvbWFpbmxvY2FsZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGVcIik7XG5jb25zdCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mbyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvXCIpO1xuY29uc3QgX2dldGhvc3RuYW1lID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lXCIpO1xuY29uc3QgX2dldG5leHRwYXRobmFtZWluZm8gPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mb1wiKTtcbmNvbnN0IFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSA9IC8oPyFeaHR0cHM/OlxcL1xcLykoMTI3KD86XFwuKD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSl7M318XFxbOjoxXFxdfGxvY2FsaG9zdCkvO1xuZnVuY3Rpb24gcGFyc2VVUkwodXJsLCBiYXNlKSB7XG4gICAgcmV0dXJuIG5ldyBVUkwoU3RyaW5nKHVybCkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSwgYmFzZSAmJiBTdHJpbmcoYmFzZSkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSk7XG59XG5jb25zdCBJbnRlcm5hbCA9IFN5bWJvbCgnTmV4dFVSTEludGVybmFsJyk7XG5jbGFzcyBOZXh0VVJMIHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgYmFzZU9yT3B0cywgb3B0cyl7XG4gICAgICAgIGxldCBiYXNlO1xuICAgICAgICBsZXQgb3B0aW9ucztcbiAgICAgICAgaWYgKHR5cGVvZiBiYXNlT3JPcHRzID09PSAnb2JqZWN0JyAmJiAncGF0aG5hbWUnIGluIGJhc2VPck9wdHMgfHwgdHlwZW9mIGJhc2VPck9wdHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBiYXNlID0gYmFzZU9yT3B0cztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRzIHx8IHt9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwgYmFzZU9yT3B0cyB8fCB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXSA9IHtcbiAgICAgICAgICAgIHVybDogcGFyc2VVUkwoaW5wdXQsIGJhc2UgPz8gb3B0aW9ucy5iYXNlKSxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICBiYXNlUGF0aDogJydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hbmFseXplKCk7XG4gICAgfVxuICAgIGFuYWx5emUoKSB7XG4gICAgICAgIHZhciBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLCBfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUsIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMSwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMTtcbiAgICAgICAgY29uc3QgaW5mbyA9ICgwLCBfZ2V0bmV4dHBhdGhuYW1laW5mby5nZXROZXh0UGF0aG5hbWVJbmZvKSh0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsIHtcbiAgICAgICAgICAgIG5leHRDb25maWc6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZyxcbiAgICAgICAgICAgIHBhcnNlRGF0YTogIXByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUsXG4gICAgICAgICAgICBpMThuUHJvdmlkZXI6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBob3N0bmFtZSA9ICgwLCBfZ2V0aG9zdG5hbWUuZ2V0SG9zdG5hbWUpKHRoaXNbSW50ZXJuYWxdLnVybCwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5oZWFkZXJzKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXIgPyB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlci5kZXRlY3REb21haW5Mb2NhbGUoaG9zdG5hbWUpIDogKDAsIF9kZXRlY3Rkb21haW5sb2NhbGUuZGV0ZWN0RG9tYWluTG9jYWxlKSgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5kb21haW5zLCBob3N0bmFtZSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSAoKF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZSA9IHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZS5kZWZhdWx0TG9jYWxlKSB8fCAoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzEgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMS5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xLmRlZmF1bHRMb2NhbGUpO1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUgPSBpbmZvLnBhdGhuYW1lO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGggPSBpbmZvLmJhc2VQYXRoID8/ICcnO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gaW5mby5idWlsZElkO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBpbmZvLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoID0gaW5mby50cmFpbGluZ1NsYXNoO1xuICAgIH1cbiAgICBmb3JtYXRQYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuICgwLCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mby5mb3JtYXROZXh0UGF0aG5hbWVJbmZvKSh7XG4gICAgICAgICAgICBiYXNlUGF0aDogdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGgsXG4gICAgICAgICAgICBidWlsZElkOiB0aGlzW0ludGVybmFsXS5idWlsZElkLFxuICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogIXRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuZm9yY2VMb2NhbGUgPyB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzW0ludGVybmFsXS5sb2NhbGUsXG4gICAgICAgICAgICBwYXRobmFtZTogdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgdHJhaWxpbmdTbGFzaDogdGhpc1tJbnRlcm5hbF0udHJhaWxpbmdTbGFzaFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZm9ybWF0U2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgZ2V0IGJ1aWxkSWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5idWlsZElkO1xuICAgIH1cbiAgICBzZXQgYnVpbGRJZChidWlsZElkKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQgPSBidWlsZElkO1xuICAgIH1cbiAgICBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0ubG9jYWxlID8/ICcnO1xuICAgIH1cbiAgICBzZXQgbG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZztcbiAgICAgICAgaWYgKCF0aGlzW0ludGVybmFsXS5sb2NhbGUgfHwgISgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5sb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBUaGUgTmV4dFVSTCBjb25maWd1cmF0aW9uIGluY2x1ZGVzIG5vIGxvY2FsZSBcIiR7bG9jYWxlfVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpc1tJbnRlcm5hbF0ubG9jYWxlID0gbG9jYWxlO1xuICAgIH1cbiAgICBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGU7XG4gICAgfVxuICAgIGdldCBkb21haW5Mb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGU7XG4gICAgfVxuICAgIGdldCBzZWFyY2hQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBnZXQgaG9zdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0O1xuICAgIH1cbiAgICBzZXQgaG9zdCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaG9zdG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWU7XG4gICAgfVxuICAgIHNldCBob3N0bmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBvcnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucG9ydDtcbiAgICB9XG4gICAgc2V0IHBvcnQodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBvcnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHByb3RvY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sO1xuICAgIH1cbiAgICBzZXQgcHJvdG9jb2wodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBocmVmKCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHRoaXMuZm9ybWF0UGF0aG5hbWUoKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gdGhpcy5mb3JtYXRTZWFyY2goKTtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvdG9jb2x9Ly8ke3RoaXMuaG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7dGhpcy5oYXNofWA7XG4gICAgfVxuICAgIHNldCBocmVmKHVybCkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwgPSBwYXJzZVVSTCh1cmwpO1xuICAgICAgICB0aGlzLmFuYWx5emUoKTtcbiAgICB9XG4gICAgZ2V0IG9yaWdpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5vcmlnaW47XG4gICAgfVxuICAgIGdldCBwYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZTtcbiAgICB9XG4gICAgc2V0IHBhdGhuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaGFzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5oYXNoO1xuICAgIH1cbiAgICBzZXQgaGFzaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaGFzaCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgc2V0IHNlYXJjaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwYXNzd29yZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZDtcbiAgICB9XG4gICAgc2V0IHBhc3N3b3JkKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdXNlcm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWU7XG4gICAgfVxuICAgIHNldCB1c2VybmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGJhc2VQYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGg7XG4gICAgfVxuICAgIHNldCBiYXNlUGF0aCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCA9IHZhbHVlLnN0YXJ0c1dpdGgoJy8nKSA/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/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 new Error('Invariant: Unsupported NextRequest type');\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 // @ts-expect-error - see https://github.com/whatwg/fetch/pull/1457\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 // @ts-expect-error - see https://github.com/whatwg/fetch/pull/1457\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLG9GQUF1QjtBQUNwRCxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEMsaUJBQWlCLG1CQUFPLENBQUMsdUZBQVk7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsOEZBQTRCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBOEUsRUFBRSxFQUUvRSxDQUFDO0FBQ1Y7QUFDQSxRQUFRLEtBQW1DO0FBQzNDO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHdlYlxcc3BlYy1leHRlbnNpb25cXGFkYXB0ZXJzXFxuZXh0LXJlcXVlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBOZXh0UmVxdWVzdEFkYXB0ZXI6IG51bGwsXG4gICAgUmVzcG9uc2VBYm9ydGVkOiBudWxsLFxuICAgIFJlc3BvbnNlQWJvcnRlZE5hbWU6IG51bGwsXG4gICAgY3JlYXRlQWJvcnRDb250cm9sbGVyOiBudWxsLFxuICAgIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTmV4dFJlcXVlc3RBZGFwdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlcjtcbiAgICB9LFxuICAgIFJlc3BvbnNlQWJvcnRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUFib3J0ZWQ7XG4gICAgfSxcbiAgICBSZXNwb25zZUFib3J0ZWROYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfSxcbiAgICBjcmVhdGVBYm9ydENvbnRyb2xsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQWJvcnRDb250cm9sbGVyO1xuICAgIH0sXG4gICAgc2lnbmFsRnJvbU5vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlcXVlc3RtZXRhID0gcmVxdWlyZShcIi4uLy4uLy4uL3JlcXVlc3QtbWV0YVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi8uLi91dGlsc1wiKTtcbmNvbnN0IF9yZXF1ZXN0ID0gcmVxdWlyZShcIi4uL3JlcXVlc3RcIik7XG5jb25zdCBfaGVscGVycyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9iYXNlLWh0dHAvaGVscGVyc1wiKTtcbmNvbnN0IFJlc3BvbnNlQWJvcnRlZE5hbWUgPSAnUmVzcG9uc2VBYm9ydGVkJztcbmNsYXNzIFJlc3BvbnNlQWJvcnRlZCBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyksIHRoaXMubmFtZSA9IFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAvLyBJZiBgZmluaXNoYCBmaXJlcyBmaXJzdCwgdGhlbiBgcmVzLmVuZCgpYCBoYXMgYmVlbiBjYWxsZWQgYW5kIHRoZSBjbG9zZSBpc1xuICAgIC8vIGp1c3QgdXMgZmluaXNoaW5nIHRoZSBzdHJlYW0gb24gb3VyIHNpZGUuIElmIGBjbG9zZWAgZmlyZXMgZmlyc3QsIHRoZW4gd2VcbiAgICAvLyBrbm93IHRoZSBjbGllbnQgZGlzY29ubmVjdGVkIGJlZm9yZSB3ZSBmaW5pc2hlZC5cbiAgICByZXNwb25zZS5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIGlmIChyZXNwb25zZS53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIGNvbnRyb2xsZXIuYWJvcnQobmV3IFJlc3BvbnNlQWJvcnRlZCgpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29udHJvbGxlcjtcbn1cbmZ1bmN0aW9uIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICBjb25zdCB7IGVycm9yZWQsIGRlc3Ryb3llZCB9ID0gcmVzcG9uc2U7XG4gICAgaWYgKGVycm9yZWQgfHwgZGVzdHJveWVkKSB7XG4gICAgICAgIHJldHVybiBBYm9ydFNpZ25hbC5hYm9ydChlcnJvcmVkID8/IG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfVxuICAgIGNvbnN0IHsgc2lnbmFsIH0gPSBjcmVhdGVBYm9ydENvbnRyb2xsZXIocmVzcG9uc2UpO1xuICAgIHJldHVybiBzaWduYWw7XG59XG5jbGFzcyBOZXh0UmVxdWVzdEFkYXB0ZXIge1xuICAgIHN0YXRpYyBmcm9tQmFzZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCkge1xuICAgICAgICBpZiAoLy8gVGhlIHR5cGUgY2hlY2sgaGVyZSBlbnN1cmVzIHRoYXQgYHJlcWAgaXMgY29ycmVjdGx5IHR5cGVkLCBhbmQgdGhlXG4gICAgICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzV2ViTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21XZWJOZXh0UmVxdWVzdChyZXF1ZXN0KTtcbiAgICAgICAgfSBlbHNlIGlmICgvLyBUaGUgdHlwZSBjaGVjayBoZXJlIGVuc3VyZXMgdGhhdCBgcmVxYCBpcyBjb3JyZWN0bHkgdHlwZWQsIGFuZCB0aGVcbiAgICAgICAgLy8gZW52aXJvbm1lbnQgdmFyaWFibGUgY2hlY2sgcHJvdmlkZXMgZGVhZCBjb2RlIGVsaW1pbmF0aW9uLlxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiAoMCwgX2hlbHBlcnMuaXNOb2RlTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiBVbnN1cHBvcnRlZCBOZXh0UmVxdWVzdCB0eXBlJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKSB7XG4gICAgICAgIC8vIEhFQUQgYW5kIEdFVCByZXF1ZXN0cyBjYW4gbm90IGhhdmUgYSBib2R5LlxuICAgICAgICBsZXQgYm9keSA9IG51bGw7XG4gICAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJyAmJiByZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aGlzIGlzIGhhbmRsZWQgYnkgdW5kaWNpLCB3aGVuIHN0cmVhbXMvd2ViIGxhbmQgdXNlIGl0IGluc3RlYWRcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgaWYgKHJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBHcmFiIHRoZSBmdWxsIFVSTCBmcm9tIHRoZSByZXF1ZXN0IG1ldGFkYXRhLlxuICAgICAgICAgICAgY29uc3QgYmFzZSA9ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcXVlc3QsICdpbml0VVJMJyk7XG4gICAgICAgICAgICBpZiAoIWJhc2UgfHwgIWJhc2Uuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgVVJMIGNvbnN0cnVjdGlvbiByZWxpZXMgb24gdGhlIGZhY3QgdGhhdCB0aGUgVVJMIHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgLy8gaXMgYWJzb2x1dGUsIHdlIG5lZWQgdG8gcHJvdmlkZSBhIGJhc2UgVVJMLiBXZSBjYW4ndCB1c2UgdGhlIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAvLyBVUkwgYmVjYXVzZSBpdCdzIHJlbGF0aXZlLCBzbyB3ZSB1c2UgYSBkdW1teSBVUkwgaW5zdGVhZC5cbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCAnaHR0cDovL24nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCwgYmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfcmVxdWVzdC5OZXh0UmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9mZXRjaC9wdWxsLzE0NTdcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4uc2lnbmFsLmFib3J0ZWQgPyB7fSA6IHtcbiAgICAgICAgICAgICAgICBib2R5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbVdlYk5leHRSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgX3JlcXVlc3QuTmV4dFJlcXVlc3QocmVxdWVzdC51cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9mZXRjaC9wdWxsLzE0NTdcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsOiByZXF1ZXN0LnJlcXVlc3Quc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4ucmVxdWVzdC5yZXF1ZXN0LnNpZ25hbC5hYm9ydGVkID8ge30gOiB7XG4gICAgICAgICAgICAgICAgYm9keVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtcmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFx3ZWJcXHNwZWMtZXh0ZW5zaW9uXFxhZGFwdGVyc1xccmVmbGVjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJlZmxlY3RBZGFwdGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlcjtcbiAgICB9XG59KTtcbmNsYXNzIFJlZmxlY3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmJpbmQodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN0YXRpYyBzZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICB9XG4gICAgc3RhdGljIGhhcyh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgfVxuICAgIHN0YXRpYyBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZmxlY3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vY29va2llcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHdIQUEwQzs7QUFFbkUiLCJzb3VyY2VzIjpbIkU6XFxHSVRcXG12cFxcbmFzaGVsLWZyb250ZW5kXFxub2RlX21vZHVsZXNcXG5leHRcXGRpc3RcXHNlcnZlclxcd2ViXFxzcGVjLWV4dGVuc2lvblxcY29va2llcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFJlcXVlc3RDb29raWVzOiBudWxsLFxuICAgIFJlc3BvbnNlQ29va2llczogbnVsbCxcbiAgICBzdHJpbmdpZnlDb29raWU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUmVxdWVzdENvb2tpZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvb2tpZXMuUmVxdWVzdENvb2tpZXM7XG4gICAgfSxcbiAgICBSZXNwb25zZUNvb2tpZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvb2tpZXMuUmVzcG9uc2VDb29raWVzO1xuICAgIH0sXG4gICAgc3RyaW5naWZ5Q29va2llOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLnN0cmluZ2lmeUNvb2tpZTtcbiAgICB9XG59KTtcbmNvbnN0IF9jb29raWVzID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXNcIik7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvb2tpZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQywwRUFBYTtBQUN0QyxlQUFlLG1CQUFPLENBQUMsb0VBQVU7QUFDakMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHNGQUFXO0FBQ3BDO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE1BQThDLEdBQUcsQ0FBRztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyJFOlxcR0lUXFxtdnBcXG5hc2hlbC1mcm9udGVuZFxcbm9kZV9tb2R1bGVzXFxuZXh0XFxkaXN0XFxzZXJ2ZXJcXHdlYlxcc3BlYy1leHRlbnNpb25cXHJlcXVlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBJTlRFUk5BTFM6IG51bGwsXG4gICAgTmV4dFJlcXVlc3Q6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSU5URVJOQUxTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElOVEVSTkFMUztcbiAgICB9LFxuICAgIE5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0O1xuICAgIH1cbn0pO1xuY29uc3QgX25leHR1cmwgPSByZXF1aXJlKFwiLi4vbmV4dC11cmxcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG5jb25zdCBfZXJyb3IgPSByZXF1aXJlKFwiLi4vZXJyb3JcIik7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCIuL2Nvb2tpZXNcIik7XG5jb25zdCBJTlRFUk5BTFMgPSBTeW1ib2woJ2ludGVybmFsIHJlcXVlc3QnKTtcbmNsYXNzIE5leHRSZXF1ZXN0IGV4dGVuZHMgUmVxdWVzdCB7XG4gICAgY29uc3RydWN0b3IoaW5wdXQsIGluaXQgPSB7fSl7XG4gICAgICAgIGNvbnN0IHVybCA9IHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgJ3VybCcgaW4gaW5wdXQgPyBpbnB1dC51cmwgOiBTdHJpbmcoaW5wdXQpO1xuICAgICAgICAoMCwgX3V0aWxzLnZhbGlkYXRlVVJMKSh1cmwpO1xuICAgICAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBSZXF1ZXN0KSBzdXBlcihpbnB1dCwgaW5pdCk7XG4gICAgICAgIGVsc2Ugc3VwZXIodXJsLCBpbml0KTtcbiAgICAgICAgY29uc3QgbmV4dFVybCA9IG5ldyBfbmV4dHVybC5OZXh0VVJMKHVybCwge1xuICAgICAgICAgICAgaGVhZGVyczogKDAsIF91dGlscy50b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKSh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgbmV4dENvbmZpZzogaW5pdC5uZXh0Q29uZmlnXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzW0lOVEVSTkFMU10gPSB7XG4gICAgICAgICAgICBjb29raWVzOiBuZXcgX2Nvb2tpZXMuUmVxdWVzdENvb2tpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIG5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUgPyB1cmwgOiBuZXh0VXJsLnRvU3RyaW5nKClcbiAgICAgICAgfTtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoJ2VkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbScpXSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvb2tpZXM6IHRoaXMuY29va2llcyxcbiAgICAgICAgICAgIG5leHRVcmw6IHRoaXMubmV4dFVybCxcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICAvLyByZXN0IG9mIHByb3BzIGNvbWUgZnJvbSBSZXF1ZXN0XG4gICAgICAgICAgICBib2R5VXNlZDogdGhpcy5ib2R5VXNlZCxcbiAgICAgICAgICAgIGNhY2hlOiB0aGlzLmNhY2hlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHRoaXMuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogdGhpcy5kZXN0aW5hdGlvbixcbiAgICAgICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgaW50ZWdyaXR5OiB0aGlzLmludGVncml0eSxcbiAgICAgICAgICAgIGtlZXBhbGl2ZTogdGhpcy5rZWVwYWxpdmUsXG4gICAgICAgICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgICAgICAgcmVkaXJlY3Q6IHRoaXMucmVkaXJlY3QsXG4gICAgICAgICAgICByZWZlcnJlcjogdGhpcy5yZWZlcnJlcixcbiAgICAgICAgICAgIHJlZmVycmVyUG9saWN5OiB0aGlzLnJlZmVycmVyUG9saWN5LFxuICAgICAgICAgICAgc2lnbmFsOiB0aGlzLnNpZ25hbFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXQgY29va2llcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS5jb29raWVzO1xuICAgIH1cbiAgICBnZXQgbmV4dFVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS5uZXh0VXJsO1xuICAgIH1cbiAgICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogYHBhZ2VgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGBVUkxQYXR0ZXJuYC5cbiAgICogUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXJlcXVlc3QtcGFnZVxuICAgKi8gZ2V0IHBhZ2UoKSB7XG4gICAgICAgIHRocm93IG5ldyBfZXJyb3IuUmVtb3ZlZFBhZ2VFcnJvcigpO1xuICAgIH1cbiAgICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogYHVhYCBoYXMgYmVlbiByZW1vdmVkIGluIGZhdm91ciBvZiBcXGB1c2VyQWdlbnRcXGAgZnVuY3Rpb24uXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1wYXJzZS11c2VyLWFnZW50XG4gICAqLyBnZXQgdWEoKSB7XG4gICAgICAgIHRocm93IG5ldyBfZXJyb3IuUmVtb3ZlZFVBRXJyb3IoKTtcbiAgICB9XG4gICAgZ2V0IHVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSU5URVJOQUxTXS51cmw7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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 new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n}\nfunction normalizeNextQueryParam(key, onKeyNormalized) {\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 const normalizedKey = key.substring(prefix.length);\n onKeyNormalized(normalizedKey);\n }\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0U7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sNkNBQTZDLFlBQVk7QUFDekQ7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiRTpcXEdJVFxcbXZwXFxuYXNoZWwtZnJvbnRlbmRcXG5vZGVfbW9kdWxlc1xcbmV4dFxcZGlzdFxcc2VydmVyXFx3ZWJcXHV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtOiBudWxsLFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogbnVsbCxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIHZhbGlkYXRlVVJMOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTtcbiAgICB9LFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzcGxpdENvb2tpZXNTdHJpbmc7XG4gICAgfSxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICB2YWxpZGF0ZVVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZVVSTDtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhub2RlSGVhZGVycykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub2RlSGVhZGVycykpe1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChsZXQgdiBvZiB2YWx1ZXMpe1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdiA9IHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKGtleSwgdik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG59XG5mdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcoY29va2llc1N0cmluZykge1xuICAgIHZhciBjb29raWVzU3RyaW5ncyA9IFtdO1xuICAgIHZhciBwb3MgPSAwO1xuICAgIHZhciBzdGFydDtcbiAgICB2YXIgY2g7XG4gICAgdmFyIGxhc3RDb21tYTtcbiAgICB2YXIgbmV4dFN0YXJ0O1xuICAgIHZhciBjb29raWVzU2VwYXJhdG9yRm91bmQ7XG4gICAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpe1xuICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICByZXR1cm4gY2ggIT09ICc9JyAmJiBjaCAhPT0gJzsnICYmIGNoICE9PSAnLCc7XG4gICAgfVxuICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoKXtcbiAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZShza2lwV2hpdGVzcGFjZSgpKXtcbiAgICAgICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJywnKSB7XG4gICAgICAgICAgICAgICAgLy8gJywnIGlzIGEgY29va2llIHNlcGFyYXRvciBpZiB3ZSBoYXZlIGxhdGVyIGZpcnN0ICc9Jywgbm90ICc7JyBvciAnLCdcbiAgICAgICAgICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgICAgc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSl7XG4gICAgICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50bHkgc3BlY2lhbCBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gJz0nKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGNvb2tpZXMgc2VwYXJhdG9yXG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIHBvcyBpcyBpbnNpZGUgdGhlIG5leHQgY29va2llLCBzbyBiYWNrIHVwIGFuZCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluIHBhcmFtICcsJyBvciBwYXJhbSBzZXBhcmF0b3IgJzsnLFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb250aW51ZSBmcm9tIHRoYXQgY29tbWFcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG5mdW5jdGlvbiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBjb25zdCBub2RlSGVhZGVycyA9IHt9O1xuICAgIGNvbnN0IGNvb2tpZXMgPSBbXTtcbiAgICBpZiAoaGVhZGVycykge1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoZWFkZXJzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdzZXQtY29va2llJykge1xuICAgICAgICAgICAgICAgIC8vIFdlIG1heSBoYXZlIGdvdHRlbiBhIGNvbW1hIGpvaW5lZCBzdHJpbmcgb2YgY29va2llcywgb3IgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBzZXQtY29va2llIGhlYWRlcnMuIFdlIG5lZWQgdG8gbWVyZ2UgdGhlbSBpbnRvIG9uZSBoZWFkZXIgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyB0byByZXByZXNlbnQgYWxsIHRoZSBjb29raWVzLlxuICAgICAgICAgICAgICAgIGNvb2tpZXMucHVzaCguLi5zcGxpdENvb2tpZXNTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgICAgICBub2RlSGVhZGVyc1trZXldID0gY29va2llcy5sZW5ndGggPT09IDEgPyBjb29raWVzWzBdIDogY29va2llcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2RlSGVhZGVycztcbn1cbmZ1bmN0aW9uIHZhbGlkYXRlVVJMKHVybCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcobmV3IFVSTChTdHJpbmcodXJsKSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVVJMIGlzIG1hbGZvcm1lZCBcIiR7U3RyaW5nKHVybCl9XCIuIFBsZWFzZSB1c2Ugb25seSBhYnNvbHV0ZSBVUkxzIC0gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZWxhdGl2ZS11cmxzYCwge1xuICAgICAgICAgICAgY2F1c2U6IGVycm9yXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtKGtleSwgb25LZXlOb3JtYWxpemVkKSB7XG4gICAgY29uc3QgcHJlZml4ZXMgPSBbXG4gICAgICAgIF9jb25zdGFudHMuTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgsXG4gICAgICAgIF9jb25zdGFudHMuTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWFxuICAgIF07XG4gICAgZm9yIChjb25zdCBwcmVmaXggb2YgcHJlZml4ZXMpe1xuICAgICAgICBpZiAoa2V5ICE9PSBwcmVmaXggJiYga2V5LnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEtleSA9IGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCk7XG4gICAgICAgICAgICBvbktleU5vcm1hbGl6ZWQobm9ybWFsaXplZEtleSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./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 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_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 */ \"(rsc)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(rsc)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW1DYUEsa0JBQWtCO2VBQWxCQTs7SUFpREFDLG9CQUFvQjtlQUFwQkE7O0lBcERBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyx3QkFBd0I7ZUFBeEJBOztJQThCQUMsMEJBQTBCO2VBQTFCQTs7SUFMQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUF2QkFDLGNBQWM7ZUFBZEE7O0lBeUJBQyx3QkFBd0I7ZUFBeEJBOztJQU9BQyx5QkFBeUI7ZUFBekJBOztJQU5BQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsK0JBQStCO2VBQS9CQTs7SUFQQUMsZ0NBQWdDO2VBQWhDQTs7SUFDQUMsb0NBQW9DO2VBQXBDQTs7SUFVQUMscUNBQXFDO2VBQXJDQTs7SUFDQUMsNENBQTRDO2VBQTVDQTs7SUFQQUMseUNBQXlDO2VBQXpDQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUE1RUFDLGdCQUFnQjtlQUFoQkE7O0lBUkFDLGNBQWM7ZUFBZEE7O0lBOENBQyxZQUFZO2VBQVpBOztJQTRDQUMsdUJBQXVCO2VBQXZCQTs7SUFVQUMsdUJBQXVCO2VBQXZCQTs7SUFOQUMsa0JBQWtCO2VBQWxCQTs7SUFuREFDLDhCQUE4QjtlQUE5QkE7O0lBSkFDLHlCQUF5QjtlQUF6QkE7O0lBaUNBQyxvQkFBb0I7ZUFBcEJBOztJQW1CQUMsb0JBQW9CO2VBQXBCQTs7SUE2QkFDLDBCQUEwQjtlQUExQkE7O0lBdEZBQyxhQUFhO2VBQWJBOztJQURBQyxhQUFhO2VBQWJBOztJQUhBQyx5QkFBeUI7ZUFBekJBOztJQU9BQyxlQUFlO2VBQWZBOztJQWdDQUMsbUNBQW1DO2VBQW5DQTs7SUFMQUMseUJBQXlCO2VBQXpCQTs7SUF4QkFDLG1CQUFtQjtlQUFuQkE7O0lBMEJBQyxrQ0FBa0M7ZUFBbENBOztJQXRFSkMsMEJBQTBCO2VBQTFCQSwwQkFBQUEs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d0M7QUFDOUMsTUFBTUMsK0NBQStDc0QsT0FDMUR2RDtBQUVLLE1BQU1PLDBCQUEwQjtBQUNoQyxNQUFNTSx1QkFBdUI7QUFDN0IsTUFBTTRCLGtCQUFrQjtBQUN4QixNQUFNRixrQkFBa0I7QUFDeEIsTUFBTTlCLHFCQUFxQjtJQUNoQytDLE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1uRCwwQkFBMEI7SUFDckNnRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNakIsc0JBQXNCO0lBQUM7Q0FBTztBQUNwQyxNQUFNSSx1QkFBdUI7QUFFN0IsTUFBTUUsbUNBQW1DO0FBRXpDLE1BQU1aLG1CQUFtQjtJQUM5QmdCLFFBQVE7SUFDUkMsUUFBUTtBQUNWO0FBTU8sTUFBTXZDLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTStCLHFCQUFxQixJQUFJZSxJQUFZO0lBQ2hEOUQ7SUFDQUk7SUFDQUw7SUFDQUU7Q0FDRCIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXGNvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgZnJvbSAnLi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldCdcblxuZXhwb3J0IHsgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgfVxuXG5leHBvcnQgdHlwZSBWYWx1ZU9mPFQ+ID0gUmVxdWlyZWQ8VD5ba2V5b2YgVF1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX05BTUVTID0ge1xuICBjbGllbnQ6ICdjbGllbnQnLFxuICBzZXJ2ZXI6ICdzZXJ2ZXInLFxuICBlZGdlU2VydmVyOiAnZWRnZS1zZXJ2ZXInLFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBDb21waWxlck5hbWVWYWx1ZXMgPSBWYWx1ZU9mPHR5cGVvZiBDT01QSUxFUl9OQU1FUz5cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0lOREVYRVM6IHtcbiAgW2NvbXBpbGVyS2V5IGluIENvbXBpbGVyTmFtZVZhbHVlc106IG51bWJlclxufSA9IHtcbiAgW0NPTVBJTEVSX05BTUVTLmNsaWVudF06IDAsXG4gIFtDT01QSUxFUl9OQU1FUy5zZXJ2ZXJdOiAxLFxuICBbQ09NUElMRVJfTkFNRVMuZWRnZVNlcnZlcl06IDIsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURSA9ICcvX25vdC1mb3VuZCdcbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSA9IGAke1VOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFfS9wYWdlYFxuZXhwb3J0IGNvbnN0IFBIQVNFX0VYUE9SVCA9ICdwaGFzZS1leHBvcnQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9CVUlMRCA9ICdwaGFzZS1wcm9kdWN0aW9uLWJ1aWxkJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fU0VSVkVSID0gJ3BoYXNlLXByb2R1Y3Rpb24tc2VydmVyJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiA9ICdwaGFzZS1kZXZlbG9wbWVudC1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfVEVTVCA9ICdwaGFzZS10ZXN0J1xuZXhwb3J0IGNvbnN0IFBIQVNFX0lORk8gPSAncGhhc2UtaW5mbydcbmV4cG9ydCBjb25zdCBQQUdFU19NQU5JRkVTVCA9ICdwYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFdFQlBBQ0tfU1RBVFMgPSAnd2VicGFjay1zdGF0cy5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIU19NQU5JRkVTVCA9ICdhcHAtcGF0aHMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QgPSAnYXBwLXBhdGgtcm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQlVJTERfTUFOSUZFU1QgPSAnYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfQlVJTERfTUFOSUZFU1QgPSAnYXBwLWJ1aWxkLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCA9ICdmdW5jdGlvbnMtY29uZmlnLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUID0gJ3N1YnJlc291cmNlLWludGVncml0eS1tYW5pZmVzdCdcbmV4cG9ydCBjb25zdCBORVhUX0ZPTlRfTUFOSUZFU1QgPSAnbmV4dC1mb250LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVJLRVIgPSAnZXhwb3J0LW1hcmtlci5qc29uJ1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9ERVRBSUwgPSAnZXhwb3J0LWRldGFpbC5qc29uJ1xuZXhwb3J0IGNvbnN0IFBSRVJFTkRFUl9NQU5JRkVTVCA9ICdwcmVyZW5kZXItbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBST1VURVNfTUFOSUZFU1QgPSAncm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgSU1BR0VTX01BTklGRVNUID0gJ2ltYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9GSUxFU19NQU5JRkVTVCA9ICdyZXF1aXJlZC1zZXJ2ZXItZmlsZXMuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUID0gJ19kZXZQYWdlc01hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUID1cbiAgJ19jbGllbnRNaWRkbGV3YXJlTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPSAnX2Rldk1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJFQUNUX0xPQURBQkxFX01BTklGRVNUID0gJ3JlYWN0LWxvYWRhYmxlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0RJUkVDVE9SWSA9ICdzZXJ2ZXInXG5leHBvcnQgY29uc3QgQ09ORklHX0ZJTEVTID0gW1xuICAnbmV4dC5jb25maWcuanMnLFxuICAnbmV4dC5jb25maWcubWpzJyxcbiAgJ25leHQuY29uZmlnLnRzJyxcbl1cbmV4cG9ydCBjb25zdCBCVUlMRF9JRF9GSUxFID0gJ0JVSUxEX0lEJ1xuZXhwb3J0IGNvbnN0IEJMT0NLRURfUEFHRVMgPSBbJy9fZG9jdW1lbnQnLCAnL19hcHAnLCAnL19lcnJvciddXG5leHBvcnQgY29uc3QgQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIID0gJ3B1YmxpYydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEggPSAnc3RhdGljJ1xuZXhwb3J0IGNvbnN0IFNUUklOR19MSVRFUkFMX0RST1BfQlVORExFID0gJ19fTkVYVF9EUk9QX0NMSUVOVF9GSUxFX18nXG5leHBvcnQgY29uc3QgTkVYVF9CVUlMVElOX0RPQ1VNRU5UID0gJ19fTkVYVF9CVUlMVElOX0RPQ1VNRU5UX18nXG5leHBvcnQgY29uc3QgQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVggPSAnX19iYXJyZWxfb3B0aW1pemVfXydcblxuLy8gc2VydmVyL1tlbnRyeV0vcGFnZV9jbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCA9ICdjbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0J1xuLy8gc2VydmVyL3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3RcbmV4cG9ydCBjb25zdCBTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUID0gJ3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QgPSAnbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCA9XG4gICdtaWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0J1xuLy8gc2VydmVyL2ludGVyY2VwdGlvbi1yb3V0ZS1yZXdyaXRlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1QgPVxuICAnaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvZHluYW1pYy1jc3MtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBEWU5BTUlDX0NTU19NQU5JRkVTVCA9ICdkeW5hbWljLWNzcy1tYW5pZmVzdCdcblxuLy8gc3RhdGljL3J1bnRpbWUvbWFpbi5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOID0gYG1haW5gXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQID0gYCR7Q0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU59LWFwcGBcbi8vIG5leHQgaW50ZXJuYWwgY2xpZW50IGNvbXBvbmVudHMgY2h1bmsgZm9yIGxheW91dHNcbmV4cG9ydCBjb25zdCBBUFBfQ0xJRU5UX0lOVEVSTkFMUyA9ICdhcHAtcGFnZXMtaW50ZXJuYWxzJ1xuLy8gc3RhdGljL3J1bnRpbWUvcmVhY3QtcmVmcmVzaC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIID0gYHJlYWN0LXJlZnJlc2hgXG4vLyBzdGF0aWMvcnVudGltZS9hbXAuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QID0gYGFtcGBcbi8vIHN0YXRpYy9ydW50aW1lL3dlYnBhY2suanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyA9IGB3ZWJwYWNrYFxuLy8gc3RhdGljL3J1bnRpbWUvcG9seWZpbGxzLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMUyA9ICdwb2x5ZmlsbHMnXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wgPSBTeW1ib2woXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNcbilcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyA9ICd3ZWJwYWNrLXJ1bnRpbWUnXG5leHBvcnQgY29uc3QgRURHRV9SVU5USU1FX1dFQlBBQ0sgPSAnZWRnZS1ydW50aW1lLXdlYnBhY2snXG5leHBvcnQgY29uc3QgU1RBVElDX1BST1BTX0lEID0gJ19fTl9TU0cnXG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0lEID0gJ19fTl9TU1AnXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnVGltZXMgTmV3IFJvbWFuJyxcbiAgeEF2Z0NoYXJXaWR0aDogODIxLFxuICBhekF2Z1dpZHRoOiA4NTQuMzk1MzQ4ODM3MjA5MyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCA9IHtcbiAgbmFtZTogJ0FyaWFsJyxcbiAgeEF2Z0NoYXJXaWR0aDogOTA0LFxuICBhekF2Z1dpZHRoOiA5MzQuNTExNjI3OTA2OTc2NyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VTID0gWycvNTAwJ11cbmV4cG9ydCBjb25zdCBUUkFDRV9PVVRQVVRfVkVSU0lPTiA9IDFcbi8vIGluIGBNQmBcbmV4cG9ydCBjb25zdCBUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCA9IDYwMDBcblxuZXhwb3J0IGNvbnN0IFJTQ19NT0RVTEVfVFlQRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG59IGFzIGNvbnN0XG5cbi8vIGNvbXBhcmluZ1xuLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9lZGdlLXJ1bnRpbWVcbi8vIHdpdGhcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvZ2xvYmFscy5odG1sXG5leHBvcnQgY29uc3QgRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMgPSBbXG4gICdjbGVhckltbWVkaWF0ZScsXG4gICdzZXRJbW1lZGlhdGUnLFxuICAnQnJvYWRjYXN0Q2hhbm5lbCcsXG4gICdCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0NvbXByZXNzaW9uU3RyZWFtJyxcbiAgJ0NvdW50UXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0RlY29tcHJlc3Npb25TdHJlYW0nLFxuICAnRG9tRXhjZXB0aW9uJyxcbiAgJ01lc3NhZ2VDaGFubmVsJyxcbiAgJ01lc3NhZ2VFdmVudCcsXG4gICdNZXNzYWdlUG9ydCcsXG4gICdSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyJyxcbiAgJ1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QnLFxuICAnUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdUcmFuc2Zvcm1TdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdXcml0YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbl1cblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9FTlRSWVBPSU5UUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQLFxuXSlcbiJdLCJuYW1lcyI6WyJBUFBfQlVJTERfTUFOSUZFU1QiLCJBUFBfQ0xJRU5UX0lOVEVSTkFMUyIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIkFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCIsIkJBUlJFTF9PUFRJTUlaQVRJT05fUFJFRklYIiwiQkxPQ0tFRF9QQUdFUyIsIkJVSUxEX0lEX0ZJTEUiLCJCVUlMRF9NQU5JRkVTVCIsIkNMSUVOVF9QVUJMSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEgiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4iLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLIiwiQ09NUElMRVJfSU5ERVhFUyIsIkNPTVBJTEVSX05BTUVTIiwiQ09ORklHX0ZJTEVTIiwiREVGQVVMVF9SVU5USU1FX1dFQlBBQ0siLCJERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCIsIkRFRkFVTFRfU0VSSUZfRk9OVCIsIkRFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIkRFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QiLCJEWU5BTUlDX0NTU19NQU5JRkVTVCIsIkVER0VfUlVOVElNRV9XRUJQQUNLIiwiRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMiLCJFWFBPUlRfREVUQUlMIiwiRVhQT1JUX01BUktFUiIsIkZVTkNUSU9OU19DT05GSUdfTUFOSUZFU1QiLCJJTUFHRVNfTUFOSUZFU1QiLCJJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCIsIk1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QiLCJNSURETEVXQVJFX01BTklGRVNUIiwiTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIk1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIiwiTkVYVF9CVUlMVElOX0RPQ1VNRU5UIiwiTkVYVF9GT05UX01BTklGRVNUIiwiUEFHRVNfTUFOSUZFU1QiLCJQSEFTRV9ERVZFTE9QTUVOVF9TRVJWRVIiLCJQSEFTRV9FWFBPUlQiLCJQSEFTRV9JTkZPIiwiUEhBU0VfUFJPRFVDVElPTl9CVUlMRCIsIlBIQVNFX1BST0RVQ1RJT05fU0VSVkVSIiwiUEhBU0VfVEVTVCIsIlBSRVJFTkRFUl9NQU5JRkVTVCIsIlJFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiUk9VVEVTX01BTklGRVNUIiwiUlNDX01PRFVMRV9UWVBFUyIsIlNFUlZFUl9ESVJFQ1RPUlkiLCJTRVJWRVJfRklMRVNfTUFOSUZFU1QiLCJTRVJWRVJfUFJPUFNfSUQiLCJTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUIiwiU1RBVElDX1BST1BTX0lEIiwiU1RBVElDX1NUQVRVU19QQUdFUyIsIlNUUklOR19MSVRFUkFMX0RST1BfQlVORExFIiwiU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUIiwiU1lTVEVNX0VOVFJZUE9JTlRTIiwiVFJBQ0VfT1VUUFVUX1ZFUlNJT04iLCJUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCIsIlVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEVfRU5UUlkiLCJXRUJQQUNLX1NUQVRTIiwiY2xpZW50Iiwic2VydmVyIiwiZWRnZVNlcnZlciIsIlN5bWJvbCIsIm5hbWUiLCJ4QXZnQ2hhcldpZHRoIiwiYXpBdmdXaWR0aCIsInVuaXRzUGVyRW0iLCJTZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/constants.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBUWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxZQUNkQyxNQUFvQyxFQUNwQ0MsT0FBNkI7SUFFN0IsMkVBQTJFO0lBQzNFLFlBQVk7SUFDWixJQUFJQztJQUNKLElBQUlELENBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNFLElBQUFBLEtBQVEsQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDSixRQUFRRSxJQUFJLEdBQUc7UUFDakRELFdBQVdELFFBQVFFLElBQUksQ0FBQ0csUUFBUSxHQUFHQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUNyRCxPQUFPLElBQUlQLE9BQU9FLFFBQVEsRUFBRTtRQUMxQkEsV0FBV0YsT0FBT0UsUUFBUTtJQUM1QixPQUFPO0lBRVAsT0FBT0EsU0FBU00sV0FBVztBQUM3QiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXGdldC1ob3N0bmFtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE91dGdvaW5nSHR0cEhlYWRlcnMgfSBmcm9tICdodHRwJ1xuXG4vKipcbiAqIFRha2VzIGFuIG9iamVjdCB3aXRoIGEgaG9zdG5hbWUgcHJvcGVydHkgKGxpa2UgYSBwYXJzZWQgVVJMKSBhbmQgc29tZVxuICogaGVhZGVycyB0aGF0IG1heSBjb250YWluIEhvc3QgYW5kIHJldHVybnMgdGhlIHByZWZlcnJlZCBob3N0bmFtZS5cbiAqIEBwYXJhbSBwYXJzZWQgQW4gb2JqZWN0IGNvbnRhaW5pbmcgYSBob3N0bmFtZSBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBoZWFkZXJzIEEgZGljdGlvbmFyeSB3aXRoIGhlYWRlcnMgY29udGFpbmluZyBhIGBob3N0YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhvc3RuYW1lKFxuICBwYXJzZWQ6IHsgaG9zdG5hbWU/OiBzdHJpbmcgfCBudWxsIH0sXG4gIGhlYWRlcnM/OiBPdXRnb2luZ0h0dHBIZWFkZXJzXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyBHZXQgdGhlIGhvc3RuYW1lIGZyb20gdGhlIGhlYWRlcnMgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgdXNlIHRoZSBwYXJzZWRcbiAgLy8gaG9zdG5hbWUuXG4gIGxldCBob3N0bmFtZTogc3RyaW5nXG4gIGlmIChoZWFkZXJzPy5ob3N0ICYmICFBcnJheS5pc0FycmF5KGhlYWRlcnMuaG9zdCkpIHtcbiAgICBob3N0bmFtZSA9IGhlYWRlcnMuaG9zdC50b1N0cmluZygpLnNwbGl0KCc6JywgMSlbMF1cbiAgfSBlbHNlIGlmIChwYXJzZWQuaG9zdG5hbWUpIHtcbiAgICBob3N0bmFtZSA9IHBhcnNlZC5ob3N0bmFtZVxuICB9IGVsc2UgcmV0dXJuXG5cbiAgcmV0dXJuIGhvc3RuYW1lLnRvTG93ZXJDYXNlKClcbn1cbiJdLCJuYW1lcyI6WyJnZXRIb3N0bmFtZSIsInBhcnNlZCIsImhlYWRlcnMiLCJob3N0bmFtZSIsImhvc3QiLCJBcnJheSIsImlzQXJyYXkiLCJ0b1N0cmluZyIsInNwbGl0IiwidG9Mb3dlckNhc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUVnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQ2RDLFdBQTRCLEVBQzVCQyxRQUFpQixFQUNqQkMsY0FBdUI7SUFFdkIsSUFBSSxDQUFDRixhQUFhO0lBRWxCLElBQUlFLGdCQUFnQjtRQUNsQkEsaUJBQWlCQSxlQUFlQyxXQUFXO0lBQzdDO0lBRUEsS0FBSyxNQUFNQyxRQUFRSixZQUFhO1lBRVBJLGNBSXJCQTtRQUxGLHlCQUF5QjtRQUN6QixNQUFNQyxpQkFBQUEsQ0FBaUJELGVBQUFBLEtBQUtFLE1BQUFBLEtBQU0sZ0JBQVhGLGFBQWFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUNKLFdBQVc7UUFDaEUsSUFDRUYsYUFBYUksa0JBQ2JILG1CQUFtQkUsS0FBS0ksYUFBYSxDQUFDTCxXQUFXLFFBQ2pEQyxnQkFBQUEsS0FBS0ssT0FBQUEsS0FBTyxnQkFBWkwsY0FBY00sSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9SLFdBQVcsT0FBT0QsZUFBQUEsR0FDeEQ7WUFDQSxPQUFPRTtRQUNUO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXGkxOG5cXGRldGVjdC1kb21haW4tbG9jYWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2NvbmZpZy1zaGFyZWQnXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3REb21haW5Mb2NhbGUoXG4gIGRvbWFpbkl0ZW1zPzogRG9tYWluTG9jYWxlW10sXG4gIGhvc3RuYW1lPzogc3RyaW5nLFxuICBkZXRlY3RlZExvY2FsZT86IHN0cmluZ1xuKSB7XG4gIGlmICghZG9tYWluSXRlbXMpIHJldHVyblxuXG4gIGlmIChkZXRlY3RlZExvY2FsZSkge1xuICAgIGRldGVjdGVkTG9jYWxlID0gZGV0ZWN0ZWRMb2NhbGUudG9Mb3dlckNhc2UoKVxuICB9XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIGRvbWFpbkl0ZW1zKSB7XG4gICAgLy8gcmVtb3ZlIHBvcnQgaWYgcHJlc2VudFxuICAgIGNvbnN0IGRvbWFpbkhvc3RuYW1lID0gaXRlbS5kb21haW4/LnNwbGl0KCc6JywgMSlbMF0udG9Mb3dlckNhc2UoKVxuICAgIGlmIChcbiAgICAgIGhvc3RuYW1lID09PSBkb21haW5Ib3N0bmFtZSB8fFxuICAgICAgZGV0ZWN0ZWRMb2NhbGUgPT09IGl0ZW0uZGVmYXVsdExvY2FsZS50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICBpdGVtLmxvY2FsZXM/LnNvbWUoKGxvY2FsZSkgPT4gbG9jYWxlLnRvTG93ZXJDYXNlKCkgPT09IGRldGVjdGVkTG9jYWxlKVxuICAgICkge1xuICAgICAgcmV0dXJuIGl0ZW1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJkZXRlY3REb21haW5Mb2NhbGUiLCJkb21haW5JdGVtcyIsImhvc3RuYW1lIiwiZGV0ZWN0ZWRMb2NhbGUiLCJ0b0xvd2VyQ2FzZSIsIml0ZW0iLCJkb21haW5Ib3N0bmFtZSIsImRvbWFpbiIsInNwbGl0IiwiZGVmYXVsdExvY2FsZSIsImxvY2FsZXMiLCJzb21lIiwibG9jYWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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}));\nfunction normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split('/');\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join('/') || '/';\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFjZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUNkQyxRQUFnQixFQUNoQkMsT0FBa0I7SUFFbEIsSUFBSUM7SUFDSiwrREFBK0Q7SUFDL0QsTUFBTUMsZ0JBQWdCSCxTQUFTSSxLQUFLLENBQUM7S0FFbkNILFdBQVcsSUFBSUksSUFBSSxDQUFDLENBQUNDO1FBQ3JCLElBQ0VILGFBQWEsQ0FBQyxFQUFFLElBQ2hCQSxhQUFhLENBQUMsRUFBRSxDQUFDSSxXQUFXLE9BQU9ELE9BQU9DLFdBQVcsSUFDckQ7WUFDQUwsaUJBQWlCSTtZQUNqQkgsY0FBY0ssTUFBTSxDQUFDLEdBQUc7WUFDeEJSLFdBQVdHLGNBQWNNLElBQUksQ0FBQyxRQUFRO1lBQ3RDLE9BQU87UUFDVDtRQUNBLE9BQU87SUFDVDtJQUVBLE9BQU87UUFDTFQ7UUFDQUU7SUFDRjtBQUNGIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcaTE4blxcbm9ybWFsaXplLWxvY2FsZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGF0aExvY2FsZSB7XG4gIGRldGVjdGVkTG9jYWxlPzogc3RyaW5nXG4gIHBhdGhuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBGb3IgYSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlIGZyb20gYSBsaXN0IG9mIGxvY2FsZXMsIGl0XG4gKiByZW1vdmVzIHRoZSBsb2NhbGUgZnJvbSB0aGUgcGF0aG5hbWUgcmV0dXJuaW5nIGl0IGFsb25nc2lkZSB3aXRoIHRoZVxuICogZGV0ZWN0ZWQgbG9jYWxlLlxuICpcbiAqIEBwYXJhbSBwYXRobmFtZSBBIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUuXG4gKiBAcGFyYW0gbG9jYWxlcyBBIGxpc3Qgb2YgbG9jYWxlcy5cbiAqIEByZXR1cm5zIFRoZSBkZXRlY3RlZCBsb2NhbGUgYW5kIHBhdGhuYW1lIHdpdGhvdXQgbG9jYWxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVMb2NhbGVQYXRoKFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBsb2NhbGVzPzogc3RyaW5nW11cbik6IFBhdGhMb2NhbGUge1xuICBsZXQgZGV0ZWN0ZWRMb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAvLyBmaXJzdCBpdGVtIHdpbGwgYmUgZW1wdHkgc3RyaW5nIGZyb20gc3BsaXR0aW5nIGF0IGZpcnN0IGNoYXJcbiAgY29uc3QgcGF0aG5hbWVQYXJ0cyA9IHBhdGhuYW1lLnNwbGl0KCcvJylcblxuICA7KGxvY2FsZXMgfHwgW10pLnNvbWUoKGxvY2FsZSkgPT4ge1xuICAgIGlmIChcbiAgICAgIHBhdGhuYW1lUGFydHNbMV0gJiZcbiAgICAgIHBhdGhuYW1lUGFydHNbMV0udG9Mb3dlckNhc2UoKSA9PT0gbG9jYWxlLnRvTG93ZXJDYXNlKClcbiAgICApIHtcbiAgICAgIGRldGVjdGVkTG9jYWxlID0gbG9jYWxlXG4gICAgICBwYXRobmFtZVBhcnRzLnNwbGljZSgxLCAxKVxuICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZVBhcnRzLmpvaW4oJy8nKSB8fCAnLydcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgcGF0aG5hbWUsXG4gICAgZGV0ZWN0ZWRMb2NhbGUsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVMb2NhbGVQYXRoIiwicGF0aG5hbWUiLCJsb2NhbGVzIiwiZGV0ZWN0ZWRMb2NhbGUiLCJwYXRobmFtZVBhcnRzIiwic3BsaXQiLCJzb21lIiwibG9jYWxlIiwidG9Mb3dlckNhc2UiLCJzcGxpY2UiLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcaW52YXJpYW50LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJbnZhcmlhbnRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBvcHRpb25zPzogRXJyb3JPcHRpb25zKSB7XG4gICAgc3VwZXIoXG4gICAgICBgSW52YXJpYW50OiAke21lc3NhZ2UuZW5kc1dpdGgoJy4nKSA/IG1lc3NhZ2UgOiBtZXNzYWdlICsgJy4nfSBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuYCxcbiAgICAgIG9wdGlvbnNcbiAgICApXG4gICAgdGhpcy5uYW1lID0gJ0ludmFyaWFudEVycm9yJ1xuICB9XG59XG4iXSwibmFtZXMiOlsiSW52YXJpYW50RXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsIm9wdGlvbnMiLCJlbmRzV2l0aCIsIm5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/invariant-error.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcaXMtdGhlbmFibGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVjayB0byBzZWUgaWYgYSB2YWx1ZSBpcyBUaGVuYWJsZS5cbiAqXG4gKiBAcGFyYW0gcHJvbWlzZSB0aGUgbWF5YmUtdGhlbmFibGUgdmFsdWVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIHRoZW5hYmxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RoZW5hYmxlPFQgPSB1bmtub3duPihcbiAgcHJvbWlzZTogUHJvbWlzZTxUPiB8IFRcbik6IHByb21pc2UgaXMgUHJvbWlzZTxUPiB7XG4gIHJldHVybiAoXG4gICAgcHJvbWlzZSAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiBwcm9taXNlID09PSAnb2JqZWN0JyAmJlxuICAgICd0aGVuJyBpbiBwcm9taXNlICYmXG4gICAgdHlwZW9mIHByb21pc2UudGhlbiA9PT0gJ2Z1bmN0aW9uJ1xuICApXG59XG4iXSwibmFtZXMiOlsiaXNUaGVuYWJsZSIsInByb21pc2UiLCJ0aGVuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXNvbW9ycGhpYy9wYXRoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7QUFDRCxJQUFJQTtBQUVKLElBQUlDLEtBQW1DLEVBQUUsRUFFeEMsTUFBTTtJQUNMRCxPQUFPSSxtQkFBT0EsQ0FBQyxrQkFBTTtBQUN2QjtBQUVBQyxPQUFPQyxPQUFPLEdBQUdOIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcaXNvbW9ycGhpY1xccGF0aC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbW9kdWxlIGlzIGZvciBuZXh0LmpzIHNlcnZlciBpbnRlcm5hbCB1c2FnZSBvZiBwYXRoIG1vZHVsZS5cbiAqIEl0IHdpbGwgdXNlIG5hdGl2ZSBwYXRoIG1vZHVsZSBmb3Igbm9kZWpzIHJ1bnRpbWUuXG4gKiBJdCB3aWxsIHVzZSBwYXRoLWJyb3dzZXJpZnkgcG9seWZpbGwgZm9yIGVkZ2UgcnVudGltZS5cbiAqL1xubGV0IHBhdGhcblxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gIHBhdGggPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC1icm93c2VyaWZ5Jylcbn0gZWxzZSB7XG4gIHBhdGggPSByZXF1aXJlKCdwYXRoJylcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXRoXG4iXSwibmFtZXMiOlsicGF0aCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0ZBQW9GO0FBQ3BGLGtFQUFrRTtBQUNsRTs7Ozs7Q0FLQztBQUNELE1BQU1BLDZCQUE2QjtJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREMsT0FBT0MsT0FBTyxHQUFHRiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXG1vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIE5vdGU6IFRoaXMgZmlsZSBpcyBKUyBiZWNhdXNlIGl0J3MgdXNlZCBieSB0aGUgdGFza2ZpbGUtc3djLmpzIGZpbGUsIHdoaWNoIGlzIEpTLlxuLy8gS2VlcCBmaWxlIGNoYW5nZXMgaW4gc3luYyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGAuZC50c2AgZmlsZXMuXG4vKipcbiAqIFRoZXNlIGFyZSB0aGUgYnJvd3NlciB2ZXJzaW9ucyB0aGF0IHN1cHBvcnQgYWxsIG9mIHRoZSBmb2xsb3dpbmc6XG4gKiBzdGF0aWMgaW1wb3J0OiBodHRwczovL2Nhbml1c2UuY29tL2VzNi1tb2R1bGVcbiAqIGR5bmFtaWMgaW1wb3J0OiBodHRwczovL2Nhbml1c2UuY29tL2VzNi1tb2R1bGUtZHluYW1pYy1pbXBvcnRcbiAqIGltcG9ydC5tZXRhOiBodHRwczovL2Nhbml1c2UuY29tL21kbi1qYXZhc2NyaXB0X29wZXJhdG9yc19pbXBvcnRfbWV0YVxuICovXG5jb25zdCBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCA9IFtcbiAgJ2Nocm9tZSA2NCcsXG4gICdlZGdlIDc5JyxcbiAgJ2ZpcmVmb3ggNjcnLFxuICAnb3BlcmEgNTEnLFxuICAnc2FmYXJpIDEyJyxcbl1cblxubW9kdWxlLmV4cG9ydHMgPSBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVFxuIl0sIm5hbWVzIjpbIk1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/modern-browserslist-target.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FRZ0JBOzs7ZUFBQUE7OzsyQ0FSYzsyQ0FDQTtBQU92QixTQUFTQSxVQUNkQyxJQUFZLEVBQ1pDLE1BQXVCLEVBQ3ZCQyxhQUFzQixFQUN0QkMsWUFBc0I7SUFFdEIsNEVBQTRFO0lBQzVFLHNCQUFzQjtJQUN0QixJQUFJLENBQUNGLFVBQVVBLFdBQVdDLGVBQWUsT0FBT0Y7SUFFaEQsTUFBTUksUUFBUUosS0FBS0ssV0FBVztJQUU5QiwyRUFBMkU7SUFDM0UsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQ0YsY0FBYztRQUNqQixJQUFJRyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQUNGLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixPQUFRLE1BQUdILE9BQU9JLFdBQVcsS0FBTyxPQUFPTDtJQUMvRDtJQUVBLHFDQUFxQztJQUNyQyxPQUFPTyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjUCxNQUFPLE1BQUdDO0FBQ2pDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcYWRkLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5cbi8qKlxuICogRm9yIGEgZ2l2ZW4gcGF0aCBhbmQgYSBsb2NhbGUsIGlmIHRoZSBsb2NhbGUgaXMgZ2l2ZW4sIGl0IHdpbGwgcHJlZml4IHRoZVxuICogbG9jYWxlLiBUaGUgcGF0aCBzaG91bGRuJ3QgYmUgYW4gQVBJIHBhdGguIElmIGEgZGVmYXVsdCBsb2NhbGUgaXMgZ2l2ZW4gdGhlXG4gKiBwcmVmaXggd2lsbCBiZSBvbWl0dGVkIGlmIHRoZSBsb2NhbGUgaXMgYWxyZWFkeSB0aGUgZGVmYXVsdCBsb2NhbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRMb2NhbGUoXG4gIHBhdGg6IHN0cmluZyxcbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2UsXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmcsXG4gIGlnbm9yZVByZWZpeD86IGJvb2xlYW5cbikge1xuICAvLyBJZiBubyBsb2NhbGUgd2FzIGdpdmVuIG9yIHRoZSBsb2NhbGUgaXMgdGhlIGRlZmF1bHQgbG9jYWxlLCB3ZSBkb24ndCBuZWVkXG4gIC8vIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgaWYgKCFsb2NhbGUgfHwgbG9jYWxlID09PSBkZWZhdWx0TG9jYWxlKSByZXR1cm4gcGF0aFxuXG4gIGNvbnN0IGxvd2VyID0gcGF0aC50b0xvd2VyQ2FzZSgpXG5cbiAgLy8gSWYgdGhlIHBhdGggaXMgYW4gQVBJIHBhdGggb3IgdGhlIHBhdGggYWxyZWFkeSBoYXMgdGhlIGxvY2FsZSBwcmVmaXgsIHdlXG4gIC8vIGRvbid0IG5lZWQgdG8gcHJlZml4IHRoZSBwYXRoLlxuICBpZiAoIWlnbm9yZVByZWZpeCkge1xuICAgIGlmIChwYXRoSGFzUHJlZml4KGxvd2VyLCAnL2FwaScpKSByZXR1cm4gcGF0aFxuICAgIGlmIChwYXRoSGFzUHJlZml4KGxvd2VyLCBgLyR7bG9jYWxlLnRvTG93ZXJDYXNlKCl9YCkpIHJldHVybiBwYXRoXG4gIH1cblxuICAvLyBBZGQgdGhlIGxvY2FsZSBwcmVmaXggdG8gdGhlIHBhdGguXG4gIHJldHVybiBhZGRQYXRoUHJlZml4KHBhdGgsIGAvJHtsb2NhbGV9YClcbn1cbiJdLCJuYW1lcyI6WyJhZGRMb2NhbGUiLCJwYXRoIiwibG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsImlnbm9yZVByZWZpeCIsImxvd2VyIiwidG9Mb3dlckNhc2UiLCJwYXRoSGFzUHJlZml4IiwiYWRkUGF0aFByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcYWRkLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBBZGRzIHRoZSBwcm92aWRlZCBwcmVmaXggdG8gdGhlIGdpdmVuIHBhdGguIEl0IGZpcnN0IGVuc3VyZXMgdGhhdCB0aGUgcGF0aFxuICogaXMgaW5kZWVkIHN0YXJ0aW5nIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3ByZWZpeH0ke3BhdGhuYW1lfSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU9nQkE7OztlQUFBQTs7O3VDQVBVO0FBT25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVHLFdBQVdGLFNBQVNHLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xcYWRkLXBhdGgtc3VmZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBTaW1pbGFybHkgdG8gYGFkZFBhdGhQcmVmaXhgLCB0aGlzIGZ1bmN0aW9uIGFkZHMgYSBzdWZmaXggYXQgdGhlIGVuZCBvbiB0aGVcbiAqIHByb3ZpZGVkIHBhdGguIEl0IGFsc28gd29ya3Mgb25seSBmb3IgcGF0aHMgZW5zdXJpbmcgdGhlIGFyZ3VtZW50IHN0YXJ0c1xuICogd2l0aCBhIHNsYXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUGF0aFN1ZmZpeChwYXRoOiBzdHJpbmcsIHN1ZmZpeD86IHN0cmluZykge1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFzdWZmaXgpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gYCR7cGF0aG5hbWV9JHtzdWZmaXh9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbImFkZFBhdGhTdWZmaXgiLCJwYXRoIiwic3VmZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7OzswREFXZ0JBOzs7ZUFBQUE7OztpREFWb0I7MkNBQ047MkNBQ0E7dUNBQ0o7QUFPbkIsU0FBU0EsdUJBQXVCQyxJQUFrQjtJQUN2RCxJQUFJQyxXQUFXQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNiRixLQUFLQyxRQUFRLEVBQ2JELEtBQUtHLE1BQU0sRUFDWEgsS0FBS0ksT0FBTyxHQUFHQyxZQUFZTCxLQUFLTSxhQUFhLEVBQzdDTixLQUFLTyxZQUFZO0lBR25CLElBQUlQLEtBQUtJLE9BQU8sSUFBSSxDQUFDSixLQUFLUSxhQUFhLEVBQUU7UUFDdkNQLFdBQVdRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0lBQ2pDO0lBRUEsSUFBSUQsS0FBS0ksT0FBTyxFQUFFO1FBQ2hCSCxXQUFXUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUNUQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVixVQUFXLGlCQUFjRCxLQUFLSSxPQUFPLEdBQ25ESixLQUFLQyxRQUFRLEtBQUssTUFBTSxlQUFlO0lBRTNDO0lBRUFBLFdBQVdVLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVVELEtBQUtZLFFBQVE7SUFDaEQsT0FBTyxDQUFDWixLQUFLSSxPQUFPLElBQUlKLEtBQUtRLGFBQWEsR0FDdEMsQ0FBQ1AsU0FBU1ksUUFBUSxDQUFDLE9BQ2pCSCxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVCxVQUFVLE9BQ3hCQSxXQUNGUSxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUjtBQUMxQiIsInNvdXJjZXMiOlsiRTpcXHNyY1xcc2hhcmVkXFxsaWJcXHJvdXRlclxcdXRpbHNcXGZvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOZXh0UGF0aG5hbWVJbmZvIH0gZnJvbSAnLi9nZXQtbmV4dC1wYXRobmFtZS1pbmZvJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4vYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgYWRkUGF0aFN1ZmZpeCB9IGZyb20gJy4vYWRkLXBhdGgtc3VmZml4J1xuaW1wb3J0IHsgYWRkTG9jYWxlIH0gZnJvbSAnLi9hZGQtbG9jYWxlJ1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRJbmZvIGV4dGVuZHMgTmV4dFBhdGhuYW1lSW5mbyB7XG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgaWdub3JlUHJlZml4PzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyhpbmZvOiBFeHRlbmRlZEluZm8pIHtcbiAgbGV0IHBhdGhuYW1lID0gYWRkTG9jYWxlKFxuICAgIGluZm8ucGF0aG5hbWUsXG4gICAgaW5mby5sb2NhbGUsXG4gICAgaW5mby5idWlsZElkID8gdW5kZWZpbmVkIDogaW5mby5kZWZhdWx0TG9jYWxlLFxuICAgIGluZm8uaWdub3JlUHJlZml4XG4gIClcblxuICBpZiAoaW5mby5idWlsZElkIHx8ICFpbmZvLnRyYWlsaW5nU2xhc2gpIHtcbiAgICBwYXRobmFtZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG4gIH1cblxuICBpZiAoaW5mby5idWlsZElkKSB7XG4gICAgcGF0aG5hbWUgPSBhZGRQYXRoU3VmZml4KFxuICAgICAgYWRkUGF0aFByZWZpeChwYXRobmFtZSwgYC9fbmV4dC9kYXRhLyR7aW5mby5idWlsZElkfWApLFxuICAgICAgaW5mby5wYXRobmFtZSA9PT0gJy8nID8gJ2luZGV4Lmpzb24nIDogJy5qc29uJ1xuICAgIClcbiAgfVxuXG4gIHBhdGhuYW1lID0gYWRkUGF0aFByZWZpeChwYXRobmFtZSwgaW5mby5iYXNlUGF0aClcbiAgcmV0dXJuICFpbmZvLmJ1aWxkSWQgJiYgaW5mby50cmFpbGluZ1NsYXNoXG4gICAgPyAhcGF0aG5hbWUuZW5kc1dpdGgoJy8nKVxuICAgICAgPyBhZGRQYXRoU3VmZml4KHBhdGhuYW1lLCAnLycpXG4gICAgICA6IHBhdGhuYW1lXG4gICAgOiByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdE5leHRQYXRobmFtZUluZm8iLCJpbmZvIiwicGF0aG5hbWUiLCJhZGRMb2NhbGUiLCJsb2NhbGUiLCJidWlsZElkIiwidW5kZWZpbmVkIiwiZGVmYXVsdExvY2FsZSIsImlnbm9yZVByZWZpeCIsInRyYWlsaW5nU2xhc2giLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiYWRkUGF0aFN1ZmZpeCIsImFkZFBhdGhQcmVmaXgiLCJiYXNlUGF0aCIsImVuZHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFvRGdCQTs7O2VBQUFBOzs7aURBcERvQjs4Q0FDSDsyQ0FDSDtBQWtEdkIsU0FBU0Esb0JBQ2RDLFFBQWdCLEVBQ2hCQyxPQUFnQjtRQUUwQkE7SUFBMUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsYUFBYSxFQUFFLEdBQUdILENBQUFBLHNCQUFBQSxRQUFRSSxVQUFBQSxLQUFVLE9BQWxCSixzQkFBc0IsQ0FBQztJQUNqRSxNQUFNSyxPQUF5QjtRQUM3Qk47UUFDQUksZUFBZUosYUFBYSxNQUFNQSxTQUFTTyxRQUFRLENBQUMsT0FBT0g7SUFDN0Q7SUFFQSxJQUFJRixZQUFZTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixLQUFLTixRQUFRLEVBQUVFLFdBQVc7UUFDdERJLEtBQUtOLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQkgsS0FBS04sUUFBUSxFQUFFRTtRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNsQjtJQUNBLElBQUlRLHVCQUF1QkosS0FBS04sUUFBUTtJQUV4QyxJQUNFTSxLQUFLTixRQUFRLENBQUNXLFVBQVUsQ0FBQyxtQkFDekJMLEtBQUtOLFFBQVEsQ0FBQ08sUUFBUSxDQUFDLFVBQ3ZCO1FBQ0EsTUFBTUssUUFBUU4sS0FBS04sUUFBUSxDQUN4QmEsT0FBTyxDQUFDLG9CQUFvQixJQUM1QkEsT0FBTyxDQUFDLFdBQVcsSUFDbkJDLEtBQUssQ0FBQztRQUVULE1BQU1DLFVBQVVILEtBQUssQ0FBQyxFQUFFO1FBQ3hCTixLQUFLUyxPQUFPLEdBQUdBO1FBQ2ZMLHVCQUNFRSxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQVcsTUFBR0EsTUFBTUksS0FBSyxDQUFDLEdBQUdDLElBQUksQ0FBQyxPQUFTO1FBRTFELHNEQUFzRDtRQUN0RCxrREFBa0Q7UUFDbEQsSUFBSWhCLFFBQVFpQixTQUFTLEtBQUssTUFBTTtZQUM5QlosS0FBS04sUUFBUSxHQUFHVTtRQUNsQjtJQUNGO0lBRUEsNEVBQTRFO0lBQzVFLHlCQUF5QjtJQUN6QixJQUFJUCxNQUFNO1FBQ1IsSUFBSWdCLFNBQVNsQixRQUFRbUIsWUFBWSxHQUM3Qm5CLFFBQVFtQixZQUFZLENBQUNDLE9BQU8sQ0FBQ2YsS0FBS04sUUFBUSxJQUMxQ3NCLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixLQUFLTixRQUFRLEVBQUVHLEtBQUtvQixPQUFPO1FBRW5EakIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNuQk47UUFBaEJiLEtBQUtOLFFBQVEsR0FBR21CLENBQUFBLG1CQUFBQSxPQUFPbkIsUUFBQUEsS0FBUSxPQUFmbUIsbUJBQW1CYixLQUFLTixRQUFRO1FBRWhELElBQUksQ0FBQ21CLE9BQU9NLGNBQWMsSUFBSW5CLEtBQUtTLE9BQU8sRUFBRTtZQUMxQ0ksU0FBU2xCLFFBQVFtQixZQUFZLEdBQ3pCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFDN0JZLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JaLHNCQUFzQlAsS0FBS29CLE9BQU87WUFFMUQsSUFBSUosT0FBT00sY0FBYyxFQUFFO2dCQUN6Qm5CLEtBQUtrQixNQUFNLEdBQUdMLE9BQU9NLGNBQWM7WUFDckM7UUFDRjtJQUNGO0lBQ0EsT0FBT25CO0FBQ1QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxnZXQtbmV4dC1wYXRobmFtZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZUxvY2FsZVBhdGggfSBmcm9tICcuLi8uLi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aCdcbmltcG9ydCB7IHJlbW92ZVBhdGhQcmVmaXggfSBmcm9tICcuL3JlbW92ZS1wYXRoLXByZWZpeCdcbmltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcbmltcG9ydCB0eXBlIHsgSTE4TlByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2xpYi9pMThuLXByb3ZpZGVyJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYXRobmFtZUluZm8ge1xuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCBpbiBjYXNlIHRoZSBwYXRobmFtZSBpbmNsdWRlZCBpdC5cbiAgICovXG4gIGJhc2VQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgYnVpbGRJZCBmb3Igd2hlbiB0aGUgcGFyc2VkIFVSTCBpcyBhIGRhdGEgVVJMLiBQYXJzaW5nIGl0IGNhbiBiZVxuICAgKiBkaXNhYmxlZCB3aXRoIHRoZSBgcGFyc2VEYXRhYCBvcHRpb24uXG4gICAqL1xuICBidWlsZElkPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJZiB0aGVyZSB3YXMgYSBsb2NhbGUgaW4gdGhlIHBhdGhuYW1lLCB0aGlzIHdpbGwgaG9sZCBpdHMgdmFsdWUuXG4gICAqL1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBwcm9jZXNzZWQgcGF0aG5hbWUgd2l0aG91dCBhIGJhc2UgcGF0aCwgbG9jYWxlLCBvciBkYXRhIFVSTCBlbGVtZW50c1xuICAgKiB3aGVuIHBhcnNpbmcgaXQgaXMgZW5hYmxlZC5cbiAgICovXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIEEgYm9vbGVhbiB0ZWxsaW5nIGlmIHRoZSBwYXRobmFtZSBoYWQgYSB0cmFpbGluZ1NsYXNoLiBUaGlzIGNhbiBiZSBvbmx5XG4gICAqIHRydWUgaWYgdHJhaWxpbmdTbGFzaCBpcyBlbmFibGVkLlxuICAgKi9cbiAgdHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICAvKipcbiAgICogV2hlbiBwYXNzZWQgdG8gdHJ1ZSwgdGhpcyBmdW5jdGlvbiB3aWxsIGFsc28gcGFyc2UgTmV4dGpzIGRhdGEgVVJMcy5cbiAgICovXG4gIHBhcnNlRGF0YT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEEgcGFydGlhbCBvZiB0aGUgTmV4dC5qcyBjb25maWd1cmF0aW9uIHRvIHBhcnNlIHRoZSBVUkwuXG4gICAqL1xuICBuZXh0Q29uZmlnPzoge1xuICAgIGJhc2VQYXRoPzogc3RyaW5nXG4gICAgaTE4bj86IHsgbG9jYWxlcz86IHN0cmluZ1tdIH0gfCBudWxsXG4gICAgdHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgdGhpcyBub3JtYWxpemVyIHdpbGwgYmUgdXNlZCB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkIG9mXG4gICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBkZXRlY3Rpb24uXG4gICAqL1xuICBpMThuUHJvdmlkZXI/OiBJMThOUHJvdmlkZXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRQYXRobmFtZUluZm8oXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE9wdGlvbnNcbik6IE5leHRQYXRobmFtZUluZm8ge1xuICBjb25zdCB7IGJhc2VQYXRoLCBpMThuLCB0cmFpbGluZ1NsYXNoIH0gPSBvcHRpb25zLm5leHRDb25maWcgPz8ge31cbiAgY29uc3QgaW5mbzogTmV4dFBhdGhuYW1lSW5mbyA9IHtcbiAgICBwYXRobmFtZSxcbiAgICB0cmFpbGluZ1NsYXNoOiBwYXRobmFtZSAhPT0gJy8nID8gcGF0aG5hbWUuZW5kc1dpdGgoJy8nKSA6IHRyYWlsaW5nU2xhc2gsXG4gIH1cblxuICBpZiAoYmFzZVBhdGggJiYgcGF0aEhhc1ByZWZpeChpbmZvLnBhdGhuYW1lLCBiYXNlUGF0aCkpIHtcbiAgICBpbmZvLnBhdGhuYW1lID0gcmVtb3ZlUGF0aFByZWZpeChpbmZvLnBhdGhuYW1lLCBiYXNlUGF0aClcbiAgICBpbmZvLmJhc2VQYXRoID0gYmFzZVBhdGhcbiAgfVxuICBsZXQgcGF0aG5hbWVOb0RhdGFQcmVmaXggPSBpbmZvLnBhdGhuYW1lXG5cbiAgaWYgKFxuICAgIGluZm8ucGF0aG5hbWUuc3RhcnRzV2l0aCgnL19uZXh0L2RhdGEvJykgJiZcbiAgICBpbmZvLnBhdGhuYW1lLmVuZHNXaXRoKCcuanNvbicpXG4gICkge1xuICAgIGNvbnN0IHBhdGhzID0gaW5mby5wYXRobmFtZVxuICAgICAgLnJlcGxhY2UoL15cXC9fbmV4dFxcL2RhdGFcXC8vLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXC5qc29uJC8sICcnKVxuICAgICAgLnNwbGl0KCcvJylcblxuICAgIGNvbnN0IGJ1aWxkSWQgPSBwYXRoc1swXVxuICAgIGluZm8uYnVpbGRJZCA9IGJ1aWxkSWRcbiAgICBwYXRobmFtZU5vRGF0YVByZWZpeCA9XG4gICAgICBwYXRoc1sxXSAhPT0gJ2luZGV4JyA/IGAvJHtwYXRocy5zbGljZSgxKS5qb2luKCcvJyl9YCA6ICcvJ1xuXG4gICAgLy8gdXBkYXRlIHBhdGhuYW1lIHdpdGggbm9ybWFsaXplZCBpZiBlbmFibGVkIGFsdGhvdWdoXG4gICAgLy8gd2UgdXNlIG5vcm1hbGl6ZWQgdG8gcG9wdWxhdGUgbG9jYWxlIGluZm8gc3RpbGxcbiAgICBpZiAob3B0aW9ucy5wYXJzZURhdGEgPT09IHRydWUpIHtcbiAgICAgIGluZm8ucGF0aG5hbWUgPSBwYXRobmFtZU5vRGF0YVByZWZpeFxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHByb3ZpZGVkLCB1c2UgdGhlIGxvY2FsZSByb3V0ZSBub3JtYWxpemVyIHRvIGRldGVjdCB0aGUgbG9jYWxlIGluc3RlYWRcbiAgLy8gb2YgdGhlIGZ1bmN0aW9uIGJlbG93LlxuICBpZiAoaTE4bikge1xuICAgIGxldCByZXN1bHQgPSBvcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKGluZm8ucGF0aG5hbWUpXG4gICAgICA6IG5vcm1hbGl6ZUxvY2FsZVBhdGgoaW5mby5wYXRobmFtZSwgaTE4bi5sb2NhbGVzKVxuXG4gICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICBpbmZvLnBhdGhuYW1lID0gcmVzdWx0LnBhdGhuYW1lID8/IGluZm8ucGF0aG5hbWVcblxuICAgIGlmICghcmVzdWx0LmRldGVjdGVkTG9jYWxlICYmIGluZm8uYnVpbGRJZCkge1xuICAgICAgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgICAgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKHBhdGhuYW1lTm9EYXRhUHJlZml4KVxuICAgICAgICA6IG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWVOb0RhdGFQcmVmaXgsIGkxOG4ubG9jYWxlcylcblxuICAgICAgaWYgKHJlc3VsdC5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgICBpbmZvLmxvY2FsZSA9IHJlc3VsdC5kZXRlY3RlZExvY2FsZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gaW5mb1xufVxuIl0sIm5hbWVzIjpbImdldE5leHRQYXRobmFtZUluZm8iLCJwYXRobmFtZSIsIm9wdGlvbnMiLCJiYXNlUGF0aCIsImkxOG4iLCJ0cmFpbGluZ1NsYXNoIiwibmV4dENvbmZpZyIsImluZm8iLCJlbmRzV2l0aCIsInBhdGhIYXNQcmVmaXgiLCJyZW1vdmVQYXRoUHJlZml4IiwicGF0aG5hbWVOb0RhdGFQcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aHMiLCJyZXBsYWNlIiwic3BsaXQiLCJidWlsZElkIiwic2xpY2UiLCJqb2luIiwicGFyc2VEYXRhIiwicmVzdWx0IiwiaTE4blByb3ZpZGVyIiwiYW5hbHl6ZSIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJsb2NhbGVzIiwibG9jYWxlIiwiZGV0ZWN0ZWRMb2NhbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxwYXJzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gYSBwYXRoIHRoaXMgZnVuY3Rpb24gd2lsbCBmaW5kIHRoZSBwYXRobmFtZSwgcXVlcnkgYW5kIGhhc2ggYW5kIHJldHVyblxuICogdGhlbS4gVGhpcyBpcyB1c2VmdWwgdG8gcGFyc2UgZnVsbCBwYXRocyBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gcGFyc2UgZS5nLiAvZm9vL2Jhcj9pZD0xI2hhc2hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJylcbiAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpXG4gIGNvbnN0IGhhc1F1ZXJ5ID0gcXVlcnlJbmRleCA+IC0xICYmIChoYXNoSW5kZXggPCAwIHx8IHF1ZXJ5SW5kZXggPCBoYXNoSW5kZXgpXG5cbiAgaWYgKGhhc1F1ZXJ5IHx8IGhhc2hJbmRleCA+IC0xKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGhuYW1lOiBwYXRoLnN1YnN0cmluZygwLCBoYXNRdWVyeSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpLFxuICAgICAgcXVlcnk6IGhhc1F1ZXJ5XG4gICAgICAgID8gcGF0aC5zdWJzdHJpbmcocXVlcnlJbmRleCwgaGFzaEluZGV4ID4gLTEgPyBoYXNoSW5kZXggOiB1bmRlZmluZWQpXG4gICAgICAgIDogJycsXG4gICAgICBoYXNoOiBoYXNoSW5kZXggPiAtMSA/IHBhdGguc2xpY2UoaGFzaEluZGV4KSA6ICcnLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHBhdGhuYW1lOiBwYXRoLCBxdWVyeTogJycsIGhhc2g6ICcnIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVBhdGgiLCJwYXRoIiwiaGFzaEluZGV4IiwiaW5kZXhPZiIsInF1ZXJ5SW5kZXgiLCJoYXNRdWVyeSIsInBhdGhuYW1lIiwic3Vic3RyaW5nIiwicXVlcnkiLCJ1bmRlZmluZWQiLCJoYXNoIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxwYXRoLWhhcy1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIHBhdGggc3RhcnRzIHdpdGggYSBnaXZlbiBwcmVmaXguIEl0IGVuc3VyZXMgaXQgbWF0Y2hlc1xuICogZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnMuIGUuZy4gcHJlZml4IC9kb2NzIHNob3VsZCByZXBsYWNlXG4gKiBmb3IgL2RvY3MsIC9kb2NzLywgL2RvY3MvYSBidXQgbm90IC9kb2Nzc3NcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHBhcmFtIHByZWZpeCBUaGUgcHJlZml4IHRvIGNoZWNrIGFnYWluc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRoSGFzUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBwYXRobmFtZSA9PT0gcHJlZml4IHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocHJlZml4ICsgJy8nKVxufVxuIl0sIm5hbWVzIjpbInBhdGhIYXNQcmVmaXgiLCJwYXRoIiwicHJlZml4IiwicGF0aG5hbWUiLCJwYXJzZVBhdGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQVVnQkE7OztlQUFBQTs7OzJDQVZjO0FBVXZCLFNBQVNBLGlCQUFpQkMsSUFBWSxFQUFFQyxNQUFjO0lBQzNELHlFQUF5RTtJQUN6RSwwRUFBMEU7SUFDMUUsa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0YsTUFBTUMsU0FBUztRQUNoQyxPQUFPRDtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLE1BQU1HLGdCQUFnQkgsS0FBS0ksS0FBSyxDQUFDSCxPQUFPSSxNQUFNO0lBRTlDLDJFQUEyRTtJQUMzRSxJQUFJRixjQUFjRyxVQUFVLENBQUMsTUFBTTtRQUNqQyxPQUFPSDtJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFRLE1BQUdBO0FBQ2IiLCJzb3VyY2VzIjpbIkU6XFxzcmNcXHNoYXJlZFxcbGliXFxyb3V0ZXJcXHV0aWxzXFxyZW1vdmUtcGF0aC1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIEdpdmVuIGEgcGF0aCBhbmQgYSBwcmVmaXggaXQgd2lsbCByZW1vdmUgdGhlIHByZWZpeCB3aGVuIGl0IGV4aXN0cyBpbiB0aGVcbiAqIGdpdmVuIHBhdGguIEl0IGVuc3VyZXMgaXQgbWF0Y2hlcyBleGFjdGx5IHdpdGhvdXQgY29udGFpbmluZyBleHRyYSBjaGFyc1xuICogYW5kIGlmIHRoZSBwcmVmaXggaXMgbm90IHRoZXJlIGl0IHdpbGwgYmUgbm9vcC5cbiAqXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byByZW1vdmUgdGhlIHByZWZpeCBmcm9tLlxuICogQHBhcmFtIHByZWZpeCBUaGUgcHJlZml4IHRvIGJlIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBJZiB0aGUgcGF0aCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIHByZWZpeCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLiBUaGlzXG4gIC8vIHByb3RlY3RzIHVzIGZyb20gc2l0dWF0aW9ucyB3aGVyZSB0aGUgcHJlZml4IGlzIGEgc3Vic3RyaW5nIG9mIHRoZSBwYXRoXG4gIC8vIHByZWZpeCBzdWNoIGFzOlxuICAvL1xuICAvLyBGb3IgcHJlZml4OiAvYmxvZ1xuICAvL1xuICAvLyAgIC9ibG9nIC0+IHRydWVcbiAgLy8gICAvYmxvZy8gLT4gdHJ1ZVxuICAvLyAgIC9ibG9nLzEgLT4gdHJ1ZVxuICAvLyAgIC9ibG9nZ2luZyAtPiBmYWxzZVxuICAvLyAgIC9ibG9nZ2luZy8gLT4gZmFsc2VcbiAgLy8gICAvYmxvZ2dpbmcvMSAtPiBmYWxzZVxuICBpZiAoIXBhdGhIYXNQcmVmaXgocGF0aCwgcHJlZml4KSkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHByZWZpeCBmcm9tIHRoZSBwYXRoIHZpYSBzbGljaW5nLlxuICBjb25zdCB3aXRob3V0UHJlZml4ID0gcGF0aC5zbGljZShwcmVmaXgubGVuZ3RoKVxuXG4gIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBzdGFydHMgd2l0aCBhIGAvYCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLlxuICBpZiAod2l0aG91dFByZWZpeC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gd2l0aG91dFByZWZpeFxuICB9XG5cbiAgLy8gSWYgdGhlIHBhdGggd2l0aG91dCB0aGUgcHJlZml4IGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIGAvYCB3ZSBuZWVkIHRvIGFkZCBpdFxuICAvLyBiYWNrIHRvIHRoZSBwYXRoIHRvIG1ha2Ugc3VyZSBpdCdzIGEgdmFsaWQgcGF0aC5cbiAgcmV0dXJuIGAvJHt3aXRob3V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhIYXNQcmVmaXgiLCJ3aXRob3V0UHJlZml4Iiwic2xpY2UiLCJsZW5ndGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxccm91dGVyXFx1dGlsc1xccmVtb3ZlLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgc2xhc2ggZm9yIGEgZ2l2ZW4gcm91dGUgb3IgcGFnZSBwYXRoLiBQcmVzZXJ2ZXMgdGhlXG4gKiByb290IHBhZ2UuIEV4YW1wbGVzOlxuICogICAtIGAvZm9vL2Jhci9gIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2Zvby9iYXJgIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2AgLT4gYC9gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHJvdXRlLnJlcGxhY2UoL1xcLyQvLCAnJykgfHwgJy8nXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInJvdXRlIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyJFOlxcc3JjXFxzaGFyZWRcXGxpYlxcc2VnbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzR3JvdXBTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICAvLyBVc2UgYXJyYXlbMF0gZm9yIHBlcmZvcm1hbnQgcHVycG9zZVxuICByZXR1cm4gc2VnbWVudFswXSA9PT0gJygnICYmIHNlZ21lbnQuZW5kc1dpdGgoJyknKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQYXJhbGxlbFJvdXRlU2VnbWVudChzZWdtZW50OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHNlZ21lbnQuc3RhcnRzV2l0aCgnQCcpICYmIHNlZ21lbnQgIT09ICdAY2hpbGRyZW4nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KFxuICBzZWdtZW50OiBTZWdtZW50LFxuICBzZWFyY2hQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkPlxuKSB7XG4gIGNvbnN0IGlzUGFnZVNlZ21lbnQgPSBzZWdtZW50LmluY2x1ZGVzKFBBR0VfU0VHTUVOVF9LRVkpXG5cbiAgaWYgKGlzUGFnZVNlZ21lbnQpIHtcbiAgICBjb25zdCBzdHJpbmdpZmllZFF1ZXJ5ID0gSlNPTi5zdHJpbmdpZnkoc2VhcmNoUGFyYW1zKVxuICAgIHJldHVybiBzdHJpbmdpZmllZFF1ZXJ5ICE9PSAne30nXG4gICAgICA/IFBBR0VfU0VHTUVOVF9LRVkgKyAnPycgKyBzdHJpbmdpZmllZFF1ZXJ5XG4gICAgICA6IFBBR0VfU0VHTUVOVF9LRVlcbiAgfVxuXG4gIHJldHVybiBzZWdtZW50XG59XG5cbmV4cG9ydCBjb25zdCBQQUdFX1NFR01FTlRfS0VZID0gJ19fUEFHRV9fJ1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VHTUVOVF9LRVkgPSAnX19ERUZBVUxUX18nXG4iXSwibmFtZXMiOlsiREVGQVVMVF9TRUdNRU5UX0tFWSIsIlBBR0VfU0VHTUVOVF9LRVkiLCJhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50IiwiaXNHcm91cFNlZ21lbnQiLCJpc1BhcmFsbGVsUm91dGVTZWdtZW50Iiwic2VnbWVudCIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsInNlYXJjaFBhcmFtcyIsImlzUGFnZVNlZ21lbnQiLCJpbmNsdWRlcyIsInN0cmluZ2lmaWVkUXVlcnkiLCJKU09OIiwic3RyaW5naWZ5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment.js\n");
|
||
|
||
/***/ })
|
||
|
||
};
|
||
; |