/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["main"],{ /***/ "./node_modules/@swc/helpers/lib/_async_to_generator.js": /*!**************************************************************!*\ !*** ./node_modules/@swc/helpers/lib/_async_to_generator.js ***! \**************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _asyncToGenerator;\n }\n}));\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9fYXN5bmNfdG9fZ2VuZXJhdG9yLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9fYXN5bmNfdG9fZ2VuZXJhdG9yLmpzPzBlMzAiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHtcbiAgICB0cnkge1xuICAgICAgICB2YXIgaW5mbyA9IGdlbltrZXldKGFyZyk7XG4gICAgICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoaW5mby5kb25lKSB7XG4gICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgICB9XG59XG5mdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICAgICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgIH07XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/lib/_async_to_generator.js\n")); /***/ }), /***/ "./node_modules/@swc/helpers/lib/_extends.js": /*!***************************************************!*\ !*** ./node_modules/@swc/helpers/lib/_extends.js ***! \***************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _extends;\n }\n}));\nfunction extends_() {\n extends_ = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return extends_.apply(this, arguments);\n}\nfunction _extends() {\n return extends_.apply(this, arguments);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9fZXh0ZW5kcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQSx1QkFBdUIsc0JBQXNCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX2V4dGVuZHMuanM/Mzk4YSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9leHRlbmRzO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZXh0ZW5kc18oKSB7XG4gICAgZXh0ZW5kc18gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHRhcmdldCkge1xuICAgICAgICBmb3IodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IodmFyIGtleSBpbiBzb3VyY2Upe1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfTtcbiAgICByZXR1cm4gZXh0ZW5kc18uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICAgIHJldHVybiBleHRlbmRzXy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/lib/_extends.js\n")); /***/ }), /***/ "./node_modules/@swc/helpers/lib/_interop_require_default.js": /*!*******************************************************************!*\ !*** ./node_modules/@swc/helpers/lib/_interop_require_default.js ***! \*******************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _interopRequireDefault;\n }\n}));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qcz85YjdjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2ludGVyb3BSZXF1aXJlRGVmYXVsdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/lib/_interop_require_default.js\n")); /***/ }), /***/ "./node_modules/@swc/helpers/lib/_interop_require_wildcard.js": /*!********************************************************************!*\ !*** ./node_modules/@swc/helpers/lib/_interop_require_wildcard.js ***! \********************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _interopRequireWildcard;\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 _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(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 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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzPzA1MWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7fTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/lib/_interop_require_wildcard.js\n")); /***/ }), /***/ "./node_modules/@swc/helpers/lib/_object_without_properties_loose.js": /*!***************************************************************************!*\ !*** ./node_modules/@swc/helpers/lib/_object_without_properties_loose.js ***! \***************************************************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _objectWithoutPropertiesLoose;\n }\n}));\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2xpYi9fb2JqZWN0X3dpdGhvdXRfcHJvcGVydGllc19sb29zZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHVCQUF1QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9saWIvX29iamVjdF93aXRob3V0X3Byb3BlcnRpZXNfbG9vc2UuanM/NGNiOSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICAgIHZhciB0YXJnZXQgPSB7fTtcbiAgICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gICAgdmFyIGtleSwgaTtcbiAgICBmb3IoaSA9IDA7IGkgPCBzb3VyY2VLZXlzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAga2V5ID0gc291cmNlS2V5c1tpXTtcbiAgICAgICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/lib/_object_without_properties_loose.js\n")); /***/ }), /***/ "./node_modules/next/dist/build/polyfills/polyfill-module.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/build/polyfills/polyfill-module.js ***! \*******************************************************************/ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { eval(__webpack_require__.ts("\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(o){return r.resolve(t()).then(function(){return o})},function(o){return r.resolve(t()).then(function(){throw o})})}),Object.fromEntries||(Object.fromEntries=function(t){return Array.from(t).reduce(function(t,r){return t[r[0]]=r[1],t},{})});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9wb2x5ZmlsbC1tb2R1bGUuanMuanMiLCJtYXBwaW5ncyI6IkFBQUEsbVFBQW1RLCtCQUErQix1Q0FBdUMsc0JBQXNCLDREQUE0RCw2RUFBNkUsdUNBQXVDLDRCQUE0QixvRUFBb0UsOENBQThDLGdDQUFnQyw2QkFBNkIsc0NBQXNDLFNBQVMsRUFBRSxhQUFhLHNDQUFzQyxRQUFRLEVBQUUsRUFBRSxzREFBc0QsMENBQTBDLHNCQUFzQixHQUFHLEVBQUUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC9wb2x5ZmlsbHMvcG9seWZpbGwtbW9kdWxlLmpzPzY5YzgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ0cmltU3RhcnRcImluIFN0cmluZy5wcm90b3R5cGV8fChTdHJpbmcucHJvdG90eXBlLnRyaW1TdGFydD1TdHJpbmcucHJvdG90eXBlLnRyaW1MZWZ0KSxcInRyaW1FbmRcImluIFN0cmluZy5wcm90b3R5cGV8fChTdHJpbmcucHJvdG90eXBlLnRyaW1FbmQ9U3RyaW5nLnByb3RvdHlwZS50cmltUmlnaHQpLFwiZGVzY3JpcHRpb25cImluIFN5bWJvbC5wcm90b3R5cGV8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTeW1ib2wucHJvdG90eXBlLFwiZGVzY3JpcHRpb25cIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PS9cXCgoLiopXFwpLy5leGVjKHRoaXMudG9TdHJpbmcoKSk7cmV0dXJuIHQ/dFsxXTp2b2lkIDB9fSksQXJyYXkucHJvdG90eXBlLmZsYXR8fChBcnJheS5wcm90b3R5cGUuZmxhdD1mdW5jdGlvbih0LHIpe3JldHVybiByPXRoaXMuY29uY2F0LmFwcGx5KFtdLHRoaXMpLHQ+MSYmci5zb21lKEFycmF5LmlzQXJyYXkpP3IuZmxhdCh0LTEpOnJ9LEFycmF5LnByb3RvdHlwZS5mbGF0TWFwPWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMubWFwKHQscikuZmxhdCgpfSksUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseXx8KFByb21pc2UucHJvdG90eXBlLmZpbmFsbHk9ZnVuY3Rpb24odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdClyZXR1cm4gdGhpcy50aGVuKHQsdCk7dmFyIHI9dGhpcy5jb25zdHJ1Y3Rvcnx8UHJvbWlzZTtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiByLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG99KX0sZnVuY3Rpb24obyl7cmV0dXJuIHIucmVzb2x2ZSh0KCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBvfSl9KX0pLE9iamVjdC5mcm9tRW50cmllc3x8KE9iamVjdC5mcm9tRW50cmllcz1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuZnJvbSh0KS5yZWR1Y2UoZnVuY3Rpb24odCxyKXtyZXR1cm4gdFtyWzBdXT1yWzFdLHR9LHt9KX0pO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/polyfill-module.js\n")); /***/ }), /***/ "./node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js": /*!********************************************************************************!*\ !*** ./node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js ***! \********************************************************************************/ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){\"use strict\";var e={};!function(){e.n=function(t){var r=t&&t.__esModule?function(){return t[\"default\"]}:function(){return t};e.d(r,{a:r});return r}}();!function(){e.d=function(t,r){for(var n in r){if(e.o(r,n)&&!e.o(t,n)){Object.defineProperty(t,n,{enumerable:true,get:r[n]})}}}}();!function(){e.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}();!function(){e.r=function(e){if(typeof Symbol!==\"undefined\"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"})}Object.defineProperty(e,\"__esModule\",{value:true})}}();if(typeof e!==\"undefined\")e.ab=__dirname+\"/\";var t={};e.r(t);e.d(t,{ReactDevOverlay:function(){return Kt},getErrorByType:function(){return getErrorByType},getServerError:function(){return getServerError},onBeforeRefresh:function(){return onBeforeRefresh},onBuildError:function(){return onBuildError},onBuildOk:function(){return onBuildOk},onRefresh:function(){return onRefresh},register:function(){return register},unregister:function(){return unregister}});const r=\"build-ok\";const n=\"build-error\";const a=\"fast-refresh\";const o=\"before-fast-refresh\";const i=\"unhandled-error\";const l=\"unhandled-rejection\";let s=new Set;let u=[];function drain(){setTimeout((function(){while(Boolean(u.length)&&Boolean(s.size)){const e=u.shift();s.forEach((t=>t(e)))}}),1)}function emit(e){u.push(Object.freeze({...e}));drain()}function on(e){if(s.has(e)){return false}s.add(e);drain();return true}function off(e){if(s.has(e)){s.delete(e);return true}return false}var c=__webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");const d=/\\/_next(\\/static\\/.+)/g;function parseStack(e){const t=(0,c.parse)(e);return t.map((e=>{try{const t=new URL(e.file);const r=d.exec(t.pathname);if(r){const t=\"/home/ismail/Desktop/KitabCitab/kitabcitab-frontend/kitabcitab/.next\"?.replace(/\\\\/g,\"/\")?.replace(/\\/$/,\"\");if(t){e.file=\"file://\"+t.concat(r.pop())}}}catch{}return e}))}function getFilesystemFrame(e){const t={...e};if(typeof t.file===\"string\"){if(t.file.startsWith(\"/\")||/^[a-z]:\\\\/i.test(t.file)||t.file.startsWith(\"\\\\\\\\\")){t.file=`file://${t.file}`}}return t}const f=Symbol(\"NextjsError\");function getErrorSource(e){return e[f]||null}function decorateServerError(e,t){Object.defineProperty(e,f,{writable:false,enumerable:false,configurable:false,value:t})}function getServerError(e,t){let r;try{throw new Error(e.message)}catch(e){r=e}r.name=e.name;try{r.stack=`${r.toString()}\\n${(0,c.parse)(e.stack).map(getFilesystemFrame).map((e=>{let t=` at ${e.methodName}`;if(e.file){let r=e.file;if(e.lineNumber){r+=`:${e.lineNumber}`;if(e.column){r+=`:${e.column}`}}t+=` (${r})`}return t})).join(\"\\n\")}`}catch{r.stack=e.stack}decorateServerError(r,t);return r}function getOriginalStackFrame(e,t,r){async function _getOriginalStackFrame(){const n=new URLSearchParams;n.append(\"isServer\",String(t===\"server\"));n.append(\"isEdgeServer\",String(t===\"edge-server\"));n.append(\"errorMessage\",r);for(const t in e){n.append(t,(e[t]??\"\").toString())}const a=new AbortController;const o=setTimeout((()=>a.abort()),3e3);const i=await self.fetch(`${ false||\"\"}/__nextjs_original-stack-frame?${n.toString()}`,{signal:a.signal}).finally((()=>{clearTimeout(o)}));if(!i.ok||i.status===204){return Promise.reject(new Error(await i.text()))}const l=await i.json();return{error:false,reason:null,external:false,expanded:!Boolean((e.file?.includes(\"node_modules\")||l.originalStackFrame?.file?.includes(\"node_modules\"))??true),sourceStackFrame:e,originalStackFrame:l.originalStackFrame,originalCodeFrame:l.originalCodeFrame||null}}if(!(e.file?.startsWith(\"webpack-internal:\")||e.file?.startsWith(\"file:\"))){return Promise.resolve({error:false,reason:null,external:true,expanded:false,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null})}return _getOriginalStackFrame().catch((t=>({error:true,reason:t?.message??t?.toString()??\"Unknown Error\",external:false,expanded:false,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null})))}function getOriginalStackFrames(e,t,r){return Promise.all(e.map((e=>getOriginalStackFrame(e,t,r))))}function getFrameSource(e){let t=\"\";try{const r=new URL(e.file);if(typeof globalThis!==\"undefined\"&&globalThis.location?.origin!==r.origin){if(r.origin===\"null\"){t+=r.protocol}else{t+=r.origin}}t+=r.pathname;t+=\" \"}catch{t+=(e.file||\"(unknown)\")+\" \"}if(e.lineNumber!=null){if(e.column!=null){t+=`(${e.lineNumber}:${e.column}) `}else{t+=`(${e.lineNumber}) `}}return t.slice(0,-1)}async function getErrorByType(e){const{id:t,event:r}=e;switch(r.type){case i:case l:{return{id:t,runtime:true,error:r.reason,frames:await getOriginalStackFrames(r.frames,getErrorSource(r.reason),r.reason.toString())}}default:{break}}const n=r;throw new Error(\"type system invariant violation\")}var m=__webpack_require__(/*! react */ \"./node_modules/react/index.js\");var p=e.n(m);var b=__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");const g=function Portal({children:e,globalOverlay:t}){let r=m.useRef(null);let n=m.useRef(null);let a=m.useRef(null);let[,o]=m.useState();m.useLayoutEffect((()=>{const e=t?document:r.current.ownerDocument;n.current=e.createElement(\"nextjs-portal\");a.current=n.current.attachShadow({mode:\"open\"});e.body.appendChild(n.current);o({});return()=>{if(n.current&&n.current.ownerDocument){n.current.ownerDocument.body.removeChild(n.current)}}}),[t]);return a.current?(0,b.createPortal)(e,a.current):t?null:m.createElement(\"span\",{ref:r})};function useOnClickOutside(e,t){m.useEffect((()=>{if(e==null||t==null){return}const listener=r=>{if(!e||e.contains(r.target)){return}t(r)};const r=e.getRootNode();r.addEventListener(\"mousedown\",listener);r.addEventListener(\"touchstart\",listener);return function(){r.removeEventListener(\"mousedown\",listener);r.removeEventListener(\"touchstart\",listener)}}),[t,e])}const v=function Dialog({children:e,type:t,onClose:r,...n}){const[a,o]=m.useState(null);const i=m.useCallback((e=>{o(e)}),[]);useOnClickOutside(a,r);m.useEffect((()=>{if(a==null){return}const e=a.getRootNode();if(!(e instanceof ShadowRoot)){return}const t=e;function handler(e){const r=t.activeElement;if(e.key===\"Enter\"&&r instanceof HTMLElement&&r.getAttribute(\"role\")===\"link\"){e.preventDefault();e.stopPropagation();r.click()}}t.addEventListener(\"keydown\",handler);return()=>t.removeEventListener(\"keydown\",handler)}),[a]);return m.createElement(\"div\",{ref:i,\"data-nextjs-dialog\":true,tabIndex:-1,role:\"dialog\",\"aria-labelledby\":n[\"aria-labelledby\"],\"aria-describedby\":n[\"aria-describedby\"],\"aria-modal\":\"true\"},m.createElement(\"div\",{\"data-nextjs-dialog-banner\":true,className:`banner-${t}`}),e)};const h=function DialogBody({children:e,className:t}){return m.createElement(\"div\",{\"data-nextjs-dialog-body\":true,className:t},e)};const x=function DialogContent({children:e,className:t}){return m.createElement(\"div\",{\"data-nextjs-dialog-content\":true,className:t},e)};const y=function DialogHeader({children:e,className:t}){return m.createElement(\"div\",{\"data-nextjs-dialog-header\":true,className:t},e)};function noop(e,...t){const r=e.length-1;return e.slice(0,r).reduce(((e,r,n)=>e+r+t[n]),\"\")+e[r]}const E=noop`\n [data-nextjs-dialog] {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n outline: none;\n background: white;\n border-radius: var(--size-gap);\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\n rgba(0, 0, 0, 0.25);\n max-height: calc(100% - 56px);\n overflow-y: hidden;\n }\n\n @media (max-height: 812px) {\n [data-nextjs-dialog-overlay] {\n max-height: calc(100% - 15px);\n }\n }\n\n @media (min-width: 576px) {\n [data-nextjs-dialog] {\n max-width: 540px;\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\n }\n }\n\n @media (min-width: 768px) {\n [data-nextjs-dialog] {\n max-width: 720px;\n }\n }\n\n @media (min-width: 992px) {\n [data-nextjs-dialog] {\n max-width: 960px;\n }\n }\n\n [data-nextjs-dialog-banner] {\n position: relative;\n }\n [data-nextjs-dialog-banner].banner-warning {\n border-color: var(--color-ansi-yellow);\n }\n [data-nextjs-dialog-banner].banner-error {\n border-color: var(--color-ansi-red);\n }\n\n [data-nextjs-dialog-banner]::after {\n z-index: 2;\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n /* banner width: */\n border-top-width: var(--size-gap-half);\n border-bottom-width: 0;\n border-top-style: solid;\n border-bottom-style: solid;\n border-top-color: inherit;\n border-bottom-color: transparent;\n }\n\n [data-nextjs-dialog-content] {\n overflow-y: auto;\n border: none;\n margin: 0;\n /* calc(padding + banner width offset) */\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\n var(--size-gap-double);\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\n flex-shrink: 0;\n margin-bottom: var(--size-gap-double);\n }\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\n position: relative;\n flex: 1 1 auto;\n }\n`;var w=__webpack_require__(/*! next/dist/compiled/platform */ \"./node_modules/next/dist/compiled/platform/platform.js\");var k=e.n(w);var S=__webpack_require__(/*! next/dist/compiled/css.escape */ \"./node_modules/next/dist/compiled/css.escape/css.escape.js\");var T=e.n(S);function nodeArray(e){if(!e){return[]}if(Array.isArray(e)){return e}if(e.nodeType!==undefined){return[e]}if(typeof e===\"string\"){e=document.querySelectorAll(e)}if(e.length!==undefined){return[].slice.call(e,0)}throw new TypeError(\"unexpected input \"+String(e))}function contextToElement(e){var t=e.context,r=e.label,n=r===undefined?\"context-to-element\":r,a=e.resolveDocument,o=e.defaultToDocument;var i=nodeArray(t)[0];if(a&&i&&i.nodeType===Node.DOCUMENT_NODE){i=i.documentElement}if(!i&&o){return document.documentElement}if(!i){throw new TypeError(n+\" requires valid options.context\")}if(i.nodeType!==Node.ELEMENT_NODE&&i.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){throw new TypeError(n+\" requires options.context to be an Element\")}return i}function getShadowHost(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context;var r=contextToElement({label:\"get/shadow-host\",context:t});var n=null;while(r){n=r;r=r.parentNode}if(n.nodeType===n.DOCUMENT_FRAGMENT_NODE&&n.host){return n.host}return null}function getDocument(e){if(!e){return document}if(e.nodeType===Node.DOCUMENT_NODE){return e}return e.ownerDocument||document}function isActiveElement(e){var t=contextToElement({label:\"is/active-element\",resolveDocument:true,context:e});var r=getDocument(t);if(r.activeElement===t){return true}var n=getShadowHost({context:t});if(n&&n.shadowRoot.activeElement===t){return true}return false}function getParents(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context;var r=[];var n=contextToElement({label:\"get/parents\",context:t});while(n){r.push(n);n=n.parentNode;if(n&&n.nodeType!==Node.ELEMENT_NODE){n=null}}return r}var C=[\"matches\",\"webkitMatchesSelector\",\"mozMatchesSelector\",\"msMatchesSelector\"];var j=null;function findMethodName(e){C.some((function(t){if(!e[t]){return false}j=t;return true}))}function elementMatches(e,t){if(!j){findMethodName(e)}return e[j](t)}var A=JSON.parse(JSON.stringify(k()));var O=A.os.family||\"\";var _=O===\"Android\";var I=O.slice(0,7)===\"Windows\";var N=O===\"OS X\";var F=O===\"iOS\";var L=A.layout===\"Blink\";var D=A.layout===\"Gecko\";var M=A.layout===\"Trident\";var R=A.layout===\"EdgeHTML\";var z=A.layout===\"WebKit\";var B=parseFloat(A.version);var H=Math.floor(B);A.majorVersion=H;A.is={ANDROID:_,WINDOWS:I,OSX:N,IOS:F,BLINK:L,GECKO:D,TRIDENT:M,EDGE:R,WEBKIT:z,IE9:M&&H===9,IE10:M&&H===10,IE11:M&&H===11};function before(){var e={activeElement:document.activeElement,windowScrollTop:window.scrollTop,windowScrollLeft:window.scrollLeft,bodyScrollTop:document.body.scrollTop,bodyScrollLeft:document.body.scrollLeft};var t=document.createElement(\"iframe\");t.setAttribute(\"style\",\"position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;\");t.setAttribute(\"aria-live\",\"off\");t.setAttribute(\"aria-busy\",\"true\");t.setAttribute(\"aria-hidden\",\"true\");document.body.appendChild(t);var r=t.contentWindow;var n=r.document;n.open();n.close();var a=n.createElement(\"div\");n.body.appendChild(a);e.iframe=t;e.wrapper=a;e.window=r;e.document=n;return e}function test(e,t){e.wrapper.innerHTML=\"\";var r=typeof t.element===\"string\"?e.document.createElement(t.element):t.element(e.wrapper,e.document);var n=t.mutate&&t.mutate(r,e.wrapper,e.document);if(!n&&n!==false){n=r}!r.parentNode&&e.wrapper.appendChild(r);n&&n.focus&&n.focus();return t.validate?t.validate(r,n,e.document):e.document.activeElement===n}function after(e){if(e.activeElement===document.body){document.activeElement&&document.activeElement.blur&&document.activeElement.blur();if(A.is.IE10){document.body.focus()}}else{e.activeElement&&e.activeElement.focus&&e.activeElement.focus()}document.body.removeChild(e.iframe);window.scrollTop=e.windowScrollTop;window.scrollLeft=e.windowScrollLeft;document.body.scrollTop=e.bodyScrollTop;document.body.scrollLeft=e.bodyScrollLeft}function detectFocus(e){var t=before();var r={};Object.keys(e).map((function(n){r[n]=test(t,e[n])}));after(t);return r}var P=\"1.4.1\";function readLocalStorage(e){var t=void 0;try{t=window.localStorage&&window.localStorage.getItem(e);t=t?JSON.parse(t):{}}catch(e){t={}}return t}function writeLocalStorage(e,t){if(!document.hasFocus()){try{window.localStorage&&window.localStorage.removeItem(e)}catch(e){}return}try{window.localStorage&&window.localStorage.setItem(e,JSON.stringify(t))}catch(e){}}var q=typeof window!==\"undefined\"&&window.navigator.userAgent||\"\";var W=\"ally-supports-cache\";var V=readLocalStorage(W);if(V.userAgent!==q||V.version!==P){V={}}V.userAgent=q;V.version=P;var $={get:function get(){return V},set:function set(e){Object.keys(e).forEach((function(t){V[t]=e[t]}));V.time=(new Date).toISOString();writeLocalStorage(W,V)}};function cssShadowPiercingDeepCombinator(){var e=void 0;try{document.querySelector(\"html >>> :first-child\");e=\">>>\"}catch(t){try{document.querySelector(\"html /deep/ :first-child\");e=\"/deep/\"}catch(t){e=\"\"}}return e}var K=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";var Z={element:\"div\",mutate:function mutate(e){e.innerHTML=''+''+'\"\"';return e.querySelector(\"area\")}};var U={element:\"div\",mutate:function mutate(e){e.innerHTML=''+''+'\"\"';return false},validate:function validate(e,t,r){if(A.is.GECKO){return true}var n=e.querySelector(\"area\");n.focus();return r.activeElement===n}};var G={element:\"div\",mutate:function mutate(e){e.innerHTML=''+''+'\"\"';return e.querySelector(\"area\")},validate:function validate(e,t,r){if(A.is.GECKO){return true}return r.activeElement===t}};var X={name:\"can-focus-audio-without-controls\",element:\"audio\",mutate:function mutate(e){try{e.setAttribute(\"src\",K)}catch(e){}}};var J=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ\";var Q={element:\"div\",mutate:function mutate(e){e.innerHTML=''+'\"\"';return e.querySelector(\"area\")}};var Y={element:\"div\",mutate:function mutate(e){e.setAttribute(\"tabindex\",\"-1\");e.setAttribute(\"style\",\"display: -webkit-flex; display: -ms-flexbox; display: flex;\");e.innerHTML='hello';return e.querySelector(\"span\")}};var ee={element:\"fieldset\",mutate:function mutate(e){e.setAttribute(\"tabindex\",0);e.setAttribute(\"disabled\",\"disabled\")}};var te={element:\"fieldset\",mutate:function mutate(e){e.innerHTML=\"legend

content

\"}};var re={element:\"span\",mutate:function mutate(e){e.setAttribute(\"style\",\"display: -webkit-flex; display: -ms-flexbox; display: flex;\");e.innerHTML='hello'}};var ne={element:\"form\",mutate:function mutate(e){e.setAttribute(\"tabindex\",0);e.setAttribute(\"disabled\",\"disabled\")}};var ae={element:\"a\",mutate:function mutate(e){e.href=\"#void\";e.innerHTML='\"\"';return e.querySelector(\"img\")}};var oe={element:\"div\",mutate:function mutate(e){e.innerHTML=''+'\"\"';return e.querySelector(\"img\")}};var ie={element:function element(e,t){var r=t.createElement(\"iframe\");e.appendChild(r);var n=r.contentWindow.document;n.open();n.close();return r},mutate:function mutate(e){e.style.visibility=\"hidden\";var t=e.contentWindow.document;var r=t.createElement(\"input\");t.body.appendChild(r);return r},validate:function validate(e){var t=e.contentWindow.document;var r=t.querySelector(\"input\");return t.activeElement===r}};var le=!A.is.WEBKIT;function focusInZeroDimensionObject(){return le}var se={element:\"div\",mutate:function mutate(e){e.setAttribute(\"tabindex\",\"invalid-value\")}};var ue={element:\"label\",mutate:function mutate(e){e.setAttribute(\"tabindex\",\"-1\")},validate:function validate(e,t,r){var n=e.offsetHeight;e.focus();return r.activeElement===e}};var ce=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb\"+\"G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ\"+\"zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg==\";var de={element:\"object\",mutate:function mutate(e){e.setAttribute(\"type\",\"image/svg+xml\");e.setAttribute(\"data\",ce);e.setAttribute(\"width\",\"200\");e.setAttribute(\"height\",\"50\");e.style.visibility=\"hidden\"}};var fe={name:\"can-focus-object-svg\",element:\"object\",mutate:function mutate(e){e.setAttribute(\"type\",\"image/svg+xml\");e.setAttribute(\"data\",ce);e.setAttribute(\"width\",\"200\");e.setAttribute(\"height\",\"50\")},validate:function validate(e,t,r){if(A.is.GECKO){return true}return r.activeElement===e}};var me=!A.is.IE9;function focusObjectSwf(){return me}var pe={element:\"div\",mutate:function mutate(e){e.innerHTML=''+'\"\"';return e.querySelector(\"img\")},validate:function validate(e,t,r){var n=e.querySelector(\"area\");return r.activeElement===n}};var be={element:\"fieldset\",mutate:function mutate(e){e.innerHTML='legend';return false},validate:function validate(e,t,r){var n=e.querySelector('input[tabindex=\"-1\"]');var a=e.querySelector('input[tabindex=\"0\"]');e.focus();e.querySelector(\"legend\").focus();return r.activeElement===n&&\"focusable\"||r.activeElement===a&&\"tabbable\"||\"\"}};var ge={element:\"div\",mutate:function mutate(e){e.setAttribute(\"style\",\"width: 100px; height: 50px; overflow: auto;\");e.innerHTML='
scrollable content
';return e.querySelector(\"div\")}};var ve={element:\"div\",mutate:function mutate(e){e.setAttribute(\"style\",\"width: 100px; height: 50px;\");e.innerHTML='
scrollable content
'}};var he={element:\"div\",mutate:function mutate(e){e.setAttribute(\"style\",\"width: 100px; height: 50px; overflow: auto;\");e.innerHTML='
scrollable content
'}};var xe={element:\"details\",mutate:function mutate(e){e.innerHTML=\"foo

content

\";return e.firstElementChild}};function makeFocusableForeignObject(){var e=document.createElementNS(\"http://www.w3.org/2000/svg\",\"foreignObject\");e.width.baseVal.value=30;e.height.baseVal.value=30;e.appendChild(document.createElement(\"input\"));e.lastChild.type=\"text\";return e}function focusSvgForeignObjectHack(e){var t=e.ownerSVGElement||e.nodeName.toLowerCase()===\"svg\";if(!t){return false}var r=makeFocusableForeignObject();e.appendChild(r);var n=r.querySelector(\"input\");n.focus();n.disabled=true;e.removeChild(r);return true}function generate(e){return''+e+\"\"}function maintain_tab_focus_focus(e){if(e.focus){return}try{HTMLElement.prototype.focus.call(e)}catch(t){focusSvgForeignObjectHack(e)}}function validate(e,t,r){maintain_tab_focus_focus(t);return r.activeElement===t}var ye={element:\"div\",mutate:function mutate(e){e.innerHTML=generate('a');return e.querySelector(\"text\")},validate:validate};var Ee={element:\"div\",mutate:function mutate(e){e.innerHTML=generate('a');return e.querySelector(\"text\")},validate:validate};var we={element:\"div\",mutate:function mutate(e){e.innerHTML=generate('a');return e.querySelector(\"text\")},validate:validate};var ke={element:\"div\",mutate:function mutate(e){e.innerHTML=generate(['link',''].join(\"\"));return e.querySelector(\"use\")},validate:validate};var Se={element:\"div\",mutate:function mutate(e){e.innerHTML=generate('');return e.querySelector(\"foreignObject\")||e.getElementsByTagName(\"foreignObject\")[0]},validate:validate};var Te=Boolean(A.is.GECKO&&typeof SVGElement!==\"undefined\"&&SVGElement.prototype.focus);function focusSvgInIframe(){return Te}var Ce={element:\"div\",mutate:function mutate(e){e.innerHTML=generate(\"\");return e.firstChild},validate:validate};var je={element:\"div\",mutate:function mutate(e){e.setAttribute(\"tabindex\",\"3x\")}};var Ae={element:\"table\",mutate:function mutate(e,t,r){var n=r.createDocumentFragment();n.innerHTML=\"cell\";e.appendChild(n)}};var Oe={element:\"video\",mutate:function mutate(e){try{e.setAttribute(\"src\",K)}catch(e){}}};var _e=A.is.GECKO||A.is.TRIDENT||A.is.EDGE;function tabsequenceAreaAtImgPosition(){return _e}var Ie={cssShadowPiercingDeepCombinator:cssShadowPiercingDeepCombinator,focusInZeroDimensionObject:focusInZeroDimensionObject,focusObjectSwf:focusObjectSwf,focusSvgInIframe:focusSvgInIframe,tabsequenceAreaAtImgPosition:tabsequenceAreaAtImgPosition};var Ne={focusAreaImgTabindex:Z,focusAreaTabindex:U,focusAreaWithoutHref:G,focusAudioWithoutControls:X,focusBrokenImageMap:Q,focusChildrenOfFocusableFlexbox:Y,focusFieldsetDisabled:ee,focusFieldset:te,focusFlexboxContainer:re,focusFormDisabled:ne,focusImgIsmap:ae,focusImgUsemapTabindex:oe,focusInHiddenIframe:ie,focusInvalidTabindex:se,focusLabelTabindex:ue,focusObjectSvg:fe,focusObjectSvgHidden:de,focusRedirectImgUsemap:pe,focusRedirectLegend:be,focusScrollBody:ge,focusScrollContainerWithoutOverflow:ve,focusScrollContainer:he,focusSummary:xe,focusSvgFocusableAttribute:ye,focusSvgTabindexAttribute:Ee,focusSvgNegativeTabindexAttribute:we,focusSvgUseTabindex:ke,focusSvgForeignobjectTabindex:Se,focusSvg:Ce,focusTabindexTrailingCharacters:je,focusTable:Ae,focusVideoWithoutControls:Oe};function executeTests(){var e=detectFocus(Ne);Object.keys(Ie).forEach((function(t){e[t]=Ie[t]()}));return e}var Fe=null;function _supports(){if(Fe){return Fe}Fe=$.get();if(!Fe.time){$.set(executeTests());Fe=$.get()}return Fe}var Le=void 0;var De=/^\\s*(-|\\+)?[0-9]+\\s*$/;var Me=/^\\s*(-|\\+)?[0-9]+.*$/;function isValidTabindex(e){if(!Le){Le=_supports()}var t=Le.focusTabindexTrailingCharacters?Me:De;var r=contextToElement({label:\"is/valid-tabindex\",resolveDocument:true,context:e});var n=r.hasAttribute(\"tabindex\");var a=r.hasAttribute(\"tabIndex\");if(!n&&!a){return false}var o=r.ownerSVGElement||r.nodeName.toLowerCase()===\"svg\";if(o&&!Le.focusSvgTabindexAttribute){return false}if(Le.focusInvalidTabindex){return true}var i=r.getAttribute(n?\"tabindex\":\"tabIndex\");if(i===\"-32768\"){return false}return Boolean(i&&t.test(i))}function tabindexValue(e){if(!isValidTabindex(e)){return null}var t=e.hasAttribute(\"tabindex\");var r=t?\"tabindex\":\"tabIndex\";var n=parseInt(e.getAttribute(r),10);return isNaN(n)?-1:n}function isUserModifyWritable(e){var t=e.webkitUserModify||\"\";return Boolean(t&&t.indexOf(\"write\")!==-1)}function hasCssOverflowScroll(e){return[e.getPropertyValue(\"overflow\"),e.getPropertyValue(\"overflow-x\"),e.getPropertyValue(\"overflow-y\")].some((function(e){return e===\"auto\"||e===\"scroll\"}))}function hasCssDisplayFlex(e){return e.display.indexOf(\"flex\")>-1}function isScrollableContainer(e,t,r,n){if(t!==\"div\"&&t!==\"span\"){return false}if(r&&r!==\"div\"&&r!==\"span\"&&!hasCssOverflowScroll(n)){return false}return e.offsetHeight0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.except,n=r===undefined?{flexbox:false,scrollable:false,shadow:false}:r;if(!Re){Re=_supports()}var a=contextToElement({label:\"is/focus-relevant\",resolveDocument:true,context:t});if(!n.shadow&&a.shadowRoot){return true}var o=a.nodeName.toLowerCase();if(o===\"input\"&&a.type===\"hidden\"){return false}if(o===\"input\"||o===\"select\"||o===\"button\"||o===\"textarea\"){return true}if(o===\"legend\"&&Re.focusRedirectLegend){return true}if(o===\"label\"){return true}if(o===\"area\"){return true}if(o===\"a\"&&a.hasAttribute(\"href\")){return true}if(o===\"object\"&&a.hasAttribute(\"usemap\")){return false}if(o===\"object\"){var i=a.getAttribute(\"type\");if(!Re.focusObjectSvg&&i===\"image/svg+xml\"){return false}else if(!Re.focusObjectSwf&&i===\"application/x-shockwave-flash\"){return false}}if(o===\"iframe\"||o===\"object\"){return true}if(o===\"embed\"||o===\"keygen\"){return true}if(a.hasAttribute(\"contenteditable\")){return true}if(o===\"audio\"&&(Re.focusAudioWithoutControls||a.hasAttribute(\"controls\"))){return true}if(o===\"video\"&&(Re.focusVideoWithoutControls||a.hasAttribute(\"controls\"))){return true}if(Re.focusSummary&&o===\"summary\"){return true}var l=isValidTabindex(a);if(o===\"img\"&&a.hasAttribute(\"usemap\")){return l&&Re.focusImgUsemapTabindex||Re.focusRedirectImgUsemap}if(Re.focusTable&&(o===\"table\"||o===\"td\")){return true}if(Re.focusFieldset&&o===\"fieldset\"){return true}var s=o===\"svg\";var u=a.ownerSVGElement;var c=a.getAttribute(\"focusable\");var d=tabindexValue(a);if(o===\"use\"&&d!==null&&!Re.focusSvgUseTabindex){return false}if(o===\"foreignobject\"){return d!==null&&Re.focusSvgForeignobjectTabindex}if(elementMatches(a,\"svg a\")&&a.hasAttribute(\"xlink:href\")){return true}if((s||u)&&a.focus&&!Re.focusSvgNegativeTabindexAttribute&&d<0){return false}if(s){return l||Re.focusSvg||Re.focusSvgInIframe||Boolean(Re.focusSvgFocusableAttribute&&c&&c===\"true\")}if(u){if(Re.focusSvgTabindexAttribute&&l){return true}if(Re.focusSvgFocusableAttribute){return c===\"true\"}}if(l){return true}var f=window.getComputedStyle(a,null);if(isUserModifyWritable(f)){return true}if(Re.focusImgIsmap&&o===\"img\"&&a.hasAttribute(\"ismap\")){var m=getParents({context:a}).some((function(e){return e.nodeName.toLowerCase()===\"a\"&&e.hasAttribute(\"href\")}));if(m){return true}}if(!n.scrollable&&Re.focusScrollContainer){if(Re.focusScrollContainerWithoutOverflow){if(isScrollableContainer(a,o)){return true}}else if(hasCssOverflowScroll(f)){return true}}if(!n.flexbox&&Re.focusFlexboxContainer&&hasCssDisplayFlex(f)){return true}var p=a.parentElement;if(!n.scrollable&&p){var b=p.nodeName.toLowerCase();var g=window.getComputedStyle(p,null);if(Re.focusScrollBody&&isScrollableContainer(p,o,b,g)){return true}if(Re.focusChildrenOfFocusableFlexbox){if(hasCssDisplayFlex(g)){return true}}}return false}isFocusRelevantRules.except=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var t=function isFocusRelevant(t){return isFocusRelevantRules({context:t,except:e})};t.rules=isFocusRelevantRules;return t};var ze=isFocusRelevantRules.except({});function findIndex(e,t){if(e.findIndex){return e.findIndex(t)}var r=e.length;if(r===0){return-1}for(var n=0;n0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.except,n=r===undefined?{notRendered:false,cssDisplay:false,cssVisibility:false,detailsElement:false,browsingContext:false}:r;var a=contextToElement({label:\"is/visible\",resolveDocument:true,context:t});var o=a.nodeName.toLowerCase();if(!n.notRendered&&Pe.test(o)){return true}var i=getParents({context:a});var l=o===\"audio\"&&!a.hasAttribute(\"controls\");if(!n.cssDisplay&¬Displayed(l?i.slice(1):i)){return false}if(!n.cssVisibility&¬Visible(i)){return false}if(!n.detailsElement&&collapsedParent(i)){return false}if(!n.browsingContext){var s=getFrameElement(a);var u=isVisibleRules.except(n);if(s&&!u(s)){return false}}return true}isVisibleRules.except=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var t=function isVisible(t){return isVisibleRules({context:t,except:e})};t.rules=isVisibleRules;return t};var qe=isVisibleRules.except({});function getMapByName(e,t){var r=t.querySelector('map[name=\"'+T()(e)+'\"]');return r||null}function getImageOfArea(e){var t=e.parentElement;if(!t.name||t.nodeName.toLowerCase()!==\"map\"){return null}var r=getDocument(e);return r.querySelector('img[usemap=\"#'+T()(t.name)+'\"]')||null}var We=void 0;function isValidArea(e){if(!We){We=_supports()}var t=contextToElement({label:\"is/valid-area\",context:e});var r=t.nodeName.toLowerCase();if(r!==\"area\"){return false}var n=t.hasAttribute(\"tabindex\");if(!We.focusAreaTabindex&&n){return false}var a=getImageOfArea(t);if(!a||!qe(a)){return false}if(!We.focusBrokenImageMap&&(!a.complete||!a.naturalHeight||a.offsetWidth<=0||a.offsetHeight<=0)){return false}if(!We.focusAreaWithoutHref&&!t.href){return We.focusAreaTabindex&&n||We.focusAreaImgTabindex&&a.hasAttribute(\"tabindex\")}var o=getParents({context:a}).slice(1).some((function(e){var t=e.nodeName.toLowerCase();return t===\"button\"||t===\"a\"}));if(o){return false}return true}var Ve=void 0;var $e=void 0;var Ke={input:true,select:true,textarea:true,button:true,fieldset:true,form:true};function isNativeDisabledSupported(e){if(!Ve){Ve=_supports();if(Ve.focusFieldsetDisabled){delete Ke.fieldset}if(Ve.focusFormDisabled){delete Ke.form}$e=new RegExp(\"^(\"+Object.keys(Ke).join(\"|\")+\")$\")}var t=contextToElement({label:\"is/native-disabled-supported\",context:e});var r=t.nodeName.toLowerCase();return Boolean($e.test(r))}var Ze=void 0;function isDisabledFieldset(e){var t=e.nodeName.toLowerCase();return t===\"fieldset\"&&e.disabled}function isDisabledForm(e){var t=e.nodeName.toLowerCase();return t===\"form\"&&e.disabled}function isDisabled(e){if(!Ze){Ze=_supports()}var t=contextToElement({label:\"is/disabled\",context:e});if(t.hasAttribute(\"data-ally-disabled\")){return true}if(!isNativeDisabledSupported(t)){return false}if(t.disabled){return true}var r=getParents({context:t});if(r.some(isDisabledFieldset)){return true}if(!Ze.focusFormDisabled&&r.some(isDisabledForm)){return true}return false}function isOnlyTabbableRules(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.except,n=r===undefined?{onlyFocusableBrowsingContext:false,visible:false}:r;var a=contextToElement({label:\"is/only-tabbable\",resolveDocument:true,context:t});if(!n.visible&&!qe(a)){return false}if(!n.onlyFocusableBrowsingContext&&(A.is.GECKO||A.is.TRIDENT||A.is.EDGE)){var o=getFrameElement(a);if(o){if(tabindexValue(o)<0){return false}}}var i=a.nodeName.toLowerCase();var l=tabindexValue(a);if(i===\"label\"&&A.is.GECKO){return l!==null&&l>=0}if(A.is.GECKO&&a.ownerSVGElement&&!a.focus){if(i===\"a\"&&a.hasAttribute(\"xlink:href\")){if(A.is.GECKO){return true}}}return false}isOnlyTabbableRules.except=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var t=function isOnlyTabbable(t){return isOnlyTabbableRules({context:t,except:e})};t.rules=isOnlyTabbableRules;return t};var Ue=isOnlyTabbableRules.except({});var Ge=void 0;function isOnlyFocusRelevant(e){var t=e.nodeName.toLowerCase();if(t===\"embed\"||t===\"keygen\"){return true}var r=tabindexValue(e);if(e.shadowRoot&&r===null){return true}if(t===\"label\"){return!Ge.focusLabelTabindex||r===null}if(t===\"legend\"){return r===null}if(Ge.focusSvgFocusableAttribute&&(e.ownerSVGElement||t===\"svg\")){var n=e.getAttribute(\"focusable\");return n&&n===\"false\"}if(t===\"img\"&&e.hasAttribute(\"usemap\")){return r===null||!Ge.focusImgUsemapTabindex}if(t===\"area\"){return!isValidArea(e)}return false}function isFocusableRules(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.except,n=r===undefined?{disabled:false,visible:false,onlyTabbable:false}:r;if(!Ge){Ge=_supports()}var a=Ue.rules.except({onlyFocusableBrowsingContext:true,visible:n.visible});var o=contextToElement({label:\"is/focusable\",resolveDocument:true,context:t});var i=ze.rules({context:o,except:n});if(!i||isOnlyFocusRelevant(o)){return false}if(!n.disabled&&isDisabled(o)){return false}if(!n.onlyTabbable&&a(o)){return false}if(!n.visible){var l={context:o,except:{}};if(Ge.focusInHiddenIframe){l.except.browsingContext=true}if(Ge.focusObjectSvgHidden){var s=o.nodeName.toLowerCase();if(s===\"object\"){l.except.cssVisibility=true}}if(!qe.rules(l)){return false}}var u=getFrameElement(o);if(u){var c=u.nodeName.toLowerCase();if(c===\"object\"&&!Ge.focusInZeroDimensionObject){if(!u.offsetWidth||!u.offsetHeight){return false}}}var d=o.nodeName.toLowerCase();if(d===\"svg\"&&Ge.focusSvgInIframe&&!u&&o.getAttribute(\"tabindex\")===null){return false}return true}isFocusableRules.except=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var t=function isFocusable(t){return isFocusableRules({context:t,except:e})};t.rules=isFocusableRules;return t};var Xe=isFocusableRules.except({});function createFilter(e){var t=function filter(t){if(t.shadowRoot){return NodeFilter.FILTER_ACCEPT}if(e(t)){return NodeFilter.FILTER_ACCEPT}return NodeFilter.FILTER_SKIP};t.acceptNode=t;return t}var Je=createFilter(ze);function queryFocusableStrict(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.includeContext,n=e.includeOnlyTabbable,a=e.strategy;if(!t){t=document.documentElement}var o=Xe.rules.except({onlyTabbable:n});var i=getDocument(t);var l=i.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,a===\"all\"?Je:createFilter(o),false);var s=[];while(l.nextNode()){if(l.currentNode.shadowRoot){if(o(l.currentNode)){s.push(l.currentNode)}s=s.concat(queryFocusableStrict({context:l.currentNode.shadowRoot,includeOnlyTabbable:n,strategy:a}))}else{s.push(l.currentNode)}}if(r){if(a===\"all\"){if(ze(t)){s.unshift(t)}}else if(o(t)){s.unshift(t)}}return s}var Qe=void 0;var Ye=void 0;function selector$2(){if(!Qe){Qe=_supports()}if(typeof Ye===\"string\"){return Ye}Ye=\"\"+(Qe.focusTable?\"table, td,\":\"\")+(Qe.focusFieldset?\"fieldset,\":\"\")+\"svg a,\"+\"a[href],\"+\"area[href],\"+\"input, select, textarea, button,\"+\"iframe, object, embed,\"+\"keygen,\"+(Qe.focusAudioWithoutControls?\"audio,\":\"audio[controls],\")+(Qe.focusVideoWithoutControls?\"video,\":\"video[controls],\")+(Qe.focusSummary?\"summary,\":\"\")+\"[tabindex],\"+\"[contenteditable]\";Ye=selectInShadows(Ye);return Ye}function queryFocusableQuick(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.includeContext,n=e.includeOnlyTabbable;var a=selector$2();var o=t.querySelectorAll(a);var i=Xe.rules.except({onlyTabbable:n});var l=[].filter.call(o,i);if(r&&i(t)){l.unshift(t)}return l}function queryFocusable(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.includeContext,n=e.includeOnlyTabbable,a=e.strategy,o=a===undefined?\"quick\":a;var i=contextToElement({label:\"query/focusable\",resolveDocument:true,defaultToDocument:true,context:t});var l={context:i,includeContext:r,includeOnlyTabbable:n,strategy:o};if(o===\"quick\"){return queryFocusableQuick(l)}else if(o===\"strict\"||o===\"all\"){return queryFocusableStrict(l)}throw new TypeError('query/focusable requires option.strategy to be one of [\"quick\", \"strict\", \"all\"]')}var et=void 0;var tt=/^(fieldset|table|td|body)$/;function isTabbableRules(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.except,n=r===undefined?{flexbox:false,scrollable:false,shadow:false,visible:false,onlyTabbable:false}:r;if(!et){et=_supports()}var a=contextToElement({label:\"is/tabbable\",resolveDocument:true,context:t});if(A.is.BLINK&&A.is.ANDROID&&A.majorVersion>42){return false}var o=getFrameElement(a);if(o){if(A.is.WEBKIT&&A.is.IOS){return false}if(tabindexValue(o)<0){return false}if(!n.visible&&(A.is.BLINK||A.is.WEBKIT)&&!qe(o)){return false}var i=o.nodeName.toLowerCase();if(i===\"object\"){var l=A.name===\"Chrome\"&&A.majorVersion>=54||A.name===\"Opera\"&&A.majorVersion>=41;if(A.is.WEBKIT||A.is.BLINK&&!l){return false}}}var s=a.nodeName.toLowerCase();var u=tabindexValue(a);var c=u===null?null:u>=0;if(A.is.EDGE&&A.majorVersion>=14&&o&&a.ownerSVGElement&&u<0){return true}var d=c!==false;var f=u!==null&&u>=0;if(a.hasAttribute(\"contenteditable\")){return d}if(tt.test(s)&&c!==true){return false}if(A.is.WEBKIT&&A.is.IOS){var m=s===\"input\"&&a.type===\"text\"||a.type===\"password\"||s===\"select\"||s===\"textarea\"||a.hasAttribute(\"contenteditable\");if(!m){var p=window.getComputedStyle(a,null);m=isUserModifyWritable(p)}if(!m){return false}}if(s===\"use\"&&u!==null){if(A.is.BLINK||A.is.WEBKIT&&A.majorVersion===9){return true}}if(elementMatches(a,\"svg a\")&&a.hasAttribute(\"xlink:href\")){if(d){return true}if(a.focus&&!et.focusSvgNegativeTabindexAttribute){return true}}if(s===\"svg\"&&et.focusSvgInIframe&&d){return true}if(A.is.TRIDENT||A.is.EDGE){if(s===\"svg\"){if(et.focusSvg){return true}return a.hasAttribute(\"focusable\")||f}if(a.ownerSVGElement){if(et.focusSvgTabindexAttribute&&f){return true}return a.hasAttribute(\"focusable\")}}if(a.tabIndex===undefined){return Boolean(n.onlyTabbable)}if(s===\"audio\"){if(!a.hasAttribute(\"controls\")){return false}else if(A.is.BLINK){return true}}if(s===\"video\"){if(!a.hasAttribute(\"controls\")){if(A.is.TRIDENT||A.is.EDGE){return false}}else if(A.is.BLINK||A.is.GECKO){return true}}if(s===\"object\"){if(A.is.BLINK||A.is.WEBKIT){return false}}if(s===\"iframe\"){return false}if(!n.scrollable&&A.is.GECKO){var b=window.getComputedStyle(a,null);if(hasCssOverflowScroll(b)){return d}}if(A.is.TRIDENT||A.is.EDGE){if(s===\"area\"){var g=getImageOfArea(a);if(g&&tabindexValue(g)<0){return false}}var v=window.getComputedStyle(a,null);if(isUserModifyWritable(v)){return a.tabIndex>=0}if(!n.flexbox&&hasCssDisplayFlex(v)){if(u!==null){return f}return rt(a)&&nt(a)}if(isScrollableContainer(a,s)){return false}var h=a.parentElement;if(h){var x=h.nodeName.toLowerCase();var y=window.getComputedStyle(h,null);if(isScrollableContainer(h,s,x,y)){return false}if(hasCssDisplayFlex(y)){return f}}}return a.tabIndex>=0}isTabbableRules.except=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var t=function isTabbable(t){return isTabbableRules({context:t,except:e})};t.rules=isTabbableRules;return t};var rt=ze.rules.except({flexbox:true});var nt=isTabbableRules.except({flexbox:true});var at=isTabbableRules.except({});function queryTabbable(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.includeContext,n=e.includeOnlyTabbable,a=e.strategy;var o=at.rules.except({onlyTabbable:n});return queryFocusable({context:t,includeContext:r,includeOnlyTabbable:n,strategy:a}).filter(o)}function compareDomPosition(e,t){return e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}function sortDomOrder(e){return e.sort(compareDomPosition)}function getFirstSuccessorOffset(e,t){return findIndex(e,(function(e){return t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING}))}function findInsertionOffsets(e,t,r){var n=[];t.forEach((function(t){var a=true;var o=e.indexOf(t);if(o===-1){o=getFirstSuccessorOffset(e,t);a=false}if(o===-1){o=e.length}var i=nodeArray(r?r(t):t);if(!i.length){return}n.push({offset:o,replace:a,elements:i})}));return n}function insertElementsAtOffsets(e,t){var r=0;t.sort((function(e,t){return e.offset-t.offset}));t.forEach((function(t){var n=t.replace?1:0;var a=[t.offset+r,n].concat(t.elements);e.splice.apply(e,a);r+=t.elements.length-n}))}function mergeInDomOrder(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.list,r=e.elements,n=e.resolveElement;var a=t.slice(0);var o=nodeArray(r).slice(0);sortDomOrder(o);var i=findInsertionOffsets(a,o,n);insertElementsAtOffsets(a,i);return a}var ot=function(){function defineProperties(e,t){for(var r=0;r-1){return[e].concat(t)}return t}},{key:\"_cleanup\",value:function _cleanup(){Object.keys(this.hosts).forEach((function(e){delete this.hosts[e]._sortingId}),this)}}]);return Shadows}();function sortShadowed(e,t,r){var n=new st(t,r);var a=n.extractElements(e);if(a.length===e.length){return r(e)}return n.sort(a)}function sortTabindex(e){var t={};var r=[];var n=e.filter((function(e){var n=e.tabIndex;if(n===undefined){n=tabindexValue(e)}if(n<=0||n===null||n===undefined){return true}if(!t[n]){t[n]=[];r.push(n)}t[n].push(e);return false}));var a=r.sort().map((function(e){return t[e]})).reduceRight((function(e,t){return t.concat(e)}),n);return a}var ut=void 0;function moveContextToBeginning(e,t){var r=e.indexOf(t);if(r>0){var n=e.splice(r,1);return n.concat(e)}return e}function sortElements(e,t){if(ut.tabsequenceAreaAtImgPosition){e=sortArea(e,t)}e=sortTabindex(e);return e}function queryTabsequence(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.context,r=e.includeContext,n=e.includeOnlyTabbable,a=e.strategy;if(!ut){ut=_supports()}var o=nodeArray(t)[0]||document.documentElement;var i=queryTabbable({context:o,includeContext:r,includeOnlyTabbable:n,strategy:a});if(document.body.createShadowRoot&&A.is.BLINK){i=sortShadowed(i,o,sortElements)}else{i=sortElements(i,o)}if(r){i=moveContextToBeginning(i,o)}return i}var ct={tab:9,left:37,up:38,right:39,down:40,pageUp:33,\"page-up\":33,pageDown:34,\"page-down\":34,end:35,home:36,enter:13,escape:27,space:32,shift:16,capsLock:20,\"caps-lock\":20,ctrl:17,alt:18,meta:91,pause:19,insert:45,delete:46,backspace:8,_alias:{91:[92,93,224]}};for(var dt=1;dt<26;dt++){ct[\"f\"+dt]=dt+111}for(var ft=0;ft<10;ft++){var mt=ft+48;var pt=ft+96;ct[ft]=mt;ct[\"num-\"+ft]=pt;ct._alias[mt]=[pt]}for(var bt=0;bt<26;bt++){var gt=bt+65;var vt=String.fromCharCode(gt).toLowerCase();ct[vt]=gt}var ht={alt:\"altKey\",ctrl:\"ctrlKey\",meta:\"metaKey\",shift:\"shiftKey\"};var xt=Object.keys(ht).map((function(e){return ht[e]}));function createExpectedModifiers(e){var t=e?null:false;return{altKey:t,ctrlKey:t,metaKey:t,shiftKey:t}}function resolveModifiers(e){var t=e.indexOf(\"*\")!==-1;var r=createExpectedModifiers(t);e.forEach((function(e){if(e===\"*\"){return}var t=true;var n=e.slice(0,1);if(n===\"?\"){t=null}else if(n===\"!\"){t=false}if(t!==true){e=e.slice(1)}var a=ht[e];if(!a){throw new TypeError('Unknown modifier \"'+e+'\"')}r[a]=t}));return r}function resolveKey(e){var t=ct[e]||parseInt(e,10);if(!t||typeof t!==\"number\"||isNaN(t)){throw new TypeError('Unknown key \"'+e+'\"')}return[t].concat(ct._alias[t]||[])}function matchModifiers(e,t){return!xt.some((function(r){return typeof e[r]===\"boolean\"&&Boolean(t[r])!==e[r]}))}function keyBinding(e){return e.split(/\\s+/).map((function(e){var t=e.split(\"+\");var r=resolveModifiers(t.slice(0,-1));var n=resolveKey(t.slice(-1));return{keyCodes:n,modifiers:r,matchModifiers:matchModifiers.bind(null,r)}}))}function getParentComparator(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},t=e.parent,r=e.element,n=e.includeSelf;if(t){return function isChildOf(e){return Boolean(n&&e===t||t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)}}else if(r){return function isParentOf(e){return Boolean(n&&r===e||e.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_CONTAINED_BY)}}throw new TypeError(\"util/compare-position#getParentComparator required either options.parent or options.element\")}function whenKey(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var t={};var r=nodeArray(e.context)[0]||document.documentElement;delete e.context;var n=nodeArray(e.filter);delete e.filter;var a=Object.keys(e);if(!a.length){throw new TypeError(\"when/key requires at least one option key\")}var o=function registerBinding(e){e.keyCodes.forEach((function(r){if(!t[r]){t[r]=[]}t[r].push(e)}))};a.forEach((function(t){if(typeof e[t]!==\"function\"){throw new TypeError('when/key requires option[\"'+t+'\"] to be a function')}var r=function addCallback(r){r.callback=e[t];return r};keyBinding(t).map(r).forEach(o)}));var i=function handleKeyDown(e){if(e.defaultPrevented){return}if(n.length){var a=getParentComparator({element:e.target,includeSelf:true});if(n.some(a)){return}}var o=e.keyCode||e.which;if(!t[o]){return}t[o].forEach((function(t){if(!t.matchModifiers(e)){return}t.callback.call(r,e,l)}))};r.addEventListener(\"keydown\",i,false);var l=function disengage(){r.removeEventListener(\"keydown\",i,false)};return{disengage:l}}function maintain_tab_focus({context:e}={}){if(!e){e=document.documentElement}queryTabsequence();return whenKey({\"?alt+?shift+tab\":function altShiftTab(t){t.preventDefault();var r=queryTabsequence({context:e});var n=t.shiftKey;var a=r[0];var o=r[r.length-1];var i=n?a:o;var l=n?o:a;if(isActiveElement(i)){l.focus();return}var s=void 0;var u=r.some((function(e,t){if(!isActiveElement(e)){return false}s=t;return true}));if(!u){a.focus();return}var c=n?-1:1;r[s+c].focus()}})}let yt;let Et;let wt=0;function lock(){setTimeout((()=>{if(wt++>0){return}const e=window.innerWidth-document.documentElement.clientWidth;if(e>0){yt=document.body.style.paddingRight;document.body.style.paddingRight=`${e}px`}Et=document.body.style.overflow;document.body.style.overflow=\"hidden\"}))}function unlock(){setTimeout((()=>{if(wt===0||--wt!==0){return}if(yt!==undefined){document.body.style.paddingRight=yt;yt=undefined}if(Et!==undefined){document.body.style.overflow=Et;Et=undefined}}))}const kt=function Overlay({className:e,children:t,fixed:r}){m.useEffect((()=>{lock();return()=>{unlock()}}),[]);const[n,a]=m.useState(null);const o=m.useCallback((e=>{a(e)}),[]);m.useEffect((()=>{if(n==null){return}const e=maintain_tab_focus({context:n});return()=>{e.disengage()}}),[n]);return m.createElement(\"div\",{\"data-nextjs-dialog-overlay\":true,className:e,ref:o},m.createElement(\"div\",{\"data-nextjs-dialog-backdrop\":true,\"data-nextjs-dialog-backdrop-fixed\":r?true:undefined}),t)};var St=__webpack_require__(/*! next/dist/compiled/anser */ \"./node_modules/next/dist/compiled/anser/index.js\");var Tt=e.n(St);const Ct=function Terminal({content:e}){const t=m.useMemo((()=>Tt().ansiToJson(e,{json:true,use_classes:true,remove_empty:true})),[e]);return m.createElement(\"div\",{\"data-nextjs-terminal\":true},m.createElement(\"pre\",null,t.map(((e,t)=>m.createElement(\"span\",{key:`terminal-entry-${t}`,style:{color:e.fg?`var(--color-${e.fg})`:undefined,...e.decoration===\"bold\"?{fontWeight:800}:e.decoration===\"italic\"?{fontStyle:\"italic\"}:undefined}},e.content)))))};const jt=function BuildError({message:e}){const t=m.useCallback((()=>{}),[]);return m.createElement(kt,{fixed:true},m.createElement(v,{type:\"error\",\"aria-labelledby\":\"nextjs__container_build_error_label\",\"aria-describedby\":\"nextjs__container_build_error_desc\",onClose:t},m.createElement(x,null,m.createElement(y,{className:\"nextjs-container-build-error-header\"},m.createElement(\"h4\",{id:\"nextjs__container_build_error_label\"},\"Failed to compile\")),m.createElement(h,{className:\"nextjs-container-build-error-body\"},m.createElement(Ct,{content:e}),m.createElement(\"footer\",null,m.createElement(\"p\",{id:\"nextjs__container_build_error_desc\"},m.createElement(\"small\",null,\"This error occurred during the build process and can only be dismissed by fixing the error.\")))))))};const At=noop`\n .nextjs-container-build-error-header > h4 {\n line-height: 1.5;\n margin: 0;\n padding: 0;\n }\n\n .nextjs-container-build-error-body footer {\n margin-top: var(--size-gap);\n }\n .nextjs-container-build-error-body footer p {\n margin: 0;\n }\n\n .nextjs-container-build-error-body small {\n color: #757575;\n }\n`;const CloseIcon=()=>m.createElement(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},m.createElement(\"path\",{d:\"M18 6L6 18\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),m.createElement(\"path\",{d:\"M6 6L18 18\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}));const Ot=function LeftRightDialogHeader({children:e,className:t,previous:r,next:n,close:a}){const o=m.useRef(null);const i=m.useRef(null);const l=m.useRef(null);const[s,u]=m.useState(null);const c=m.useCallback((e=>{u(e)}),[]);m.useEffect((()=>{if(s==null){return}const e=s.getRootNode();const t=self.document;function handler(t){if(t.key===\"ArrowLeft\"){t.stopPropagation();if(o.current){o.current.focus()}r&&r()}else if(t.key===\"ArrowRight\"){t.stopPropagation();if(i.current){i.current.focus()}n&&n()}else if(t.key===\"Escape\"){t.stopPropagation();if(e instanceof ShadowRoot){const t=e.activeElement;if(t&&t!==l.current&&t instanceof HTMLElement){t.blur();return}}if(a){a()}}}e.addEventListener(\"keydown\",handler);if(e!==t){t.addEventListener(\"keydown\",handler)}return function(){e.removeEventListener(\"keydown\",handler);if(e!==t){t.removeEventListener(\"keydown\",handler)}}}),[a,s,n,r]);m.useEffect((()=>{if(s==null){return}const e=s.getRootNode();if(e instanceof ShadowRoot){const t=e.activeElement;if(r==null){if(o.current&&t===o.current){o.current.blur()}}else if(n==null){if(i.current&&t===i.current){i.current.blur()}}}}),[s,n,r]);return m.createElement(\"div\",{\"data-nextjs-dialog-left-right\":true,className:t},m.createElement(\"nav\",{ref:c},m.createElement(\"button\",{ref:o,type:\"button\",disabled:r==null?true:undefined,\"aria-disabled\":r==null?true:undefined,onClick:r??undefined},m.createElement(\"svg\",{viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},m.createElement(\"path\",{d:\"M6.99996 1.16666L1.16663 6.99999L6.99996 12.8333M12.8333 6.99999H1.99996H12.8333Z\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))),m.createElement(\"button\",{ref:i,type:\"button\",disabled:n==null?true:undefined,\"aria-disabled\":n==null?true:undefined,onClick:n??undefined},m.createElement(\"svg\",{viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},m.createElement(\"path\",{d:\"M6.99996 1.16666L12.8333 6.99999L6.99996 12.8333M1.16663 6.99999H12H1.16663Z\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))),\" \",e),a?m.createElement(\"button\",{\"data-nextjs-errors-dialog-left-right-close-button\":true,ref:l,type:\"button\",onClick:a,\"aria-label\":\"Close\"},m.createElement(\"span\",{\"aria-hidden\":\"true\"},m.createElement(CloseIcon,null))):null)};const _t=noop`\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 > button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n width: calc(var(--size-gap-double) + var(--size-gap));\n height: calc(var(--size-gap-double) + var(--size-gap));\n font-size: 0;\n border: none;\n background-color: rgba(255, 85, 85, 0.1);\n color: var(--color-ansi-red);\n cursor: pointer;\n transition: background-color 0.25s ease;\n }\n [data-nextjs-dialog-left-right] > nav > button > svg {\n width: auto;\n height: calc(var(--size-gap) + var(--size-gap-half));\n }\n [data-nextjs-dialog-left-right] > nav > button:hover {\n background-color: rgba(255, 85, 85, 0.2);\n }\n [data-nextjs-dialog-left-right] > nav > button:disabled {\n background-color: rgba(255, 85, 85, 0.1);\n color: rgba(255, 85, 85, 0.4);\n cursor: not-allowed;\n }\n\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\n margin-right: 1px;\n }\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\n }\n\n [data-nextjs-dialog-left-right] > button:last-of-type {\n border: 0;\n padding: 0;\n\n background-color: transparent;\n appearance: none;\n\n opacity: 0.4;\n transition: opacity 0.25s ease;\n }\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\n opacity: 0.7;\n }\n`;const It=noop`\n [data-nextjs-toast] {\n position: fixed;\n bottom: var(--size-gap-double);\n left: var(--size-gap-double);\n max-width: 420px;\n z-index: 9000;\n }\n\n @media (max-width: 440px) {\n [data-nextjs-toast] {\n max-width: 90vw;\n left: 5vw;\n }\n }\n\n [data-nextjs-toast-wrapper] {\n padding: 16px;\n border-radius: var(--size-gap-half);\n font-weight: 500;\n color: var(--color-ansi-bright-white);\n background-color: var(--color-ansi-red);\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\n rgba(0, 0, 0, 0.25);\n }\n`;const Nt=function Toast({onClick:e,children:t,className:r}){return m.createElement(\"div\",{\"data-nextjs-toast\":true,onClick:e,className:r},m.createElement(\"div\",{\"data-nextjs-toast-wrapper\":true},t))};var Ft=__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\");var Lt=e.n(Ft);const Dt=function CodeFrame({stackFrame:e,codeFrame:t}){const r=m.useMemo((()=>{const e=t.split(/\\r?\\n/g);const r=e.map((e=>/^>? +\\d+ +\\| [ ]+/.exec(Lt()(e))===null?null:/^>? +\\d+ +\\| ( *)/.exec(Lt()(e)))).filter(Boolean).map((e=>e.pop())).reduce(((e,t)=>isNaN(e)?t.length:Math.min(e,t.length)),NaN);if(r>1){const t=\" \".repeat(r);return e.map(((e,r)=>~(r=e.indexOf(\"|\"))?e.substring(0,r)+e.substring(r).replace(t,\"\"):e)).join(\"\\n\")}return e.join(\"\\n\")}),[t]);const n=m.useMemo((()=>Tt().ansiToJson(r,{json:true,use_classes:true,remove_empty:true})),[r]);const a=m.useCallback((()=>{const t=new URLSearchParams;for(const r in e){t.append(r,(e[r]??\"\").toString())}self.fetch(`${ false||\"\"}/__nextjs_launch-editor?${t.toString()}`).then((()=>{}),(()=>{console.error(\"There was an issue opening this code in your editor.\")}))}),[e]);return m.createElement(\"div\",{\"data-nextjs-codeframe\":true},m.createElement(\"div\",null,m.createElement(\"p\",{role:\"link\",onClick:a,tabIndex:1,title:\"Click to open in your editor\"},m.createElement(\"span\",null,getFrameSource(e),\" @ \",e.methodName),m.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"},m.createElement(\"path\",{d:\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}),m.createElement(\"polyline\",{points:\"15 3 21 3 21 9\"}),m.createElement(\"line\",{x1:\"10\",y1:\"14\",x2:\"21\",y2:\"3\"})))),m.createElement(\"pre\",null,n.map(((e,t)=>m.createElement(\"span\",{key:`frame-${t}`,style:{color:e.fg?`var(--color-${e.fg})`:undefined,...e.decoration===\"bold\"?{fontWeight:800}:e.decoration===\"italic\"?{fontStyle:\"italic\"}:undefined}},e.content)))))};const Mt=function CallStackFrame({frame:e}){const t=e.originalStackFrame??e.sourceStackFrame;const r=Boolean(e.originalCodeFrame);const n=m.useCallback((()=>{if(!r)return;const e=new URLSearchParams;for(const r in t){e.append(r,(t[r]??\"\").toString())}self.fetch(`${ false||\"\"}/__nextjs_launch-editor?${e.toString()}`).then((()=>{}),(()=>{console.error(\"There was an issue opening this code in your editor.\")}))}),[r,t]);return m.createElement(\"div\",{\"data-nextjs-call-stack-frame\":true},m.createElement(\"h6\",{\"data-nextjs-frame-expanded\":Boolean(e.expanded)},t.methodName),m.createElement(\"div\",{\"data-has-source\":r?\"true\":undefined,tabIndex:r?10:undefined,role:r?\"link\":undefined,onClick:n,title:r?\"Click to open in your editor\":undefined},m.createElement(\"span\",null,getFrameSource(t)),m.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"},m.createElement(\"path\",{d:\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}),m.createElement(\"polyline\",{points:\"15 3 21 3 21 9\"}),m.createElement(\"line\",{x1:\"10\",y1:\"14\",x2:\"21\",y2:\"3\"}))))};const Rt=function RuntimeError({error:e}){const t=m.useMemo((()=>e.frames.findIndex((e=>e.expanded&&Boolean(e.originalCodeFrame)&&Boolean(e.originalStackFrame)))),[e.frames]);const r=m.useMemo((()=>e.frames[t]??null),[e.frames,t]);const n=m.useMemo((()=>t<0?[]:e.frames.slice(0,t)),[e.frames,t]);const[a,o]=m.useState(r==null);const i=m.useCallback((()=>{o((e=>!e))}),[]);const l=m.useMemo((()=>n.filter((e=>e.expanded||a))),[a,n]);const s=m.useMemo((()=>e.frames.slice(t+1)),[e.frames,t]);const u=m.useMemo((()=>s.filter((e=>e.expanded||a))),[a,s]);const c=m.useMemo((()=>s.length!==u.length||a&&r!=null),[a,s.length,r,u.length]);return m.createElement(m.Fragment,null,r?m.createElement(m.Fragment,null,m.createElement(\"h5\",null,\"Source\"),l.map(((e,t)=>m.createElement(Mt,{key:`leading-frame-${t}-${a}`,frame:e}))),m.createElement(Dt,{stackFrame:r.originalStackFrame,codeFrame:r.originalCodeFrame})):undefined,u.length?m.createElement(m.Fragment,null,m.createElement(\"h5\",null,\"Call Stack\"),u.map(((e,t)=>m.createElement(Mt,{key:`call-stack-${t}-${a}`,frame:e})))):undefined,c?m.createElement(m.Fragment,null,m.createElement(\"button\",{tabIndex:10,\"data-nextjs-data-runtime-error-collapsed-action\":true,type:\"button\",onClick:i},a?\"Hide\":\"Show\",\" collapsed frames\")):undefined)};const zt=noop`\n button[data-nextjs-data-runtime-error-collapsed-action] {\n background: none;\n border: none;\n padding: 0;\n font-size: var(--size-font-small);\n line-height: var(--size-font-bigger);\n color: var(--color-accents-3);\n }\n\n [data-nextjs-call-stack-frame]:not(:last-child) {\n margin-bottom: var(--size-gap-double);\n }\n\n [data-nextjs-call-stack-frame] > h6 {\n margin-top: 0;\n margin-bottom: var(--size-gap);\n font-family: var(--font-stack-monospace);\n color: #222;\n }\n [data-nextjs-call-stack-frame] > h6[data-nextjs-frame-expanded='false'] {\n color: #666;\n }\n [data-nextjs-call-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 width: auto;\n height: var(--size-font-small);\n margin-left: var(--size-gap);\n\n display: none;\n }\n\n [data-nextjs-call-stack-frame] > div[data-has-source] {\n cursor: pointer;\n }\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover {\n text-decoration: underline dotted;\n }\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg {\n display: unset;\n }\n`;function getErrorSignature(e){const{event:t}=e;switch(t.type){case i:case l:{return`${t.reason.name}::${t.reason.message}::${t.reason.stack}`}default:{}}const r=t;return\"\"}const Bt=function HotlinkedText(e){const{text:t}=e;const r=/https?:\\/\\/[^\\s/$.?#].[^\\s\"]*/i;return m.createElement(m.Fragment,null,r.test(t)?t.split(\" \").map(((e,t,n)=>{if(r.test(e)){return m.createElement(m.Fragment,{key:`link-${t}`},m.createElement(\"a\",{href:e},e),t===n.length-1?\"\":\" \")}return t===n.length-1?m.createElement(m.Fragment,{key:`text-${t}`},e):m.createElement(m.Fragment,{key:`text-${t}`},e,\" \")})):t)};const Ht=function Errors({errors:e}){const[t,r]=m.useState({});const[n,a]=m.useMemo((()=>{let r=[];let n=null;for(let a=0;a0){const t=e[a-1];if(getErrorSignature(t)===getErrorSignature(o)){continue}}n=o;break}return[r,n]}),[e,t]);const o=m.useMemo((()=>n.length<1&&Boolean(e.length)),[e.length,n.length]);m.useEffect((()=>{if(a==null){return}let e=true;getErrorByType(a).then((t=>{if(e){r((e=>({...e,[t.id]:t})))}}),(()=>{}));return()=>{e=false}}),[a]);const[i,l]=m.useState(\"fullscreen\");const[s,u]=m.useState(0);const c=m.useCallback((e=>{e?.preventDefault();u((e=>Math.max(0,e-1)))}),[]);const d=m.useCallback((e=>{e?.preventDefault();u((e=>Math.max(0,Math.min(n.length-1,e+1))))}),[n.length]);const f=m.useMemo((()=>n[s]??null),[s,n]);m.useEffect((()=>{if(e.length<1){r({});l(\"hidden\");u(0)}}),[e.length]);const p=m.useCallback((e=>{e?.preventDefault();l(\"minimized\")}),[]);const b=m.useCallback((e=>{e?.preventDefault();l(\"hidden\")}),[]);const g=m.useCallback((e=>{e?.preventDefault();l(\"fullscreen\")}),[]);if(e.length<1||f==null){return null}if(o){return m.createElement(kt,null)}if(i===\"hidden\"){return null}if(i===\"minimized\"){return m.createElement(Nt,{className:\"nextjs-toast-errors-parent\",onClick:g},m.createElement(\"div\",{className:\"nextjs-toast-errors\"},m.createElement(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"},m.createElement(\"circle\",{cx:\"12\",cy:\"12\",r:\"10\"}),m.createElement(\"line\",{x1:\"12\",y1:\"8\",x2:\"12\",y2:\"12\"}),m.createElement(\"line\",{x1:\"12\",y1:\"16\",x2:\"12.01\",y2:\"16\"})),m.createElement(\"span\",null,n.length,\" error\",n.length>1?\"s\":\"\"),m.createElement(\"button\",{\"data-nextjs-toast-errors-hide-button\":true,className:\"nextjs-toast-errors-hide-button\",type:\"button\",onClick:e=>{e.stopPropagation();b()},\"aria-label\":\"Hide Errors\"},m.createElement(CloseIcon,null))))}const E=[\"server\",\"edge-server\"].includes(getErrorSource(f.error)||\"\");return m.createElement(kt,null,m.createElement(v,{type:\"error\",\"aria-labelledby\":\"nextjs__container_errors_label\",\"aria-describedby\":\"nextjs__container_errors_desc\",onClose:E?undefined:p},m.createElement(x,null,m.createElement(y,{className:\"nextjs-container-errors-header\"},m.createElement(Ot,{previous:s>0?c:null,next:s h1 {\n font-size: var(--size-font-big);\n line-height: var(--size-font-bigger);\n font-weight: bold;\n margin: 0;\n margin-top: calc(var(--size-gap-double) + var(--size-gap-half));\n }\n .nextjs-container-errors-header small {\n font-size: var(--size-font-small);\n color: var(--color-accents-1);\n margin-left: var(--size-gap-double);\n }\n .nextjs-container-errors-header small > span {\n font-family: var(--font-stack-monospace);\n }\n .nextjs-container-errors-header > p {\n font-family: var(--font-stack-monospace);\n font-size: var(--size-font-small);\n line-height: var(--size-font-big);\n font-weight: bold;\n margin: 0;\n margin-top: var(--size-gap-half);\n color: var(--color-ansi-red);\n white-space: pre-wrap;\n }\n .nextjs-container-errors-header > div > small {\n margin: 0;\n margin-top: var(--size-gap-half);\n }\n .nextjs-container-errors-header > p > a {\n color: var(--color-ansi-red);\n }\n\n .nextjs-container-errors-body > h5:not(:first-child) {\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\n }\n .nextjs-container-errors-body > h5 {\n margin-bottom: var(--size-gap);\n }\n\n .nextjs-toast-errors-parent {\n cursor: pointer;\n transition: transform 0.2s ease;\n }\n .nextjs-toast-errors-parent:hover {\n transform: scale(1.1);\n }\n .nextjs-toast-errors {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n }\n .nextjs-toast-errors > svg {\n margin-right: var(--size-gap);\n }\n .nextjs-toast-errors-hide-button {\n margin-left: var(--size-gap-triple);\n border: none;\n background: none;\n color: var(--color-ansi-bright-white);\n padding: 0;\n transition: opacity 0.25s ease;\n opacity: 0.7;\n }\n .nextjs-toast-errors-hide-button:hover {\n opacity: 1;\n }\n`;class ErrorBoundary extends p().PureComponent{constructor(){super(...arguments);this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){this.props.onError(e,t?.componentStack||null);if(!this.props.globalOverlay){this.setState({error:e})}}render(){return this.state.error||this.props.globalOverlay&&this.props.isMounted?this.props.globalOverlay?p().createElement(\"html\",null,p().createElement(\"head\",null),p().createElement(\"body\",null)):null:this.props.children}}function Base(){return m.createElement(\"style\",null,noop`\n :host {\n --size-gap-half: 4px;\n --size-gap: 8px;\n --size-gap-double: 16px;\n --size-gap-triple: 24px;\n --size-gap-quad: 32px;\n\n --size-font-small: 14px;\n --size-font: 16px;\n --size-font-big: 20px;\n --size-font-bigger: 24px;\n\n --color-accents-1: #808080;\n --color-accents-2: #222222;\n --color-accents-3: #404040;\n\n --font-stack-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono',\n Menlo, Courier, monospace;\n\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\n --color-ansi-bg: #111111;\n --color-ansi-fg: #cccccc;\n\n --color-ansi-white: #777777;\n --color-ansi-black: #141414;\n --color-ansi-blue: #00aaff;\n --color-ansi-cyan: #88ddff;\n --color-ansi-green: #98ec65;\n --color-ansi-magenta: #aa88ff;\n --color-ansi-red: #ff5555;\n --color-ansi-yellow: #ffcc33;\n --color-ansi-bright-white: #ffffff;\n --color-ansi-bright-black: #777777;\n --color-ansi-bright-blue: #33bbff;\n --color-ansi-bright-cyan: #bbecff;\n --color-ansi-bright-green: #b6f292;\n --color-ansi-bright-magenta: #cebbff;\n --color-ansi-bright-red: #ff8888;\n --color-ansi-bright-yellow: #ffd966;\n }\n\n .mono {\n font-family: var(--font-stack-monospace);\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-bottom: var(--size-gap);\n font-weight: 500;\n line-height: 1.5;\n }\n\n h1 {\n font-size: 40px;\n }\n h2 {\n font-size: 32px;\n }\n h3 {\n font-size: 28px;\n }\n h4 {\n font-size: 24px;\n }\n h5 {\n font-size: 20px;\n }\n h6 {\n font-size: 16px;\n }\n `)}const qt=noop`\n [data-nextjs-codeframe] {\n overflow: auto;\n border-radius: var(--size-gap-half);\n background-color: var(--color-ansi-bg);\n color: var(--color-ansi-fg);\n }\n [data-nextjs-codeframe]::selection,\n [data-nextjs-codeframe] *::selection {\n background-color: var(--color-ansi-selection);\n }\n [data-nextjs-codeframe] * {\n color: inherit;\n background-color: transparent;\n font-family: var(--font-stack-monospace);\n }\n\n [data-nextjs-codeframe] > * {\n margin: 0;\n padding: calc(var(--size-gap) + var(--size-gap-half))\n calc(var(--size-gap-double) + var(--size-gap-half));\n }\n [data-nextjs-codeframe] > div {\n display: inline-block;\n width: auto;\n min-width: 100%;\n border-bottom: 1px solid var(--color-ansi-bright-black);\n }\n [data-nextjs-codeframe] > div > p {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0;\n }\n [data-nextjs-codeframe] > div > p:hover {\n text-decoration: underline dotted;\n }\n [data-nextjs-codeframe] div > p > svg {\n width: auto;\n height: 1em;\n margin-left: 8px;\n }\n [data-nextjs-codeframe] div > pre {\n overflow: hidden;\n display: inline-block;\n }\n`;const Wt=noop`\n [data-nextjs-dialog-overlay] {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: auto;\n z-index: 9000;\n\n display: flex;\n align-content: center;\n align-items: center;\n flex-direction: column;\n padding: 10vh 15px 0;\n }\n\n @media (max-height: 812px) {\n [data-nextjs-dialog-overlay] {\n padding: 15px 15px 0;\n }\n }\n\n [data-nextjs-dialog-backdrop] {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(17, 17, 17, 0.2);\n pointer-events: all;\n z-index: -1;\n }\n\n [data-nextjs-dialog-backdrop-fixed] {\n cursor: not-allowed;\n -webkit-backdrop-filter: blur(8px);\n backdrop-filter: blur(8px);\n }\n`;const Vt=noop`\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`;function ComponentStyles(){return m.createElement(\"style\",null,noop`\n ${Wt}\n ${It}\n ${E}\n ${_t}\n ${qt}\n ${Vt}\n \n ${At}\n ${Pt}\n ${zt}\n `)}function CssReset(){return m.createElement(\"style\",null,noop`\n :host {\n all: initial;\n\n /* the direction property is not reset by 'all' */\n direction: ltr;\n }\n\n /*!\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n }\n\n article,\n aside,\n figcaption,\n figure,\n footer,\n header,\n hgroup,\n main,\n nav,\n section {\n display: block;\n }\n\n :host {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n 'Noto Color Emoji';\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n }\n\n [tabindex='-1']:focus:not(:focus-visible) {\n outline: 0 !important;\n }\n\n hr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n margin-bottom: 8px;\n }\n\n p {\n margin-top: 0;\n margin-bottom: 16px;\n }\n\n abbr[title],\n abbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n -webkit-text-decoration-skip-ink: none;\n text-decoration-skip-ink: none;\n }\n\n address {\n margin-bottom: 16px;\n font-style: normal;\n line-height: inherit;\n }\n\n ol,\n ul,\n dl {\n margin-top: 0;\n margin-bottom: 16px;\n }\n\n ol ol,\n ul ul,\n ol ul,\n ul ol {\n margin-bottom: 0;\n }\n\n dt {\n font-weight: 700;\n }\n\n dd {\n margin-bottom: 8px;\n margin-left: 0;\n }\n\n blockquote {\n margin: 0 0 16px;\n }\n\n b,\n strong {\n font-weight: bolder;\n }\n\n small {\n font-size: 80%;\n }\n\n sub,\n sup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n }\n\n sub {\n bottom: -0.25em;\n }\n\n sup {\n top: -0.5em;\n }\n\n a {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n }\n\n a:hover {\n color: #0056b3;\n text-decoration: underline;\n }\n\n a:not([href]) {\n color: inherit;\n text-decoration: none;\n }\n\n a:not([href]):hover {\n color: inherit;\n text-decoration: none;\n }\n\n pre,\n code,\n kbd,\n samp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas,\n 'Liberation Mono', 'Courier New', monospace;\n font-size: 1em;\n }\n\n pre {\n margin-top: 0;\n margin-bottom: 16px;\n overflow: auto;\n }\n\n figure {\n margin: 0 0 16px;\n }\n\n img {\n vertical-align: middle;\n border-style: none;\n }\n\n svg {\n overflow: hidden;\n vertical-align: middle;\n }\n\n table {\n border-collapse: collapse;\n }\n\n caption {\n padding-top: 12px;\n padding-bottom: 12px;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n }\n\n th {\n text-align: inherit;\n }\n\n label {\n display: inline-block;\n margin-bottom: 8px;\n }\n\n button {\n border-radius: 0;\n }\n\n button:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n }\n\n input,\n button,\n select,\n optgroup,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n button,\n input {\n overflow: visible;\n }\n\n button,\n select {\n text-transform: none;\n }\n\n select {\n word-wrap: normal;\n }\n\n button,\n [type='button'],\n [type='reset'],\n [type='submit'] {\n -webkit-appearance: button;\n }\n\n button:not(:disabled),\n [type='button']:not(:disabled),\n [type='reset']:not(:disabled),\n [type='submit']:not(:disabled) {\n cursor: pointer;\n }\n\n button::-moz-focus-inner,\n [type='button']::-moz-focus-inner,\n [type='reset']::-moz-focus-inner,\n [type='submit']::-moz-focus-inner {\n padding: 0;\n border-style: none;\n }\n\n input[type='radio'],\n input[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n }\n\n input[type='date'],\n input[type='time'],\n input[type='datetime-local'],\n input[type='month'] {\n -webkit-appearance: listbox;\n }\n\n textarea {\n overflow: auto;\n resize: vertical;\n }\n\n fieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n }\n\n legend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: 8px;\n font-size: 24px;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n [type='number']::-webkit-inner-spin-button,\n [type='number']::-webkit-outer-spin-button {\n height: auto;\n }\n\n [type='search'] {\n outline-offset: -2px;\n -webkit-appearance: none;\n }\n\n [type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n }\n\n output {\n display: inline-block;\n }\n\n summary {\n display: list-item;\n cursor: pointer;\n }\n\n template {\n display: none;\n }\n\n [hidden] {\n display: none !important;\n }\n `)}function pushErrorFilterDuplicates(e,t){return[...e.filter((e=>e.event.reason!==t.event.reason)),t]}function reducer(e,t){switch(t.type){case r:{return{...e,buildError:null}}case n:{return{...e,buildError:t.message}}case o:{return{...e,refreshState:{type:\"pending\",errors:[]}}}case a:{return{...e,buildError:null,errors:e.refreshState.type===\"pending\"?e.refreshState.errors:[],refreshState:{type:\"idle\"}}}case i:case l:{switch(e.refreshState.type){case\"idle\":{return{...e,nextId:e.nextId+1,errors:pushErrorFilterDuplicates(e.errors,{id:e.nextId,event:t})}}case\"pending\":{return{...e,nextId:e.nextId+1,refreshState:{...e.refreshState,errors:pushErrorFilterDuplicates(e.refreshState.errors,{id:e.nextId,event:t})}}}default:const r=e.refreshState;return e}}default:{const r=t;return e}}}const shouldPreventDisplay=(e,t)=>{if(!t||!e){return false}return t.includes(e)};const $t=function ReactDevOverlay({children:e,preventDisplay:t,globalOverlay:r}){const[n,a]=m.useReducer(reducer,{nextId:1,buildError:null,errors:[],refreshState:{type:\"idle\"}});m.useEffect((()=>{on(a);return function(){off(a)}}),[a]);const o=m.useCallback(((e,t)=>{}),[]);const i=n.buildError!=null;const l=Boolean(n.errors.length);const s=i?\"build\":l?\"runtime\":null;const u=s!==null;return m.createElement(m.Fragment,null,m.createElement(ErrorBoundary,{globalOverlay:r,isMounted:u,onError:o},e??null),u?m.createElement(g,{globalOverlay:r},m.createElement(CssReset,null),m.createElement(Base,null),m.createElement(ComponentStyles,null),shouldPreventDisplay(s,t)?null:i?m.createElement(jt,{message:n.buildError}):l?m.createElement(Ht,{errors:n.errors}):undefined):undefined)};var Kt=$t;let Zt=false;let Ut=undefined;function onUnhandledError(e){const t=e?.error;if(!t||!(t instanceof Error)||typeof t.stack!==\"string\"){return}if(t.message.match(/(hydration|content does not match|did not match)/i)){t.message+=`\\n\\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error`}const r=t;emit({type:i,reason:t,frames:parseStack(r.stack)})}function onUnhandledRejection(e){const t=e?.reason;if(!t||!(t instanceof Error)||typeof t.stack!==\"string\"){return}const r=t;emit({type:l,reason:t,frames:parseStack(r.stack)})}function register(){if(Zt){return}Zt=true;try{const e=Error.stackTraceLimit;Error.stackTraceLimit=50;Ut=e}catch{}window.addEventListener(\"error\",onUnhandledError);window.addEventListener(\"unhandledrejection\",onUnhandledRejection)}function unregister(){if(!Zt){return}Zt=false;if(Ut!==undefined){try{Error.stackTraceLimit=Ut}catch{}Ut=undefined}window.removeEventListener(\"error\",onUnhandledError);window.removeEventListener(\"unhandledrejection\",onUnhandledRejection)}function onBuildOk(){emit({type:r})}function onBuildError(e){emit({type:n,message:e})}function onRefresh(){emit({type:a})}function onBeforeRefresh(){emit({type:o})}module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2Rpc3QvY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQSxZQUFZLGFBQWEsU0FBUyxZQUFZLGdCQUFnQixpQ0FBaUMsb0JBQW9CLFlBQVksVUFBVSxPQUFPLElBQUksRUFBRSxVQUFVLEdBQUcsWUFBWSxrQkFBa0IsZ0JBQWdCLHdCQUF3QiwyQkFBMkIseUJBQXlCLEtBQUssR0FBRyxZQUFZLGtCQUFrQixrREFBa0QsR0FBRyxZQUFZLGdCQUFnQixvREFBb0QsNENBQTRDLGVBQWUsRUFBRSxzQ0FBc0MsV0FBVyxHQUFHLEdBQUcsK0JBQStCLFNBQVMsS0FBSyxTQUFTLE9BQU8sT0FBTywyQkFBMkIsVUFBVSwyQkFBMkIsc0JBQXNCLDJCQUEyQixzQkFBc0IsNEJBQTRCLHVCQUF1Qix5QkFBeUIsb0JBQW9CLHNCQUFzQixpQkFBaUIsc0JBQXNCLGlCQUFpQixxQkFBcUIsZ0JBQWdCLHVCQUF1QixtQkFBbUIsRUFBRSxtQkFBbUIsc0JBQXNCLHVCQUF1Qiw4QkFBOEIsMEJBQTBCLDhCQUE4QixjQUFjLFNBQVMsaUJBQWlCLHVCQUF1QiwwQ0FBMEMsa0JBQWtCLHNCQUFzQixLQUFLLGlCQUFpQixzQkFBc0IsS0FBSyxHQUFHLFFBQVEsZUFBZSxhQUFhLGFBQWEsU0FBUyxRQUFRLFlBQVksZ0JBQWdCLGFBQWEsWUFBWSxZQUFZLGFBQWEsTUFBTSxtQkFBTyxDQUFDLDJIQUFzQyxFQUFFLGlDQUFpQyx1QkFBdUIsdUJBQXVCLGtCQUFrQixJQUFJLHdCQUF3QiwyQkFBMkIsTUFBTSxRQUFRLHNFQUEyQix3Q0FBd0MsTUFBTSxxQ0FBcUMsT0FBTyxTQUFTLEdBQUcsK0JBQStCLFNBQVMsTUFBTSw2QkFBNkIsaUZBQWlGLGlCQUFpQixPQUFPLEdBQUcsU0FBUyw4QkFBOEIsMkJBQTJCLGtCQUFrQixrQ0FBa0MsMkJBQTJCLDJEQUEyRCxFQUFFLDZCQUE2QixNQUFN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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFLDJCQUEyQjtBQUM3QixVQUFVO0FBQ1YsVUFBVTtBQUNWLFVBQVU7QUFDVixVQUFVO0FBQ1YsVUFBVTtBQUNWLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVixVQUFVO0FBQ1YsVUFBVTtBQUNWLFNBQVMsb0JBQW9CO0FBQzdCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsd0NBQXdDLDREQUE0RCxzQkFBc0IsZUFBZSxRQUFRLE9BQU8sc0JBQXNCLFFBQVEsT0FBTywyQkFBMkIsUUFBUSxPQUFPLG1CQUFtQiwyQkFBMkIsUUFBUSxPQUFPLG1HQUFtRyxjQUFjLGVBQWUsNEJBQTRCLFlBQVksT0FBTyxrRUFBa0Usb0JBQW9CLEdBQUcsZUFBZSxPQUFPLHFDQUFxQywwRUFBMEUsb0JBQW9CLElBQUksK0JBQStCLFVBQVUsU0FBUyxVQUFVLFdBQVcsbUNBQW1DLFdBQVcsYUFBYSxzQkFBc0IsbUNBQW1DLDRDQUE0QyxFQUFFLGlDQUFpQyxpREFBaUQsYUFBYSxFQUFFLGtCQUFrQixNQUFNLGtCQUFrQixRQUFRLE9BQU8sZ0NBQWdDLE1BQU0sMkJBQTJCLGlDQUFpQyxtQ0FBbUMsaUJBQWlCLHNFQUFzRSxzQ0FBc0MsK0JBQStCLGdCQUFnQixzSkFBc0oscUJBQXFCLHdCQUF3QixnQkFBZ0IseUJBQXlCLFVBQVUsYUFBYSxpQkFBaUIsNkJBQTZCLGlCQUFpQix5REFBeUQsT0FBTyx5RUFBeUUsNEZBQTRGLFVBQVUsTUFBTSwyQ0FBMkMsRUFBRSxpQ0FBaUMsa0JBQWtCLHlEQUF5RCxPQUFPLFVBQVUsTUFBTSwyQ0FBMkMsRUFBRSxvQkFBb0IsT0FBTyxPQUFPLFFBQVEsSUFBSSw4QkFBOEIseUJBQXlCLEtBQUssT0FBTyxrREFBa0QsbUVBQW1FLHNCQUFzQixRQUFRLE9BQU8sU0FBUyxtQkFBbUIsSUFBSSx5QkFBeUIsT0FBTyxhQUFhLHFEQUFxRCxzRUFBc0UscUJBQXFCLE1BQU0sT0FBTyxFQUFFLHlCQUF5QixNQUFNLGlCQUFpQixFQUFFLHFCQUFxQixNQUFNLE9BQU8sRUFBRSwyQkFBMkIsTUFBTSxPQUFPLEVBQUUsaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvZGlzdC9jbGllbnQuanM/NGQzMCJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgZT17fTshZnVuY3Rpb24oKXtlLm49ZnVuY3Rpb24odCl7dmFyIHI9dCYmdC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIHRbXCJkZWZhdWx0XCJdfTpmdW5jdGlvbigpe3JldHVybiB0fTtlLmQocix7YTpyfSk7cmV0dXJuIHJ9fSgpOyFmdW5jdGlvbigpe2UuZD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgbiBpbiByKXtpZihlLm8ocixuKSYmIWUubyh0LG4pKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OnJbbl19KX19fX0oKTshZnVuY3Rpb24oKXtlLm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCl9fSgpOyFmdW5jdGlvbigpe2Uucj1mdW5jdGlvbihlKXtpZih0eXBlb2YgU3ltYm9sIT09XCJ1bmRlZmluZWRcIiYmU3ltYm9sLnRvU3RyaW5nVGFnKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pfX0oKTtpZih0eXBlb2YgZSE9PVwidW5kZWZpbmVkXCIpZS5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIHQ9e307ZS5yKHQpO2UuZCh0LHtSZWFjdERldk92ZXJsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gS3R9LGdldEVycm9yQnlUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGdldEVycm9yQnlUeXBlfSxnZXRTZXJ2ZXJFcnJvcjpmdW5jdGlvbigpe3JldHVybiBnZXRTZXJ2ZXJFcnJvcn0sb25CZWZvcmVSZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIG9uQmVmb3JlUmVmcmVzaH0sb25CdWlsZEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIG9uQnVpbGRFcnJvcn0sb25CdWlsZE9rOmZ1bmN0aW9uKCl7cmV0dXJuIG9uQnVpbGRPa30sb25SZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIG9uUmVmcmVzaH0scmVnaXN0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcmVnaXN0ZXJ9LHVucmVnaXN0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdW5yZWdpc3Rlcn19KTtjb25zdCByPVwiYnVpbGQtb2tcIjtjb25zdCBuPVwiYnVpbGQtZXJyb3JcIjtjb25zdCBhPVwiZmFzdC1yZWZyZXNoXCI7Y29uc3Qgbz1cImJlZm9yZS1mYXN0LXJlZnJlc2hcIjtjb25zdCBpPVwidW5oYW5kbGVkLWVycm9yXCI7Y29uc3QgbD1cInVuaGFuZGxlZC1yZWplY3Rpb25cIjtsZXQgcz1uZXcgU2V0O2xldCB1PVtdO2Z1bmN0aW9uIGRyYWluKCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt3aGlsZShCb29sZWFuKHUubGVuZ3RoKSYmQm9vbGVhbihzLnNpemUpKXtjb25zdCBlPXUuc2hpZnQoKTtzLmZvckVhY2goKHQ9PnQoZSkpKX19KSwxKX1mdW5jdGlvbiBlbWl0KGUpe3UucHVzaChPYmplY3QuZnJlZXplKHsuLi5lfSkpO2RyYWluKCl9ZnVuY3Rpb24gb24oZSl7aWYocy5oYXMoZSkpe3JldHVybiBmYWxzZX1zLmFkZChlKTtkcmFpbigpO3JldHVybiB0cnVlfWZ1bmN0aW9uIG9mZihlKXtpZihzLmhhcyhlKSl7cy5kZWxldGUoZSk7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfXZhciBjPXJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXJcIik7Y29uc3QgZD0vXFwvX25leHQoXFwvc3RhdGljXFwvLispL2c7ZnVuY3Rpb24gcGFyc2VTdGFjayhlKXtjb25zdCB0PSgwLGMucGFyc2UpKGUpO3JldHVybiB0Lm1hcCgoZT0+e3RyeXtjb25zdCB0PW5ldyBVUkwoZS5maWxlKTtjb25zdCByPWQuZXhlYyh0LnBhdGhuYW1lKTtpZihyKXtjb25zdCB0PXByb2Nlc3MuZW52Ll9fTkVYVF9ESVNUX0RJUj8ucmVwbGFjZSgvXFxcXC9nLFwiL1wiKT8ucmVwbGFjZSgvXFwvJC8sXCJcIik7aWYodCl7ZS5maWxlPVwiZmlsZTovL1wiK3QuY29uY2F0KHIucG9wKCkpfX19Y2F0Y2h7fXJldHVybiBlfSkpfWZ1bmN0aW9uIGdldEZpbGVzeXN0ZW1GcmFtZShlKXtjb25zdCB0PXsuLi5lfTtpZih0eXBlb2YgdC5maWxlPT09XCJzdHJpbmdcIil7aWYodC5maWxlLnN0YXJ0c1dpdGgoXCIvXCIpfHwvXlthLXpdOlxcXFwvaS50ZXN0KHQuZmlsZSl8fHQuZmlsZS5zdGFydHNXaXRoKFwiXFxcXFxcXFxcIikpe3QuZmlsZT1gZmlsZTovLyR7dC5maWxlfWB9fXJldHVybiB0fWNvbnN0IGY9U3ltYm9sKFwiTmV4dGpzRXJyb3JcIik7ZnVuY3Rpb24gZ2V0RXJyb3JTb3VyY2UoZSl7cmV0dXJuIGVbZl18fG51bGx9ZnVuY3Rpb24gZGVjb3JhdGVTZXJ2ZXJFcnJvcihlLHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGYse3dyaXRhYmxlOmZhbHNlLGVudW1lcmFibGU6ZmFsc2UsY29uZmlndXJhYmxlOmZhbHNlLHZhbHVlOnR9KX1mdW5jdGlvbiBnZXRTZXJ2ZXJFcnJvcihlLHQpe2xldCByO3RyeXt0aHJvdyBuZXcgRXJyb3IoZS5tZXNzYWdlKX1jYXRjaChlKXtyPWV9ci5uYW1lPWUubmFtZTt0cnl7ci5zdGFjaz1gJHtyLnRvU3RyaW5nKCl9XFxuJHsoMCxjLnBhcnNlKShlLnN0YWNrKS5tYXAoZ2V0RmlsZXN5c3RlbUZyYW1lKS5tYXAoKGU9PntsZXQgdD1gICAgIGF0ICR7ZS5tZXRob2ROYW1lfWA7aWYoZS5maWxlKXtsZXQgcj1lLmZpbGU7aWYoZS5saW5lTnVtYmVyKXtyKz1gOiR7ZS5saW5lTnVtYmVyfWA7aWYoZS5jb2x1bW4pe3IrPWA6JHtlLmNvbHVtbn1gfX10Kz1gICgke3J9KWB9cmV0dXJuIHR9KSkuam9pbihcIlxcblwiKX1gfWNhdGNoe3Iuc3RhY2s9ZS5zdGFja31kZWNvcmF0ZVNlcnZlckVycm9yKHIsdCk7cmV0dXJuIHJ9ZnVuY3Rpb24gZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKGUsdCxyKXthc3luYyBmdW5jdGlvbiBfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKCl7Y29uc3Qgbj1uZXcgVVJMU2VhcmNoUGFyYW1zO24uYXBwZW5kKFwiaXNTZXJ2ZXJcIixTdHJpbmcodD09PVwic2VydmVyXCIpKTtuLmFwcGVuZChcImlzRWRnZVNlcnZlclwiLFN0cmluZyh0PT09XCJlZGdlLXNlcnZlclwiKSk7bi5hcHBlbmQoXCJlcnJvck1lc3NhZ2VcIixyKTtmb3IoY29uc3QgdCBpbiBlKXtuLmFwcGVuZCh0LChlW3RdPz9cIlwiKS50b1N0cmluZygpKX1jb25zdCBhPW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3Qgbz1zZXRUaW1lb3V0KCgoKT0+YS5hYm9ydCgpKSwzZTMpO2NvbnN0IGk9YXdhaXQgc2VsZi5mZXRjaChgJHtwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwifS9fX25leHRqc19vcmlnaW5hbC1zdGFjay1mcmFtZT8ke24udG9TdHJpbmcoKX1gLHtzaWduYWw6YS5zaWduYWx9KS5maW5hbGx5KCgoKT0+e2NsZWFyVGltZW91dChvKX0pKTtpZighaS5va3x8aS5zdGF0dXM9PT0yMDQpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoYXdhaXQgaS50ZXh0KCkpKX1jb25zdCBsPWF3YWl0IGkuanNvbigpO3JldHVybntlcnJvcjpmYWxzZSxyZWFzb246bnVsbCxleHRlcm5hbDpmYWxzZSxleHBhbmRlZDohQm9vbGVhbigoZS5maWxlPy5pbmNsdWRlcyhcIm5vZGVfbW9kdWxlc1wiKXx8bC5vcmlnaW5hbFN0YWNrRnJhbWU/LmZpbGU/LmluY2x1ZGVzKFwibm9kZV9tb2R1bGVzXCIpKT8/dHJ1ZSksc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZTpsLm9yaWdpbmFsU3RhY2tGcmFtZSxvcmlnaW5hbENvZGVGcmFtZTpsLm9yaWdpbmFsQ29kZUZyYW1lfHxudWxsfX1pZighKGUuZmlsZT8uc3RhcnRzV2l0aChcIndlYnBhY2staW50ZXJuYWw6XCIpfHxlLmZpbGU/LnN0YXJ0c1dpdGgoXCJmaWxlOlwiKSkpe3JldHVybiBQcm9taXNlLnJlc29sdmUoe2Vycm9yOmZhbHNlLHJlYXNvbjpudWxsLGV4dGVybmFsOnRydWUsZXhwYW5kZWQ6ZmFsc2Usc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZTpudWxsLG9yaWdpbmFsQ29kZUZyYW1lOm51bGx9KX1yZXR1cm4gX2dldE9yaWdpbmFsU3RhY2tGcmFtZSgpLmNhdGNoKCh0PT4oe2Vycm9yOnRydWUscmVhc29uOnQ/Lm1lc3NhZ2U/P3Q/LnRvU3RyaW5nKCk/P1wiVW5rbm93biBFcnJvclwiLGV4dGVybmFsOmZhbHNlLGV4cGFuZGVkOmZhbHNlLHNvdXJjZVN0YWNrRnJhbWU6ZSxvcmlnaW5hbFN0YWNrRnJhbWU6bnVsbCxvcmlnaW5hbENvZGVGcmFtZTpudWxsfSkpKX1mdW5jdGlvbiBnZXRPcmlnaW5hbFN0YWNrRnJhbWVzKGUsdCxyKXtyZXR1cm4gUHJvbWlzZS5hbGwoZS5tYXAoKGU9PmdldE9yaWdpbmFsU3RhY2tGcmFtZShlLHQscikpKSl9ZnVuY3Rpb24gZ2V0RnJhbWVTb3VyY2UoZSl7bGV0IHQ9XCJcIjt0cnl7Y29uc3Qgcj1uZXcgVVJMKGUuZmlsZSk7aWYodHlwZW9mIGdsb2JhbFRoaXMhPT1cInVuZGVmaW5lZFwiJiZnbG9iYWxUaGlzLmxvY2F0aW9uPy5vcmlnaW4hPT1yLm9yaWdpbil7aWYoci5vcmlnaW49PT1cIm51bGxcIil7dCs9ci5wcm90b2NvbH1lbHNle3QrPXIub3JpZ2lufX10Kz1yLnBhdGhuYW1lO3QrPVwiIFwifWNhdGNoe3QrPShlLmZpbGV8fFwiKHVua25vd24pXCIpK1wiIFwifWlmKGUubGluZU51bWJlciE9bnVsbCl7aWYoZS5jb2x1bW4hPW51bGwpe3QrPWAoJHtlLmxpbmVOdW1iZXJ9OiR7ZS5jb2x1bW59KSBgfWVsc2V7dCs9YCgke2UubGluZU51bWJlcn0pIGB9fXJldHVybiB0LnNsaWNlKDAsLTEpfWFzeW5jIGZ1bmN0aW9uIGdldEVycm9yQnlUeXBlKGUpe2NvbnN0e2lkOnQsZXZlbnQ6cn09ZTtzd2l0Y2goci50eXBlKXtjYXNlIGk6Y2FzZSBsOntyZXR1cm57aWQ6dCxydW50aW1lOnRydWUsZXJyb3I6ci5yZWFzb24sZnJhbWVzOmF3YWl0IGdldE9yaWdpbmFsU3RhY2tGcmFtZXMoci5mcmFtZXMsZ2V0RXJyb3JTb3VyY2Uoci5yZWFzb24pLHIucmVhc29uLnRvU3RyaW5nKCkpfX1kZWZhdWx0OnticmVha319Y29uc3Qgbj1yO3Rocm93IG5ldyBFcnJvcihcInR5cGUgc3lzdGVtIGludmFyaWFudCB2aW9sYXRpb25cIil9dmFyIG09cmVxdWlyZShcInJlYWN0XCIpO3ZhciBwPWUubihtKTt2YXIgYj1yZXF1aXJlKFwicmVhY3QtZG9tXCIpO2NvbnN0IGc9ZnVuY3Rpb24gUG9ydGFsKHtjaGlsZHJlbjplLGdsb2JhbE92ZXJsYXk6dH0pe2xldCByPW0udXNlUmVmKG51bGwpO2xldCBuPW0udXNlUmVmKG51bGwpO2xldCBhPW0udXNlUmVmKG51bGwpO2xldFssb109bS51c2VTdGF0ZSgpO20udXNlTGF5b3V0RWZmZWN0KCgoKT0+e2NvbnN0IGU9dD9kb2N1bWVudDpyLmN1cnJlbnQub3duZXJEb2N1bWVudDtuLmN1cnJlbnQ9ZS5jcmVhdGVFbGVtZW50KFwibmV4dGpzLXBvcnRhbFwiKTthLmN1cnJlbnQ9bi5jdXJyZW50LmF0dGFjaFNoYWRvdyh7bW9kZTpcIm9wZW5cIn0pO2UuYm9keS5hcHBlbmRDaGlsZChuLmN1cnJlbnQpO28oe30pO3JldHVybigpPT57aWYobi5jdXJyZW50JiZuLmN1cnJlbnQub3duZXJEb2N1bWVudCl7bi5jdXJyZW50Lm93bmVyRG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuLmN1cnJlbnQpfX19KSxbdF0pO3JldHVybiBhLmN1cnJlbnQ/KDAsYi5jcmVhdGVQb3J0YWwpKGUsYS5jdXJyZW50KTp0P251bGw6bS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtyZWY6cn0pfTtmdW5jdGlvbiB1c2VPbkNsaWNrT3V0c2lkZShlLHQpe20udXNlRWZmZWN0KCgoKT0+e2lmKGU9PW51bGx8fHQ9PW51bGwpe3JldHVybn1jb25zdCBsaXN0ZW5lcj1yPT57aWYoIWV8fGUuY29udGFpbnMoci50YXJnZXQpKXtyZXR1cm59dChyKX07Y29uc3Qgcj1lLmdldFJvb3ROb2RlKCk7ci5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsbGlzdGVuZXIpO3IuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixsaXN0ZW5lcik7cmV0dXJuIGZ1bmN0aW9uKCl7ci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsbGlzdGVuZXIpO3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixsaXN0ZW5lcil9fSksW3QsZV0pfWNvbnN0IHY9ZnVuY3Rpb24gRGlhbG9nKHtjaGlsZHJlbjplLHR5cGU6dCxvbkNsb3NlOnIsLi4ubn0pe2NvbnN0W2Esb109bS51c2VTdGF0ZShudWxsKTtjb25zdCBpPW0udXNlQ2FsbGJhY2soKGU9PntvKGUpfSksW10pO3VzZU9uQ2xpY2tPdXRzaWRlKGEscik7bS51c2VFZmZlY3QoKCgpPT57aWYoYT09bnVsbCl7cmV0dXJufWNvbnN0IGU9YS5nZXRSb290Tm9kZSgpO2lmKCEoZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpKXtyZXR1cm59Y29uc3QgdD1lO2Z1bmN0aW9uIGhhbmRsZXIoZSl7Y29uc3Qgcj10LmFjdGl2ZUVsZW1lbnQ7aWYoZS5rZXk9PT1cIkVudGVyXCImJnIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmci5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpPT09XCJsaW5rXCIpe2UucHJldmVudERlZmF1bHQoKTtlLnN0b3BQcm9wYWdhdGlvbigpO3IuY2xpY2soKX19dC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGhhbmRsZXIpO3JldHVybigpPT50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaGFuZGxlcil9KSxbYV0pO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7cmVmOmksXCJkYXRhLW5leHRqcy1kaWFsb2dcIjp0cnVlLHRhYkluZGV4Oi0xLHJvbGU6XCJkaWFsb2dcIixcImFyaWEtbGFiZWxsZWRieVwiOm5bXCJhcmlhLWxhYmVsbGVkYnlcIl0sXCJhcmlhLWRlc2NyaWJlZGJ5XCI6bltcImFyaWEtZGVzY3JpYmVkYnlcIl0sXCJhcmlhLW1vZGFsXCI6XCJ0cnVlXCJ9LG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJcIjp0cnVlLGNsYXNzTmFtZTpgYmFubmVyLSR7dH1gfSksZSl9O2NvbnN0IGg9ZnVuY3Rpb24gRGlhbG9nQm9keSh7Y2hpbGRyZW46ZSxjbGFzc05hbWU6dH0pe3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctYm9keVwiOnRydWUsY2xhc3NOYW1lOnR9LGUpfTtjb25zdCB4PWZ1bmN0aW9uIERpYWxvZ0NvbnRlbnQoe2NoaWxkcmVuOmUsY2xhc3NOYW1lOnR9KXtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRcIjp0cnVlLGNsYXNzTmFtZTp0fSxlKX07Y29uc3QgeT1mdW5jdGlvbiBEaWFsb2dIZWFkZXIoe2NoaWxkcmVuOmUsY2xhc3NOYW1lOnR9KXtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlclwiOnRydWUsY2xhc3NOYW1lOnR9LGUpfTtmdW5jdGlvbiBub29wKGUsLi4udCl7Y29uc3Qgcj1lLmxlbmd0aC0xO3JldHVybiBlLnNsaWNlKDAscikucmVkdWNlKCgoZSxyLG4pPT5lK3IrdFtuXSksXCJcIikrZVtyXX1jb25zdCBFPW5vb3BgXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXApO1xuICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tc2l6ZS1nYXAtaGFsZikgdmFyKC0tc2l6ZS1nYXAtZG91YmxlKVxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIH1cblxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNXB4KTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XG4gICAgICBtYXgtd2lkdGg6IDU0MHB4O1xuICAgICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcCkgdmFyKC0tc2l6ZS1nYXAtcXVhZCkgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XG4gICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcbiAgICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci13YXJuaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFuc2kteWVsbG93KTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLWVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXTo6YWZ0ZXIge1xuICAgIHotaW5kZXg6IDI7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiBiYW5uZXIgd2lkdGg6ICovXG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIGNhbGMocGFkZGluZyArIGJhbm5lciB3aWR0aCBvZmZzZXQpICovXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXG4gICAgICB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5gO3ZhciB3PXJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcGxhdGZvcm1cIik7dmFyIGs9ZS5uKHcpO3ZhciBTPXJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvY3NzLmVzY2FwZVwiKTt2YXIgVD1lLm4oUyk7ZnVuY3Rpb24gbm9kZUFycmF5KGUpe2lmKCFlKXtyZXR1cm5bXX1pZihBcnJheS5pc0FycmF5KGUpKXtyZXR1cm4gZX1pZihlLm5vZGVUeXBlIT09dW5kZWZpbmVkKXtyZXR1cm5bZV19aWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZSl9aWYoZS5sZW5ndGghPT11bmRlZmluZWQpe3JldHVybltdLnNsaWNlLmNhbGwoZSwwKX10aHJvdyBuZXcgVHlwZUVycm9yKFwidW5leHBlY3RlZCBpbnB1dCBcIitTdHJpbmcoZSkpfWZ1bmN0aW9uIGNvbnRleHRUb0VsZW1lbnQoZSl7dmFyIHQ9ZS5jb250ZXh0LHI9ZS5sYWJlbCxuPXI9PT11bmRlZmluZWQ/XCJjb250ZXh0LXRvLWVsZW1lbnRcIjpyLGE9ZS5yZXNvbHZlRG9jdW1lbnQsbz1lLmRlZmF1bHRUb0RvY3VtZW50O3ZhciBpPW5vZGVBcnJheSh0KVswXTtpZihhJiZpJiZpLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9OT0RFKXtpPWkuZG9jdW1lbnRFbGVtZW50fWlmKCFpJiZvKXtyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fWlmKCFpKXt0aHJvdyBuZXcgVHlwZUVycm9yKG4rXCIgcmVxdWlyZXMgdmFsaWQgb3B0aW9ucy5jb250ZXh0XCIpfWlmKGkubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSYmaS5ub2RlVHlwZSE9PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSl7dGhyb3cgbmV3IFR5cGVFcnJvcihuK1wiIHJlcXVpcmVzIG9wdGlvbnMuY29udGV4dCB0byBiZSBhbiBFbGVtZW50XCIpfXJldHVybiBpfWZ1bmN0aW9uIGdldFNoYWRvd0hvc3QoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQ7dmFyIHI9Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJnZXQvc2hhZG93LWhvc3RcIixjb250ZXh0OnR9KTt2YXIgbj1udWxsO3doaWxlKHIpe249cjtyPXIucGFyZW50Tm9kZX1pZihuLm5vZGVUeXBlPT09bi5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFJiZuLmhvc3Qpe3JldHVybiBuLmhvc3R9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZ2V0RG9jdW1lbnQoZSl7aWYoIWUpe3JldHVybiBkb2N1bWVudH1pZihlLm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9OT0RFKXtyZXR1cm4gZX1yZXR1cm4gZS5vd25lckRvY3VtZW50fHxkb2N1bWVudH1mdW5jdGlvbiBpc0FjdGl2ZUVsZW1lbnQoZSl7dmFyIHQ9Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJpcy9hY3RpdmUtZWxlbWVudFwiLHJlc29sdmVEb2N1bWVudDp0cnVlLGNvbnRleHQ6ZX0pO3ZhciByPWdldERvY3VtZW50KHQpO2lmKHIuYWN0aXZlRWxlbWVudD09PXQpe3JldHVybiB0cnVlfXZhciBuPWdldFNoYWRvd0hvc3Qoe2NvbnRleHQ6dH0pO2lmKG4mJm4uc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50PT09dCl7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGdldFBhcmVudHMoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQ7dmFyIHI9W107dmFyIG49Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJnZXQvcGFyZW50c1wiLGNvbnRleHQ6dH0pO3doaWxlKG4pe3IucHVzaChuKTtuPW4ucGFyZW50Tm9kZTtpZihuJiZuLm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpe249bnVsbH19cmV0dXJuIHJ9dmFyIEM9W1wibWF0Y2hlc1wiLFwid2Via2l0TWF0Y2hlc1NlbGVjdG9yXCIsXCJtb3pNYXRjaGVzU2VsZWN0b3JcIixcIm1zTWF0Y2hlc1NlbGVjdG9yXCJdO3ZhciBqPW51bGw7ZnVuY3Rpb24gZmluZE1ldGhvZE5hbWUoZSl7Qy5zb21lKChmdW5jdGlvbih0KXtpZighZVt0XSl7cmV0dXJuIGZhbHNlfWo9dDtyZXR1cm4gdHJ1ZX0pKX1mdW5jdGlvbiBlbGVtZW50TWF0Y2hlcyhlLHQpe2lmKCFqKXtmaW5kTWV0aG9kTmFtZShlKX1yZXR1cm4gZVtqXSh0KX12YXIgQT1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGsoKSkpO3ZhciBPPUEub3MuZmFtaWx5fHxcIlwiO3ZhciBfPU89PT1cIkFuZHJvaWRcIjt2YXIgST1PLnNsaWNlKDAsNyk9PT1cIldpbmRvd3NcIjt2YXIgTj1PPT09XCJPUyBYXCI7dmFyIEY9Tz09PVwiaU9TXCI7dmFyIEw9QS5sYXlvdXQ9PT1cIkJsaW5rXCI7dmFyIEQ9QS5sYXlvdXQ9PT1cIkdlY2tvXCI7dmFyIE09QS5sYXlvdXQ9PT1cIlRyaWRlbnRcIjt2YXIgUj1BLmxheW91dD09PVwiRWRnZUhUTUxcIjt2YXIgej1BLmxheW91dD09PVwiV2ViS2l0XCI7dmFyIEI9cGFyc2VGbG9hdChBLnZlcnNpb24pO3ZhciBIPU1hdGguZmxvb3IoQik7QS5tYWpvclZlcnNpb249SDtBLmlzPXtBTkRST0lEOl8sV0lORE9XUzpJLE9TWDpOLElPUzpGLEJMSU5LOkwsR0VDS086RCxUUklERU5UOk0sRURHRTpSLFdFQktJVDp6LElFOTpNJiZIPT09OSxJRTEwOk0mJkg9PT0xMCxJRTExOk0mJkg9PT0xMX07ZnVuY3Rpb24gYmVmb3JlKCl7dmFyIGU9e2FjdGl2ZUVsZW1lbnQ6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCx3aW5kb3dTY3JvbGxUb3A6d2luZG93LnNjcm9sbFRvcCx3aW5kb3dTY3JvbGxMZWZ0OndpbmRvdy5zY3JvbGxMZWZ0LGJvZHlTY3JvbGxUb3A6ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AsYm9keVNjcm9sbExlZnQ6ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0fTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO3Quc2V0QXR0cmlidXRlKFwic3R5bGVcIixcInBvc2l0aW9uOmFic29sdXRlOyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6LTJweDsgd2lkdGg6MXB4OyBoZWlnaHQ6MXB4OyBvdmVyZmxvdzpoaWRkZW47XCIpO3Quc2V0QXR0cmlidXRlKFwiYXJpYS1saXZlXCIsXCJvZmZcIik7dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWJ1c3lcIixcInRydWVcIik7dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLFwidHJ1ZVwiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciByPXQuY29udGVudFdpbmRvdzt2YXIgbj1yLmRvY3VtZW50O24ub3BlbigpO24uY2xvc2UoKTt2YXIgYT1uLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bi5ib2R5LmFwcGVuZENoaWxkKGEpO2UuaWZyYW1lPXQ7ZS53cmFwcGVyPWE7ZS53aW5kb3c9cjtlLmRvY3VtZW50PW47cmV0dXJuIGV9ZnVuY3Rpb24gdGVzdChlLHQpe2Uud3JhcHBlci5pbm5lckhUTUw9XCJcIjt2YXIgcj10eXBlb2YgdC5lbGVtZW50PT09XCJzdHJpbmdcIj9lLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodC5lbGVtZW50KTp0LmVsZW1lbnQoZS53cmFwcGVyLGUuZG9jdW1lbnQpO3ZhciBuPXQubXV0YXRlJiZ0Lm11dGF0ZShyLGUud3JhcHBlcixlLmRvY3VtZW50KTtpZighbiYmbiE9PWZhbHNlKXtuPXJ9IXIucGFyZW50Tm9kZSYmZS53cmFwcGVyLmFwcGVuZENoaWxkKHIpO24mJm4uZm9jdXMmJm4uZm9jdXMoKTtyZXR1cm4gdC52YWxpZGF0ZT90LnZhbGlkYXRlKHIsbixlLmRvY3VtZW50KTplLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1ufWZ1bmN0aW9uIGFmdGVyKGUpe2lmKGUuYWN0aXZlRWxlbWVudD09PWRvY3VtZW50LmJvZHkpe2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1ciYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7aWYoQS5pcy5JRTEwKXtkb2N1bWVudC5ib2R5LmZvY3VzKCl9fWVsc2V7ZS5hY3RpdmVFbGVtZW50JiZlLmFjdGl2ZUVsZW1lbnQuZm9jdXMmJmUuYWN0aXZlRWxlbWVudC5mb2N1cygpfWRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZS5pZnJhbWUpO3dpbmRvdy5zY3JvbGxUb3A9ZS53aW5kb3dTY3JvbGxUb3A7d2luZG93LnNjcm9sbExlZnQ9ZS53aW5kb3dTY3JvbGxMZWZ0O2RvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPWUuYm9keVNjcm9sbFRvcDtkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ9ZS5ib2R5U2Nyb2xsTGVmdH1mdW5jdGlvbiBkZXRlY3RGb2N1cyhlKXt2YXIgdD1iZWZvcmUoKTt2YXIgcj17fTtPYmplY3Qua2V5cyhlKS5tYXAoKGZ1bmN0aW9uKG4pe3Jbbl09dGVzdCh0LGVbbl0pfSkpO2FmdGVyKHQpO3JldHVybiByfXZhciBQPVwiMS40LjFcIjtmdW5jdGlvbiByZWFkTG9jYWxTdG9yYWdlKGUpe3ZhciB0PXZvaWQgMDt0cnl7dD13aW5kb3cubG9jYWxTdG9yYWdlJiZ3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk7dD10P0pTT04ucGFyc2UodCk6e319Y2F0Y2goZSl7dD17fX1yZXR1cm4gdH1mdW5jdGlvbiB3cml0ZUxvY2FsU3RvcmFnZShlLHQpe2lmKCFkb2N1bWVudC5oYXNGb2N1cygpKXt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGUpfWNhdGNoKGUpe31yZXR1cm59dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2UmJndpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLEpTT04uc3RyaW5naWZ5KHQpKX1jYXRjaChlKXt9fXZhciBxPXR5cGVvZiB3aW5kb3chPT1cInVuZGVmaW5lZFwiJiZ3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudHx8XCJcIjt2YXIgVz1cImFsbHktc3VwcG9ydHMtY2FjaGVcIjt2YXIgVj1yZWFkTG9jYWxTdG9yYWdlKFcpO2lmKFYudXNlckFnZW50IT09cXx8Vi52ZXJzaW9uIT09UCl7Vj17fX1WLnVzZXJBZ2VudD1xO1YudmVyc2lvbj1QO3ZhciAkPXtnZXQ6ZnVuY3Rpb24gZ2V0KCl7cmV0dXJuIFZ9LHNldDpmdW5jdGlvbiBzZXQoZSl7T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7Vlt0XT1lW3RdfSkpO1YudGltZT0obmV3IERhdGUpLnRvSVNPU3RyaW5nKCk7d3JpdGVMb2NhbFN0b3JhZ2UoVyxWKX19O2Z1bmN0aW9uIGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IoKXt2YXIgZT12b2lkIDA7dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJodG1sID4+PiA6Zmlyc3QtY2hpbGRcIik7ZT1cIj4+PlwifWNhdGNoKHQpe3RyeXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaHRtbCAvZGVlcC8gOmZpcnN0LWNoaWxkXCIpO2U9XCIvZGVlcC9cIn1jYXRjaCh0KXtlPVwiXCJ9fXJldHVybiBlfXZhciBLPVwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3XCI7dmFyIFo9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPSc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPicrJzxhcmVhIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicrJzxpbWcgdXNlbWFwPVwiI2ltYWdlLW1hcC10YWJpbmRleC10ZXN0XCIgdGFiaW5kZXg9XCItMVwiIGFsdD1cIlwiIHNyYz1cIicrSysnXCI+JztyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwiYXJlYVwiKX19O3ZhciBVPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD0nPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj4nKyc8YXJlYSBocmVmPVwiI3ZvaWRcIiB0YWJpbmRleD1cIi0xXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JysnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiBhbHQ9XCJcIiBzcmM9XCInK0srJ1wiPic7cmV0dXJuIGZhbHNlfSx2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlLHQscil7aWYoQS5pcy5HRUNLTyl7cmV0dXJuIHRydWV9dmFyIG49ZS5xdWVyeVNlbGVjdG9yKFwiYXJlYVwiKTtuLmZvY3VzKCk7cmV0dXJuIHIuYWN0aXZlRWxlbWVudD09PW59fTt2YXIgRz17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9JzxtYXAgbmFtZT1cImltYWdlLW1hcC1hcmVhLWhyZWYtdGVzdFwiPicrJzxhcmVhIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicrJzxpbWcgdXNlbWFwPVwiI2ltYWdlLW1hcC1hcmVhLWhyZWYtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicrSysnXCI+JztyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwiYXJlYVwiKX0sdmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSx0LHIpe2lmKEEuaXMuR0VDS08pe3JldHVybiB0cnVlfXJldHVybiByLmFjdGl2ZUVsZW1lbnQ9PT10fX07dmFyIFg9e25hbWU6XCJjYW4tZm9jdXMtYXVkaW8td2l0aG91dC1jb250cm9sc1wiLGVsZW1lbnQ6XCJhdWRpb1wiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7dHJ5e2Uuc2V0QXR0cmlidXRlKFwic3JjXCIsSyl9Y2F0Y2goZSl7fX19O3ZhciBKPVwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy9aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaXCI7dmFyIFE9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPSc8bWFwIG5hbWU9XCJicm9rZW4taW1hZ2UtbWFwLXRlc3RcIj48YXJlYSBocmVmPVwiI3ZvaWRcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nKyc8aW1nIHVzZW1hcD1cIiNicm9rZW4taW1hZ2UtbWFwLXRlc3RcIiBhbHQ9XCJcIiBzcmM9XCInK0orJ1wiPic7cmV0dXJuIGUucXVlcnlTZWxlY3RvcihcImFyZWFcIil9fTt2YXIgWT17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIik7ZS5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLFwiZGlzcGxheTogLXdlYmtpdC1mbGV4OyBkaXNwbGF5OiAtbXMtZmxleGJveDsgZGlzcGxheTogZmxleDtcIik7ZS5pbm5lckhUTUw9JzxzcGFuIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+aGVsbG88L3NwYW4+JztyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwic3BhblwiKX19O3ZhciBlZT17ZWxlbWVudDpcImZpZWxkc2V0XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsMCk7ZS5zZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiLFwiZGlzYWJsZWRcIil9fTt2YXIgdGU9e2VsZW1lbnQ6XCJmaWVsZHNldFwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9XCI8bGVnZW5kPmxlZ2VuZDwvbGVnZW5kPjxwPmNvbnRlbnQ8L3A+XCJ9fTt2YXIgcmU9e2VsZW1lbnQ6XCJzcGFuXCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsXCJkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4O1wiKTtlLmlubmVySFRNTD0nPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5oZWxsbzwvc3Bhbj4nfX07dmFyIG5lPXtlbGVtZW50OlwiZm9ybVwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLDApO2Uuc2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIixcImRpc2FibGVkXCIpfX07dmFyIGFlPXtlbGVtZW50OlwiYVwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5ocmVmPVwiI3ZvaWRcIjtlLmlubmVySFRNTD0nPGltZyBpc21hcCBzcmM9XCInK0srJ1wiIGFsdD1cIlwiPic7cmV0dXJuIGUucXVlcnlTZWxlY3RvcihcImltZ1wiKX19O3ZhciBvZT17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9JzxtYXAgbmFtZT1cImltYWdlLW1hcC10YWJpbmRleC10ZXN0XCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JysnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiB0YWJpbmRleD1cIi0xXCIgYWx0PVwiXCIgJysnc3JjPVwiJytLKydcIj4nO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJpbWdcIil9fTt2YXIgaWU9e2VsZW1lbnQ6ZnVuY3Rpb24gZWxlbWVudChlLHQpe3ZhciByPXQuY3JlYXRlRWxlbWVudChcImlmcmFtZVwiKTtlLmFwcGVuZENoaWxkKHIpO3ZhciBuPXIuY29udGVudFdpbmRvdy5kb2N1bWVudDtuLm9wZW4oKTtuLmNsb3NlKCk7cmV0dXJuIHJ9LG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCI7dmFyIHQ9ZS5jb250ZW50V2luZG93LmRvY3VtZW50O3ZhciByPXQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO3QuYm9keS5hcHBlbmRDaGlsZChyKTtyZXR1cm4gcn0sdmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSl7dmFyIHQ9ZS5jb250ZW50V2luZG93LmRvY3VtZW50O3ZhciByPXQucXVlcnlTZWxlY3RvcihcImlucHV0XCIpO3JldHVybiB0LmFjdGl2ZUVsZW1lbnQ9PT1yfX07dmFyIGxlPSFBLmlzLldFQktJVDtmdW5jdGlvbiBmb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdCgpe3JldHVybiBsZX12YXIgc2U9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIixcImludmFsaWQtdmFsdWVcIil9fTt2YXIgdWU9e2VsZW1lbnQ6XCJsYWJlbFwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIil9LHZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUsdCxyKXt2YXIgbj1lLm9mZnNldEhlaWdodDtlLmZvY3VzKCk7cmV0dXJuIHIuYWN0aXZlRWxlbWVudD09PWV9fTt2YXIgY2U9XCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0YlwiK1wiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCcFpEMGljM1puSWo0OGRHVjRkQ0I0UFNJeE1DSWdlVDBpTWpBaUlHbGtQU0pcIitcInpkbWN0YkdsdWF5MTBaWGgwSWo1MFpYaDBQQzkwWlhoMFBqd3ZjM1puUGc9PVwiO3ZhciBkZT17ZWxlbWVudDpcIm9iamVjdFwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJpbWFnZS9zdmcreG1sXCIpO2Uuc2V0QXR0cmlidXRlKFwiZGF0YVwiLGNlKTtlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsXCIyMDBcIik7ZS5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIixcIjUwXCIpO2Uuc3R5bGUudmlzaWJpbGl0eT1cImhpZGRlblwifX07dmFyIGZlPXtuYW1lOlwiY2FuLWZvY3VzLW9iamVjdC1zdmdcIixlbGVtZW50Olwib2JqZWN0XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInR5cGVcIixcImltYWdlL3N2Zyt4bWxcIik7ZS5zZXRBdHRyaWJ1dGUoXCJkYXRhXCIsY2UpO2Uuc2V0QXR0cmlidXRlKFwid2lkdGhcIixcIjIwMFwiKTtlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLFwiNTBcIil9LHZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUsdCxyKXtpZihBLmlzLkdFQ0tPKXtyZXR1cm4gdHJ1ZX1yZXR1cm4gci5hY3RpdmVFbGVtZW50PT09ZX19O3ZhciBtZT0hQS5pcy5JRTk7ZnVuY3Rpb24gZm9jdXNPYmplY3RTd2YoKXtyZXR1cm4gbWV9dmFyIHBlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD0nPG1hcCBuYW1lPVwiZm9jdXMtcmVkaXJlY3QtaW1nLXVzZW1hcFwiPjxhcmVhIGhyZWY9XCIjdm9pZFwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicrJzxpbWcgdXNlbWFwPVwiI2ZvY3VzLXJlZGlyZWN0LWltZy11c2VtYXBcIiBhbHQ9XCJcIiAnKydzcmM9XCInK0srJ1wiPic7cmV0dXJuIGUucXVlcnlTZWxlY3RvcihcImltZ1wiKX0sdmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSx0LHIpe3ZhciBuPWUucXVlcnlTZWxlY3RvcihcImFyZWFcIik7cmV0dXJuIHIuYWN0aXZlRWxlbWVudD09PW59fTt2YXIgYmU9e2VsZW1lbnQ6XCJmaWVsZHNldFwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9JzxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+PGlucHV0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdGFiaW5kZXg9XCIwXCI+JztyZXR1cm4gZmFsc2V9LHZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUsdCxyKXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PVwiLTFcIl0nKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PVwiMFwiXScpO2UuZm9jdXMoKTtlLnF1ZXJ5U2VsZWN0b3IoXCJsZWdlbmRcIikuZm9jdXMoKTtyZXR1cm4gci5hY3RpdmVFbGVtZW50PT09biYmXCJmb2N1c2FibGVcInx8ci5hY3RpdmVFbGVtZW50PT09YSYmXCJ0YWJiYWJsZVwifHxcIlwifX07dmFyIGdlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsXCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgb3ZlcmZsb3c6IGF1dG87XCIpO2UuaW5uZXJIVE1MPSc8ZGl2IHN0eWxlPVwid2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDQwcHg7XCI+c2Nyb2xsYWJsZSBjb250ZW50PC9kaXY+JztyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwiZGl2XCIpfX07dmFyIHZlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsXCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDtcIik7ZS5pbm5lckhUTUw9JzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nfX07dmFyIGhlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsXCJ3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgb3ZlcmZsb3c6IGF1dG87XCIpO2UuaW5uZXJIVE1MPSc8ZGl2IHN0eWxlPVwid2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDQwcHg7XCI+c2Nyb2xsYWJsZSBjb250ZW50PC9kaXY+J319O3ZhciB4ZT17ZWxlbWVudDpcImRldGFpbHNcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPVwiPHN1bW1hcnk+Zm9vPC9zdW1tYXJ5PjxwPmNvbnRlbnQ8L3A+XCI7cmV0dXJuIGUuZmlyc3RFbGVtZW50Q2hpbGR9fTtmdW5jdGlvbiBtYWtlRm9jdXNhYmxlRm9yZWlnbk9iamVjdCgpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJmb3JlaWduT2JqZWN0XCIpO2Uud2lkdGguYmFzZVZhbC52YWx1ZT0zMDtlLmhlaWdodC5iYXNlVmFsLnZhbHVlPTMwO2UuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpKTtlLmxhc3RDaGlsZC50eXBlPVwidGV4dFwiO3JldHVybiBlfWZ1bmN0aW9uIGZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2soZSl7dmFyIHQ9ZS5vd25lclNWR0VsZW1lbnR8fGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PVwic3ZnXCI7aWYoIXQpe3JldHVybiBmYWxzZX12YXIgcj1tYWtlRm9jdXNhYmxlRm9yZWlnbk9iamVjdCgpO2UuYXBwZW5kQ2hpbGQocik7dmFyIG49ci5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIik7bi5mb2N1cygpO24uZGlzYWJsZWQ9dHJ1ZTtlLnJlbW92ZUNoaWxkKHIpO3JldHVybiB0cnVlfWZ1bmN0aW9uIGdlbmVyYXRlKGUpe3JldHVybic8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj4nK2UrXCI8L3N2Zz5cIn1mdW5jdGlvbiBtYWludGFpbl90YWJfZm9jdXNfZm9jdXMoZSl7aWYoZS5mb2N1cyl7cmV0dXJufXRyeXtIVE1MRWxlbWVudC5wcm90b3R5cGUuZm9jdXMuY2FsbChlKX1jYXRjaCh0KXtmb2N1c1N2Z0ZvcmVpZ25PYmplY3RIYWNrKGUpfX1mdW5jdGlvbiB2YWxpZGF0ZShlLHQscil7bWFpbnRhaW5fdGFiX2ZvY3VzX2ZvY3VzKHQpO3JldHVybiByLmFjdGl2ZUVsZW1lbnQ9PT10fXZhciB5ZT17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9Z2VuZXJhdGUoJzx0ZXh0IGZvY3VzYWJsZT1cInRydWVcIj5hPC90ZXh0PicpO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJ0ZXh0XCIpfSx2YWxpZGF0ZTp2YWxpZGF0ZX07dmFyIEVlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD1nZW5lcmF0ZSgnPHRleHQgdGFiaW5kZXg9XCIwXCI+YTwvdGV4dD4nKTtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwidGV4dFwiKX0sdmFsaWRhdGU6dmFsaWRhdGV9O3ZhciB3ZT17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9Z2VuZXJhdGUoJzx0ZXh0IHRhYmluZGV4PVwiLTFcIj5hPC90ZXh0PicpO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJ0ZXh0XCIpfSx2YWxpZGF0ZTp2YWxpZGF0ZX07dmFyIGtlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD1nZW5lcmF0ZShbJzxnIGlkPVwiYWxseS10ZXN0LXRhcmdldFwiPjxhIHhsaW5rOmhyZWY9XCIjdm9pZFwiPjx0ZXh0Pmxpbms8L3RleHQ+PC9hPjwvZz4nLCc8dXNlIHhsaW5rOmhyZWY9XCIjYWxseS10ZXN0LXRhcmdldFwiIHg9XCIwXCIgeT1cIjBcIiB0YWJpbmRleD1cIi0xXCIgLz4nXS5qb2luKFwiXCIpKTtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwidXNlXCIpfSx2YWxpZGF0ZTp2YWxpZGF0ZX07dmFyIFNlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD1nZW5lcmF0ZSgnPGZvcmVpZ25PYmplY3QgdGFiaW5kZXg9XCItMVwiPjxpbnB1dCB0eXBlPVwidGV4dFwiIC8+PC9mb3JlaWduT2JqZWN0PicpO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJmb3JlaWduT2JqZWN0XCIpfHxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiZm9yZWlnbk9iamVjdFwiKVswXX0sdmFsaWRhdGU6dmFsaWRhdGV9O3ZhciBUZT1Cb29sZWFuKEEuaXMuR0VDS08mJnR5cGVvZiBTVkdFbGVtZW50IT09XCJ1bmRlZmluZWRcIiYmU1ZHRWxlbWVudC5wcm90b3R5cGUuZm9jdXMpO2Z1bmN0aW9uIGZvY3VzU3ZnSW5JZnJhbWUoKXtyZXR1cm4gVGV9dmFyIENlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD1nZW5lcmF0ZShcIlwiKTtyZXR1cm4gZS5maXJzdENoaWxkfSx2YWxpZGF0ZTp2YWxpZGF0ZX07dmFyIGplPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCIzeFwiKX19O3ZhciBBZT17ZWxlbWVudDpcInRhYmxlXCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlLHQscil7dmFyIG49ci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7bi5pbm5lckhUTUw9XCI8dHI+PHRkPmNlbGw8L3RkPjwvdHI+XCI7ZS5hcHBlbmRDaGlsZChuKX19O3ZhciBPZT17ZWxlbWVudDpcInZpZGVvXCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXt0cnl7ZS5zZXRBdHRyaWJ1dGUoXCJzcmNcIixLKX1jYXRjaChlKXt9fX07dmFyIF9lPUEuaXMuR0VDS098fEEuaXMuVFJJREVOVHx8QS5pcy5FREdFO2Z1bmN0aW9uIHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb24oKXtyZXR1cm4gX2V9dmFyIEllPXtjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yOmNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IsZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3Q6Zm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QsZm9jdXNPYmplY3RTd2Y6Zm9jdXNPYmplY3RTd2YsZm9jdXNTdmdJbklmcmFtZTpmb2N1c1N2Z0luSWZyYW1lLHRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb246dGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbn07dmFyIE5lPXtmb2N1c0FyZWFJbWdUYWJpbmRleDpaLGZvY3VzQXJlYVRhYmluZGV4OlUsZm9jdXNBcmVhV2l0aG91dEhyZWY6Ryxmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzOlgsZm9jdXNCcm9rZW5JbWFnZU1hcDpRLGZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3g6WSxmb2N1c0ZpZWxkc2V0RGlzYWJsZWQ6ZWUsZm9jdXNGaWVsZHNldDp0ZSxmb2N1c0ZsZXhib3hDb250YWluZXI6cmUsZm9jdXNGb3JtRGlzYWJsZWQ6bmUsZm9jdXNJbWdJc21hcDphZSxmb2N1c0ltZ1VzZW1hcFRhYmluZGV4Om9lLGZvY3VzSW5IaWRkZW5JZnJhbWU6aWUsZm9jdXNJbnZhbGlkVGFiaW5kZXg6c2UsZm9jdXNMYWJlbFRhYmluZGV4OnVlLGZvY3VzT2JqZWN0U3ZnOmZlLGZvY3VzT2JqZWN0U3ZnSGlkZGVuOmRlLGZvY3VzUmVkaXJlY3RJbWdVc2VtYXA6cGUsZm9jdXNSZWRpcmVjdExlZ2VuZDpiZSxmb2N1c1Njcm9sbEJvZHk6Z2UsZm9jdXNTY3JvbGxDb250YWluZXJXaXRob3V0T3ZlcmZsb3c6dmUsZm9jdXNTY3JvbGxDb250YWluZXI6aGUsZm9jdXNTdW1tYXJ5OnhlLGZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlOnllLGZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGU6RWUsZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlOndlLGZvY3VzU3ZnVXNlVGFiaW5kZXg6a2UsZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXg6U2UsZm9jdXNTdmc6Q2UsZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVyczpqZSxmb2N1c1RhYmxlOkFlLGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHM6T2V9O2Z1bmN0aW9uIGV4ZWN1dGVUZXN0cygpe3ZhciBlPWRldGVjdEZvY3VzKE5lKTtPYmplY3Qua2V5cyhJZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XT1JZVt0XSgpfSkpO3JldHVybiBlfXZhciBGZT1udWxsO2Z1bmN0aW9uIF9zdXBwb3J0cygpe2lmKEZlKXtyZXR1cm4gRmV9RmU9JC5nZXQoKTtpZighRmUudGltZSl7JC5zZXQoZXhlY3V0ZVRlc3RzKCkpO0ZlPSQuZ2V0KCl9cmV0dXJuIEZlfXZhciBMZT12b2lkIDA7dmFyIERlPS9eXFxzKigtfFxcKyk/WzAtOV0rXFxzKiQvO3ZhciBNZT0vXlxccyooLXxcXCspP1swLTldKy4qJC87ZnVuY3Rpb24gaXNWYWxpZFRhYmluZGV4KGUpe2lmKCFMZSl7TGU9X3N1cHBvcnRzKCl9dmFyIHQ9TGUuZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVycz9NZTpEZTt2YXIgcj1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImlzL3ZhbGlkLXRhYmluZGV4XCIscmVzb2x2ZURvY3VtZW50OnRydWUsY29udGV4dDplfSk7dmFyIG49ci5oYXNBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTt2YXIgYT1yLmhhc0F0dHJpYnV0ZShcInRhYkluZGV4XCIpO2lmKCFuJiYhYSl7cmV0dXJuIGZhbHNlfXZhciBvPXIub3duZXJTVkdFbGVtZW50fHxyLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1cInN2Z1wiO2lmKG8mJiFMZS5mb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlKXtyZXR1cm4gZmFsc2V9aWYoTGUuZm9jdXNJbnZhbGlkVGFiaW5kZXgpe3JldHVybiB0cnVlfXZhciBpPXIuZ2V0QXR0cmlidXRlKG4/XCJ0YWJpbmRleFwiOlwidGFiSW5kZXhcIik7aWYoaT09PVwiLTMyNzY4XCIpe3JldHVybiBmYWxzZX1yZXR1cm4gQm9vbGVhbihpJiZ0LnRlc3QoaSkpfWZ1bmN0aW9uIHRhYmluZGV4VmFsdWUoZSl7aWYoIWlzVmFsaWRUYWJpbmRleChlKSl7cmV0dXJuIG51bGx9dmFyIHQ9ZS5oYXNBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTt2YXIgcj10P1widGFiaW5kZXhcIjpcInRhYkluZGV4XCI7dmFyIG49cGFyc2VJbnQoZS5nZXRBdHRyaWJ1dGUociksMTApO3JldHVybiBpc05hTihuKT8tMTpufWZ1bmN0aW9uIGlzVXNlck1vZGlmeVdyaXRhYmxlKGUpe3ZhciB0PWUud2Via2l0VXNlck1vZGlmeXx8XCJcIjtyZXR1cm4gQm9vbGVhbih0JiZ0LmluZGV4T2YoXCJ3cml0ZVwiKSE9PS0xKX1mdW5jdGlvbiBoYXNDc3NPdmVyZmxvd1Njcm9sbChlKXtyZXR1cm5bZS5nZXRQcm9wZXJ0eVZhbHVlKFwib3ZlcmZsb3dcIiksZS5nZXRQcm9wZXJ0eVZhbHVlKFwib3ZlcmZsb3cteFwiKSxlLmdldFByb3BlcnR5VmFsdWUoXCJvdmVyZmxvdy15XCIpXS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZT09PVwiYXV0b1wifHxlPT09XCJzY3JvbGxcIn0pKX1mdW5jdGlvbiBoYXNDc3NEaXNwbGF5RmxleChlKXtyZXR1cm4gZS5kaXNwbGF5LmluZGV4T2YoXCJmbGV4XCIpPi0xfWZ1bmN0aW9uIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlLHQscixuKXtpZih0IT09XCJkaXZcIiYmdCE9PVwic3BhblwiKXtyZXR1cm4gZmFsc2V9aWYociYmciE9PVwiZGl2XCImJnIhPT1cInNwYW5cIiYmIWhhc0Nzc092ZXJmbG93U2Nyb2xsKG4pKXtyZXR1cm4gZmFsc2V9cmV0dXJuIGUub2Zmc2V0SGVpZ2h0PGUuc2Nyb2xsSGVpZ2h0fHxlLm9mZnNldFdpZHRoPGUuc2Nyb2xsV2lkdGh9dmFyIFJlPXZvaWQgMDtmdW5jdGlvbiBpc0ZvY3VzUmVsZXZhbnRSdWxlcygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dCxyPWUuZXhjZXB0LG49cj09PXVuZGVmaW5lZD97ZmxleGJveDpmYWxzZSxzY3JvbGxhYmxlOmZhbHNlLHNoYWRvdzpmYWxzZX06cjtpZighUmUpe1JlPV9zdXBwb3J0cygpfXZhciBhPWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvZm9jdXMtcmVsZXZhbnRcIixyZXNvbHZlRG9jdW1lbnQ6dHJ1ZSxjb250ZXh0OnR9KTtpZighbi5zaGFkb3cmJmEuc2hhZG93Um9vdCl7cmV0dXJuIHRydWV9dmFyIG89YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKG89PT1cImlucHV0XCImJmEudHlwZT09PVwiaGlkZGVuXCIpe3JldHVybiBmYWxzZX1pZihvPT09XCJpbnB1dFwifHxvPT09XCJzZWxlY3RcInx8bz09PVwiYnV0dG9uXCJ8fG89PT1cInRleHRhcmVhXCIpe3JldHVybiB0cnVlfWlmKG89PT1cImxlZ2VuZFwiJiZSZS5mb2N1c1JlZGlyZWN0TGVnZW5kKXtyZXR1cm4gdHJ1ZX1pZihvPT09XCJsYWJlbFwiKXtyZXR1cm4gdHJ1ZX1pZihvPT09XCJhcmVhXCIpe3JldHVybiB0cnVlfWlmKG89PT1cImFcIiYmYS5oYXNBdHRyaWJ1dGUoXCJocmVmXCIpKXtyZXR1cm4gdHJ1ZX1pZihvPT09XCJvYmplY3RcIiYmYS5oYXNBdHRyaWJ1dGUoXCJ1c2VtYXBcIikpe3JldHVybiBmYWxzZX1pZihvPT09XCJvYmplY3RcIil7dmFyIGk9YS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpO2lmKCFSZS5mb2N1c09iamVjdFN2ZyYmaT09PVwiaW1hZ2Uvc3ZnK3htbFwiKXtyZXR1cm4gZmFsc2V9ZWxzZSBpZighUmUuZm9jdXNPYmplY3RTd2YmJmk9PT1cImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoXCIpe3JldHVybiBmYWxzZX19aWYobz09PVwiaWZyYW1lXCJ8fG89PT1cIm9iamVjdFwiKXtyZXR1cm4gdHJ1ZX1pZihvPT09XCJlbWJlZFwifHxvPT09XCJrZXlnZW5cIil7cmV0dXJuIHRydWV9aWYoYS5oYXNBdHRyaWJ1dGUoXCJjb250ZW50ZWRpdGFibGVcIikpe3JldHVybiB0cnVlfWlmKG89PT1cImF1ZGlvXCImJihSZS5mb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzfHxhLmhhc0F0dHJpYnV0ZShcImNvbnRyb2xzXCIpKSl7cmV0dXJuIHRydWV9aWYobz09PVwidmlkZW9cIiYmKFJlLmZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHN8fGEuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIikpKXtyZXR1cm4gdHJ1ZX1pZihSZS5mb2N1c1N1bW1hcnkmJm89PT1cInN1bW1hcnlcIil7cmV0dXJuIHRydWV9dmFyIGw9aXNWYWxpZFRhYmluZGV4KGEpO2lmKG89PT1cImltZ1wiJiZhLmhhc0F0dHJpYnV0ZShcInVzZW1hcFwiKSl7cmV0dXJuIGwmJlJlLmZvY3VzSW1nVXNlbWFwVGFiaW5kZXh8fFJlLmZvY3VzUmVkaXJlY3RJbWdVc2VtYXB9aWYoUmUuZm9jdXNUYWJsZSYmKG89PT1cInRhYmxlXCJ8fG89PT1cInRkXCIpKXtyZXR1cm4gdHJ1ZX1pZihSZS5mb2N1c0ZpZWxkc2V0JiZvPT09XCJmaWVsZHNldFwiKXtyZXR1cm4gdHJ1ZX12YXIgcz1vPT09XCJzdmdcIjt2YXIgdT1hLm93bmVyU1ZHRWxlbWVudDt2YXIgYz1hLmdldEF0dHJpYnV0ZShcImZvY3VzYWJsZVwiKTt2YXIgZD10YWJpbmRleFZhbHVlKGEpO2lmKG89PT1cInVzZVwiJiZkIT09bnVsbCYmIVJlLmZvY3VzU3ZnVXNlVGFiaW5kZXgpe3JldHVybiBmYWxzZX1pZihvPT09XCJmb3JlaWdub2JqZWN0XCIpe3JldHVybiBkIT09bnVsbCYmUmUuZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXh9aWYoZWxlbWVudE1hdGNoZXMoYSxcInN2ZyBhXCIpJiZhLmhhc0F0dHJpYnV0ZShcInhsaW5rOmhyZWZcIikpe3JldHVybiB0cnVlfWlmKChzfHx1KSYmYS5mb2N1cyYmIVJlLmZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSYmZDwwKXtyZXR1cm4gZmFsc2V9aWYocyl7cmV0dXJuIGx8fFJlLmZvY3VzU3ZnfHxSZS5mb2N1c1N2Z0luSWZyYW1lfHxCb29sZWFuKFJlLmZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlJiZjJiZjPT09XCJ0cnVlXCIpfWlmKHUpe2lmKFJlLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUmJmwpe3JldHVybiB0cnVlfWlmKFJlLmZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlKXtyZXR1cm4gYz09PVwidHJ1ZVwifX1pZihsKXtyZXR1cm4gdHJ1ZX12YXIgZj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGlzVXNlck1vZGlmeVdyaXRhYmxlKGYpKXtyZXR1cm4gdHJ1ZX1pZihSZS5mb2N1c0ltZ0lzbWFwJiZvPT09XCJpbWdcIiYmYS5oYXNBdHRyaWJ1dGUoXCJpc21hcFwiKSl7dmFyIG09Z2V0UGFyZW50cyh7Y29udGV4dDphfSkuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PVwiYVwiJiZlLmhhc0F0dHJpYnV0ZShcImhyZWZcIil9KSk7aWYobSl7cmV0dXJuIHRydWV9fWlmKCFuLnNjcm9sbGFibGUmJlJlLmZvY3VzU2Nyb2xsQ29udGFpbmVyKXtpZihSZS5mb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdyl7aWYoaXNTY3JvbGxhYmxlQ29udGFpbmVyKGEsbykpe3JldHVybiB0cnVlfX1lbHNlIGlmKGhhc0Nzc092ZXJmbG93U2Nyb2xsKGYpKXtyZXR1cm4gdHJ1ZX19aWYoIW4uZmxleGJveCYmUmUuZm9jdXNGbGV4Ym94Q29udGFpbmVyJiZoYXNDc3NEaXNwbGF5RmxleChmKSl7cmV0dXJuIHRydWV9dmFyIHA9YS5wYXJlbnRFbGVtZW50O2lmKCFuLnNjcm9sbGFibGUmJnApe3ZhciBiPXAubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt2YXIgZz13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwLG51bGwpO2lmKFJlLmZvY3VzU2Nyb2xsQm9keSYmaXNTY3JvbGxhYmxlQ29udGFpbmVyKHAsbyxiLGcpKXtyZXR1cm4gdHJ1ZX1pZihSZS5mb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94KXtpZihoYXNDc3NEaXNwbGF5RmxleChnKSl7cmV0dXJuIHRydWV9fX1yZXR1cm4gZmFsc2V9aXNGb2N1c1JlbGV2YW50UnVsZXMuZXhjZXB0PWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9O3ZhciB0PWZ1bmN0aW9uIGlzRm9jdXNSZWxldmFudCh0KXtyZXR1cm4gaXNGb2N1c1JlbGV2YW50UnVsZXMoe2NvbnRleHQ6dCxleGNlcHQ6ZX0pfTt0LnJ1bGVzPWlzRm9jdXNSZWxldmFudFJ1bGVzO3JldHVybiB0fTt2YXIgemU9aXNGb2N1c1JlbGV2YW50UnVsZXMuZXhjZXB0KHt9KTtmdW5jdGlvbiBmaW5kSW5kZXgoZSx0KXtpZihlLmZpbmRJbmRleCl7cmV0dXJuIGUuZmluZEluZGV4KHQpfXZhciByPWUubGVuZ3RoO2lmKHI9PT0wKXtyZXR1cm4tMX1mb3IodmFyIG49MDtuPHI7bisrKXtpZih0KGVbbl0sbixlKSl7cmV0dXJuIG59fXJldHVybi0xfWZ1bmN0aW9uIGdldENvbnRlbnREb2N1bWVudChlKXt0cnl7cmV0dXJuIGUuY29udGVudERvY3VtZW50fHxlLmNvbnRlbnRXaW5kb3cmJmUuY29udGVudFdpbmRvdy5kb2N1bWVudHx8ZS5nZXRTVkdEb2N1bWVudCYmZS5nZXRTVkdEb2N1bWVudCgpfHxudWxsfWNhdGNoKGUpe3JldHVybiBudWxsfX1mdW5jdGlvbiBnZXRXaW5kb3coZSl7dmFyIHQ9Z2V0RG9jdW1lbnQoZSk7cmV0dXJuIHQuZGVmYXVsdFZpZXd8fHdpbmRvd312YXIgQmU9dm9pZCAwO2Z1bmN0aW9uIHNlbGVjdEluU2hhZG93cyhlKXtpZih0eXBlb2YgQmUhPT1cInN0cmluZ1wiKXt2YXIgdD1jc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yKCk7aWYodCl7QmU9XCIsIGh0bWwgXCIrdCtcIiBcIn19aWYoIUJlKXtyZXR1cm4gZX1yZXR1cm4gZStCZStlLnJlcGxhY2UoL1xccyosXFxzKi9nLFwiLFwiKS5zcGxpdChcIixcIikuam9pbihCZSl9dmFyIEhlPXZvaWQgMDtmdW5jdGlvbiBmaW5kRG9jdW1lbnRIb3N0RWxlbWVudChlKXtpZighSGUpe0hlPXNlbGVjdEluU2hhZG93cyhcIm9iamVjdCwgaWZyYW1lXCIpfWlmKGUuX2ZyYW1lRWxlbWVudCE9PXVuZGVmaW5lZCl7cmV0dXJuIGUuX2ZyYW1lRWxlbWVudH1lLl9mcmFtZUVsZW1lbnQ9bnVsbDt2YXIgdD1lLnBhcmVudC5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKEhlKTtbXS5zb21lLmNhbGwodCwoZnVuY3Rpb24odCl7dmFyIHI9Z2V0Q29udGVudERvY3VtZW50KHQpO2lmKHIhPT1lLmRvY3VtZW50KXtyZXR1cm4gZmFsc2V9ZS5fZnJhbWVFbGVtZW50PXQ7cmV0dXJuIHRydWV9KSk7cmV0dXJuIGUuX2ZyYW1lRWxlbWVudH1mdW5jdGlvbiBnZXRGcmFtZUVsZW1lbnQoZSl7dmFyIHQ9Z2V0V2luZG93KGUpO2lmKCF0LnBhcmVudHx8dC5wYXJlbnQ9PT10KXtyZXR1cm4gbnVsbH10cnl7cmV0dXJuIHQuZnJhbWVFbGVtZW50fHxmaW5kRG9jdW1lbnRIb3N0RWxlbWVudCh0KX1jYXRjaChlKXtyZXR1cm4gbnVsbH19dmFyIFBlPS9eKGFyZWEpJC87ZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShlLHQpe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCl9ZnVuY3Rpb24gbm90RGlzcGxheWVkKGUpe3JldHVybiBlLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBjb21wdXRlZFN0eWxlKGUsXCJkaXNwbGF5XCIpPT09XCJub25lXCJ9KSl9ZnVuY3Rpb24gbm90VmlzaWJsZShlKXt2YXIgdD1maW5kSW5kZXgoZSwoZnVuY3Rpb24oZSl7dmFyIHQ9Y29tcHV0ZWRTdHlsZShlLFwidmlzaWJpbGl0eVwiKTtyZXR1cm4gdD09PVwiaGlkZGVuXCJ8fHQ9PT1cImNvbGxhcHNlXCJ9KSk7aWYodD09PS0xKXtyZXR1cm4gZmFsc2V9dmFyIHI9ZmluZEluZGV4KGUsKGZ1bmN0aW9uKGUpe3JldHVybiBjb21wdXRlZFN0eWxlKGUsXCJ2aXNpYmlsaXR5XCIpPT09XCJ2aXNpYmxlXCJ9KSk7aWYocj09PS0xKXtyZXR1cm4gdHJ1ZX1pZih0PHIpe3JldHVybiB0cnVlfXJldHVybiBmYWxzZX1mdW5jdGlvbiBjb2xsYXBzZWRQYXJlbnQoZSl7dmFyIHQ9MTtpZihlWzBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1cInN1bW1hcnlcIil7dD0yfXJldHVybiBlLnNsaWNlKHQpLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1cImRldGFpbHNcIiYmZS5vcGVuPT09ZmFsc2V9KSl9ZnVuY3Rpb24gaXNWaXNpYmxlUnVsZXMoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQscj1lLmV4Y2VwdCxuPXI9PT11bmRlZmluZWQ/e25vdFJlbmRlcmVkOmZhbHNlLGNzc0Rpc3BsYXk6ZmFsc2UsY3NzVmlzaWJpbGl0eTpmYWxzZSxkZXRhaWxzRWxlbWVudDpmYWxzZSxicm93c2luZ0NvbnRleHQ6ZmFsc2V9OnI7dmFyIGE9Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJpcy92aXNpYmxlXCIscmVzb2x2ZURvY3VtZW50OnRydWUsY29udGV4dDp0fSk7dmFyIG89YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKCFuLm5vdFJlbmRlcmVkJiZQZS50ZXN0KG8pKXtyZXR1cm4gdHJ1ZX12YXIgaT1nZXRQYXJlbnRzKHtjb250ZXh0OmF9KTt2YXIgbD1vPT09XCJhdWRpb1wiJiYhYS5oYXNBdHRyaWJ1dGUoXCJjb250cm9sc1wiKTtpZighbi5jc3NEaXNwbGF5JiZub3REaXNwbGF5ZWQobD9pLnNsaWNlKDEpOmkpKXtyZXR1cm4gZmFsc2V9aWYoIW4uY3NzVmlzaWJpbGl0eSYmbm90VmlzaWJsZShpKSl7cmV0dXJuIGZhbHNlfWlmKCFuLmRldGFpbHNFbGVtZW50JiZjb2xsYXBzZWRQYXJlbnQoaSkpe3JldHVybiBmYWxzZX1pZighbi5icm93c2luZ0NvbnRleHQpe3ZhciBzPWdldEZyYW1lRWxlbWVudChhKTt2YXIgdT1pc1Zpc2libGVSdWxlcy5leGNlcHQobik7aWYocyYmIXUocykpe3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9aXNWaXNpYmxlUnVsZXMuZXhjZXB0PWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9O3ZhciB0PWZ1bmN0aW9uIGlzVmlzaWJsZSh0KXtyZXR1cm4gaXNWaXNpYmxlUnVsZXMoe2NvbnRleHQ6dCxleGNlcHQ6ZX0pfTt0LnJ1bGVzPWlzVmlzaWJsZVJ1bGVzO3JldHVybiB0fTt2YXIgcWU9aXNWaXNpYmxlUnVsZXMuZXhjZXB0KHt9KTtmdW5jdGlvbiBnZXRNYXBCeU5hbWUoZSx0KXt2YXIgcj10LnF1ZXJ5U2VsZWN0b3IoJ21hcFtuYW1lPVwiJytUKCkoZSkrJ1wiXScpO3JldHVybiByfHxudWxsfWZ1bmN0aW9uIGdldEltYWdlT2ZBcmVhKGUpe3ZhciB0PWUucGFyZW50RWxlbWVudDtpZighdC5uYW1lfHx0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT1cIm1hcFwiKXtyZXR1cm4gbnVsbH12YXIgcj1nZXREb2N1bWVudChlKTtyZXR1cm4gci5xdWVyeVNlbGVjdG9yKCdpbWdbdXNlbWFwPVwiIycrVCgpKHQubmFtZSkrJ1wiXScpfHxudWxsfXZhciBXZT12b2lkIDA7ZnVuY3Rpb24gaXNWYWxpZEFyZWEoZSl7aWYoIVdlKXtXZT1fc3VwcG9ydHMoKX12YXIgdD1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImlzL3ZhbGlkLWFyZWFcIixjb250ZXh0OmV9KTt2YXIgcj10Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYociE9PVwiYXJlYVwiKXtyZXR1cm4gZmFsc2V9dmFyIG49dC5oYXNBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTtpZighV2UuZm9jdXNBcmVhVGFiaW5kZXgmJm4pe3JldHVybiBmYWxzZX12YXIgYT1nZXRJbWFnZU9mQXJlYSh0KTtpZighYXx8IXFlKGEpKXtyZXR1cm4gZmFsc2V9aWYoIVdlLmZvY3VzQnJva2VuSW1hZ2VNYXAmJighYS5jb21wbGV0ZXx8IWEubmF0dXJhbEhlaWdodHx8YS5vZmZzZXRXaWR0aDw9MHx8YS5vZmZzZXRIZWlnaHQ8PTApKXtyZXR1cm4gZmFsc2V9aWYoIVdlLmZvY3VzQXJlYVdpdGhvdXRIcmVmJiYhdC5ocmVmKXtyZXR1cm4gV2UuZm9jdXNBcmVhVGFiaW5kZXgmJm58fFdlLmZvY3VzQXJlYUltZ1RhYmluZGV4JiZhLmhhc0F0dHJpYnV0ZShcInRhYmluZGV4XCIpfXZhciBvPWdldFBhcmVudHMoe2NvbnRleHQ6YX0pLnNsaWNlKDEpLnNvbWUoKGZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD09PVwiYnV0dG9uXCJ8fHQ9PT1cImFcIn0pKTtpZihvKXtyZXR1cm4gZmFsc2V9cmV0dXJuIHRydWV9dmFyIFZlPXZvaWQgMDt2YXIgJGU9dm9pZCAwO3ZhciBLZT17aW5wdXQ6dHJ1ZSxzZWxlY3Q6dHJ1ZSx0ZXh0YXJlYTp0cnVlLGJ1dHRvbjp0cnVlLGZpZWxkc2V0OnRydWUsZm9ybTp0cnVlfTtmdW5jdGlvbiBpc05hdGl2ZURpc2FibGVkU3VwcG9ydGVkKGUpe2lmKCFWZSl7VmU9X3N1cHBvcnRzKCk7aWYoVmUuZm9jdXNGaWVsZHNldERpc2FibGVkKXtkZWxldGUgS2UuZmllbGRzZXR9aWYoVmUuZm9jdXNGb3JtRGlzYWJsZWQpe2RlbGV0ZSBLZS5mb3JtfSRlPW5ldyBSZWdFeHAoXCJeKFwiK09iamVjdC5rZXlzKEtlKS5qb2luKFwifFwiKStcIikkXCIpfXZhciB0PWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvbmF0aXZlLWRpc2FibGVkLXN1cHBvcnRlZFwiLGNvbnRleHQ6ZX0pO3ZhciByPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gQm9vbGVhbigkZS50ZXN0KHIpKX12YXIgWmU9dm9pZCAwO2Z1bmN0aW9uIGlzRGlzYWJsZWRGaWVsZHNldChlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ9PT1cImZpZWxkc2V0XCImJmUuZGlzYWJsZWR9ZnVuY3Rpb24gaXNEaXNhYmxlZEZvcm0oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09XCJmb3JtXCImJmUuZGlzYWJsZWR9ZnVuY3Rpb24gaXNEaXNhYmxlZChlKXtpZighWmUpe1plPV9zdXBwb3J0cygpfXZhciB0PWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvZGlzYWJsZWRcIixjb250ZXh0OmV9KTtpZih0Lmhhc0F0dHJpYnV0ZShcImRhdGEtYWxseS1kaXNhYmxlZFwiKSl7cmV0dXJuIHRydWV9aWYoIWlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQodCkpe3JldHVybiBmYWxzZX1pZih0LmRpc2FibGVkKXtyZXR1cm4gdHJ1ZX12YXIgcj1nZXRQYXJlbnRzKHtjb250ZXh0OnR9KTtpZihyLnNvbWUoaXNEaXNhYmxlZEZpZWxkc2V0KSl7cmV0dXJuIHRydWV9aWYoIVplLmZvY3VzRm9ybURpc2FibGVkJiZyLnNvbWUoaXNEaXNhYmxlZEZvcm0pKXtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9ZnVuY3Rpb24gaXNPbmx5VGFiYmFibGVSdWxlcygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dCxyPWUuZXhjZXB0LG49cj09PXVuZGVmaW5lZD97b25seUZvY3VzYWJsZUJyb3dzaW5nQ29udGV4dDpmYWxzZSx2aXNpYmxlOmZhbHNlfTpyO3ZhciBhPWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvb25seS10YWJiYWJsZVwiLHJlc29sdmVEb2N1bWVudDp0cnVlLGNvbnRleHQ6dH0pO2lmKCFuLnZpc2libGUmJiFxZShhKSl7cmV0dXJuIGZhbHNlfWlmKCFuLm9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQmJihBLmlzLkdFQ0tPfHxBLmlzLlRSSURFTlR8fEEuaXMuRURHRSkpe3ZhciBvPWdldEZyYW1lRWxlbWVudChhKTtpZihvKXtpZih0YWJpbmRleFZhbHVlKG8pPDApe3JldHVybiBmYWxzZX19fXZhciBpPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt2YXIgbD10YWJpbmRleFZhbHVlKGEpO2lmKGk9PT1cImxhYmVsXCImJkEuaXMuR0VDS08pe3JldHVybiBsIT09bnVsbCYmbD49MH1pZihBLmlzLkdFQ0tPJiZhLm93bmVyU1ZHRWxlbWVudCYmIWEuZm9jdXMpe2lmKGk9PT1cImFcIiYmYS5oYXNBdHRyaWJ1dGUoXCJ4bGluazpocmVmXCIpKXtpZihBLmlzLkdFQ0tPKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBmYWxzZX1pc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdD1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fTt2YXIgdD1mdW5jdGlvbiBpc09ubHlUYWJiYWJsZSh0KXtyZXR1cm4gaXNPbmx5VGFiYmFibGVSdWxlcyh7Y29udGV4dDp0LGV4Y2VwdDplfSl9O3QucnVsZXM9aXNPbmx5VGFiYmFibGVSdWxlcztyZXR1cm4gdH07dmFyIFVlPWlzT25seVRhYmJhYmxlUnVsZXMuZXhjZXB0KHt9KTt2YXIgR2U9dm9pZCAwO2Z1bmN0aW9uIGlzT25seUZvY3VzUmVsZXZhbnQoZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKHQ9PT1cImVtYmVkXCJ8fHQ9PT1cImtleWdlblwiKXtyZXR1cm4gdHJ1ZX12YXIgcj10YWJpbmRleFZhbHVlKGUpO2lmKGUuc2hhZG93Um9vdCYmcj09PW51bGwpe3JldHVybiB0cnVlfWlmKHQ9PT1cImxhYmVsXCIpe3JldHVybiFHZS5mb2N1c0xhYmVsVGFiaW5kZXh8fHI9PT1udWxsfWlmKHQ9PT1cImxlZ2VuZFwiKXtyZXR1cm4gcj09PW51bGx9aWYoR2UuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUmJihlLm93bmVyU1ZHRWxlbWVudHx8dD09PVwic3ZnXCIpKXt2YXIgbj1lLmdldEF0dHJpYnV0ZShcImZvY3VzYWJsZVwiKTtyZXR1cm4gbiYmbj09PVwiZmFsc2VcIn1pZih0PT09XCJpbWdcIiYmZS5oYXNBdHRyaWJ1dGUoXCJ1c2VtYXBcIikpe3JldHVybiByPT09bnVsbHx8IUdlLmZvY3VzSW1nVXNlbWFwVGFiaW5kZXh9aWYodD09PVwiYXJlYVwiKXtyZXR1cm4haXNWYWxpZEFyZWEoZSl9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGlzRm9jdXNhYmxlUnVsZXMoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQscj1lLmV4Y2VwdCxuPXI9PT11bmRlZmluZWQ/e2Rpc2FibGVkOmZhbHNlLHZpc2libGU6ZmFsc2Usb25seVRhYmJhYmxlOmZhbHNlfTpyO2lmKCFHZSl7R2U9X3N1cHBvcnRzKCl9dmFyIGE9VWUucnVsZXMuZXhjZXB0KHtvbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0OnRydWUsdmlzaWJsZTpuLnZpc2libGV9KTt2YXIgbz1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImlzL2ZvY3VzYWJsZVwiLHJlc29sdmVEb2N1bWVudDp0cnVlLGNvbnRleHQ6dH0pO3ZhciBpPXplLnJ1bGVzKHtjb250ZXh0Om8sZXhjZXB0Om59KTtpZighaXx8aXNPbmx5Rm9jdXNSZWxldmFudChvKSl7cmV0dXJuIGZhbHNlfWlmKCFuLmRpc2FibGVkJiZpc0Rpc2FibGVkKG8pKXtyZXR1cm4gZmFsc2V9aWYoIW4ub25seVRhYmJhYmxlJiZhKG8pKXtyZXR1cm4gZmFsc2V9aWYoIW4udmlzaWJsZSl7dmFyIGw9e2NvbnRleHQ6byxleGNlcHQ6e319O2lmKEdlLmZvY3VzSW5IaWRkZW5JZnJhbWUpe2wuZXhjZXB0LmJyb3dzaW5nQ29udGV4dD10cnVlfWlmKEdlLmZvY3VzT2JqZWN0U3ZnSGlkZGVuKXt2YXIgcz1vLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYocz09PVwib2JqZWN0XCIpe2wuZXhjZXB0LmNzc1Zpc2liaWxpdHk9dHJ1ZX19aWYoIXFlLnJ1bGVzKGwpKXtyZXR1cm4gZmFsc2V9fXZhciB1PWdldEZyYW1lRWxlbWVudChvKTtpZih1KXt2YXIgYz11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoYz09PVwib2JqZWN0XCImJiFHZS5mb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdCl7aWYoIXUub2Zmc2V0V2lkdGh8fCF1Lm9mZnNldEhlaWdodCl7cmV0dXJuIGZhbHNlfX19dmFyIGQ9by5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKGQ9PT1cInN2Z1wiJiZHZS5mb2N1c1N2Z0luSWZyYW1lJiYhdSYmby5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKT09PW51bGwpe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX1pc0ZvY3VzYWJsZVJ1bGVzLmV4Y2VwdD1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fTt2YXIgdD1mdW5jdGlvbiBpc0ZvY3VzYWJsZSh0KXtyZXR1cm4gaXNGb2N1c2FibGVSdWxlcyh7Y29udGV4dDp0LGV4Y2VwdDplfSl9O3QucnVsZXM9aXNGb2N1c2FibGVSdWxlcztyZXR1cm4gdH07dmFyIFhlPWlzRm9jdXNhYmxlUnVsZXMuZXhjZXB0KHt9KTtmdW5jdGlvbiBjcmVhdGVGaWx0ZXIoZSl7dmFyIHQ9ZnVuY3Rpb24gZmlsdGVyKHQpe2lmKHQuc2hhZG93Um9vdCl7cmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVH1pZihlKHQpKXtyZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUfXJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQfTt0LmFjY2VwdE5vZGU9dDtyZXR1cm4gdH12YXIgSmU9Y3JlYXRlRmlsdGVyKHplKTtmdW5jdGlvbiBxdWVyeUZvY3VzYWJsZVN0cmljdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dCxyPWUuaW5jbHVkZUNvbnRleHQsbj1lLmluY2x1ZGVPbmx5VGFiYmFibGUsYT1lLnN0cmF0ZWd5O2lmKCF0KXt0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudH12YXIgbz1YZS5ydWxlcy5leGNlcHQoe29ubHlUYWJiYWJsZTpufSk7dmFyIGk9Z2V0RG9jdW1lbnQodCk7dmFyIGw9aS5jcmVhdGVUcmVlV2Fsa2VyKHQsTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQsYT09PVwiYWxsXCI/SmU6Y3JlYXRlRmlsdGVyKG8pLGZhbHNlKTt2YXIgcz1bXTt3aGlsZShsLm5leHROb2RlKCkpe2lmKGwuY3VycmVudE5vZGUuc2hhZG93Um9vdCl7aWYobyhsLmN1cnJlbnROb2RlKSl7cy5wdXNoKGwuY3VycmVudE5vZGUpfXM9cy5jb25jYXQocXVlcnlGb2N1c2FibGVTdHJpY3Qoe2NvbnRleHQ6bC5jdXJyZW50Tm9kZS5zaGFkb3dSb290LGluY2x1ZGVPbmx5VGFiYmFibGU6bixzdHJhdGVneTphfSkpfWVsc2V7cy5wdXNoKGwuY3VycmVudE5vZGUpfX1pZihyKXtpZihhPT09XCJhbGxcIil7aWYoemUodCkpe3MudW5zaGlmdCh0KX19ZWxzZSBpZihvKHQpKXtzLnVuc2hpZnQodCl9fXJldHVybiBzfXZhciBRZT12b2lkIDA7dmFyIFllPXZvaWQgMDtmdW5jdGlvbiBzZWxlY3RvciQyKCl7aWYoIVFlKXtRZT1fc3VwcG9ydHMoKX1pZih0eXBlb2YgWWU9PT1cInN0cmluZ1wiKXtyZXR1cm4gWWV9WWU9XCJcIisoUWUuZm9jdXNUYWJsZT9cInRhYmxlLCB0ZCxcIjpcIlwiKSsoUWUuZm9jdXNGaWVsZHNldD9cImZpZWxkc2V0LFwiOlwiXCIpK1wic3ZnIGEsXCIrXCJhW2hyZWZdLFwiK1wiYXJlYVtocmVmXSxcIitcImlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBidXR0b24sXCIrXCJpZnJhbWUsIG9iamVjdCwgZW1iZWQsXCIrXCJrZXlnZW4sXCIrKFFlLmZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHM/XCJhdWRpbyxcIjpcImF1ZGlvW2NvbnRyb2xzXSxcIikrKFFlLmZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHM/XCJ2aWRlbyxcIjpcInZpZGVvW2NvbnRyb2xzXSxcIikrKFFlLmZvY3VzU3VtbWFyeT9cInN1bW1hcnksXCI6XCJcIikrXCJbdGFiaW5kZXhdLFwiK1wiW2NvbnRlbnRlZGl0YWJsZV1cIjtZZT1zZWxlY3RJblNoYWRvd3MoWWUpO3JldHVybiBZZX1mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZVF1aWNrKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5jb250ZXh0LHI9ZS5pbmNsdWRlQ29udGV4dCxuPWUuaW5jbHVkZU9ubHlUYWJiYWJsZTt2YXIgYT1zZWxlY3RvciQyKCk7dmFyIG89dC5xdWVyeVNlbGVjdG9yQWxsKGEpO3ZhciBpPVhlLnJ1bGVzLmV4Y2VwdCh7b25seVRhYmJhYmxlOm59KTt2YXIgbD1bXS5maWx0ZXIuY2FsbChvLGkpO2lmKHImJmkodCkpe2wudW5zaGlmdCh0KX1yZXR1cm4gbH1mdW5jdGlvbiBxdWVyeUZvY3VzYWJsZSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dCxyPWUuaW5jbHVkZUNvbnRleHQsbj1lLmluY2x1ZGVPbmx5VGFiYmFibGUsYT1lLnN0cmF0ZWd5LG89YT09PXVuZGVmaW5lZD9cInF1aWNrXCI6YTt2YXIgaT1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcInF1ZXJ5L2ZvY3VzYWJsZVwiLHJlc29sdmVEb2N1bWVudDp0cnVlLGRlZmF1bHRUb0RvY3VtZW50OnRydWUsY29udGV4dDp0fSk7dmFyIGw9e2NvbnRleHQ6aSxpbmNsdWRlQ29udGV4dDpyLGluY2x1ZGVPbmx5VGFiYmFibGU6bixzdHJhdGVneTpvfTtpZihvPT09XCJxdWlja1wiKXtyZXR1cm4gcXVlcnlGb2N1c2FibGVRdWljayhsKX1lbHNlIGlmKG89PT1cInN0cmljdFwifHxvPT09XCJhbGxcIil7cmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlU3RyaWN0KGwpfXRocm93IG5ldyBUeXBlRXJyb3IoJ3F1ZXJ5L2ZvY3VzYWJsZSByZXF1aXJlcyBvcHRpb24uc3RyYXRlZ3kgdG8gYmUgb25lIG9mIFtcInF1aWNrXCIsIFwic3RyaWN0XCIsIFwiYWxsXCJdJyl9dmFyIGV0PXZvaWQgMDt2YXIgdHQ9L14oZmllbGRzZXR8dGFibGV8dGR8Ym9keSkkLztmdW5jdGlvbiBpc1RhYmJhYmxlUnVsZXMoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQscj1lLmV4Y2VwdCxuPXI9PT11bmRlZmluZWQ/e2ZsZXhib3g6ZmFsc2Usc2Nyb2xsYWJsZTpmYWxzZSxzaGFkb3c6ZmFsc2UsdmlzaWJsZTpmYWxzZSxvbmx5VGFiYmFibGU6ZmFsc2V9OnI7aWYoIWV0KXtldD1fc3VwcG9ydHMoKX12YXIgYT1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImlzL3RhYmJhYmxlXCIscmVzb2x2ZURvY3VtZW50OnRydWUsY29udGV4dDp0fSk7aWYoQS5pcy5CTElOSyYmQS5pcy5BTkRST0lEJiZBLm1ham9yVmVyc2lvbj40Mil7cmV0dXJuIGZhbHNlfXZhciBvPWdldEZyYW1lRWxlbWVudChhKTtpZihvKXtpZihBLmlzLldFQktJVCYmQS5pcy5JT1Mpe3JldHVybiBmYWxzZX1pZih0YWJpbmRleFZhbHVlKG8pPDApe3JldHVybiBmYWxzZX1pZighbi52aXNpYmxlJiYoQS5pcy5CTElOS3x8QS5pcy5XRUJLSVQpJiYhcWUobykpe3JldHVybiBmYWxzZX12YXIgaT1vLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoaT09PVwib2JqZWN0XCIpe3ZhciBsPUEubmFtZT09PVwiQ2hyb21lXCImJkEubWFqb3JWZXJzaW9uPj01NHx8QS5uYW1lPT09XCJPcGVyYVwiJiZBLm1ham9yVmVyc2lvbj49NDE7aWYoQS5pcy5XRUJLSVR8fEEuaXMuQkxJTksmJiFsKXtyZXR1cm4gZmFsc2V9fX12YXIgcz1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7dmFyIHU9dGFiaW5kZXhWYWx1ZShhKTt2YXIgYz11PT09bnVsbD9udWxsOnU+PTA7aWYoQS5pcy5FREdFJiZBLm1ham9yVmVyc2lvbj49MTQmJm8mJmEub3duZXJTVkdFbGVtZW50JiZ1PDApe3JldHVybiB0cnVlfXZhciBkPWMhPT1mYWxzZTt2YXIgZj11IT09bnVsbCYmdT49MDtpZihhLmhhc0F0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiKSl7cmV0dXJuIGR9aWYodHQudGVzdChzKSYmYyE9PXRydWUpe3JldHVybiBmYWxzZX1pZihBLmlzLldFQktJVCYmQS5pcy5JT1Mpe3ZhciBtPXM9PT1cImlucHV0XCImJmEudHlwZT09PVwidGV4dFwifHxhLnR5cGU9PT1cInBhc3N3b3JkXCJ8fHM9PT1cInNlbGVjdFwifHxzPT09XCJ0ZXh0YXJlYVwifHxhLmhhc0F0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiKTtpZighbSl7dmFyIHA9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKTttPWlzVXNlck1vZGlmeVdyaXRhYmxlKHApfWlmKCFtKXtyZXR1cm4gZmFsc2V9fWlmKHM9PT1cInVzZVwiJiZ1IT09bnVsbCl7aWYoQS5pcy5CTElOS3x8QS5pcy5XRUJLSVQmJkEubWFqb3JWZXJzaW9uPT09OSl7cmV0dXJuIHRydWV9fWlmKGVsZW1lbnRNYXRjaGVzKGEsXCJzdmcgYVwiKSYmYS5oYXNBdHRyaWJ1dGUoXCJ4bGluazpocmVmXCIpKXtpZihkKXtyZXR1cm4gdHJ1ZX1pZihhLmZvY3VzJiYhZXQuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlKXtyZXR1cm4gdHJ1ZX19aWYocz09PVwic3ZnXCImJmV0LmZvY3VzU3ZnSW5JZnJhbWUmJmQpe3JldHVybiB0cnVlfWlmKEEuaXMuVFJJREVOVHx8QS5pcy5FREdFKXtpZihzPT09XCJzdmdcIil7aWYoZXQuZm9jdXNTdmcpe3JldHVybiB0cnVlfXJldHVybiBhLmhhc0F0dHJpYnV0ZShcImZvY3VzYWJsZVwiKXx8Zn1pZihhLm93bmVyU1ZHRWxlbWVudCl7aWYoZXQuZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSYmZil7cmV0dXJuIHRydWV9cmV0dXJuIGEuaGFzQXR0cmlidXRlKFwiZm9jdXNhYmxlXCIpfX1pZihhLnRhYkluZGV4PT09dW5kZWZpbmVkKXtyZXR1cm4gQm9vbGVhbihuLm9ubHlUYWJiYWJsZSl9aWYocz09PVwiYXVkaW9cIil7aWYoIWEuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIikpe3JldHVybiBmYWxzZX1lbHNlIGlmKEEuaXMuQkxJTkspe3JldHVybiB0cnVlfX1pZihzPT09XCJ2aWRlb1wiKXtpZighYS5oYXNBdHRyaWJ1dGUoXCJjb250cm9sc1wiKSl7aWYoQS5pcy5UUklERU5UfHxBLmlzLkVER0Upe3JldHVybiBmYWxzZX19ZWxzZSBpZihBLmlzLkJMSU5LfHxBLmlzLkdFQ0tPKXtyZXR1cm4gdHJ1ZX19aWYocz09PVwib2JqZWN0XCIpe2lmKEEuaXMuQkxJTkt8fEEuaXMuV0VCS0lUKXtyZXR1cm4gZmFsc2V9fWlmKHM9PT1cImlmcmFtZVwiKXtyZXR1cm4gZmFsc2V9aWYoIW4uc2Nyb2xsYWJsZSYmQS5pcy5HRUNLTyl7dmFyIGI9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKTtpZihoYXNDc3NPdmVyZmxvd1Njcm9sbChiKSl7cmV0dXJuIGR9fWlmKEEuaXMuVFJJREVOVHx8QS5pcy5FREdFKXtpZihzPT09XCJhcmVhXCIpe3ZhciBnPWdldEltYWdlT2ZBcmVhKGEpO2lmKGcmJnRhYmluZGV4VmFsdWUoZyk8MCl7cmV0dXJuIGZhbHNlfX12YXIgdj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGlzVXNlck1vZGlmeVdyaXRhYmxlKHYpKXtyZXR1cm4gYS50YWJJbmRleD49MH1pZighbi5mbGV4Ym94JiZoYXNDc3NEaXNwbGF5RmxleCh2KSl7aWYodSE9PW51bGwpe3JldHVybiBmfXJldHVybiBydChhKSYmbnQoYSl9aWYoaXNTY3JvbGxhYmxlQ29udGFpbmVyKGEscykpe3JldHVybiBmYWxzZX12YXIgaD1hLnBhcmVudEVsZW1lbnQ7aWYoaCl7dmFyIHg9aC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3ZhciB5PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGgsbnVsbCk7aWYoaXNTY3JvbGxhYmxlQ29udGFpbmVyKGgscyx4LHkpKXtyZXR1cm4gZmFsc2V9aWYoaGFzQ3NzRGlzcGxheUZsZXgoeSkpe3JldHVybiBmfX19cmV0dXJuIGEudGFiSW5kZXg+PTB9aXNUYWJiYWJsZVJ1bGVzLmV4Y2VwdD1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fTt2YXIgdD1mdW5jdGlvbiBpc1RhYmJhYmxlKHQpe3JldHVybiBpc1RhYmJhYmxlUnVsZXMoe2NvbnRleHQ6dCxleGNlcHQ6ZX0pfTt0LnJ1bGVzPWlzVGFiYmFibGVSdWxlcztyZXR1cm4gdH07dmFyIHJ0PXplLnJ1bGVzLmV4Y2VwdCh7ZmxleGJveDp0cnVlfSk7dmFyIG50PWlzVGFiYmFibGVSdWxlcy5leGNlcHQoe2ZsZXhib3g6dHJ1ZX0pO3ZhciBhdD1pc1RhYmJhYmxlUnVsZXMuZXhjZXB0KHt9KTtmdW5jdGlvbiBxdWVyeVRhYmJhYmxlKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5jb250ZXh0LHI9ZS5pbmNsdWRlQ29udGV4dCxuPWUuaW5jbHVkZU9ubHlUYWJiYWJsZSxhPWUuc3RyYXRlZ3k7dmFyIG89YXQucnVsZXMuZXhjZXB0KHtvbmx5VGFiYmFibGU6bn0pO3JldHVybiBxdWVyeUZvY3VzYWJsZSh7Y29udGV4dDp0LGluY2x1ZGVDb250ZXh0OnIsaW5jbHVkZU9ubHlUYWJiYWJsZTpuLHN0cmF0ZWd5OmF9KS5maWx0ZXIobyl9ZnVuY3Rpb24gY29tcGFyZURvbVBvc2l0aW9uKGUsdCl7cmV0dXJuIGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc/LTE6MX1mdW5jdGlvbiBzb3J0RG9tT3JkZXIoZSl7cmV0dXJuIGUuc29ydChjb21wYXJlRG9tUG9zaXRpb24pfWZ1bmN0aW9uIGdldEZpcnN0U3VjY2Vzc29yT2Zmc2V0KGUsdCl7cmV0dXJuIGZpbmRJbmRleChlLChmdW5jdGlvbihlKXtyZXR1cm4gdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR30pKX1mdW5jdGlvbiBmaW5kSW5zZXJ0aW9uT2Zmc2V0cyhlLHQscil7dmFyIG49W107dC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgYT10cnVlO3ZhciBvPWUuaW5kZXhPZih0KTtpZihvPT09LTEpe289Z2V0Rmlyc3RTdWNjZXNzb3JPZmZzZXQoZSx0KTthPWZhbHNlfWlmKG89PT0tMSl7bz1lLmxlbmd0aH12YXIgaT1ub2RlQXJyYXkocj9yKHQpOnQpO2lmKCFpLmxlbmd0aCl7cmV0dXJufW4ucHVzaCh7b2Zmc2V0Om8scmVwbGFjZTphLGVsZW1lbnRzOml9KX0pKTtyZXR1cm4gbn1mdW5jdGlvbiBpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyhlLHQpe3ZhciByPTA7dC5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLm9mZnNldC10Lm9mZnNldH0pKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQucmVwbGFjZT8xOjA7dmFyIGE9W3Qub2Zmc2V0K3Isbl0uY29uY2F0KHQuZWxlbWVudHMpO2Uuc3BsaWNlLmFwcGx5KGUsYSk7cis9dC5lbGVtZW50cy5sZW5ndGgtbn0pKX1mdW5jdGlvbiBtZXJnZUluRG9tT3JkZXIoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmxpc3Qscj1lLmVsZW1lbnRzLG49ZS5yZXNvbHZlRWxlbWVudDt2YXIgYT10LnNsaWNlKDApO3ZhciBvPW5vZGVBcnJheShyKS5zbGljZSgwKTtzb3J0RG9tT3JkZXIobyk7dmFyIGk9ZmluZEluc2VydGlvbk9mZnNldHMoYSxvLG4pO2luc2VydEVsZW1lbnRzQXRPZmZzZXRzKGEsaSk7cmV0dXJuIGF9dmFyIG90PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhlLHQpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fGZhbHNlO24uY29uZmlndXJhYmxlPXRydWU7aWYoXCJ2YWx1ZVwiaW4gbiluLndyaXRhYmxlPXRydWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbi5rZXksbil9fXJldHVybiBmdW5jdGlvbihlLHQscil7aWYodClkZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHQpO2lmKHIpZGVmaW5lUHJvcGVydGllcyhlLHIpO3JldHVybiBlfX0oKTtmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX19dmFyIGl0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTWFwcyhlKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxNYXBzKTt0aGlzLl9kb2N1bWVudD1nZXREb2N1bWVudChlKTt0aGlzLm1hcHM9e319b3QoTWFwcyxbe2tleTpcImdldEFyZWFzRm9yXCIsdmFsdWU6ZnVuY3Rpb24gZ2V0QXJlYXNGb3IoZSl7aWYoIXRoaXMubWFwc1tlXSl7dGhpcy5hZGRNYXBCeU5hbWUoZSl9cmV0dXJuIHRoaXMubWFwc1tlXX19LHtrZXk6XCJhZGRNYXBCeU5hbWVcIix2YWx1ZTpmdW5jdGlvbiBhZGRNYXBCeU5hbWUoZSl7dmFyIHQ9Z2V0TWFwQnlOYW1lKGUsdGhpcy5fZG9jdW1lbnQpO2lmKCF0KXtyZXR1cm59dGhpcy5tYXBzW3QubmFtZV09cXVlcnlUYWJiYWJsZSh7Y29udGV4dDp0fSl9fSx7a2V5OlwiZXh0cmFjdEFyZWFzRnJvbUxpc3RcIix2YWx1ZTpmdW5jdGlvbiBleHRyYWN0QXJlYXNGcm9tTGlzdChlKXtyZXR1cm4gZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZih0IT09XCJhcmVhXCIpe3JldHVybiB0cnVlfXZhciByPWUucGFyZW50Tm9kZTtpZighdGhpcy5tYXBzW3IubmFtZV0pe3RoaXMubWFwc1tyLm5hbWVdPVtdfXRoaXMubWFwc1tyLm5hbWVdLnB1c2goZSk7cmV0dXJuIGZhbHNlfSksdGhpcyl9fV0pO3JldHVybiBNYXBzfSgpO2Z1bmN0aW9uIHNvcnRBcmVhKGUsdCl7dmFyIHI9dC5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nW3VzZW1hcF1cIik7dmFyIG49bmV3IGl0KHQpO3ZhciBhPW4uZXh0cmFjdEFyZWFzRnJvbUxpc3QoZSk7aWYoIXIubGVuZ3RoKXtyZXR1cm4gYX1yZXR1cm4gbWVyZ2VJbkRvbU9yZGVyKHtsaXN0OmEsZWxlbWVudHM6cixyZXNvbHZlRWxlbWVudDpmdW5jdGlvbiByZXNvbHZlRWxlbWVudChlKXt2YXIgdD1lLmdldEF0dHJpYnV0ZShcInVzZW1hcFwiKS5zbGljZSgxKTtyZXR1cm4gbi5nZXRBcmVhc0Zvcih0KX19KX12YXIgbHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ZmFsc2U7bi5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBuKW4ud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLmtleSxuKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXtpZih0KWRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsdCk7aWYocilkZWZpbmVQcm9wZXJ0aWVzKGUscik7cmV0dXJuIGV9fSgpO2Z1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayQxKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9fXZhciBzdD1mdW5jdGlvbigpe2Z1bmN0aW9uIFNoYWRvd3MoZSx0KXtfY2xhc3NDYWxsQ2hlY2skMSh0aGlzLFNoYWRvd3MpO3RoaXMuY29udGV4dD1lO3RoaXMuc29ydEVsZW1lbnRzPXQ7dGhpcy5ob3N0Q291bnRlcj0xO3RoaXMuaW5Ib3N0PXt9O3RoaXMuaW5Eb2N1bWVudD1bXTt0aGlzLmhvc3RzPXt9O3RoaXMuZWxlbWVudHM9e319bHQoU2hhZG93cyxbe2tleTpcIl9yZWdpc3Rlckhvc3RcIix2YWx1ZTpmdW5jdGlvbiBfcmVnaXN0ZXJIb3N0KGUpe2lmKGUuX3NvcnRpbmdJZCl7cmV0dXJufWUuX3NvcnRpbmdJZD1cInNoYWRvdy1cIit0aGlzLmhvc3RDb3VudGVyKys7dGhpcy5ob3N0c1tlLl9zb3J0aW5nSWRdPWU7dmFyIHQ9Z2V0U2hhZG93SG9zdCh7Y29udGV4dDplfSk7aWYodCl7dGhpcy5fcmVnaXN0ZXJIb3N0KHQpO3RoaXMuX3JlZ2lzdGVySG9zdFBhcmVudChlLHQpfWVsc2V7dGhpcy5pbkRvY3VtZW50LnB1c2goZSl9fX0se2tleTpcIl9yZWdpc3Rlckhvc3RQYXJlbnRcIix2YWx1ZTpmdW5jdGlvbiBfcmVnaXN0ZXJIb3N0UGFyZW50KGUsdCl7aWYoIXRoaXMuaW5Ib3N0W3QuX3NvcnRpbmdJZF0pe3RoaXMuaW5Ib3N0W3QuX3NvcnRpbmdJZF09W119dGhpcy5pbkhvc3RbdC5fc29ydGluZ0lkXS5wdXNoKGUpfX0se2tleTpcIl9yZWdpc3RlckVsZW1lbnRcIix2YWx1ZTpmdW5jdGlvbiBfcmVnaXN0ZXJFbGVtZW50KGUsdCl7aWYoIXRoaXMuZWxlbWVudHNbdC5fc29ydGluZ0lkXSl7dGhpcy5lbGVtZW50c1t0Ll9zb3J0aW5nSWRdPVtdfXRoaXMuZWxlbWVudHNbdC5fc29ydGluZ0lkXS5wdXNoKGUpfX0se2tleTpcImV4dHJhY3RFbGVtZW50c1wiLHZhbHVlOmZ1bmN0aW9uIGV4dHJhY3RFbGVtZW50cyhlKXtyZXR1cm4gZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3ZhciB0PWdldFNoYWRvd0hvc3Qoe2NvbnRleHQ6ZX0pO2lmKCF0KXtyZXR1cm4gdHJ1ZX10aGlzLl9yZWdpc3Rlckhvc3QodCk7dGhpcy5fcmVnaXN0ZXJFbGVtZW50KGUsdCk7cmV0dXJuIGZhbHNlfSksdGhpcyl9fSx7a2V5Olwic29ydFwiLHZhbHVlOmZ1bmN0aW9uIHNvcnQoZSl7dmFyIHQ9dGhpcy5faW5qZWN0SG9zdHMoZSk7dD10aGlzLl9yZXBsYWNlSG9zdHModCk7dGhpcy5fY2xlYW51cCgpO3JldHVybiB0fX0se2tleTpcIl9pbmplY3RIb3N0c1wiLHZhbHVlOmZ1bmN0aW9uIF9pbmplY3RIb3N0cyhlKXtPYmplY3Qua2V5cyh0aGlzLmhvc3RzKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD10aGlzLmVsZW1lbnRzW2VdO3ZhciByPXRoaXMuaW5Ib3N0W2VdO3ZhciBuPXRoaXMuaG9zdHNbZV0uc2hhZG93Um9vdDt0aGlzLmVsZW1lbnRzW2VdPXRoaXMuX21lcmdlKHQscixuKX0pLHRoaXMpO3JldHVybiB0aGlzLl9tZXJnZShlLHRoaXMuaW5Eb2N1bWVudCx0aGlzLmNvbnRleHQpfX0se2tleTpcIl9tZXJnZVwiLHZhbHVlOmZ1bmN0aW9uIF9tZXJnZShlLHQscil7dmFyIG49bWVyZ2VJbkRvbU9yZGVyKHtsaXN0OmUsZWxlbWVudHM6dH0pO3JldHVybiB0aGlzLnNvcnRFbGVtZW50cyhuLHIpfX0se2tleTpcIl9yZXBsYWNlSG9zdHNcIix2YWx1ZTpmdW5jdGlvbiBfcmVwbGFjZUhvc3RzKGUpe3JldHVybiBtZXJnZUluRG9tT3JkZXIoe2xpc3Q6ZSxlbGVtZW50czp0aGlzLmluRG9jdW1lbnQscmVzb2x2ZUVsZW1lbnQ6dGhpcy5fcmVzb2x2ZUhvc3RFbGVtZW50LmJpbmQodGhpcyl9KX19LHtrZXk6XCJfcmVzb2x2ZUhvc3RFbGVtZW50XCIsdmFsdWU6ZnVuY3Rpb24gX3Jlc29sdmVIb3N0RWxlbWVudChlKXt2YXIgdD1tZXJnZUluRG9tT3JkZXIoe2xpc3Q6dGhpcy5lbGVtZW50c1tlLl9zb3J0aW5nSWRdLGVsZW1lbnRzOnRoaXMuaW5Ib3N0W2UuX3NvcnRpbmdJZF0scmVzb2x2ZUVsZW1lbnQ6dGhpcy5fcmVzb2x2ZUhvc3RFbGVtZW50LmJpbmQodGhpcyl9KTt2YXIgcj10YWJpbmRleFZhbHVlKGUpO2lmKHIhPT1udWxsJiZyPi0xKXtyZXR1cm5bZV0uY29uY2F0KHQpfXJldHVybiB0fX0se2tleTpcIl9jbGVhbnVwXCIsdmFsdWU6ZnVuY3Rpb24gX2NsZWFudXAoKXtPYmplY3Qua2V5cyh0aGlzLmhvc3RzKS5mb3JFYWNoKChmdW5jdGlvbihlKXtkZWxldGUgdGhpcy5ob3N0c1tlXS5fc29ydGluZ0lkfSksdGhpcyl9fV0pO3JldHVybiBTaGFkb3dzfSgpO2Z1bmN0aW9uIHNvcnRTaGFkb3dlZChlLHQscil7dmFyIG49bmV3IHN0KHQscik7dmFyIGE9bi5leHRyYWN0RWxlbWVudHMoZSk7aWYoYS5sZW5ndGg9PT1lLmxlbmd0aCl7cmV0dXJuIHIoZSl9cmV0dXJuIG4uc29ydChhKX1mdW5jdGlvbiBzb3J0VGFiaW5kZXgoZSl7dmFyIHQ9e307dmFyIHI9W107dmFyIG49ZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3ZhciBuPWUudGFiSW5kZXg7aWYobj09PXVuZGVmaW5lZCl7bj10YWJpbmRleFZhbHVlKGUpfWlmKG48PTB8fG49PT1udWxsfHxuPT09dW5kZWZpbmVkKXtyZXR1cm4gdHJ1ZX1pZighdFtuXSl7dFtuXT1bXTtyLnB1c2gobil9dFtuXS5wdXNoKGUpO3JldHVybiBmYWxzZX0pKTt2YXIgYT1yLnNvcnQoKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpLnJlZHVjZVJpZ2h0KChmdW5jdGlvbihlLHQpe3JldHVybiB0LmNvbmNhdChlKX0pLG4pO3JldHVybiBhfXZhciB1dD12b2lkIDA7ZnVuY3Rpb24gbW92ZUNvbnRleHRUb0JlZ2lubmluZyhlLHQpe3ZhciByPWUuaW5kZXhPZih0KTtpZihyPjApe3ZhciBuPWUuc3BsaWNlKHIsMSk7cmV0dXJuIG4uY29uY2F0KGUpfXJldHVybiBlfWZ1bmN0aW9uIHNvcnRFbGVtZW50cyhlLHQpe2lmKHV0LnRhYnNlcXVlbmNlQXJlYUF0SW1nUG9zaXRpb24pe2U9c29ydEFyZWEoZSx0KX1lPXNvcnRUYWJpbmRleChlKTtyZXR1cm4gZX1mdW5jdGlvbiBxdWVyeVRhYnNlcXVlbmNlKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5jb250ZXh0LHI9ZS5pbmNsdWRlQ29udGV4dCxuPWUuaW5jbHVkZU9ubHlUYWJiYWJsZSxhPWUuc3RyYXRlZ3k7aWYoIXV0KXt1dD1fc3VwcG9ydHMoKX12YXIgbz1ub2RlQXJyYXkodClbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDt2YXIgaT1xdWVyeVRhYmJhYmxlKHtjb250ZXh0Om8saW5jbHVkZUNvbnRleHQ6cixpbmNsdWRlT25seVRhYmJhYmxlOm4sc3RyYXRlZ3k6YX0pO2lmKGRvY3VtZW50LmJvZHkuY3JlYXRlU2hhZG93Um9vdCYmQS5pcy5CTElOSyl7aT1zb3J0U2hhZG93ZWQoaSxvLHNvcnRFbGVtZW50cyl9ZWxzZXtpPXNvcnRFbGVtZW50cyhpLG8pfWlmKHIpe2k9bW92ZUNvbnRleHRUb0JlZ2lubmluZyhpLG8pfXJldHVybiBpfXZhciBjdD17dGFiOjksbGVmdDozNyx1cDozOCxyaWdodDozOSxkb3duOjQwLHBhZ2VVcDozMyxcInBhZ2UtdXBcIjozMyxwYWdlRG93bjozNCxcInBhZ2UtZG93blwiOjM0LGVuZDozNSxob21lOjM2LGVudGVyOjEzLGVzY2FwZToyNyxzcGFjZTozMixzaGlmdDoxNixjYXBzTG9jazoyMCxcImNhcHMtbG9ja1wiOjIwLGN0cmw6MTcsYWx0OjE4LG1ldGE6OTEscGF1c2U6MTksaW5zZXJ0OjQ1LGRlbGV0ZTo0NixiYWNrc3BhY2U6OCxfYWxpYXM6ezkxOls5Miw5MywyMjRdfX07Zm9yKHZhciBkdD0xO2R0PDI2O2R0Kyspe2N0W1wiZlwiK2R0XT1kdCsxMTF9Zm9yKHZhciBmdD0wO2Z0PDEwO2Z0Kyspe3ZhciBtdD1mdCs0ODt2YXIgcHQ9ZnQrOTY7Y3RbZnRdPW10O2N0W1wibnVtLVwiK2Z0XT1wdDtjdC5fYWxpYXNbbXRdPVtwdF19Zm9yKHZhciBidD0wO2J0PDI2O2J0Kyspe3ZhciBndD1idCs2NTt2YXIgdnQ9U3RyaW5nLmZyb21DaGFyQ29kZShndCkudG9Mb3dlckNhc2UoKTtjdFt2dF09Z3R9dmFyIGh0PXthbHQ6XCJhbHRLZXlcIixjdHJsOlwiY3RybEtleVwiLG1ldGE6XCJtZXRhS2V5XCIsc2hpZnQ6XCJzaGlmdEtleVwifTt2YXIgeHQ9T2JqZWN0LmtleXMoaHQpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGh0W2VdfSkpO2Z1bmN0aW9uIGNyZWF0ZUV4cGVjdGVkTW9kaWZpZXJzKGUpe3ZhciB0PWU/bnVsbDpmYWxzZTtyZXR1cm57YWx0S2V5OnQsY3RybEtleTp0LG1ldGFLZXk6dCxzaGlmdEtleTp0fX1mdW5jdGlvbiByZXNvbHZlTW9kaWZpZXJzKGUpe3ZhciB0PWUuaW5kZXhPZihcIipcIikhPT0tMTt2YXIgcj1jcmVhdGVFeHBlY3RlZE1vZGlmaWVycyh0KTtlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2lmKGU9PT1cIipcIil7cmV0dXJufXZhciB0PXRydWU7dmFyIG49ZS5zbGljZSgwLDEpO2lmKG49PT1cIj9cIil7dD1udWxsfWVsc2UgaWYobj09PVwiIVwiKXt0PWZhbHNlfWlmKHQhPT10cnVlKXtlPWUuc2xpY2UoMSl9dmFyIGE9aHRbZV07aWYoIWEpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gbW9kaWZpZXIgXCInK2UrJ1wiJyl9clthXT10fSkpO3JldHVybiByfWZ1bmN0aW9uIHJlc29sdmVLZXkoZSl7dmFyIHQ9Y3RbZV18fHBhcnNlSW50KGUsMTApO2lmKCF0fHx0eXBlb2YgdCE9PVwibnVtYmVyXCJ8fGlzTmFOKHQpKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGtleSBcIicrZSsnXCInKX1yZXR1cm5bdF0uY29uY2F0KGN0Ll9hbGlhc1t0XXx8W10pfWZ1bmN0aW9uIG1hdGNoTW9kaWZpZXJzKGUsdCl7cmV0dXJuIXh0LnNvbWUoKGZ1bmN0aW9uKHIpe3JldHVybiB0eXBlb2YgZVtyXT09PVwiYm9vbGVhblwiJiZCb29sZWFuKHRbcl0pIT09ZVtyXX0pKX1mdW5jdGlvbiBrZXlCaW5kaW5nKGUpe3JldHVybiBlLnNwbGl0KC9cXHMrLykubWFwKChmdW5jdGlvbihlKXt2YXIgdD1lLnNwbGl0KFwiK1wiKTt2YXIgcj1yZXNvbHZlTW9kaWZpZXJzKHQuc2xpY2UoMCwtMSkpO3ZhciBuPXJlc29sdmVLZXkodC5zbGljZSgtMSkpO3JldHVybntrZXlDb2RlczpuLG1vZGlmaWVyczpyLG1hdGNoTW9kaWZpZXJzOm1hdGNoTW9kaWZpZXJzLmJpbmQobnVsbCxyKX19KSl9ZnVuY3Rpb24gZ2V0UGFyZW50Q29tcGFyYXRvcigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUucGFyZW50LHI9ZS5lbGVtZW50LG49ZS5pbmNsdWRlU2VsZjtpZih0KXtyZXR1cm4gZnVuY3Rpb24gaXNDaGlsZE9mKGUpe3JldHVybiBCb29sZWFuKG4mJmU9PT10fHx0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKX19ZWxzZSBpZihyKXtyZXR1cm4gZnVuY3Rpb24gaXNQYXJlbnRPZihlKXtyZXR1cm4gQm9vbGVhbihuJiZyPT09ZXx8ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihyKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSl9fXRocm93IG5ldyBUeXBlRXJyb3IoXCJ1dGlsL2NvbXBhcmUtcG9zaXRpb24jZ2V0UGFyZW50Q29tcGFyYXRvciByZXF1aXJlZCBlaXRoZXIgb3B0aW9ucy5wYXJlbnQgb3Igb3B0aW9ucy5lbGVtZW50XCIpfWZ1bmN0aW9uIHdoZW5LZXkoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e307dmFyIHQ9e307dmFyIHI9bm9kZUFycmF5KGUuY29udGV4dClbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtkZWxldGUgZS5jb250ZXh0O3ZhciBuPW5vZGVBcnJheShlLmZpbHRlcik7ZGVsZXRlIGUuZmlsdGVyO3ZhciBhPU9iamVjdC5rZXlzKGUpO2lmKCFhLmxlbmd0aCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIndoZW4va2V5IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBvcHRpb24ga2V5XCIpfXZhciBvPWZ1bmN0aW9uIHJlZ2lzdGVyQmluZGluZyhlKXtlLmtleUNvZGVzLmZvckVhY2goKGZ1bmN0aW9uKHIpe2lmKCF0W3JdKXt0W3JdPVtdfXRbcl0ucHVzaChlKX0pKX07YS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZih0eXBlb2YgZVt0XSE9PVwiZnVuY3Rpb25cIil7dGhyb3cgbmV3IFR5cGVFcnJvcignd2hlbi9rZXkgcmVxdWlyZXMgb3B0aW9uW1wiJyt0KydcIl0gdG8gYmUgYSBmdW5jdGlvbicpfXZhciByPWZ1bmN0aW9uIGFkZENhbGxiYWNrKHIpe3IuY2FsbGJhY2s9ZVt0XTtyZXR1cm4gcn07a2V5QmluZGluZyh0KS5tYXAocikuZm9yRWFjaChvKX0pKTt2YXIgaT1mdW5jdGlvbiBoYW5kbGVLZXlEb3duKGUpe2lmKGUuZGVmYXVsdFByZXZlbnRlZCl7cmV0dXJufWlmKG4ubGVuZ3RoKXt2YXIgYT1nZXRQYXJlbnRDb21wYXJhdG9yKHtlbGVtZW50OmUudGFyZ2V0LGluY2x1ZGVTZWxmOnRydWV9KTtpZihuLnNvbWUoYSkpe3JldHVybn19dmFyIG89ZS5rZXlDb2RlfHxlLndoaWNoO2lmKCF0W29dKXtyZXR1cm59dFtvXS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighdC5tYXRjaE1vZGlmaWVycyhlKSl7cmV0dXJufXQuY2FsbGJhY2suY2FsbChyLGUsbCl9KSl9O3IuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixpLGZhbHNlKTt2YXIgbD1mdW5jdGlvbiBkaXNlbmdhZ2UoKXtyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaSxmYWxzZSl9O3JldHVybntkaXNlbmdhZ2U6bH19ZnVuY3Rpb24gbWFpbnRhaW5fdGFiX2ZvY3VzKHtjb250ZXh0OmV9PXt9KXtpZighZSl7ZT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9cXVlcnlUYWJzZXF1ZW5jZSgpO3JldHVybiB3aGVuS2V5KHtcIj9hbHQrP3NoaWZ0K3RhYlwiOmZ1bmN0aW9uIGFsdFNoaWZ0VGFiKHQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgcj1xdWVyeVRhYnNlcXVlbmNlKHtjb250ZXh0OmV9KTt2YXIgbj10LnNoaWZ0S2V5O3ZhciBhPXJbMF07dmFyIG89cltyLmxlbmd0aC0xXTt2YXIgaT1uP2E6bzt2YXIgbD1uP286YTtpZihpc0FjdGl2ZUVsZW1lbnQoaSkpe2wuZm9jdXMoKTtyZXR1cm59dmFyIHM9dm9pZCAwO3ZhciB1PXIuc29tZSgoZnVuY3Rpb24oZSx0KXtpZighaXNBY3RpdmVFbGVtZW50KGUpKXtyZXR1cm4gZmFsc2V9cz10O3JldHVybiB0cnVlfSkpO2lmKCF1KXthLmZvY3VzKCk7cmV0dXJufXZhciBjPW4/LTE6MTtyW3MrY10uZm9jdXMoKX19KX1sZXQgeXQ7bGV0IEV0O2xldCB3dD0wO2Z1bmN0aW9uIGxvY2soKXtzZXRUaW1lb3V0KCgoKT0+e2lmKHd0Kys+MCl7cmV0dXJufWNvbnN0IGU9d2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO2lmKGU+MCl7eXQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ7ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9YCR7ZX1weGB9RXQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCJ9KSl9ZnVuY3Rpb24gdW5sb2NrKCl7c2V0VGltZW91dCgoKCk9PntpZih3dD09PTB8fC0td3QhPT0wKXtyZXR1cm59aWYoeXQhPT11bmRlZmluZWQpe2RvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0PXl0O3l0PXVuZGVmaW5lZH1pZihFdCE9PXVuZGVmaW5lZCl7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz1FdDtFdD11bmRlZmluZWR9fSkpfWNvbnN0IGt0PWZ1bmN0aW9uIE92ZXJsYXkoe2NsYXNzTmFtZTplLGNoaWxkcmVuOnQsZml4ZWQ6cn0pe20udXNlRWZmZWN0KCgoKT0+e2xvY2soKTtyZXR1cm4oKT0+e3VubG9jaygpfX0pLFtdKTtjb25zdFtuLGFdPW0udXNlU3RhdGUobnVsbCk7Y29uc3Qgbz1tLnVzZUNhbGxiYWNrKChlPT57YShlKX0pLFtdKTttLnVzZUVmZmVjdCgoKCk9PntpZihuPT1udWxsKXtyZXR1cm59Y29uc3QgZT1tYWludGFpbl90YWJfZm9jdXMoe2NvbnRleHQ6bn0pO3JldHVybigpPT57ZS5kaXNlbmdhZ2UoKX19KSxbbl0pO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheVwiOnRydWUsY2xhc3NOYW1lOmUscmVmOm99LG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcFwiOnRydWUsXCJkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3AtZml4ZWRcIjpyP3RydWU6dW5kZWZpbmVkfSksdCl9O3ZhciBTdD1yZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2Fuc2VyXCIpO3ZhciBUdD1lLm4oU3QpO2NvbnN0IEN0PWZ1bmN0aW9uIFRlcm1pbmFsKHtjb250ZW50OmV9KXtjb25zdCB0PW0udXNlTWVtbygoKCk9PlR0KCkuYW5zaVRvSnNvbihlLHtqc29uOnRydWUsdXNlX2NsYXNzZXM6dHJ1ZSxyZW1vdmVfZW1wdHk6dHJ1ZX0pKSxbZV0pO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLW5leHRqcy10ZXJtaW5hbFwiOnRydWV9LG0uY3JlYXRlRWxlbWVudChcInByZVwiLG51bGwsdC5tYXAoKChlLHQpPT5tLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse2tleTpgdGVybWluYWwtZW50cnktJHt0fWAsc3R5bGU6e2NvbG9yOmUuZmc/YHZhcigtLWNvbG9yLSR7ZS5mZ30pYDp1bmRlZmluZWQsLi4uZS5kZWNvcmF0aW9uPT09XCJib2xkXCI/e2ZvbnRXZWlnaHQ6ODAwfTplLmRlY29yYXRpb249PT1cIml0YWxpY1wiP3tmb250U3R5bGU6XCJpdGFsaWNcIn06dW5kZWZpbmVkfX0sZS5jb250ZW50KSkpKSl9O2NvbnN0IGp0PWZ1bmN0aW9uIEJ1aWxkRXJyb3Ioe21lc3NhZ2U6ZX0pe2NvbnN0IHQ9bS51c2VDYWxsYmFjaygoKCk9Pnt9KSxbXSk7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChrdCx7Zml4ZWQ6dHJ1ZX0sbS5jcmVhdGVFbGVtZW50KHYse3R5cGU6XCJlcnJvclwiLFwiYXJpYS1sYWJlbGxlZGJ5XCI6XCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9sYWJlbFwiLFwiYXJpYS1kZXNjcmliZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfYnVpbGRfZXJyb3JfZGVzY1wiLG9uQ2xvc2U6dH0sbS5jcmVhdGVFbGVtZW50KHgsbnVsbCxtLmNyZWF0ZUVsZW1lbnQoeSx7Y2xhc3NOYW1lOlwibmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1oZWFkZXJcIn0sbS5jcmVhdGVFbGVtZW50KFwiaDRcIix7aWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9sYWJlbFwifSxcIkZhaWxlZCB0byBjb21waWxlXCIpKSxtLmNyZWF0ZUVsZW1lbnQoaCx7Y2xhc3NOYW1lOlwibmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1ib2R5XCJ9LG0uY3JlYXRlRWxlbWVudChDdCx7Y29udGVudDplfSksbS5jcmVhdGVFbGVtZW50KFwiZm9vdGVyXCIsbnVsbCxtLmNyZWF0ZUVsZW1lbnQoXCJwXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfYnVpbGRfZXJyb3JfZGVzY1wifSxtLmNyZWF0ZUVsZW1lbnQoXCJzbWFsbFwiLG51bGwsXCJUaGlzIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgY2FuIG9ubHkgYmUgZGlzbWlzc2VkIGJ5IGZpeGluZyB0aGUgZXJyb3IuXCIpKSkpKSkpfTtjb25zdCBBdD1ub29wYFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1oZWFkZXIgPiBoNCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHkgZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcCk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBmb290ZXIgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBzbWFsbCB7XG4gICAgY29sb3I6ICM3NTc1NzU7XG4gIH1cbmA7Y29uc3QgQ2xvc2VJY29uPSgpPT5tLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIix7d2lkdGg6XCIyNFwiLGhlaWdodDpcIjI0XCIsdmlld0JveDpcIjAgMCAyNCAyNFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxtLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTggNkw2IDE4XCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwifSksbS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTYgNkwxOCAxOFwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIn0pKTtjb25zdCBPdD1mdW5jdGlvbiBMZWZ0UmlnaHREaWFsb2dIZWFkZXIoe2NoaWxkcmVuOmUsY2xhc3NOYW1lOnQscHJldmlvdXM6cixuZXh0Om4sY2xvc2U6YX0pe2NvbnN0IG89bS51c2VSZWYobnVsbCk7Y29uc3QgaT1tLnVzZVJlZihudWxsKTtjb25zdCBsPW0udXNlUmVmKG51bGwpO2NvbnN0W3MsdV09bS51c2VTdGF0ZShudWxsKTtjb25zdCBjPW0udXNlQ2FsbGJhY2soKGU9Pnt1KGUpfSksW10pO20udXNlRWZmZWN0KCgoKT0+e2lmKHM9PW51bGwpe3JldHVybn1jb25zdCBlPXMuZ2V0Um9vdE5vZGUoKTtjb25zdCB0PXNlbGYuZG9jdW1lbnQ7ZnVuY3Rpb24gaGFuZGxlcih0KXtpZih0LmtleT09PVwiQXJyb3dMZWZ0XCIpe3Quc3RvcFByb3BhZ2F0aW9uKCk7aWYoby5jdXJyZW50KXtvLmN1cnJlbnQuZm9jdXMoKX1yJiZyKCl9ZWxzZSBpZih0LmtleT09PVwiQXJyb3dSaWdodFwiKXt0LnN0b3BQcm9wYWdhdGlvbigpO2lmKGkuY3VycmVudCl7aS5jdXJyZW50LmZvY3VzKCl9biYmbigpfWVsc2UgaWYodC5rZXk9PT1cIkVzY2FwZVwiKXt0LnN0b3BQcm9wYWdhdGlvbigpO2lmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290KXtjb25zdCB0PWUuYWN0aXZlRWxlbWVudDtpZih0JiZ0IT09bC5jdXJyZW50JiZ0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe3QuYmx1cigpO3JldHVybn19aWYoYSl7YSgpfX19ZS5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGhhbmRsZXIpO2lmKGUhPT10KXt0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaGFuZGxlcil9cmV0dXJuIGZ1bmN0aW9uKCl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGhhbmRsZXIpO2lmKGUhPT10KXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaGFuZGxlcil9fX0pLFthLHMsbixyXSk7bS51c2VFZmZlY3QoKCgpPT57aWYocz09bnVsbCl7cmV0dXJufWNvbnN0IGU9cy5nZXRSb290Tm9kZSgpO2lmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290KXtjb25zdCB0PWUuYWN0aXZlRWxlbWVudDtpZihyPT1udWxsKXtpZihvLmN1cnJlbnQmJnQ9PT1vLmN1cnJlbnQpe28uY3VycmVudC5ibHVyKCl9fWVsc2UgaWYobj09bnVsbCl7aWYoaS5jdXJyZW50JiZ0PT09aS5jdXJyZW50KXtpLmN1cnJlbnQuYmx1cigpfX19fSksW3MsbixyXSk7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XCI6dHJ1ZSxjbGFzc05hbWU6dH0sbS5jcmVhdGVFbGVtZW50KFwibmF2XCIse3JlZjpjfSxtLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIix7cmVmOm8sdHlwZTpcImJ1dHRvblwiLGRpc2FibGVkOnI9PW51bGw/dHJ1ZTp1bmRlZmluZWQsXCJhcmlhLWRpc2FibGVkXCI6cj09bnVsbD90cnVlOnVuZGVmaW5lZCxvbkNsaWNrOnI/P3VuZGVmaW5lZH0sbS5jcmVhdGVFbGVtZW50KFwic3ZnXCIse3ZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sbS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTYuOTk5OTYgMS4xNjY2NkwxLjE2NjYzIDYuOTk5OTlMNi45OTk5NiAxMi44MzMzTTEyLjgzMzMgNi45OTk5OUgxLjk5OTk2SDEyLjgzMzNaXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwifSkpKSxtLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIix7cmVmOmksdHlwZTpcImJ1dHRvblwiLGRpc2FibGVkOm49PW51bGw/dHJ1ZTp1bmRlZmluZWQsXCJhcmlhLWRpc2FibGVkXCI6bj09bnVsbD90cnVlOnVuZGVmaW5lZCxvbkNsaWNrOm4/P3VuZGVmaW5lZH0sbS5jcmVhdGVFbGVtZW50KFwic3ZnXCIse3ZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sbS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTYuOTk5OTYgMS4xNjY2NkwxMi44MzMzIDYuOTk5OTlMNi45OTk5NiAxMi44MzMzTTEuMTY2NjMgNi45OTk5OUgxMkgxLjE2NjYzWlwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIn0pKSksXCLCoFwiLGUpLGE/bS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIse1wiZGF0YS1uZXh0anMtZXJyb3JzLWRpYWxvZy1sZWZ0LXJpZ2h0LWNsb3NlLWJ1dHRvblwiOnRydWUscmVmOmwsdHlwZTpcImJ1dHRvblwiLG9uQ2xpY2s6YSxcImFyaWEtbGFiZWxcIjpcIkNsb3NlXCJ9LG0uY3JlYXRlRWxlbWVudChcInNwYW5cIix7XCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSxtLmNyZWF0ZUVsZW1lbnQoQ2xvc2VJY29uLG51bGwpKSk6bnVsbCl9O2NvbnN0IF90PW5vb3BgXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcbiAgICBmb250LXNpemU6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24gPiBzdmcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4yKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjEpO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjQpO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpIDAgMCB2YXIoLS1zaXplLWdhcC1oYWxmKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1oYWxmKSAwO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIG9wYWNpdHk6IDAuNDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGU6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuYDtjb25zdCBJdD1ub29wYFxuICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICAgIGxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICB6LWluZGV4OiA5MDAwO1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgW2RhdGEtbmV4dGpzLXRvYXN0XSB7XG4gICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICBsZWZ0OiA1dnc7XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXJdIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gICAgYm94LXNoYWRvdzogMHB4IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgdmFyKC0tc2l6ZS1nYXAtcXVhZClcbiAgICAgIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIH1cbmA7Y29uc3QgTnQ9ZnVuY3Rpb24gVG9hc3Qoe29uQ2xpY2s6ZSxjaGlsZHJlbjp0LGNsYXNzTmFtZTpyfSl7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLXRvYXN0XCI6dHJ1ZSxvbkNsaWNrOmUsY2xhc3NOYW1lOnJ9LG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXJcIjp0cnVlfSx0KSl9O3ZhciBGdD1yZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIik7dmFyIEx0PWUubihGdCk7Y29uc3QgRHQ9ZnVuY3Rpb24gQ29kZUZyYW1lKHtzdGFja0ZyYW1lOmUsY29kZUZyYW1lOnR9KXtjb25zdCByPW0udXNlTWVtbygoKCk9Pntjb25zdCBlPXQuc3BsaXQoL1xccj9cXG4vZyk7Y29uc3Qgcj1lLm1hcCgoZT0+L14+PyArXFxkKyArXFx8IFsgXSsvLmV4ZWMoTHQoKShlKSk9PT1udWxsP251bGw6L14+PyArXFxkKyArXFx8ICggKikvLmV4ZWMoTHQoKShlKSkpKS5maWx0ZXIoQm9vbGVhbikubWFwKChlPT5lLnBvcCgpKSkucmVkdWNlKCgoZSx0KT0+aXNOYU4oZSk/dC5sZW5ndGg6TWF0aC5taW4oZSx0Lmxlbmd0aCkpLE5hTik7aWYocj4xKXtjb25zdCB0PVwiIFwiLnJlcGVhdChyKTtyZXR1cm4gZS5tYXAoKChlLHIpPT5+KHI9ZS5pbmRleE9mKFwifFwiKSk/ZS5zdWJzdHJpbmcoMCxyKStlLnN1YnN0cmluZyhyKS5yZXBsYWNlKHQsXCJcIik6ZSkpLmpvaW4oXCJcXG5cIil9cmV0dXJuIGUuam9pbihcIlxcblwiKX0pLFt0XSk7Y29uc3Qgbj1tLnVzZU1lbW8oKCgpPT5UdCgpLmFuc2lUb0pzb24ocix7anNvbjp0cnVlLHVzZV9jbGFzc2VzOnRydWUscmVtb3ZlX2VtcHR5OnRydWV9KSksW3JdKTtjb25zdCBhPW0udXNlQ2FsbGJhY2soKCgpPT57Y29uc3QgdD1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdCByIGluIGUpe3QuYXBwZW5kKHIsKGVbcl0/P1wiXCIpLnRvU3RyaW5nKCkpfXNlbGYuZmV0Y2goYCR7cHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSHx8XCJcIn0vX19uZXh0anNfbGF1bmNoLWVkaXRvcj8ke3QudG9TdHJpbmcoKX1gKS50aGVuKCgoKT0+e30pLCgoKT0+e2NvbnNvbGUuZXJyb3IoXCJUaGVyZSB3YXMgYW4gaXNzdWUgb3BlbmluZyB0aGlzIGNvZGUgaW4geW91ciBlZGl0b3IuXCIpfSkpfSksW2VdKTtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lXCI6dHJ1ZX0sbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIsbnVsbCxtLmNyZWF0ZUVsZW1lbnQoXCJwXCIse3JvbGU6XCJsaW5rXCIsb25DbGljazphLHRhYkluZGV4OjEsdGl0bGU6XCJDbGljayB0byBvcGVuIGluIHlvdXIgZWRpdG9yXCJ9LG0uY3JlYXRlRWxlbWVudChcInNwYW5cIixudWxsLGdldEZyYW1lU291cmNlKGUpLFwiIEAgXCIsZS5tZXRob2ROYW1lKSxtLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMjQgMjRcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIn0sbS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIn0pLG0uY3JlYXRlRWxlbWVudChcInBvbHlsaW5lXCIse3BvaW50czpcIjE1IDMgMjEgMyAyMSA5XCJ9KSxtLmNyZWF0ZUVsZW1lbnQoXCJsaW5lXCIse3gxOlwiMTBcIix5MTpcIjE0XCIseDI6XCIyMVwiLHkyOlwiM1wifSkpKSksbS5jcmVhdGVFbGVtZW50KFwicHJlXCIsbnVsbCxuLm1hcCgoKGUsdCk9Pm0uY3JlYXRlRWxlbWVudChcInNwYW5cIix7a2V5OmBmcmFtZS0ke3R9YCxzdHlsZTp7Y29sb3I6ZS5mZz9gdmFyKC0tY29sb3ItJHtlLmZnfSlgOnVuZGVmaW5lZCwuLi5lLmRlY29yYXRpb249PT1cImJvbGRcIj97Zm9udFdlaWdodDo4MDB9OmUuZGVjb3JhdGlvbj09PVwiaXRhbGljXCI/e2ZvbnRTdHlsZTpcIml0YWxpY1wifTp1bmRlZmluZWR9fSxlLmNvbnRlbnQpKSkpKX07Y29uc3QgTXQ9ZnVuY3Rpb24gQ2FsbFN0YWNrRnJhbWUoe2ZyYW1lOmV9KXtjb25zdCB0PWUub3JpZ2luYWxTdGFja0ZyYW1lPz9lLnNvdXJjZVN0YWNrRnJhbWU7Y29uc3Qgcj1Cb29sZWFuKGUub3JpZ2luYWxDb2RlRnJhbWUpO2NvbnN0IG49bS51c2VDYWxsYmFjaygoKCk9PntpZighcilyZXR1cm47Y29uc3QgZT1uZXcgVVJMU2VhcmNoUGFyYW1zO2Zvcihjb25zdCByIGluIHQpe2UuYXBwZW5kKHIsKHRbcl0/P1wiXCIpLnRvU3RyaW5nKCkpfXNlbGYuZmV0Y2goYCR7cHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSHx8XCJcIn0vX19uZXh0anNfbGF1bmNoLWVkaXRvcj8ke2UudG9TdHJpbmcoKX1gKS50aGVuKCgoKT0+e30pLCgoKT0+e2NvbnNvbGUuZXJyb3IoXCJUaGVyZSB3YXMgYW4gaXNzdWUgb3BlbmluZyB0aGlzIGNvZGUgaW4geW91ciBlZGl0b3IuXCIpfSkpfSksW3IsdF0pO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXCI6dHJ1ZX0sbS5jcmVhdGVFbGVtZW50KFwiaDZcIix7XCJkYXRhLW5leHRqcy1mcmFtZS1leHBhbmRlZFwiOkJvb2xlYW4oZS5leHBhbmRlZCl9LHQubWV0aG9kTmFtZSksbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1oYXMtc291cmNlXCI6cj9cInRydWVcIjp1bmRlZmluZWQsdGFiSW5kZXg6cj8xMDp1bmRlZmluZWQscm9sZTpyP1wibGlua1wiOnVuZGVmaW5lZCxvbkNsaWNrOm4sdGl0bGU6cj9cIkNsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3JcIjp1bmRlZmluZWR9LG0uY3JlYXRlRWxlbWVudChcInNwYW5cIixudWxsLGdldEZyYW1lU291cmNlKHQpKSxtLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMjQgMjRcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIn0sbS5jcmVhdGVFbGVtZW50KFwicGF0aFwiLHtkOlwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIn0pLG0uY3JlYXRlRWxlbWVudChcInBvbHlsaW5lXCIse3BvaW50czpcIjE1IDMgMjEgMyAyMSA5XCJ9KSxtLmNyZWF0ZUVsZW1lbnQoXCJsaW5lXCIse3gxOlwiMTBcIix5MTpcIjE0XCIseDI6XCIyMVwiLHkyOlwiM1wifSkpKSl9O2NvbnN0IFJ0PWZ1bmN0aW9uIFJ1bnRpbWVFcnJvcih7ZXJyb3I6ZX0pe2NvbnN0IHQ9bS51c2VNZW1vKCgoKT0+ZS5mcmFtZXMuZmluZEluZGV4KChlPT5lLmV4cGFuZGVkJiZCb29sZWFuKGUub3JpZ2luYWxDb2RlRnJhbWUpJiZCb29sZWFuKGUub3JpZ2luYWxTdGFja0ZyYW1lKSkpKSxbZS5mcmFtZXNdKTtjb25zdCByPW0udXNlTWVtbygoKCk9PmUuZnJhbWVzW3RdPz9udWxsKSxbZS5mcmFtZXMsdF0pO2NvbnN0IG49bS51c2VNZW1vKCgoKT0+dDwwP1tdOmUuZnJhbWVzLnNsaWNlKDAsdCkpLFtlLmZyYW1lcyx0XSk7Y29uc3RbYSxvXT1tLnVzZVN0YXRlKHI9PW51bGwpO2NvbnN0IGk9bS51c2VDYWxsYmFjaygoKCk9PntvKChlPT4hZSkpfSksW10pO2NvbnN0IGw9bS51c2VNZW1vKCgoKT0+bi5maWx0ZXIoKGU9PmUuZXhwYW5kZWR8fGEpKSksW2Esbl0pO2NvbnN0IHM9bS51c2VNZW1vKCgoKT0+ZS5mcmFtZXMuc2xpY2UodCsxKSksW2UuZnJhbWVzLHRdKTtjb25zdCB1PW0udXNlTWVtbygoKCk9PnMuZmlsdGVyKChlPT5lLmV4cGFuZGVkfHxhKSkpLFthLHNdKTtjb25zdCBjPW0udXNlTWVtbygoKCk9PnMubGVuZ3RoIT09dS5sZW5ndGh8fGEmJnIhPW51bGwpLFthLHMubGVuZ3RoLHIsdS5sZW5ndGhdKTtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KG0uRnJhZ21lbnQsbnVsbCxyP20uY3JlYXRlRWxlbWVudChtLkZyYWdtZW50LG51bGwsbS5jcmVhdGVFbGVtZW50KFwiaDVcIixudWxsLFwiU291cmNlXCIpLGwubWFwKCgoZSx0KT0+bS5jcmVhdGVFbGVtZW50KE10LHtrZXk6YGxlYWRpbmctZnJhbWUtJHt0fS0ke2F9YCxmcmFtZTplfSkpKSxtLmNyZWF0ZUVsZW1lbnQoRHQse3N0YWNrRnJhbWU6ci5vcmlnaW5hbFN0YWNrRnJhbWUsY29kZUZyYW1lOnIub3JpZ2luYWxDb2RlRnJhbWV9KSk6dW5kZWZpbmVkLHUubGVuZ3RoP20uY3JlYXRlRWxlbWVudChtLkZyYWdtZW50LG51bGwsbS5jcmVhdGVFbGVtZW50KFwiaDVcIixudWxsLFwiQ2FsbCBTdGFja1wiKSx1Lm1hcCgoKGUsdCk9Pm0uY3JlYXRlRWxlbWVudChNdCx7a2V5OmBjYWxsLXN0YWNrLSR7dH0tJHthfWAsZnJhbWU6ZX0pKSkpOnVuZGVmaW5lZCxjP20uY3JlYXRlRWxlbWVudChtLkZyYWdtZW50LG51bGwsbS5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIse3RhYkluZGV4OjEwLFwiZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvbGxhcHNlZC1hY3Rpb25cIjp0cnVlLHR5cGU6XCJidXR0b25cIixvbkNsaWNrOml9LGE/XCJIaWRlXCI6XCJTaG93XCIsXCIgY29sbGFwc2VkIGZyYW1lc1wiKSk6dW5kZWZpbmVkKX07Y29uc3QgenQ9bm9vcGBcbiAgYnV0dG9uW2RhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb2xsYXBzZWQtYWN0aW9uXSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWdnZXIpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTMpO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBoNiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcbiAgICBjb2xvcjogIzIyMjtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBoNltkYXRhLW5leHRqcy1mcmFtZS1leHBhbmRlZD0nZmFsc2UnXSB7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gICAgY29sb3I6ICM5OTk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2ID4gc3ZnIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwKTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV0gPiBzdmcge1xuICAgIGRpc3BsYXk6IHVuc2V0O1xuICB9XG5gO2Z1bmN0aW9uIGdldEVycm9yU2lnbmF0dXJlKGUpe2NvbnN0e2V2ZW50OnR9PWU7c3dpdGNoKHQudHlwZSl7Y2FzZSBpOmNhc2UgbDp7cmV0dXJuYCR7dC5yZWFzb24ubmFtZX06OiR7dC5yZWFzb24ubWVzc2FnZX06OiR7dC5yZWFzb24uc3RhY2t9YH1kZWZhdWx0Ont9fWNvbnN0IHI9dDtyZXR1cm5cIlwifWNvbnN0IEJ0PWZ1bmN0aW9uIEhvdGxpbmtlZFRleHQoZSl7Y29uc3R7dGV4dDp0fT1lO2NvbnN0IHI9L2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc1wiXSovaTtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KG0uRnJhZ21lbnQsbnVsbCxyLnRlc3QodCk/dC5zcGxpdChcIiBcIikubWFwKCgoZSx0LG4pPT57aWYoci50ZXN0KGUpKXtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KG0uRnJhZ21lbnQse2tleTpgbGluay0ke3R9YH0sbS5jcmVhdGVFbGVtZW50KFwiYVwiLHtocmVmOmV9LGUpLHQ9PT1uLmxlbmd0aC0xP1wiXCI6XCIgXCIpfXJldHVybiB0PT09bi5sZW5ndGgtMT9tLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCx7a2V5OmB0ZXh0LSR7dH1gfSxlKTptLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCx7a2V5OmB0ZXh0LSR7dH1gfSxlLFwiIFwiKX0pKTp0KX07Y29uc3QgSHQ9ZnVuY3Rpb24gRXJyb3JzKHtlcnJvcnM6ZX0pe2NvbnN0W3Qscl09bS51c2VTdGF0ZSh7fSk7Y29uc3RbbixhXT1tLnVzZU1lbW8oKCgpPT57bGV0IHI9W107bGV0IG49bnVsbDtmb3IobGV0IGE9MDthPGUubGVuZ3RoOysrYSl7Y29uc3Qgbz1lW2FdO2NvbnN0e2lkOml9PW87aWYoaSBpbiB0KXtyLnB1c2godFtpXSk7Y29udGludWV9aWYoYT4wKXtjb25zdCB0PWVbYS0xXTtpZihnZXRFcnJvclNpZ25hdHVyZSh0KT09PWdldEVycm9yU2lnbmF0dXJlKG8pKXtjb250aW51ZX19bj1vO2JyZWFrfXJldHVybltyLG5dfSksW2UsdF0pO2NvbnN0IG89bS51c2VNZW1vKCgoKT0+bi5sZW5ndGg8MSYmQm9vbGVhbihlLmxlbmd0aCkpLFtlLmxlbmd0aCxuLmxlbmd0aF0pO20udXNlRWZmZWN0KCgoKT0+e2lmKGE9PW51bGwpe3JldHVybn1sZXQgZT10cnVlO2dldEVycm9yQnlUeXBlKGEpLnRoZW4oKHQ9PntpZihlKXtyKChlPT4oey4uLmUsW3QuaWRdOnR9KSkpfX0pLCgoKT0+e30pKTtyZXR1cm4oKT0+e2U9ZmFsc2V9fSksW2FdKTtjb25zdFtpLGxdPW0udXNlU3RhdGUoXCJmdWxsc2NyZWVuXCIpO2NvbnN0W3MsdV09bS51c2VTdGF0ZSgwKTtjb25zdCBjPW0udXNlQ2FsbGJhY2soKGU9PntlPy5wcmV2ZW50RGVmYXVsdCgpO3UoKGU9Pk1hdGgubWF4KDAsZS0xKSkpfSksW10pO2NvbnN0IGQ9bS51c2VDYWxsYmFjaygoZT0+e2U/LnByZXZlbnREZWZhdWx0KCk7dSgoZT0+TWF0aC5tYXgoMCxNYXRoLm1pbihuLmxlbmd0aC0xLGUrMSkpKSl9KSxbbi5sZW5ndGhdKTtjb25zdCBmPW0udXNlTWVtbygoKCk9Pm5bc10/P251bGwpLFtzLG5dKTttLnVzZUVmZmVjdCgoKCk9PntpZihlLmxlbmd0aDwxKXtyKHt9KTtsKFwiaGlkZGVuXCIpO3UoMCl9fSksW2UubGVuZ3RoXSk7Y29uc3QgcD1tLnVzZUNhbGxiYWNrKChlPT57ZT8ucHJldmVudERlZmF1bHQoKTtsKFwibWluaW1pemVkXCIpfSksW10pO2NvbnN0IGI9bS51c2VDYWxsYmFjaygoZT0+e2U/LnByZXZlbnREZWZhdWx0KCk7bChcImhpZGRlblwiKX0pLFtdKTtjb25zdCBnPW0udXNlQ2FsbGJhY2soKGU9PntlPy5wcmV2ZW50RGVmYXVsdCgpO2woXCJmdWxsc2NyZWVuXCIpfSksW10pO2lmKGUubGVuZ3RoPDF8fGY9PW51bGwpe3JldHVybiBudWxsfWlmKG8pe3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoa3QsbnVsbCl9aWYoaT09PVwiaGlkZGVuXCIpe3JldHVybiBudWxsfWlmKGk9PT1cIm1pbmltaXplZFwiKXtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KE50LHtjbGFzc05hbWU6XCJuZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudFwiLG9uQ2xpY2s6Z30sbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse2NsYXNzTmFtZTpcIm5leHRqcy10b2FzdC1lcnJvcnNcIn0sbS5jcmVhdGVFbGVtZW50KFwic3ZnXCIse3htbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix3aWR0aDpcIjI0XCIsaGVpZ2h0OlwiMjRcIix2aWV3Qm94OlwiMCAwIDI0IDI0XCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixzdHJva2VXaWR0aDpcIjJcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCJ9LG0uY3JlYXRlRWxlbWVudChcImNpcmNsZVwiLHtjeDpcIjEyXCIsY3k6XCIxMlwiLHI6XCIxMFwifSksbS5jcmVhdGVFbGVtZW50KFwibGluZVwiLHt4MTpcIjEyXCIseTE6XCI4XCIseDI6XCIxMlwiLHkyOlwiMTJcIn0pLG0uY3JlYXRlRWxlbWVudChcImxpbmVcIix7eDE6XCIxMlwiLHkxOlwiMTZcIix4MjpcIjEyLjAxXCIseTI6XCIxNlwifSkpLG0uY3JlYXRlRWxlbWVudChcInNwYW5cIixudWxsLG4ubGVuZ3RoLFwiIGVycm9yXCIsbi5sZW5ndGg+MT9cInNcIjpcIlwiKSxtLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy10b2FzdC1lcnJvcnMtaGlkZS1idXR0b25cIjp0cnVlLGNsYXNzTmFtZTpcIm5leHRqcy10b2FzdC1lcnJvcnMtaGlkZS1idXR0b25cIix0eXBlOlwiYnV0dG9uXCIsb25DbGljazplPT57ZS5zdG9wUHJvcGFnYXRpb24oKTtiKCl9LFwiYXJpYS1sYWJlbFwiOlwiSGlkZSBFcnJvcnNcIn0sbS5jcmVhdGVFbGVtZW50KENsb3NlSWNvbixudWxsKSkpKX1jb25zdCBFPVtcInNlcnZlclwiLFwiZWRnZS1zZXJ2ZXJcIl0uaW5jbHVkZXMoZ2V0RXJyb3JTb3VyY2UoZi5lcnJvcil8fFwiXCIpO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoa3QsbnVsbCxtLmNyZWF0ZUVsZW1lbnQodix7dHlwZTpcImVycm9yXCIsXCJhcmlhLWxhYmVsbGVkYnlcIjpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiLFwiYXJpYS1kZXNjcmliZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIixvbkNsb3NlOkU/dW5kZWZpbmVkOnB9LG0uY3JlYXRlRWxlbWVudCh4LG51bGwsbS5jcmVhdGVFbGVtZW50KHkse2NsYXNzTmFtZTpcIm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlclwifSxtLmNyZWF0ZUVsZW1lbnQoT3Qse3ByZXZpb3VzOnM+MD9jOm51bGwsbmV4dDpzPG4ubGVuZ3RoLTE/ZDpudWxsLGNsb3NlOkU/dW5kZWZpbmVkOnB9LG0uY3JlYXRlRWxlbWVudChcInNtYWxsXCIsbnVsbCxtLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsbnVsbCxzKzEpLFwiIG9mXCIsXCIgXCIsbS5jcmVhdGVFbGVtZW50KFwic3BhblwiLG51bGwsbi5sZW5ndGgpLFwiIHVuaGFuZGxlZCBlcnJvclwiLG4ubGVuZ3RoPDI/XCJcIjpcInNcIikpLG0uY3JlYXRlRWxlbWVudChcImgxXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCJ9LEU/XCJTZXJ2ZXIgRXJyb3JcIjpcIlVuaGFuZGxlZCBSdW50aW1lIEVycm9yXCIpLG0uY3JlYXRlRWxlbWVudChcInBcIix7aWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wifSxmLmVycm9yLm5hbWUsXCI6XCIsXCIgXCIsbS5jcmVhdGVFbGVtZW50KEJ0LHt0ZXh0OmYuZXJyb3IubWVzc2FnZX0pKSxFP20uY3JlYXRlRWxlbWVudChcImRpdlwiLG51bGwsbS5jcmVhdGVFbGVtZW50KFwic21hbGxcIixudWxsLFwiVGhpcyBlcnJvciBoYXBwZW5lZCB3aGlsZSBnZW5lcmF0aW5nIHRoZSBwYWdlLiBBbnkgY29uc29sZSBsb2dzIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSB0ZXJtaW5hbCB3aW5kb3cuXCIpKTp1bmRlZmluZWQpLG0uY3JlYXRlRWxlbWVudChoLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5XCJ9LG0uY3JlYXRlRWxlbWVudChSdCx7a2V5OmYuaWQudG9TdHJpbmcoKSxlcnJvcjpmfSkpKSkpfTtjb25zdCBQdD1ub29wYFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gaDEge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LWJpZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWdnZXIpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTEpO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgc21hbGwgPiBzcGFuIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBwIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb250LWJpZyk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBkaXYgPiBzbWFsbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBwID4gYSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgfVxuXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDU6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgPiBoNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xuICB9XG5cbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgfVxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxuICAubmV4dGpzLXRvYXN0LWVycm9ycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuICAubmV4dGpzLXRvYXN0LWVycm9ycyA+IHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zaXplLWdhcCk7XG4gIH1cbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtaGlkZS1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcC10cmlwbGUpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLWhpZGUtYnV0dG9uOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gO2NsYXNzIEVycm9yQm91bmRhcnkgZXh0ZW5kcyBwKCkuUHVyZUNvbXBvbmVudHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyk7dGhpcy5zdGF0ZT17ZXJyb3I6bnVsbH19c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlKXtyZXR1cm57ZXJyb3I6ZX19Y29tcG9uZW50RGlkQ2F0Y2goZSx0KXt0aGlzLnByb3BzLm9uRXJyb3IoZSx0Py5jb21wb25lbnRTdGFja3x8bnVsbCk7aWYoIXRoaXMucHJvcHMuZ2xvYmFsT3ZlcmxheSl7dGhpcy5zZXRTdGF0ZSh7ZXJyb3I6ZX0pfX1yZW5kZXIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5lcnJvcnx8dGhpcy5wcm9wcy5nbG9iYWxPdmVybGF5JiZ0aGlzLnByb3BzLmlzTW91bnRlZD90aGlzLnByb3BzLmdsb2JhbE92ZXJsYXk/cCgpLmNyZWF0ZUVsZW1lbnQoXCJodG1sXCIsbnVsbCxwKCkuY3JlYXRlRWxlbWVudChcImhlYWRcIixudWxsKSxwKCkuY3JlYXRlRWxlbWVudChcImJvZHlcIixudWxsKSk6bnVsbDp0aGlzLnByb3BzLmNoaWxkcmVufX1mdW5jdGlvbiBCYXNlKCl7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcInN0eWxlXCIsbnVsbCxub29wYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgLS1zaXplLWdhcC1oYWxmOiA0cHg7XG4gICAgICAgICAgLS1zaXplLWdhcDogOHB4O1xuICAgICAgICAgIC0tc2l6ZS1nYXAtZG91YmxlOiAxNnB4O1xuICAgICAgICAgIC0tc2l6ZS1nYXAtdHJpcGxlOiAyNHB4O1xuICAgICAgICAgIC0tc2l6ZS1nYXAtcXVhZDogMzJweDtcblxuICAgICAgICAgIC0tc2l6ZS1mb250LXNtYWxsOiAxNHB4O1xuICAgICAgICAgIC0tc2l6ZS1mb250OiAxNnB4O1xuICAgICAgICAgIC0tc2l6ZS1mb250LWJpZzogMjBweDtcbiAgICAgICAgICAtLXNpemUtZm9udC1iaWdnZXI6IDI0cHg7XG5cbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMTogIzgwODA4MDtcbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMjogIzIyMjIyMjtcbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMzogIzQwNDA0MDtcblxuICAgICAgICAgIC0tZm9udC1zdGFjay1tb25vc3BhY2U6ICdTRk1vbm8tUmVndWxhcicsIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJyxcbiAgICAgICAgICAgIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7XG5cbiAgICAgICAgICAtLWNvbG9yLWFuc2ktc2VsZWN0aW9uOiByZ2JhKDk1LCAxMjYsIDE1MSwgMC40OCk7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJnOiAjMTExMTExO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1mZzogI2NjY2NjYztcblxuICAgICAgICAgIC0tY29sb3ItYW5zaS13aGl0ZTogIzc3Nzc3NztcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYmxhY2s6ICMxNDE0MTQ7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJsdWU6ICMwMGFhZmY7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWN5YW46ICM4OGRkZmY7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWdyZWVuOiAjOThlYzY1O1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1tYWdlbnRhOiAjYWE4OGZmO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1yZWQ6ICNmZjU1NTU7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLXllbGxvdzogI2ZmY2MzMztcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlOiAjZmZmZmZmO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtYmxhY2s6ICM3Nzc3Nzc7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ibHVlOiAjMzNiYmZmO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtY3lhbjogI2JiZWNmZjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWdyZWVuOiAjYjZmMjkyO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtbWFnZW50YTogI2NlYmJmZjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXJlZDogI2ZmODg4ODtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXllbGxvdzogI2ZmZDk2NjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tb25vIHtcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaDEsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaDIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgfVxuICAgICAgICBoMyB7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICB9XG4gICAgICAgIGg0IHtcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIH1cbiAgICAgICAgaDUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgfVxuICAgICAgICBoNiB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB9XG4gICAgICBgKX1jb25zdCBxdD1ub29wYFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdOjpzZWxlY3Rpb24sXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICoge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+ICoge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gZGl2IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjayk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYgPiBwOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcCA+IHN2ZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwcmUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG5gO2NvbnN0IFd0PW5vb3BgXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgei1pbmRleDogOTAwMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAxMHZoIDE1cHggMDtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcbiAgICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xuICAgIH1cbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BdIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsIDE3LCAxNywgMC4yKTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgfVxuYDtjb25zdCBWdD1ub29wYFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJnKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1mZyk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXTo6c2VsZWN0aW9uLFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdICo6OnNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xuICB9XG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKiB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdID4gKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXG4gICAgICBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdIHByZSB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIH1cbmA7ZnVuY3Rpb24gQ29tcG9uZW50U3R5bGVzKCl7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcInN0eWxlXCIsbnVsbCxub29wYFxuICAgICAgICAke1d0fVxuICAgICAgICAke0l0fVxuICAgICAgICAke0V9XG4gICAgICAgICR7X3R9XG4gICAgICAgICR7cXR9XG4gICAgICAgICR7VnR9XG4gICAgICAgIFxuICAgICAgICAke0F0fVxuICAgICAgICAke1B0fVxuICAgICAgICAke3p0fVxuICAgICAgYCl9ZnVuY3Rpb24gQ3NzUmVzZXQoKXtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KFwic3R5bGVcIixudWxsLG5vb3BgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBhbGw6IGluaXRpYWw7XG5cbiAgICAgICAgICAvKiB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IGlzIG5vdCByZXNldCBieSAnYWxsJyAqL1xuICAgICAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyohXG4gICAgICAgICAqIEJvb3RzdHJhcCBSZWJvb3QgdjQuNC4xIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICAgICAgICAgKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICAgICAgICAgKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFR3aXR0ZXIsIEluYy5cbiAgICAgICAgICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAgICAgICAgICogRm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcywgbGljZW5zZWQgTUlUIChodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpXG4gICAgICAgICAqL1xuICAgICAgICAqLFxuICAgICAgICAqOjpiZWZvcmUsXG4gICAgICAgICo6OmFmdGVyIHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBhcnRpY2xlLFxuICAgICAgICBhc2lkZSxcbiAgICAgICAgZmlnY2FwdGlvbixcbiAgICAgICAgZmlndXJlLFxuICAgICAgICBmb290ZXIsXG4gICAgICAgIGhlYWRlcixcbiAgICAgICAgaGdyb3VwLFxuICAgICAgICBtYWluLFxuICAgICAgICBuYXYsXG4gICAgICAgIHNlY3Rpb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXG4gICAgICAgICAgICAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgJ05vdG8gU2FucycsIHNhbnMtc2VyaWYsXG4gICAgICAgICAgICAnQXBwbGUgQ29sb3IgRW1vamknLCAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJyxcbiAgICAgICAgICAgICdOb3RvIENvbG9yIEVtb2ppJztcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgIGNvbG9yOiAjMjEyNTI5O1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgIFt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBociB7XG4gICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaDEsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICBhYmJyW3RpdGxlXSxcbiAgICAgICAgYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIGN1cnNvcjogaGVscDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFkZHJlc3Mge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgb2wsXG4gICAgICAgIHVsLFxuICAgICAgICBkbCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgb2wgb2wsXG4gICAgICAgIHVsIHVsLFxuICAgICAgICBvbCB1bCxcbiAgICAgICAgdWwgb2wge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBkdCB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYixcbiAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgc21hbGwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogODAlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ViLFxuICAgICAgICBzdXAge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBzdWIge1xuICAgICAgICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cCB7XG4gICAgICAgICAgdG9wOiAtMC41ZW07XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogIzAwN2JmZjtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogIzAwNTZiMztcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGE6bm90KFtocmVmXSkge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGE6bm90KFtocmVmXSk6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZSxcbiAgICAgICAgY29kZSxcbiAgICAgICAga2JkLFxuICAgICAgICBzYW1wIHtcbiAgICAgICAgICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLFxuICAgICAgICAgICAgJ0xpYmVyYXRpb24gTW9ubycsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgZmlndXJlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGFibGUge1xuICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjYXB0aW9uIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgICBjb2xvcjogIzZjNzU3ZDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIGNhcHRpb24tc2lkZTogYm90dG9tO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZDtcbiAgICAgICAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCxcbiAgICAgICAgYnV0dG9uLFxuICAgICAgICBzZWxlY3QsXG4gICAgICAgIG9wdGdyb3VwLFxuICAgICAgICB0ZXh0YXJlYSB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbixcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uLFxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbixcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddLFxuICAgICAgICBbdHlwZT0ncmVzZXQnXSxcbiAgICAgICAgW3R5cGU9J3N1Ym1pdCddIHtcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbjpub3QoOmRpc2FibGVkKSxcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddOm5vdCg6ZGlzYWJsZWQpLFxuICAgICAgICBbdHlwZT0ncmVzZXQnXTpub3QoOmRpc2FibGVkKSxcbiAgICAgICAgW3R5cGU9J3N1Ym1pdCddOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgICAgIFt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAgICAgW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgICAgIFt0eXBlPSdzdWJtaXQnXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPSdyYWRpbyddLFxuICAgICAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPSdkYXRlJ10sXG4gICAgICAgIGlucHV0W3R5cGU9J3RpbWUnXSxcbiAgICAgICAgaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcbiAgICAgICAgaW5wdXRbdHlwZT0nbW9udGgnXSB7XG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xuICAgICAgICB9XG5cbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZHNldCB7XG4gICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxlZ2VuZCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJvZ3Jlc3Mge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBbdHlwZT0nc2VhcmNoJ10ge1xuICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIG91dHB1dCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VtbWFyeSB7XG4gICAgICAgICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRlbXBsYXRlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgW2hpZGRlbl0ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYCl9ZnVuY3Rpb24gcHVzaEVycm9yRmlsdGVyRHVwbGljYXRlcyhlLHQpe3JldHVyblsuLi5lLmZpbHRlcigoZT0+ZS5ldmVudC5yZWFzb24hPT10LmV2ZW50LnJlYXNvbikpLHRdfWZ1bmN0aW9uIHJlZHVjZXIoZSx0KXtzd2l0Y2godC50eXBlKXtjYXNlIHI6e3JldHVybnsuLi5lLGJ1aWxkRXJyb3I6bnVsbH19Y2FzZSBuOntyZXR1cm57Li4uZSxidWlsZEVycm9yOnQubWVzc2FnZX19Y2FzZSBvOntyZXR1cm57Li4uZSxyZWZyZXNoU3RhdGU6e3R5cGU6XCJwZW5kaW5nXCIsZXJyb3JzOltdfX19Y2FzZSBhOntyZXR1cm57Li4uZSxidWlsZEVycm9yOm51bGwsZXJyb3JzOmUucmVmcmVzaFN0YXRlLnR5cGU9PT1cInBlbmRpbmdcIj9lLnJlZnJlc2hTdGF0ZS5lcnJvcnM6W10scmVmcmVzaFN0YXRlOnt0eXBlOlwiaWRsZVwifX19Y2FzZSBpOmNhc2UgbDp7c3dpdGNoKGUucmVmcmVzaFN0YXRlLnR5cGUpe2Nhc2VcImlkbGVcIjp7cmV0dXJuey4uLmUsbmV4dElkOmUubmV4dElkKzEsZXJyb3JzOnB1c2hFcnJvckZpbHRlckR1cGxpY2F0ZXMoZS5lcnJvcnMse2lkOmUubmV4dElkLGV2ZW50OnR9KX19Y2FzZVwicGVuZGluZ1wiOntyZXR1cm57Li4uZSxuZXh0SWQ6ZS5uZXh0SWQrMSxyZWZyZXNoU3RhdGU6ey4uLmUucmVmcmVzaFN0YXRlLGVycm9yczpwdXNoRXJyb3JGaWx0ZXJEdXBsaWNhdGVzKGUucmVmcmVzaFN0YXRlLmVycm9ycyx7aWQ6ZS5uZXh0SWQsZXZlbnQ6dH0pfX19ZGVmYXVsdDpjb25zdCByPWUucmVmcmVzaFN0YXRlO3JldHVybiBlfX1kZWZhdWx0Ontjb25zdCByPXQ7cmV0dXJuIGV9fX1jb25zdCBzaG91bGRQcmV2ZW50RGlzcGxheT0oZSx0KT0+e2lmKCF0fHwhZSl7cmV0dXJuIGZhbHNlfXJldHVybiB0LmluY2x1ZGVzKGUpfTtjb25zdCAkdD1mdW5jdGlvbiBSZWFjdERldk92ZXJsYXkoe2NoaWxkcmVuOmUscHJldmVudERpc3BsYXk6dCxnbG9iYWxPdmVybGF5OnJ9KXtjb25zdFtuLGFdPW0udXNlUmVkdWNlcihyZWR1Y2VyLHtuZXh0SWQ6MSxidWlsZEVycm9yOm51bGwsZXJyb3JzOltdLHJlZnJlc2hTdGF0ZTp7dHlwZTpcImlkbGVcIn19KTttLnVzZUVmZmVjdCgoKCk9PntvbihhKTtyZXR1cm4gZnVuY3Rpb24oKXtvZmYoYSl9fSksW2FdKTtjb25zdCBvPW0udXNlQ2FsbGJhY2soKChlLHQpPT57fSksW10pO2NvbnN0IGk9bi5idWlsZEVycm9yIT1udWxsO2NvbnN0IGw9Qm9vbGVhbihuLmVycm9ycy5sZW5ndGgpO2NvbnN0IHM9aT9cImJ1aWxkXCI6bD9cInJ1bnRpbWVcIjpudWxsO2NvbnN0IHU9cyE9PW51bGw7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChtLkZyYWdtZW50LG51bGwsbS5jcmVhdGVFbGVtZW50KEVycm9yQm91bmRhcnkse2dsb2JhbE92ZXJsYXk6cixpc01vdW50ZWQ6dSxvbkVycm9yOm99LGU/P251bGwpLHU/bS5jcmVhdGVFbGVtZW50KGcse2dsb2JhbE92ZXJsYXk6cn0sbS5jcmVhdGVFbGVtZW50KENzc1Jlc2V0LG51bGwpLG0uY3JlYXRlRWxlbWVudChCYXNlLG51bGwpLG0uY3JlYXRlRWxlbWVudChDb21wb25lbnRTdHlsZXMsbnVsbCksc2hvdWxkUHJldmVudERpc3BsYXkocyx0KT9udWxsOmk/bS5jcmVhdGVFbGVtZW50KGp0LHttZXNzYWdlOm4uYnVpbGRFcnJvcn0pOmw/bS5jcmVhdGVFbGVtZW50KEh0LHtlcnJvcnM6bi5lcnJvcnN9KTp1bmRlZmluZWQpOnVuZGVmaW5lZCl9O3ZhciBLdD0kdDtsZXQgWnQ9ZmFsc2U7bGV0IFV0PXVuZGVmaW5lZDtmdW5jdGlvbiBvblVuaGFuZGxlZEVycm9yKGUpe2NvbnN0IHQ9ZT8uZXJyb3I7aWYoIXR8fCEodCBpbnN0YW5jZW9mIEVycm9yKXx8dHlwZW9mIHQuc3RhY2shPT1cInN0cmluZ1wiKXtyZXR1cm59aWYodC5tZXNzYWdlLm1hdGNoKC8oaHlkcmF0aW9ufGNvbnRlbnQgZG9lcyBub3QgbWF0Y2h8ZGlkIG5vdCBtYXRjaCkvaSkpe3QubWVzc2FnZSs9YFxcblxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcmVhY3QtaHlkcmF0aW9uLWVycm9yYH1jb25zdCByPXQ7ZW1pdCh7dHlwZTppLHJlYXNvbjp0LGZyYW1lczpwYXJzZVN0YWNrKHIuc3RhY2spfSl9ZnVuY3Rpb24gb25VbmhhbmRsZWRSZWplY3Rpb24oZSl7Y29uc3QgdD1lPy5yZWFzb247aWYoIXR8fCEodCBpbnN0YW5jZW9mIEVycm9yKXx8dHlwZW9mIHQuc3RhY2shPT1cInN0cmluZ1wiKXtyZXR1cm59Y29uc3Qgcj10O2VtaXQoe3R5cGU6bCxyZWFzb246dCxmcmFtZXM6cGFyc2VTdGFjayhyLnN0YWNrKX0pfWZ1bmN0aW9uIHJlZ2lzdGVyKCl7aWYoWnQpe3JldHVybn1adD10cnVlO3RyeXtjb25zdCBlPUVycm9yLnN0YWNrVHJhY2VMaW1pdDtFcnJvci5zdGFja1RyYWNlTGltaXQ9NTA7VXQ9ZX1jYXRjaHt9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLG9uVW5oYW5kbGVkRXJyb3IpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidW5oYW5kbGVkcmVqZWN0aW9uXCIsb25VbmhhbmRsZWRSZWplY3Rpb24pfWZ1bmN0aW9uIHVucmVnaXN0ZXIoKXtpZighWnQpe3JldHVybn1adD1mYWxzZTtpZihVdCE9PXVuZGVmaW5lZCl7dHJ5e0Vycm9yLnN0YWNrVHJhY2VMaW1pdD1VdH1jYXRjaHt9VXQ9dW5kZWZpbmVkfXdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZXJyb3JcIixvblVuaGFuZGxlZEVycm9yKTt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInVuaGFuZGxlZHJlamVjdGlvblwiLG9uVW5oYW5kbGVkUmVqZWN0aW9uKX1mdW5jdGlvbiBvbkJ1aWxkT2soKXtlbWl0KHt0eXBlOnJ9KX1mdW5jdGlvbiBvbkJ1aWxkRXJyb3IoZSl7ZW1pdCh7dHlwZTpuLG1lc3NhZ2U6ZX0pfWZ1bmN0aW9uIG9uUmVmcmVzaCgpe2VtaXQoe3R5cGU6YX0pfWZ1bmN0aW9uIG9uQmVmb3JlUmVmcmVzaCgpe2VtaXQoe3R5cGU6b30pfW1vZHVsZS5leHBvcnRzPXR9KSgpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/add-base-path.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/client/add-base-path.js ***! \********************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addBasePath = addBasePath;\nvar _addPathPrefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || \"\";\nfunction addBasePath(path, required) {\n if (false) {}\n return (0, _normalizeTrailingSlash).normalizePathTrailingSlash((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\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELG1CQUFtQixHQUFHRTtBQUN0QixJQUFJQyxpQkFBaUJDLG1CQUFPQSxDQUFDLHVIQUE0QztBQUN6RSxJQUFJQywwQkFBMEJELG1CQUFPQSxDQUFDLCtGQUE0QjtBQUNsRSxNQUFNRSxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELFNBQVNMLFlBQVlRLElBQUksRUFBRUMsUUFBUSxFQUFFO0lBQ2pDLElBQUlKLEtBQTBDLEVBQUUsRUFJL0M7SUFDRCxPQUFPLENBQUMsR0FBR0YsdUJBQXVCLEVBQUVRLDBCQUEwQixDQUFDLENBQUMsR0FBR1YsY0FBYyxFQUFFVyxhQUFhLENBQUNKLE1BQU1KO0FBQzNHO0FBRUEsSUFBSSxDQUFDLE9BQU9OLFFBQVFlLE9BQU8sS0FBSyxjQUFlLE9BQU9mLFFBQVFlLE9BQU8sS0FBSyxZQUFZZixRQUFRZSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9mLFFBQVFlLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktsQixPQUFPQyxjQUFjLENBQUNDLFFBQVFlLE9BQU8sRUFBRSxjQUFjO1FBQUVkLE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPbUIsTUFBTSxDQUFDakIsUUFBUWUsT0FBTyxFQUFFZjtJQUMvQmtCLE9BQU9sQixPQUFPLEdBQUdBLFFBQVFlLE9BQU87QUFDbEMsQ0FBQyxDQUVELHlDQUF5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzPzYxMzEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmFkZEJhc2VQYXRoID0gYWRkQmFzZVBhdGg7XG52YXIgX2FkZFBhdGhQcmVmaXggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCIpO1xudmFyIF9ub3JtYWxpemVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoXCIpO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aCwgcmVxdWlyZWQpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIKSB7XG4gICAgICAgIGlmICghcmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKCgwLCBfYWRkUGF0aFByZWZpeCkuYWRkUGF0aFByZWZpeChwYXRoLCBiYXNlUGF0aCkpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGQtYmFzZS1wYXRoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImFkZEJhc2VQYXRoIiwiX2FkZFBhdGhQcmVmaXgiLCJyZXF1aXJlIiwiX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2giLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsInJlcXVpcmVkIiwiX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJhZGRQYXRoUHJlZml4IiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/add-base-path.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/add-locale.js": /*!*****************************************************!*\ !*** ./node_modules/next/dist/client/add-locale.js ***! \*****************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addLocale = void 0;\nvar _normalizeTrailingSlash = __webpack_require__(/*! ./normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = function(path) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (false) {}\n return path;\n};\nexports.addLocale = addLocale;\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-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtbG9jYWxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGlCQUFpQixHQUFHLEtBQUs7QUFDekIsSUFBSUcsMEJBQTBCQyxtQkFBT0EsQ0FBQywrRkFBNEI7QUFDbEUsTUFBTUYsWUFBWSxTQUFDRyxNQUFnQjtxQ0FBUEM7UUFBQUE7O0lBQ3hCLElBQUlDLEtBQStCLEVBQUUsRUFFcEM7SUFDRCxPQUFPRjtBQUNYO0FBQ0FMLGlCQUFpQixHQUFHRTtBQUVwQixJQUFJLENBQUMsT0FBT0YsUUFBUVcsT0FBTyxLQUFLLGNBQWUsT0FBT1gsUUFBUVcsT0FBTyxLQUFLLFlBQVlYLFFBQVFXLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT1gsUUFBUVcsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS2QsT0FBT0MsY0FBYyxDQUFDQyxRQUFRVyxPQUFPLEVBQUUsY0FBYztRQUFFVixPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT2UsTUFBTSxDQUFDYixRQUFRVyxPQUFPLEVBQUVYO0lBQy9CYyxPQUFPZCxPQUFPLEdBQUdBLFFBQVFXLE9BQU87QUFDbEMsQ0FBQyxDQUVELHNDQUFzQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtbG9jYWxlLmpzP2UyZDkiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmFkZExvY2FsZSA9IHZvaWQgMDtcbnZhciBfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaFwiKTtcbmNvbnN0IGFkZExvY2FsZSA9IChwYXRoLCAuLi5hcmdzKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZVRyYWlsaW5nU2xhc2gpLm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUnKS5hZGRMb2NhbGUocGF0aCwgLi4uYXJncykpO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aDtcbn07XG5leHBvcnRzLmFkZExvY2FsZSA9IGFkZExvY2FsZTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWxvY2FsZS5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJhZGRMb2NhbGUiLCJfbm9ybWFsaXplVHJhaWxpbmdTbGFzaCIsInJlcXVpcmUiLCJwYXRoIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/add-locale.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/detect-domain-locale.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/client/detect-domain-locale.js ***! \***************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.detectDomainLocale = void 0;\nconst detectDomainLocale = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (false) {}\n};\nexports.detectDomainLocale = detectDomainLocale;\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=detect-domain-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCwwQkFBMEIsR0FBRyxLQUFLO0FBQ2xDLE1BQU1FLHFCQUFxQixXQUFXO3FDQUFQQztRQUFBQTs7SUFDM0IsSUFBSUMsS0FBK0IsRUFBRSxFQUVwQztBQUNMO0FBQ0FKLDBCQUEwQixHQUFHRTtBQUU3QixJQUFJLENBQUMsT0FBT0YsUUFBUVEsT0FBTyxLQUFLLGNBQWUsT0FBT1IsUUFBUVEsT0FBTyxLQUFLLFlBQVlSLFFBQVFRLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT1IsUUFBUVEsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS1gsT0FBT0MsY0FBYyxDQUFDQyxRQUFRUSxPQUFPLEVBQUUsY0FBYztRQUFFUCxPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT1ksTUFBTSxDQUFDVixRQUFRUSxPQUFPLEVBQUVSO0lBQy9CVyxPQUFPWCxPQUFPLEdBQUdBLFFBQVFRLE9BQU87QUFDbEMsQ0FBQyxDQUVELGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcz8wM2I1Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZXRlY3REb21haW5Mb2NhbGUgPSB2b2lkIDA7XG5jb25zdCBkZXRlY3REb21haW5Mb2NhbGUgPSAoLi4uYXJncyk9PntcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJykuZGV0ZWN0RG9tYWluTG9jYWxlKC4uLmFyZ3MpO1xuICAgIH1cbn07XG5leHBvcnRzLmRldGVjdERvbWFpbkxvY2FsZSA9IGRldGVjdERvbWFpbkxvY2FsZTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV0ZWN0LWRvbWFpbi1sb2NhbGUuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwicmVxdWlyZSIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/detect-domain-locale.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/dev/dev-build-watcher.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/client/dev/dev-build-watcher.js ***! \****************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = initializeBuildWatcher;\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\nfunction initializeBuildWatcher(toggleCallback) {\n let position = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"bottom-right\";\n const shadowHost = document.createElement(\"div\");\n const [verticalProperty, horizontalProperty] = position.split(\"-\");\n shadowHost.id = \"__next-build-watcher\";\n // Make sure container is fixed and on a high zIndex so it shows\n shadowHost.style.position = \"fixed\";\n // Ensure container's position to be top or bottom (default)\n shadowHost.style[verticalProperty] = \"10px\";\n // Ensure container's position to be left or right (default)\n shadowHost.style[horizontalProperty] = \"20px\";\n shadowHost.style.width = 0;\n shadowHost.style.height = 0;\n shadowHost.style.zIndex = 99999;\n document.body.appendChild(shadowHost);\n let shadowRoot;\n let prefix = \"\";\n if (shadowHost.attachShadow) {\n shadowRoot = shadowHost.attachShadow({\n mode: \"open\"\n });\n } else {\n // If attachShadow is undefined then the browser does not support\n // the Shadow DOM, we need to prefix all the names so there\n // will be no conflicts\n shadowRoot = shadowHost;\n prefix = \"__next-build-watcher-\";\n }\n // Container\n const container = createContainer(prefix);\n shadowRoot.appendChild(container);\n // CSS\n const css = createCss(prefix, {\n horizontalProperty,\n verticalProperty\n });\n shadowRoot.appendChild(css);\n // State\n let isVisible = false;\n let isBuilding = false;\n let timeoutId = null;\n // Handle events\n (0, _websocket).addMessageListener((event)=>{\n // This is the heartbeat event\n if (event.data === \"\\uD83D\\uDC93\") {\n return;\n }\n try {\n handleMessage(event);\n } catch (e) {}\n });\n function handleMessage(event) {\n const obj = typeof event === \"string\" ? {\n action: event\n } : JSON.parse(event.data);\n // eslint-disable-next-line default-case\n switch(obj.action){\n case \"building\":\n timeoutId && clearTimeout(timeoutId);\n isVisible = true;\n isBuilding = true;\n updateContainer();\n break;\n case \"built\":\n case \"sync\":\n isBuilding = false;\n // Wait for the fade out transition to complete\n timeoutId = setTimeout(()=>{\n isVisible = false;\n updateContainer();\n }, 100);\n updateContainer();\n break;\n }\n }\n toggleCallback(handleMessage);\n function updateContainer() {\n if (isBuilding) {\n container.classList.add(\"\".concat(prefix, \"building\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"building\"));\n }\n if (isVisible) {\n container.classList.add(\"\".concat(prefix, \"visible\"));\n } else {\n container.classList.remove(\"\".concat(prefix, \"visible\"));\n }\n }\n}\nfunction createContainer(prefix) {\n const container = document.createElement(\"div\");\n container.id = \"\".concat(prefix, \"container\");\n container.innerHTML = '\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n ');\n return container;\n}\nfunction createCss(prefix, param) {\n let { horizontalProperty , verticalProperty } = param;\n const css = document.createElement(\"style\");\n css.textContent = \"\\n #\".concat(prefix, \"container {\\n position: absolute;\\n \").concat(verticalProperty, \": 10px;\\n \").concat(horizontalProperty, \": 30px;\\n\\n border-radius: 3px;\\n background: #000;\\n color: #fff;\\n font: initial;\\n cursor: initial;\\n letter-spacing: initial;\\n text-shadow: initial;\\n text-transform: initial;\\n visibility: initial;\\n\\n padding: 7px 10px 8px 10px;\\n align-items: center;\\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n\\n display: none;\\n opacity: 0;\\n transition: opacity 0.1s ease, \").concat(verticalProperty, \" 0.1s ease;\\n animation: \").concat(prefix, \"fade-in 0.1s ease-in-out;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"visible {\\n display: flex;\\n }\\n\\n #\").concat(prefix, \"container.\").concat(prefix, \"building {\\n \").concat(verticalProperty, \": 20px;\\n opacity: 1;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper {\\n width: 16px;\\n height: 16px;\\n }\\n\\n #\").concat(prefix, \"icon-wrapper > svg {\\n width: 100%;\\n height: 100%;\\n }\\n\\n #\").concat(prefix, \"icon-group {\\n animation: \").concat(prefix, \"strokedash 1s ease-in-out both infinite;\\n }\\n\\n @keyframes \").concat(prefix, \"fade-in {\\n from {\\n \").concat(verticalProperty, \": 10px;\\n opacity: 0;\\n }\\n to {\\n \").concat(verticalProperty, \": 20px;\\n opacity: 1;\\n }\\n }\\n\\n @keyframes \").concat(prefix, \"strokedash {\\n 0% {\\n stroke-dasharray: 0 226;\\n }\\n 80%,\\n 100% {\\n stroke-dasharray: 659 226;\\n }\\n }\\n \");\n return css;\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=dev-build-watcher.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsa0JBQWUsR0FBR0c7QUFDbEIsSUFBSUMsYUFBYUMsbUJBQU9BLENBQUMsaUdBQTJCO0FBQ3BELFNBQVNGLHVCQUF1QkcsY0FBYyxFQUE2QjtRQUEzQkMsV0FBQUEsaUVBQVcsY0FBYztJQUNyRSxNQUFNQyxhQUFhQyxTQUFTQyxhQUFhLENBQUM7SUFDMUMsTUFBTSxDQUFDQyxrQkFBa0JDLG1CQUFtQixHQUFHTCxTQUFTTSxLQUFLLENBQUM7SUFDOURMLFdBQVdNLEVBQUUsR0FBRztJQUNoQixnRUFBZ0U7SUFDaEVOLFdBQVdPLEtBQUssQ0FBQ1IsUUFBUSxHQUFHO0lBQzVCLDREQUE0RDtJQUM1REMsV0FBV08sS0FBSyxDQUFDSixpQkFBaUIsR0FBRztJQUNyQyw0REFBNEQ7SUFDNURILFdBQVdPLEtBQUssQ0FBQ0gsbUJBQW1CLEdBQUc7SUFDdkNKLFdBQVdPLEtBQUssQ0FBQ0MsS0FBSyxHQUFHO0lBQ3pCUixXQUFXTyxLQUFLLENBQUNFLE1BQU0sR0FBRztJQUMxQlQsV0FBV08sS0FBSyxDQUFDRyxNQUFNLEdBQUc7SUFDMUJULFNBQVNVLElBQUksQ0FBQ0MsV0FBVyxDQUFDWjtJQUMxQixJQUFJYTtJQUNKLElBQUlDLFNBQVM7SUFDYixJQUFJZCxXQUFXZSxZQUFZLEVBQUU7UUFDekJGLGFBQWFiLFdBQVdlLFlBQVksQ0FBQztZQUNqQ0MsTUFBTTtRQUNWO0lBQ0osT0FBTztRQUNILGlFQUFpRTtRQUNqRSwyREFBMkQ7UUFDM0QsdUJBQXVCO1FBQ3ZCSCxhQUFhYjtRQUNiYyxTQUFTO0lBQ2IsQ0FBQztJQUNELFlBQVk7SUFDWixNQUFNRyxZQUFZQyxnQkFBZ0JKO0lBQ2xDRCxXQUFXRCxXQUFXLENBQUNLO0lBQ3ZCLE1BQU07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UUUsT0FBTyxLQUFLLFlBQVlGLFFBQVFFLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT0YsUUFBUUUsT0FBTyxDQUFDK0MsVUFBVSxLQUFLLGFBQWE7SUFDcktuRCxPQUFPQyxjQUFjLENBQUNDLFFBQVFFLE9BQU8sRUFBRSxjQUFjO1FBQUVELE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPb0QsTUFBTSxDQUFDbEQsUUFBUUUsT0FBTyxFQUFFRjtJQUMvQm1ELE9BQU9uRCxPQUFPLEdBQUdBLFFBQVFFLE9BQU87QUFDbEMsQ0FBQyxDQUVELDZDQUE2QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanM/N2IzNCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGluaXRpYWxpemVCdWlsZFdhdGNoZXI7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xuZnVuY3Rpb24gaW5pdGlhbGl6ZUJ1aWxkV2F0Y2hlcih0b2dnbGVDYWxsYmFjaywgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0Jykge1xuICAgIGNvbnN0IHNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb25zdCBbdmVydGljYWxQcm9wZXJ0eSwgaG9yaXpvbnRhbFByb3BlcnR5XSA9IHBvc2l0aW9uLnNwbGl0KCctJyk7XG4gICAgc2hhZG93SG9zdC5pZCA9ICdfX25leHQtYnVpbGQtd2F0Y2hlcic7XG4gICAgLy8gTWFrZSBzdXJlIGNvbnRhaW5lciBpcyBmaXhlZCBhbmQgb24gYSBoaWdoIHpJbmRleCBzbyBpdCBzaG93c1xuICAgIHNoYWRvd0hvc3Quc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgIC8vIEVuc3VyZSBjb250YWluZXIncyBwb3NpdGlvbiB0byBiZSB0b3Agb3IgYm90dG9tIChkZWZhdWx0KVxuICAgIHNoYWRvd0hvc3Quc3R5bGVbdmVydGljYWxQcm9wZXJ0eV0gPSAnMTBweCc7XG4gICAgLy8gRW5zdXJlIGNvbnRhaW5lcidzIHBvc2l0aW9uIHRvIGJlIGxlZnQgb3IgcmlnaHQgKGRlZmF1bHQpXG4gICAgc2hhZG93SG9zdC5zdHlsZVtob3Jpem9udGFsUHJvcGVydHldID0gJzIwcHgnO1xuICAgIHNoYWRvd0hvc3Quc3R5bGUud2lkdGggPSAwO1xuICAgIHNoYWRvd0hvc3Quc3R5bGUuaGVpZ2h0ID0gMDtcbiAgICBzaGFkb3dIb3N0LnN0eWxlLnpJbmRleCA9IDk5OTk5O1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hhZG93SG9zdCk7XG4gICAgbGV0IHNoYWRvd1Jvb3Q7XG4gICAgbGV0IHByZWZpeCA9ICcnO1xuICAgIGlmIChzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdykge1xuICAgICAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdC5hdHRhY2hTaGFkb3coe1xuICAgICAgICAgICAgbW9kZTogJ29wZW4nXG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIGF0dGFjaFNoYWRvdyBpcyB1bmRlZmluZWQgdGhlbiB0aGUgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0XG4gICAgICAgIC8vIHRoZSBTaGFkb3cgRE9NLCB3ZSBuZWVkIHRvIHByZWZpeCBhbGwgdGhlIG5hbWVzIHNvIHRoZXJlXG4gICAgICAgIC8vIHdpbGwgYmUgbm8gY29uZmxpY3RzXG4gICAgICAgIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0O1xuICAgICAgICBwcmVmaXggPSAnX19uZXh0LWJ1aWxkLXdhdGNoZXItJztcbiAgICB9XG4gICAgLy8gQ29udGFpbmVyXG4gICAgY29uc3QgY29udGFpbmVyID0gY3JlYXRlQ29udGFpbmVyKHByZWZpeCk7XG4gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgIC8vIENTU1xuICAgIGNvbnN0IGNzcyA9IGNyZWF0ZUNzcyhwcmVmaXgsIHtcbiAgICAgICAgaG9yaXpvbnRhbFByb3BlcnR5LFxuICAgICAgICB2ZXJ0aWNhbFByb3BlcnR5XG4gICAgfSk7XG4gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChjc3MpO1xuICAgIC8vIFN0YXRlXG4gICAgbGV0IGlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIGxldCBpc0J1aWxkaW5nID0gZmFsc2U7XG4gICAgbGV0IHRpbWVvdXRJZCA9IG51bGw7XG4gICAgLy8gSGFuZGxlIGV2ZW50c1xuICAgICgwLCBfd2Vic29ja2V0KS5hZGRNZXNzYWdlTGlzdGVuZXIoKGV2ZW50KT0+e1xuICAgICAgICAvLyBUaGlzIGlzIHRoZSBoZWFydGJlYXQgZXZlbnRcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICdcXHVEODNEXFx1REM5MycpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaGFuZGxlTWVzc2FnZShldmVudCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkge1xuICAgICAgICBjb25zdCBvYmogPSB0eXBlb2YgZXZlbnQgPT09ICdzdHJpbmcnID8ge1xuICAgICAgICAgICAgYWN0aW9uOiBldmVudFxuICAgICAgICB9IDogSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgICAgICBzd2l0Y2gob2JqLmFjdGlvbil7XG4gICAgICAgICAgICBjYXNlICdidWlsZGluZyc6XG4gICAgICAgICAgICAgICAgdGltZW91dElkICYmIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICAgICAgICAgIGlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaXNCdWlsZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdidWlsdCc6XG4gICAgICAgICAgICBjYXNlICdzeW5jJzpcbiAgICAgICAgICAgICAgICBpc0J1aWxkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIGZhZGUgb3V0IHRyYW5zaXRpb24gdG8gY29tcGxldGVcbiAgICAgICAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlzVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRvZ2dsZUNhbGxiYWNrKGhhbmRsZU1lc3NhZ2UpO1xuICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbnRhaW5lcigpIHtcbiAgICAgICAgaWYgKGlzQnVpbGRpbmcpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGAke3ByZWZpeH1idWlsZGluZ2ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoYCR7cHJlZml4fWJ1aWxkaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYCR7cHJlZml4fXZpc2libGVgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKGAke3ByZWZpeH12aXNpYmxlYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVDb250YWluZXIocHJlZml4KSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgY29udGFpbmVyLmlkID0gYCR7cHJlZml4fWNvbnRhaW5lcmA7XG4gICAgY29udGFpbmVyLmlubmVySFRNTCA9IGBcbiAgICA8ZGl2IGlkPVwiJHtwcmVmaXh9aWNvbi13cmFwcGVyXCI+XG4gICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjI2IDIwMFwiPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICA8bGluZWFyR3JhZGllbnRcbiAgICAgICAgICAgIHgxPVwiMTE0LjcyMDc3NSVcIlxuICAgICAgICAgICAgeTE9XCIxODEuMjgzMjQ1JVwiXG4gICAgICAgICAgICB4Mj1cIjM5LjUzOTkzMDYlXCJcbiAgICAgICAgICAgIHkyPVwiMTAwJVwiXG4gICAgICAgICAgICBpZD1cIiR7cHJlZml4fWxpbmVhci1ncmFkaWVudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiMwMDAwMDBcIiBvZmZzZXQ9XCIwJVwiIC8+XG4gICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPVwiI0ZGRkZGRlwiIG9mZnNldD1cIjEwMCVcIiAvPlxuICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPGcgaWQ9XCIke3ByZWZpeH1pY29uLWdyb3VwXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJ1cmwoIyR7cHJlZml4fWxpbmVhci1ncmFkaWVudClcIiBzdHJva2Utd2lkdGg9XCIxOFwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTEzLDUuMDgyMTkxMTcgTDQuMjgzOTM4MDEsMTk3LjUgTDIyMS43MTYwNjIsMTk3LjUgTDExMyw1LjA4MjE5MTE3IFpcIiAvPlxuICAgICAgICA8L2c+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgYDtcbiAgICByZXR1cm4gY29udGFpbmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlQ3NzKHByZWZpeCwgeyBob3Jpem9udGFsUHJvcGVydHkgLCB2ZXJ0aWNhbFByb3BlcnR5ICB9KSB7XG4gICAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBjc3MudGV4dENvbnRlbnQgPSBgXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAke3ZlcnRpY2FsUHJvcGVydHl9OiAxMHB4O1xuICAgICAgJHtob3Jpem9udGFsUHJvcGVydHl9OiAzMHB4O1xuXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250OiBpbml0aWFsO1xuICAgICAgY3Vyc29yOiBpbml0aWFsO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7XG4gICAgICB0ZXh0LXNoYWRvdzogaW5pdGlhbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgdmlzaWJpbGl0eTogaW5pdGlhbDtcblxuICAgICAgcGFkZGluZzogN3B4IDEwcHggOHB4IDEwcHg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYm94LXNoYWRvdzogMCAxMXB4IDQwcHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpLCAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcblxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZSwgJHt2ZXJ0aWNhbFByb3BlcnR5fSAwLjFzIGVhc2U7XG4gICAgICBhbmltYXRpb246ICR7cHJlZml4fWZhZGUtaW4gMC4xcyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyLiR7cHJlZml4fXZpc2libGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyLiR7cHJlZml4fWJ1aWxkaW5nIHtcbiAgICAgICR7dmVydGljYWxQcm9wZXJ0eX06IDIwcHg7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICMke3ByZWZpeH1pY29uLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWljb24td3JhcHBlciA+IHN2ZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9aWNvbi1ncm91cCB7XG4gICAgICBhbmltYXRpb246ICR7cHJlZml4fXN0cm9rZWRhc2ggMXMgZWFzZS1pbi1vdXQgYm90aCBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzICR7cHJlZml4fWZhZGUtaW4ge1xuICAgICAgZnJvbSB7XG4gICAgICAgICR7dmVydGljYWxQcm9wZXJ0eX06IDEwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgICB0byB7XG4gICAgICAgICR7dmVydGljYWxQcm9wZXJ0eX06IDIwcHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyAke3ByZWZpeH1zdHJva2VkYXNoIHtcbiAgICAgIDAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMCAyMjY7XG4gICAgICB9XG4gICAgICA4MCUsXG4gICAgICAxMDAlIHtcbiAgICAgICAgc3Ryb2tlLWRhc2hhcnJheTogNjU5IDIyNjtcbiAgICAgIH1cbiAgICB9XG4gIGA7XG4gICAgcmV0dXJuIGNzcztcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV2LWJ1aWxkLXdhdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsImluaXRpYWxpemVCdWlsZFdhdGNoZXIiLCJfd2Vic29ja2V0IiwicmVxdWlyZSIsInRvZ2dsZUNhbGxiYWNrIiwicG9zaXRpb24iLCJzaGFkb3dIb3N0IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwidmVydGljYWxQcm9wZXJ0eSIsImhvcml6b250YWxQcm9wZXJ0eSIsInNwbGl0IiwiaWQiLCJzdHlsZSIsIndpZHRoIiwiaGVpZ2h0IiwiekluZGV4IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2hhZG93Um9vdCIsInByZWZpeCIsImF0dGFjaFNoYWRvdyIsIm1vZGUiLCJjb250YWluZXIiLCJjcmVhdGVDb250YWluZXIiLCJjc3MiLCJjcmVhdGVDc3MiLCJpc1Zpc2libGUiLCJpc0J1aWxkaW5nIiwidGltZW91dElkIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZXZlbnQiLCJkYXRhIiwiaGFuZGxlTWVzc2FnZSIsImUiLCJvYmoiLCJhY3Rpb24iLCJKU09OIiwicGFyc2UiLCJjbGVhclRpbWVvdXQiLCJ1cGRhdGVDb250YWluZXIiLCJzZXRUaW1lb3V0IiwiY2xhc3NMaXN0IiwiYWRkIiwicmVtb3ZlIiwiaW5uZXJIVE1MIiwidGV4dENvbnRlbnQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/dev-build-watcher.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js": /*!************************************************************************************!*\ !*** ./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js ***! \************************************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar _extends = (__webpack_require__(/*! @swc/helpers/lib/_extends.js */ \"./node_modules/@swc/helpers/lib/_extends.js\")[\"default\"]);\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _stripAnsi = _interop_require_default(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./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).indexOf(friendlySyntaxErrorLabel) !== -1;\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|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 && verbose ? (importTraceNote || \"\\n\\nImport trace for requested module:\") + filteredModuleTrace.map((trace)=>\"\\n\".concat(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 \"\".concat(friendlySyntaxErrorLabel, \" \").concat(errorMessage, \" (\").concat(errorLine, \":\").concat(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, \"\".concat(friendlySyntaxErrorLabel, \" $3 ($1:$2)\\n\"));\n // Clean up export errors\n message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$2'.\");\n message = message.replace(/^.*export 'default' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$2' does not contain a default export (imported as '$1').\");\n message = message.replace(/^.*export '(.+?)' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$3' (imported as '$2').\");\n lines = message.split(\"\\n\");\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === \"\") {\n lines.splice(1, 1);\n }\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].indexOf(\"Module not found: \") === 0) {\n lines = [\n lines[0],\n lines[1].replace(\"Error: \", \"\").replace(\"Module not found: Cannot find file:\", \"Cannot find file:\"),\n ...lines.slice(2)\n ];\n }\n // Add helpful message for users trying to use Sass for the first time\n if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {\n // ./file.module.scss (<>) => ./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(\\n|$)/gm, \"\") // at \n ;\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(function(message) {\n const isUnknownNextFontError = message.message.includes(\"An error occured in `@next/font`.\");\n return formatMessage(message, isUnknownNextFontError || verbose);\n });\n const formattedWarnings = json.warnings.map(function(message) {\n return formatMessage(message, verbose);\n });\n const result = _extends({}, 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}\nmodule.exports = formatWebpackMessages;\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\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9mb3JtYXQtd2VicGFjay1tZXNzYWdlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLElBQUlBLFdBQVdDLG1IQUErQztBQUM5RCxJQUFJRSwyQkFBMkJGLG1KQUErRDtBQUM5RixJQUFJRyxhQUFhRCx5QkFBeUJGLG1CQUFPQSxDQUFDLDRGQUErQjtBQUNqRixxS0FBcUs7QUFDckssMERBQTBEO0FBQzFELE1BQU1JLDJCQUEyQjtBQUNqQyxNQUFNQyxvQ0FBb0M7QUFDMUMsU0FBU0MscUJBQXFCQyxPQUFPLEVBQUU7SUFDbkMsT0FBTyxDQUFDLEdBQUdKLFVBQVUsRUFBRUYsT0FBTyxDQUFDTSxTQUFTQyxPQUFPLENBQUNKLDhCQUE4QixDQUFDO0FBQ25GO0FBQ0EsSUFBSUssc0JBQXNCLEtBQUs7QUFDL0Isb0NBQW9DO0FBQ3BDLFNBQVNDLGNBQWNILE9BQU8sRUFBRUksT0FBTyxFQUFFQyxlQUFlLEVBQUU7SUFDdEQsOENBQThDO0lBQzlDLElBQUksT0FBT0wsWUFBWSxZQUFZQSxRQUFRQSxPQUFPLEVBQUU7UUFDaEQsTUFBTU0sc0JBQXNCTixRQUFRTyxXQUFXLElBQUlQLFFBQVFPLFdBQVcsQ0FBQ0MsTUFBTSxDQUFDLENBQUNDLFFBQVEsQ0FBQywwREFBMERDLElBQUksQ0FBQ0QsTUFBTUUsVUFBVTtRQUN2SyxJQUFJQyxPQUFPWixRQUFRQSxPQUFPO1FBQzFCLE1BQU1hLHNCQUFzQkQsS0FBS1gsT0FBTyxDQUFDSDtRQUN6QyxJQUFJZSx1QkFBdUIsR0FBRztZQUMxQkQsT0FBT0EsS0FBS0UsS0FBSyxDQUFDLEdBQUdEO1FBQ3pCLENBQUM7UUFDRGIsVUFBVSxDQUFDQSxRQUFRZSxVQUFVLEdBQUcsQ0FBQyxHQUFHbkIsVUFBVSxFQUFFRixPQUFPLENBQUNNLFFBQVFlLFVBQVUsSUFBSSxPQUFPLEVBQUUsSUFBS2YsQ0FBQUEsUUFBUWdCLElBQUksR0FBRyxD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Q3RELGtEQUFrRDtRQUNsRDhDLE9BQU9MLE1BQU0sR0FBR0ssT0FBT0wsTUFBTSxDQUFDaEMsTUFBTSxDQUFDVDtRQUNyQzhDLE9BQU9ELFFBQVEsR0FBRyxFQUFFO0lBQ3hCLENBQUM7SUFDRCxPQUFPQztBQUNYO0FBQ0FFLE9BQU9DLE9BQU8sR0FBR1g7QUFFakIsSUFBSSxDQUFDLE9BQU9XLFFBQVF0RCxPQUFPLEtBQUssY0FBZSxPQUFPc0QsUUFBUXRELE9BQU8sS0FBSyxZQUFZc0QsUUFBUXRELE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT3NELFFBQVF0RCxPQUFPLENBQUN1RCxVQUFVLEtBQUssYUFBYTtJQUNyS0MsT0FBT0MsY0FBYyxDQUFDSCxRQUFRdEQsT0FBTyxFQUFFLGNBQWM7UUFBRTBELE9BQU8sSUFBSTtJQUFDO0lBQ25FRixPQUFPRyxNQUFNLENBQUNMLFFBQVF0RCxPQUFPLEVBQUVzRDtJQUMvQkQsT0FBT0MsT0FBTyxHQUFHQSxRQUFRdEQsT0FBTztBQUNsQyxDQUFDLENBRUQsbURBQW1EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9lcnJvci1vdmVybGF5L2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLmpzPzc1ZWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX2V4dGVuZHMgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9fZXh0ZW5kcy5qc1wiKS5kZWZhdWx0O1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9zdHJpcEFuc2kgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpXCIpKTtcbi8vIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9ibG9iLzdiMWEzMmJlNmVjOWY5OWE2YzlhM2M2NjgxM2YzYWMwOWM0NzM2YjkvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL2Zvcm1hdFdlYnBhY2tNZXNzYWdlcy5qc1xuLy8gSXQncyBiZWVuIGVkaXRlZCB0byByZW1vdmUgY2hhbGsgYW5kIENSQS1zcGVjaWZpYyBsb2dpY1xuY29uc3QgZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsID0gJ1N5bnRheCBlcnJvcjonO1xuY29uc3QgV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTID0gJ1xcblxcbkJSRUFLSU5HIENIQU5HRTogd2VicGFjayA8IDUgdXNlZCB0byBpbmNsdWRlIHBvbHlmaWxscyBmb3Igbm9kZS5qcyBjb3JlIG1vZHVsZXMgYnkgZGVmYXVsdC4nO1xuZnVuY3Rpb24gaXNMaWtlbHlBU3ludGF4RXJyb3IobWVzc2FnZSkge1xuICAgIHJldHVybiAoMCwgX3N0cmlwQW5zaSkuZGVmYXVsdChtZXNzYWdlKS5pbmRleE9mKGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCkgIT09IC0xO1xufVxubGV0IGhhZE1pc3NpbmdTYXNzRXJyb3IgPSBmYWxzZTtcbi8vIENsZWFucyB1cCB3ZWJwYWNrIGVycm9yIG1lc3NhZ2VzLlxuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlLCBpbXBvcnRUcmFjZU5vdGUpIHtcbiAgICAvLyBUT0RPOiBSZXBsYWNlIHRoaXMgb25jZSB3ZWJwYWNrIDUgaXMgc3RhYmxlXG4gICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JyAmJiBtZXNzYWdlLm1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRNb2R1bGVUcmFjZSA9IG1lc3NhZ2UubW9kdWxlVHJhY2UgJiYgbWVzc2FnZS5tb2R1bGVUcmFjZS5maWx0ZXIoKHRyYWNlKT0+IS9uZXh0LShtaWRkbGV3YXJlfGNsaWVudC1wYWdlc3xlZGdlLWZ1bmN0aW9uKS1sb2FkZXJcXC5qcy8udGVzdCh0cmFjZS5vcmlnaW5OYW1lKSk7XG4gICAgICAgIGxldCBib2R5ID0gbWVzc2FnZS5tZXNzYWdlO1xuICAgICAgICBjb25zdCBicmVha2luZ0NoYW5nZUluZGV4ID0gYm9keS5pbmRleE9mKFdFQlBBQ0tfQlJFQUtJTkdfQ0hBTkdFX1BPTFlGSUxMUyk7XG4gICAgICAgIGlmIChicmVha2luZ0NoYW5nZUluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGJvZHkgPSBib2R5LnNsaWNlKDAsIGJyZWFraW5nQ2hhbmdlSW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIG1lc3NhZ2UgPSAobWVzc2FnZS5tb2R1bGVOYW1lID8gKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQobWVzc2FnZS5tb2R1bGVOYW1lKSArICdcXG4nIDogJycpICsgKG1lc3NhZ2UuZmlsZSA/ICgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KG1lc3NhZ2UuZmlsZSkgKyAnXFxuJyA6ICcnKSArIGJvZHkgKyAobWVzc2FnZS5kZXRhaWxzICYmIHZlcmJvc2UgPyAnXFxuJyArIG1lc3NhZ2UuZGV0YWlscyA6ICcnKSArIChmaWx0ZXJlZE1vZHVsZVRyYWNlICYmIGZpbHRlcmVkTW9kdWxlVHJhY2UubGVuZ3RoICYmIHZlcmJvc2UgPyAoaW1wb3J0VHJhY2VOb3RlIHx8ICdcXG5cXG5JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6JykgKyBmaWx0ZXJlZE1vZHVsZVRyYWNlLm1hcCgodHJhY2UpPT5gXFxuJHt0cmFjZS5tb2R1bGVOYW1lfWApLmpvaW4oJycpIDogJycpICsgKG1lc3NhZ2Uuc3RhY2sgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5zdGFjayA6ICcnKTtcbiAgICB9XG4gICAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJyk7XG4gICAgLy8gU3RyaXAgV2VicGFjay1hZGRlZCBoZWFkZXJzIG9mZiBlcnJvcnMvd2FybmluZ3NcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICAgIGxpbmVzID0gbGluZXMuZmlsdGVyKChsaW5lKT0+IS9Nb2R1bGUgW0EteiBdK1xcKGZyb20vLnRlc3QobGluZSkpO1xuICAgIC8vIFRyYW5zZm9ybSBwYXJzaW5nIGVycm9yIGludG8gc3ludGF4IGVycm9yXG4gICAgLy8gVE9ETzogbW92ZSB0aGlzIHRvIG91ciBFU0xpbnQgZm9ybWF0dGVyP1xuICAgIGxpbmVzID0gbGluZXMubWFwKChsaW5lKT0+e1xuICAgICAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKGxpbmUpO1xuICAgICAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvcjtcbiAgICAgICAgcmV0dXJuIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJHtlcnJvck1lc3NhZ2V9ICgke2Vycm9yTGluZX06JHtlcnJvckNvbHVtbn0pYDtcbiAgICB9KTtcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgLy8gU21vb3NoIHN5bnRheCBlcnJvcnMgKGNvbW1vbmx5IGZvdW5kIGluIENTUylcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9TeW50YXhFcnJvclxccytcXCgoXFxkKyk6KFxcZCspXFwpXFxzKiguKz8pXFxuL2csIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJDMgKCQxOiQyKVxcbmApO1xuICAgIC8vIENsZWFuIHVwIGV4cG9ydCBlcnJvcnNcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eLipleHBvcnQgJyguKz8pJyB3YXMgbm90IGZvdW5kIGluICcoLis/KScuKiQvZ20sIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDEnIGlzIG5vdCBleHBvcnRlZCBmcm9tICckMicuYCk7XG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXi4qZXhwb3J0ICdkZWZhdWx0JyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMicgZG9lcyBub3QgY29udGFpbiBhIGRlZmF1bHQgZXhwb3J0IChpbXBvcnRlZCBhcyAnJDEnKS5gKTtcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eLipleHBvcnQgJyguKz8pJyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQzJyAoaW1wb3J0ZWQgYXMgJyQyJykuYCk7XG4gICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgICAvLyBSZW1vdmUgbGVhZGluZyBuZXdsaW5lXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA+IDIgJiYgbGluZXNbMV0udHJpbSgpID09PSAnJykge1xuICAgICAgICBsaW5lcy5zcGxpY2UoMSwgMSk7XG4gICAgfVxuICAgIC8vIENsZWFucyB1cCB2ZXJib3NlIFwibW9kdWxlIG5vdCBmb3VuZFwiIG1lc3NhZ2VzIGZvciBmaWxlcyBhbmQgcGFja2FnZXMuXG4gICAgaWYgKGxpbmVzWzFdICYmIGxpbmVzWzFdLmluZGV4T2YoJ01vZHVsZSBub3QgZm91bmQ6ICcpID09PSAwKSB7XG4gICAgICAgIGxpbmVzID0gW1xuICAgICAgICAgICAgbGluZXNbMF0sXG4gICAgICAgICAgICBsaW5lc1sxXS5yZXBsYWNlKCdFcnJvcjogJywgJycpLnJlcGxhY2UoJ01vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6JywgJ0Nhbm5vdCBmaW5kIGZpbGU6JyksXG4gICAgICAgICAgICAuLi5saW5lcy5zbGljZSgyKSwgXG4gICAgICAgIF07XG4gICAgfVxuICAgIC8vIEFkZCBoZWxwZnVsIG1lc3NhZ2UgZm9yIHVzZXJzIHRyeWluZyB0byB1c2UgU2FzcyBmb3IgdGhlIGZpcnN0IHRpbWVcbiAgICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0ubWF0Y2goL0Nhbm5vdCBmaW5kIG1vZHVsZS4rc2Fzcy8pKSB7XG4gICAgICAgIC8vIC4vZmlsZS5tb2R1bGUuc2NzcyAoPDxsb2FkZXIgaW5mbz4+KSA9PiAuL2ZpbGUubW9kdWxlLnNjc3NcbiAgICAgICAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0uc3BsaXQoJyEnKTtcbiAgICAgICAgbGluZXNbMF0gPSBmaXJzdExpbmVbZmlyc3RMaW5lLmxlbmd0aCAtIDFdO1xuICAgICAgICBsaW5lc1sxXSA9IFwiVG8gdXNlIE5leHQuanMnIGJ1aWx0LWluIFNhc3Mgc3VwcG9ydCwgeW91IGZpcnN0IG5lZWQgdG8gaW5zdGFsbCBgc2Fzc2AuXFxuXCI7XG4gICAgICAgIGxpbmVzWzFdICs9ICdSdW4gYG5wbSBpIHNhc3NgIG9yIGB5YXJuIGFkZCBzYXNzYCBpbnNpZGUgeW91ciB3b3Jrc3BhY2UuXFxuJztcbiAgICAgICAgbGluZXNbMV0gKz0gJ1xcbkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2luc3RhbGwtc2Fzcyc7XG4gICAgICAgIC8vIGRpc3Bvc2Ugb2YgdW5oZWxwZnVsIHN0YWNrIHRyYWNlXG4gICAgICAgIGxpbmVzID0gbGluZXMuc2xpY2UoMCwgMik7XG4gICAgICAgIGhhZE1pc3NpbmdTYXNzRXJyb3IgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoaGFkTWlzc2luZ1Nhc3NFcnJvciAmJiBtZXNzYWdlLm1hdGNoKC8oc2Fzcy1sb2FkZXJ8cmVzb2x2ZS11cmwtbG9hZGVyOiBDU1MgZXJyb3IpLykpIHtcbiAgICAgICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2UgZm9sbG93aW5nIG1pc3Npbmcgc2FzcyBtb2R1bGVcbiAgICAgICAgbGluZXMgPSBbXTtcbiAgICB9XG4gICAgaWYgKCF2ZXJib3NlKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKTtcbiAgICAgICAgLy8gSW50ZXJuYWwgc3RhY2tzIGFyZSBnZW5lcmFsbHkgdXNlbGVzcyBzbyB3ZSBzdHJpcCB0aGVtLi4uIHdpdGggdGhlXG4gICAgICAgIC8vIGV4Y2VwdGlvbiBvZiBzdGFja3MgY29udGFpbmluZyBgd2VicGFjazpgIGJlY2F1c2UgdGhleSdyZSBub3JtYWxseVxuICAgICAgICAvLyBmcm9tIHVzZXIgY29kZSBnZW5lcmF0ZWQgYnkgV2VicGFjay4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL3B1bGwvMTA1MFxuICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eXFxzKmF0XFxzKCg/IXdlYnBhY2s6KS4pKjpcXGQrOlxcZCtbXFxzKV0qKFxcbnwkKS9nbSwgJycpIC8vIGF0IC4uLiAuLi46eDp5XG4gICAgICAgIDtcbiAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXlxccyphdFxcczxhbm9ueW1vdXM+KFxcbnwkKS9nbSwgJycpIC8vIGF0IDxhbm9ueW1vdXM+XG4gICAgICAgIDtcbiAgICAgICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgICB9XG4gICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZWQgbmV3bGluZXNcbiAgICBsaW5lcyA9IGxpbmVzLmZpbHRlcigobGluZSwgaW5kZXgsIGFycik9PmluZGV4ID09PSAwIHx8IGxpbmUudHJpbSgpICE9PSAnJyB8fCBsaW5lLnRyaW0oKSAhPT0gYXJyW2luZGV4IC0gMV0udHJpbSgpKTtcbiAgICAvLyBSZWFzc2VtYmxlIHRoZSBtZXNzYWdlXG4gICAgbWVzc2FnZSA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgIHJldHVybiBtZXNzYWdlLnRyaW0oKTtcbn1cbmZ1bmN0aW9uIGZvcm1hdFdlYnBhY2tNZXNzYWdlcyhqc29uLCB2ZXJib3NlKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0ganNvbi5lcnJvcnMubWFwKGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgaXNVbmtub3duTmV4dEZvbnRFcnJvciA9IG1lc3NhZ2UubWVzc2FnZS5pbmNsdWRlcygnQW4gZXJyb3Igb2NjdXJlZCBpbiBgQG5leHQvZm9udGAuJyk7XG4gICAgICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIGlzVW5rbm93bk5leHRGb250RXJyb3IgfHwgdmVyYm9zZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZm9ybWF0dGVkV2FybmluZ3MgPSBqc29uLndhcm5pbmdzLm1hcChmdW5jdGlvbihtZXNzYWdlKSB7XG4gICAgICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIHZlcmJvc2UpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IF9leHRlbmRzKHt9LCBqc29uLCB7XG4gICAgICAgIGVycm9yczogZm9ybWF0dGVkRXJyb3JzLFxuICAgICAgICB3YXJuaW5nczogZm9ybWF0dGVkV2FybmluZ3NcbiAgICB9KTtcbiAgICBpZiAoIXZlcmJvc2UgJiYgcmVzdWx0LmVycm9ycy5zb21lKGlzTGlrZWx5QVN5bnRheEVycm9yKSkge1xuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHN5bnRheCBlcnJvcnMsIHNob3cganVzdCB0aGVtLlxuICAgICAgICByZXN1bHQuZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoaXNMaWtlbHlBU3ludGF4RXJyb3IpO1xuICAgICAgICByZXN1bHQud2FybmluZ3MgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbm1vZHVsZS5leHBvcnRzID0gZm9ybWF0V2VicGFja01lc3NhZ2VzO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXQtd2VicGFjay1tZXNzYWdlcy5qcy5tYXAiXSwibmFtZXMiOlsiX2V4dGVuZHMiLCJyZXF1aXJlIiwiZGVmYXVsdCIsIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsIl9zdHJpcEFuc2kiLCJmcmllbmRseVN5bnRheEVycm9yTGFiZWwiLCJXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMiLCJpc0xpa2VseUFTeW50YXhFcnJvciIsIm1lc3NhZ2UiLCJpbmRleE9mIiwiaGFkTWlzc2luZ1Nhc3NFcnJvciIsImZvcm1hdE1lc3NhZ2UiLCJ2ZXJib3NlIiwiaW1wb3J0VHJhY2VOb3RlIiwiZmlsdGVyZWRNb2R1bGVUcmFjZSIsIm1vZHVsZVRyYWNlIiwiZmlsdGVyIiwidHJhY2UiLCJ0ZXN0Iiwib3JpZ2luTmFtZSIsImJvZHkiLCJicmVha2luZ0NoYW5nZUluZGV4Iiwic2xpY2UiLCJtb2R1bGVOYW1lIiwiZmlsZSIsImRldGFpbHMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIiwic3RhY2siLCJsaW5lcyIsInNwbGl0IiwibGluZSIsInBhcnNpbmdFcnJvciIsImV4ZWMiLCJlcnJvckxpbmUiLCJlcnJvckNvbHVtbiIsImVycm9yTWVzc2FnZSIsInJlcGxhY2UiLCJ0cmltIiwic3BsaWNlIiwibWF0Y2giLCJmaXJzdExpbmUiLCJpbmRleCIsImFyciIsImZvcm1hdFdlYnBhY2tNZXNzYWdlcyIsImpzb24iLCJmb3JtYXR0ZWRFcnJvcnMiLCJlcnJvcnMiLCJpc1Vua25vd25OZXh0Rm9udEVycm9yIiwiaW5jbHVkZXMiLCJmb3JtYXR0ZWRXYXJuaW5ncyIsIndhcm5pbmdzIiwicmVzdWx0Iiwic29tZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js ***! \***************************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = connect;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _client = __webpack_require__(/*! next/dist/compiled/@next/react-dev-overlay/dist/client */ \"./node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js\");\nvar _stripAnsi = _interop_require_default(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nvar _websocket = __webpack_require__(/*! ./websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\nvar _formatWebpackMessages = _interop_require_default(__webpack_require__(/*! ./format-webpack-messages */ \"./node_modules/next/dist/client/dev/error-overlay/format-webpack-messages.js\"));\nfunction connect() {\n (0, _client).register();\n (0, _websocket).addMessageListener((event)=>{\n if (event.data.indexOf(\"action\") === -1) return;\n try {\n processMessage(event);\n } catch (ex) {\n console.warn(\"Invalid HMR message: \" + event.data + \"\\n\", ex);\n }\n });\n return {\n subscribeToHmrEvent (handler) {\n customHmrEventHandler = handler;\n },\n onUnrecoverableError () {\n hadRuntimeError = true;\n }\n };\n}\n// This alternative WebpackDevServer combines the functionality of:\n// https://github.com/webpack/webpack-dev-server/blob/webpack-1/client/index.js\n// https://github.com/webpack/webpack/blob/webpack-1/hot/dev-server.js\n// It only supports their simplest configuration (hot updates on same server).\n// It makes some opinionated choices on top, like adding a syntax error overlay\n// that looks similar to our console output. The error overlay is inspired by:\n// https://github.com/glenjamin/webpack-hot-middleware\nwindow.__nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet hadRuntimeError = false;\nlet customHmrEventHandler;\n// Remember some state related to hot module replacement.\nvar isFirstCompilation = true;\nvar mostRecentCompilationHash = null;\nvar hasCompileErrors = false;\nfunction clearOutdatedErrors() {\n // Clean up outdated compile errors, if any.\n if (typeof console !== \"undefined\" && typeof console.clear === \"function\") {\n if (hasCompileErrors) {\n console.clear();\n }\n }\n}\n// Successful compilation.\nfunction handleSuccess() {\n clearOutdatedErrors();\n const isHotUpdate = !isFirstCompilation || window.__NEXT_DATA__.page !== \"/_error\" && isUpdateAvailable();\n isFirstCompilation = false;\n hasCompileErrors = false;\n // Attempt to apply hot updates or reload.\n if (isHotUpdate) {\n tryApplyUpdates(onBeforeFastRefresh, onFastRefresh);\n }\n}\n// Compilation with warnings (e.g. ESLint).\nfunction handleWarnings(warnings) {\n clearOutdatedErrors();\n const isHotUpdate = !isFirstCompilation;\n isFirstCompilation = false;\n hasCompileErrors = false;\n function printWarnings() {\n // Print warnings to the console.\n const formatted = (0, _formatWebpackMessages).default({\n warnings: warnings,\n errors: []\n });\n if (typeof console !== \"undefined\" && typeof console.warn === \"function\") {\n var ref;\n for(let i = 0; i < ((ref = formatted.warnings) == null ? void 0 : ref.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(formatted.warnings[i]));\n }\n }\n }\n printWarnings();\n // Attempt to apply hot updates or reload.\n if (isHotUpdate) {\n tryApplyUpdates(onBeforeFastRefresh, onFastRefresh);\n }\n}\n// Compilation with errors (e.g. syntax error or missing modules).\nfunction handleErrors(errors) {\n clearOutdatedErrors();\n isFirstCompilation = false;\n hasCompileErrors = true;\n // \"Massage\" webpack messages.\n var formatted = (0, _formatWebpackMessages).default({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n (0, _client).onBuildError(formatted.errors[0]);\n // Also log them to the console.\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n for(var i = 0; i < formatted.errors.length; i++){\n console.error((0, _stripAnsi).default(formatted.errors[i]));\n }\n }\n // Do not attempt to reload now.\n // We will reload on next success instead.\n if (false) {}\n}\nlet startLatency = undefined;\nfunction onBeforeFastRefresh(hasUpdates) {\n if (hasUpdates) {\n // Only trigger a pending state if we have updates to apply\n // (cf. onFastRefresh)\n (0, _client).onBeforeRefresh();\n }\n}\nfunction onFastRefresh(hasUpdates) {\n (0, _client).onBuildOk();\n if (hasUpdates) {\n // Only complete a pending state if we applied updates\n // (cf. onBeforeFastRefresh)\n (0, _client).onRefresh();\n }\n if (startLatency) {\n const endLatency = Date.now();\n const latency = endLatency - startLatency;\n console.log(\"[Fast Refresh] done in \".concat(latency, \"ms\"));\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-hmr-latency\",\n id: window.__nextDevClientId,\n startTime: startLatency,\n endTime: endLatency\n }));\n if (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latency);\n }\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// Handle messages from the server.\nfunction processMessage(e) {\n const obj = JSON.parse(e.data);\n switch(obj.action){\n case \"building\":\n {\n startLatency = Date.now();\n console.log(\"[Fast Refresh] rebuilding\");\n break;\n }\n case \"built\":\n case \"sync\":\n {\n if (obj.hash) {\n handleAvailableHash(obj.hash);\n }\n const { errors , warnings } = obj;\n const hasErrors = Boolean(errors && errors.length);\n if (hasErrors) {\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-error\",\n errorCount: errors.length,\n clientId: window.__nextDevClientId\n }));\n return handleErrors(errors);\n }\n const hasWarnings = Boolean(warnings && warnings.length);\n if (hasWarnings) {\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-warning\",\n warningCount: warnings.length,\n clientId: window.__nextDevClientId\n }));\n return handleWarnings(warnings);\n }\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-success\",\n clientId: window.__nextDevClientId\n }));\n return handleSuccess();\n }\n case \"serverComponentChanges\":\n {\n // Server component changes don't apply to `pages`.\n return;\n }\n default:\n {\n if (customHmrEventHandler) {\n customHmrEventHandler(obj);\n break;\n }\n break;\n }\n }\n}\n// Is there a newer version of this code available?\nfunction isUpdateAvailable() {\n /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n return mostRecentCompilationHash !== __webpack_require__.h();\n}\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n return module.hot.status() === \"idle\";\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === \"idle\") {\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n module.hot.addStatusHandler(handler);\n }\n}\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdates(onBeforeHotUpdate, onHotUpdateSuccess) {\n if (false) {}\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n (0, _client).onBuildOk();\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || 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 (hadRuntimeError) {\n console.warn(\"[Fast Refresh] performing full reload because your application had an unrecoverable error\");\n }\n performFullReload(err);\n return;\n }\n const hasUpdates = Boolean(updatedModules.length);\n if (typeof onHotUpdateSuccess === \"function\") {\n // Maybe we want to do something.\n onHotUpdateSuccess(hasUpdates);\n }\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n // However, this time, don't trigger a pending refresh state.\n tryApplyUpdates(hasUpdates ? undefined : onBeforeHotUpdate, hasUpdates ? _client.onBuildOk : onHotUpdateSuccess);\n } else {\n (0, _client).onBuildOk();\n if (false) {}\n }\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (!updatedModules) {\n return null;\n }\n if (typeof onBeforeHotUpdate === \"function\") {\n const hasUpdates = Boolean(updatedModules.length);\n onBeforeHotUpdate(hasUpdates);\n }\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\nfunction performFullReload(err) {\n const stackTrace = err && (err.stack && err.stack.split(\"\\n\").slice(0, 5).join(\"\\n\") || err.message || err + \"\");\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-full-reload\",\n stackTrace,\n hadRuntimeError: !!hadRuntimeError\n }));\n window.location.reload();\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-dev-client.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxrQkFBZSxHQUFHRztBQUNsQixJQUFJQywyQkFBMkJDLG1KQUErRDtBQUM5RixJQUFJQyxVQUFVRCxtQkFBT0EsQ0FBQyx3SUFBd0Q7QUFDOUUsSUFBSUUsYUFBYUgseUJBQXlCQyxtQkFBT0EsQ0FBQyw0RkFBK0I7QUFDakYsSUFBSUcsYUFBYUgsbUJBQU9BLENBQUMsbUZBQWE7QUFDdEMsSUFBSUkseUJBQXlCTCx5QkFBeUJDLG1CQUFPQSxDQUFDLCtHQUEyQjtBQUN6RixTQUFTRixVQUFVO0lBQ2QsSUFBR0csT0FBTyxFQUFFSSxRQUFRO0lBQ3BCLElBQUdGLFVBQVUsRUFBRUcsa0JBQWtCLENBQUMsQ0FBQ0MsUUFBUTtRQUN4QyxJQUFJQSxNQUFNQyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRztRQUN6QyxJQUFJO1lBQ0FDLGVBQWVIO1FBQ25CLEVBQUUsT0FBT0ksSUFBSTtZQUNUQyxRQUFRQyxJQUFJLENBQUMsMEJBQTBCTixNQUFNQyxJQUFJLEdBQUcsTUFBTUc7UUFDOUQ7SUFDSjtJQUNBLE9BQU87UUFDSEcscUJBQXFCQyxPQUFPLEVBQUU7WUFDMUJDLHdCQUF3QkQ7UUFDNUI7UUFDQUUsd0JBQXdCO1lBQ3BCQyxrQkFBa0IsSUFBSTtRQUMxQjtJQUNKO0FBQ0o7QUFDQSxtRUFBbUU7QUFDbkUsK0VBQStFO0FBQy9FLHNFQUFzRTtBQUN0RSw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLDhFQUE4RTtBQUM5RSxzREFBc0Q7QUFDdERDLE9BQU9DLGlCQUFpQixHQUFHQyxLQUFLQyxLQUFLLENBQUNELEtBQUtFLE1BQU0sS0FBSyxNQUFNQyxLQUFLQyxHQUFHO0FBQ3BFLElBQUlQLGtC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Q25ILFFBQVFFLE9BQU8sRUFBRUY7SUFDL0IwRixPQUFPMUYsT0FBTyxHQUFHQSxRQUFRRSxPQUFPO0FBQ2xDLENBQUMsQ0FFRCwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2Vycm9yLW92ZXJsYXkvaG90LWRldi1jbGllbnQuanM/MTYwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGNvbm5lY3Q7XG52YXIgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzXCIpLmRlZmF1bHQ7XG52YXIgX2NsaWVudCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvZGlzdC9jbGllbnRcIik7XG52YXIgX3N0cmlwQW5zaSA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIikpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXRcIik7XG52YXIgX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcyA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi9mb3JtYXQtd2VicGFjay1tZXNzYWdlc1wiKSk7XG5mdW5jdGlvbiBjb25uZWN0KCkge1xuICAgICgwLCBfY2xpZW50KS5yZWdpc3RlcigpO1xuICAgICgwLCBfd2Vic29ja2V0KS5hZGRNZXNzYWdlTGlzdGVuZXIoKGV2ZW50KT0+e1xuICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCdhY3Rpb24nKSA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2Nlc3NNZXNzYWdlKGV2ZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBITVIgbWVzc2FnZTogJyArIGV2ZW50LmRhdGEgKyAnXFxuJywgZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3Vic2NyaWJlVG9IbXJFdmVudCAoaGFuZGxlcikge1xuICAgICAgICAgICAgY3VzdG9tSG1yRXZlbnRIYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgfSxcbiAgICAgICAgb25VbnJlY292ZXJhYmxlRXJyb3IgKCkge1xuICAgICAgICAgICAgaGFkUnVudGltZUVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG59XG4vLyBUaGlzIGFsdGVybmF0aXZlIFdlYnBhY2tEZXZTZXJ2ZXIgY29tYmluZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Y6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrLWRldi1zZXJ2ZXIvYmxvYi93ZWJwYWNrLTEvY2xpZW50L2luZGV4LmpzXG4vLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2Ivd2VicGFjay0xL2hvdC9kZXYtc2VydmVyLmpzXG4vLyBJdCBvbmx5IHN1cHBvcnRzIHRoZWlyIHNpbXBsZXN0IGNvbmZpZ3VyYXRpb24gKGhvdCB1cGRhdGVzIG9uIHNhbWUgc2VydmVyKS5cbi8vIEl0IG1ha2VzIHNvbWUgb3BpbmlvbmF0ZWQgY2hvaWNlcyBvbiB0b3AsIGxpa2UgYWRkaW5nIGEgc3ludGF4IGVycm9yIG92ZXJsYXlcbi8vIHRoYXQgbG9va3Mgc2ltaWxhciB0byBvdXIgY29uc29sZSBvdXRwdXQuIFRoZSBlcnJvciBvdmVybGF5IGlzIGluc3BpcmVkIGJ5OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2dsZW5qYW1pbi93ZWJwYWNrLWhvdC1taWRkbGV3YXJlXG53aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyBEYXRlLm5vdygpKTtcbmxldCBoYWRSdW50aW1lRXJyb3IgPSBmYWxzZTtcbmxldCBjdXN0b21IbXJFdmVudEhhbmRsZXI7XG4vLyBSZW1lbWJlciBzb21lIHN0YXRlIHJlbGF0ZWQgdG8gaG90IG1vZHVsZSByZXBsYWNlbWVudC5cbnZhciBpc0ZpcnN0Q29tcGlsYXRpb24gPSB0cnVlO1xudmFyIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggPSBudWxsO1xudmFyIGhhc0NvbXBpbGVFcnJvcnMgPSBmYWxzZTtcbmZ1bmN0aW9uIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKSB7XG4gICAgLy8gQ2xlYW4gdXAgb3V0ZGF0ZWQgY29tcGlsZSBlcnJvcnMsIGlmIGFueS5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmNsZWFyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGlmIChoYXNDb21waWxlRXJyb3JzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBTdWNjZXNzZnVsIGNvbXBpbGF0aW9uLlxuZnVuY3Rpb24gaGFuZGxlU3VjY2VzcygpIHtcbiAgICBjbGVhck91dGRhdGVkRXJyb3JzKCk7XG4gICAgY29uc3QgaXNIb3RVcGRhdGUgPSAhaXNGaXJzdENvbXBpbGF0aW9uIHx8IHdpbmRvdy5fX05FWFRfREFUQV9fLnBhZ2UgIT09ICcvX2Vycm9yJyAmJiBpc1VwZGF0ZUF2YWlsYWJsZSgpO1xuICAgIGlzRmlyc3RDb21waWxhdGlvbiA9IGZhbHNlO1xuICAgIGhhc0NvbXBpbGVFcnJvcnMgPSBmYWxzZTtcbiAgICAvLyBBdHRlbXB0IHRvIGFwcGx5IGhvdCB1cGRhdGVzIG9yIHJlbG9hZC5cbiAgICBpZiAoaXNIb3RVcGRhdGUpIHtcbiAgICAgICAgdHJ5QXBwbHlVcGRhdGVzKG9uQmVmb3JlRmFzdFJlZnJlc2gsIG9uRmFzdFJlZnJlc2gpO1xuICAgIH1cbn1cbi8vIENvbXBpbGF0aW9uIHdpdGggd2FybmluZ3MgKGUuZy4gRVNMaW50KS5cbmZ1bmN0aW9uIGhhbmRsZVdhcm5pbmdzKHdhcm5pbmdzKSB7XG4gICAgY2xlYXJPdXRkYXRlZEVycm9ycygpO1xuICAgIGNvbnN0IGlzSG90VXBkYXRlID0gIWlzRmlyc3RDb21waWxhdGlvbjtcbiAgICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZTtcbiAgICBoYXNDb21waWxlRXJyb3JzID0gZmFsc2U7XG4gICAgZnVuY3Rpb24gcHJpbnRXYXJuaW5ncygpIHtcbiAgICAgICAgLy8gUHJpbnQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9ICgwLCBfZm9ybWF0V2VicGFja01lc3NhZ2VzKS5kZWZhdWx0KHtcbiAgICAgICAgICAgIHdhcm5pbmdzOiB3YXJuaW5ncyxcbiAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbnNvbGUud2FybiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCAoKHJlZiA9IGZvcm1hdHRlZC53YXJuaW5ncykgPT0gbnVsbCA/IHZvaWQgMCA6IHJlZi5sZW5ndGgpOyBpKyspe1xuICAgICAgICAgICAgICAgIGlmIChpID09PSA1KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhlcmUgd2VyZSBtb3JlIHdhcm5pbmdzIGluIG90aGVyIGZpbGVzLlxcbicgKyAnWW91IGNhbiBmaW5kIGEgY29tcGxldGUgbG9nIGluIHRoZSB0ZXJtaW5hbC4nKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigoMCwgX3N0cmlwQW5zaSkuZGVmYXVsdChmb3JtYXR0ZWQud2FybmluZ3NbaV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwcmludFdhcm5pbmdzKCk7XG4gICAgLy8gQXR0ZW1wdCB0byBhcHBseSBob3QgdXBkYXRlcyBvciByZWxvYWQuXG4gICAgaWYgKGlzSG90VXBkYXRlKSB7XG4gICAgICAgIHRyeUFwcGx5VXBkYXRlcyhvbkJlZm9yZUZhc3RSZWZyZXNoLCBvbkZhc3RSZWZyZXNoKTtcbiAgICB9XG59XG4vLyBDb21waWxhdGlvbiB3aXRoIGVycm9ycyAoZS5nLiBzeW50YXggZXJyb3Igb3IgbWlzc2luZyBtb2R1bGVzKS5cbmZ1bmN0aW9uIGhhbmRsZUVycm9ycyhlcnJvcnMpIHtcbiAgICBjbGVhck91dGRhdGVkRXJyb3JzKCk7XG4gICAgaXNGaXJzdENvbXBpbGF0aW9uID0gZmFsc2U7XG4gICAgaGFzQ29tcGlsZUVycm9ycyA9IHRydWU7XG4gICAgLy8gXCJNYXNzYWdlXCIgd2VicGFjayBtZXNzYWdlcy5cbiAgICB2YXIgZm9ybWF0dGVkID0gKDAsIF9mb3JtYXRXZWJwYWNrTWVzc2FnZXMpLmRlZmF1bHQoe1xuICAgICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgICAgd2FybmluZ3M6IFtdXG4gICAgfSk7XG4gICAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgICAoMCwgX2NsaWVudCkub25CdWlsZEVycm9yKGZvcm1hdHRlZC5lcnJvcnNbMF0pO1xuICAgIC8vIEFsc28gbG9nIHRoZW0gdG8gdGhlIGNvbnNvbGUuXG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgZm9ybWF0dGVkLmVycm9ycy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KGZvcm1hdHRlZC5lcnJvcnNbaV0pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByZWxvYWQgbm93LlxuICAgIC8vIFdlIHdpbGwgcmVsb2FkIG9uIG5leHQgc3VjY2VzcyBpbnN0ZWFkLlxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQihmb3JtYXR0ZWQuZXJyb3JzWzBdKTtcbiAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG5sZXQgc3RhcnRMYXRlbmN5ID0gdW5kZWZpbmVkO1xuZnVuY3Rpb24gb25CZWZvcmVGYXN0UmVmcmVzaChoYXNVcGRhdGVzKSB7XG4gICAgaWYgKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgLy8gT25seSB0cmlnZ2VyIGEgcGVuZGluZyBzdGF0ZSBpZiB3ZSBoYXZlIHVwZGF0ZXMgdG8gYXBwbHlcbiAgICAgICAgLy8gKGNmLiBvbkZhc3RSZWZyZXNoKVxuICAgICAgICAoMCwgX2NsaWVudCkub25CZWZvcmVSZWZyZXNoKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gb25GYXN0UmVmcmVzaChoYXNVcGRhdGVzKSB7XG4gICAgKDAsIF9jbGllbnQpLm9uQnVpbGRPaygpO1xuICAgIGlmIChoYXNVcGRhdGVzKSB7XG4gICAgICAgIC8vIE9ubHkgY29tcGxldGUgYSBwZW5kaW5nIHN0YXRlIGlmIHdlIGFwcGxpZWQgdXBkYXRlc1xuICAgICAgICAvLyAoY2YuIG9uQmVmb3JlRmFzdFJlZnJlc2gpXG4gICAgICAgICgwLCBfY2xpZW50KS5vblJlZnJlc2goKTtcbiAgICB9XG4gICAgaWYgKHN0YXJ0TGF0ZW5jeSkge1xuICAgICAgICBjb25zdCBlbmRMYXRlbmN5ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgbGF0ZW5jeSA9IGVuZExhdGVuY3kgLSBzdGFydExhdGVuY3k7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbRmFzdCBSZWZyZXNoXSBkb25lIGluICR7bGF0ZW5jeX1tc2ApO1xuICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtaG1yLWxhdGVuY3knLFxuICAgICAgICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICAgIHN0YXJ0VGltZTogc3RhcnRMYXRlbmN5LFxuICAgICAgICAgICAgZW5kVGltZTogZW5kTGF0ZW5jeVxuICAgICAgICB9KSk7XG4gICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQikge1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0xBVEVOQ1lfQ0IobGF0ZW5jeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGVyZSBpcyBhIG5ld2VyIHZlcnNpb24gb2YgdGhlIGNvZGUgYXZhaWxhYmxlLlxuZnVuY3Rpb24gaGFuZGxlQXZhaWxhYmxlSGFzaChoYXNoKSB7XG4gICAgLy8gVXBkYXRlIGxhc3Qga25vd24gY29tcGlsYXRpb24gaGFzaC5cbiAgICBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoID0gaGFzaDtcbn1cbi8vIEhhbmRsZSBtZXNzYWdlcyBmcm9tIHRoZSBzZXJ2ZXIuXG5mdW5jdGlvbiBwcm9jZXNzTWVzc2FnZShlKSB7XG4gICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShlLmRhdGEpO1xuICAgIHN3aXRjaChvYmouYWN0aW9uKXtcbiAgICAgICAgY2FzZSAnYnVpbGRpbmcnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0YXJ0TGF0ZW5jeSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tGYXN0IFJlZnJlc2hdIHJlYnVpbGRpbmcnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAnYnVpbHQnOlxuICAgICAgICBjYXNlICdzeW5jJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXZhaWxhYmxlSGFzaChvYmouaGFzaCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzICwgd2FybmluZ3MgIH0gPSBvYmo7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzRXJyb3JzID0gQm9vbGVhbihlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0Vycm9ycykge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudDogZXJyb3JzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3JzKGVycm9ycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1dhcm5pbmdzID0gQm9vbGVhbih3YXJuaW5ncyAmJiB3YXJuaW5ncy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNXYXJuaW5ncykge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtd2FybmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nQ291bnQ6IHdhcm5pbmdzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlV2FybmluZ3Mod2FybmluZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICBldmVudDogJ2NsaWVudC1zdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlU3VjY2VzcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlICdzZXJ2ZXJDb21wb25lbnRDaGFuZ2VzJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBTZXJ2ZXIgY29tcG9uZW50IGNoYW5nZXMgZG9uJ3QgYXBwbHkgdG8gYHBhZ2VzYC5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbUhtckV2ZW50SGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21IbXJFdmVudEhhbmRsZXIob2JqKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cbi8vIElzIHRoZXJlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgYXZhaWxhYmxlP1xuZnVuY3Rpb24gaXNVcGRhdGVBdmFpbGFibGUoKSB7XG4gICAgLyogZ2xvYmFscyBfX3dlYnBhY2tfaGFzaF9fICovIC8vIF9fd2VicGFja19oYXNoX18gaXMgdGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24uXG4gICAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICAgIHJldHVybiBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fO1xufVxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gICAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJztcbn1cbmZ1bmN0aW9uIGFmdGVyQXBwbHlVcGRhdGVzKGZuKSB7XG4gICAgaWYgKGNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgICAgIGZuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlcihzdGF0dXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdpZGxlJykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1vZHVsZS5ob3QuYWRkU3RhdHVzSGFuZGxlcihoYW5kbGVyKTtcbiAgICB9XG59XG4vLyBBdHRlbXB0IHRvIHVwZGF0ZSBjb2RlIG9uIHRoZSBmbHksIGZhbGwgYmFjayB0byBhIGhhcmQgcmVsb2FkLlxuZnVuY3Rpb24gdHJ5QXBwbHlVcGRhdGVzKG9uQmVmb3JlSG90VXBkYXRlLCBvbkhvdFVwZGF0ZVN1Y2Nlc3MpIHtcbiAgICBpZiAoIW1vZHVsZS5ob3QpIHtcbiAgICAgICAgLy8gSG90TW9kdWxlUmVwbGFjZW1lbnRQbHVnaW4gaXMgbm90IGluIFdlYnBhY2sgY29uZmlndXJhdGlvbi5cbiAgICAgICAgY29uc29sZS5lcnJvcignSG90TW9kdWxlUmVwbGFjZW1lbnRQbHVnaW4gaXMgbm90IGluIFdlYnBhY2sgY29uZmlndXJhdGlvbi4nKTtcbiAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICAgICAgKDAsIF9jbGllbnQpLm9uQnVpbGRPaygpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhlcnIsIHVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgIGlmIChlcnIgfHwgaGFkUnVudGltZUVycm9yIHx8ICF1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZFxcblxcbicgKyBcIkZhc3QgUmVmcmVzaCB3aWxsIHBlcmZvcm0gYSBmdWxsIHJlbG9hZCB3aGVuIHlvdSBlZGl0IGEgZmlsZSB0aGF0J3MgaW1wb3J0ZWQgYnkgbW9kdWxlcyBvdXRzaWRlIG9mIHRoZSBSZWFjdCByZW5kZXJpbmcgdHJlZS5cXG5cIiArICdZb3UgbWlnaHQgaGF2ZSBhIGZpbGUgd2hpY2ggZXhwb3J0cyBhIFJlYWN0IGNvbXBvbmVudCBidXQgYWxzbyBleHBvcnRzIGEgdmFsdWUgdGhhdCBpcyBpbXBvcnRlZCBieSBhIG5vbi1SZWFjdCBjb21wb25lbnQgZmlsZS5cXG4nICsgJ0NvbnNpZGVyIG1pZ3JhdGluZyB0aGUgbm9uLVJlYWN0IGNvbXBvbmVudCBleHBvcnQgdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBpbXBvcnRpbmcgaXQgaW50byBib3RoIGZpbGVzLlxcblxcbicgKyAnSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGUgcGFyZW50IGNvbXBvbmVudCBvZiB0aGUgY29tcG9uZW50IHlvdSBlZGl0ZWQgaXMgYSBjbGFzcyBjb21wb25lbnQsIHdoaWNoIGRpc2FibGVzIEZhc3QgUmVmcmVzaC5cXG4nICsgJ0Zhc3QgUmVmcmVzaCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgcGFyZW50IGZ1bmN0aW9uIGNvbXBvbmVudCBpbiB5b3VyIFJlYWN0IHRyZWUuJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZCBiZWNhdXNlIHlvdXIgYXBwbGljYXRpb24gaGFkIGFuIHVucmVjb3ZlcmFibGUgZXJyb3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKGVycik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzVXBkYXRlcyA9IEJvb2xlYW4odXBkYXRlZE1vZHVsZXMubGVuZ3RoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvbkhvdFVwZGF0ZVN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIE1heWJlIHdlIHdhbnQgdG8gZG8gc29tZXRoaW5nLlxuICAgICAgICAgICAgb25Ib3RVcGRhdGVTdWNjZXNzKGhhc1VwZGF0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAgICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHRoaXMgdGltZSwgZG9uJ3QgdHJpZ2dlciBhIHBlbmRpbmcgcmVmcmVzaCBzdGF0ZS5cbiAgICAgICAgICAgIHRyeUFwcGx5VXBkYXRlcyhoYXNVcGRhdGVzID8gdW5kZWZpbmVkIDogb25CZWZvcmVIb3RVcGRhdGUsIGhhc1VwZGF0ZXMgPyBfY2xpZW50Lm9uQnVpbGRPayA6IG9uSG90VXBkYXRlU3VjY2Vzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoMCwgX2NsaWVudCkub25CdWlsZE9rKCk7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAgICAgICAgIGFmdGVyQXBwbHlVcGRhdGVzKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2NoZWNrXG4gICAgbW9kdWxlLmhvdC5jaGVjaygvKiBhdXRvQXBwbHkgKi8gZmFsc2UpLnRoZW4oKHVwZGF0ZWRNb2R1bGVzKT0+e1xuICAgICAgICBpZiAoIXVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9uQmVmb3JlSG90VXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCBoYXNVcGRhdGVzID0gQm9vbGVhbih1cGRhdGVkTW9kdWxlcy5sZW5ndGgpO1xuICAgICAgICAgICAgb25CZWZvcmVIb3RVcGRhdGUoaGFzVXBkYXRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZHVsZS5ob3QuYXBwbHkoKTtcbiAgICB9KS50aGVuKCh1cGRhdGVkTW9kdWxlcyk9PntcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKG51bGwsIHVwZGF0ZWRNb2R1bGVzKTtcbiAgICB9LCAoZXJyKT0+e1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCBudWxsKTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHBlcmZvcm1GdWxsUmVsb2FkKGVycikge1xuICAgIGNvbnN0IHN0YWNrVHJhY2UgPSBlcnIgJiYgKGVyci5zdGFjayAmJiBlcnIuc3RhY2suc3BsaXQoJ1xcbicpLnNsaWNlKDAsIDUpLmpvaW4oJ1xcbicpIHx8IGVyci5tZXNzYWdlIHx8IGVyciArICcnKTtcbiAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBldmVudDogJ2NsaWVudC1mdWxsLXJlbG9hZCcsXG4gICAgICAgIHN0YWNrVHJhY2UsXG4gICAgICAgIGhhZFJ1bnRpbWVFcnJvcjogISFoYWRSdW50aW1lRXJyb3JcbiAgICB9KSk7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3QtZGV2LWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiY29ubmVjdCIsIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsInJlcXVpcmUiLCJfY2xpZW50IiwiX3N0cmlwQW5zaSIsIl93ZWJzb2NrZXQiLCJfZm9ybWF0V2VicGFja01lc3NhZ2VzIiwicmVnaXN0ZXIiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJldmVudCIsImRhdGEiLCJpbmRleE9mIiwicHJvY2Vzc01lc3NhZ2UiLCJleCIsImNvbnNvbGUiLCJ3YXJuIiwic3Vic2NyaWJlVG9IbXJFdmVudCIsImhhbmRsZXIiLCJjdXN0b21IbXJFdmVudEhhbmRsZXIiLCJvblVucmVjb3ZlcmFibGVFcnJvciIsImhhZFJ1bnRpbWVFcnJvciIsIndpbmRvdyIsIl9fbmV4dERldkNsaWVudElkIiwiTWF0aCIsInJvdW5kIiwicmFuZG9tIiwiRGF0ZSIsIm5vdyIsImlzRmlyc3RDb21waWxhdGlvbiIsIm1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2giLCJoYXNDb21waWxlRXJyb3JzIiwiY2xlYXJPdXRkYXRlZEVycm9ycyIsImNsZWFyIiwiaGFuZGxlU3VjY2VzcyIsImlzSG90VXBkYXRlIiwiX19ORVhUX0RBVEFfXyIsInBhZ2UiLCJpc1VwZGF0ZUF2YWlsYWJsZSIsInRyeUFwcGx5VXBkYXRlcyIsIm9uQmVmb3JlRmFzdFJlZnJlc2giLCJvbkZhc3RSZWZyZXNoIiwiaGFuZGxlV2FybmluZ3MiLCJ3YXJuaW5ncyIsInByaW50V2FybmluZ3MiLCJmb3JtYXR0ZWQiLCJlcnJvcnMiLCJyZWYiLCJpIiwibGVuZ3RoIiwiaGFuZGxlRXJyb3JzIiwib25CdWlsZEVycm9yIiwiZXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1RFU1RfTU9ERSIsInNlbGYiLCJfX05FWFRfSE1SX0NCIiwic3RhcnRMYXRlbmN5IiwidW5kZWZpbmVkIiwiaGFzVXBkYXRlcyIsIm9uQmVmb3JlUmVmcmVzaCIsIm9uQnVpbGRPayIsIm9uUmVmcmVzaCIsImVuZExhdGVuY3kiLCJsYXRlbmN5IiwibG9nIiwic2VuZE1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiaWQiLCJzdGFydFRpbWUiLCJlbmRUaW1lIiwiX19ORVhUX0hNUl9MQVRFTkNZX0NCIiwiaGFuZGxlQXZhaWxhYmxlSGFzaCIsImhhc2giLCJlIiwib2JqIiwicGFyc2UiLCJhY3Rpb24iLCJoYXNFcnJvcnMiLCJCb29sZWFuIiwiZXJyb3JDb3VudCIsImNsaWVudElkIiwiaGFzV2FybmluZ3MiLCJ3YXJuaW5nQ291bnQiLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsInJlbW92ZVN0YXR1c0hhbmRsZXIiLCJhZGRTdGF0dXNIYW5kbGVyIiwib25CZWZvcmVIb3RVcGRhdGUiLCJvbkhvdFVwZGF0ZVN1Y2Nlc3MiLCJoYW5kbGVBcHBseVVwZGF0ZXMiLCJlcnIiLCJ1cGRhdGVkTW9kdWxlcyIsInBlcmZvcm1GdWxsUmVsb2FkIiwiY2hlY2siLCJ0aGVuIiwiYXBwbHkiLCJzdGFja1RyYWNlIiwic3RhY2siLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsIm1lc3NhZ2UiLCJsb2NhdGlvbiIsInJlbG9hZCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/dev/error-overlay/websocket.js": /*!**********************************************************************!*\ !*** ./node_modules/next/dist/client/dev/error-overlay/websocket.js ***! \**********************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.addMessageListener = addMessageListener;\nexports.sendMessage = sendMessage;\nexports.connectHMR = connectHMR;\nlet source;\nconst eventCallbacks = [];\nlet lastActivity = Date.now();\nfunction getSocketProtocol(assetPrefix) {\n let protocol = location.protocol;\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (_) {}\n return protocol === \"http:\" ? \"ws\" : \"wss\";\n}\nfunction addMessageListener(cb) {\n eventCallbacks.push(cb);\n}\nfunction sendMessage(data) {\n if (!source || source.readyState !== source.OPEN) return;\n return source.send(data);\n}\nfunction connectHMR(options) {\n if (!options.timeout) {\n options.timeout = 5 * 1000;\n }\n function init() {\n if (source) source.close();\n function handleOnline() {\n if (options.log) console.log(\"[HMR] connected\");\n lastActivity = Date.now();\n }\n function handleMessage(event) {\n lastActivity = Date.now();\n eventCallbacks.forEach((cb)=>{\n cb(event);\n });\n }\n let timer;\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n timer = setInterval(function() {\n if (Date.now() - lastActivity > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n const { hostname , port } = location;\n const protocol = getSocketProtocol(options.assetPrefix || \"\");\n const assetPrefix = options.assetPrefix.replace(/^\\/+/, \"\");\n let url = \"\".concat(protocol, \"://\").concat(hostname, \":\").concat(port).concat(assetPrefix ? \"/\".concat(assetPrefix) : \"\");\n if (assetPrefix.startsWith(\"http\")) {\n url = \"\".concat(protocol, \"://\").concat(assetPrefix.split(\"://\")[1]);\n }\n source = new window.WebSocket(\"\".concat(url).concat(options.path));\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n init();\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=websocket.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsMEJBQTBCLEdBQUdFO0FBQzdCRixtQkFBbUIsR0FBR0c7QUFDdEJILGtCQUFrQixHQUFHSTtBQUNyQixJQUFJQztBQUNKLE1BQU1DLGlCQUFpQixFQUFFO0FBQ3pCLElBQUlDLGVBQWVDLEtBQUtDLEdBQUc7QUFDM0IsU0FBU0Msa0JBQWtCQyxXQUFXLEVBQUU7SUFDcEMsSUFBSUMsV0FBV0MsU0FBU0QsUUFBUTtJQUNoQyxJQUFJO1FBQ0EsdUJBQXVCO1FBQ3ZCQSxXQUFXLElBQUlFLElBQUlILGFBQWFDLFFBQVE7SUFDNUMsRUFBRSxPQUFPRyxHQUFHLENBQUM7SUFDYixPQUFPSCxhQUFhLFVBQVUsT0FBTyxLQUFLO0FBQzlDO0FBQ0EsU0FBU1YsbUJBQW1CYyxFQUFFLEVBQUU7SUFDNUJWLGVBQWVXLElBQUksQ0FBQ0Q7QUFDeEI7QUFDQSxTQUFTYixZQUFZZSxJQUFJLEVBQUU7SUFDdkIsSUFBSSxDQUFDYixVQUFVQSxPQUFPYyxVQUFVLEtBQUtkLE9BQU9lLElBQUksRUFBRTtJQUNsRCxPQUFPZixPQUFPZ0IsSUFBSSxDQUFDSDtBQUN2QjtBQUNBLFNBQVNkLFdBQVdrQixPQUFPLEVBQUU7SUFDekIsSUFBSSxDQUFDQSxRQUFRQyxPQUFPLEVBQUU7UUFDbEJELFFBQVFDLE9BQU8sR0FBRyxJQUFJO0lBQzFCLENBQUM7SUFDRCxTQUFTQyxPQUFPO1FBQ1osSUFBSW5CLFFBQVFBLE9BQU9vQixLQUFLO1FBQ3hCLFNBQVNDLGVBQWU7WUFDcEIsSUFBSUosUUFBUUssR0FBRyxFQUFFQyxRQUFRRCxHQUFHLENBQUM7WUFDN0JwQixlQUFlQyxLQUFLQyxHQUFHO1FBQzNCO1FBQ0EsU0FBU29CLGNBQWNDLEtBQUssRUFBRTtZQUMxQnZCLGVBQWVDLEtBQUtDLEdBQUc7WUFDdkJILGVBQWV5QixPQUFPLENBQUMsQ0FBQ2YsS0FBSztnQkFDekJBLEdBQUdjO1lBQ1A7UUFDSjtRQUNBLElBQUlFO1FBQ0osU0FBU0MsbUJBQW1CO1lBQ3hCQyxjQUFjRjtZQUNkM0IsT0FBT29CLEtBQUs7WUFDWlUsV0FBV1gsTUFBTUYsUUFBUUMsT0FBTztRQUNwQztRQUNBUyxRQUFRSSxZQUFZLFdBQVc7WUFDM0IsSUFBSTVCLEtBQUtDLEdBQUcsS0FBS0YsZUFBZWUsUUFBUUMsT0FBTyxFQUFFO2dCQUM3Q1U7WUFDSixDQUFDO1FBQ0wsR0FBR1gsUUFBUUMsT0FBTyxHQUFHO1FBQ3JCLE1BQU0sRUFBRWMsU0FBUSxFQUFHQyxLQUFJLEVBQUcsR0FBR3pCO1FBQzdCLE1BQU1ELFdBQVdGLGtCQUFrQlksUUFBUVgsV0FBVyxJQUFJO1FBQzFELE1BQU1BLGNBQWNXLFFBQVFYLFdBQVcsQ0FBQzRCLE9BQU8sQ0FBQyxRQUFRO1FBQ3hELElBQUlDLE1BQU0sR0FBaUJILE9BQWR6QixVQUFTLE9BQWlCMEIsT0FBWkQsVUFBUyxLQUFVMUIsT0FBUDJCLE1BQTRDLE9BQXJDM0IsY0FBYyxJQUFnQixPQUFaQSxlQUFnQixFQUFFO1FBQ2xGLElBQUlBLFlBQVk4QixVQUFVLENBQUMsU0FBUztZQUNoQ0QsTUFBTSxHQUFpQjdCLE9BQWRDLFVBQVMsT0FBaUMsT0FBNUJELFlBQVkrQixLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEQsQ0FBQztRQUNEckMsU0FBUyxJQUFJc0MsT0FBT0MsU0FBUyxDQUFDLEdBQVN0QixPQUFOa0IsS0FBbUIsT0FBYmxCLFFBQVF1QixJQUFJO1FBQ25EeEMsT0FBT3lDLE1BQU0sR0FBR3BCO1FBQ2hCckIsT0FBTzBDLE9BQU8sR0FBR2Q7UUFDakI1QixPQUFPMkMsU0FBUyxHQUFHbkI7SUFDdkI7SUFDQUw7QUFDSjtBQUVBLElBQUksQ0FBQyxPQUFPeEIsUUFBUWlELE9BQU8sS0FBSyxjQUFlLE9BQU9qRCxRQUFRaUQsT0FBTyxLQUFLLFlBQVlqRCxRQUFRaUQsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPakQsUUFBUWlELE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktwRCxPQUFPQyxjQUFjLENBQUNDLFFBQVFpRCxPQUFPLEVBQUUsY0FBYztRQUFFaEQsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9xRCxNQUFNLENBQUNuRCxRQUFRaUQsT0FBTyxFQUFFakQ7SUFDL0JvRCxPQUFPcEQsT0FBTyxHQUFHQSxRQUFRaUQsT0FBTztBQUNsQyxDQUFDLENBRUQscUNBQXFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9lcnJvci1vdmVybGF5L3dlYnNvY2tldC5qcz9hOWJlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5hZGRNZXNzYWdlTGlzdGVuZXIgPSBhZGRNZXNzYWdlTGlzdGVuZXI7XG5leHBvcnRzLnNlbmRNZXNzYWdlID0gc2VuZE1lc3NhZ2U7XG5leHBvcnRzLmNvbm5lY3RITVIgPSBjb25uZWN0SE1SO1xubGV0IHNvdXJjZTtcbmNvbnN0IGV2ZW50Q2FsbGJhY2tzID0gW107XG5sZXQgbGFzdEFjdGl2aXR5ID0gRGF0ZS5ub3coKTtcbmZ1bmN0aW9uIGdldFNvY2tldFByb3RvY29sKGFzc2V0UHJlZml4KSB7XG4gICAgbGV0IHByb3RvY29sID0gbG9jYXRpb24ucHJvdG9jb2w7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gYXNzZXRQcmVmaXggaXMgYSB1cmxcbiAgICAgICAgcHJvdG9jb2wgPSBuZXcgVVJMKGFzc2V0UHJlZml4KS5wcm90b2NvbDtcbiAgICB9IGNhdGNoIChfKSB7fVxuICAgIHJldHVybiBwcm90b2NvbCA9PT0gJ2h0dHA6JyA/ICd3cycgOiAnd3NzJztcbn1cbmZ1bmN0aW9uIGFkZE1lc3NhZ2VMaXN0ZW5lcihjYikge1xuICAgIGV2ZW50Q2FsbGJhY2tzLnB1c2goY2IpO1xufVxuZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkge1xuICAgIGlmICghc291cmNlIHx8IHNvdXJjZS5yZWFkeVN0YXRlICE9PSBzb3VyY2UuT1BFTikgcmV0dXJuO1xuICAgIHJldHVybiBzb3VyY2Uuc2VuZChkYXRhKTtcbn1cbmZ1bmN0aW9uIGNvbm5lY3RITVIob3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucy50aW1lb3V0KSB7XG4gICAgICAgIG9wdGlvbnMudGltZW91dCA9IDUgKiAxMDAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0KCkge1xuICAgICAgICBpZiAoc291cmNlKSBzb3VyY2UuY2xvc2UoKTtcbiAgICAgICAgZnVuY3Rpb24gaGFuZGxlT25saW5lKCkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMubG9nKSBjb25zb2xlLmxvZygnW0hNUl0gY29ubmVjdGVkJyk7XG4gICAgICAgICAgICBsYXN0QWN0aXZpdHkgPSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZlbnQpIHtcbiAgICAgICAgICAgIGxhc3RBY3Rpdml0eSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICBldmVudENhbGxiYWNrcy5mb3JFYWNoKChjYik9PntcbiAgICAgICAgICAgICAgICBjYihldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdGltZXI7XG4gICAgICAgIGZ1bmN0aW9uIGhhbmRsZURpc2Nvbm5lY3QoKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgICAgICAgIHNvdXJjZS5jbG9zZSgpO1xuICAgICAgICAgICAgc2V0VGltZW91dChpbml0LCBvcHRpb25zLnRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIHRpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIGxhc3RBY3Rpdml0eSA+IG9wdGlvbnMudGltZW91dCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZURpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0IC8gMik7XG4gICAgICAgIGNvbnN0IHsgaG9zdG5hbWUgLCBwb3J0ICB9ID0gbG9jYXRpb247XG4gICAgICAgIGNvbnN0IHByb3RvY29sID0gZ2V0U29ja2V0UHJvdG9jb2wob3B0aW9ucy5hc3NldFByZWZpeCB8fCAnJyk7XG4gICAgICAgIGNvbnN0IGFzc2V0UHJlZml4ID0gb3B0aW9ucy5hc3NldFByZWZpeC5yZXBsYWNlKC9eXFwvKy8sICcnKTtcbiAgICAgICAgbGV0IHVybCA9IGAke3Byb3RvY29sfTovLyR7aG9zdG5hbWV9OiR7cG9ydH0ke2Fzc2V0UHJlZml4ID8gYC8ke2Fzc2V0UHJlZml4fWAgOiAnJ31gO1xuICAgICAgICBpZiAoYXNzZXRQcmVmaXguc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBgJHtwcm90b2NvbH06Ly8ke2Fzc2V0UHJlZml4LnNwbGl0KCc6Ly8nKVsxXX1gO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZSA9IG5ldyB3aW5kb3cuV2ViU29ja2V0KGAke3VybH0ke29wdGlvbnMucGF0aH1gKTtcbiAgICAgICAgc291cmNlLm9ub3BlbiA9IGhhbmRsZU9ubGluZTtcbiAgICAgICAgc291cmNlLm9uZXJyb3IgPSBoYW5kbGVEaXNjb25uZWN0O1xuICAgICAgICBzb3VyY2Uub25tZXNzYWdlID0gaGFuZGxlTWVzc2FnZTtcbiAgICB9XG4gICAgaW5pdCgpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWJzb2NrZXQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwic2VuZE1lc3NhZ2UiLCJjb25uZWN0SE1SIiwic291cmNlIiwiZXZlbnRDYWxsYmFja3MiLCJsYXN0QWN0aXZpdHkiLCJEYXRlIiwibm93IiwiZ2V0U29ja2V0UHJvdG9jb2wiLCJhc3NldFByZWZpeCIsInByb3RvY29sIiwibG9jYXRpb24iLCJVUkwiLCJfIiwiY2IiLCJwdXNoIiwiZGF0YSIsInJlYWR5U3RhdGUiLCJPUEVOIiwic2VuZCIsIm9wdGlvbnMiLCJ0aW1lb3V0IiwiaW5pdCIsImNsb3NlIiwiaGFuZGxlT25saW5lIiwibG9nIiwiY29uc29sZSIsImhhbmRsZU1lc3NhZ2UiLCJldmVudCIsImZvckVhY2giLCJ0aW1lciIsImhhbmRsZURpc2Nvbm5lY3QiLCJjbGVhckludGVydmFsIiwic2V0VGltZW91dCIsInNldEludGVydmFsIiwiaG9zdG5hbWUiLCJwb3J0IiwicmVwbGFjZSIsInVybCIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsIndpbmRvdyIsIldlYlNvY2tldCIsInBhdGgiLCJvbm9wZW4iLCJvbmVycm9yIiwib25tZXNzYWdlIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/error-overlay/websocket.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/dev/fouc.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/client/dev/fouc.js ***! \***************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.displayContent = displayContent;\n// This wrapper function is used to safely select the best available function\n// to schedule removal of the no-FOUC styles workaround. requestAnimationFrame\n// is the ideal choice, but when used in iframes, there are no guarantees that\n// the callback will actually be called, which could stall the promise returned\n// from displayContent.\n//\n// See: https://www.vector-logic.com/blog/posts/on-request-animation-frame-and-embedded-iframes\nconst safeCallbackQueue = (callback)=>{\n if (window.requestAnimationFrame && window.self === window.top) {\n window.requestAnimationFrame(callback);\n } else {\n window.setTimeout(callback);\n }\n};\nfunction displayContent() {\n return new Promise((resolve)=>{\n safeCallbackQueue(function() {\n for(var x = document.querySelectorAll(\"[data-next-hide-fouc]\"), i = x.length; i--;){\n x[i].parentNode.removeChild(x[i]);\n }\n resolve();\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=fouc.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZm91Yy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxzQkFBc0IsR0FBR0U7QUFDekIsNkVBQTZFO0FBQzdFLDhFQUE4RTtBQUM5RSw4RUFBOEU7QUFDOUUsK0VBQStFO0FBQy9FLHVCQUF1QjtBQUN2QixFQUFFO0FBQ0YsK0ZBQStGO0FBQy9GLE1BQU1DLG9CQUFvQixDQUFDQyxXQUFXO0lBQ2xDLElBQUlDLE9BQU9DLHFCQUFxQixJQUFJRCxPQUFPRSxJQUFJLEtBQUtGLE9BQU9HLEdBQUcsRUFBRTtRQUM1REgsT0FBT0MscUJBQXFCLENBQUNGO0lBQ2pDLE9BQU87UUFDSEMsT0FBT0ksVUFBVSxDQUFDTDtJQUN0QixDQUFDO0FBQ0w7QUFDQSxTQUFTRixpQkFBaUI7SUFDdEIsT0FBTyxJQUFJUSxRQUFRLENBQUNDLFVBQVU7UUFDMUJSLGtCQUFrQixXQUFXO1lBQ3pCLElBQUksSUFBSVMsSUFBSUMsU0FBU0MsZ0JBQWdCLENBQUMsMEJBQTBCQyxJQUFJSCxFQUFFSSxNQUFNLEVBQUVELEtBQUs7Z0JBQy9FSCxDQUFDLENBQUNHLEVBQUUsQ0FBQ0UsVUFBVSxDQUFDQyxXQUFXLENBQUNOLENBQUMsQ0FBQ0csRUFBRTtZQUNwQztZQUNBSjtRQUNKO0lBQ0o7QUFDSjtBQUVBLElBQUksQ0FBQyxPQUFPWCxRQUFRbUIsT0FBTyxLQUFLLGNBQWUsT0FBT25CLFFBQVFtQixPQUFPLEtBQUssWUFBWW5CLFFBQVFtQixPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9uQixRQUFRbUIsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS3RCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUW1CLE9BQU8sRUFBRSxjQUFjO1FBQUVsQixPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT3VCLE1BQU0sQ0FBQ3JCLFFBQVFtQixPQUFPLEVBQUVuQjtJQUMvQnNCLE9BQU90QixPQUFPLEdBQUdBLFFBQVFtQixPQUFPO0FBQ2xDLENBQUMsQ0FFRCxnQ0FBZ0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2ZvdWMuanM/MDA4NyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGlzcGxheUNvbnRlbnQgPSBkaXNwbGF5Q29udGVudDtcbi8vIFRoaXMgd3JhcHBlciBmdW5jdGlvbiBpcyB1c2VkIHRvIHNhZmVseSBzZWxlY3QgdGhlIGJlc3QgYXZhaWxhYmxlIGZ1bmN0aW9uXG4vLyB0byBzY2hlZHVsZSByZW1vdmFsIG9mIHRoZSBuby1GT1VDIHN0eWxlcyB3b3JrYXJvdW5kLiByZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbi8vIGlzIHRoZSBpZGVhbCBjaG9pY2UsIGJ1dCB3aGVuIHVzZWQgaW4gaWZyYW1lcywgdGhlcmUgYXJlIG5vIGd1YXJhbnRlZXMgdGhhdFxuLy8gdGhlIGNhbGxiYWNrIHdpbGwgYWN0dWFsbHkgYmUgY2FsbGVkLCB3aGljaCBjb3VsZCBzdGFsbCB0aGUgcHJvbWlzZSByZXR1cm5lZFxuLy8gZnJvbSBkaXNwbGF5Q29udGVudC5cbi8vXG4vLyBTZWU6IGh0dHBzOi8vd3d3LnZlY3Rvci1sb2dpYy5jb20vYmxvZy9wb3N0cy9vbi1yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1hbmQtZW1iZWRkZWQtaWZyYW1lc1xuY29uc3Qgc2FmZUNhbGxiYWNrUXVldWUgPSAoY2FsbGJhY2spPT57XG4gICAgaWYgKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgJiYgd2luZG93LnNlbGYgPT09IHdpbmRvdy50b3ApIHtcbiAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2spO1xuICAgIH1cbn07XG5mdW5jdGlvbiBkaXNwbGF5Q29udGVudCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIHNhZmVDYWxsYmFja1F1ZXVlKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZm9yKHZhciB4ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtbmV4dC1oaWRlLWZvdWNdJyksIGkgPSB4Lmxlbmd0aDsgaS0tOyl7XG4gICAgICAgICAgICAgICAgeFtpXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHhbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm91Yy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkaXNwbGF5Q29udGVudCIsInNhZmVDYWxsYmFja1F1ZXVlIiwiY2FsbGJhY2siLCJ3aW5kb3ciLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJzZWxmIiwidG9wIiwic2V0VGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwieCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImkiLCJsZW5ndGgiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/fouc.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/dev/on-demand-entries-client.js": /*!***********************************************************************!*\ !*** ./node_modules/next/dist/client/dev/on-demand-entries-client.js ***! \***********************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _async_to_generator = (__webpack_require__(/*! @swc/helpers/lib/_async_to_generator.js */ \"./node_modules/@swc/helpers/lib/_async_to_generator.js\")[\"default\"]);\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _router = _interop_require_default(__webpack_require__(/*! next/router */ \"./node_modules/next/router.js\"));\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\nvar _default = _async_to_generator(function*(page) {\n if (page) {\n // in AMP the router isn't initialized on the client and\n // client-transitions don't occur so ping initial page\n setInterval(()=>{\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"ping\",\n page\n }));\n }, 2500);\n } else {\n _router.default.ready(()=>{\n setInterval(()=>{\n // when notFound: true is returned we should use the notFoundPage\n // as the Router.pathname will point to the 404 page but we want\n // to ping the source page that returned notFound: true instead\n const notFoundSrcPage = self.__NEXT_DATA__.notFoundSrcPage;\n const pathname = (_router.default.pathname === \"/404\" || _router.default.pathname === \"/_error\") && notFoundSrcPage ? notFoundSrcPage : _router.default.pathname;\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"ping\",\n page: pathname\n }));\n }, 2500);\n });\n }\n (0, _websocket).addMessageListener((event)=>{\n if (event.data.indexOf(\"{\") === -1) return;\n try {\n const payload = JSON.parse(event.data);\n // don't attempt fetching the page if we're already showing\n // the dev overlay as this can cause the error to be triggered\n // repeatedly\n if (payload.event === \"pong\" && payload.invalid && !self.__NEXT_DATA__.err) {\n // Payload can be invalid even if the page does exist.\n // So, we check if it can be created.\n fetch(location.href, {\n credentials: \"same-origin\"\n }).then((pageRes)=>{\n if (pageRes.status === 200) {\n // Page exists now, reload\n location.reload();\n } else {\n // Page doesn't exist\n if (self.__NEXT_DATA__.page === _router.default.pathname && _router.default.pathname !== \"/_error\") {\n // We are still on the page,\n // reload to show 404 error page\n location.reload();\n }\n }\n });\n }\n } catch (err) {\n console.error(\"on-demand-entries failed to parse response\", err);\n }\n });\n});\nexports[\"default\"] = _default;\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=on-demand-entries-client.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGtCQUFlLEdBQUcsS0FBSztBQUN2QixJQUFJRyxzQkFBc0JDLHlJQUEwRDtBQUNwRixJQUFJQywyQkFBMkJELG1KQUErRDtBQUM5RixJQUFJRSxVQUFVRCx5QkFBeUJELG1CQUFPQSxDQUFDLGtEQUFhO0FBQzVELElBQUlHLGFBQWFILG1CQUFPQSxDQUFDLGlHQUEyQjtBQUNwRCxJQUFJSSxXQUFXTCxvQkFBb0IsVUFBVU0sSUFBSSxFQUFFO0lBQy9DLElBQUlBLE1BQU07UUFDTix3REFBd0Q7UUFDeEQsc0RBQXNEO1FBQ3REQyxZQUFZLElBQUk7WUFDWCxJQUFHSCxVQUFVLEVBQUVJLFdBQVcsQ0FBQ0MsS0FBS0MsU0FBUyxDQUFDO2dCQUN2Q0MsT0FBTztnQkFDUEw7WUFDSjtRQUNKLEdBQUc7SUFDUCxPQUFPO1FBQ0hILFFBQVFKLE9BQU8sQ0FBQ2EsS0FBSyxDQUFDLElBQUk7WUFDdEJMLFlBQVksSUFBSTtnQkFDWixpRUFBaUU7Z0JBQ2pFLGdFQUFnRTtnQkFDaEUsK0RBQStEO2dCQUMvRCxNQUFNTSxrQkFBa0JDLEtBQUtDLGFBQWEsQ0FBQ0YsZUFBZTtnQkFDMUQsTUFBTUcsV0FBVyxDQUFDYixRQUFRSixPQUFPLENBQUNpQixRQUFRLEtBQUssVUFBVWIsUUFBUUosT0FBTyxDQUFDaUIsUUFBUSxLQUFLLFNBQVEsS0FBTUgsa0JBQWtCQSxrQkFBa0JWLFFBQVFKLE9BQU8sQ0FBQ2lCLFFBQVE7Z0JBQy9KLElBQUdaLFVBQVUsRUFBRUksV0FBVyxDQUFDQyxLQUFLQyxTQUFTLENBQUM7b0JBQ3ZDQyxPQUFPO29CQUNQTCxNQUFNVTtnQkFDVjtZQUNKLEdBQUc7UUFDUDtJQUNKLENBQUM7SUFDQSxJQUFHWixVQUFVLEVBQUVhLGtCQUFrQixDQUFDLENBQUNOLFFBQVE7UUFDeEMsSUFBSUEsTUFBTU8sSUFBSSxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUc7UUFDcEMsSUFBSTtZQUNBLE1BQU1DLFVBQVVYLEtBQUtZLEtBQUssQ0FBQ1YsTUFBTU8sSUFBSTtZQUNyQywyREFBMkQ7WUFDM0QsOERBQThEO1lBQzlELGFBQWE7WUFDYixJQUFJRSxRQUFRVCxLQUFLLEtBQUssVUFBVVMsUUFBUUUsT0FBTyxJQUFJLENBQUNSLEtBQUtDLGFBQWEsQ0FBQ1EsR0FBRyxFQUFFO2dCQUN4RSxzREFBc0Q7Z0JBQ3RELHFDQUFxQztnQkFDckNDLE1BQU1DLFNBQVNDLElBQUksRUFBRTtvQkFDakJDLGFBQWE7Z0JBQ2pCLEdBQUdDLElBQUksQ0FBQyxDQUFDQyxVQUFVO29CQUNmLElBQUlBLFFBQVFDLE1BQU0sS0FBSyxLQUFLO3dCQUN4QiwwQkFBMEI7d0JBQzFCTCxTQUFTTSxNQUFNO29CQUNuQixPQUFPO3dCQUNILHFCQUFxQjt3QkFDckIsSUFBSWpCLEtBQUtDLGFBQWEsQ0FBQ1QsSUFBSSxLQUFLSCxRQUFRSixPQUFPLENBQUNpQixRQUFRLElBQUliLFFBQVFKLE9BQU8sQ0FBQ2lCLFFBQVEsS0FBSyxXQUFXOzRCQUNoRyw0QkFBNEI7NEJBQzVCLGdDQUFnQzs0QkFDaENTLFNBQVNNLE1BQU07d0JBQ25CLENBQUM7b0JBQ0wsQ0FBQztnQkFDTDtZQUNKLENBQUM7UUFDTCxFQUFFLE9BQU9SLEtBQUs7WUFDVlMsUUFBUUMsS0FBSyxDQUFDLDhDQUE4Q1Y7UUFDaEU7SUFDSjtBQUNKO0FBQ0ExQixrQkFBZSxHQUFHUTtBQUVsQixJQUFJLENBQUMsT0FBT1IsUUFBUUUsT0FBTyxLQUFLLGNBQWUsT0FBT0YsUUFBUUUsT0FBTyxLQUFLLFlBQVlGLFFBQVFFLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT0YsUUFBUUUsT0FBTyxDQUFDbUMsVUFBVSxLQUFLLGFBQWE7SUFDckt2QyxPQUFPQyxjQUFjLENBQUNDLFFBQVFFLE9BQU8sRUFBRSxjQUFjO1FBQUVELE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPd0MsTUFBTSxDQUFDdEMsUUFBUUUsT0FBTyxFQUFFRjtJQUMvQnVDLE9BQU92QyxPQUFPLEdBQUdBLFFBQVFFLE9BQU87QUFDbEMsQ0FBQyxDQUVELG9EQUFvRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzPzg0NWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2FzeW5jX3RvX2dlbmVyYXRvciA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19hc3luY190b19nZW5lcmF0b3IuanNcIikuZGVmYXVsdDtcbnZhciBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanNcIikuZGVmYXVsdDtcbnZhciBfcm91dGVyID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJuZXh0L3JvdXRlclwiKSk7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xudmFyIF9kZWZhdWx0ID0gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbioocGFnZSkge1xuICAgIGlmIChwYWdlKSB7XG4gICAgICAgIC8vIGluIEFNUCB0aGUgcm91dGVyIGlzbid0IGluaXRpYWxpemVkIG9uIHRoZSBjbGllbnQgYW5kXG4gICAgICAgIC8vIGNsaWVudC10cmFuc2l0aW9ucyBkb24ndCBvY2N1ciBzbyBwaW5nIGluaXRpYWwgcGFnZVxuICAgICAgICBzZXRJbnRlcnZhbCgoKT0+e1xuICAgICAgICAgICAgKDAsIF93ZWJzb2NrZXQpLnNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBldmVudDogJ3BpbmcnLFxuICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSwgMjUwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX3JvdXRlci5kZWZhdWx0LnJlYWR5KCgpPT57XG4gICAgICAgICAgICBzZXRJbnRlcnZhbCgoKT0+e1xuICAgICAgICAgICAgICAgIC8vIHdoZW4gbm90Rm91bmQ6IHRydWUgaXMgcmV0dXJuZWQgd2Ugc2hvdWxkIHVzZSB0aGUgbm90Rm91bmRQYWdlXG4gICAgICAgICAgICAgICAgLy8gYXMgdGhlIFJvdXRlci5wYXRobmFtZSB3aWxsIHBvaW50IHRvIHRoZSA0MDQgcGFnZSBidXQgd2Ugd2FudFxuICAgICAgICAgICAgICAgIC8vIHRvIHBpbmcgdGhlIHNvdXJjZSBwYWdlIHRoYXQgcmV0dXJuZWQgbm90Rm91bmQ6IHRydWUgaW5zdGVhZFxuICAgICAgICAgICAgICAgIGNvbnN0IG5vdEZvdW5kU3JjUGFnZSA9IHNlbGYuX19ORVhUX0RBVEFfXy5ub3RGb3VuZFNyY1BhZ2U7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aG5hbWUgPSAoX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lID09PSAnLzQwNCcgfHwgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lID09PSAnL19lcnJvcicpICYmIG5vdEZvdW5kU3JjUGFnZSA/IG5vdEZvdW5kU3JjUGFnZSA6IF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICBldmVudDogJ3BpbmcnLFxuICAgICAgICAgICAgICAgICAgICBwYWdlOiBwYXRobmFtZVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0sIDI1MDApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgKDAsIF93ZWJzb2NrZXQpLmFkZE1lc3NhZ2VMaXN0ZW5lcigoZXZlbnQpPT57XG4gICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ3snKSA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgLy8gZG9uJ3QgYXR0ZW1wdCBmZXRjaGluZyB0aGUgcGFnZSBpZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmdcbiAgICAgICAgICAgIC8vIHRoZSBkZXYgb3ZlcmxheSBhcyB0aGlzIGNhbiBjYXVzZSB0aGUgZXJyb3IgdG8gYmUgdHJpZ2dlcmVkXG4gICAgICAgICAgICAvLyByZXBlYXRlZGx5XG4gICAgICAgICAgICBpZiAocGF5bG9hZC5ldmVudCA9PT0gJ3BvbmcnICYmIHBheWxvYWQuaW52YWxpZCAmJiAhc2VsZi5fX05FWFRfREFUQV9fLmVycikge1xuICAgICAgICAgICAgICAgIC8vIFBheWxvYWQgY2FuIGJlIGludmFsaWQgZXZlbiBpZiB0aGUgcGFnZSBkb2VzIGV4aXN0LlxuICAgICAgICAgICAgICAgIC8vIFNvLCB3ZSBjaGVjayBpZiBpdCBjYW4gYmUgY3JlYXRlZC5cbiAgICAgICAgICAgICAgICBmZXRjaChsb2NhdGlvbi5ocmVmLCB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nXG4gICAgICAgICAgICAgICAgfSkudGhlbigocGFnZVJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VSZXMuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZXhpc3RzIG5vdywgcmVsb2FkXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhZ2UgZG9lc24ndCBleGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0RBVEFfXy5wYWdlID09PSBfcm91dGVyLmRlZmF1bHQucGF0aG5hbWUgJiYgX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgc3RpbGwgb24gdGhlIHBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVsb2FkIHRvIHNob3cgNDA0IGVycm9yIHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ29uLWRlbWFuZC1lbnRyaWVzIGZhaWxlZCB0byBwYXJzZSByZXNwb25zZScsIGVycik7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiX2FzeW5jX3RvX2dlbmVyYXRvciIsInJlcXVpcmUiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJfcm91dGVyIiwiX3dlYnNvY2tldCIsIl9kZWZhdWx0IiwicGFnZSIsInNldEludGVydmFsIiwic2VuZE1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJyZWFkeSIsIm5vdEZvdW5kU3JjUGFnZSIsInNlbGYiLCJfX05FWFRfREFUQV9fIiwicGF0aG5hbWUiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJkYXRhIiwiaW5kZXhPZiIsInBheWxvYWQiLCJwYXJzZSIsImludmFsaWQiLCJlcnIiLCJmZXRjaCIsImxvY2F0aW9uIiwiaHJlZiIsImNyZWRlbnRpYWxzIiwidGhlbiIsInBhZ2VSZXMiLCJzdGF0dXMiLCJyZWxvYWQiLCJjb25zb2xlIiwiZXJyb3IiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-client.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js ***! \****************************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _hotDevClient = _interop_require_default(__webpack_require__(/*! ./error-overlay/hot-dev-client */ \"./node_modules/next/dist/client/dev/error-overlay/hot-dev-client.js\"));\nvar _websocket = __webpack_require__(/*! ./error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\nvar _default = ()=>{\n const devClient = (0, _hotDevClient).default();\n devClient.subscribeToHmrEvent((obj)=>{\n if (obj.action === \"reloadPage\") {\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-reload-page\",\n clientId: window.__nextDevClientId\n }));\n return window.location.reload();\n }\n if (obj.action === \"removedPage\") {\n const [page] = obj.data;\n if (page === window.next.router.pathname) {\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-removed-page\",\n clientId: window.__nextDevClientId,\n page\n }));\n return window.location.reload();\n }\n return;\n }\n if (obj.action === \"addedPage\") {\n const [page1] = obj.data;\n if (page1 === window.next.router.pathname && typeof window.next.router.components[page1] === \"undefined\") {\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-added-page\",\n clientId: window.__nextDevClientId,\n page: page1\n }));\n return window.location.reload();\n }\n return;\n }\n throw new Error(\"Unexpected action \" + obj.action);\n });\n return devClient;\n};\nexports[\"default\"] = _default;\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-hot-middleware-client.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsa0JBQWUsR0FBRyxLQUFLO0FBQ3ZCLElBQUlHLDJCQUEyQkMsbUpBQStEO0FBQzlGLElBQUlDLGdCQUFnQkYseUJBQXlCQyxtQkFBT0EsQ0FBQywyR0FBZ0M7QUFDckYsSUFBSUUsYUFBYUYsbUJBQU9BLENBQUMsaUdBQTJCO0FBQ3BELElBQUlHLFdBQVcsSUFBSTtJQUNmLE1BQU1DLFlBQVksQ0FBQyxHQUFHSCxhQUFhLEVBQUVILE9BQU87SUFDNUNNLFVBQVVDLG1CQUFtQixDQUFDLENBQUNDLE1BQU07UUFDakMsSUFBSUEsSUFBSUMsTUFBTSxLQUFLLGNBQWM7WUFDNUIsSUFBR0wsVUFBVSxFQUFFTSxXQUFXLENBQUNDLEtBQUtDLFNBQVMsQ0FBQztnQkFDdkNDLE9BQU87Z0JBQ1BDLFVBQVVDLE9BQU9DLGlCQUFpQjtZQUN0QztZQUNBLE9BQU9ELE9BQU9FLFFBQVEsQ0FBQ0MsTUFBTTtRQUNqQyxDQUFDO1FBQ0QsSUFBSVYsSUFBSUMsTUFBTSxLQUFLLGVBQWU7WUFDOUIsTUFBTSxDQUFDVSxLQUFLLEdBQUdYLElBQUlZLElBQUk7WUFDdkIsSUFBSUQsU0FBU0osT0FBT00sSUFBSSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsRUFBRTtnQkFDckMsSUFBR25CLFVBQVUsRUFBRU0sV0FBVyxDQUFDQyxLQUFLQyxTQUFTLENBQUM7b0JBQ3ZDQyxPQUFPO29CQUNQQyxVQUFVQyxPQUFPQyxpQkFBaUI7b0JBQ2xDRztnQkFDSjtnQkFDQSxPQUFPSixPQUFPRSxRQUFRLENBQUNDLE1BQU07WUFDakMsQ0FBQztZQUNEO1FBQ0osQ0FBQztRQUNELElBQUlWLElBQUlDLE1BQU0sS0FBSyxhQUFhO1lBQzVCLE1BQU0sQ0FBQ1UsTUFBSyxHQUFHWCxJQUFJWSxJQUFJO1lBQ3ZCLElBQUlELFVBQVNKLE9BQU9NLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLElBQUksT0FBT1IsT0FBT00sSUFBSSxDQUFDQyxNQUFNLENBQUNFLFVBQVUsQ0FBQ0wsTUFBSyxLQUFLLGFBQWE7Z0JBQ25HLElBQUdmLFVBQVUsRUFBRU0sV0FBVyxDQUFDQyxLQUFLQyxTQUFTLENBQUM7b0JBQ3ZDQyxPQUFPO29CQUNQQyxVQUFVQyxPQUFPQyxpQkFBaUI7b0JBQ2xDRyxNQUFBQTtnQkFDSjtnQkFDQSxPQUFPSixPQUFPRSxRQUFRLENBQUNDLE1BQU07WUFDakMsQ0FBQztZQUNEO1FBQ0osQ0FBQztRQUNELE1BQU0sSUFBSU8sTUFBTSx1QkFBdUJqQixJQUFJQyxNQUFNLEVBQUU7SUFDdkQ7SUFDQSxPQUFPSDtBQUNYO0FBQ0FSLGtCQUFlLEdBQUdPO0FBRWxCLElBQUksQ0FBQyxPQUFPUCxRQUFRRSxPQUFPLEtBQUssY0FBZSxPQUFPRixRQUFRRSxPQUFPLEtBQUssWUFBWUYsUUFBUUUsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPRixRQUFRRSxPQUFPLENBQUMwQixVQUFVLEtBQUssYUFBYTtJQUNySzlCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUUUsT0FBTyxFQUFFLGNBQWM7UUFBRUQsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU8rQixNQUFNLENBQUM3QixRQUFRRSxPQUFPLEVBQUVGO0lBQy9COEIsT0FBTzlCLE9BQU8sR0FBR0EsUUFBUUUsT0FBTztBQUNsQyxDQUFDLENBRUQseURBQXlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi93ZWJwYWNrLWhvdC1taWRkbGV3YXJlLWNsaWVudC5qcz85YWQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9ob3REZXZDbGllbnQgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudFwiKSk7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xudmFyIF9kZWZhdWx0ID0gKCk9PntcbiAgICBjb25zdCBkZXZDbGllbnQgPSAoMCwgX2hvdERldkNsaWVudCkuZGVmYXVsdCgpO1xuICAgIGRldkNsaWVudC5zdWJzY3JpYmVUb0htckV2ZW50KChvYmopPT57XG4gICAgICAgIGlmIChvYmouYWN0aW9uID09PSAncmVsb2FkUGFnZScpIHtcbiAgICAgICAgICAgICgwLCBfd2Vic29ja2V0KS5zZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtcmVsb2FkLXBhZ2UnLFxuICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5hY3Rpb24gPT09ICdyZW1vdmVkUGFnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IFtwYWdlXSA9IG9iai5kYXRhO1xuICAgICAgICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSkge1xuICAgICAgICAgICAgICAgICgwLCBfd2Vic29ja2V0KS5zZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXJlbW92ZWQtcGFnZScsXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ2FkZGVkUGFnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IFtwYWdlXSA9IG9iai5kYXRhO1xuICAgICAgICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSAmJiB0eXBlb2Ygd2luZG93Lm5leHQucm91dGVyLmNvbXBvbmVudHNbcGFnZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgKDAsIF93ZWJzb2NrZXQpLnNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtYWRkZWQtcGFnZScsXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgYWN0aW9uICcgKyBvYmouYWN0aW9uKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGV2Q2xpZW50O1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWJwYWNrLWhvdC1taWRkbGV3YXJlLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9ob3REZXZDbGllbnQiLCJfd2Vic29ja2V0IiwiX2RlZmF1bHQiLCJkZXZDbGllbnQiLCJzdWJzY3JpYmVUb0htckV2ZW50Iiwib2JqIiwiYWN0aW9uIiwic2VuZE1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJjbGllbnRJZCIsIndpbmRvdyIsIl9fbmV4dERldkNsaWVudElkIiwibG9jYXRpb24iLCJyZWxvYWQiLCJwYWdlIiwiZGF0YSIsIm5leHQiLCJyb3V0ZXIiLCJwYXRobmFtZSIsImNvbXBvbmVudHMiLCJFcnJvciIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/has-base-path.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/client/has-base-path.js ***! \********************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.hasBasePath = hasBasePath;\nvar _pathHasPrefix = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst basePath = false || \"\";\nfunction hasBasePath(path) {\n return (0, _pathHasPrefix).pathHasPrefix(path, basePath);\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-base-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oYXMtYmFzZS1wYXRoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELG1CQUFtQixHQUFHRTtBQUN0QixJQUFJQyxpQkFBaUJDLG1CQUFPQSxDQUFDLHVIQUE0QztBQUN6RSxNQUFNQyxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELFNBQVNKLFlBQVlPLElBQUksRUFBRTtJQUN2QixPQUFPLENBQUMsR0FBR04sY0FBYyxFQUFFTyxhQUFhLENBQUNELE1BQU1KO0FBQ25EO0FBRUEsSUFBSSxDQUFDLE9BQU9MLFFBQVFXLE9BQU8sS0FBSyxjQUFlLE9BQU9YLFFBQVFXLE9BQU8sS0FBSyxZQUFZWCxRQUFRVyxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9YLFFBQVFXLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktkLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUVcsT0FBTyxFQUFFLGNBQWM7UUFBRVYsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9lLE1BQU0sQ0FBQ2IsUUFBUVcsT0FBTyxFQUFFWDtJQUMvQmMsT0FBT2QsT0FBTyxHQUFHQSxRQUFRVyxPQUFPO0FBQ2xDLENBQUMsQ0FFRCx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvaGFzLWJhc2UtcGF0aC5qcz81YTQ5Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5oYXNCYXNlUGF0aCA9IGhhc0Jhc2VQYXRoO1xudmFyIF9wYXRoSGFzUHJlZml4ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeFwiKTtcbmNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJztcbmZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGgpIHtcbiAgICByZXR1cm4gKDAsIF9wYXRoSGFzUHJlZml4KS5wYXRoSGFzUHJlZml4KHBhdGgsIGJhc2VQYXRoKTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFzLWJhc2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJoYXNCYXNlUGF0aCIsIl9wYXRoSGFzUHJlZml4IiwicmVxdWlyZSIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicGF0aEhhc1ByZWZpeCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/has-base-path.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/head-manager.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/client/head-manager.js ***! \*******************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = initHeadManager;\nexports.isEqualNode = isEqualNode;\nexports.DOMAttributeNames = void 0;\nfunction initHeadManager() {\n return {\n mountedInstances: new Set(),\n updateHead: (head)=>{\n const tags = {};\n head.forEach((h)=>{\n if (// it won't be inlined. In this case revert to the original behavior\n h.type === \"link\" && h.props[\"data-optimized-fonts\"]) {\n if (document.querySelector('style[data-href=\"'.concat(h.props[\"data-href\"], '\"]'))) {\n return;\n } else {\n h.props.href = h.props[\"data-href\"];\n h.props[\"data-href\"] = undefined;\n }\n }\n const components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n const titleComponent = tags.title ? tags.title[0] : null;\n let title = \"\";\n if (titleComponent) {\n const { children } = titleComponent.props;\n title = typeof children === \"string\" ? children : Array.isArray(children) ? children.join(\"\") : \"\";\n }\n if (title !== document.title) document.title = title;\n [\n \"meta\",\n \"base\",\n \"link\",\n \"style\",\n \"script\"\n ].forEach((type)=>{\n updateElements(type, tags[type] || []);\n });\n }\n };\n}\nconst DOMAttributeNames = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\",\n noModule: \"noModule\"\n};\nexports.DOMAttributeNames = DOMAttributeNames;\nfunction reactElementToDOM(param) {\n let { type , props } = param;\n const el = document.createElement(type);\n for(const p in props){\n if (!props.hasOwnProperty(p)) continue;\n if (p === \"children\" || p === \"dangerouslySetInnerHTML\") continue;\n // we don't render undefined props to the DOM\n if (props[p] === undefined) continue;\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n if (type === \"script\" && (attr === \"async\" || attr === \"defer\" || attr === \"noModule\")) {\n el[attr] = !!props[p];\n } else {\n el.setAttribute(attr, props[p]);\n }\n }\n const { children , dangerouslySetInnerHTML } = props;\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || \"\";\n } else if (children) {\n el.textContent = typeof children === \"string\" ? children : Array.isArray(children) ? children.join(\"\") : \"\";\n }\n return el;\n}\nfunction isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(\"nonce\");\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(\"nonce\")) {\n const cloneTag = newTag.cloneNode(true);\n cloneTag.setAttribute(\"nonce\", \"\");\n cloneTag.nonce = nonce;\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);\n }\n }\n return oldTag.isEqualNode(newTag);\n}\nfunction updateElements(type, components) {\n const headEl = document.getElementsByTagName(\"head\")[0];\n const headCountEl = headEl.querySelector(\"meta[name=next-head-count]\");\n if (true) {\n if (!headCountEl) {\n console.error(\"Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing\");\n return;\n }\n }\n const headCount = Number(headCountEl.content);\n const oldTags = [];\n for(let i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = (j == null ? void 0 : j.previousElementSibling) || null){\n var ref;\n if ((j == null ? void 0 : (ref = j.tagName) == null ? void 0 : ref.toLowerCase()) === type) {\n oldTags.push(j);\n }\n }\n const newTags = components.map(reactElementToDOM).filter((newTag)=>{\n for(let k = 0, len = oldTags.length; k < len; k++){\n const oldTag = oldTags[k];\n if (isEqualNode(oldTag, newTag)) {\n oldTags.splice(k, 1);\n return false;\n }\n }\n return true;\n });\n oldTags.forEach((t)=>{\n var ref;\n return (ref = t.parentNode) == null ? void 0 : ref.removeChild(t);\n });\n newTags.forEach((t)=>headEl.insertBefore(t, headCountEl));\n headCountEl.content = (headCount - oldTags.length + newTags.length).toString();\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=head-manager.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oZWFkLW1hbmFnZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsa0JBQWUsR0FBR0c7QUFDbEJILG1CQUFtQixHQUFHSTtBQUN0QkoseUJBQXlCLEdBQUcsS0FBSztBQUNqQyxTQUFTRyxrQkFBa0I7SUFDdkIsT0FBTztRQUNIRyxrQkFBa0IsSUFBSUM7UUFDdEJDLFlBQVksQ0FBQ0MsT0FBTztZQUNoQixNQUFNQyxPQUFPLENBQUM7WUFDZEQsS0FBS0UsT0FBTyxDQUFDLENBQUNDLElBQUk7Z0JBQ2QsSUFDQSxvRUFBb0U7Z0JBQ3BFQSxFQUFFQyxJQUFJLEtBQUssVUFBVUQsRUFBRUUsS0FBSyxDQUFDLHVCQUF1QixFQUFFO29CQUNsRCxJQUFJQyxTQUFTQyxhQUFhLENBQUMsb0JBQXlDLE9BQXJCSixFQUFFRSxLQUFLLENBQUMsWUFBWSxFQUFDLFFBQU07d0JBQ3RFO29CQUNKLE9BQU87d0JBQ0hGLEVBQUVFLEtBQUssQ0FBQ0csSUFBSSxHQUFHTCxFQUFFRSxLQUFLLENBQUMsWUFBWTt3QkFDbkNGLEVBQUVFLEtBQUssQ0FBQyxZQUFZLEdBQUdJO29CQUMzQixDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsTUFBTUMsYUFBYVQsSUFBSSxDQUFDRSxFQUFFQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNyQ00sV0FBV0MsSUFBSSxDQUFDUjtnQkFDaEJGLElBQUksQ0FBQ0UsRUFBRUMsSUFBSSxDQUFDLEdBQUdNO1lBQ25CO1lBQ0EsTUFBTUUsaUJBQWlCWCxLQUFLWSxLQUFLLEdBQUdaLEtBQUtZLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSTtZQUN4RCxJQUFJQSxRQUFRO1lBQ1osSUFBSUQsZ0JBQWdCO2dCQUNoQixNQUFNLEVBQUVFLFNBQVEsRUFBRyxHQUFHRixlQUFlUCxLQUFLO2dCQUMxQ1EsUUFBUSxPQUFPQyxh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LENBQUMsT0FBTzlFLFFBQVFFLE9BQU8sS0FBSyxjQUFlLE9BQU9GLFFBQVFFLE9BQU8sS0FBSyxZQUFZRixRQUFRRSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9GLFFBQVFFLE9BQU8sQ0FBQzZFLFVBQVUsS0FBSyxhQUFhO0lBQ3JLakYsT0FBT0MsY0FBYyxDQUFDQyxRQUFRRSxPQUFPLEVBQUUsY0FBYztRQUFFRCxPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT2tGLE1BQU0sQ0FBQ2hGLFFBQVFFLE9BQU8sRUFBRUY7SUFDL0JpRixPQUFPakYsT0FBTyxHQUFHQSxRQUFRRSxPQUFPO0FBQ2xDLENBQUMsQ0FFRCx3Q0FBd0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvaGVhZC1tYW5hZ2VyLmpzP2NhNGEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpbml0SGVhZE1hbmFnZXI7XG5leHBvcnRzLmlzRXF1YWxOb2RlID0gaXNFcXVhbE5vZGU7XG5leHBvcnRzLkRPTUF0dHJpYnV0ZU5hbWVzID0gdm9pZCAwO1xuZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG1vdW50ZWRJbnN0YW5jZXM6IG5ldyBTZXQoKSxcbiAgICAgICAgdXBkYXRlSGVhZDogKGhlYWQpPT57XG4gICAgICAgICAgICBjb25zdCB0YWdzID0ge307XG4gICAgICAgICAgICBoZWFkLmZvckVhY2goKGgpPT57XG4gICAgICAgICAgICAgICAgaWYgKC8vIElmIHRoZSBmb250IHRhZyBpcyBsb2FkZWQgb25seSBvbiBjbGllbnQgbmF2aWdhdGlvblxuICAgICAgICAgICAgICAgIC8vIGl0IHdvbid0IGJlIGlubGluZWQuIEluIHRoaXMgY2FzZSByZXZlcnQgdG8gdGhlIG9yaWdpbmFsIGJlaGF2aW9yXG4gICAgICAgICAgICAgICAgaC50eXBlID09PSAnbGluaycgJiYgaC5wcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc3R5bGVbZGF0YS1ocmVmPVwiJHtoLnByb3BzWydkYXRhLWhyZWYnXX1cIl1gKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaC5wcm9wcy5ocmVmID0gaC5wcm9wc1snZGF0YS1ocmVmJ107XG4gICAgICAgICAgICAgICAgICAgICAgICBoLnByb3BzWydkYXRhLWhyZWYnXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdGFnc1toLnR5cGVdIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaChoKTtcbiAgICAgICAgICAgICAgICB0YWdzW2gudHlwZV0gPSBjb21wb25lbnRzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IHRhZ3MudGl0bGUgPyB0YWdzLnRpdGxlWzBdIDogbnVsbDtcbiAgICAgICAgICAgIGxldCB0aXRsZSA9ICcnO1xuICAgICAgICAgICAgaWYgKHRpdGxlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjaGlsZHJlbiAgfSA9IHRpdGxlQ29tcG9uZW50LnByb3BzO1xuICAgICAgICAgICAgICAgIHRpdGxlID0gdHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyA/IGNoaWxkcmVuIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbi5qb2luKCcnKSA6ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRpdGxlICE9PSBkb2N1bWVudC50aXRsZSkgZG9jdW1lbnQudGl0bGUgPSB0aXRsZTtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAnbWV0YScsXG4gICAgICAgICAgICAgICAgJ2Jhc2UnLFxuICAgICAgICAgICAgICAgICdsaW5rJyxcbiAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgICdzY3JpcHQnXG4gICAgICAgICAgICBdLmZvckVhY2goKHR5cGUpPT57XG4gICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudHModHlwZSwgdGFnc1t0eXBlXSB8fCBbXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59XG5jb25zdCBET01BdHRyaWJ1dGVOYW1lcyA9IHtcbiAgICBhY2NlcHRDaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnLFxuICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICBodG1sRm9yOiAnZm9yJyxcbiAgICBodHRwRXF1aXY6ICdodHRwLWVxdWl2JyxcbiAgICBub01vZHVsZTogJ25vTW9kdWxlJ1xufTtcbmV4cG9ydHMuRE9NQXR0cmlidXRlTmFtZXMgPSBET01BdHRyaWJ1dGVOYW1lcztcbmZ1bmN0aW9uIHJlYWN0RWxlbWVudFRvRE9NKHsgdHlwZSAsIHByb3BzICB9KSB7XG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpO1xuICAgIGZvcihjb25zdCBwIGluIHByb3BzKXtcbiAgICAgICAgaWYgKCFwcm9wcy5oYXNPd25Qcm9wZXJ0eShwKSkgY29udGludWU7XG4gICAgICAgIGlmIChwID09PSAnY2hpbGRyZW4nIHx8IHAgPT09ICdkYW5nZXJvdXNseVNldElubmVySFRNTCcpIGNvbnRpbnVlO1xuICAgICAgICAvLyB3ZSBkb24ndCByZW5kZXIgdW5kZWZpbmVkIHByb3BzIHRvIHRoZSBET01cbiAgICAgICAgaWYgKHByb3BzW3BdID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBhdHRyID0gRE9NQXR0cmlidXRlTmFtZXNbcF0gfHwgcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAodHlwZSA9PT0gJ3NjcmlwdCcgJiYgKGF0dHIgPT09ICdhc3luYycgfHwgYXR0ciA9PT0gJ2RlZmVyJyB8fCBhdHRyID09PSAnbm9Nb2R1bGUnKSkge1xuICAgICAgICAgICAgZWxbYXR0cl0gPSAhIXByb3BzW3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsIHByb3BzW3BdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB7IGNoaWxkcmVuICwgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIH0gPSBwcm9wcztcbiAgICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpIHtcbiAgICAgICAgZWwuaW5uZXJIVE1MID0gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIHx8ICcnO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgZWwudGV4dENvbnRlbnQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnID8gY2hpbGRyZW4gOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuLmpvaW4oJycpIDogJyc7XG4gICAgfVxuICAgIHJldHVybiBlbDtcbn1cbmZ1bmN0aW9uIGlzRXF1YWxOb2RlKG9sZFRhZywgbmV3VGFnKSB7XG4gICAgaWYgKG9sZFRhZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIG5ld1RhZyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IG5vbmNlID0gbmV3VGFnLmdldEF0dHJpYnV0ZSgnbm9uY2UnKTtcbiAgICAgICAgLy8gT25seSBzdHJpcCB0aGUgbm9uY2UgaWYgYG9sZFRhZ2AgaGFzIGhhZCBpdCBzdHJpcHBlZC4gQW4gZWxlbWVudCdzIG5vbmNlIGF0dHJpYnV0ZSB3aWxsIG5vdFxuICAgICAgICAvLyBiZSBzdHJpcHBlZCBpZiB0aGVyZSBpcyBubyBjb250ZW50IHNlY3VyaXR5IHBvbGljeSByZXNwb25zZSBoZWFkZXIgdGhhdCBpbmNsdWRlcyBhIG5vbmNlLlxuICAgICAgICBpZiAobm9uY2UgJiYgIW9sZFRhZy5nZXRBdHRyaWJ1dGUoJ25vbmNlJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsb25lVGFnID0gbmV3VGFnLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgICAgICAgIGNsb25lVGFnLnNldEF0dHJpYnV0ZSgnbm9uY2UnLCAnJyk7XG4gICAgICAgICAgICBjbG9uZVRhZy5ub25jZSA9IG5vbmNlO1xuICAgICAgICAgICAgcmV0dXJuIG5vbmNlID09PSBvbGRUYWcubm9uY2UgJiYgb2xkVGFnLmlzRXF1YWxOb2RlKGNsb25lVGFnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2xkVGFnLmlzRXF1YWxOb2RlKG5ld1RhZyk7XG59XG5mdW5jdGlvbiB1cGRhdGVFbGVtZW50cyh0eXBlLCBjb21wb25lbnRzKSB7XG4gICAgY29uc3QgaGVhZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICBjb25zdCBoZWFkQ291bnRFbCA9IGhlYWRFbC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9bmV4dC1oZWFkLWNvdW50XScpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmICghaGVhZENvdW50RWwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dhcm5pbmc6IG5leHQtaGVhZC1jb3VudCBpcyBtaXNzaW5nLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWhlYWQtY291bnQtbWlzc2luZycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGhlYWRDb3VudCA9IE51bWJlcihoZWFkQ291bnRFbC5jb250ZW50KTtcbiAgICBjb25zdCBvbGRUYWdzID0gW107XG4gICAgZm9yKGxldCBpID0gMCwgaiA9IGhlYWRDb3VudEVsLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7IGkgPCBoZWFkQ291bnQ7IGkrKywgaiA9IChqID09IG51bGwgPyB2b2lkIDAgOiBqLnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHx8IG51bGwpe1xuICAgICAgICB2YXIgcmVmO1xuICAgICAgICBpZiAoKGogPT0gbnVsbCA/IHZvaWQgMCA6IChyZWYgPSBqLnRhZ05hbWUpID09IG51bGwgPyB2b2lkIDAgOiByZWYudG9Mb3dlckNhc2UoKSkgPT09IHR5cGUpIHtcbiAgICAgICAgICAgIG9sZFRhZ3MucHVzaChqKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBuZXdUYWdzID0gY29tcG9uZW50cy5tYXAocmVhY3RFbGVtZW50VG9ET00pLmZpbHRlcigobmV3VGFnKT0+e1xuICAgICAgICBmb3IobGV0IGsgPSAwLCBsZW4gPSBvbGRUYWdzLmxlbmd0aDsgayA8IGxlbjsgaysrKXtcbiAgICAgICAgICAgIGNvbnN0IG9sZFRhZyA9IG9sZFRhZ3Nba107XG4gICAgICAgICAgICBpZiAoaXNFcXVhbE5vZGUob2xkVGFnLCBuZXdUYWcpKSB7XG4gICAgICAgICAgICAgICAgb2xkVGFncy5zcGxpY2UoaywgMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgIG9sZFRhZ3MuZm9yRWFjaCgodCk9PntcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgcmV0dXJuIChyZWYgPSB0LnBhcmVudE5vZGUpID09IG51bGwgPyB2b2lkIDAgOiByZWYucmVtb3ZlQ2hpbGQodCk7XG4gICAgfSk7XG4gICAgbmV3VGFncy5mb3JFYWNoKCh0KT0+aGVhZEVsLmluc2VydEJlZm9yZSh0LCBoZWFkQ291bnRFbCkpO1xuICAgIGhlYWRDb3VudEVsLmNvbnRlbnQgPSAoaGVhZENvdW50IC0gb2xkVGFncy5sZW5ndGggKyBuZXdUYWdzLmxlbmd0aCkudG9TdHJpbmcoKTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZC1tYW5hZ2VyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImRlZmF1bHQiLCJpbml0SGVhZE1hbmFnZXIiLCJpc0VxdWFsTm9kZSIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwibW91bnRlZEluc3RhbmNlcyIsIlNldCIsInVwZGF0ZUhlYWQiLCJoZWFkIiwidGFncyIsImZvckVhY2giLCJoIiwidHlwZSIsInByb3BzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiaHJlZiIsInVuZGVmaW5lZCIsImNvbXBvbmVudHMiLCJwdXNoIiwidGl0bGVDb21wb25lbnQiLCJ0aXRsZSIsImNoaWxkcmVuIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsInVwZGF0ZUVsZW1lbnRzIiwiYWNjZXB0Q2hhcnNldCIsImNsYXNzTmFtZSIsImh0bWxGb3IiLCJodHRwRXF1aXYiLCJub01vZHVsZSIsInJlYWN0RWxlbWVudFRvRE9NIiwiZWwiLCJjcmVhdGVFbGVtZW50IiwicCIsImhhc093blByb3BlcnR5IiwiYXR0ciIsInRvTG93ZXJDYXNlIiwic2V0QXR0cmlidXRlIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJpbm5lckhUTUwiLCJfX2h0bWwiLCJ0ZXh0Q29udGVudCIsIm9sZFRhZyIsIm5ld1RhZyIsIkhUTUxFbGVtZW50Iiwibm9uY2UiLCJnZXRBdHRyaWJ1dGUiLCJjbG9uZVRhZyIsImNsb25lTm9kZSIsImhlYWRFbCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaGVhZENvdW50RWwiLCJwcm9jZXNzIiwiY29uc29sZSIsImVycm9yIiwiaGVhZENvdW50IiwiTnVtYmVyIiwiY29udGVudCIsIm9sZFRhZ3MiLCJpIiwiaiIsInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJyZWYiLCJ0YWdOYW1lIiwibmV3VGFncyIsIm1hcCIsImZpbHRlciIsImsiLCJsZW4iLCJsZW5ndGgiLCJzcGxpY2UiLCJ0IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwiaW5zZXJ0QmVmb3JlIiwidG9TdHJpbmciLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/head-manager.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/index.js": /*!************************************************!*\ !*** ./node_modules/next/dist/client/index.js ***! \************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _interopRequireWildcard = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_wildcard.js */ \"./node_modules/@swc/helpers/lib/_interop_require_wildcard.js\")[\"default\"]);\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$();\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.initialize = initialize;\nexports.hydrate = hydrate;\nexports.emitter = exports.router = exports.version = void 0;\nvar _async_to_generator = (__webpack_require__(/*! @swc/helpers/lib/_async_to_generator.js */ \"./node_modules/@swc/helpers/lib/_async_to_generator.js\")[\"default\"]);\nvar _extends = (__webpack_require__(/*! @swc/helpers/lib/_extends.js */ \"./node_modules/@swc/helpers/lib/_extends.js\")[\"default\"]);\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _interop_require_wildcard = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_wildcard.js */ \"./node_modules/@swc/helpers/lib/_interop_require_wildcard.js\")[\"default\"]);\n__webpack_require__(/*! ../build/polyfills/polyfill-module */ \"./node_modules/next/dist/build/polyfills/polyfill-module.js\");\nvar _react = _interop_require_default(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar _client = _interop_require_default(__webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\"));\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\nvar _mitt = _interop_require_default(__webpack_require__(/*! ../shared/lib/mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\nvar _isDynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nvar _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nvar _runtimeConfig = __webpack_require__(/*! ../shared/lib/runtime-config */ \"./node_modules/next/dist/shared/lib/runtime-config.js\");\nvar _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nvar _portal = __webpack_require__(/*! ./portal */ \"./node_modules/next/dist/client/portal/index.js\");\nvar _headManager = _interop_require_default(__webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\"));\nvar _pageLoader = _interop_require_default(__webpack_require__(/*! ./page-loader */ \"./node_modules/next/dist/client/page-loader.js\"));\nvar _performanceRelayer = _interop_require_default(__webpack_require__(/*! ./performance-relayer */ \"./node_modules/next/dist/client/performance-relayer.js\"));\nvar _routeAnnouncer = __webpack_require__(/*! ./route-announcer */ \"./node_modules/next/dist/client/route-announcer.js\");\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\nvar _isError = __webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\");\nvar _imageConfigContext = __webpack_require__(/*! ../shared/lib/image-config-context */ \"./node_modules/next/dist/shared/lib/image-config-context.js\");\nvar _removeBasePath = __webpack_require__(/*! ./remove-base-path */ \"./node_modules/next/dist/client/remove-base-path.js\");\nvar _hasBasePath = __webpack_require__(/*! ./has-base-path */ \"./node_modules/next/dist/client/has-base-path.js\");\nvar _appRouterContext = __webpack_require__(/*! ../shared/lib/app-router-context */ \"./node_modules/next/dist/shared/lib/app-router-context.js\");\nvar _adapters = __webpack_require__(/*! ../shared/lib/router/adapters */ \"./node_modules/next/dist/shared/lib/router/adapters.js\");\nvar _hooksClientContext = __webpack_require__(/*! ../shared/lib/hooks-client-context */ \"./node_modules/next/dist/shared/lib/hooks-client-context.js\");\nvar _onRecoverableError = _interop_require_default(__webpack_require__(/*! ./on-recoverable-error */ \"./node_modules/next/dist/client/on-recoverable-error.js\"));\nconst version = \"13.1.1\";\nexports.version = version;\nlet router;\nexports.router = router;\nconst emitter = (0, _mitt).default();\nexports.emitter = emitter;\nconst looseToArray = (input)=>[].slice.call(input);\nlet initialData;\nlet defaultLocale = undefined;\nlet asPath;\nlet pageLoader;\nlet appElement;\nlet headManager;\nlet initialMatchesMiddleware = false;\nlet lastAppProps;\nlet lastRenderReject;\nlet webpackHMR;\nlet CachedApp, onPerfEntry;\nlet CachedComponent;\nself.__next_require__ = __webpack_require__;\nclass Container extends _react.default.Component {\n componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n componentDidMount() {\n this.scrollToHash();\n // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n // - if middleware matches the current page (may have rewrite params)\n // - if rewrites in next.config.js match (may have rewrite params)\n if (router.isSsr && (initialData.isFallback || initialData.nextExport && ((0, _isDynamic).isDynamicRoute(router.pathname) || location.search || false || initialMatchesMiddleware) || initialData.props && initialData.props.__N_SSG && (location.search || false || initialMatchesMiddleware))) {\n // update query on mount for exported pages\n router.replace(router.pathname + \"?\" + String((0, _querystring).assign((0, _querystring).urlQueryToSearchParams(router.query), new URLSearchParams(location.search))), asPath, {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !initialData.isFallback && !initialMatchesMiddleware\n }).catch((err)=>{\n if (!err.cancelled) throw err;\n });\n }\n }\n componentDidUpdate() {\n this.scrollToHash();\n }\n scrollToHash() {\n let { hash } = location;\n hash = hash && hash.substring(1);\n if (!hash) return;\n const el = document.getElementById(hash);\n if (!el) return;\n // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n setTimeout(()=>el.scrollIntoView(), 0);\n }\n render() {\n if (false) {} else {\n const { ReactDevOverlay } = __webpack_require__(/*! next/dist/compiled/@next/react-dev-overlay/dist/client */ \"./node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js\");\n return /*#__PURE__*/ _react.default.createElement(ReactDevOverlay, null, this.props.children);\n }\n }\n}\nfunction initialize() {\n return _initialize.apply(this, arguments);\n}\nfunction _initialize() {\n _initialize = _async_to_generator(function*() {\n let opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n // This makes sure this specific lines are removed in production\n if (true) {\n webpackHMR = opts.webpackHMR;\n }\n initialData = JSON.parse(document.getElementById(\"__NEXT_DATA__\").textContent);\n window.__NEXT_DATA__ = initialData;\n defaultLocale = initialData.defaultLocale;\n const prefix = initialData.assetPrefix || \"\";\n // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time\n // So, this is how we do it in the client side at runtime\n __webpack_require__.p = \"\".concat(prefix, \"/_next/\") //eslint-disable-line\n ;\n // Initialize next/config with the environment configuration\n (0, _runtimeConfig).setConfig({\n serverRuntimeConfig: {},\n publicRuntimeConfig: initialData.runtimeConfig || {}\n });\n asPath = (0, _utils).getURL();\n // make sure not to attempt stripping basePath for 404s\n if ((0, _hasBasePath).hasBasePath(asPath)) {\n asPath = (0, _removeBasePath).removeBasePath(asPath);\n }\n if (false) {}\n if (initialData.scriptLoader) {\n const { initScriptLoader } = __webpack_require__(/*! ./script */ \"./node_modules/next/dist/client/script.js\");\n initScriptLoader(initialData.scriptLoader);\n }\n pageLoader = new _pageLoader.default(initialData.buildId, prefix);\n const register = (param)=>{\n let [r, f] = param;\n return pageLoader.routeLoader.onEntrypoint(r, f);\n };\n if (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map((p)=>setTimeout(()=>register(p), 0));\n }\n window.__NEXT_P = [];\n window.__NEXT_P.push = register;\n headManager = (0, _headManager).default();\n headManager.getIsSsr = ()=>{\n return router.isSsr;\n };\n appElement = document.getElementById(\"__next\");\n return {\n assetPrefix: prefix\n };\n });\n return _initialize.apply(this, arguments);\n}\nfunction renderApp(App, appProps) {\n return /*#__PURE__*/ _react.default.createElement(App, Object.assign({}, appProps));\n}\nfunction AppContainer(param) {\n let { children } = param;\n var _autoExport;\n return /*#__PURE__*/ _react.default.createElement(Container, {\n fn: (error)=>// eslint-disable-next-line @typescript-eslint/no-use-before-define\n renderError({\n App: CachedApp,\n err: error\n }).catch((err)=>console.error(\"Error rendering page: \", err))\n }, /*#__PURE__*/ _react.default.createElement(_appRouterContext.AppRouterContext.Provider, {\n value: (0, _adapters).adaptForAppRouterInstance(router)\n }, /*#__PURE__*/ _react.default.createElement(_hooksClientContext.SearchParamsContext.Provider, {\n value: (0, _adapters).adaptForSearchParams(router)\n }, /*#__PURE__*/ _react.default.createElement(_adapters.PathnameContextProviderAdapter, {\n router: router,\n isAutoExport: (_autoExport = self.__NEXT_DATA__.autoExport) != null ? _autoExport : false\n }, /*#__PURE__*/ _react.default.createElement(_routerContext.RouterContext.Provider, {\n value: (0, _router).makePublicRouterInstance(router)\n }, /*#__PURE__*/ _react.default.createElement(_headManagerContext.HeadManagerContext.Provider, {\n value: headManager\n }, /*#__PURE__*/ _react.default.createElement(_imageConfigContext.ImageConfigContext.Provider, {\n value: {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[]}\n }, children)))))));\n}\n_c = AppContainer;\nconst wrapApp = (App)=>(wrappedAppProps)=>{\n const appProps = _extends({}, wrappedAppProps, {\n Component: CachedComponent,\n err: initialData.err,\n router\n });\n return /*#__PURE__*/ _react.default.createElement(AppContainer, null, renderApp(App, appProps));\n };\n// This method handles all runtime and debug errors.\n// 404 and 500 errors are special kind of errors\n// and they are still handle via the main render method.\nfunction renderError(renderErrorProps) {\n let { App , err } = renderErrorProps;\n // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n if (true) {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n webpackHMR.onUnrecoverableError();\n // We need to render an empty so that the `` can\n // render itself.\n // TODO: Fix disabled eslint rule\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return doRender({\n App: ()=>null,\n props: {},\n Component: ()=>null,\n styleSheets: []\n });\n }\n // Make sure we log the error to the console, otherwise users can't track down issues.\n console.error(err);\n console.error(\"A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred\");\n return pageLoader.loadPage(\"/_error\").then((param)=>{\n let { page: ErrorComponent , styleSheets } = param;\n return (lastAppProps == null ? void 0 : lastAppProps.Component) === ErrorComponent ? Promise.resolve().then(()=>/*#__PURE__*/ _interopRequireWildcard(__webpack_require__(/*! ../pages/_error */ \"./node_modules/next/dist/pages/_error.js\"))).then((errorModule)=>{\n return Promise.resolve().then(()=>/*#__PURE__*/ _interopRequireWildcard(__webpack_require__(/*! ../pages/_app */ \"./node_modules/next/dist/pages/_app.js\"))).then((appModule)=>{\n App = appModule.default;\n renderErrorProps.App = App;\n return errorModule;\n });\n }).then((m)=>({\n ErrorComponent: m.default,\n styleSheets: []\n })) : {\n ErrorComponent,\n styleSheets\n };\n }).then((param)=>{\n let { ErrorComponent , styleSheets } = param;\n var ref;\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n const AppTree = wrapApp(App);\n const appCtx = {\n Component: ErrorComponent,\n AppTree,\n router,\n ctx: {\n err,\n pathname: initialData.page,\n query: initialData.query,\n asPath,\n AppTree\n }\n };\n return Promise.resolve(((ref = renderErrorProps.props) == null ? void 0 : ref.err) ? renderErrorProps.props : (0, _utils).loadGetInitialProps(App, appCtx)).then((initProps)=>// eslint-disable-next-line @typescript-eslint/no-use-before-define\n doRender(_extends({}, renderErrorProps, {\n err,\n Component: ErrorComponent,\n styleSheets,\n props: initProps\n })));\n });\n}\n// Dummy component that we render as a child of Root so that we can\n// toggle the correct styles before the page is rendered.\nfunction Head(param) {\n let { callback } = param;\n _s();\n // We use `useLayoutEffect` to guarantee the callback is executed\n // as soon as React flushes the update.\n _react.default.useLayoutEffect(()=>callback(), [\n callback\n ]);\n return null;\n}\n_s(Head, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n_c1 = Head;\nlet reactRoot = null;\n// On initial render a hydrate should always happen\nlet shouldHydrate = true;\nfunction clearMarks() {\n [\n \"beforeRender\",\n \"afterHydrate\",\n \"afterRender\",\n \"routeChange\"\n ].forEach((mark)=>performance.clearMarks(mark));\n}\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark(\"afterHydrate\") // mark end of hydration\n ;\n performance.measure(\"Next.js-before-hydration\", \"navigationStart\", \"beforeRender\");\n performance.measure(\"Next.js-hydration\", \"beforeRender\", \"afterHydrate\");\n if (onPerfEntry) {\n performance.getEntriesByName(\"Next.js-hydration\").forEach(onPerfEntry);\n }\n clearMarks();\n}\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark(\"afterRender\") // mark end of render\n ;\n const navStartEntries = performance.getEntriesByName(\"routeChange\", \"mark\");\n if (!navStartEntries.length) return;\n performance.measure(\"Next.js-route-change-to-render\", navStartEntries[0].name, \"beforeRender\");\n performance.measure(\"Next.js-render\", \"beforeRender\", \"afterRender\");\n if (onPerfEntry) {\n performance.getEntriesByName(\"Next.js-render\").forEach(onPerfEntry);\n performance.getEntriesByName(\"Next.js-route-change-to-render\").forEach(onPerfEntry);\n }\n clearMarks();\n [\n \"Next.js-route-change-to-render\",\n \"Next.js-render\"\n ].forEach((measure)=>performance.clearMeasures(measure));\n}\nfunction renderReactElement(domEl, fn) {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark(\"beforeRender\");\n }\n const reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete);\n if (!reactRoot) {\n // Unlike with createRoot, you don't need a separate root.render() call here\n reactRoot = _client.default.hydrateRoot(domEl, reactEl, {\n onRecoverableError: _onRecoverableError.default\n });\n // TODO: Remove shouldHydrate variable when React 18 is stable as it can depend on `reactRoot` existing\n shouldHydrate = false;\n } else {\n const startTransition = _react.default.startTransition;\n startTransition(()=>{\n reactRoot.render(reactEl);\n });\n }\n}\nfunction Root(param) {\n let { callbacks , children } = param;\n _s1();\n // We use `useLayoutEffect` to guarantee the callbacks are executed\n // as soon as React flushes the update\n _react.default.useLayoutEffect(()=>callbacks.forEach((callback)=>callback()), [\n callbacks\n ]);\n // We should ask to measure the Web Vitals after rendering completes so we\n // don't cause any hydration delay:\n _react.default.useEffect(()=>{\n (0, _performanceRelayer).default(onPerfEntry);\n }, []);\n if (false) {}\n return children;\n}\n_s1(Root, \"Gjgl5rfcc2T4sFnfEMfRvL6K4Q4=\");\n_c2 = Root;\nfunction doRender(input) {\n let { App , Component , props , err } = input;\n let styleSheets = \"initial\" in input ? undefined : input.styleSheets;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n const appProps = _extends({}, props, {\n Component,\n err,\n router\n });\n // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n lastAppProps = appProps;\n let canceled = false;\n let resolvePromise;\n const renderPromise = new Promise((resolve, reject)=>{\n if (lastRenderReject) {\n lastRenderReject();\n }\n resolvePromise = ()=>{\n lastRenderReject = null;\n resolve();\n };\n lastRenderReject = ()=>{\n canceled = true;\n lastRenderReject = null;\n const error = new Error(\"Cancel rendering route\");\n error.cancelled = true;\n reject(error);\n };\n });\n // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n function onStart() {\n if (!styleSheets || // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n \"development\" !== \"production\") {\n return false;\n }\n const currentStyleTags = looseToArray(document.querySelectorAll(\"style[data-n-href]\"));\n const currentHrefs = new Set(currentStyleTags.map((tag)=>tag.getAttribute(\"data-n-href\")));\n const noscript = document.querySelector(\"noscript[data-n-css]\");\n const nonce = noscript == null ? void 0 : noscript.getAttribute(\"data-n-css\");\n styleSheets.forEach((param)=>{\n let { href , text } = param;\n if (!currentHrefs.has(href)) {\n const styleTag = document.createElement(\"style\");\n styleTag.setAttribute(\"data-n-href\", href);\n styleTag.setAttribute(\"media\", \"x\");\n if (nonce) {\n styleTag.setAttribute(\"nonce\", nonce);\n }\n document.head.appendChild(styleTag);\n styleTag.appendChild(document.createTextNode(text));\n }\n });\n return true;\n }\n function onHeadCommit() {\n if (// unless we're in production:\n false) {}\n if (input.scroll) {\n const htmlElement = document.documentElement;\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = \"auto\";\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 window.scrollTo(input.scroll.x, input.scroll.y);\n htmlElement.style.scrollBehavior = existing;\n }\n }\n function onRootCommit() {\n resolvePromise();\n }\n onStart();\n const elem = /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(Head, {\n callback: onHeadCommit\n }), /*#__PURE__*/ _react.default.createElement(AppContainer, null, renderApp(App, appProps), /*#__PURE__*/ _react.default.createElement(_portal.Portal, {\n type: \"next-route-announcer\"\n }, /*#__PURE__*/ _react.default.createElement(_routeAnnouncer.RouteAnnouncer, null))));\n // We catch runtime errors using componentDidCatch which will trigger renderError\n renderReactElement(appElement, (callback)=>/*#__PURE__*/ _react.default.createElement(Root, {\n callbacks: [\n callback,\n onRootCommit\n ]\n }, true ? /*#__PURE__*/ _react.default.createElement(_react.default.StrictMode, null, elem) : 0));\n return renderPromise;\n}\nfunction render(renderingProps) {\n return _render.apply(this, arguments);\n}\nfunction _render() {\n _render = _async_to_generator(function*(renderingProps) {\n if (renderingProps.err) {\n yield renderError(renderingProps);\n return;\n }\n try {\n yield doRender(renderingProps);\n } catch (err) {\n const renderErr = (0, _isError).getProperError(err);\n // bubble up cancelation errors\n if (renderErr.cancelled) {\n throw renderErr;\n }\n if (true) {\n // Ensure this error is displayed in the overlay in development\n setTimeout(()=>{\n throw renderErr;\n });\n }\n yield renderError(_extends({}, renderingProps, {\n err: renderErr\n }));\n }\n });\n return _render.apply(this, arguments);\n}\nfunction hydrate(opts) {\n return _hydrate.apply(this, arguments);\n}\nfunction _hydrate() {\n _hydrate = _async_to_generator(function*(opts) {\n let initialErr = initialData.err;\n try {\n const appEntrypoint = yield pageLoader.routeLoader.whenEntrypoint(\"/_app\");\n if (\"error\" in appEntrypoint) {\n throw appEntrypoint.error;\n }\n const { component: app , exports: mod } = appEntrypoint;\n CachedApp = app;\n if (mod && mod.reportWebVitals) {\n onPerfEntry = (param)=>{\n let { id , name , startTime , value , duration , entryType , entries , attribution } = param;\n // Combines timestamp with random number for unique ID\n const uniqueID = \"\".concat(Date.now(), \"-\").concat(Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n let perfStartEntry;\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n const webVitals = {\n id: id || uniqueID,\n name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === \"mark\" || entryType === \"measure\" ? \"custom\" : \"web-vital\"\n };\n if (attribution) {\n webVitals.attribution = attribution;\n }\n mod.reportWebVitals(webVitals);\n };\n }\n const pageEntrypoint = // error, so we need to skip waiting for the entrypoint.\n true && initialData.err ? {\n error: initialData.err\n } : yield pageLoader.routeLoader.whenEntrypoint(initialData.page);\n if (\"error\" in pageEntrypoint) {\n throw pageEntrypoint.error;\n }\n CachedComponent = pageEntrypoint.component;\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"./node_modules/next/dist/compiled/react-is/index.js\");\n if (!isValidElementType(CachedComponent)) {\n throw new Error('The default export is not a React Component in page: \"'.concat(initialData.page, '\"'));\n }\n }\n } catch (error1) {\n // This catches errors like throwing in the top level of a module\n initialErr = (0, _isError).getProperError(error1);\n }\n if (true) {\n const { getServerError } = __webpack_require__(/*! next/dist/compiled/@next/react-dev-overlay/dist/client */ \"./node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js\");\n // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n if (initialErr) {\n if (initialErr === initialData.err) {\n setTimeout(()=>{\n let error;\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr.message);\n } catch (e) {\n error = e;\n }\n error.name = initialErr.name;\n error.stack = initialErr.stack;\n throw getServerError(error, initialErr.source);\n });\n } else {\n setTimeout(()=>{\n throw initialErr;\n });\n }\n }\n }\n if (window.__NEXT_PRELOADREADY) {\n yield window.__NEXT_PRELOADREADY(initialData.dynamicIds);\n }\n exports.router = router = (0, _router).createRouter(initialData.page, initialData.query, asPath, {\n initialProps: initialData.props,\n pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp,\n err: initialErr,\n isFallback: Boolean(initialData.isFallback),\n subscription: (info, App, scroll)=>render(Object.assign({}, info, {\n App,\n scroll\n })),\n locale: initialData.locale,\n locales: initialData.locales,\n defaultLocale,\n domainLocales: initialData.domainLocales,\n isPreview: initialData.isPreview\n });\n initialMatchesMiddleware = yield router._initialMatchesMiddlewarePromise;\n const renderCtx = {\n App: CachedApp,\n initial: true,\n Component: CachedComponent,\n props: initialData.props,\n err: initialErr\n };\n if (opts == null ? void 0 : opts.beforeRender) {\n yield opts.beforeRender();\n }\n render(renderCtx);\n });\n return _hydrate.apply(this, arguments);\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\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"AppContainer\");\n$RefreshReg$(_c1, \"Head\");\n$RefreshReg$(_c2, \"Root\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbmRleC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7Ozs7O0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGtCQUFrQixHQUFHRTtBQUNyQkYsZUFBZSxHQUFHRztBQUNsQkgsZUFBZSxHQUFHQSxjQUFjLEdBQUdBLGVBQWUsR0FBRyxLQUFLO0FBQzFELElBQUlPLHNCQUFzQkMseUlBQTBEO0FBQ3BGLElBQUlFLFdBQVdGLG1IQUErQztBQUM5RCxJQUFJRywyQkFBMkJILG1KQUErRDtBQUM5RixJQUFJSSw0QkFBNEJKLHFKQUFnRTtBQUNoR0EsbUJBQU9BLENBQUMsdUdBQW9DO0FBQzVDLElBQUlLLFNBQVNGLHlCQUF5QkgsbUJBQU9BLENBQUMsNENBQU87QUFDckQsSUFBSU0sVUFBVUgseUJBQXlCSCxtQkFBT0EsQ0FBQyw0REFBa0I7QUFDakUsSUFBSU8sc0JBQXNCUCxtQkFBT0EsQ0FBQyx1R0FBb0M7QUFDdEUsSUFBSVEsUUFBUUwseUJBQXlCSCxtQkFBT0EsQ0FBQyx1RUFBb0I7QUFDakUsSUFBSVMsaUJBQWlCVCxtQkFBT0EsQ0FBQywyRkFBOEI7QUFDM0QsSUFBSVUsYUFBYVYsbUJBQU9BLENBQUMsNkdBQXVDO0FBQ2hFLElBQUlXLGVBQWVYLG1CQUFPQSxDQUFDLCtHQUF3QztBQUNuRSxJQUFJWSxpQkFBaUJaLG1CQUFPQSxDQUFDLDJGQUE4QjtBQUMzRCxJQUFJYSxTQUFTYixtQkFBT0EsQ0FBQyx5RUFBcUI7QUFDMUMsSUFBSWMsVUFBVWQsbUJBQU9BLENBQUMsaUVBQVU7QUFDaEMsSUFBSWUsZUFBZVoseUJBQXlCSCxtQkFBT0EsQ0FBQyx1RUFBZ0I7QUFDcEUsSUFBSWdCLGNBQWNiLHlCQUF5QkgsbUJBQU9BLENBQUMscUVBQWU7QUFDbEUsSUFBSWlCLHNCQUFzQmQseUJBQXlCSCxtQkFBT0EsQ0FBQyxxRkFBdUI7QUFDbEYsSUFBSWtCLGtCQUFr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VSxLQUFLLGFBQWE7SUFDcks5VCxPQUFPQyxjQUFjLENBQUNDLFFBQVFTLE9BQU8sRUFBRSxjQUFjO1FBQUVSLE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPaUYsTUFBTSxDQUFDL0UsUUFBUVMsT0FBTyxFQUFFVDtJQUMvQjZULE9BQU83VCxPQUFPLEdBQUdBLFFBQVFTLE9BQU87QUFDbEMsQ0FBQyxDQUVELGlDQUFpQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbmRleC5qcz80NmNiIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pbml0aWFsaXplID0gaW5pdGlhbGl6ZTtcbmV4cG9ydHMuaHlkcmF0ZSA9IGh5ZHJhdGU7XG5leHBvcnRzLmVtaXR0ZXIgPSBleHBvcnRzLnJvdXRlciA9IGV4cG9ydHMudmVyc2lvbiA9IHZvaWQgMDtcbnZhciBfYXN5bmNfdG9fZ2VuZXJhdG9yID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2FzeW5jX3RvX2dlbmVyYXRvci5qc1wiKS5kZWZhdWx0O1xudmFyIF9leHRlbmRzID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2V4dGVuZHMuanNcIikuZGVmYXVsdDtcbnZhciBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanNcIikuZGVmYXVsdDtcbnZhciBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5qc1wiKS5kZWZhdWx0O1xucmVxdWlyZShcIi4uL2J1aWxkL3BvbHlmaWxscy9wb2x5ZmlsbC1tb2R1bGVcIik7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX2NsaWVudCA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tL2NsaWVudFwiKSk7XG52YXIgX2hlYWRNYW5hZ2VyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2hlYWQtbWFuYWdlci1jb250ZXh0XCIpO1xudmFyIF9taXR0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL21pdHRcIikpO1xudmFyIF9yb3V0ZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHRcIik7XG52YXIgX2lzRHluYW1pYyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljXCIpO1xudmFyIF9xdWVyeXN0cmluZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZ1wiKTtcbnZhciBfcnVudGltZUNvbmZpZyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3J1bnRpbWUtY29uZmlnXCIpO1xudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xudmFyIF9wb3J0YWwgPSByZXF1aXJlKFwiLi9wb3J0YWxcIik7XG52YXIgX2hlYWRNYW5hZ2VyID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuL2hlYWQtbWFuYWdlclwiKSk7XG52YXIgX3BhZ2VMb2FkZXIgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vcGFnZS1sb2FkZXJcIikpO1xudmFyIF9wZXJmb3JtYW5jZVJlbGF5ZXIgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vcGVyZm9ybWFuY2UtcmVsYXllclwiKSk7XG52YXIgX3JvdXRlQW5ub3VuY2VyID0gcmVxdWlyZShcIi4vcm91dGUtYW5ub3VuY2VyXCIpO1xudmFyIF9yb3V0ZXIgPSByZXF1aXJlKFwiLi9yb3V0ZXJcIik7XG52YXIgX2lzRXJyb3IgPSByZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpO1xudmFyIF9pbWFnZUNvbmZpZ0NvbnRleHQgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pbWFnZS1jb25maWctY29udGV4dFwiKTtcbnZhciBfcmVtb3ZlQmFzZVBhdGggPSByZXF1aXJlKFwiLi9yZW1vdmUtYmFzZS1wYXRoXCIpO1xudmFyIF9oYXNCYXNlUGF0aCA9IHJlcXVpcmUoXCIuL2hhcy1iYXNlLXBhdGhcIik7XG52YXIgX2FwcFJvdXRlckNvbnRleHQgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHRcIik7XG52YXIgX2FkYXB0ZXJzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL2FkYXB0ZXJzXCIpO1xudmFyIF9ob29rc0NsaWVudENvbnRleHQgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dFwiKTtcbnZhciBfb25SZWNvdmVyYWJsZUVycm9yID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuL29uLXJlY292ZXJhYmxlLWVycm9yXCIpKTtcbmNvbnN0IHZlcnNpb24gPSBcIjEzLjEuMVwiO1xuZXhwb3J0cy52ZXJzaW9uID0gdmVyc2lvbjtcbmxldCByb3V0ZXI7XG5leHBvcnRzLnJvdXRlciA9IHJvdXRlcjtcbmNvbnN0IGVtaXR0ZXIgPSAoMCwgX21pdHQpLmRlZmF1bHQoKTtcbmV4cG9ydHMuZW1pdHRlciA9IGVtaXR0ZXI7XG5jb25zdCBsb29zZVRvQXJyYXkgPSAoaW5wdXQpPT5bXS5zbGljZS5jYWxsKGlucHV0KTtcbmxldCBpbml0aWFsRGF0YTtcbmxldCBkZWZhdWx0TG9jYWxlID0gdW5kZWZpbmVkO1xubGV0IGFzUGF0aDtcbmxldCBwYWdlTG9hZGVyO1xubGV0IGFwcEVsZW1lbnQ7XG5sZXQgaGVhZE1hbmFnZXI7XG5sZXQgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlID0gZmFsc2U7XG5sZXQgbGFzdEFwcFByb3BzO1xubGV0IGxhc3RSZW5kZXJSZWplY3Q7XG5sZXQgd2VicGFja0hNUjtcbmxldCBDYWNoZWRBcHAsIG9uUGVyZkVudHJ5O1xubGV0IENhY2hlZENvbXBvbmVudDtcbnNlbGYuX19uZXh0X3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX187XG5jbGFzcyBDb250YWluZXIgZXh0ZW5kcyBfcmVhY3QuZGVmYXVsdC5Db21wb25lbnQge1xuICAgIGNvbXBvbmVudERpZENhdGNoKGNvbXBvbmVudEVyciwgaW5mbykge1xuICAgICAgICB0aGlzLnByb3BzLmZuKGNvbXBvbmVudEVyciwgaW5mbyk7XG4gICAgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLnNjcm9sbFRvSGFzaCgpO1xuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlcGxhY2UgdGhlIHJvdXRlciBzdGF0ZSBpZjpcbiAgICAgICAgLy8gLSB0aGUgcGFnZSB3YXMgKGF1dG8pIGV4cG9ydGVkIGFuZCBoYXMgYSBxdWVyeSBzdHJpbmcgb3Igc2VhcmNoIChoYXNoKVxuICAgICAgICAvLyAtIGl0IHdhcyBhdXRvIGV4cG9ydGVkIGFuZCBpcyBhIGR5bmFtaWMgcm91dGUgKHRvIHByb3ZpZGUgcGFyYW1zKVxuICAgICAgICAvLyAtIGlmIGl0IGlzIGEgY2xpZW50LXNpZGUgc2tlbGV0b24gKGZhbGxiYWNrIHJlbmRlcilcbiAgICAgICAgLy8gLSBpZiBtaWRkbGV3YXJlIG1hdGNoZXMgdGhlIGN1cnJlbnQgcGFnZSAobWF5IGhhdmUgcmV3cml0ZSBwYXJhbXMpXG4gICAgICAgIC8vIC0gaWYgcmV3cml0ZXMgaW4gbmV4dC5jb25maWcuanMgbWF0Y2ggKG1heSBoYXZlIHJld3JpdGUgcGFyYW1zKVxuICAgICAgICBpZiAocm91dGVyLmlzU3NyICYmIChpbml0aWFsRGF0YS5pc0ZhbGxiYWNrIHx8IGluaXRpYWxEYXRhLm5leHRFeHBvcnQgJiYgKCgwLCBfaXNEeW5hbWljKS5pc0R5bmFtaWNSb3V0ZShyb3V0ZXIucGF0aG5hbWUpIHx8IGxvY2F0aW9uLnNlYXJjaCB8fCBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTIHx8IGluaXRpYWxNYXRjaGVzTWlkZGxld2FyZSkgfHwgaW5pdGlhbERhdGEucHJvcHMgJiYgaW5pdGlhbERhdGEucHJvcHMuX19OX1NTRyAmJiAobG9jYXRpb24uc2VhcmNoIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgfHwgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlKSkpIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBxdWVyeSBvbiBtb3VudCBmb3IgZXhwb3J0ZWQgcGFnZXNcbiAgICAgICAgICAgIHJvdXRlci5yZXBsYWNlKHJvdXRlci5wYXRobmFtZSArICc/JyArIFN0cmluZygoMCwgX3F1ZXJ5c3RyaW5nKS5hc3NpZ24oKDAsIF9xdWVyeXN0cmluZykudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhyb3V0ZXIucXVlcnkpLCBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkpKSwgYXNQYXRoLCB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanNcbiAgICAgICAgICAgICAgICAvLyBjbGllbnQtc2lkZSBoeWRyYXRpb24uIFlvdXIgYXBwIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGlzIHByb3BlcnR5LlxuICAgICAgICAgICAgICAgIC8vIEl0IG1heSBjaGFuZ2UgYXQgYW55IHRpbWUgd2l0aG91dCBub3RpY2UuXG4gICAgICAgICAgICAgICAgX2g6IDEsXG4gICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgcGFnZXMgbXVzdCB0cmlnZ2VyIHRoZSBkYXRhIGZldGNoLCBzbyB0aGUgdHJhbnNpdGlvbiBpc1xuICAgICAgICAgICAgICAgIC8vIG5vdCBzaGFsbG93LlxuICAgICAgICAgICAgICAgIC8vIE90aGVyIHBhZ2VzIChzdHJpY3RseSB1cGRhdGluZyBxdWVyeSkgaGFwcGVucyBzaGFsbG93bHksIGFzIGRhdGFcbiAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgd291bGQgYWxyZWFkeSBiZSBwcmVzZW50LlxuICAgICAgICAgICAgICAgIHNoYWxsb3c6ICFpbml0aWFsRGF0YS5pc0ZhbGxiYWNrICYmICFpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVcbiAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgaWYgKCFlcnIuY2FuY2VsbGVkKSB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKCk7XG4gICAgfVxuICAgIHNjcm9sbFRvSGFzaCgpIHtcbiAgICAgICAgbGV0IHsgaGFzaCAgfSA9IGxvY2F0aW9uO1xuICAgICAgICBoYXNoID0gaGFzaCAmJiBoYXNoLnN1YnN0cmluZygxKTtcbiAgICAgICAgaWYgKCFoYXNoKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaCk7XG4gICAgICAgIGlmICghZWwpIHJldHVybjtcbiAgICAgICAgLy8gSWYgd2UgY2FsbCBzY3JvbGxJbnRvVmlldygpIGluIGhlcmUgd2l0aG91dCBhIHNldFRpbWVvdXRcbiAgICAgICAgLy8gaXQgd29uJ3Qgc2Nyb2xsIHByb3Blcmx5LlxuICAgICAgICBzZXRUaW1lb3V0KCgpPT5lbC5zY3JvbGxJbnRvVmlldygpLCAwKTtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB7IFJlYWN0RGV2T3ZlcmxheSAsICB9ID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2Rpc3QvY2xpZW50Jyk7XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJlYWN0RGV2T3ZlcmxheSwgbnVsbCwgdGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIHJldHVybiBfaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gX2luaXRpYWxpemUoKSB7XG4gICAgX2luaXRpYWxpemUgPSBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKihvcHRzID0ge30pIHtcbiAgICAgICAgLy8gVGhpcyBtYWtlcyBzdXJlIHRoaXMgc3BlY2lmaWMgbGluZXMgYXJlIHJlbW92ZWQgaW4gcHJvZHVjdGlvblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIHdlYnBhY2tITVIgPSBvcHRzLndlYnBhY2tITVI7XG4gICAgICAgIH1cbiAgICAgICAgaW5pdGlhbERhdGEgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX05FWFRfREFUQV9fJykudGV4dENvbnRlbnQpO1xuICAgICAgICB3aW5kb3cuX19ORVhUX0RBVEFfXyA9IGluaXRpYWxEYXRhO1xuICAgICAgICBkZWZhdWx0TG9jYWxlID0gaW5pdGlhbERhdGEuZGVmYXVsdExvY2FsZTtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gaW5pdGlhbERhdGEuYXNzZXRQcmVmaXggfHwgJyc7XG4gICAgICAgIC8vIFdpdGggZHluYW1pYyBhc3NldFByZWZpeCBpdCdzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBzZXQgYXNzZXRQcmVmaXggYXQgdGhlIGJ1aWxkIHRpbWVcbiAgICAgICAgLy8gU28sIHRoaXMgaXMgaG93IHdlIGRvIGl0IGluIHRoZSBjbGllbnQgc2lkZSBhdCBydW50aW1lXG4gICAgICAgIF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gYCR7cHJlZml4fS9fbmV4dC9gIC8vZXNsaW50LWRpc2FibGUtbGluZVxuICAgICAgICA7XG4gICAgICAgIC8vIEluaXRpYWxpemUgbmV4dC9jb25maWcgd2l0aCB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvblxuICAgICAgICAoMCwgX3J1bnRpbWVDb25maWcpLnNldENvbmZpZyh7XG4gICAgICAgICAgICBzZXJ2ZXJSdW50aW1lQ29uZmlnOiB7fSxcbiAgICAgICAgICAgIHB1YmxpY1J1bnRpbWVDb25maWc6IGluaXRpYWxEYXRhLnJ1bnRpbWVDb25maWcgfHwge31cbiAgICAgICAgfSk7XG4gICAgICAgIGFzUGF0aCA9ICgwLCBfdXRpbHMpLmdldFVSTCgpO1xuICAgICAgICAvLyBtYWtlIHN1cmUgbm90IHRvIGF0dGVtcHQgc3RyaXBwaW5nIGJhc2VQYXRoIGZvciA0MDRzXG4gICAgICAgIGlmICgoMCwgX2hhc0Jhc2VQYXRoKS5oYXNCYXNlUGF0aChhc1BhdGgpKSB7XG4gICAgICAgICAgICBhc1BhdGggPSAoMCwgX3JlbW92ZUJhc2VQYXRoKS5yZW1vdmVCYXNlUGF0aChhc1BhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgICAgICBjb25zdCB7IG5vcm1hbGl6ZUxvY2FsZVBhdGggIH0gPSByZXF1aXJlKCcuLi9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJyk7XG4gICAgICAgICAgICBjb25zdCB7IGRldGVjdERvbWFpbkxvY2FsZSAgfSA9IHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZScpO1xuICAgICAgICAgICAgY29uc3QgeyBwYXJzZVJlbGF0aXZlVXJsICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJyk7XG4gICAgICAgICAgICBjb25zdCB7IGZvcm1hdFVybCAgfSA9IHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnKTtcbiAgICAgICAgICAgIGlmIChpbml0aWFsRGF0YS5sb2NhbGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkQXMgPSBwYXJzZVJlbGF0aXZlVXJsKGFzUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9IG5vcm1hbGl6ZUxvY2FsZVBhdGgocGFyc2VkQXMucGF0aG5hbWUsIGluaXRpYWxEYXRhLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZTtcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoID0gZm9ybWF0VXJsKHBhcnNlZEFzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBkZXJpdmUgdGhlIGRlZmF1bHQgbG9jYWxlIGlmIGl0IHdhc24ndCBkZXRlY3RlZCBpbiB0aGUgYXNQYXRoXG4gICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IHByZXJlbmRlciBzdGF0aWMgcGFnZXMgd2l0aCBhbGwgcG9zc2libGUgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAvLyBsb2NhbGVzXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUgPSBpbml0aWFsRGF0YS5sb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGF0dGVtcHQgZGV0ZWN0aW5nIGRlZmF1bHQgbG9jYWxlIGJhc2VkIG9uIGhvc3RuYW1lXG4gICAgICAgICAgICAgICAgY29uc3QgZGV0ZWN0ZWREb21haW4gPSBkZXRlY3REb21haW5Mb2NhbGUocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fRE9NQUlOUywgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBpZiBkZWZhdWx0TG9jYWxlIG5lZWRzIHRvIGJlIHBvcHVsYXRlZCBhZnRlclxuICAgICAgICAgICAgICAgIC8vIGh5ZHJhdGlvbiB0byBwcmV2ZW50IG1pc21hdGNoZWQgcmVuZGVyc1xuICAgICAgICAgICAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TG9jYWxlID0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluaXRpYWxEYXRhLnNjcmlwdExvYWRlcikge1xuICAgICAgICAgICAgY29uc3QgeyBpbml0U2NyaXB0TG9hZGVyICB9ID0gcmVxdWlyZSgnLi9zY3JpcHQnKTtcbiAgICAgICAgICAgIGluaXRTY3JpcHRMb2FkZXIoaW5pdGlhbERhdGEuc2NyaXB0TG9hZGVyKTtcbiAgICAgICAgfVxuICAgICAgICBwYWdlTG9hZGVyID0gbmV3IF9wYWdlTG9hZGVyLmRlZmF1bHQoaW5pdGlhbERhdGEuYnVpbGRJZCwgcHJlZml4KTtcbiAgICAgICAgY29uc3QgcmVnaXN0ZXIgPSAoW3IsIGZdKT0+cGFnZUxvYWRlci5yb3V0ZUxvYWRlci5vbkVudHJ5cG9pbnQociwgZik7XG4gICAgICAgIGlmICh3aW5kb3cuX19ORVhUX1ApIHtcbiAgICAgICAgICAgIC8vIERlZmVyIHBhZ2UgcmVnaXN0cmF0aW9uIGZvciBhbm90aGVyIHRpY2suIFRoaXMgd2lsbCBpbmNyZWFzZSB0aGUgb3ZlcmFsbFxuICAgICAgICAgICAgLy8gbGF0ZW5jeSBpbiBoeWRyYXRpbmcgdGhlIHBhZ2UsIGJ1dCByZWR1Y2UgdGhlIHRvdGFsIGJsb2NraW5nIHRpbWUuXG4gICAgICAgICAgICB3aW5kb3cuX19ORVhUX1AubWFwKChwKT0+c2V0VGltZW91dCgoKT0+cmVnaXN0ZXIocCksIDApKTtcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuX19ORVhUX1AgPSBbXTtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2ggPSByZWdpc3RlcjtcbiAgICAgICAgaGVhZE1hbmFnZXIgPSAoMCwgX2hlYWRNYW5hZ2VyKS5kZWZhdWx0KCk7XG4gICAgICAgIGhlYWRNYW5hZ2VyLmdldElzU3NyID0gKCk9PntcbiAgICAgICAgICAgIHJldHVybiByb3V0ZXIuaXNTc3I7XG4gICAgICAgIH07XG4gICAgICAgIGFwcEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX19uZXh0Jyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhc3NldFByZWZpeDogcHJlZml4XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIF9pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiByZW5kZXJBcHAoQXBwLCBhcHBQcm9wcykge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQXBwLCBPYmplY3QuYXNzaWduKHt9LCBhcHBQcm9wcykpO1xufVxuZnVuY3Rpb24gQXBwQ29udGFpbmVyKHsgY2hpbGRyZW4gIH0pIHtcbiAgICB2YXIgX2F1dG9FeHBvcnQ7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChDb250YWluZXIsIHtcbiAgICAgICAgZm46IChlcnJvcik9Pi8vIFRPRE86IEZpeCBkaXNhYmxlZCBlc2xpbnQgcnVsZVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgICAgcmVuZGVyRXJyb3Ioe1xuICAgICAgICAgICAgICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgICAgICAgICAgICAgIGVycjogZXJyb3JcbiAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT5jb25zb2xlLmVycm9yKCdFcnJvciByZW5kZXJpbmcgcGFnZTogJywgZXJyKSlcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2FwcFJvdXRlckNvbnRleHQuQXBwUm91dGVyQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICB2YWx1ZTogKDAsIF9hZGFwdGVycykuYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9ob29rc0NsaWVudENvbnRleHQuU2VhcmNoUGFyYW1zQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICB2YWx1ZTogKDAsIF9hZGFwdGVycykuYWRhcHRGb3JTZWFyY2hQYXJhbXMocm91dGVyKVxuICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfYWRhcHRlcnMuUGF0aG5hbWVDb250ZXh0UHJvdmlkZXJBZGFwdGVyLCB7XG4gICAgICAgIHJvdXRlcjogcm91dGVyLFxuICAgICAgICBpc0F1dG9FeHBvcnQ6IChfYXV0b0V4cG9ydCA9IHNlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0KSAhPSBudWxsID8gX2F1dG9FeHBvcnQgOiBmYWxzZVxuICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcm91dGVyQ29udGV4dC5Sb3V0ZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiAoMCwgX3JvdXRlcikubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcilcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hlYWRNYW5hZ2VyQ29udGV4dC5IZWFkTWFuYWdlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGhlYWRNYW5hZ2VyXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9pbWFnZUNvbmZpZ0NvbnRleHQuSW1hZ2VDb25maWdDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiBwcm9jZXNzLmVudi5fX05FWFRfSU1BR0VfT1BUU1xuICAgIH0sIGNoaWxkcmVuKSkpKSkpKTtcbn1cbmNvbnN0IHdyYXBBcHAgPSAoQXBwKT0+KHdyYXBwZWRBcHBQcm9wcyk9PntcbiAgICAgICAgY29uc3QgYXBwUHJvcHMgPSBfZXh0ZW5kcyh7fSwgd3JhcHBlZEFwcFByb3BzLCB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IENhY2hlZENvbXBvbmVudCxcbiAgICAgICAgICAgIGVycjogaW5pdGlhbERhdGEuZXJyLFxuICAgICAgICAgICAgcm91dGVyXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEFwcENvbnRhaW5lciwgbnVsbCwgcmVuZGVyQXBwKEFwcCwgYXBwUHJvcHMpKTtcbiAgICB9O1xuLy8gVGhpcyBtZXRob2QgaGFuZGxlcyBhbGwgcnVudGltZSBhbmQgZGVidWcgZXJyb3JzLlxuLy8gNDA0IGFuZCA1MDAgZXJyb3JzIGFyZSBzcGVjaWFsIGtpbmQgb2YgZXJyb3JzXG4vLyBhbmQgdGhleSBhcmUgc3RpbGwgaGFuZGxlIHZpYSB0aGUgbWFpbiByZW5kZXIgbWV0aG9kLlxuZnVuY3Rpb24gcmVuZGVyRXJyb3IocmVuZGVyRXJyb3JQcm9wcykge1xuICAgIGxldCB7IEFwcCAsIGVyciAgfSA9IHJlbmRlckVycm9yUHJvcHM7XG4gICAgLy8gSW4gZGV2ZWxvcG1lbnQgcnVudGltZSBlcnJvcnMgYXJlIGNhdWdodCBieSBvdXIgb3ZlcmxheVxuICAgIC8vIEluIHByb2R1Y3Rpb24gd2UgY2F0Y2ggcnVudGltZSBlcnJvcnMgdXNpbmcgY29tcG9uZW50RGlkQ2F0Y2ggd2hpY2ggd2lsbCB0cmlnZ2VyIHJlbmRlckVycm9yXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gQSBOZXh0LmpzIHJlbmRlcmluZyBydW50aW1lIGVycm9yIGlzIGFsd2F5cyB1bnJlY292ZXJhYmxlXG4gICAgICAgIC8vIEZJWE1FOiBsZXQncyBtYWtlIHRoaXMgcmVjb3ZlcmFibGUgKGVycm9yIGluIEdJUCBjbGllbnQtdHJhbnNpdGlvbilcbiAgICAgICAgd2VicGFja0hNUi5vblVucmVjb3ZlcmFibGVFcnJvcigpO1xuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbmRlciBhbiBlbXB0eSA8QXBwPiBzbyB0aGF0IHRoZSBgPFJlYWN0RGV2T3ZlcmxheT5gIGNhblxuICAgICAgICAvLyByZW5kZXIgaXRzZWxmLlxuICAgICAgICAvLyBUT0RPOiBGaXggZGlzYWJsZWQgZXNsaW50IHJ1bGVcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICByZXR1cm4gZG9SZW5kZXIoe1xuICAgICAgICAgICAgQXBwOiAoKT0+bnVsbCxcbiAgICAgICAgICAgIHByb3BzOiB7fSxcbiAgICAgICAgICAgIENvbXBvbmVudDogKCk9Pm51bGwsXG4gICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIE1ha2Ugc3VyZSB3ZSBsb2cgdGhlIGVycm9yIHRvIHRoZSBjb25zb2xlLCBvdGhlcndpc2UgdXNlcnMgY2FuJ3QgdHJhY2sgZG93biBpc3N1ZXMuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIGNvbnNvbGUuZXJyb3IoYEEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCwgc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY2xpZW50LXNpZGUtZXhjZXB0aW9uLW9jY3VycmVkYCk7XG4gICAgcmV0dXJuIHBhZ2VMb2FkZXIubG9hZFBhZ2UoJy9fZXJyb3InKS50aGVuKCh7IHBhZ2U6IEVycm9yQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0pPT57XG4gICAgICAgIHJldHVybiAobGFzdEFwcFByb3BzID09IG51bGwgPyB2b2lkIDAgOiBsYXN0QXBwUHJvcHMuQ29tcG9uZW50KSA9PT0gRXJyb3JDb21wb25lbnQgPyBpbXBvcnQoJy4uL3BhZ2VzL19lcnJvcicpLnRoZW4oKGVycm9yTW9kdWxlKT0+e1xuICAgICAgICAgICAgcmV0dXJuIGltcG9ydCgnLi4vcGFnZXMvX2FwcCcpLnRoZW4oKGFwcE1vZHVsZSk9PntcbiAgICAgICAgICAgICAgICBBcHAgPSBhcHBNb2R1bGUuZGVmYXVsdDtcbiAgICAgICAgICAgICAgICByZW5kZXJFcnJvclByb3BzLkFwcCA9IEFwcDtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JNb2R1bGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkudGhlbigobSk9Pih7XG4gICAgICAgICAgICAgICAgRXJyb3JDb21wb25lbnQ6IG0uZGVmYXVsdCxcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0czogW11cbiAgICAgICAgICAgIH0pKSA6IHtcbiAgICAgICAgICAgIEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgICAgc3R5bGVTaGVldHNcbiAgICAgICAgfTtcbiAgICB9KS50aGVuKCh7IEVycm9yQ29tcG9uZW50ICwgc3R5bGVTaGVldHMgIH0pPT57XG4gICAgICAgIHZhciByZWY7XG4gICAgICAgIC8vIEluIHByb2R1Y3Rpb24gd2UgZG8gYSBub3JtYWwgcmVuZGVyIHdpdGggdGhlIGBFcnJvckNvbXBvbmVudGAgYXMgY29tcG9uZW50LlxuICAgICAgICAvLyBJZiB3ZSd2ZSBnb3R0ZW4gaGVyZSB1cG9uIGluaXRpYWwgcmVuZGVyLCB3ZSBjYW4gdXNlIHRoZSBwcm9wcyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgd2UgbmVlZCB0byBjYWxsIGBnZXRJbml0aWFsUHJvcHNgIG9uIGBBcHBgIGJlZm9yZSBtb3VudGluZy5cbiAgICAgICAgY29uc3QgQXBwVHJlZSA9IHdyYXBBcHAoQXBwKTtcbiAgICAgICAgY29uc3QgYXBwQ3R4ID0ge1xuICAgICAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgIEFwcFRyZWUsXG4gICAgICAgICAgICByb3V0ZXIsXG4gICAgICAgICAgICBjdHg6IHtcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgcGF0aG5hbWU6IGluaXRpYWxEYXRhLnBhZ2UsXG4gICAgICAgICAgICAgICAgcXVlcnk6IGluaXRpYWxEYXRhLnF1ZXJ5LFxuICAgICAgICAgICAgICAgIGFzUGF0aCxcbiAgICAgICAgICAgICAgICBBcHBUcmVlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKChyZWYgPSByZW5kZXJFcnJvclByb3BzLnByb3BzKSA9PSBudWxsID8gdm9pZCAwIDogcmVmLmVycikgPyByZW5kZXJFcnJvclByb3BzLnByb3BzIDogKDAsIF91dGlscykubG9hZEdldEluaXRpYWxQcm9wcyhBcHAsIGFwcEN0eCkpLnRoZW4oKGluaXRQcm9wcyk9Pi8vIFRPRE86IEZpeCBkaXNhYmxlZCBlc2xpbnQgcnVsZVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgICAgICAgICAgZG9SZW5kZXIoX2V4dGVuZHMoe30sIHJlbmRlckVycm9yUHJvcHMsIHtcbiAgICAgICAgICAgICAgICBlcnIsXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cyxcbiAgICAgICAgICAgICAgICBwcm9wczogaW5pdFByb3BzXG4gICAgICAgICAgICB9KSkpO1xuICAgIH0pO1xufVxuLy8gRHVtbXkgY29tcG9uZW50IHRoYXQgd2UgcmVuZGVyIGFzIGEgY2hpbGQgb2YgUm9vdCBzbyB0aGF0IHdlIGNhblxuLy8gdG9nZ2xlIHRoZSBjb3JyZWN0IHN0eWxlcyBiZWZvcmUgdGhlIHBhZ2UgaXMgcmVuZGVyZWQuXG5mdW5jdGlvbiBIZWFkKHsgY2FsbGJhY2sgIH0pIHtcbiAgICAvLyBXZSB1c2UgYHVzZUxheW91dEVmZmVjdGAgdG8gZ3VhcmFudGVlIHRoZSBjYWxsYmFjayBpcyBleGVjdXRlZFxuICAgIC8vIGFzIHNvb24gYXMgUmVhY3QgZmx1c2hlcyB0aGUgdXBkYXRlLlxuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUxheW91dEVmZmVjdCgoKT0+Y2FsbGJhY2soKSwgW1xuICAgICAgICBjYWxsYmFja1xuICAgIF0pO1xuICAgIHJldHVybiBudWxsO1xufVxubGV0IHJlYWN0Um9vdCA9IG51bGw7XG4vLyBPbiBpbml0aWFsIHJlbmRlciBhIGh5ZHJhdGUgc2hvdWxkIGFsd2F5cyBoYXBwZW5cbmxldCBzaG91bGRIeWRyYXRlID0gdHJ1ZTtcbmZ1bmN0aW9uIGNsZWFyTWFya3MoKSB7XG4gICAgW1xuICAgICAgICAnYmVmb3JlUmVuZGVyJyxcbiAgICAgICAgJ2FmdGVySHlkcmF0ZScsXG4gICAgICAgICdhZnRlclJlbmRlcicsXG4gICAgICAgICdyb3V0ZUNoYW5nZSdcbiAgICBdLmZvckVhY2goKG1hcmspPT5wZXJmb3JtYW5jZS5jbGVhck1hcmtzKG1hcmspKTtcbn1cbmZ1bmN0aW9uIG1hcmtIeWRyYXRlQ29tcGxldGUoKSB7XG4gICAgaWYgKCFfdXRpbHMuU1QpIHJldHVybjtcbiAgICBwZXJmb3JtYW5jZS5tYXJrKCdhZnRlckh5ZHJhdGUnKSAvLyBtYXJrIGVuZCBvZiBoeWRyYXRpb25cbiAgICA7XG4gICAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1iZWZvcmUtaHlkcmF0aW9uJywgJ25hdmlnYXRpb25TdGFydCcsICdiZWZvcmVSZW5kZXInKTtcbiAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKCdOZXh0LmpzLWh5ZHJhdGlvbicsICdiZWZvcmVSZW5kZXInLCAnYWZ0ZXJIeWRyYXRlJyk7XG4gICAgaWYgKG9uUGVyZkVudHJ5KSB7XG4gICAgICAgIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ05leHQuanMtaHlkcmF0aW9uJykuZm9yRWFjaChvblBlcmZFbnRyeSk7XG4gICAgfVxuICAgIGNsZWFyTWFya3MoKTtcbn1cbmZ1bmN0aW9uIG1hcmtSZW5kZXJDb21wbGV0ZSgpIHtcbiAgICBpZiAoIV91dGlscy5TVCkgcmV0dXJuO1xuICAgIHBlcmZvcm1hbmNlLm1hcmsoJ2FmdGVyUmVuZGVyJykgLy8gbWFyayBlbmQgb2YgcmVuZGVyXG4gICAgO1xuICAgIGNvbnN0IG5hdlN0YXJ0RW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ3JvdXRlQ2hhbmdlJywgJ21hcmsnKTtcbiAgICBpZiAoIW5hdlN0YXJ0RW50cmllcy5sZW5ndGgpIHJldHVybjtcbiAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKCdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInLCBuYXZTdGFydEVudHJpZXNbMF0ubmFtZSwgJ2JlZm9yZVJlbmRlcicpO1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoJ05leHQuanMtcmVuZGVyJywgJ2JlZm9yZVJlbmRlcicsICdhZnRlclJlbmRlcicpO1xuICAgIGlmIChvblBlcmZFbnRyeSkge1xuICAgICAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdOZXh0LmpzLXJlbmRlcicpLmZvckVhY2gob25QZXJmRW50cnkpO1xuICAgICAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInKS5mb3JFYWNoKG9uUGVyZkVudHJ5KTtcbiAgICB9XG4gICAgY2xlYXJNYXJrcygpO1xuICAgIFtcbiAgICAgICAgJ05leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlcicsXG4gICAgICAgICdOZXh0LmpzLXJlbmRlcidcbiAgICBdLmZvckVhY2goKG1lYXN1cmUpPT5wZXJmb3JtYW5jZS5jbGVhck1lYXN1cmVzKG1lYXN1cmUpKTtcbn1cbmZ1bmN0aW9uIHJlbmRlclJlYWN0RWxlbWVudChkb21FbCwgZm4pIHtcbiAgICAvLyBtYXJrIHN0YXJ0IG9mIGh5ZHJhdGUvcmVuZGVyXG4gICAgaWYgKF91dGlscy5TVCkge1xuICAgICAgICBwZXJmb3JtYW5jZS5tYXJrKCdiZWZvcmVSZW5kZXInKTtcbiAgICB9XG4gICAgY29uc3QgcmVhY3RFbCA9IGZuKHNob3VsZEh5ZHJhdGUgPyBtYXJrSHlkcmF0ZUNvbXBsZXRlIDogbWFya1JlbmRlckNvbXBsZXRlKTtcbiAgICBpZiAoIXJlYWN0Um9vdCkge1xuICAgICAgICAvLyBVbmxpa2Ugd2l0aCBjcmVhdGVSb290LCB5b3UgZG9uJ3QgbmVlZCBhIHNlcGFyYXRlIHJvb3QucmVuZGVyKCkgY2FsbCBoZXJlXG4gICAgICAgIHJlYWN0Um9vdCA9IF9jbGllbnQuZGVmYXVsdC5oeWRyYXRlUm9vdChkb21FbCwgcmVhY3RFbCwge1xuICAgICAgICAgICAgb25SZWNvdmVyYWJsZUVycm9yOiBfb25SZWNvdmVyYWJsZUVycm9yLmRlZmF1bHRcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBzaG91bGRIeWRyYXRlIHZhcmlhYmxlIHdoZW4gUmVhY3QgMTggaXMgc3RhYmxlIGFzIGl0IGNhbiBkZXBlbmQgb24gYHJlYWN0Um9vdGAgZXhpc3RpbmdcbiAgICAgICAgc2hvdWxkSHlkcmF0ZSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0VHJhbnNpdGlvbiA9IF9yZWFjdC5kZWZhdWx0LnN0YXJ0VHJhbnNpdGlvbjtcbiAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpPT57XG4gICAgICAgICAgICByZWFjdFJvb3QucmVuZGVyKHJlYWN0RWwpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBSb290KHsgY2FsbGJhY2tzICwgY2hpbGRyZW4gIH0pIHtcbiAgICAvLyBXZSB1c2UgYHVzZUxheW91dEVmZmVjdGAgdG8gZ3VhcmFudGVlIHRoZSBjYWxsYmFja3MgYXJlIGV4ZWN1dGVkXG4gICAgLy8gYXMgc29vbiBhcyBSZWFjdCBmbHVzaGVzIHRoZSB1cGRhdGVcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VMYXlvdXRFZmZlY3QoKCk9PmNhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjayk9PmNhbGxiYWNrKCkpLCBbXG4gICAgICAgIGNhbGxiYWNrc1xuICAgIF0pO1xuICAgIC8vIFdlIHNob3VsZCBhc2sgdG8gbWVhc3VyZSB0aGUgV2ViIFZpdGFscyBhZnRlciByZW5kZXJpbmcgY29tcGxldGVzIHNvIHdlXG4gICAgLy8gZG9uJ3QgY2F1c2UgYW55IGh5ZHJhdGlvbiBkZWxheTpcbiAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgKDAsIF9wZXJmb3JtYW5jZVJlbGF5ZXIpLmRlZmF1bHQob25QZXJmRW50cnkpO1xuICAgIH0sIFtdKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgX3JlYWN0LmRlZmF1bHQudXNlRWZmZWN0KCgpPT57XG4gICAgICAgICAgICB3aW5kb3cuX19ORVhUX0hZRFJBVEVEID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuX19ORVhUX0hZRFJBVEVEX0NCKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRF9DQigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG4gICAgfVxuICAgIHJldHVybiBjaGlsZHJlbjtcbn1cbmZ1bmN0aW9uIGRvUmVuZGVyKGlucHV0KSB7XG4gICAgbGV0IHsgQXBwICwgQ29tcG9uZW50ICwgcHJvcHMgLCBlcnIgIH0gPSBpbnB1dDtcbiAgICBsZXQgc3R5bGVTaGVldHMgPSAnaW5pdGlhbCcgaW4gaW5wdXQgPyB1bmRlZmluZWQgOiBpbnB1dC5zdHlsZVNoZWV0cztcbiAgICBDb21wb25lbnQgPSBDb21wb25lbnQgfHwgbGFzdEFwcFByb3BzLkNvbXBvbmVudDtcbiAgICBwcm9wcyA9IHByb3BzIHx8IGxhc3RBcHBQcm9wcy5wcm9wcztcbiAgICBjb25zdCBhcHBQcm9wcyA9IF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBDb21wb25lbnQsXG4gICAgICAgIGVycixcbiAgICAgICAgcm91dGVyXG4gICAgfSk7XG4gICAgLy8gbGFzdEFwcFByb3BzIGhhcyB0byBiZSBzZXQgYmVmb3JlIFJlYWN0RG9tLnJlbmRlciB0byBhY2NvdW50IGZvciBSZWFjdERvbSB0aHJvd2luZyBhbiBlcnJvci5cbiAgICBsYXN0QXBwUHJvcHMgPSBhcHBQcm9wcztcbiAgICBsZXQgY2FuY2VsZWQgPSBmYWxzZTtcbiAgICBsZXQgcmVzb2x2ZVByb21pc2U7XG4gICAgY29uc3QgcmVuZGVyUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIGlmIChsYXN0UmVuZGVyUmVqZWN0KSB7XG4gICAgICAgICAgICBsYXN0UmVuZGVyUmVqZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZVByb21pc2UgPSAoKT0+e1xuICAgICAgICAgICAgbGFzdFJlbmRlclJlamVjdCA9IG51bGw7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH07XG4gICAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSAoKT0+e1xuICAgICAgICAgICAgY2FuY2VsZWQgPSB0cnVlO1xuICAgICAgICAgICAgbGFzdFJlbmRlclJlamVjdCA9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignQ2FuY2VsIHJlbmRlcmluZyByb3V0ZScpO1xuICAgICAgICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBoYXMgYSByZXR1cm4gdHlwZSB0byBlbnN1cmUgaXQgZG9lc24ndCBzdGFydCByZXR1cm5pbmcgYVxuICAgIC8vIFByb21pc2UuIEl0IHNob3VsZCByZW1haW4gc3luY2hyb25vdXMuXG4gICAgZnVuY3Rpb24gb25TdGFydCgpIHtcbiAgICAgICAgaWYgKCFzdHlsZVNoZWV0cyB8fCAvLyBXZSB1c2UgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQsIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICAgICAgLy8gdW5sZXNzIHdlJ3JlIGluIHByb2R1Y3Rpb246XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50U3R5bGVUYWdzID0gbG9vc2VUb0FycmF5KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlW2RhdGEtbi1ocmVmXScpKTtcbiAgICAgICAgY29uc3QgY3VycmVudEhyZWZzID0gbmV3IFNldChjdXJyZW50U3R5bGVUYWdzLm1hcCgodGFnKT0+dGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uLWhyZWYnKSkpO1xuICAgICAgICBjb25zdCBub3NjcmlwdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ25vc2NyaXB0W2RhdGEtbi1jc3NdJyk7XG4gICAgICAgIGNvbnN0IG5vbmNlID0gbm9zY3JpcHQgPT0gbnVsbCA/IHZvaWQgMCA6IG5vc2NyaXB0LmdldEF0dHJpYnV0ZSgnZGF0YS1uLWNzcycpO1xuICAgICAgICBzdHlsZVNoZWV0cy5mb3JFYWNoKCh7IGhyZWYgLCB0ZXh0ICB9KT0+e1xuICAgICAgICAgICAgaWYgKCFjdXJyZW50SHJlZnMuaGFzKGhyZWYpKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3R5bGVUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgICAgICAgIHN0eWxlVGFnLnNldEF0dHJpYnV0ZSgnZGF0YS1uLWhyZWYnLCBocmVmKTtcbiAgICAgICAgICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ21lZGlhJywgJ3gnKTtcbiAgICAgICAgICAgICAgICBpZiAobm9uY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdub25jZScsIG5vbmNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZVRhZyk7XG4gICAgICAgICAgICAgICAgc3R5bGVUYWcuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uSGVhZENvbW1pdCgpIHtcbiAgICAgICAgaWYgKC8vIFdlIHVzZSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudCwgc28gd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgICAgICAvLyB1bmxlc3Mgd2UncmUgaW4gcHJvZHVjdGlvbjpcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiAvLyBXZSBjYW4gc2tpcCB0aGlzIGR1cmluZyBoeWRyYXRpb24uIFJ1bm5pbmcgaXQgd29udCBjYXVzZSBhbnkgaGFybSwgYnV0XG4gICAgICAgIC8vIHdlIG1heSBhcyB3ZWxsIHNhdmUgdGhlIENQVSBjeWNsZXM6XG4gICAgICAgIHN0eWxlU2hlZXRzICYmIC8vIEVuc3VyZSB0aGlzIHJlbmRlciB3YXMgbm90IGNhbmNlbGVkXG4gICAgICAgICFjYW5jZWxlZCkge1xuICAgICAgICAgICAgY29uc3QgZGVzaXJlZEhyZWZzID0gbmV3IFNldChzdHlsZVNoZWV0cy5tYXAoKHMpPT5zLmhyZWYpKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdHlsZVRhZ3MgPSBsb29zZVRvQXJyYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGVbZGF0YS1uLWhyZWZdJykpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEhyZWZzID0gY3VycmVudFN0eWxlVGFncy5tYXAoKHRhZyk9PnRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbi1ocmVmJykpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGA8c3R5bGU+YCB0YWdzIG9uIG9yIG9mZiBkZXBlbmRpbmcgb24gaWYgdGhleSdyZSBuZWVkZWQ6XG4gICAgICAgICAgICBmb3IobGV0IGlkeCA9IDA7IGlkeCA8IGN1cnJlbnRIcmVmcy5sZW5ndGg7ICsraWR4KXtcbiAgICAgICAgICAgICAgICBpZiAoZGVzaXJlZEhyZWZzLmhhcyhjdXJyZW50SHJlZnNbaWR4XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0eWxlVGFnc1tpZHhdLnJlbW92ZUF0dHJpYnV0ZSgnbWVkaWEnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3R5bGVUYWdzW2lkeF0uc2V0QXR0cmlidXRlKCdtZWRpYScsICd4Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUmVvcmRlciBzdHlsZXMgaW50byBpbnRlbmRlZCBvcmRlcjpcbiAgICAgICAgICAgIGxldCByZWZlcmVuY2VOb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignbm9zY3JpcHRbZGF0YS1uLWNzc10nKTtcbiAgICAgICAgICAgIGlmICgvLyBUaGlzIHNob3VsZCBiZSBhbiBpbnZhcmlhbnQ6XG4gICAgICAgICAgICByZWZlcmVuY2VOb2RlKSB7XG4gICAgICAgICAgICAgICAgc3R5bGVTaGVldHMuZm9yRWFjaCgoeyBocmVmICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtkYXRhLW4taHJlZj1cIiR7aHJlZn1cIl1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRhcmdldFRhZywgcmVmZXJlbmNlTm9kZS5uZXh0U2libGluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlID0gdGFyZ2V0VGFnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGaW5hbGx5LCBjbGVhbiB1cCBzZXJ2ZXIgcmVuZGVyZWQgc3R5bGVzaGVldHM6XG4gICAgICAgICAgICBsb29zZVRvQXJyYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tkYXRhLW4tcF0nKSkuZm9yRWFjaCgoZWwpPT57XG4gICAgICAgICAgICAgICAgZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQuc2Nyb2xsKSB7XG4gICAgICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gaHRtbEVsZW1lbnQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I7XG4gICAgICAgICAgICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICdhdXRvJztcbiAgICAgICAgICAgIC8vIEluIENocm9tZS1iYXNlZCBicm93c2VycyB3ZSBuZWVkIHRvIGZvcmNlIHJlZmxvdyBiZWZvcmUgY2FsbGluZyBgc2Nyb2xsVG9gLlxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGl0IHdpbGwgbm90IHBpY2t1cCB0aGUgY2hhbmdlIGluIHNjcm9sbEJlaGF2aW9yXG4gICAgICAgICAgICAvLyBNb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2lzc3Vlcy80MDcxOSNpc3N1ZWNvbW1lbnQtMTMzNjI0ODA0MlxuICAgICAgICAgICAgaHRtbEVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKTtcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyhpbnB1dC5zY3JvbGwueCwgaW5wdXQuc2Nyb2xsLnkpO1xuICAgICAgICAgICAgaHRtbEVsZW1lbnQuc3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSBleGlzdGluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBvblJvb3RDb21taXQoKSB7XG4gICAgICAgIHJlc29sdmVQcm9taXNlKCk7XG4gICAgfVxuICAgIG9uU3RhcnQoKTtcbiAgICBjb25zdCBlbGVtID0gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yZWFjdC5kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoSGVhZCwge1xuICAgICAgICBjYWxsYmFjazogb25IZWFkQ29tbWl0XG4gICAgfSksIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHBDb250YWluZXIsIG51bGwsIHJlbmRlckFwcChBcHAsIGFwcFByb3BzKSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9wb3J0YWwuUG9ydGFsLCB7XG4gICAgICAgIHR5cGU6IFwibmV4dC1yb3V0ZS1hbm5vdW5jZXJcIlxuICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcm91dGVBbm5vdW5jZXIuUm91dGVBbm5vdW5jZXIsIG51bGwpKSkpO1xuICAgIC8vIFdlIGNhdGNoIHJ1bnRpbWUgZXJyb3JzIHVzaW5nIGNvbXBvbmVudERpZENhdGNoIHdoaWNoIHdpbGwgdHJpZ2dlciByZW5kZXJFcnJvclxuICAgIHJlbmRlclJlYWN0RWxlbWVudChhcHBFbGVtZW50LCAoY2FsbGJhY2spPT4vKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUm9vdCwge1xuICAgICAgICAgICAgY2FsbGJhY2tzOiBbXG4gICAgICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICAgICAgb25Sb290Q29tbWl0XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sIHByb2Nlc3MuZW52Ll9fTkVYVF9TVFJJQ1RfTU9ERSA/IC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfcmVhY3QuZGVmYXVsdC5TdHJpY3RNb2RlLCBudWxsLCBlbGVtKSA6IGVsZW0pKTtcbiAgICByZXR1cm4gcmVuZGVyUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIHJlbmRlcihyZW5kZXJpbmdQcm9wcykge1xuICAgIHJldHVybiBfcmVuZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfcmVuZGVyKCkge1xuICAgIF9yZW5kZXIgPSBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKihyZW5kZXJpbmdQcm9wcykge1xuICAgICAgICBpZiAocmVuZGVyaW5nUHJvcHMuZXJyKSB7XG4gICAgICAgICAgICB5aWVsZCByZW5kZXJFcnJvcihyZW5kZXJpbmdQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHlpZWxkIGRvUmVuZGVyKHJlbmRlcmluZ1Byb3BzKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJFcnIgPSAoMCwgX2lzRXJyb3IpLmdldFByb3BlckVycm9yKGVycik7XG4gICAgICAgICAgICAvLyBidWJibGUgdXAgY2FuY2VsYXRpb24gZXJyb3JzXG4gICAgICAgICAgICBpZiAocmVuZGVyRXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgIHRocm93IHJlbmRlckVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGlzIGVycm9yIGlzIGRpc3BsYXllZCBpbiB0aGUgb3ZlcmxheSBpbiBkZXZlbG9wbWVudFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVuZGVyRXJyO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgcmVuZGVyRXJyb3IoX2V4dGVuZHMoe30sIHJlbmRlcmluZ1Byb3BzLCB7XG4gICAgICAgICAgICAgICAgZXJyOiByZW5kZXJFcnJcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBfcmVuZGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBoeWRyYXRlKG9wdHMpIHtcbiAgICByZXR1cm4gX2h5ZHJhdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9oeWRyYXRlKCkge1xuICAgIF9oeWRyYXRlID0gX2FzeW5jX3RvX2dlbmVyYXRvcihmdW5jdGlvbioob3B0cykge1xuICAgICAgICBsZXQgaW5pdGlhbEVyciA9IGluaXRpYWxEYXRhLmVycjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcEVudHJ5cG9pbnQgPSB5aWVsZCBwYWdlTG9hZGVyLnJvdXRlTG9hZGVyLndoZW5FbnRyeXBvaW50KCcvX2FwcCcpO1xuICAgICAgICAgICAgaWYgKCdlcnJvcicgaW4gYXBwRW50cnlwb2ludCkge1xuICAgICAgICAgICAgICAgIHRocm93IGFwcEVudHJ5cG9pbnQuZXJyb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGNvbXBvbmVudDogYXBwICwgZXhwb3J0czogbW9kICB9ID0gYXBwRW50cnlwb2ludDtcbiAgICAgICAgICAgIENhY2hlZEFwcCA9IGFwcDtcbiAgICAgICAgICAgIGlmIChtb2QgJiYgbW9kLnJlcG9ydFdlYlZpdGFscykge1xuICAgICAgICAgICAgICAgIG9uUGVyZkVudHJ5ID0gKHsgaWQgLCBuYW1lICwgc3RhcnRUaW1lICwgdmFsdWUgLCBkdXJhdGlvbiAsIGVudHJ5VHlwZSAsIGVudHJpZXMgLCBhdHRyaWJ1dGlvbiAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29tYmluZXMgdGltZXN0YW1wIHdpdGggcmFuZG9tIG51bWJlciBmb3IgdW5pcXVlIElEXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuaXF1ZUlEID0gYCR7RGF0ZS5ub3coKX0tJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoOWUxMiAtIDEpKSArIDFlMTJ9YDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBlcmZTdGFydEVudHJ5O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cmllcyAmJiBlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZlN0YXJ0RW50cnkgPSBlbnRyaWVzWzBdLnN0YXJ0VGltZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWJWaXRhbHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogaWQgfHwgdW5pcXVlSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUgfHwgcGVyZlN0YXJ0RW50cnksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUgPT0gbnVsbCA/IGR1cmF0aW9uIDogdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50cnlUeXBlID09PSAnbWFyaycgfHwgZW50cnlUeXBlID09PSAnbWVhc3VyZScgPyAnY3VzdG9tJyA6ICd3ZWItdml0YWwnXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2ViVml0YWxzLmF0dHJpYnV0aW9uID0gYXR0cmlidXRpb247XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbW9kLnJlcG9ydFdlYlZpdGFscyh3ZWJWaXRhbHMpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwYWdlRW50cnlwb2ludCA9IC8vIFRoZSBkZXYgc2VydmVyIGZhaWxzIHRvIHNlcnZlIHNjcmlwdCBhc3NldHMgd2hlbiB0aGVyZSdzIGEgaHlkcmF0aW9uXG4gICAgICAgICAgICAvLyBlcnJvciwgc28gd2UgbmVlZCB0byBza2lwIHdhaXRpbmcgZm9yIHRoZSBlbnRyeXBvaW50LlxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgaW5pdGlhbERhdGEuZXJyID8ge1xuICAgICAgICAgICAgICAgIGVycm9yOiBpbml0aWFsRGF0YS5lcnJcbiAgICAgICAgICAgIH0gOiB5aWVsZCBwYWdlTG9hZGVyLnJvdXRlTG9hZGVyLndoZW5FbnRyeXBvaW50KGluaXRpYWxEYXRhLnBhZ2UpO1xuICAgICAgICAgICAgaWYgKCdlcnJvcicgaW4gcGFnZUVudHJ5cG9pbnQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBwYWdlRW50cnlwb2ludC5lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIENhY2hlZENvbXBvbmVudCA9IHBhZ2VFbnRyeXBvaW50LmNvbXBvbmVudDtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgIH0gPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtaXMnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZShDYWNoZWRDb21wb25lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGRlZmF1bHQgZXhwb3J0IGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiBwYWdlOiBcIiR7aW5pdGlhbERhdGEucGFnZX1cImApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgICAgICAgICAvLyBUaGlzIGNhdGNoZXMgZXJyb3JzIGxpa2UgdGhyb3dpbmcgaW4gdGhlIHRvcCBsZXZlbCBvZiBhIG1vZHVsZVxuICAgICAgICAgICAgaW5pdGlhbEVyciA9ICgwLCBfaXNFcnJvcikuZ2V0UHJvcGVyRXJyb3IoZXJyb3IxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZ2V0U2VydmVyRXJyb3IgLCAgfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9kaXN0L2NsaWVudCcpO1xuICAgICAgICAgICAgLy8gU2VydmVyLXNpZGUgcnVudGltZSBlcnJvcnMgbmVlZCB0byBiZSByZS10aHJvd24gb24gdGhlIGNsaWVudC1zaWRlIHNvXG4gICAgICAgICAgICAvLyB0aGF0IHRoZSBvdmVybGF5IGlzIHJlbmRlcmVkLlxuICAgICAgICAgICAgaWYgKGluaXRpYWxFcnIpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbEVyciA9PT0gaW5pdGlhbERhdGEuZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhdGUgYSBuZXcgZXJyb3Igb2JqZWN0LiBXZSBgdGhyb3dgIGl0IGJlY2F1c2Ugc29tZSBicm93c2Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgc2V0IHRoZSBgc3RhY2tgIHdoZW4gdGhyb3duLCBhbmQgd2Ugd2FudCB0byBlbnN1cmUgb3VycyBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBvdmVycmlkZGVuIHdoZW4gd2UgcmUtdGhyb3cgaXQgYmVsb3cuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGluaXRpYWxFcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IubmFtZSA9IGluaXRpYWxFcnIubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnN0YWNrID0gaW5pdGlhbEVyci5zdGFjaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGdldFNlcnZlckVycm9yKGVycm9yLCBpbml0aWFsRXJyLnNvdXJjZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGluaXRpYWxFcnI7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAod2luZG93Ll9fTkVYVF9QUkVMT0FEUkVBRFkpIHtcbiAgICAgICAgICAgIHlpZWxkIHdpbmRvdy5fX05FWFRfUFJFTE9BRFJFQURZKGluaXRpYWxEYXRhLmR5bmFtaWNJZHMpO1xuICAgICAgICB9XG4gICAgICAgIGV4cG9ydHMucm91dGVyID0gcm91dGVyID0gKDAsIF9yb3V0ZXIpLmNyZWF0ZVJvdXRlcihpbml0aWFsRGF0YS5wYWdlLCBpbml0aWFsRGF0YS5xdWVyeSwgYXNQYXRoLCB7XG4gICAgICAgICAgICBpbml0aWFsUHJvcHM6IGluaXRpYWxEYXRhLnByb3BzLFxuICAgICAgICAgICAgcGFnZUxvYWRlcixcbiAgICAgICAgICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgICAgICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICAgICAgICB3cmFwQXBwLFxuICAgICAgICAgICAgZXJyOiBpbml0aWFsRXJyLFxuICAgICAgICAgICAgaXNGYWxsYmFjazogQm9vbGVhbihpbml0aWFsRGF0YS5pc0ZhbGxiYWNrKSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjogKGluZm8sIEFwcCwgc2Nyb2xsKT0+cmVuZGVyKE9iamVjdC5hc3NpZ24oe30sIGluZm8sIHtcbiAgICAgICAgICAgICAgICAgICAgQXBwLFxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBsb2NhbGU6IGluaXRpYWxEYXRhLmxvY2FsZSxcbiAgICAgICAgICAgIGxvY2FsZXM6IGluaXRpYWxEYXRhLmxvY2FsZXMsXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgZG9tYWluTG9jYWxlczogaW5pdGlhbERhdGEuZG9tYWluTG9jYWxlcyxcbiAgICAgICAgICAgIGlzUHJldmlldzogaW5pdGlhbERhdGEuaXNQcmV2aWV3XG4gICAgICAgIH0pO1xuICAgICAgICBpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmUgPSB5aWVsZCByb3V0ZXIuX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2U7XG4gICAgICAgIGNvbnN0IHJlbmRlckN0eCA9IHtcbiAgICAgICAgICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgICAgICAgICAgaW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgIENvbXBvbmVudDogQ2FjaGVkQ29tcG9uZW50LFxuICAgICAgICAgICAgcHJvcHM6IGluaXRpYWxEYXRhLnByb3BzLFxuICAgICAgICAgICAgZXJyOiBpbml0aWFsRXJyXG4gICAgICAgIH07XG4gICAgICAgIGlmIChvcHRzID09IG51bGwgPyB2b2lkIDAgOiBvcHRzLmJlZm9yZVJlbmRlcikge1xuICAgICAgICAgICAgeWllbGQgb3B0cy5iZWZvcmVSZW5kZXIoKTtcbiAgICAgICAgfVxuICAgICAgICByZW5kZXIocmVuZGVyQ3R4KTtcbiAgICB9KTtcbiAgICByZXR1cm4gX2h5ZHJhdGUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiaW5pdGlhbGl6ZSIsImh5ZHJhdGUiLCJlbWl0dGVyIiwicm91dGVyIiwidmVyc2lvbiIsIl9hc3luY190b19nZW5lcmF0b3IiLCJyZXF1aXJlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwiX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCIsIl9yZWFjdCIsIl9jbGllbnQiLCJfaGVhZE1hbmFnZXJDb250ZXh0IiwiX21pdHQiLCJfcm91dGVyQ29udGV4dCIsIl9pc0R5bmFtaWMiLCJfcXVlcnlzdHJpbmciLCJfcnVudGltZUNvbmZpZyIsIl91dGlscyIsIl9wb3J0YWwiLCJfaGVhZE1hbmFnZXIiLCJfcGFnZUxvYWRlciIsIl9wZXJmb3JtYW5jZVJlbGF5ZXIiLCJfcm91dGVBbm5vdW5jZXIiLCJfcm91dGVyIiwiX2lzRXJyb3IiLCJfaW1hZ2VDb25maWdDb250ZXh0IiwiX3JlbW92ZUJhc2VQYXRoIiwiX2hhc0Jhc2VQYXRoIiwiX2FwcFJvdXRlckNvbnRleHQiLCJfYWRhcHRlcnMiLCJfaG9va3NDbGllbnRDb250ZXh0IiwiX29uUmVjb3ZlcmFibGVFcnJvciIsImxvb3NlVG9BcnJheSIsImlucHV0Iiwic2xpY2UiLCJjYWxsIiwiaW5pdGlhbERhdGEiLCJkZWZhdWx0TG9jYWxlIiwidW5kZWZpbmVkIiwiYXNQYXRoIiwicGFnZUxvYWRlciIsImFwcEVsZW1lbnQiLCJoZWFkTWFuYWdlciIsImluaXRpYWxNYXRjaGVzTWlkZGxld2FyZSIsImxhc3RBcHBQcm9wcyIsImxhc3RSZW5kZXJSZWplY3QiLCJ3ZWJwYWNrSE1SIiwiQ2FjaGVkQXBwIiwib25QZXJmRW50cnkiLCJDYWNoZWRDb21wb25lbnQiLCJzZWxmIiwiX19uZXh0X3JlcXVpcmVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJDb250YWluZXIiLCJDb21wb25lbnQiLCJjb21wb25lbnREaWRDYXRjaCIsImNvbXBvbmVudEVyciIsImluZm8iLCJwcm9wcyIsImZuIiwiY29tcG9uZW50RGlkTW91bnQiLCJzY3JvbGxUb0hhc2giLCJpc1NzciIsImlzRmFsbGJhY2siLCJuZXh0RXhwb3J0IiwiaXNEeW5hbWljUm91dGUiLCJwYXRobmFtZSIsImxvY2F0aW9uIiwic2VhcmNoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9IQVNfUkVXUklURVMiLCJfX05fU1NHIiwicmVwbGFjZSIsIlN0cmluZyIsImFzc2lnbiIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJxdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsIl9oIiwic2hhbGxvdyIsImNhdGNoIiwiZXJyIiwiY2FuY2VsbGVkIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiaGFzaCIsInN1YnN0cmluZyIsImVsIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNldFRpbWVvdXQiLCJzY3JvbGxJbnRvVmlldyIsInJlbmRlciIsImNoaWxkcmVuIiwiUmVhY3REZXZPdmVybGF5IiwiY3JlYXRlRWxlbWVudCIsIl9pbml0aWFsaXplIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJvcHRzIiwiSlNPTiIsInBhcnNlIiwidGV4dENvbnRlbnQiLCJ3aW5kb3ciLCJfX05FWFRfREFUQV9fIiwicHJlZml4IiwiYXNzZXRQcmVmaXgiLCJfX3dlYnBhY2tfcHVibGljX3BhdGhfXyIsInNldENvbmZpZyIsInNlcnZlclJ1bnRpbWVDb25maWciLCJwdWJsaWNSdW50aW1lQ29uZmlnIiwicnVudGltZUNvbmZpZyIsImdldFVSTCIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsImRldGVjdERvbWFpbkxvY2FsZSIsInBhcnNlUmVsYXRpdmVVcmwiLCJmb3JtYXRVcmwiLCJsb2NhbGVzIiwicGFyc2VkQXMiLCJsb2NhbGVQYXRoUmVzdWx0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJsb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsIl9fTkVYVF9JMThOX0RPTUFJTlMiLCJob3N0bmFtZSIsInNjcmlwdExvYWRlciIsImluaXRTY3JpcHRMb2FkZXIiLCJidWlsZElkIiwicmVnaXN0ZXIiLCJyIiwiZiIsInJvdXRlTG9hZGVyIiwib25FbnRyeXBvaW50IiwiX19ORVhUX1AiLCJtYXAiLCJwIiwicHVzaCIsImdldElzU3NyIiwicmVuZGVyQXBwIiwiQXBwIiwiYXBwUHJvcHMiLCJBcHBDb250YWluZXIiLCJfYXV0b0V4cG9ydCIsImVycm9yIiwicmVuZGVyRXJyb3IiLCJjb25zb2xlIiwiQXBwUm91dGVyQ29udGV4dCIsIlByb3ZpZGVyIiwiYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZSIsIlNlYXJjaFBhcmFtc0NvbnRleHQiLCJhZGFwdEZvclNlYXJjaFBhcmFtcyIsIlBhdGhuYW1lQ29udGV4dFByb3ZpZGVyQWRhcHRlciIsImlzQXV0b0V4cG9ydCIsImF1dG9FeHBvcnQiLCJSb3V0ZXJDb250ZXh0IiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiSW1hZ2VDb25maWdDb250ZXh0IiwiX19ORVhUX0lNQUdFX09QVFMiLCJ3cmFwQXBwIiwid3JhcHBlZEFwcFByb3BzIiwicmVuZGVyRXJyb3JQcm9wcyIsIm9uVW5yZWNvdmVyYWJsZUVycm9yIiwiZG9SZW5kZXIiLCJzdHlsZVNoZWV0cyIsImxvYWRQYWdlIiwidGhlbiIsInBhZ2UiLCJFcnJvckNvbXBvbmVudCIsImVycm9yTW9kdWxlIiwiYXBwTW9kdWxlIiwibSIsInJlZiIsIkFwcFRyZWUiLCJhcHBDdHgiLCJjdHgiLCJQcm9taXNlIiwicmVzb2x2ZSIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJpbml0UHJvcHMiLCJIZWFkIiwiY2FsbGJhY2siLCJ1c2VMYXlvdXRFZmZlY3QiLCJyZWFjdFJvb3QiLCJzaG91bGRIeWRyYXRlIiwiY2xlYXJNYXJrcyIsImZvckVhY2giLCJtYXJrIiwicGVyZm9ybWFuY2UiLCJtYXJrSHlkcmF0ZUNvbXBsZXRlIiwiU1QiLCJtZWFzdXJlIiwiZ2V0RW50cmllc0J5TmFtZSIsIm1hcmtSZW5kZXJDb21wbGV0ZSIsIm5hdlN0YXJ0RW50cmllcyIsImxlbmd0aCIsIm5hbWUiLCJjbGVhck1lYXN1cmVzIiwicmVuZGVyUmVhY3RFbGVtZW50IiwiZG9tRWwiLCJyZWFjdEVsIiwiaHlkcmF0ZVJvb3QiLCJvblJlY292ZXJhYmxlRXJyb3IiLCJzdGFydFRyYW5zaXRpb24iLCJSb290IiwiY2FsbGJhY2tzIiwidXNlRWZmZWN0IiwiX19ORVhUX1RFU1RfTU9ERSIsIl9fTkVYVF9IWURSQVRFRCIsIl9fTkVYVF9IWURSQVRFRF9DQiIsImNhbmNlbGVkIiwicmVzb2x2ZVByb21pc2UiLCJyZW5kZXJQcm9taXNlIiwicmVqZWN0IiwiRXJyb3IiLCJvblN0YXJ0IiwiY3VycmVudFN0eWxlVGFncyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJjdXJyZW50SHJlZnMiLCJTZXQiLCJ0YWciLCJnZXRBdHRyaWJ1dGUiLCJub3NjcmlwdCIsInF1ZXJ5U2VsZWN0b3IiLCJub25jZSIsImhyZWYiLCJ0ZXh0IiwiaGFzIiwic3R5bGVUYWciLCJzZXRBdHRyaWJ1dGUiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJjcmVhdGVUZXh0Tm9kZSIsIm9uSGVhZENvbW1pdCIsImRlc2lyZWRIcmVmcyIsInMiLCJpZHgiLCJyZW1vdmVBdHRyaWJ1dGUiLCJyZWZlcmVuY2VOb2RlIiwidGFyZ2V0VGFnIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsIm5leHRTaWJsaW5nIiwicmVtb3ZlQ2hpbGQiLCJzY3JvbGwiLCJodG1sRWxlbWVudCIsImRvY3VtZW50RWxlbWVudCIsImV4aXN0aW5nIiwic3R5bGUiLCJzY3JvbGxCZWhhdmlvciIsImdldENsaWVudFJlY3RzIiwic2Nyb2xsVG8iLCJ4IiwieSIsIm9uUm9vdENvbW1pdCIsImVsZW0iLCJGcmFnbWVudCIsIlBvcnRhbCIsInR5cGUiLCJSb3V0ZUFubm91bmNlciIsIl9fTkVYVF9TVFJJQ1RfTU9ERSIsIlN0cmljdE1vZGUiLCJyZW5kZXJpbmdQcm9wcyIsIl9yZW5kZXIiLCJyZW5kZXJFcnIiLCJnZXRQcm9wZXJFcnJvciIsIl9oeWRyYXRlIiwiaW5pdGlhbEVyciIsImFwcEVudHJ5cG9pbnQiLCJ3aGVuRW50cnlwb2ludCIsImNvbXBvbmVudCIsImFwcCIsIm1vZCIsInJlcG9ydFdlYlZpdGFscyIsImlkIiwic3RhcnRUaW1lIiwiZHVyYXRpb24iLCJlbnRyeVR5cGUiLCJlbnRyaWVzIiwiYXR0cmlidXRpb24iLCJ1bmlxdWVJRCIsIk1hdGgiLCJEYXRlIiwibm93IiwiZmxvb3IiLCJyYW5kb20iLCJwZXJmU3RhcnRFbnRyeSIsIndlYlZpdGFscyIsImxhYmVsIiwicGFnZUVudHJ5cG9pbnQiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJlcnJvcjEiLCJnZXRTZXJ2ZXJFcnJvciIsIm1lc3NhZ2UiLCJlIiwic3RhY2siLCJzb3VyY2UiLCJfX05FWFRfUFJFTE9BRFJFQURZIiwiZHluYW1pY0lkcyIsImNyZWF0ZVJvdXRlciIsImluaXRpYWxQcm9wcyIsIkJvb2xlYW4iLCJzdWJzY3JpcHRpb24iLCJkb21haW5Mb2NhbGVzIiwiaXNQcmV2aWV3IiwiX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2UiLCJyZW5kZXJDdHgiLCJpbml0aWFsIiwiYmVmb3JlUmVuZGVyIiwiX19lc01vZHVsZSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/index.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/next-dev.js": /*!***************************************************!*\ !*** ./node_modules/next/dist/client/next-dev.js ***! \***************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _ = __webpack_require__(/*! ./ */ \"./node_modules/next/dist/client/index.js\");\nvar _onDemandEntriesClient = _interop_require_default(__webpack_require__(/*! ./dev/on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\nvar _webpackHotMiddlewareClient = _interop_require_default(__webpack_require__(/*! ./dev/webpack-hot-middleware-client */ \"./node_modules/next/dist/client/dev/webpack-hot-middleware-client.js\"));\nvar _devBuildWatcher = _interop_require_default(__webpack_require__(/*! ./dev/dev-build-watcher */ \"./node_modules/next/dist/client/dev/dev-build-watcher.js\"));\nvar _fouc = __webpack_require__(/*! ./dev/fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\nvar _websocket = __webpack_require__(/*! ./dev/error-overlay/websocket */ \"./node_modules/next/dist/client/dev/error-overlay/websocket.js\");\nvar _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nif (!window._nextSetupHydrationWarning) {\n const origConsoleError = window.console.error;\n window.console.error = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const isHydrateError = args.some((arg)=>typeof arg === \"string\" && arg.match(/(hydration|content does not match|did not match)/i));\n if (isHydrateError) {\n args = [\n ...args,\n \"\\n\\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error\"\n ];\n }\n origConsoleError.apply(window.console, args);\n };\n window._nextSetupHydrationWarning = true;\n}\nwindow.next = {\n version: _.version,\n // router is initialized later so it has to be live-binded\n get router () {\n return _.router;\n },\n emitter: _.emitter\n};\nconst webpackHMR = (0, _webpackHotMiddlewareClient).default();\n(0, _).initialize({\n webpackHMR\n}).then((param)=>{\n let { assetPrefix } = param;\n (0, _websocket).connectHMR({\n assetPrefix,\n path: \"/_next/webpack-hmr\"\n });\n return (0, _).hydrate({\n beforeRender: _fouc.displayContent\n }).then(()=>{\n (0, _onDemandEntriesClient).default();\n let buildIndicatorHandler = ()=>{};\n function devPagesManifestListener(event) {\n if (event.data.indexOf(\"devPagesManifest\") !== -1) {\n fetch(\"\".concat(assetPrefix, \"/_next/static/development/_devPagesManifest.json\")).then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n } else if (event.data.indexOf(\"middlewareChanges\") !== -1) {\n return window.location.reload();\n } else if (event.data.indexOf(\"serverOnlyChanges\") !== -1) {\n const { pages } = JSON.parse(event.data);\n // Make sure to reload when the dev-overlay is showing for an\n // API route\n if (pages.includes(_.router.query.__NEXT_PAGE)) {\n return window.location.reload();\n }\n if (!_.router.clc && pages.includes(_.router.pathname)) {\n console.log(\"Refreshing page data due to server-side change\");\n buildIndicatorHandler(\"building\");\n const clearIndicator = ()=>buildIndicatorHandler(\"built\");\n _.router.replace(_.router.pathname + \"?\" + String((0, _querystring).assign((0, _querystring).urlQueryToSearchParams(_.router.query), new URLSearchParams(location.search))), _.router.asPath, {\n scroll: false\n }).catch(()=>{\n // trigger hard reload when failing to refresh data\n // to show error overlay properly\n location.reload();\n }).finally(clearIndicator);\n }\n }\n }\n (0, _websocket).addMessageListener(devPagesManifestListener);\n if (true) {\n (0, _devBuildWatcher).default((handler)=>{\n buildIndicatorHandler = handler;\n }, \"bottom-right\");\n }\n });\n}).catch((err)=>{\n console.error(\"Error was not caught\", err);\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=next-dev.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9uZXh0LWRldi5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLElBQUlBLDJCQUEyQkMsbUpBQStEO0FBQzlGLElBQUlFLElBQUlGLG1CQUFPQSxDQUFDLG9EQUFJO0FBQ3BCLElBQUlHLHlCQUF5QkoseUJBQXlCQyxtQkFBT0EsQ0FBQyx1R0FBZ0M7QUFDOUYsSUFBSUksOEJBQThCTCx5QkFBeUJDLG1CQUFPQSxDQUFDLGlIQUFxQztBQUN4RyxJQUFJSyxtQkFBbUJOLHlCQUF5QkMsbUJBQU9BLENBQUMseUZBQXlCO0FBQ2pGLElBQUlNLFFBQVFOLG1CQUFPQSxDQUFDLCtEQUFZO0FBQ2hDLElBQUlPLGFBQWFQLG1CQUFPQSxDQUFDLHFHQUErQjtBQUN4RCxJQUFJUSxlQUFlUixtQkFBT0EsQ0FBQywrR0FBd0M7QUFDbkUsSUFBSSxDQUFDUyxPQUFPQywwQkFBMEIsRUFBRTtJQUNwQyxNQUFNQyxtQkFBbUJGLE9BQU9HLE9BQU8sQ0FBQ0MsS0FBSztJQUM3Q0osT0FBT0csT0FBTyxDQUFDQyxLQUFLLEdBQUcsV0FBVzt5Q0FBUEM7WUFBQUE7O1FBQ3ZCLE1BQU1DLGlCQUFpQkQsS0FBS0UsSUFBSSxDQUFDLENBQUNDLE1BQU0sT0FBT0EsUUFBUSxZQUFZQSxJQUFJQyxLQUFLLENBQUM7UUFDN0UsSUFBSUgsZ0JBQWdCO1lBQ2hCRCxPQUFPO21CQUNBQTtnQkFDRjthQUNKO1FBQ0wsQ0FBQztRQUNESCxpQkFBaUJRLEtBQUssQ0FBQ1YsT0FBT0csT0FBTyxFQUFFRTtJQUMzQztJQUNBTCxPQUFPQywwQkFBMEIsR0FBRyxJQUFJO0FBQzVDLENBQUM7QUFDREQsT0FBT1csSUFBSSxHQUFHO0lBQ1ZDLFNBQVNuQixFQUFFbUIsT0FBTztJQUNsQiwwREFBMEQ7SUFDMUQsSUFBSUMsVUFBVTtRQUNWLE9BQU9wQixFQUFFb0IsTUFBTTtJQUNuQjtJQUNBQyxTQUFTckIsRUFBRXFCLE9BQU87QUFDdEI7QUFDQSxN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T0FBTzRCLFFBQVF2RSxPQUFPLEtBQUssY0FBZSxPQUFPdUUsUUFBUXZFLE9BQU8sS0FBSyxZQUFZdUUsUUFBUXZFLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT3VFLFFBQVF2RSxPQUFPLENBQUN3RSxVQUFVLEtBQUssYUFBYTtJQUNyS0MsT0FBT0MsY0FBYyxDQUFDSCxRQUFRdkUsT0FBTyxFQUFFLGNBQWM7UUFBRTJFLE9BQU8sSUFBSTtJQUFDO0lBQ25FRixPQUFPZixNQUFNLENBQUNhLFFBQVF2RSxPQUFPLEVBQUV1RTtJQUMvQkssT0FBT0wsT0FBTyxHQUFHQSxRQUFRdkUsT0FBTztBQUNsQyxDQUFDLENBRUQsb0NBQW9DIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L25leHQtZGV2LmpzPzM1MTUiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzXCIpLmRlZmF1bHQ7XG52YXIgXyA9IHJlcXVpcmUoXCIuL1wiKTtcbnZhciBfb25EZW1hbmRFbnRyaWVzQ2xpZW50ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuL2Rldi9vbi1kZW1hbmQtZW50cmllcy1jbGllbnRcIikpO1xudmFyIF93ZWJwYWNrSG90TWlkZGxld2FyZUNsaWVudCA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnRcIikpO1xudmFyIF9kZXZCdWlsZFdhdGNoZXIgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vZGV2L2Rldi1idWlsZC13YXRjaGVyXCIpKTtcbnZhciBfZm91YyA9IHJlcXVpcmUoXCIuL2Rldi9mb3VjXCIpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi9kZXYvZXJyb3Itb3ZlcmxheS93ZWJzb2NrZXRcIik7XG52YXIgX3F1ZXJ5c3RyaW5nID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xuaWYgKCF3aW5kb3cuX25leHRTZXR1cEh5ZHJhdGlvbldhcm5pbmcpIHtcbiAgICBjb25zdCBvcmlnQ29uc29sZUVycm9yID0gd2luZG93LmNvbnNvbGUuZXJyb3I7XG4gICAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSAoLi4uYXJncyk9PntcbiAgICAgICAgY29uc3QgaXNIeWRyYXRlRXJyb3IgPSBhcmdzLnNvbWUoKGFyZyk9PnR5cGVvZiBhcmcgPT09ICdzdHJpbmcnICYmIGFyZy5tYXRjaCgvKGh5ZHJhdGlvbnxjb250ZW50IGRvZXMgbm90IG1hdGNofGRpZCBub3QgbWF0Y2gpL2kpKTtcbiAgICAgICAgaWYgKGlzSHlkcmF0ZUVycm9yKSB7XG4gICAgICAgICAgICBhcmdzID0gW1xuICAgICAgICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgICAgICAgYFxcblxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcmVhY3QtaHlkcmF0aW9uLWVycm9yYCwgXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIG9yaWdDb25zb2xlRXJyb3IuYXBwbHkod2luZG93LmNvbnNvbGUsIGFyZ3MpO1xuICAgIH07XG4gICAgd2luZG93Ll9uZXh0U2V0dXBIeWRyYXRpb25XYXJuaW5nID0gdHJ1ZTtcbn1cbndpbmRvdy5uZXh0ID0ge1xuICAgIHZlcnNpb246IF8udmVyc2lvbixcbiAgICAvLyByb3V0ZXIgaXMgaW5pdGlhbGl6ZWQgbGF0ZXIgc28gaXQgaGFzIHRvIGJlIGxpdmUtYmluZGVkXG4gICAgZ2V0IHJvdXRlciAoKSB7XG4gICAgICAgIHJldHVybiBfLnJvdXRlcjtcbiAgICB9LFxuICAgIGVtaXR0ZXI6IF8uZW1pdHRlclxufTtcbmNvbnN0IHdlYnBhY2tITVIgPSAoMCwgX3dlYnBhY2tIb3RNaWRkbGV3YXJlQ2xpZW50KS5kZWZhdWx0KCk7XG4oMCwgXykuaW5pdGlhbGl6ZSh7XG4gICAgd2VicGFja0hNUlxufSkudGhlbigoeyBhc3NldFByZWZpeCAgfSk9PntcbiAgICAoMCwgX3dlYnNvY2tldCkuY29ubmVjdEhNUih7XG4gICAgICAgIGFzc2V0UHJlZml4LFxuICAgICAgICBwYXRoOiAnL19uZXh0L3dlYnBhY2staG1yJ1xuICAgIH0pO1xuICAgIHJldHVybiAoMCwgXykuaHlkcmF0ZSh7XG4gICAgICAgIGJlZm9yZVJlbmRlcjogX2ZvdWMuZGlzcGxheUNvbnRlbnRcbiAgICB9KS50aGVuKCgpPT57XG4gICAgICAgICgwLCBfb25EZW1hbmRFbnRyaWVzQ2xpZW50KS5kZWZhdWx0KCk7XG4gICAgICAgIGxldCBidWlsZEluZGljYXRvckhhbmRsZXIgPSAoKT0+e307XG4gICAgICAgIGZ1bmN0aW9uIGRldlBhZ2VzTWFuaWZlc3RMaXN0ZW5lcihldmVudCkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZignZGV2UGFnZXNNYW5pZmVzdCcpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGZldGNoKGAke2Fzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvX2RldlBhZ2VzTWFuaWZlc3QuanNvbmApLnRoZW4oKHJlcyk9PnJlcy5qc29uKCkpLnRoZW4oKG1hbmlmZXN0KT0+e1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QgPSBtYW5pZmVzdDtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIGRldlBhZ2VzTWFuaWZlc3RgLCBlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2YoJ21pZGRsZXdhcmVDaGFuZ2VzJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCdzZXJ2ZXJPbmx5Q2hhbmdlcycpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcGFnZXMgIH0gPSBKU09OLnBhcnNlKGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byByZWxvYWQgd2hlbiB0aGUgZGV2LW92ZXJsYXkgaXMgc2hvd2luZyBmb3IgYW5cbiAgICAgICAgICAgICAgICAvLyBBUEkgcm91dGVcbiAgICAgICAgICAgICAgICBpZiAocGFnZXMuaW5jbHVkZXMoXy5yb3V0ZXIucXVlcnkuX19ORVhUX1BBR0UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghXy5yb3V0ZXIuY2xjICYmIHBhZ2VzLmluY2x1ZGVzKF8ucm91dGVyLnBhdGhuYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUmVmcmVzaGluZyBwYWdlIGRhdGEgZHVlIHRvIHNlcnZlci1zaWRlIGNoYW5nZScpO1xuICAgICAgICAgICAgICAgICAgICBidWlsZEluZGljYXRvckhhbmRsZXIoJ2J1aWxkaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFySW5kaWNhdG9yID0gKCk9PmJ1aWxkSW5kaWNhdG9ySGFuZGxlcignYnVpbHQnKTtcbiAgICAgICAgICAgICAgICAgICAgXy5yb3V0ZXIucmVwbGFjZShfLnJvdXRlci5wYXRobmFtZSArICc/JyArIFN0cmluZygoMCwgX3F1ZXJ5c3RyaW5nKS5hc3NpZ24oKDAsIF9xdWVyeXN0cmluZykudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhfLnJvdXRlci5xdWVyeSksIG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKSkpLCBfLnJvdXRlci5hc1BhdGgsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyaWdnZXIgaGFyZCByZWxvYWQgd2hlbiBmYWlsaW5nIHRvIHJlZnJlc2ggZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gc2hvdyBlcnJvciBvdmVybGF5IHByb3Blcmx5XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuZmluYWxseShjbGVhckluZGljYXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICgwLCBfd2Vic29ja2V0KS5hZGRNZXNzYWdlTGlzdGVuZXIoZGV2UGFnZXNNYW5pZmVzdExpc3RlbmVyKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9CVUlMRF9JTkRJQ0FUT1IpIHtcbiAgICAgICAgICAgICgwLCBfZGV2QnVpbGRXYXRjaGVyKS5kZWZhdWx0KChoYW5kbGVyKT0+e1xuICAgICAgICAgICAgICAgIGJ1aWxkSW5kaWNhdG9ySGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgICAgICB9LCBwcm9jZXNzLmVudi5fX05FWFRfQlVJTERfSU5ESUNBVE9SX1BPU0lUSU9OKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSkuY2F0Y2goKGVycik9PntcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciB3YXMgbm90IGNhdWdodCcsIGVycik7XG59KTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC1kZXYuanMubWFwIl0sIm5hbWVzIjpbIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsInJlcXVpcmUiLCJkZWZhdWx0IiwiXyIsIl9vbkRlbWFuZEVudHJpZXNDbGllbnQiLCJfd2VicGFja0hvdE1pZGRsZXdhcmVDbGllbnQiLCJfZGV2QnVpbGRXYXRjaGVyIiwiX2ZvdWMiLCJfd2Vic29ja2V0IiwiX3F1ZXJ5c3RyaW5nIiwid2luZG93IiwiX25leHRTZXR1cEh5ZHJhdGlvbldhcm5pbmciLCJvcmlnQ29uc29sZUVycm9yIiwiY29uc29sZSIsImVycm9yIiwiYXJncyIsImlzSHlkcmF0ZUVycm9yIiwic29tZSIsImFyZyIsIm1hdGNoIiwiYXBwbHkiLCJuZXh0IiwidmVyc2lvbiIsInJvdXRlciIsImVtaXR0ZXIiLCJ3ZWJwYWNrSE1SIiwiaW5pdGlhbGl6ZSIsInRoZW4iLCJhc3NldFByZWZpeCIsImNvbm5lY3RITVIiLCJwYXRoIiwiaHlkcmF0ZSIsImJlZm9yZVJlbmRlciIsImRpc3BsYXlDb250ZW50IiwiYnVpbGRJbmRpY2F0b3JIYW5kbGVyIiwiZGV2UGFnZXNNYW5pZmVzdExpc3RlbmVyIiwiZXZlbnQiLCJkYXRhIiwiaW5kZXhPZiIsImZldGNoIiwicmVzIiwianNvbiIsIm1hbmlmZXN0IiwiX19ERVZfUEFHRVNfTUFOSUZFU1QiLCJjYXRjaCIsImVyciIsImxvZyIsImxvY2F0aW9uIiwicmVsb2FkIiwicGFnZXMiLCJKU09OIiwicGFyc2UiLCJpbmNsdWRlcyIsInF1ZXJ5IiwiX19ORVhUX1BBR0UiLCJjbGMiLCJwYXRobmFtZSIsImNsZWFySW5kaWNhdG9yIiwicmVwbGFjZSIsIlN0cmluZyIsImFzc2lnbiIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJhc1BhdGgiLCJzY3JvbGwiLCJmaW5hbGx5IiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9CVUlMRF9JTkRJQ0FUT1IiLCJoYW5kbGVyIiwiX19ORVhUX0JVSUxEX0lORElDQVRPUl9QT1NJVElPTiIsImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/next-dev.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! \*******************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.normalizePathTrailingSlash = void 0;\nvar _removeTrailingSlash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nvar _parsePath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"./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 \"\".concat((0, _removeTrailingSlash).removeTrailingSlash(pathname)).concat(query).concat(hash);\n};\nexports.normalizePathTrailingSlash = normalizePathTrailingSlash;\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\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsa0NBQWtDLEdBQUcsS0FBSztBQUMxQyxJQUFJRyx1QkFBdUJDLG1CQUFPQSxDQUFDLG1JQUFrRDtBQUNyRixJQUFJQyxhQUFhRCxtQkFBT0EsQ0FBQyw2R0FBdUM7QUFDaEUsTUFBTUYsNkJBQTZCLENBQUNJLE9BQU87SUFDdkMsSUFBSSxDQUFDQSxLQUFLQyxVQUFVLENBQUMsUUFBUUMsU0FBd0MsRUFBRTtRQUNuRSxPQUFPRjtJQUNYLENBQUM7SUFDRCxNQUFNLEVBQUVLLFNBQVEsRUFBR0MsTUFBSyxFQUFHQyxLQUFJLEVBQUcsR0FBRyxDQUFDLEdBQUdSLFVBQVUsRUFBRVMsU0FBUyxDQUFDUjtJQUMvRCxJQUFJRSxLQUFpQyxFQUFFLEVBUXRDO0lBQ0QsT0FBTyxHQUE2REksT0FBMUQsQ0FBQyxHQUFHVCxvQkFBb0IsRUFBRWMsbUJBQW1CLENBQUNOLFdBQW9CRSxPQUFSRCxPQUFhLE9BQUxDO0FBQ2hGO0FBQ0FiLGtDQUFrQyxHQUFHRTtBQUVyQyxJQUFJLENBQUMsT0FBT0YsUUFBUW1CLE9BQU8sS0FBSyxjQUFlLE9BQU9uQixRQUFRbUIsT0FBTyxLQUFLLFlBQVluQixRQUFRbUIsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPbkIsUUFBUW1CLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDckt0QixPQUFPQyxjQUFjLENBQUNDLFFBQVFtQixPQUFPLEVBQUUsY0FBYztRQUFFbEIsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU91QixNQUFNLENBQUNyQixRQUFRbUIsT0FBTyxFQUFFbkI7SUFDL0JzQixPQUFPdEIsT0FBTyxHQUFHQSxRQUFRbUIsT0FBTztBQUNsQyxDQUFDLENBRUQsb0RBQW9EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaC5qcz80YzJlIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IHZvaWQgMDtcbnZhciBfcmVtb3ZlVHJhaWxpbmdTbGFzaCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2hcIik7XG52YXIgX3BhcnNlUGF0aCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoXCIpO1xuY29uc3Qgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSAocGF0aCk9PntcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGNvbnN0IHsgcGF0aG5hbWUgLCBxdWVyeSAsIGhhc2ggIH0gPSAoMCwgX3BhcnNlUGF0aCkucGFyc2VQYXRoKHBhdGgpO1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICAgICAgaWYgKC9cXC5bXi9dK1xcLz8kLy50ZXN0KHBhdGhuYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAkeygwLCBfcmVtb3ZlVHJhaWxpbmdTbGFzaCkucmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSl9JHtxdWVyeX0ke2hhc2h9YDtcbiAgICAgICAgfSBlbHNlIGlmIChwYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtwYXRobmFtZX0vJHtxdWVyeX0ke2hhc2h9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYCR7KDAsIF9yZW1vdmVUcmFpbGluZ1NsYXNoKS5yZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gO1xufTtcbmV4cG9ydHMubm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaDtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwiX3JlbW92ZVRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIiwiX3BhcnNlUGF0aCIsInBhdGgiLCJzdGFydHNXaXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0giLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInRlc3QiLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiZW5kc1dpdGgiLCJkZWZhdWx0IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/on-recoverable-error.js": /*!***************************************************************!*\ !*** ./node_modules/next/dist/client/on-recoverable-error.js ***! \***************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = onRecoverableError;\nvar _noSsrError = __webpack_require__(/*! ../shared/lib/no-ssr-error */ \"./node_modules/next/dist/shared/lib/no-ssr-error.js\");\nfunction onRecoverableError(err, errorInfo) {\n const digest = err.digest || errorInfo.digest;\n // Using default react onRecoverableError\n // x-ref: https://github.com/facebook/react/blob/d4bc16a7d69eb2ea38a88c8ac0b461d5f72cdcab/packages/react-dom/src/client/ReactDOMRoot.js#L83\n const defaultOnRecoverableError = typeof reportError === \"function\" ? reportError : (error)=>{\n window.console.error(error);\n };\n // Skip certain custom errors which are not expected to be reported on client\n if (digest === _noSsrError.NEXT_DYNAMIC_NO_SSR_CODE) return;\n defaultOnRecoverableError(err);\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=on-recoverable-error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9vbi1yZWNvdmVyYWJsZS1lcnJvci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxrQkFBZSxHQUFHRztBQUNsQixJQUFJQyxjQUFjQyxtQkFBT0EsQ0FBQyx1RkFBNEI7QUFDdEQsU0FBU0YsbUJBQW1CRyxHQUFHLEVBQUVDLFNBQVMsRUFBRTtJQUN4QyxNQUFNQyxTQUFTRixJQUFJRSxNQUFNLElBQUlELFVBQVVDLE1BQU07SUFDN0MseUNBQXlDO0lBQ3pDLDJJQUEySTtJQUMzSSxNQUFNQyw0QkFBNEIsT0FBT0MsZ0JBQWdCLGFBQ3pEQSxjQUFjLENBQUNDLFFBQVE7UUFDbkJDLE9BQU9DLE9BQU8sQ0FBQ0YsS0FBSyxDQUFDQTtJQUN6QixDQUFDO0lBQ0QsNkVBQTZFO0lBQzdFLElBQUlILFdBQVdKLFlBQVlVLHdCQUF3QixFQUFFO0lBQ3JETCwwQkFBMEJIO0FBQzlCO0FBRUEsSUFBSSxDQUFDLE9BQU9OLFFBQVFFLE9BQU8sS0FBSyxjQUFlLE9BQU9GLFFBQVFFLE9BQU8sS0FBSyxZQUFZRixRQUFRRSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9GLFFBQVFFLE9BQU8sQ0FBQ2EsVUFBVSxLQUFLLGFBQWE7SUFDcktqQixPQUFPQyxjQUFjLENBQUNDLFFBQVFFLE9BQU8sRUFBRSxjQUFjO1FBQUVELE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPa0IsTUFBTSxDQUFDaEIsUUFBUUUsT0FBTyxFQUFFRjtJQUMvQmlCLE9BQU9qQixPQUFPLEdBQUdBLFFBQVFFLE9BQU87QUFDbEMsQ0FBQyxDQUVELGdEQUFnRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9vbi1yZWNvdmVyYWJsZS1lcnJvci5qcz9lYjkyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gb25SZWNvdmVyYWJsZUVycm9yO1xudmFyIF9ub1NzckVycm9yID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvbm8tc3NyLWVycm9yXCIpO1xuZnVuY3Rpb24gb25SZWNvdmVyYWJsZUVycm9yKGVyciwgZXJyb3JJbmZvKSB7XG4gICAgY29uc3QgZGlnZXN0ID0gZXJyLmRpZ2VzdCB8fCBlcnJvckluZm8uZGlnZXN0O1xuICAgIC8vIFVzaW5nIGRlZmF1bHQgcmVhY3Qgb25SZWNvdmVyYWJsZUVycm9yXG4gICAgLy8geC1yZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL2Q0YmMxNmE3ZDY5ZWIyZWEzOGE4OGM4YWMwYjQ2MWQ1ZjcyY2RjYWIvcGFja2FnZXMvcmVhY3QtZG9tL3NyYy9jbGllbnQvUmVhY3RET01Sb290LmpzI0w4M1xuICAgIGNvbnN0IGRlZmF1bHRPblJlY292ZXJhYmxlRXJyb3IgPSB0eXBlb2YgcmVwb3J0RXJyb3IgPT09ICdmdW5jdGlvbicgPyAvLyBlbXVsYXRpbmcgYW4gdW5jYXVnaHQgSmF2YVNjcmlwdCBlcnJvci5cbiAgICByZXBvcnRFcnJvciA6IChlcnJvcik9PntcbiAgICAgICAgd2luZG93LmNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH07XG4gICAgLy8gU2tpcCBjZXJ0YWluIGN1c3RvbSBlcnJvcnMgd2hpY2ggYXJlIG5vdCBleHBlY3RlZCB0byBiZSByZXBvcnRlZCBvbiBjbGllbnRcbiAgICBpZiAoZGlnZXN0ID09PSBfbm9Tc3JFcnJvci5ORVhUX0RZTkFNSUNfTk9fU1NSX0NPREUpIHJldHVybjtcbiAgICBkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yKGVycik7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9uLXJlY292ZXJhYmxlLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImRlZmF1bHQiLCJvblJlY292ZXJhYmxlRXJyb3IiLCJfbm9Tc3JFcnJvciIsInJlcXVpcmUiLCJlcnIiLCJlcnJvckluZm8iLCJkaWdlc3QiLCJkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yIiwicmVwb3J0RXJyb3IiLCJlcnJvciIsIndpbmRvdyIsImNvbnNvbGUiLCJORVhUX0RZTkFNSUNfTk9fU1NSX0NPREUiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/on-recoverable-error.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/page-loader.js": /*!******************************************************!*\ !*** ./node_modules/next/dist/client/page-loader.js ***! \******************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _addBasePath = __webpack_require__(/*! ./add-base-path */ \"./node_modules/next/dist/client/add-base-path.js\");\nvar _router = __webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\");\nvar _getAssetPathFromRoute = _interop_require_default(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nvar _addLocale = __webpack_require__(/*! ./add-locale */ \"./node_modules/next/dist/client/add-locale.js\");\nvar _isDynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nvar _parseRelativeUrl = __webpack_require__(/*! ../shared/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nvar _removeTrailingSlash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nvar _routeLoader = __webpack_require__(/*! ./route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\nclass PageLoader {\n getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n this.promisedDevPagesManifest || (this.promisedDevPagesManifest = fetch(\"\".concat(this.assetPrefix, \"/_next/static/development/_devPagesManifest.json\")).then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest:\", err);\n throw new Error(\"Failed to fetch _devPagesManifest.json. Is something blocking that network request?\\n\" + \"Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest\");\n }));\n return this.promisedDevPagesManifest;\n }\n }\n }\n getMiddleware() {\n if (false) {} else {\n if (window.__DEV_MIDDLEWARE_MATCHERS) {\n return window.__DEV_MIDDLEWARE_MATCHERS;\n } else {\n if (!this.promisedMiddlewareMatchers) {\n // TODO: Decide what should happen when fetching fails instead of asserting\n // @ts-ignore\n this.promisedMiddlewareMatchers = fetch(\"\".concat(this.assetPrefix, \"/_next/static/\").concat(this.buildId, \"/_devMiddlewareManifest.json\")).then((res)=>res.json()).then((matchers)=>{\n window.__DEV_MIDDLEWARE_MATCHERS = matchers;\n return matchers;\n }).catch((err)=>{\n console.log(\"Failed to fetch _devMiddlewareManifest\", err);\n });\n }\n // TODO Remove this assertion as this could be undefined\n return this.promisedMiddlewareMatchers;\n }\n }\n }\n getDataHref(params) {\n const { asPath , href , locale } = params;\n const { pathname: hrefPathname , query , search } = (0, _parseRelativeUrl).parseRelativeUrl(href);\n const { pathname: asPathname } = (0, _parseRelativeUrl).parseRelativeUrl(asPath);\n const route = (0, _removeTrailingSlash).removeTrailingSlash(hrefPathname);\n if (route[0] !== \"/\") {\n throw new Error('Route name should start with a \"/\", got \"'.concat(route, '\"'));\n }\n const getHrefForSlug = (path)=>{\n const dataRoute = (0, _getAssetPathFromRoute).default((0, _removeTrailingSlash).removeTrailingSlash((0, _addLocale).addLocale(path, locale)), \".json\");\n return (0, _addBasePath).addBasePath(\"/_next/data/\".concat(this.buildId).concat(dataRoute).concat(search), true);\n };\n return getHrefForSlug(params.skipInterpolation ? asPathname : (0, _isDynamic).isDynamicRoute(route) ? (0, _router).interpolateAs(hrefPathname, asPathname, query).result : route);\n }\n _isSsg(/** the route (file-system path) */ route) {\n return this.promisedSsgManifest.then((manifest)=>manifest.has(route));\n }\n loadPage(route) {\n return this.routeLoader.loadRoute(route).then((res)=>{\n if (\"component\" in res) {\n return {\n page: res.component,\n mod: res.exports,\n styleSheets: res.styles.map((o)=>({\n href: o.href,\n text: o.content\n }))\n };\n }\n throw res.error;\n });\n }\n prefetch(route) {\n return this.routeLoader.prefetch(route);\n }\n constructor(buildId, assetPrefix){\n this.routeLoader = (0, _routeLoader).createRouteLoader(assetPrefix);\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n this.promisedSsgManifest = new Promise((resolve)=>{\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = ()=>{\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n}\nexports[\"default\"] = PageLoader;\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=page-loader.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWxvYWRlci5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxrQkFBZSxHQUFHLEtBQUs7QUFDdkIsSUFBSUcsMkJBQTJCQyxtSkFBK0Q7QUFDOUYsSUFBSUMsZUFBZUQsbUJBQU9BLENBQUMseUVBQWlCO0FBQzVDLElBQUlFLFVBQVVGLG1CQUFPQSxDQUFDLHlGQUE2QjtBQUNuRCxJQUFJRyx5QkFBeUJKLHlCQUF5QkMsbUJBQU9BLENBQUMsMklBQXNEO0FBQ3BILElBQUlJLGFBQWFKLG1CQUFPQSxDQUFDLG1FQUFjO0FBQ3ZDLElBQUlLLGFBQWFMLG1CQUFPQSxDQUFDLDZHQUF1QztBQUNoRSxJQUFJTSxvQkFBb0JOLG1CQUFPQSxDQUFDLDZIQUErQztBQUMvRSxJQUFJTyx1QkFBdUJQLG1CQUFPQSxDQUFDLG1JQUFrRDtBQUNyRixJQUFJUSxlQUFlUixtQkFBT0EsQ0FBQyx1RUFBZ0I7QUFDM0MsTUFBTVM7SUFDRkMsY0FBYztRQUNWLElBQUlDLEtBQXlCLEVBQWMsRUFFMUMsTUFBTTtZQUNILElBQUlLLE9BQU9DLG9CQUFvQixFQUFFO2dCQUM3QixPQUFPRCxPQUFPQyxvQkFBb0IsQ0FBQ0MsS0FBSztZQUM1QyxPQUFPO2dCQUNILElBQUksQ0FBQ0Msd0JBQXdCLElBQUssS0FBSSxDQUFDQSx3QkFBd0IsR0FBR0MsTUFBTSxHQUFvQixPQUFqQixJQUFJLENBQUNDLFdBQVcsRUFBQyxxREFBbURSLElBQUksQ0FBQyxDQUFDUyxNQUFNQSxJQUFJQyxJQUFJLElBQUlWLElBQUksQ0FBQyxDQUFDQyxXQUFXO29CQUNwTEUsT0FBT0Msb0JBQW9CLEdBQUdIO29CQUM5QixPQUFPQSxTQUFTSSxLQUFLO2dCQUN6QixHQUFHTSxLQUFLLENBQUMsQ0FBQ0MsTUFBTTtvQkFDWkMsUUFBUUMsR0FBRyxDQUFFLHFDQUFvQ0Y7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T0FBTztBQUNsQyxDQUFDLENBRUQsdUNBQXVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3BhZ2UtbG9hZGVyLmpzP2U4N2EiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzXCIpLmRlZmF1bHQ7XG52YXIgX2FkZEJhc2VQYXRoID0gcmVxdWlyZShcIi4vYWRkLWJhc2UtcGF0aFwiKTtcbnZhciBfcm91dGVyID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlclwiKTtcbnZhciBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlXCIpKTtcbnZhciBfYWRkTG9jYWxlID0gcmVxdWlyZShcIi4vYWRkLWxvY2FsZVwiKTtcbnZhciBfaXNEeW5hbWljID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWNcIik7XG52YXIgX3BhcnNlUmVsYXRpdmVVcmwgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsXCIpO1xudmFyIF9yZW1vdmVUcmFpbGluZ1NsYXNoID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaFwiKTtcbnZhciBfcm91dGVMb2FkZXIgPSByZXF1aXJlKFwiLi9yb3V0ZS1sb2FkZXJcIik7XG5jbGFzcyBQYWdlTG9hZGVyIHtcbiAgICBnZXRQYWdlTGlzdCgpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX3JvdXRlTG9hZGVyKS5nZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpPT5tYW5pZmVzdC5zb3J0ZWRQYWdlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5fX0RFVl9QQUdFU19NQU5JRkVTVC5wYWdlcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9taXNlZERldlBhZ2VzTWFuaWZlc3QgfHwgKHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0ID0gZmV0Y2goYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljL2RldmVsb3BtZW50L19kZXZQYWdlc01hbmlmZXN0Lmpzb25gKS50aGVuKChyZXMpPT5yZXMuanNvbigpKS50aGVuKChtYW5pZmVzdCk9PntcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUID0gbWFuaWZlc3Q7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYW5pZmVzdC5wYWdlcztcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIGRldlBhZ2VzTWFuaWZlc3Q6YCwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggX2RldlBhZ2VzTWFuaWZlc3QuanNvbi4gSXMgc29tZXRoaW5nIGJsb2NraW5nIHRoYXQgbmV0d29yayByZXF1ZXN0P1xcbmAgKyAnUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9mYWlsZWQtdG8tZmV0Y2gtZGV2cGFnZXNtYW5pZmVzdCcpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9taXNlZERldlBhZ2VzTWFuaWZlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0TWlkZGxld2FyZSgpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IG1pZGRsZXdhcmVNYXRjaGVycyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9NSURETEVXQVJFX01BVENIRVJTO1xuICAgICAgICAgICAgd2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSUyA9IG1pZGRsZXdhcmVNYXRjaGVycyA/IG1pZGRsZXdhcmVNYXRjaGVycyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3cuX19NSURETEVXQVJFX01BVENIRVJTO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX0RFVl9NSURETEVXQVJFX01BVENIRVJTKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5fX0RFVl9NSURETEVXQVJFX01BVENIRVJTO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogRGVjaWRlIHdoYXQgc2hvdWxkIGhhcHBlbiB3aGVuIGZldGNoaW5nIGZhaWxzIGluc3RlYWQgb2YgYXNzZXJ0aW5nXG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycyA9IGZldGNoKGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy8ke3RoaXMuYnVpbGRJZH0vX2Rldk1pZGRsZXdhcmVNYW5pZmVzdC5qc29uYCkudGhlbigocmVzKT0+cmVzLmpzb24oKSkudGhlbigobWF0Y2hlcnMpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfTUlERExFV0FSRV9NQVRDSEVSUyA9IG1hdGNoZXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXJzO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBmZXRjaCBfZGV2TWlkZGxld2FyZU1hbmlmZXN0YCwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRPRE8gUmVtb3ZlIHRoaXMgYXNzZXJ0aW9uIGFzIHRoaXMgY291bGQgYmUgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0RGF0YUhyZWYocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IHsgYXNQYXRoICwgaHJlZiAsIGxvY2FsZSAgfSA9IHBhcmFtcztcbiAgICAgICAgY29uc3QgeyBwYXRobmFtZTogaHJlZlBhdGhuYW1lICwgcXVlcnkgLCBzZWFyY2ggIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoaHJlZik7XG4gICAgICAgIGNvbnN0IHsgcGF0aG5hbWU6IGFzUGF0aG5hbWUgIH0gPSAoMCwgX3BhcnNlUmVsYXRpdmVVcmwpLnBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgY29uc3Qgcm91dGUgPSAoMCwgX3JlbW92ZVRyYWlsaW5nU2xhc2gpLnJlbW92ZVRyYWlsaW5nU2xhc2goaHJlZlBhdGhuYW1lKTtcbiAgICAgICAgaWYgKHJvdXRlWzBdICE9PSAnLycpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUm91dGUgbmFtZSBzaG91bGQgc3RhcnQgd2l0aCBhIFwiL1wiLCBnb3QgXCIke3JvdXRlfVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ2V0SHJlZkZvclNsdWcgPSAocGF0aCk9PntcbiAgICAgICAgICAgIGNvbnN0IGRhdGFSb3V0ZSA9ICgwLCBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKS5kZWZhdWx0KCgwLCBfcmVtb3ZlVHJhaWxpbmdTbGFzaCkucmVtb3ZlVHJhaWxpbmdTbGFzaCgoMCwgX2FkZExvY2FsZSkuYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSkpLCAnLmpzb24nKTtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX2FkZEJhc2VQYXRoKS5hZGRCYXNlUGF0aChgL19uZXh0L2RhdGEvJHt0aGlzLmJ1aWxkSWR9JHtkYXRhUm91dGV9JHtzZWFyY2h9YCwgdHJ1ZSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBnZXRIcmVmRm9yU2x1ZyhwYXJhbXMuc2tpcEludGVycG9sYXRpb24gPyBhc1BhdGhuYW1lIDogKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHJvdXRlKSA/ICgwLCBfcm91dGVyKS5pbnRlcnBvbGF0ZUFzKGhyZWZQYXRobmFtZSwgYXNQYXRobmFtZSwgcXVlcnkpLnJlc3VsdCA6IHJvdXRlKTtcbiAgICB9XG4gICAgX2lzU3NnKC8qKiB0aGUgcm91dGUgKGZpbGUtc3lzdGVtIHBhdGgpICovIHJvdXRlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkU3NnTWFuaWZlc3QudGhlbigobWFuaWZlc3QpPT5tYW5pZmVzdC5oYXMocm91dGUpKTtcbiAgICB9XG4gICAgbG9hZFBhZ2Uocm91dGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVMb2FkZXIubG9hZFJvdXRlKHJvdXRlKS50aGVuKChyZXMpPT57XG4gICAgICAgICAgICBpZiAoJ2NvbXBvbmVudCcgaW4gcmVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogcmVzLmNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgbW9kOiByZXMuZXhwb3J0cyxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVTaGVldHM6IHJlcy5zdHlsZXMubWFwKChvKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmOiBvLmhyZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogby5jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3cgcmVzLmVycm9yO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJlZmV0Y2gocm91dGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVMb2FkZXIucHJlZmV0Y2gocm91dGUpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihidWlsZElkLCBhc3NldFByZWZpeCl7XG4gICAgICAgIHRoaXMucm91dGVMb2FkZXIgPSAoMCwgX3JvdXRlTG9hZGVyKS5jcmVhdGVSb3V0ZUxvYWRlcihhc3NldFByZWZpeCk7XG4gICAgICAgIHRoaXMuYnVpbGRJZCA9IGJ1aWxkSWQ7XG4gICAgICAgIHRoaXMuYXNzZXRQcmVmaXggPSBhc3NldFByZWZpeDtcbiAgICAgICAgdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0ID0gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgICAgICBpZiAod2luZG93Ll9fU1NHX01BTklGRVNUKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh3aW5kb3cuX19TU0dfTUFOSUZFU1QpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuX19TU0dfTUFOSUZFU1RfQ0IgPSAoKT0+e1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuZXhwb3J0cy5kZWZhdWx0ID0gUGFnZUxvYWRlcjtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZS1sb2FkZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsInJlcXVpcmUiLCJfYWRkQmFzZVBhdGgiLCJfcm91dGVyIiwiX2dldEFzc2V0UGF0aEZyb21Sb3V0ZSIsIl9hZGRMb2NhbGUiLCJfaXNEeW5hbWljIiwiX3BhcnNlUmVsYXRpdmVVcmwiLCJfcmVtb3ZlVHJhaWxpbmdTbGFzaCIsIl9yb3V0ZUxvYWRlciIsIlBhZ2VMb2FkZXIiLCJnZXRQYWdlTGlzdCIsInByb2Nlc3MiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwidGhlbiIsIm1hbmlmZXN0Iiwic29ydGVkUGFnZXMiLCJ3aW5kb3ciLCJfX0RFVl9QQUdFU19NQU5JRkVTVCIsInBhZ2VzIiwicHJvbWlzZWREZXZQYWdlc01hbmlmZXN0IiwiZmV0Y2giLCJhc3NldFByZWZpeCIsInJlcyIsImpzb24iLCJjYXRjaCIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJFcnJvciIsImdldE1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlTWF0Y2hlcnMiLCJlbnYiLCJfX05FWFRfTUlERExFV0FSRV9NQVRDSEVSUyIsIl9fTUlERExFV0FSRV9NQVRDSEVSUyIsInVuZGVmaW5lZCIsIl9fREVWX01JRERMRVdBUkVfTUFUQ0hFUlMiLCJwcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycyIsImJ1aWxkSWQiLCJtYXRjaGVycyIsImdldERhdGFIcmVmIiwicGFyYW1zIiwiYXNQYXRoIiwiaHJlZiIsImxvY2FsZSIsInBhdGhuYW1lIiwiaHJlZlBhdGhuYW1lIiwicXVlcnkiLCJzZWFyY2giLCJwYXJzZVJlbGF0aXZlVXJsIiwiYXNQYXRobmFtZSIsInJvdXRlIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImdldEhyZWZGb3JTbHVnIiwicGF0aCIsImRhdGFSb3V0ZSIsImFkZExvY2FsZSIsImFkZEJhc2VQYXRoIiwic2tpcEludGVycG9sYXRpb24iLCJpc0R5bmFtaWNSb3V0ZSIsImludGVycG9sYXRlQXMiLCJyZXN1bHQiLCJfaXNTc2ciLCJwcm9taXNlZFNzZ01hbmlmZXN0IiwiaGFzIiwibG9hZFBhZ2UiLCJyb3V0ZUxvYWRlciIsImxvYWRSb3V0ZSIsInBhZ2UiLCJjb21wb25lbnQiLCJtb2QiLCJzdHlsZVNoZWV0cyIsInN0eWxlcyIsIm1hcCIsIm8iLCJ0ZXh0IiwiY29udGVudCIsImVycm9yIiwicHJlZmV0Y2giLCJjb25zdHJ1Y3RvciIsImNyZWF0ZVJvdXRlTG9hZGVyIiwiUHJvbWlzZSIsInJlc29sdmUiLCJfX1NTR19NQU5JRkVTVCIsIl9fU1NHX01BTklGRVNUX0NCIiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/performance-relayer.js": /*!**************************************************************!*\ !*** ./node_modules/next/dist/client/performance-relayer.js ***! \**************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n// copied to prevent pulling in un-necessary utils\nconst WEB_VITALS = [\n \"CLS\",\n \"FCP\",\n \"FID\",\n \"INP\",\n \"LCP\",\n \"TTFB\"\n];\nconst initialHref = location.href;\nlet isRegistered = false;\nlet userReportHandler;\nfunction onReport(metric) {\n if (userReportHandler) {\n userReportHandler(metric);\n }\n // This code is not shipped, executed, or present in the client-side\n // JavaScript bundle unless explicitly enabled in your application.\n //\n // When this feature is enabled, we'll make it very clear by printing a\n // message during the build (`next build`).\n if (false) { var ref; }\n}\nvar _default = (onPerfEntry)=>{\n // Update function if it changes:\n userReportHandler = onPerfEntry;\n // Only register listeners once:\n if (isRegistered) {\n return;\n }\n isRegistered = true;\n const attributions = undefined;\n for (const webVital of WEB_VITALS){\n try {\n let mod;\n if (false) {}\n if (!mod) {\n mod = __webpack_require__(/*! next/dist/compiled/web-vitals */ \"./node_modules/next/dist/compiled/web-vitals/web-vitals.js\");\n }\n mod[\"on\".concat(webVital)](onReport);\n } catch (err) {\n // Do nothing if the module fails to load\n console.warn(\"Failed to track \".concat(webVital, \" web-vital\"), err);\n }\n }\n};\nexports[\"default\"] = _default;\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=performance-relayer.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wZXJmb3JtYW5jZS1yZWxheWVyLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGtCQUFlLEdBQUcsS0FBSztBQUN2QixrREFBa0Q7QUFDbEQsTUFBTUcsYUFBYTtJQUNmO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNIO0FBQ0QsTUFBTUMsY0FBY0MsU0FBU0MsSUFBSTtBQUNqQyxJQUFJQyxlQUFlLEtBQUs7QUFDeEIsSUFBSUM7QUFDSixTQUFTQyxTQUFTQyxNQUFNLEVBQUU7SUFDdEIsSUFBSUYsbUJBQW1CO1FBQ25CQSxrQkFBa0JFO0lBQ3RCLENBQUM7SUFDRCxvRUFBb0U7SUFDcEUsbUVBQW1FO0lBQ25FLEVBQUU7SUFDRix1RUFBdUU7SUFDdkUsMkNBQTJDO0lBQzNDLElBQUlDLEtBQzJCLEVBQUUsWUFtQ2hDO0FBQ0w7QUFDQSxJQUFJZ0MsV0FBVyxDQUFDQyxjQUFjO0lBQzFCLGlDQUFpQztJQUNqQ3BDLG9CQUFvQm9DO0lBQ3BCLGdDQUFnQztJQUNoQyxJQUFJckMsY0FBYztRQUNkO0lBQ0osQ0FBQztJQUNEQSxlQUFlLElBQUk7SUFDbkIsTUFBTXNDLGVBQWVsQyxTQUF5QztJQUM5RCxLQUFLLE1BQU1vQyxZQUFZNUMsV0FBVztRQUM5QixJQUFJO1lBQ0EsSUFBSTZDO1lBQ0osSUFBSXJDLEtBQTZDLEVBQUUsRUFJbEQ7WUFDRCxJQUFJLENBQUNxQyxLQUFLO2dCQUNOQSxNQUFNRyxtQkFBT0EsQ0FBQztZQUNsQixDQUFDO1lBQ0RILEdBQUcsQ0FBQyxLQUFjLE9BQVRELFVBQVcsQ0FBQ3RDO1FBQ3pCLEVBQUUsT0FBT2lDLEtBQUs7WUFDVix5Q0FBeUM7WUFDekNGLFFBQVFZLElBQUksQ0FBQyxtQkFBNEIsT0FBVEwsVUFBUyxlQUFhTDtRQUMxRDtJQUNKO0FBQ0o7QUFDQTFDLGtCQUFlLEdBQUcyQztBQUVsQixJQUFJLENBQUMsT0FBTzNDLFFBQVFFLE9BQU8sS0FBSyxjQUFlLE9BQU9GLFFBQVFFLE9BQU8sS0FBSyxZQUFZRixRQUFRRSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9GLFFBQVFFLE9BQU8sQ0FBQ21ELFVBQVUsS0FBSyxhQUFhO0lBQ3JLdkQsT0FBT0MsY0FBYyxDQUFDQyxRQUFRRSxPQUFPLEVBQUUsY0FBYztRQUFFRCxPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT3dELE1BQU0sQ0FBQ3RELFFBQVFFLE9BQU8sRUFBRUY7SUFDL0J1RCxPQUFPdkQsT0FBTyxHQUFHQSxRQUFRRSxPQUFPO0FBQ2xDLENBQUMsQ0FFRCwrQ0FBK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvcGVyZm9ybWFuY2UtcmVsYXllci5qcz9lZjcxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuLy8gY29waWVkIHRvIHByZXZlbnQgcHVsbGluZyBpbiB1bi1uZWNlc3NhcnkgdXRpbHNcbmNvbnN0IFdFQl9WSVRBTFMgPSBbXG4gICAgJ0NMUycsXG4gICAgJ0ZDUCcsXG4gICAgJ0ZJRCcsXG4gICAgJ0lOUCcsXG4gICAgJ0xDUCcsXG4gICAgJ1RURkInXG5dO1xuY29uc3QgaW5pdGlhbEhyZWYgPSBsb2NhdGlvbi5ocmVmO1xubGV0IGlzUmVnaXN0ZXJlZCA9IGZhbHNlO1xubGV0IHVzZXJSZXBvcnRIYW5kbGVyO1xuZnVuY3Rpb24gb25SZXBvcnQobWV0cmljKSB7XG4gICAgaWYgKHVzZXJSZXBvcnRIYW5kbGVyKSB7XG4gICAgICAgIHVzZXJSZXBvcnRIYW5kbGVyKG1ldHJpYyk7XG4gICAgfVxuICAgIC8vIFRoaXMgY29kZSBpcyBub3Qgc2hpcHBlZCwgZXhlY3V0ZWQsIG9yIHByZXNlbnQgaW4gdGhlIGNsaWVudC1zaWRlXG4gICAgLy8gSmF2YVNjcmlwdCBidW5kbGUgdW5sZXNzIGV4cGxpY2l0bHkgZW5hYmxlZCBpbiB5b3VyIGFwcGxpY2F0aW9uLlxuICAgIC8vXG4gICAgLy8gV2hlbiB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZCwgd2UnbGwgbWFrZSBpdCB2ZXJ5IGNsZWFyIGJ5IHByaW50aW5nIGFcbiAgICAvLyBtZXNzYWdlIGR1cmluZyB0aGUgYnVpbGQgKGBuZXh0IGJ1aWxkYCkuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicgJiYgLy8gVGhpcyBmaWVsZCBpcyBlbXB0eSB1bmxlc3MgeW91IGV4cGxpY2l0bHkgY29uZmlndXJlIGl0OlxuICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9BTkFMWVRJQ1NfSUQpIHtcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgICAgIGRzbjogcHJvY2Vzcy5lbnYuX19ORVhUX0FOQUxZVElDU19JRCxcbiAgICAgICAgICAgIGlkOiBtZXRyaWMuaWQsXG4gICAgICAgICAgICBwYWdlOiAocmVmID0gd2luZG93Ll9fTkVYVF9EQVRBX18pID09IG51bGwgPyB2b2lkIDAgOiByZWYucGFnZSxcbiAgICAgICAgICAgIGhyZWY6IGluaXRpYWxIcmVmLFxuICAgICAgICAgICAgZXZlbnRfbmFtZTogbWV0cmljLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogbWV0cmljLnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBzcGVlZDogJ2Nvbm5lY3Rpb24nIGluIG5hdmlnYXRvciAmJiBuYXZpZ2F0b3JbJ2Nvbm5lY3Rpb24nXSAmJiAnZWZmZWN0aXZlVHlwZScgaW4gbmF2aWdhdG9yWydjb25uZWN0aW9uJ10gPyBuYXZpZ2F0b3JbJ2Nvbm5lY3Rpb24nXVsnZWZmZWN0aXZlVHlwZSddIDogJydcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtcbiAgICAgICAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMoYm9keSkudG9TdHJpbmcoKVxuICAgICAgICBdLCB7XG4gICAgICAgICAgICAvLyBUaGlzIGNvbnRlbnQgdHlwZSBpcyBuZWNlc3NhcnkgZm9yIGBzZW5kQmVhY29uYDpcbiAgICAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB2aXRhbHNVcmwgPSAnaHR0cHM6Ly92aXRhbHMudmVyY2VsLWluc2lnaHRzLmNvbS92MS92aXRhbHMnO1xuICAgICAgICAvLyBOYXZpZ2F0b3IgaGFzIHRvIGJlIGJvdW5kIHRvIGVuc3VyZSBpdCBkb2VzIG5vdCBlcnJvciBpbiBzb21lIGJyb3dzZXJzXG4gICAgICAgIC8vIGh0dHBzOi8veGd3YW5nLm1lL3Bvc3RzL3lvdS1tYXktbm90LWtub3ctYmVhY29uLyNpdC1tYXktdGhyb3ctZXJyb3IlMkMtYmUtc3VyZS10by1jYXRjaFxuICAgICAgICBjb25zdCBzZW5kID0gbmF2aWdhdG9yLnNlbmRCZWFjb24gJiYgbmF2aWdhdG9yLnNlbmRCZWFjb24uYmluZChuYXZpZ2F0b3IpO1xuICAgICAgICBmdW5jdGlvbiBmYWxsYmFja1NlbmQoKSB7XG4gICAgICAgICAgICBmZXRjaCh2aXRhbHNVcmwsIHtcbiAgICAgICAgICAgICAgICBib2R5OiBibG9iLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnb21pdCcsXG4gICAgICAgICAgICAgICAga2VlcGFsaXZlOiB0cnVlXG4gICAgICAgICAgICB9KS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gSWYgc2VuZCBpcyB1bmRlZmluZWQgaXQnbGwgdGhyb3cgYXMgd2VsbC4gVGhpcyByZWR1Y2VzIG91dHB1dCBjb2RlIHNpemUuXG4gICAgICAgICAgICBzZW5kKHZpdGFsc1VybCwgYmxvYikgfHwgZmFsbGJhY2tTZW5kKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgZmFsbGJhY2tTZW5kKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG52YXIgX2RlZmF1bHQgPSAob25QZXJmRW50cnkpPT57XG4gICAgLy8gVXBkYXRlIGZ1bmN0aW9uIGlmIGl0IGNoYW5nZXM6XG4gICAgdXNlclJlcG9ydEhhbmRsZXIgPSBvblBlcmZFbnRyeTtcbiAgICAvLyBPbmx5IHJlZ2lzdGVyIGxpc3RlbmVycyBvbmNlOlxuICAgIGlmIChpc1JlZ2lzdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpc1JlZ2lzdGVyZWQgPSB0cnVlO1xuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9XRUJfVklUQUxTX0FUVFJJQlVUSU9OO1xuICAgIGZvciAoY29uc3Qgd2ViVml0YWwgb2YgV0VCX1ZJVEFMUyl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgbW9kO1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfV0VCX1ZJVEFMU19BVFRSSUJVVElPTikge1xuICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IGF0dHJpYnV0aW9ucy5pbmNsdWRlcyh3ZWJWaXRhbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbW9kID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL3dlYi12aXRhbHMtYXR0cmlidXRpb24nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW1vZCkge1xuICAgICAgICAgICAgICAgIG1vZCA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC93ZWItdml0YWxzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtb2RbYG9uJHt3ZWJWaXRhbH1gXShvblJlcG9ydCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gRG8gbm90aGluZyBpZiB0aGUgbW9kdWxlIGZhaWxzIHRvIGxvYWRcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHRyYWNrICR7d2ViVml0YWx9IHdlYi12aXRhbGAsIGVycik7XG4gICAgICAgIH1cbiAgICB9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBlcmZvcm1hbmNlLXJlbGF5ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsIldFQl9WSVRBTFMiLCJpbml0aWFsSHJlZiIsImxvY2F0aW9uIiwiaHJlZiIsImlzUmVnaXN0ZXJlZCIsInVzZXJSZXBvcnRIYW5kbGVyIiwib25SZXBvcnQiLCJtZXRyaWMiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FOQUxZVElDU19JRCIsInJlZiIsImJvZHkiLCJkc24iLCJpZCIsInBhZ2UiLCJ3aW5kb3ciLCJfX05FWFRfREFUQV9fIiwiZXZlbnRfbmFtZSIsIm5hbWUiLCJ0b1N0cmluZyIsInNwZWVkIiwibmF2aWdhdG9yIiwiYmxvYiIsIkJsb2IiLCJVUkxTZWFyY2hQYXJhbXMiLCJ0eXBlIiwidml0YWxzVXJsIiwic2VuZCIsInNlbmRCZWFjb24iLCJiaW5kIiwiZmFsbGJhY2tTZW5kIiwiZmV0Y2giLCJtZXRob2QiLCJjcmVkZW50aWFscyIsImtlZXBhbGl2ZSIsImNhdGNoIiwiY29uc29sZSIsImVycm9yIiwiZXJyIiwiX2RlZmF1bHQiLCJvblBlcmZFbnRyeSIsImF0dHJpYnV0aW9ucyIsIl9fTkVYVF9XRUJfVklUQUxTX0FUVFJJQlVUSU9OIiwid2ViVml0YWwiLCJtb2QiLCJfX05FWFRfSEFTX1dFQl9WSVRBTFNfQVRUUklCVVRJT04iLCJpbmNsdWRlcyIsInJlcXVpcmUiLCJ3YXJuIiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/performance-relayer.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/portal/index.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/client/portal/index.js ***! \*******************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Portal = void 0;\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\nconst Portal = (param)=>{\n let { children , type } = param;\n _s();\n const [portalNode, setPortalNode] = (0, _react).useState(null);\n (0, _react).useEffect(()=>{\n const element = document.createElement(type);\n document.body.appendChild(element);\n setPortalNode(element);\n return ()=>{\n document.body.removeChild(element);\n };\n }, [\n type\n ]);\n return portalNode ? /*#__PURE__*/ (0, _reactDom).createPortal(children, portalNode) : null;\n};\n_s(Portal, \"RFImm+EuWCdF9gTeRNMrIZMTdTE=\");\n_c = Portal;\nexports.Portal = Portal;\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\nvar _c;\n$RefreshReg$(_c, \"Portal\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wb3J0YWwvaW5kZXguanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGNBQWMsR0FBRyxLQUFLO0FBQ3RCLElBQUlHLFNBQVNDLG1CQUFPQSxDQUFDLDRDQUFPO0FBQzVCLElBQUlDLFlBQVlELG1CQUFPQSxDQUFDLG9EQUFXO0FBQ25DLE1BQU1GLFNBQVMsU0FBd0I7UUFBdkIsRUFBRUksU0FBUSxFQUFHQyxLQUFJLEVBQUc7O0lBQ2hDLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHLENBQUMsR0FBR04sTUFBTSxFQUFFTyxRQUFRLENBQUMsSUFBSTtJQUM1RCxJQUFHUCxNQUFNLEVBQUVRLFNBQVMsQ0FBQyxJQUFJO1FBQ3RCLE1BQU1DLFVBQVVDLFNBQVNDLGFBQWEsQ0FBQ1A7UUFDdkNNLFNBQVNFLElBQUksQ0FBQ0MsV0FBVyxDQUFDSjtRQUMxQkgsY0FBY0c7UUFDZCxPQUFPLElBQUk7WUFDUEMsU0FBU0UsSUFBSSxDQUFDRSxXQUFXLENBQUNMO1FBQzlCO0lBQ0osR0FBRztRQUNDTDtLQUNIO0lBQ0QsT0FBT0MsYUFBMkIsV0FBSCxHQUFJLElBQUdILFNBQVMsRUFBRWEsWUFBWSxDQUFDWixVQUFVRSxjQUFjLElBQUk7QUFDOUY7R0FiTU47S0FBQUE7QUFjTkYsY0FBYyxHQUFHRTtBQUVqQixJQUFJLENBQUMsT0FBT0YsUUFBUW1CLE9BQU8sS0FBSyxjQUFlLE9BQU9uQixRQUFRbUIsT0FBTyxLQUFLLFlBQVluQixRQUFRbUIsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPbkIsUUFBUW1CLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDckt0QixPQUFPQyxjQUFjLENBQUNDLFFBQVFtQixPQUFPLEVBQUUsY0FBYztRQUFFbEIsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU91QixNQUFNLENBQUNyQixRQUFRbUIsT0FBTyxFQUFFbkI7SUFDL0JzQixPQUFPdEIsT0FBTyxHQUFHQSxRQUFRbUIsT0FBTztBQUNsQyxDQUFDLENBRUQsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3BvcnRhbC9pbmRleC5qcz8zMWEyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5Qb3J0YWwgPSB2b2lkIDA7XG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xudmFyIF9yZWFjdERvbSA9IHJlcXVpcmUoXCJyZWFjdC1kb21cIik7XG5jb25zdCBQb3J0YWwgPSAoeyBjaGlsZHJlbiAsIHR5cGUgIH0pPT57XG4gICAgY29uc3QgW3BvcnRhbE5vZGUsIHNldFBvcnRhbE5vZGVdID0gKDAsIF9yZWFjdCkudXNlU3RhdGUobnVsbCk7XG4gICAgKDAsIF9yZWFjdCkudXNlRWZmZWN0KCgpPT57XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICBzZXRQb3J0YWxOb2RlKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICB0eXBlXG4gICAgXSk7XG4gICAgcmV0dXJuIHBvcnRhbE5vZGUgPyAvKiNfX1BVUkVfXyovICgwLCBfcmVhY3REb20pLmNyZWF0ZVBvcnRhbChjaGlsZHJlbiwgcG9ydGFsTm9kZSkgOiBudWxsO1xufTtcbmV4cG9ydHMuUG9ydGFsID0gUG9ydGFsO1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJQb3J0YWwiLCJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiY2hpbGRyZW4iLCJ0eXBlIiwicG9ydGFsTm9kZSIsInNldFBvcnRhbE5vZGUiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsImVsZW1lbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJyZW1vdmVDaGlsZCIsImNyZWF0ZVBvcnRhbCIsImRlZmF1bHQiLCJfX2VzTW9kdWxlIiwiYXNzaWduIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/portal/index.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/remove-base-path.js": /*!***********************************************************!*\ !*** ./node_modules/next/dist/client/remove-base-path.js ***! \***********************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removeBasePath = removeBasePath;\nvar _hasBasePath = __webpack_require__(/*! ./has-base-path */ \"./node_modules/next/dist/client/has-base-path.js\");\nconst basePath = false || \"\";\nfunction removeBasePath(path) {\n if (false) {}\n path = path.slice(basePath.length);\n if (!path.startsWith(\"/\")) path = \"/\".concat(path);\n return path;\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-base-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZW1vdmUtYmFzZS1wYXRoLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELHNCQUFzQixHQUFHRTtBQUN6QixJQUFJQyxlQUFlQyxtQkFBT0EsQ0FBQyx5RUFBaUI7QUFDNUMsTUFBTUMsV0FBV0MsTUFBa0MsSUFBSTtBQUN2RCxTQUFTSixlQUFlTyxJQUFJLEVBQUU7SUFDMUIsSUFBSUgsS0FBMEMsRUFBRSxFQUkvQztJQUNERyxPQUFPQSxLQUFLRyxLQUFLLENBQUNQLFNBQVNRLE1BQU07SUFDakMsSUFBSSxDQUFDSixLQUFLSyxVQUFVLENBQUMsTUFBTUwsT0FBTyxJQUFTLE9BQUxBO0lBQ3RDLE9BQU9BO0FBQ1g7QUFFQSxJQUFJLENBQUMsT0FBT1QsUUFBUWUsT0FBTyxLQUFLLGNBQWUsT0FBT2YsUUFBUWUsT0FBTyxLQUFLLFlBQVlmLFFBQVFlLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT2YsUUFBUWUsT0FBTyxDQUFDQyxVQUFVLEtBQUssYUFBYTtJQUNyS2xCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUWUsT0FBTyxFQUFFLGNBQWM7UUFBRWQsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9tQixNQUFNLENBQUNqQixRQUFRZSxPQUFPLEVBQUVmO0lBQy9Ca0IsT0FBT2xCLE9BQU8sR0FBR0EsUUFBUWUsT0FBTztBQUNsQyxDQUFDLENBRUQsNENBQTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlbW92ZS1iYXNlLXBhdGguanM/YjRmMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucmVtb3ZlQmFzZVBhdGggPSByZW1vdmVCYXNlUGF0aDtcbnZhciBfaGFzQmFzZVBhdGggPSByZXF1aXJlKFwiLi9oYXMtYmFzZS1wYXRoXCIpO1xuY29uc3QgYmFzZVBhdGggPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnO1xuZnVuY3Rpb24gcmVtb3ZlQmFzZVBhdGgocGF0aCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX0NMSUVOVF9CQVNFX1BBVEgpIHtcbiAgICAgICAgaWYgKCEoMCwgX2hhc0Jhc2VQYXRoKS5oYXNCYXNlUGF0aChwYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGF0aCA9IHBhdGguc2xpY2UoYmFzZVBhdGgubGVuZ3RoKTtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpKSBwYXRoID0gYC8ke3BhdGh9YDtcbiAgICByZXR1cm4gcGF0aDtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVtb3ZlLWJhc2UtcGF0aC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJyZW1vdmVCYXNlUGF0aCIsIl9oYXNCYXNlUGF0aCIsInJlcXVpcmUiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImhhc0Jhc2VQYXRoIiwic2xpY2UiLCJsZW5ndGgiLCJzdGFydHNXaXRoIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/remove-base-path.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/remove-locale.js": /*!********************************************************!*\ !*** ./node_modules/next/dist/client/remove-locale.js ***! \********************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removeLocale = removeLocale;\nvar _parsePath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction removeLocale(path, locale) {\n if (false) {}\n return path;\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZW1vdmUtbG9jYWxlLmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELG9CQUFvQixHQUFHRTtBQUN2QixJQUFJQyxhQUFhQyxtQkFBT0EsQ0FBQyw2R0FBdUM7QUFDaEUsU0FBU0YsYUFBYUcsSUFBSSxFQUFFQyxNQUFNLEVBQUU7SUFDaEMsSUFBSUMsS0FBK0IsRUFBRSxFQUtwQztJQUNELE9BQU9GO0FBQ1g7QUFFQSxJQUFJLENBQUMsT0FBT0wsUUFBUWtCLE9BQU8sS0FBSyxjQUFlLE9BQU9sQixRQUFRa0IsT0FBTyxLQUFLLFlBQVlsQixRQUFRa0IsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPbEIsUUFBUWtCLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktyQixPQUFPQyxjQUFjLENBQUNDLFFBQVFrQixPQUFPLEVBQUUsY0FBYztRQUFFakIsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9zQixNQUFNLENBQUNwQixRQUFRa0IsT0FBTyxFQUFFbEI7SUFDL0JxQixPQUFPckIsT0FBTyxHQUFHQSxRQUFRa0IsT0FBTztBQUNsQyxDQUFDLENBRUQseUNBQXlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlbW92ZS1sb2NhbGUuanM/NDc1MyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMucmVtb3ZlTG9jYWxlID0gcmVtb3ZlTG9jYWxlO1xudmFyIF9wYXJzZVBhdGggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aFwiKTtcbmZ1bmN0aW9uIHJlbW92ZUxvY2FsZShwYXRoLCBsb2NhbGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICBjb25zdCB7IHBhdGhuYW1lICB9ID0gKDAsIF9wYXJzZVBhdGgpLnBhcnNlUGF0aChwYXRoKTtcbiAgICAgICAgY29uc3QgcGF0aExvd2VyID0gcGF0aG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgbG9jYWxlTG93ZXIgPSBsb2NhbGUgPT0gbnVsbCA/IHZvaWQgMCA6IGxvY2FsZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gbG9jYWxlICYmIChwYXRoTG93ZXIuc3RhcnRzV2l0aChgLyR7bG9jYWxlTG93ZXJ9L2ApIHx8IHBhdGhMb3dlciA9PT0gYC8ke2xvY2FsZUxvd2VyfWApID8gYCR7cGF0aG5hbWUubGVuZ3RoID09PSBsb2NhbGUubGVuZ3RoICsgMSA/IGAvYCA6IGBgfSR7cGF0aC5zbGljZShsb2NhbGUubGVuZ3RoICsgMSl9YCA6IHBhdGg7XG4gICAgfVxuICAgIHJldHVybiBwYXRoO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZW1vdmUtbG9jYWxlLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInJlbW92ZUxvY2FsZSIsIl9wYXJzZVBhdGgiLCJyZXF1aXJlIiwicGF0aCIsImxvY2FsZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwicGF0aG5hbWUiLCJwYXJzZVBhdGgiLCJwYXRoTG93ZXIiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUxvd2VyIiwic3RhcnRzV2l0aCIsImxlbmd0aCIsInNsaWNlIiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/remove-locale.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/request-idle-callback.js": /*!****************************************************************!*\ !*** ./node_modules/next/dist/client/request-idle-callback.js ***! \****************************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.cancelIdleCallback = exports.requestIdleCallback = void 0;\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};\nexports.requestIdleCallback = requestIdleCallback;\nconst cancelIdleCallback = typeof self !== \"undefined\" && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nexports.cancelIdleCallback = cancelIdleCallback;\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\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsMEJBQTBCLEdBQUdBLDJCQUEyQixHQUFHLEtBQUs7QUFDaEUsTUFBTUcsc0JBQXNCLE9BQU9DLFNBQVMsZUFBZUEsS0FBS0QsbUJBQW1CLElBQUlDLEtBQUtELG1CQUFtQixDQUFDRSxJQUFJLENBQUNDLFdBQVcsU0FBU0MsRUFBRSxFQUFFO0lBQ3pJLElBQUlDLFFBQVFDLEtBQUtDLEdBQUc7SUFDcEIsT0FBT04sS0FBS08sVUFBVSxDQUFDLFdBQVc7UUFDOUJKLEdBQUc7WUFDQ0ssWUFBWSxLQUFLO1lBQ2pCQyxlQUFlLFdBQVc7Z0JBQ3RCLE9BQU9DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHLEtBQU1OLENBQUFBLEtBQUtDLEdBQUcsS0FBS0YsS0FBSTtZQUM5QztRQUNKO0lBQ0osR0FBRztBQUNQO0FBQ0FSLDJCQUEyQixHQUFHRztBQUM5QixNQUFNRCxxQkFBcUIsT0FBT0UsU0FBUyxlQUFlQSxLQUFLRixrQkFBa0IsSUFBSUUsS0FBS0Ysa0JBQWtCLENBQUNHLElBQUksQ0FBQ0MsV0FBVyxTQUFTVSxFQUFFLEVBQUU7SUFDdEksT0FBT0MsYUFBYUQ7QUFDeEI7QUFDQWhCLDBCQUEwQixHQUFHRTtBQUU3QixJQUFJLENBQUMsT0FBT0YsUUFBUWtCLE9BQU8sS0FBSyxjQUFlLE9BQU9sQixRQUFRa0IsT0FBTyxLQUFLLFlBQVlsQixRQUFRa0IsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPbEIsUUFBUWtCLE9BQU8sQ0FBQ0MsVUFBVSxLQUFLLGFBQWE7SUFDcktyQixPQUFPQyxjQUFjLENBQUNDLFFBQVFrQixPQUFPLEVBQUUsY0FBYztRQUFFakIsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9zQixNQUFNLENBQUNwQixRQUFRa0IsT0FBTyxFQUFFbEI7SUFDL0JxQixPQUFPckIsT0FBTyxHQUFHQSxRQUFRa0IsT0FBTztBQUNsQyxDQUFDLENBRUQsaURBQWlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcz8xZTIwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5jYW5jZWxJZGxlQ2FsbGJhY2sgPSBleHBvcnRzLnJlcXVlc3RJZGxlQ2FsbGJhY2sgPSB2b2lkIDA7XG5jb25zdCByZXF1ZXN0SWRsZUNhbGxiYWNrID0gdHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnICYmIHNlbGYucmVxdWVzdElkbGVDYWxsYmFjayAmJiBzZWxmLnJlcXVlc3RJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpIHx8IGZ1bmN0aW9uKGNiKSB7XG4gICAgbGV0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICByZXR1cm4gc2VsZi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBjYih7XG4gICAgICAgICAgICBkaWRUaW1lb3V0OiBmYWxzZSxcbiAgICAgICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNYXRoLm1heCgwLCA1MCAtIChEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgMSk7XG59O1xuZXhwb3J0cy5yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWVzdElkbGVDYWxsYmFjaztcbmNvbnN0IGNhbmNlbElkbGVDYWxsYmFjayA9IHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjayAmJiBzZWxmLmNhbmNlbElkbGVDYWxsYmFjay5iaW5kKHdpbmRvdykgfHwgZnVuY3Rpb24oaWQpIHtcbiAgICByZXR1cm4gY2xlYXJUaW1lb3V0KGlkKTtcbn07XG5leHBvcnRzLmNhbmNlbElkbGVDYWxsYmFjayA9IGNhbmNlbElkbGVDYWxsYmFjaztcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1pZGxlLWNhbGxiYWNrLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0IiwiZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/route-announcer.js": /*!**********************************************************!*\ !*** ./node_modules/next/dist/client/route-announcer.js ***! \**********************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = exports.RouteAnnouncer = void 0;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _react = _interop_require_default(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\nconst nextjsRouteAnnouncerStyles = {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n};\nconst RouteAnnouncer = ()=>{\n _s();\n const { asPath } = (0, _router).useRouter();\n const [routeAnnouncement, setRouteAnnouncement] = _react.default.useState(\"\");\n // Only announce the path change, but not for the first load because screen\n // reader will do that automatically.\n const previouslyLoadedPath = _react.default.useRef(asPath);\n // Every time the path changes, announce the new page’s title following this\n // priority: first the document title (from head), otherwise the first h1, or\n // if none of these exist, then the pathname from the URL. This methodology is\n // inspired by Marcy Sutton’s accessible client routing user testing. More\n // information can be found here:\n // https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/\n _react.default.useEffect(()=>{\n // If the path hasn't change, we do nothing.\n if (previouslyLoadedPath.current === asPath) return;\n previouslyLoadedPath.current = asPath;\n if (document.title) {\n setRouteAnnouncement(document.title);\n } else {\n const pageHeader = document.querySelector(\"h1\");\n var ref;\n const content = (ref = pageHeader == null ? void 0 : pageHeader.innerText) != null ? ref : pageHeader == null ? void 0 : pageHeader.textContent;\n setRouteAnnouncement(content || asPath);\n }\n }, [\n asPath\n ]);\n return /*#__PURE__*/ _react.default.createElement(\"p\", {\n \"aria-live\": \"assertive\" // Make the announcement immediately.\n ,\n id: \"__next-route-announcer__\",\n role: \"alert\",\n style: nextjsRouteAnnouncerStyles\n }, routeAnnouncement);\n};\n_s(RouteAnnouncer, \"XmDOMcfEgRlT21GulgLTmCStecg=\");\n_c = RouteAnnouncer;\nexports.RouteAnnouncer = RouteAnnouncer;\nvar _default = RouteAnnouncer;\nexports[\"default\"] = _default;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-announcer.js.map\nvar _c;\n$RefreshReg$(_c, \"RouteAnnouncer\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1hbm5vdW5jZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGtCQUFlLEdBQUdBLHNCQUFzQixHQUFHLEtBQUs7QUFDaEQsSUFBSUksMkJBQTJCQyxtSkFBK0Q7QUFDOUYsSUFBSUMsU0FBU0YseUJBQXlCQyxtQkFBT0EsQ0FBQyw0Q0FBTztBQUNyRCxJQUFJRSxVQUFVRixtQkFBT0EsQ0FBQywyREFBVTtBQUNoQyxNQUFNRyw2QkFBNkI7SUFDL0JDLFFBQVE7SUFDUkMsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLFFBQVE7SUFDUkMsVUFBVTtJQUNWQyxTQUFTO0lBQ1RDLFVBQVU7SUFDVkMsT0FBTztJQUNQLHdGQUF3RjtJQUN4RkMsWUFBWTtJQUNaQyxVQUFVO0FBQ2Q7QUFDQSxNQUFNZixpQkFBaUIsSUFBSTs7SUFDdkIsTUFBTSxFQUFFZ0IsT0FBTSxFQUFHLEdBQUcsQ0FBQyxHQUFHWixPQUFPLEVBQUVhLFNBQVM7SUFDMUMsTUFBTSxDQUFDQyxtQkFBbUJDLHFCQUFxQixHQUFHaEIsT0FBT0osT0FBTyxDQUFDcUIsUUFBUSxDQUFDO0lBQzFFLDJFQUEyRTtJQUMzRSxxQ0FBcUM7SUFDckMsTUFBTUMsdUJBQXVCbEIsT0FBT0osT0FBTyxDQUFDdUIsTUFBTSxDQUFDTjtJQUNuRCw0RUFBNEU7SUFDNUUsNkVBQTZFO0lBQzdFLDhFQUE4RTtJQUM5RSwwRUFBMEU7SUFDMUUsaUNBQWlDO0lBQ2pDLG1GQUFtRjtJQUNuRmIsT0FBT0osT0FBTyxDQUFDd0IsU0FBUyxDQUFDLElBQUk7UUFDekIsNENBQTRDO1FBQzVDLElBQUlGLHFCQUFxQkcsT0FBTyxLQUFLUixRQUFRO1FBQzdDSyxxQkFBcUJHLE9BQU8sR0FBR1I7UUFDL0IsSUFBSVMsU0FBU0MsS0FBSyxFQUFFO1lBQ2hCUCxxQkFBcUJNLFNBQVNDLEtBQUs7UUFDdkMsT0FBTztZQUNILE1BQU1DLGFBQWFGLFNBQVNHLGFBQWEsQ0FBQztZQUMxQyxJQUFJQztZQUNKLE1BQU1DLFVBQVUsQ0FBQ0QsTUFBTUYsY0FBYyxJQUFJLEdBQUcsS0FBSyxJQUFJQSxXQUFXSSxTQUFTLEtBQUssSUFBSSxHQUFHRixNQUFNRixjQUFjLElBQUksR0FBRyxLQUFLLElBQUlBLFdBQVdLLFdBQVc7WUFDL0liLHFCQUFxQlcsV0FBV2Q7UUFDcEMsQ0FBQztJQUNMLEdBQ0E7UUFDSUE7S0FDSDtJQUNELE9BQU8sV0FBVyxHQUFHYixPQUFPSixPQUFPLENBQUNrQyxhQUFhLENBQUMsS0FBSztRQUNuRCxhQUFhLFlBQVkscUNBQXFDOztRQUU5REMsSUFBSTtRQUNKQyxNQUFNO1FBQ05DLE9BQU8vQjtJQUNYLEdBQUdhO0FBQ1A7R0FuQ01sQjtLQUFBQTtBQW9DTkgsc0JBQXNCLEdBQUdHO0FBQ3pCLElBQUlxQyxXQUFXckM7QUFDZkgsa0JBQWUsR0FBR3dDO0FBRWxCLElBQUksQ0FBQyxPQUFPeEMsUUFBUUUsT0FBTyxLQUFLLGNBQWUsT0FBT0YsUUFBUUUsT0FBTyxLQUFLLFlBQVlGLFFBQVFFLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT0YsUUFBUUUsT0FBTyxDQUFDdUMsVUFBVSxLQUFLLGFBQWE7SUFDckszQyxPQUFPQyxjQUFjLENBQUNDLFFBQVFFLE9BQU8sRUFBRSxjQUFjO1FBQUVELE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPNEMsTUFBTSxDQUFDMUMsUUFBUUUsT0FBTyxFQUFFRjtJQUMvQjJDLE9BQU8zQyxPQUFPLEdBQUdBLFFBQVFFLE9BQU87QUFDbEMsQ0FBQyxDQUVELDJDQUEyQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1hbm5vdW5jZXIuanM/NTgyNyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGV4cG9ydHMuUm91dGVBbm5vdW5jZXIgPSB2b2lkIDA7XG52YXIgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzXCIpLmRlZmF1bHQ7XG52YXIgX3JlYWN0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbmNvbnN0IG5leHRqc1JvdXRlQW5ub3VuY2VyU3R5bGVzID0ge1xuICAgIGJvcmRlcjogMCxcbiAgICBjbGlwOiAncmVjdCgwIDAgMCAwKScsXG4gICAgaGVpZ2h0OiAnMXB4JyxcbiAgICBtYXJnaW46ICctMXB4JyxcbiAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgcGFkZGluZzogMCxcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB3aWR0aDogJzFweCcsXG4gICAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIHdvcmRXcmFwOiAnbm9ybWFsJ1xufTtcbmNvbnN0IFJvdXRlQW5ub3VuY2VyID0gKCk9PntcbiAgICBjb25zdCB7IGFzUGF0aCAgfSA9ICgwLCBfcm91dGVyKS51c2VSb3V0ZXIoKTtcbiAgICBjb25zdCBbcm91dGVBbm5vdW5jZW1lbnQsIHNldFJvdXRlQW5ub3VuY2VtZW50XSA9IF9yZWFjdC5kZWZhdWx0LnVzZVN0YXRlKCcnKTtcbiAgICAvLyBPbmx5IGFubm91bmNlIHRoZSBwYXRoIGNoYW5nZSwgYnV0IG5vdCBmb3IgdGhlIGZpcnN0IGxvYWQgYmVjYXVzZSBzY3JlZW5cbiAgICAvLyByZWFkZXIgd2lsbCBkbyB0aGF0IGF1dG9tYXRpY2FsbHkuXG4gICAgY29uc3QgcHJldmlvdXNseUxvYWRlZFBhdGggPSBfcmVhY3QuZGVmYXVsdC51c2VSZWYoYXNQYXRoKTtcbiAgICAvLyBFdmVyeSB0aW1lIHRoZSBwYXRoIGNoYW5nZXMsIGFubm91bmNlIHRoZSBuZXcgcGFnZeKAmXMgdGl0bGUgZm9sbG93aW5nIHRoaXNcbiAgICAvLyBwcmlvcml0eTogZmlyc3QgdGhlIGRvY3VtZW50IHRpdGxlIChmcm9tIGhlYWQpLCBvdGhlcndpc2UgdGhlIGZpcnN0IGgxLCBvclxuICAgIC8vIGlmIG5vbmUgb2YgdGhlc2UgZXhpc3QsIHRoZW4gdGhlIHBhdGhuYW1lIGZyb20gdGhlIFVSTC4gVGhpcyBtZXRob2RvbG9neSBpc1xuICAgIC8vIGluc3BpcmVkIGJ5IE1hcmN5IFN1dHRvbuKAmXMgYWNjZXNzaWJsZSBjbGllbnQgcm91dGluZyB1c2VyIHRlc3RpbmcuIE1vcmVcbiAgICAvLyBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaGVyZTpcbiAgICAvLyBodHRwczovL3d3dy5nYXRzYnlqcy5jb20vYmxvZy8yMDE5LTA3LTExLXVzZXItdGVzdGluZy1hY2Nlc3NpYmxlLWNsaWVudC1yb3V0aW5nL1xuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAvLyBJZiB0aGUgcGF0aCBoYXNuJ3QgY2hhbmdlLCB3ZSBkbyBub3RoaW5nLlxuICAgICAgICBpZiAocHJldmlvdXNseUxvYWRlZFBhdGguY3VycmVudCA9PT0gYXNQYXRoKSByZXR1cm47XG4gICAgICAgIHByZXZpb3VzbHlMb2FkZWRQYXRoLmN1cnJlbnQgPSBhc1BhdGg7XG4gICAgICAgIGlmIChkb2N1bWVudC50aXRsZSkge1xuICAgICAgICAgICAgc2V0Um91dGVBbm5vdW5jZW1lbnQoZG9jdW1lbnQudGl0bGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcGFnZUhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2gxJyk7XG4gICAgICAgICAgICB2YXIgcmVmO1xuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IChyZWYgPSBwYWdlSGVhZGVyID09IG51bGwgPyB2b2lkIDAgOiBwYWdlSGVhZGVyLmlubmVyVGV4dCkgIT0gbnVsbCA/IHJlZiA6IHBhZ2VIZWFkZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHBhZ2VIZWFkZXIudGV4dENvbnRlbnQ7XG4gICAgICAgICAgICBzZXRSb3V0ZUFubm91bmNlbWVudChjb250ZW50IHx8IGFzUGF0aCk7XG4gICAgICAgIH1cbiAgICB9LCAvLyBUT0RPOiBzd2l0Y2ggdG8gcGF0aG5hbWUgKyBxdWVyeSBvYmplY3Qgb2YgZHluYW1pYyByb3V0ZSByZXF1aXJlbWVudHNcbiAgICBbXG4gICAgICAgIGFzUGF0aFxuICAgIF0pO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtcbiAgICAgICAgXCJhcmlhLWxpdmVcIjogXCJhc3NlcnRpdmVcIiAvLyBNYWtlIHRoZSBhbm5vdW5jZW1lbnQgaW1tZWRpYXRlbHkuXG4gICAgICAgICxcbiAgICAgICAgaWQ6IFwiX19uZXh0LXJvdXRlLWFubm91bmNlcl9fXCIsXG4gICAgICAgIHJvbGU6IFwiYWxlcnRcIixcbiAgICAgICAgc3R5bGU6IG5leHRqc1JvdXRlQW5ub3VuY2VyU3R5bGVzXG4gICAgfSwgcm91dGVBbm5vdW5jZW1lbnQpO1xufTtcbmV4cG9ydHMuUm91dGVBbm5vdW5jZXIgPSBSb3V0ZUFubm91bmNlcjtcbnZhciBfZGVmYXVsdCA9IFJvdXRlQW5ub3VuY2VyO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWFubm91bmNlci5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiUm91dGVBbm5vdW5jZXIiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JvdXRlciIsIm5leHRqc1JvdXRlQW5ub3VuY2VyU3R5bGVzIiwiYm9yZGVyIiwiY2xpcCIsImhlaWdodCIsIm1hcmdpbiIsIm92ZXJmbG93IiwicGFkZGluZyIsInBvc2l0aW9uIiwid2lkdGgiLCJ3aGl0ZVNwYWNlIiwid29yZFdyYXAiLCJhc1BhdGgiLCJ1c2VSb3V0ZXIiLCJyb3V0ZUFubm91bmNlbWVudCIsInNldFJvdXRlQW5ub3VuY2VtZW50IiwidXNlU3RhdGUiLCJwcmV2aW91c2x5TG9hZGVkUGF0aCIsInVzZVJlZiIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJkb2N1bWVudCIsInRpdGxlIiwicGFnZUhlYWRlciIsInF1ZXJ5U2VsZWN0b3IiLCJyZWYiLCJjb250ZW50IiwiaW5uZXJUZXh0IiwidGV4dENvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiaWQiLCJyb2xlIiwic3R5bGUiLCJfZGVmYXVsdCIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-announcer.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/route-loader.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/client/route-loader.js ***! \*******************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.markAssetError = markAssetError;\nexports.isAssetError = isAssetError;\nexports.getClientBuildManifest = getClientBuildManifest;\nexports.createRouteLoader = createRouteLoader;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _getAssetPathFromRoute = _interop_require_default(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nvar _trustedTypes = __webpack_require__(/*! ./trusted-types */ \"./node_modules/next/dist/client/trusted-types.js\");\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\n// 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\nconst MS_MAX_IDLE_DELAY = 3800;\nfunction withFuture(key, map, generator) {\n let entry = map.get(key);\n if (entry) {\n if (\"future\" in entry) {\n return entry.future;\n }\n return Promise.resolve(entry);\n }\n let resolver;\n const prom = new Promise((resolve)=>{\n resolver = resolve;\n });\n map.set(key, entry = {\n resolve: resolver,\n future: prom\n });\n return generator ? generator() // eslint-disable-next-line no-sequences\n .then((value)=>(resolver(value), value)).catch((err)=>{\n map.delete(key);\n throw err;\n }) : prom;\n}\nconst ASSET_LOAD_ERROR = Symbol(\"ASSET_LOAD_ERROR\");\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\nfunction hasPrefetch(link) {\n try {\n link = document.createElement(\"link\");\n return(// with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports(\"prefetch\"));\n } catch (e) {\n return false;\n }\n}\nconst canPrefetch = hasPrefetch();\nfunction prefetchViaDom(href, as, link) {\n return new Promise((resolve, reject)=>{\n const selector = '\\n link[rel=\"prefetch\"][href^=\"'.concat(href, '\"],\\n link[rel=\"preload\"][href^=\"').concat(href, '\"],\\n script[src^=\"').concat(href, '\"]');\n if (document.querySelector(selector)) {\n return resolve();\n }\n link = document.createElement(\"link\");\n // The order of property assignment here is intentional:\n if (as) link.as = as;\n link.rel = \"prefetch\";\n link.crossOrigin = undefined;\n link.onload = resolve;\n link.onerror = ()=>reject(markAssetError(new Error(\"Failed to prefetch: \".concat(href))));\n // `href` should always be last:\n link.href = href;\n document.head.appendChild(link);\n });\n}\nfunction appendScript(src, script) {\n return new Promise((resolve, reject)=>{\n script = document.createElement(\"script\");\n // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n script.onload = resolve;\n script.onerror = ()=>reject(markAssetError(new Error(\"Failed to load script: \".concat(src))));\n // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n script.crossOrigin = undefined;\n // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n script.src = src;\n document.body.appendChild(script);\n });\n}\n// We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\nlet devBuildPromise;\n// Resolve a promise that times out after given amount of milliseconds.\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise((resolve, reject)=>{\n let cancelled = false;\n p.then((r)=>{\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n }).catch(reject);\n // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n if (true) {\n (devBuildPromise || Promise.resolve()).then(()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>setTimeout(()=>{\n if (!cancelled) {\n reject(err);\n }\n }, ms));\n });\n }\n if (false) {}\n });\n}\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n const onBuildManifest = new Promise((resolve)=>{\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB;\n self.__BUILD_MANIFEST_CB = ()=>{\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Failed to load client build manifest\")));\n}\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n const scriptUrl = assetPrefix + \"/_next/static/chunks/pages\" + encodeURI((0, _getAssetPathFromRoute).default(route, \".js\"));\n return Promise.resolve({\n scripts: [\n (0, _trustedTypes).__unsafeCreateTrustedScriptURL(scriptUrl)\n ],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n return getClientBuildManifest().then((manifest)=>{\n if (!(route in manifest)) {\n throw markAssetError(new Error(\"Failed to lookup route: \".concat(route)));\n }\n const allFiles = manifest[route].map((entry)=>assetPrefix + \"/_next/\" + encodeURI(entry));\n return {\n scripts: allFiles.filter((v)=>v.endsWith(\".js\")).map((v)=>(0, _trustedTypes).__unsafeCreateTrustedScriptURL(v)),\n css: allFiles.filter((v)=>v.endsWith(\".css\"))\n };\n });\n}\nfunction createRouteLoader(assetPrefix) {\n const entrypoints = new Map();\n const loadedScripts = new Map();\n const styleSheets = new Map();\n const routes = new Map();\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) {} else {\n return appendScript(src);\n }\n }\n function fetchStyleSheet(href) {\n let prom = styleSheets.get(href);\n if (prom) {\n return prom;\n }\n styleSheets.set(href, prom = fetch(href).then((res)=>{\n if (!res.ok) {\n throw new Error(\"Failed to load stylesheet: \".concat(href));\n }\n return res.text().then((text)=>({\n href: href,\n content: text\n }));\n }).catch((err)=>{\n throw markAssetError(err);\n }));\n return prom;\n }\n return {\n whenEntrypoint (route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint (route, execute) {\n (execute ? Promise.resolve().then(()=>execute()).then((exports1)=>({\n component: exports1 && exports1.default || exports1,\n exports: exports1\n }), (err)=>({\n error: err\n })) : Promise.resolve(undefined)).then((input)=>{\n const old = entrypoints.get(route);\n if (old && \"resolve\" in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints.delete(route);\n }\n // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n routes.delete(route);\n }\n });\n },\n loadRoute (route, prefetch) {\n return withFuture(route, routes, ()=>{\n let devBuildPromiseResolve;\n if (true) {\n devBuildPromise = new Promise((resolve)=>{\n devBuildPromiseResolve = resolve;\n });\n }\n return resolvePromiseWithTimeout(getFilesForRoute(assetPrefix, route).then((param)=>{\n let { scripts , css } = param;\n return Promise.all([\n entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)),\n Promise.all(css.map(fetchStyleSheet))\n ]);\n }).then((res)=>{\n return this.whenEntrypoint(route).then((entrypoint)=>({\n entrypoint,\n styles: res[1]\n }));\n }), MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Route did not complete loading: \".concat(route)))).then((param)=>{\n let { entrypoint , styles } = param;\n const res = Object.assign({\n styles: styles\n }, entrypoint);\n return \"error\" in entrypoint ? entrypoint : res;\n }).catch((err)=>{\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n return {\n error: err\n };\n }).finally(()=>{\n return devBuildPromiseResolve == null ? void 0 : devBuildPromiseResolve();\n });\n });\n },\n prefetch (route) {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn;\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n return getFilesForRoute(assetPrefix, route).then((output)=>Promise.all(canPrefetch ? output.scripts.map((script)=>prefetchViaDom(script.toString(), \"script\")) : [])).then(()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>this.loadRoute(route, true).catch(()=>{}));\n }).catch(()=>{});\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=route-loader.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsc0JBQXNCLEdBQUdFO0FBQ3pCRixvQkFBb0IsR0FBR0c7QUFDdkJILDhCQUE4QixHQUFHSTtBQUNqQ0oseUJBQXlCLEdBQUdLO0FBQzVCLElBQUlDLDJCQUEyQkMsbUpBQStEO0FBQzlGLElBQUlFLHlCQUF5QkgseUJBQXlCQyxtQkFBT0EsQ0FBQywySUFBc0Q7QUFDcEgsSUFBSUcsZ0JBQWdCSCxtQkFBT0EsQ0FBQyx5RUFBaUI7QUFDN0MsSUFBSUksdUJBQXVCSixtQkFBT0EsQ0FBQyx5RkFBeUI7QUFDNUQsdUVBQXVFO0FBQ3ZFLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0Usb0NBQW9DO0FBQ3BDLE1BQU1LLG9CQUFvQjtBQUMxQixTQUFTQyxXQUFXQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsU0FBUyxFQUFFO0lBQ3JDLElBQUlDLFFBQVFGLElBQUlHLEdBQUcsQ0FBQ0o7SUFDcEIsSUFBSUcsT0FBTztRQUNQLElBQUksWUFBWUEsT0FBTztZQUNuQixPQUFPQSxNQUFNRSxNQUFNO1FBQ3ZCLENBQUM7UUFDRCxPQUFPQyxRQUFRQyxPQUFPLENBQUNKO0lBQzNCLENBQUM7SUFDRCxJQUFJSztJQUNKLE1BQU1DLE9BQU8sSUFBSUgsUUFBUSxDQUFDQyxVQUFVO1FBQ2hDQyxXQUFXRDtJQUNmO0lBQ0FOLElBQUlTLEdBQUcsQ0FBQ1YsS0FBS0csUUFBUTtRQUNqQkksU0FBU0M7UUFDVEgsUUFBUUk7SUFDWjtJQUNBLE9BQU9QLFlBQVlBLFlBQVcsd0NBQXdDO0tBQ3JFUyxJQUFJLENBQUMsQ0FBQ3hCLFFBQVNxQixDQUFBQSxTQUFTckIsUUFBUUEsS0FBSyxHQUFHeUIsS0FBSyxDQUFDLENBQUNDLE1BQU07UUFDbERaLElBQUlhLE1BQU0sQ0FBQ2Q7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QXNIO1lBQ3RILHNCQUFzQjtZQUN0QixJQUFJeUM7WUFDSixJQUFJQSxLQUFLQyxVQUFVQyxVQUFVLEVBQUU7Z0JBQzNCLHlEQUF5RDtnQkFDekQsSUFBSUYsR0FBR0csUUFBUSxJQUFJLEtBQUtDLElBQUksQ0FBQ0osR0FBR0ssYUFBYSxHQUFHLE9BQU92RyxRQUFRQyxPQUFPO1lBQzFFLENBQUM7WUFDRCxPQUFPc0QsaUJBQWlCQyxhQUFhQyxPQUFPcEQsSUFBSSxDQUFDLENBQUNtRyxTQUFTeEcsUUFBUTRGLEdBQUcsQ0FBQ3ZFLGNBQWNtRixPQUFPNUMsT0FBTyxDQUFDakUsR0FBRyxDQUFDLENBQUM2QyxTQUFTbEIsZUFBZWtCLE9BQU9rQyxRQUFRLElBQUksYUFBYSxFQUFFLEdBQUdyRSxJQUFJLENBQUMsSUFBSTtnQkFDMUssSUFBR2Qsb0JBQW9CLEVBQUV5RCxtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQ3lDLFNBQVMsQ0FBQ2hDLE9BQU8sSUFBSSxFQUFFbkQsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM3RixHQUFHQSxLQUFLLENBQ1IsSUFBSSxDQUFDO1FBQ1Q7SUFDSjtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU8xQixRQUFRUSxPQUFPLEtBQUssY0FBZSxPQUFPUixRQUFRUSxPQUFPLEtBQUssWUFBWVIsUUFBUVEsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPUixRQUFRUSxPQUFPLENBQUNxSCxVQUFVLEtBQUssYUFBYTtJQUNySy9ILE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUVEsT0FBTyxFQUFFLGNBQWM7UUFBRVAsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9zSCxNQUFNLENBQUNwSCxRQUFRUSxPQUFPLEVBQUVSO0lBQy9COEgsT0FBTzlILE9BQU8sR0FBR0EsUUFBUVEsT0FBTztBQUNsQyxDQUFDLENBRUQsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcz9lYTM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5tYXJrQXNzZXRFcnJvciA9IG1hcmtBc3NldEVycm9yO1xuZXhwb3J0cy5pc0Fzc2V0RXJyb3IgPSBpc0Fzc2V0RXJyb3I7XG5leHBvcnRzLmdldENsaWVudEJ1aWxkTWFuaWZlc3QgPSBnZXRDbGllbnRCdWlsZE1hbmlmZXN0O1xuZXhwb3J0cy5jcmVhdGVSb3V0ZUxvYWRlciA9IGNyZWF0ZVJvdXRlTG9hZGVyO1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9nZXRBc3NldFBhdGhGcm9tUm91dGUgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGVcIikpO1xudmFyIF90cnVzdGVkVHlwZXMgPSByZXF1aXJlKFwiLi90cnVzdGVkLXR5cGVzXCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuLy8gMy44cyB3YXMgYXJiaXRyYXJpbHkgY2hvc2VuIGFzIGl0J3Mgd2hhdCBodHRwczovL3dlYi5kZXYvaW50ZXJhY3RpdmVcbi8vIGNvbnNpZGVycyBhcyBcIkdvb2RcIiB0aW1lLXRvLWludGVyYWN0aXZlLiBXZSBtdXN0IGFzc3VtZSBzb21ldGhpbmcgd2VudFxuLy8gd3JvbmcgYmV5b25kIHRoaXMgcG9pbnQsIGFuZCB0aGVuIGZhbGwtYmFjayB0byBhIGZ1bGwgcGFnZSB0cmFuc2l0aW9uIHRvXG4vLyBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBvZiB2YWx1ZS5cbmNvbnN0IE1TX01BWF9JRExFX0RFTEFZID0gMzgwMDtcbmZ1bmN0aW9uIHdpdGhGdXR1cmUoa2V5LCBtYXAsIGdlbmVyYXRvcikge1xuICAgIGxldCBlbnRyeSA9IG1hcC5nZXQoa2V5KTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgaWYgKCdmdXR1cmUnIGluIGVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZnV0dXJlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50cnkpO1xuICAgIH1cbiAgICBsZXQgcmVzb2x2ZXI7XG4gICAgY29uc3QgcHJvbSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+e1xuICAgICAgICByZXNvbHZlciA9IHJlc29sdmU7XG4gICAgfSk7XG4gICAgbWFwLnNldChrZXksIGVudHJ5ID0ge1xuICAgICAgICByZXNvbHZlOiByZXNvbHZlcixcbiAgICAgICAgZnV0dXJlOiBwcm9tXG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvciA/IGdlbmVyYXRvcigpLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgIC50aGVuKCh2YWx1ZSk9PihyZXNvbHZlcih2YWx1ZSksIHZhbHVlKSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgbWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgfSkgOiBwcm9tO1xufVxuY29uc3QgQVNTRVRfTE9BRF9FUlJPUiA9IFN5bWJvbCgnQVNTRVRfTE9BRF9FUlJPUicpO1xuZnVuY3Rpb24gbWFya0Fzc2V0RXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnIsIEFTU0VUX0xPQURfRVJST1IsIHt9KTtcbn1cbmZ1bmN0aW9uIGlzQXNzZXRFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gZXJyICYmIEFTU0VUX0xPQURfRVJST1IgaW4gZXJyO1xufVxuZnVuY3Rpb24gaGFzUHJlZmV0Y2gobGluaykge1xuICAgIHRyeSB7XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHJldHVybigvLyBkZXRlY3QgSUUxMSBzaW5jZSBpdCBzdXBwb3J0cyBwcmVmZXRjaCBidXQgaXNuJ3QgZGV0ZWN0ZWRcbiAgICAgICAgLy8gd2l0aCByZWxMaXN0LnN1cHBvcnRcbiAgICAgICAgKCEhd2luZG93Lk1TSW5wdXRNZXRob2RDb250ZXh0ICYmICEhZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSB8fCBsaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWZldGNoJykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmNvbnN0IGNhblByZWZldGNoID0gaGFzUHJlZmV0Y2goKTtcbmZ1bmN0aW9uIHByZWZldGNoVmlhRG9tKGhyZWYsIGFzLCBsaW5rKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gYFxuICAgICAgbGlua1tyZWw9XCJwcmVmZXRjaFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBsaW5rW3JlbD1cInByZWxvYWRcIl1baHJlZl49XCIke2hyZWZ9XCJdLFxuICAgICAgc2NyaXB0W3NyY149XCIke2hyZWZ9XCJdYDtcbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWw6XG4gICAgICAgIGlmIChhcykgbGluay5hcyA9IGFzO1xuICAgICAgICBsaW5rLnJlbCA9IGBwcmVmZXRjaGA7XG4gICAgICAgIGxpbmsuY3Jvc3NPcmlnaW4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ1JPU1NfT1JJR0lOO1xuICAgICAgICBsaW5rLm9ubG9hZCA9IHJlc29sdmU7XG4gICAgICAgIGxpbmsub25lcnJvciA9ICgpPT5yZWplY3QobWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gcHJlZmV0Y2g6ICR7aHJlZn1gKSkpO1xuICAgICAgICAvLyBgaHJlZmAgc2hvdWxkIGFsd2F5cyBiZSBsYXN0OlxuICAgICAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gYXBwZW5kU2NyaXB0KHNyYywgc2NyaXB0KSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsLlxuICAgICAgICAvLyAxLiBTZXR1cCBzdWNjZXNzL2ZhaWx1cmUgaG9va3MgaW4gY2FzZSB0aGUgYnJvd3NlciBzeW5jaHJvbm91c2x5XG4gICAgICAgIC8vICAgIGV4ZWN1dGVzIHdoZW4gYHNyY2AgaXMgc2V0LlxuICAgICAgICBzY3JpcHQub25sb2FkID0gcmVzb2x2ZTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKT0+cmVqZWN0KG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc2NyaXB0OiAke3NyY31gKSkpO1xuICAgICAgICAvLyAyLiBDb25maWd1cmUgdGhlIGNyb3NzLW9yaWdpbiBhdHRyaWJ1dGUgYmVmb3JlIHNldHRpbmcgYHNyY2AgaW4gY2FzZSB0aGVcbiAgICAgICAgLy8gICAgYnJvd3NlciBiZWdpbnMgdG8gZmV0Y2guXG4gICAgICAgIHNjcmlwdC5jcm9zc09yaWdpbiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU47XG4gICAgICAgIC8vIDMuIEZpbmFsbHksIHNldCB0aGUgc291cmNlIGFuZCBpbmplY3QgaW50byB0aGUgRE9NIGluIGNhc2UgdGhlIGNoaWxkXG4gICAgICAgIC8vICAgIG11c3QgYmUgYXBwZW5kZWQgZm9yIGZldGNoaW5nIHRvIHN0YXJ0LlxuICAgICAgICBzY3JpcHQuc3JjID0gc3JjO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfSk7XG59XG4vLyBXZSB3YWl0IGZvciBwYWdlcyB0byBiZSBidWlsdCBpbiBkZXYgYmVmb3JlIHdlIHN0YXJ0IHRoZSByb3V0ZSB0cmFuc2l0aW9uXG4vLyB0aW1lb3V0IHRvIHByZXZlbnQgYW4gdW4tbmVjZXNzYXJ5IGhhcmQgbmF2aWdhdGlvbiBpbiBkZXZlbG9wbWVudC5cbmxldCBkZXZCdWlsZFByb21pc2U7XG4vLyBSZXNvbHZlIGEgcHJvbWlzZSB0aGF0IHRpbWVzIG91dCBhZnRlciBnaXZlbiBhbW91bnQgb2YgbWlsbGlzZWNvbmRzLlxuZnVuY3Rpb24gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChwLCBtcywgZXJyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICAgICAgcC50aGVuKChyKT0+e1xuICAgICAgICAgICAgLy8gUmVzb2x2ZWQsIGNhbmNlbCB0aGUgdGltZW91dFxuICAgICAgICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJlc29sdmUocik7XG4gICAgICAgIH0pLmNhdGNoKHJlamVjdCk7XG4gICAgICAgIC8vIFdlIHdyYXAgdGhlc2UgY2hlY2tzIHNlcGFyYXRlbHkgZm9yIGJldHRlciBkZWFkLWNvZGUgZWxpbWluYXRpb24gaW5cbiAgICAgICAgLy8gcHJvZHVjdGlvbiBidW5kbGVzLlxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIChkZXZCdWlsZFByb21pc2UgfHwgUHJvbWlzZS5yZXNvbHZlKCkpLnRoZW4oKCk9PntcbiAgICAgICAgICAgICAgICAoMCwgX3JlcXVlc3RJZGxlQ2FsbGJhY2spLnJlcXVlc3RJZGxlQ2FsbGJhY2soKCk9PnNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIG1zKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+c2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBtcykpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkge1xuICAgIGlmIChzZWxmLl9fQlVJTERfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QpO1xuICAgIH1cbiAgICBjb25zdCBvbkJ1aWxkTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgLy8gTWFuZGF0b3J5IGJlY2F1c2UgdGhpcyBpcyBub3QgY29uY3VycmVudCBzYWZlOlxuICAgICAgICBjb25zdCBjYiA9IHNlbGYuX19CVUlMRF9NQU5JRkVTVF9DQjtcbiAgICAgICAgc2VsZi5fX0JVSUxEX01BTklGRVNUX0NCID0gKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUoc2VsZi5fX0JVSUxEX01BTklGRVNUKTtcbiAgICAgICAgICAgIGNiICYmIGNiKCk7XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQob25CdWlsZE1hbmlmZXN0LCBNU19NQVhfSURMRV9ERUxBWSwgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgYnVpbGQgbWFuaWZlc3QnKSkpO1xufVxuZnVuY3Rpb24gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgY29uc3Qgc2NyaXB0VXJsID0gYXNzZXRQcmVmaXggKyAnL19uZXh0L3N0YXRpYy9jaHVua3MvcGFnZXMnICsgZW5jb2RlVVJJKCgwLCBfZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKS5kZWZhdWx0KHJvdXRlLCAnLmpzJykpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHNjcmlwdHM6IFtcbiAgICAgICAgICAgICAgICAoMCwgX3RydXN0ZWRUeXBlcykuX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMKHNjcmlwdFVybClcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAvLyBTdHlsZXMgYXJlIGhhbmRsZWQgYnkgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQ6XG4gICAgICAgICAgICBjc3M6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLnRoZW4oKG1hbmlmZXN0KT0+e1xuICAgICAgICBpZiAoIShyb3V0ZSBpbiBtYW5pZmVzdCkpIHtcbiAgICAgICAgICAgIHRocm93IG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvb2t1cCByb3V0ZTogJHtyb3V0ZX1gKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsRmlsZXMgPSBtYW5pZmVzdFtyb3V0ZV0ubWFwKChlbnRyeSk9PmFzc2V0UHJlZml4ICsgJy9fbmV4dC8nICsgZW5jb2RlVVJJKGVudHJ5KSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JpcHRzOiBhbGxGaWxlcy5maWx0ZXIoKHYpPT52LmVuZHNXaXRoKCcuanMnKSkubWFwKCh2KT0+KDAsIF90cnVzdGVkVHlwZXMpLl9fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTCh2KSksXG4gICAgICAgICAgICBjc3M6IGFsbEZpbGVzLmZpbHRlcigodik9PnYuZW5kc1dpdGgoJy5jc3MnKSlcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJvdXRlTG9hZGVyKGFzc2V0UHJlZml4KSB7XG4gICAgY29uc3QgZW50cnlwb2ludHMgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgbG9hZGVkU2NyaXB0cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBzdHlsZVNoZWV0cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCByb3V0ZXMgPSBuZXcgTWFwKCk7XG4gICAgZnVuY3Rpb24gbWF5YmVFeGVjdXRlU2NyaXB0KHNyYykge1xuICAgICAgICAvLyBXaXRoIEhNUiB3ZSBtaWdodCBuZWVkIHRvIFwicmVsb2FkXCIgc2NyaXB0cyB3aGVuIHRoZXkgYXJlXG4gICAgICAgIC8vIGRpc3Bvc2VkIGFuZCByZWFkZGVkLiBFeGVjdXRpbmcgc2NyaXB0cyB0d2ljZSBoYXMgbm8gZnVuY3Rpb25hbFxuICAgICAgICAvLyBkaWZmZXJlbmNlc1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIGxldCBwcm9tID0gbG9hZGVkU2NyaXB0cy5nZXQoc3JjLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFNraXAgZXhlY3V0aW5nIHNjcmlwdCBpZiBpdCdzIGFscmVhZHkgaW4gdGhlIERPTTpcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjXj1cIiR7c3JjfVwiXWApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9hZGVkU2NyaXB0cy5zZXQoc3JjLnRvU3RyaW5nKCksIHByb20gPSBhcHBlbmRTY3JpcHQoc3JjKSk7XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBlbmRTY3JpcHQoc3JjKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmZXRjaFN0eWxlU2hlZXQoaHJlZikge1xuICAgICAgICBsZXQgcHJvbSA9IHN0eWxlU2hlZXRzLmdldChocmVmKTtcbiAgICAgICAgaWYgKHByb20pIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9tO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxlU2hlZXRzLnNldChocmVmLCBwcm9tID0gZmV0Y2goaHJlZikudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHN0eWxlc2hlZXQ6ICR7aHJlZn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXMudGV4dCgpLnRoZW4oKHRleHQpPT4oe1xuICAgICAgICAgICAgICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IoZXJyKTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gcHJvbTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2hlbkVudHJ5cG9pbnQgKHJvdXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgZW50cnlwb2ludHMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVudHJ5cG9pbnQgKHJvdXRlLCBleGVjdXRlKSB7XG4gICAgICAgICAgICAoZXhlY3V0ZSA/IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmV4ZWN1dGUoKSkudGhlbigoZXhwb3J0cyk9Pih7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogZXhwb3J0cyAmJiBleHBvcnRzLmRlZmF1bHQgfHwgZXhwb3J0cyxcbiAgICAgICAgICAgICAgICAgICAgZXhwb3J0czogZXhwb3J0c1xuICAgICAgICAgICAgICAgIH0pLCAoZXJyKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVyclxuICAgICAgICAgICAgICAgIH0pKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpKS50aGVuKChpbnB1dCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCBvbGQgPSBlbnRyeXBvaW50cy5nZXQocm91dGUpO1xuICAgICAgICAgICAgICAgIGlmIChvbGQgJiYgJ3Jlc29sdmUnIGluIG9sZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2xkLnJlc29sdmUoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50cy5zZXQocm91dGUsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGlzIGVudHJ5cG9pbnQgaGFzIGJlZW4gcmVzb2x2ZWQgYmVmb3JlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByb3V0ZSBpcyBvdXRkYXRlZCBhbmQgd2Ugd2FudCB0byBpbnZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FjaGUgZW50cnlcbiAgICAgICAgICAgICAgICAgICAgcm91dGVzLmRlbGV0ZShyb3V0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRSb3V0ZSAocm91dGUsIHByZWZldGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aEZ1dHVyZShyb3V0ZSwgcm91dGVzLCAoKT0+e1xuICAgICAgICAgICAgICAgIGxldCBkZXZCdWlsZFByb21pc2VSZXNvbHZlO1xuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICBkZXZCdWlsZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIGRldkJ1aWxkUHJvbWlzZVJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQoZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKHsgc2NyaXB0cyAsIGNzcyAgfSk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmhhcyhyb3V0ZSkgPyBbXSA6IFByb21pc2UuYWxsKHNjcmlwdHMubWFwKG1heWJlRXhlY3V0ZVNjcmlwdCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoY3NzLm1hcChmZXRjaFN0eWxlU2hlZXQpKSwgXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMud2hlbkVudHJ5cG9pbnQocm91dGUpLnRoZW4oKGVudHJ5cG9pbnQpPT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzOiByZXNbMV1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9KSwgTVNfTUFYX0lETEVfREVMQVksIG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgUm91dGUgZGlkIG5vdCBjb21wbGV0ZSBsb2FkaW5nOiAke3JvdXRlfWApKSkudGhlbigoeyBlbnRyeXBvaW50ICwgc3R5bGVzICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlczogc3R5bGVzXG4gICAgICAgICAgICAgICAgICAgIH0sIGVudHJ5cG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJyBpbiBlbnRyeXBvaW50ID8gZW50cnlwb2ludCA6IHJlcztcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgZXJyb3JzIGR1cmluZyBwcmVmZXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGV2QnVpbGRQcm9taXNlUmVzb2x2ZSA9PSBudWxsID8gdm9pZCAwIDogZGV2QnVpbGRQcm9taXNlUmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZWZldGNoIChyb3V0ZSkge1xuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNocm9tZUxhYnMvcXVpY2tsaW5rL2Jsb2IvNDUzYTY2MWZhMWZhOTQwZTJkMmUwNDQ0NTIzOThlMzhjNjdhOThmYi9zcmMvaW5kZXgubWpzI0wxMTUtTDExOFxuICAgICAgICAgICAgLy8gTGljZW5zZTogQXBhY2hlIDIuMFxuICAgICAgICAgICAgbGV0IGNuO1xuICAgICAgICAgICAgaWYgKGNuID0gbmF2aWdhdG9yLmNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAvLyBEb24ndCBwcmVmZXRjaCBpZiB1c2luZyAyRyBvciBpZiBTYXZlLURhdGEgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBpZiAoY24uc2F2ZURhdGEgfHwgLzJnLy50ZXN0KGNuLmVmZmVjdGl2ZVR5cGUpKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpLnRoZW4oKG91dHB1dCk9PlByb21pc2UuYWxsKGNhblByZWZldGNoID8gb3V0cHV0LnNjcmlwdHMubWFwKChzY3JpcHQpPT5wcmVmZXRjaFZpYURvbShzY3JpcHQudG9TdHJpbmcoKSwgJ3NjcmlwdCcpKSA6IFtdKSkudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdElkbGVDYWxsYmFjaykucmVxdWVzdElkbGVDYWxsYmFjaygoKT0+dGhpcy5sb2FkUm91dGUocm91dGUsIHRydWUpLmNhdGNoKCgpPT57fSkpO1xuICAgICAgICAgICAgfSkuY2F0Y2goLy8gc3dhbGxvdyBwcmVmZXRjaCBlcnJvcnNcbiAgICAgICAgICAgICgpPT57fSk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1sb2FkZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwibWFya0Fzc2V0RXJyb3IiLCJpc0Fzc2V0RXJyb3IiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwiY3JlYXRlUm91dGVMb2FkZXIiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJyZXF1aXJlIiwiZGVmYXVsdCIsIl9nZXRBc3NldFBhdGhGcm9tUm91dGUiLCJfdHJ1c3RlZFR5cGVzIiwiX3JlcXVlc3RJZGxlQ2FsbGJhY2siLCJNU19NQVhfSURMRV9ERUxBWSIsIndpdGhGdXR1cmUiLCJrZXkiLCJtYXAiLCJnZW5lcmF0b3IiLCJlbnRyeSIsImdldCIsImZ1dHVyZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZXIiLCJwcm9tIiwic2V0IiwidGhlbiIsImNhdGNoIiwiZXJyIiwiZGVsZXRlIiwiQVNTRVRfTE9BRF9FUlJPUiIsIlN5bWJvbCIsImhhc1ByZWZldGNoIiwibGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIndpbmRvdyIsIk1TSW5wdXRNZXRob2RDb250ZXh0IiwiZG9jdW1lbnRNb2RlIiwicmVsTGlzdCIsInN1cHBvcnRzIiwiZSIsImNhblByZWZldGNoIiwicHJlZmV0Y2hWaWFEb20iLCJocmVmIiwiYXMiLCJyZWplY3QiLCJzZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJyZWwiLCJjcm9zc09yaWdpbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ1JPU1NfT1JJR0lOIiwib25sb2FkIiwib25lcnJvciIsIkVycm9yIiwiaGVhZCIsImFwcGVuZENoaWxkIiwiYXBwZW5kU2NyaXB0Iiwic3JjIiwic2NyaXB0IiwiYm9keSIsImRldkJ1aWxkUHJvbWlzZSIsInJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQiLCJwIiwibXMiLCJjYW5jZWxsZWQiLCJyIiwicmVxdWVzdElkbGVDYWxsYmFjayIsInNldFRpbWVvdXQiLCJzZWxmIiwiX19CVUlMRF9NQU5JRkVTVCIsIm9uQnVpbGRNYW5pZmVzdCIsImNiIiwiX19CVUlMRF9NQU5JRkVTVF9DQiIsImdldEZpbGVzRm9yUm91dGUiLCJhc3NldFByZWZpeCIsInJvdXRlIiwic2NyaXB0VXJsIiwiZW5jb2RlVVJJIiwic2NyaXB0cyIsIl9fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTCIsImNzcyIsIm1hbmlmZXN0IiwiYWxsRmlsZXMiLCJmaWx0ZXIiLCJ2IiwiZW5kc1dpdGgiLCJlbnRyeXBvaW50cyIsIk1hcCIsImxvYWRlZFNjcmlwdHMiLCJzdHlsZVNoZWV0cyIsInJvdXRlcyIsIm1heWJlRXhlY3V0ZVNjcmlwdCIsInRvU3RyaW5nIiwiZmV0Y2hTdHlsZVNoZWV0IiwiZmV0Y2giLCJyZXMiLCJvayIsInRleHQiLCJjb250ZW50Iiwid2hlbkVudHJ5cG9pbnQiLCJvbkVudHJ5cG9pbnQiLCJleGVjdXRlIiwiY29tcG9uZW50IiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJpbnB1dCIsIm9sZCIsImxvYWRSb3V0ZSIsInByZWZldGNoIiwiZGV2QnVpbGRQcm9taXNlUmVzb2x2ZSIsImFsbCIsImhhcyIsImVudHJ5cG9pbnQiLCJzdHlsZXMiLCJhc3NpZ24iLCJmaW5hbGx5IiwiY24iLCJuYXZpZ2F0b3IiLCJjb25uZWN0aW9uIiwic2F2ZURhdGEiLCJ0ZXN0IiwiZWZmZWN0aXZlVHlwZSIsIm91dHB1dCIsIl9fZXNNb2R1bGUiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/router.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/client/router.js ***! \*************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Router\", ({\n enumerable: true,\n get: function() {\n return _router.default;\n }\n}));\nObject.defineProperty(exports, \"withRouter\", ({\n enumerable: true,\n get: function() {\n return _withRouter.default;\n }\n}));\nexports.useRouter = useRouter;\nexports.createRouter = createRouter;\nexports.makePublicRouterInstance = makePublicRouterInstance;\nexports[\"default\"] = void 0;\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _react = _interop_require_default(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar _router = _interop_require_default(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\nvar _routerContext = __webpack_require__(/*! ../shared/lib/router-context */ \"./node_modules/next/dist/shared/lib/router-context.js\");\nvar _isError = _interop_require_default(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nvar _withRouter = _interop_require_default(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\nconst singletonRouter = {\n router: null,\n readyCallbacks: [],\n ready (cb) {\n if (this.router) return cb();\n if (true) {\n this.readyCallbacks.push(cb);\n }\n }\n};\n// Create public properties and methods of the router in the singletonRouter\nconst urlPropertyFields = [\n \"pathname\",\n \"route\",\n \"query\",\n \"asPath\",\n \"components\",\n \"isFallback\",\n \"basePath\",\n \"locale\",\n \"locales\",\n \"defaultLocale\",\n \"isReady\",\n \"isPreview\",\n \"isLocaleDomain\",\n \"domainLocales\"\n];\nconst routerEvents = [\n \"routeChangeStart\",\n \"beforeHistoryChange\",\n \"routeChangeComplete\",\n \"routeChangeError\",\n \"hashChangeStart\",\n \"hashChangeComplete\"\n];\nconst coreMethodFields = [\n \"push\",\n \"replace\",\n \"reload\",\n \"back\",\n \"prefetch\",\n \"beforePopState\"\n];\n// Events is a static property on the router, the router doesn't have to be initialized to use it\nObject.defineProperty(singletonRouter, \"events\", {\n get () {\n return _router.default.events;\n }\n});\nfunction getRouter() {\n if (!singletonRouter.router) {\n const message = \"No router instance found.\\n\" + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n return singletonRouter.router;\n}\nurlPropertyFields.forEach((field)=>{\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get () {\n const router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach((field)=>{\n singletonRouter[field] = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const router = getRouter();\n return router[field](...args);\n };\n});\nrouterEvents.forEach((event)=>{\n singletonRouter.ready(()=>{\n _router.default.events.on(event, function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const eventField = \"on\".concat(event.charAt(0).toUpperCase()).concat(event.substring(1));\n const _singletonRouter = singletonRouter;\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField](...args);\n } catch (err) {\n console.error(\"Error when running the Router event: \".concat(eventField));\n console.error((0, _isError).default(err) ? \"\".concat(err.message, \"\\n\").concat(err.stack) : err + \"\");\n }\n }\n });\n });\n});\nvar _default = singletonRouter;\nexports[\"default\"] = _default;\nfunction useRouter() {\n _s();\n const router = _react.default.useContext(_routerContext.RouterContext);\n if (!router) {\n throw new Error(\"Error: NextRouter was not mounted. https://nextjs.org/docs/messages/next-router-not-mounted\");\n }\n return router;\n}\n_s(useRouter, \"rbAhEc3dLGnVlsHWaSDsgP4MZS0=\");\nfunction createRouter() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n singletonRouter.router = new _router.default(...args);\n singletonRouter.readyCallbacks.forEach((cb)=>cb());\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\nfunction makePublicRouterInstance(router) {\n const scopedRouter = router;\n const instance = {};\n for (const property of urlPropertyFields){\n if (typeof scopedRouter[property] === \"object\") {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n instance[property] = scopedRouter[property];\n }\n // Events is a static property on the router, the router doesn't have to be initialized to use it\n instance.events = _router.default.events;\n coreMethodFields.forEach((field)=>{\n instance[field] = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n return scopedRouter[field](...args);\n };\n });\n return instance;\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.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports on update so we can compare the boundary\n // signatures.\n module.hot.dispose(function (data) {\n data.prevExports = currentExports;\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevExports !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevExports !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZILDBDQUF5QztJQUNyQ0ksWUFBWSxJQUFJO0lBQ2hCQyxLQUFLLFdBQVc7UUFDWixPQUFPQyxRQUFRQyxPQUFPO0lBQzFCO0FBQ0osQ0FBQyxFQUFDO0FBQ0ZQLDhDQUE2QztJQUN6Q0ksWUFBWSxJQUFJO0lBQ2hCQyxLQUFLLFdBQVc7UUFDWixPQUFPRyxZQUFZRCxPQUFPO0lBQzlCO0FBQ0osQ0FBQyxFQUFDO0FBQ0ZMLGlCQUFpQixHQUFHTztBQUNwQlAsb0JBQW9CLEdBQUdRO0FBQ3ZCUixnQ0FBZ0MsR0FBR1M7QUFDbkNULGtCQUFlLEdBQUcsS0FBSztBQUN2QixJQUFJVSwyQkFBMkJDLG1KQUErRDtBQUM5RixJQUFJQyxTQUFTRix5QkFBeUJDLG1CQUFPQSxDQUFDLDRDQUFPO0FBQ3JELElBQUlQLFVBQVVNLHlCQUF5QkMsbUJBQU9BLENBQUMseUZBQTZCO0FBQzVFLElBQUlFLGlCQUFpQkYsbUJBQU9BLENBQUMsMkZBQThCO0FBQzNELElBQUlHLFdBQVdKLHlCQUF5QkMsbUJBQU9BLENBQUMsaUVBQWlCO0FBQ2pFLElBQUlMLGNBQWNJLHlCQUF5QkMsbUJBQU9BLENBQUMscUVBQWU7QUFDbEUsTUFBTUksa0JBQWtCO0lBQ3BCQyxRQUFRLElBQUk7SUFDWkMsZ0JBQWdCLEVBQUU7SUFDbEJDLE9BQU9DLEVBQUUsRUFBRTtRQUNQLElBQUksSUFBSSxDQUFDSCxNQUFNLEVBQUUsT0FBT0c7UUFDeEIsSUFBSSxJQUFrQixFQUFhO1lBQy9CLElBQUksQ0FBQ0YsY0FBYyxDQUFDRyxJQUFJLENBQUNEO1FBQzdCLENBQUM7SUFDTDtBQUNKO0FBQ0EsNEVBQTRFO0FBQzVFLE1BQU1FLG9CQUFvQjtJQUN0QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJ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SSxPQUFPd0IsWUFBWSxDQUFDRSxTQUFTLEtBQUssVUFBVTtZQUM1Q0QsUUFBUSxDQUFDQyxTQUFTLEdBQUdqRCxPQUFPa0QsTUFBTSxDQUFDQyxNQUFNQyxPQUFPLENBQUNMLFlBQVksQ0FBQ0UsU0FBUyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRUYsWUFBWSxDQUFDRSxTQUFTLEVBQUUsbUNBQW1DOztZQUUvSSxRQUFTO1FBQ2IsQ0FBQztRQUNERCxRQUFRLENBQUNDLFNBQVMsR0FBR0YsWUFBWSxDQUFDRSxTQUFTO0lBQy9DO0lBQ0EsaUdBQWlHO0lBQ2pHRCxTQUFTdEIsTUFBTSxHQUFHcEIsUUFBUUMsT0FBTyxDQUFDbUIsTUFBTTtJQUN4Q0QsaUJBQWlCSyxPQUFPLENBQUMsQ0FBQ0MsUUFBUTtRQUM5QmlCLFFBQVEsQ0FBQ2pCLE1BQU0sR0FBRyxXQUFXOzZDQUFQQztnQkFBQUE7O1lBQ2xCLE9BQU9lLFlBQVksQ0FBQ2hCLE1BQU0sSUFBSUM7UUFDbEM7SUFDSjtJQUNBLE9BQU9nQjtBQUNYO0FBRUEsSUFBSSxDQUFDLE9BQU85QyxRQUFRSyxPQUFPLEtBQUssY0FBZSxPQUFPTCxRQUFRSyxPQUFPLEtBQUssWUFBWUwsUUFBUUssT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPTCxRQUFRSyxPQUFPLENBQUM4QyxVQUFVLEtBQUssYUFBYTtJQUNyS3JELE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUUssT0FBTyxFQUFFLGNBQWM7UUFBRUosT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9rRCxNQUFNLENBQUNoRCxRQUFRSyxPQUFPLEVBQUVMO0lBQy9Cb0QsT0FBT3BELE9BQU8sR0FBR0EsUUFBUUssT0FBTztBQUNsQyxDQUFDLENBRUQsa0NBQWtDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlci5qcz8zMWZjIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcm91dGVyLmRlZmF1bHQ7XG4gICAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJ3aXRoUm91dGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfd2l0aFJvdXRlci5kZWZhdWx0O1xuICAgIH1cbn0pO1xuZXhwb3J0cy51c2VSb3V0ZXIgPSB1c2VSb3V0ZXI7XG5leHBvcnRzLmNyZWF0ZVJvdXRlciA9IGNyZWF0ZVJvdXRlcjtcbmV4cG9ydHMubWFrZVB1YmxpY1JvdXRlckluc3RhbmNlID0gbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9yZWFjdCA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xudmFyIF9yb3V0ZXIgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlclwiKSk7XG52YXIgX3JvdXRlckNvbnRleHQgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dFwiKTtcbnZhciBfaXNFcnJvciA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2lzLWVycm9yXCIpKTtcbnZhciBfd2l0aFJvdXRlciA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi93aXRoLXJvdXRlclwiKSk7XG5jb25zdCBzaW5nbGV0b25Sb3V0ZXIgPSB7XG4gICAgcm91dGVyOiBudWxsLFxuICAgIHJlYWR5Q2FsbGJhY2tzOiBbXSxcbiAgICByZWFkeSAoY2IpIHtcbiAgICAgICAgaWYgKHRoaXMucm91dGVyKSByZXR1cm4gY2IoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5Q2FsbGJhY2tzLnB1c2goY2IpO1xuICAgICAgICB9XG4gICAgfVxufTtcbi8vIENyZWF0ZSBwdWJsaWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgcm91dGVyIGluIHRoZSBzaW5nbGV0b25Sb3V0ZXJcbmNvbnN0IHVybFByb3BlcnR5RmllbGRzID0gW1xuICAgICdwYXRobmFtZScsXG4gICAgJ3JvdXRlJyxcbiAgICAncXVlcnknLFxuICAgICdhc1BhdGgnLFxuICAgICdjb21wb25lbnRzJyxcbiAgICAnaXNGYWxsYmFjaycsXG4gICAgJ2Jhc2VQYXRoJyxcbiAgICAnbG9jYWxlJyxcbiAgICAnbG9jYWxlcycsXG4gICAgJ2RlZmF1bHRMb2NhbGUnLFxuICAgICdpc1JlYWR5JyxcbiAgICAnaXNQcmV2aWV3JyxcbiAgICAnaXNMb2NhbGVEb21haW4nLFxuICAgICdkb21haW5Mb2NhbGVzJywgXG5dO1xuY29uc3Qgcm91dGVyRXZlbnRzID0gW1xuICAgICdyb3V0ZUNoYW5nZVN0YXJ0JyxcbiAgICAnYmVmb3JlSGlzdG9yeUNoYW5nZScsXG4gICAgJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLFxuICAgICdyb3V0ZUNoYW5nZUVycm9yJyxcbiAgICAnaGFzaENoYW5nZVN0YXJ0JyxcbiAgICAnaGFzaENoYW5nZUNvbXBsZXRlJywgXG5dO1xuY29uc3QgY29yZU1ldGhvZEZpZWxkcyA9IFtcbiAgICAncHVzaCcsXG4gICAgJ3JlcGxhY2UnLFxuICAgICdyZWxvYWQnLFxuICAgICdiYWNrJyxcbiAgICAncHJlZmV0Y2gnLFxuICAgICdiZWZvcmVQb3BTdGF0ZScsIFxuXTtcbi8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsICdldmVudHMnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgICAgcmV0dXJuIF9yb3V0ZXIuZGVmYXVsdC5ldmVudHM7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBnZXRSb3V0ZXIoKSB7XG4gICAgaWYgKCFzaW5nbGV0b25Sb3V0ZXIucm91dGVyKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnTm8gcm91dGVyIGluc3RhbmNlIGZvdW5kLlxcbicgKyAnWW91IHNob3VsZCBvbmx5IHVzZSBcIm5leHQvcm91dGVyXCIgb24gdGhlIGNsaWVudCBzaWRlIG9mIHlvdXIgYXBwLlxcbic7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpbmdsZXRvblJvdXRlci5yb3V0ZXI7XG59XG51cmxQcm9wZXJ0eUZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PntcbiAgICAvLyBIZXJlIHdlIG5lZWQgdG8gdXNlIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBiZWNhdXNlIHdlIG5lZWQgdG8gcmV0dXJuXG4gICAgLy8gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgcm91dGVyXG4gICAgLy8gVGhlIHZhbHVlIG1pZ2h0IGdldCBjaGFuZ2VkIGFzIHdlIGNoYW5nZSByb3V0ZXMgYW5kIHRoaXMgaXMgdGhlXG4gICAgLy8gcHJvcGVyIHdheSB0byBhY2Nlc3MgaXRcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCBmaWVsZCwge1xuICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5jb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgIHNpbmdsZXRvblJvdXRlcltmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgY29uc3Qgcm91dGVyID0gZ2V0Um91dGVyKCk7XG4gICAgICAgIHJldHVybiByb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgIH07XG59KTtcbnJvdXRlckV2ZW50cy5mb3JFYWNoKChldmVudCk9PntcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHkoKCk9PntcbiAgICAgICAgX3JvdXRlci5kZWZhdWx0LmV2ZW50cy5vbihldmVudCwgKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBldmVudEZpZWxkID0gYG9uJHtldmVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2V2ZW50LnN1YnN0cmluZygxKX1gO1xuICAgICAgICAgICAgY29uc3QgX3NpbmdsZXRvblJvdXRlciA9IHNpbmdsZXRvblJvdXRlcjtcbiAgICAgICAgICAgIGlmIChfc2luZ2xldG9uUm91dGVyW2V2ZW50RmllbGRdKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgX3NpbmdsZXRvblJvdXRlcltldmVudEZpZWxkXSguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3Igd2hlbiBydW5uaW5nIHRoZSBSb3V0ZXIgZXZlbnQ6ICR7ZXZlbnRGaWVsZH1gKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigoMCwgX2lzRXJyb3IpLmRlZmF1bHQoZXJyKSA/IGAke2Vyci5tZXNzYWdlfVxcbiR7ZXJyLnN0YWNrfWAgOiBlcnIgKyAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xudmFyIF9kZWZhdWx0ID0gc2luZ2xldG9uUm91dGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5mdW5jdGlvbiB1c2VSb3V0ZXIoKSB7XG4gICAgY29uc3Qgcm91dGVyID0gX3JlYWN0LmRlZmF1bHQudXNlQ29udGV4dChfcm91dGVyQ29udGV4dC5Sb3V0ZXJDb250ZXh0KTtcbiAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yOiBOZXh0Um91dGVyIHdhcyBub3QgbW91bnRlZC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1yb3V0ZXItbm90LW1vdW50ZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJvdXRlciguLi5hcmdzKSB7XG4gICAgc2luZ2xldG9uUm91dGVyLnJvdXRlciA9IG5ldyBfcm91dGVyLmRlZmF1bHQoLi4uYXJncyk7XG4gICAgc2luZ2xldG9uUm91dGVyLnJlYWR5Q2FsbGJhY2tzLmZvckVhY2goKGNiKT0+Y2IoKSk7XG4gICAgc2luZ2xldG9uUm91dGVyLnJlYWR5Q2FsbGJhY2tzID0gW107XG4gICAgcmV0dXJuIHNpbmdsZXRvblJvdXRlci5yb3V0ZXI7XG59XG5mdW5jdGlvbiBtYWtlUHVibGljUm91dGVySW5zdGFuY2Uocm91dGVyKSB7XG4gICAgY29uc3Qgc2NvcGVkUm91dGVyID0gcm91dGVyO1xuICAgIGNvbnN0IGluc3RhbmNlID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiB1cmxQcm9wZXJ0eUZpZWxkcyl7XG4gICAgICAgIGlmICh0eXBlb2Ygc2NvcGVkUm91dGVyW3Byb3BlcnR5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGluc3RhbmNlW3Byb3BlcnR5XSA9IE9iamVjdC5hc3NpZ24oQXJyYXkuaXNBcnJheShzY29wZWRSb3V0ZXJbcHJvcGVydHldKSA/IFtdIDoge30sIHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pIC8vIG1ha2VzIHN1cmUgcXVlcnkgaXMgbm90IHN0YXRlZnVsXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpbnN0YW5jZVtwcm9wZXJ0eV0gPSBzY29wZWRSb3V0ZXJbcHJvcGVydHldO1xuICAgIH1cbiAgICAvLyBFdmVudHMgaXMgYSBzdGF0aWMgcHJvcGVydHkgb24gdGhlIHJvdXRlciwgdGhlIHJvdXRlciBkb2Vzbid0IGhhdmUgdG8gYmUgaW5pdGlhbGl6ZWQgdG8gdXNlIGl0XG4gICAgaW5zdGFuY2UuZXZlbnRzID0gX3JvdXRlci5kZWZhdWx0LmV2ZW50cztcbiAgICBjb3JlTWV0aG9kRmllbGRzLmZvckVhY2goKGZpZWxkKT0+e1xuICAgICAgICBpbnN0YW5jZVtmaWVsZF0gPSAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIHJldHVybiBzY29wZWRSb3V0ZXJbZmllbGRdKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJnZXQiLCJfcm91dGVyIiwiZGVmYXVsdCIsIl93aXRoUm91dGVyIiwidXNlUm91dGVyIiwiY3JlYXRlUm91dGVyIiwibWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdCIsIl9yb3V0ZXJDb250ZXh0IiwiX2lzRXJyb3IiLCJzaW5nbGV0b25Sb3V0ZXIiLCJyb3V0ZXIiLCJyZWFkeUNhbGxiYWNrcyIsInJlYWR5IiwiY2IiLCJwdXNoIiwidXJsUHJvcGVydHlGaWVsZHMiLCJyb3V0ZXJFdmVudHMiLCJjb3JlTWV0aG9kRmllbGRzIiwiZXZlbnRzIiwiZ2V0Um91dGVyIiwibWVzc2FnZSIsIkVycm9yIiwiZm9yRWFjaCIsImZpZWxkIiwiYXJncyIsImV2ZW50Iiwib24iLCJldmVudEZpZWxkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzdWJzdHJpbmciLCJfc2luZ2xldG9uUm91dGVyIiwiZXJyIiwiY29uc29sZSIsImVycm9yIiwic3RhY2siLCJfZGVmYXVsdCIsInVzZUNvbnRleHQiLCJSb3V0ZXJDb250ZXh0Iiwic2NvcGVkUm91dGVyIiwiaW5zdGFuY2UiLCJwcm9wZXJ0eSIsImFzc2lnbiIsIkFycmF5IiwiaXNBcnJheSIsIl9fZXNNb2R1bGUiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n")); /***/ }), /***/ "./node_modules/next/dist/client/script.js": /*!*************************************************!*\ !*** ./node_modules/next/dist/client/script.js ***! \*************************************************/ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use client\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.handleClientScriptLoad = handleClientScriptLoad;\nexports.initScriptLoader = initScriptLoader;\nexports[\"default\"] = void 0;\nvar _extends = (__webpack_require__(/*! @swc/helpers/lib/_extends.js */ \"./node_modules/@swc/helpers/lib/_extends.js\")[\"default\"]);\nvar _interop_require_default = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_default.js */ \"./node_modules/@swc/helpers/lib/_interop_require_default.js\")[\"default\"]);\nvar _interop_require_wildcard = (__webpack_require__(/*! @swc/helpers/lib/_interop_require_wildcard.js */ \"./node_modules/@swc/helpers/lib/_interop_require_wildcard.js\")[\"default\"]);\nvar _object_without_properties_loose = (__webpack_require__(/*! @swc/helpers/lib/_object_without_properties_loose.js */ \"./node_modules/@swc/helpers/lib/_object_without_properties_loose.js\")[\"default\"]);\nvar _reactDom = _interop_require_default(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\nvar _react = _interop_require_wildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nvar _headManagerContext = __webpack_require__(/*! ../shared/lib/head-manager-context */ \"./node_modules/next/dist/shared/lib/head-manager-context.js\");\nvar _headManager = __webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\");\nvar _requestIdleCallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\nconst ScriptCache = new Map();\nconst LoadCache = new Set();\nconst ignoreProps = [\n \"onLoad\",\n \"onReady\",\n \"dangerouslySetInnerHTML\",\n \"children\",\n \"onError\",\n \"strategy\"\n];\nconst loadScript = (props)=>{\n const { src , id , onLoad =()=>{} , onReady =null , dangerouslySetInnerHTML , children =\"\" , strategy =\"afterInteractive\" , onError } = props;\n const cacheKey = id || src;\n // Script has already loaded\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n }\n // Contents of this script are already loading/loaded\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey);\n // It is possible that multiple `next/script` components all have same \"src\", but has different \"onLoad\"\n // This is to make sure the same remote script will only load once, but \"onLoad\" are executed in order\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n /** Execute after the script first loaded */ const afterLoad = ()=>{\n // Run onReady for the first time after load event\n if (onReady) {\n onReady();\n }\n // add cacheKey to LoadCache when load successfully\n LoadCache.add(cacheKey);\n };\n const el = document.createElement(\"script\");\n const loadPromise = new Promise((resolve, reject)=>{\n el.addEventListener(\"load\", function(e) {\n resolve();\n if (onLoad) {\n onLoad.call(this, e);\n }\n afterLoad();\n });\n el.addEventListener(\"error\", function(e) {\n reject(e);\n });\n }).catch(function(e) {\n if (onError) {\n onError(e);\n }\n });\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || \"\";\n afterLoad();\n } else if (children) {\n el.textContent = typeof children === \"string\" ? children : Array.isArray(children) ? children.join(\"\") : \"\";\n afterLoad();\n } else if (src) {\n el.src = src;\n // do not add cacheKey into LoadCache for remote script here\n // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above)\n ScriptCache.set(src, loadPromise);\n }\n for (const [k, value] of Object.entries(props)){\n if (value === undefined || ignoreProps.includes(k)) {\n continue;\n }\n const attr = _headManager.DOMAttributeNames[k] || k.toLowerCase();\n el.setAttribute(attr, value);\n }\n if (strategy === \"worker\") {\n el.setAttribute(\"type\", \"text/partytown\");\n }\n el.setAttribute(\"data-nscript\", strategy);\n document.body.appendChild(el);\n};\nfunction handleClientScriptLoad(props) {\n const { strategy =\"afterInteractive\" } = props;\n if (strategy === \"lazyOnload\") {\n window.addEventListener(\"load\", ()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>loadScript(props));\n });\n } else {\n loadScript(props);\n }\n}\nfunction loadLazyScript(props) {\n if (document.readyState === \"complete\") {\n (0, _requestIdleCallback).requestIdleCallback(()=>loadScript(props));\n } else {\n window.addEventListener(\"load\", ()=>{\n (0, _requestIdleCallback).requestIdleCallback(()=>loadScript(props));\n });\n }\n}\nfunction addBeforeInteractiveToCache() {\n const scripts = [\n ...document.querySelectorAll('[data-nscript=\"beforeInteractive\"]'),\n ...document.querySelectorAll('[data-nscript=\"beforePageRender\"]')\n ];\n scripts.forEach((script)=>{\n const cacheKey = script.id || script.getAttribute(\"src\");\n LoadCache.add(cacheKey);\n });\n}\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n addBeforeInteractiveToCache();\n}\nfunction Script(props) {\n _s();\n const { id , src =\"\" , onLoad =()=>{} , onReady =null , strategy =\"afterInteractive\" , onError } = props, restProps = _object_without_properties_loose(props, [\n \"id\",\n \"src\",\n \"onLoad\",\n \"onReady\",\n \"strategy\",\n \"onError\"\n ]);\n // Context is available only during SSR\n const { updateScripts , scripts , getIsSsr , appDir , nonce } = (0, _react).useContext(_headManagerContext.HeadManagerContext);\n /**\n * - First mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache)\n * onReady is skipped, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. hasLoadScriptEffectCalled.current is false, loadScript executes\n * Once the script is loaded, the onLoad and onReady will be called by then\n * [If strict mode is enabled / is wrapped in component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n *\n * - Second mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache)\n * onReady is called, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. The script is already loaded, loadScript bails out\n * [If strict mode is enabled / is wrapped in component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n */ const hasOnReadyEffectCalled = (0, _react).useRef(false);\n (0, _react).useEffect(()=>{\n const cacheKey = id || src;\n if (!hasOnReadyEffectCalled.current) {\n // Run onReady if script has loaded before but component is re-mounted\n if (onReady && cacheKey && LoadCache.has(cacheKey)) {\n onReady();\n }\n hasOnReadyEffectCalled.current = true;\n }\n }, [\n onReady,\n id,\n src\n ]);\n const hasLoadScriptEffectCalled = (0, _react).useRef(false);\n (0, _react).useEffect(()=>{\n if (!hasLoadScriptEffectCalled.current) {\n if (strategy === \"afterInteractive\") {\n loadScript(props);\n } else if (strategy === \"lazyOnload\") {\n loadLazyScript(props);\n }\n hasLoadScriptEffectCalled.current = true;\n }\n }, [\n props,\n strategy\n ]);\n if (strategy === \"beforeInteractive\" || strategy === \"worker\") {\n if (updateScripts) {\n scripts[strategy] = (scripts[strategy] || []).concat([\n _extends({\n id,\n src,\n onLoad,\n onReady,\n onError\n }, restProps)\n ]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript(props);\n }\n }\n // For the app directory, we need React Float to preload these scripts.\n if (appDir) {\n // Before interactive scripts need to be loaded by Next.js' runtime instead\n // of native