/* * 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=\"/Users/hugolextrait/Workspace/tezosLink/.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,target:\"_blank\",rel:\"noreferrer noopener\"},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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2Rpc3QvY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiI7QUFBQSxZQUFZLGFBQWEsU0FBUyxZQUFZLGdCQUFnQixpQ0FBaUMsb0JBQW9CLFlBQVksVUFBVSxPQUFPLElBQUksRUFBRSxVQUFVLEdBQUcsWUFBWSxrQkFBa0IsZ0JBQWdCLHdCQUF3QiwyQkFBMkIseUJBQXlCLEtBQUssR0FBRyxZQUFZLGtCQUFrQixrREFBa0QsR0FBRyxZQUFZLGdCQUFnQixvREFBb0QsNENBQTRDLGVBQWUsRUFBRSxzQ0FBc0MsV0FBVyxHQUFHLEdBQUcsK0JBQStCLFNBQVMsS0FBSyxTQUFTLE9BQU8sT0FBTywyQkFBMkIsVUFBVSwyQkFBMkIsc0JBQXNCLDJCQUEyQixzQkFBc0IsNEJBQTRCLHVCQUF1Qix5QkFBeUIsb0JBQW9CLHNCQUFzQixpQkFBaUIsc0JBQXNCLGlCQUFpQixxQkFBcUIsZ0JBQWdCLHVCQUF1QixtQkFBbUIsRUFBRSxtQkFBbUIsc0JBQXNCLHVCQUF1Qiw4QkFBOEIsMEJBQTBCLDhCQUE4QixjQUFjLFNBQVMsaUJBQWlCLHVCQUF1QiwwQ0FBMEMsa0JBQWtCLHNCQUFzQixLQUFLLGlCQUFpQixzQkFBc0IsS0FBSyxHQUFHLFFBQVEsZUFBZSxhQUFhLGFBQWEsU0FBUyxRQUFRLFlBQVksZ0JBQWdCLGFBQWEsWUFBWSxZQUFZLGFBQWEsTUFBTSxtQkFBTyxDQUFDLDJIQUFzQyxFQUFFLGlDQUFpQyx1QkFBdUIsdUJBQXVCLGtCQUFrQixJQUFJLHdCQUF3QiwyQkFBMkIsTUFBTSxRQUFRLCtDQUEyQix3Q0FBd0MsTUFBTSxxQ0FBcUMsT0FBTyxTQUFTLEdBQUcsK0JBQStCLFNBQVMsTUFBTSw2QkFBNkIsaUZBQWlGLGlCQUFpQixPQUFPLEdBQUcsU0FBUyw4QkFBOEIsMkJBQTJCLGtCQUFrQixrQ0FBa0MsMkJBQTJCLDJEQUEyRCxFQUFFLDZCQUE2QixNQUFN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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUUsMkJBQTJCO0FBQzdCLFVBQVU7QUFDVixVQUFVO0FBQ1YsVUFBVTtBQUNWLFVBQVU7QUFDVixVQUFVO0FBQ1YsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWLFVBQVU7QUFDVixVQUFVO0FBQ1YsU0FBUyxvQkFBb0I7QUFDN0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUyx3Q0FBd0MsNERBQTRELHNCQUFzQixlQUFlLFFBQVEsT0FBTyxzQkFBc0IsUUFBUSxPQUFPLDJCQUEyQixRQUFRLE9BQU8sbUJBQW1CLDJCQUEyQixRQUFRLE9BQU8sbUdBQW1HLGNBQWMsZUFBZSw0QkFBNEIsWUFBWSxPQUFPLGtFQUFrRSxvQkFBb0IsR0FBRyxlQUFlLE9BQU8scUNBQXFDLDBFQUEwRSxvQkFBb0IsSUFBSSwrQkFBK0IsVUFBVSxTQUFTLFVBQVUsV0FBVyxtQ0FBbUMsV0FBVyxhQUFhLHNCQUFzQixtQ0FBbUMsNENBQTRDLEVBQUUsaUNBQWlDLGlEQUFpRCxhQUFhLEVBQUUsa0JBQWtCLE1BQU0sa0JBQWtCLFFBQVEsT0FBTyxnQ0FBZ0MsTUFBTSwyQkFBMkIsaUNBQWlDLG1DQUFtQyxpQkFBaUIsc0VBQXNFLHNDQUFzQywrQkFBK0IsZ0JBQWdCLHNKQUFzSixxQkFBcUIsd0JBQXdCLGdCQUFnQix5QkFBeUIsVUFBVSxhQUFhLGlCQUFpQiw2QkFBNkIsaUJBQWlCLHlEQUF5RCxPQUFPLHlFQUF5RSw0RkFBNEYsVUFBVSxNQUFNLDJDQUEyQyxFQUFFLGlDQUFpQyxrQkFBa0IseURBQXlELE9BQU8sVUFBVSxNQUFNLDJDQUEyQyxFQUFFLG9CQUFvQixPQUFPLE9BQU8sUUFBUSxJQUFJLDhCQUE4Qix5QkFBeUIsS0FBSyxPQUFPLGtEQUFrRCxtRUFBbUUsc0JBQXNCLFFBQVEsT0FBTyxTQUFTLG1CQUFtQixJQUFJLHlCQUF5QixPQUFPLGFBQWEscURBQXFELHNFQUFzRSxxQkFBcUIsTUFBTSxPQUFPLEVBQUUseUJBQXlCLE1BQU0saUJBQWlCLEVBQUUscUJBQXFCLE1BQU0sT0FBTyxFQUFFLDJCQUEyQixNQUFNLE9BQU8sRUFBRSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AbmV4dC9yZWFjdC1kZXYtb3ZlcmxheS9kaXN0L2NsaWVudC5qcz80ZDMwIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3ZhciBlPXt9OyFmdW5jdGlvbigpe2Uubj1mdW5jdGlvbih0KXt2YXIgcj10JiZ0Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gdFtcImRlZmF1bHRcIl19OmZ1bmN0aW9uKCl7cmV0dXJuIHR9O2UuZChyLHthOnJ9KTtyZXR1cm4gcn19KCk7IWZ1bmN0aW9uKCl7ZS5kPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBuIGluIHIpe2lmKGUubyhyLG4pJiYhZS5vKHQsbikpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6cltuXX0pfX19fSgpOyFmdW5jdGlvbigpe2Uubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX19KCk7IWZ1bmN0aW9uKCl7ZS5yPWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBTeW1ib2whPT1cInVuZGVmaW5lZFwiJiZTeW1ib2wudG9TdHJpbmdUYWcpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6XCJNb2R1bGVcIn0pfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSl9fSgpO2lmKHR5cGVvZiBlIT09XCJ1bmRlZmluZWRcIillLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgdD17fTtlLnIodCk7ZS5kKHQse1JlYWN0RGV2T3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBLdH0sZ2V0RXJyb3JCeVR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0RXJyb3JCeVR5cGV9LGdldFNlcnZlckVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGdldFNlcnZlckVycm9yfSxvbkJlZm9yZVJlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4gb25CZWZvcmVSZWZyZXNofSxvbkJ1aWxkRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gb25CdWlsZEVycm9yfSxvbkJ1aWxkT2s6ZnVuY3Rpb24oKXtyZXR1cm4gb25CdWlsZE9rfSxvblJlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4gb25SZWZyZXNofSxyZWdpc3RlcjpmdW5jdGlvbigpe3JldHVybiByZWdpc3Rlcn0sdW5yZWdpc3RlcjpmdW5jdGlvbigpe3JldHVybiB1bnJlZ2lzdGVyfX0pO2NvbnN0IHI9XCJidWlsZC1va1wiO2NvbnN0IG49XCJidWlsZC1lcnJvclwiO2NvbnN0IGE9XCJmYXN0LXJlZnJlc2hcIjtjb25zdCBvPVwiYmVmb3JlLWZhc3QtcmVmcmVzaFwiO2NvbnN0IGk9XCJ1bmhhbmRsZWQtZXJyb3JcIjtjb25zdCBsPVwidW5oYW5kbGVkLXJlamVjdGlvblwiO2xldCBzPW5ldyBTZXQ7bGV0IHU9W107ZnVuY3Rpb24gZHJhaW4oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3doaWxlKEJvb2xlYW4odS5sZW5ndGgpJiZCb29sZWFuKHMuc2l6ZSkpe2NvbnN0IGU9dS5zaGlmdCgpO3MuZm9yRWFjaCgodD0+dChlKSkpfX0pLDEpfWZ1bmN0aW9uIGVtaXQoZSl7dS5wdXNoKE9iamVjdC5mcmVlemUoey4uLmV9KSk7ZHJhaW4oKX1mdW5jdGlvbiBvbihlKXtpZihzLmhhcyhlKSl7cmV0dXJuIGZhbHNlfXMuYWRkKGUpO2RyYWluKCk7cmV0dXJuIHRydWV9ZnVuY3Rpb24gb2ZmKGUpe2lmKHMuaGFzKGUpKXtzLmRlbGV0ZShlKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9dmFyIGM9cmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlclwiKTtjb25zdCBkPS9cXC9fbmV4dChcXC9zdGF0aWNcXC8uKykvZztmdW5jdGlvbiBwYXJzZVN0YWNrKGUpe2NvbnN0IHQ9KDAsYy5wYXJzZSkoZSk7cmV0dXJuIHQubWFwKChlPT57dHJ5e2NvbnN0IHQ9bmV3IFVSTChlLmZpbGUpO2NvbnN0IHI9ZC5leGVjKHQucGF0aG5hbWUpO2lmKHIpe2NvbnN0IHQ9cHJvY2Vzcy5lbnYuX19ORVhUX0RJU1RfRElSPy5yZXBsYWNlKC9cXFxcL2csXCIvXCIpPy5yZXBsYWNlKC9cXC8kLyxcIlwiKTtpZih0KXtlLmZpbGU9XCJmaWxlOi8vXCIrdC5jb25jYXQoci5wb3AoKSl9fX1jYXRjaHt9cmV0dXJuIGV9KSl9ZnVuY3Rpb24gZ2V0RmlsZXN5c3RlbUZyYW1lKGUpe2NvbnN0IHQ9ey4uLmV9O2lmKHR5cGVvZiB0LmZpbGU9PT1cInN0cmluZ1wiKXtpZih0LmZpbGUuc3RhcnRzV2l0aChcIi9cIil8fC9eW2Etel06XFxcXC9pLnRlc3QodC5maWxlKXx8dC5maWxlLnN0YXJ0c1dpdGgoXCJcXFxcXFxcXFwiKSl7dC5maWxlPWBmaWxlOi8vJHt0LmZpbGV9YH19cmV0dXJuIHR9Y29uc3QgZj1TeW1ib2woXCJOZXh0anNFcnJvclwiKTtmdW5jdGlvbiBnZXRFcnJvclNvdXJjZShlKXtyZXR1cm4gZVtmXXx8bnVsbH1mdW5jdGlvbiBkZWNvcmF0ZVNlcnZlckVycm9yKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsZix7d3JpdGFibGU6ZmFsc2UsZW51bWVyYWJsZTpmYWxzZSxjb25maWd1cmFibGU6ZmFsc2UsdmFsdWU6dH0pfWZ1bmN0aW9uIGdldFNlcnZlckVycm9yKGUsdCl7bGV0IHI7dHJ5e3Rocm93IG5ldyBFcnJvcihlLm1lc3NhZ2UpfWNhdGNoKGUpe3I9ZX1yLm5hbWU9ZS5uYW1lO3RyeXtyLnN0YWNrPWAke3IudG9TdHJpbmcoKX1cXG4keygwLGMucGFyc2UpKGUuc3RhY2spLm1hcChnZXRGaWxlc3lzdGVtRnJhbWUpLm1hcCgoZT0+e2xldCB0PWAgICAgYXQgJHtlLm1ldGhvZE5hbWV9YDtpZihlLmZpbGUpe2xldCByPWUuZmlsZTtpZihlLmxpbmVOdW1iZXIpe3IrPWA6JHtlLmxpbmVOdW1iZXJ9YDtpZihlLmNvbHVtbil7cis9YDoke2UuY29sdW1ufWB9fXQrPWAgKCR7cn0pYH1yZXR1cm4gdH0pKS5qb2luKFwiXFxuXCIpfWB9Y2F0Y2h7ci5zdGFjaz1lLnN0YWNrfWRlY29yYXRlU2VydmVyRXJyb3Iocix0KTtyZXR1cm4gcn1mdW5jdGlvbiBnZXRPcmlnaW5hbFN0YWNrRnJhbWUoZSx0LHIpe2FzeW5jIGZ1bmN0aW9uIF9nZXRPcmlnaW5hbFN0YWNrRnJhbWUoKXtjb25zdCBuPW5ldyBVUkxTZWFyY2hQYXJhbXM7bi5hcHBlbmQoXCJpc1NlcnZlclwiLFN0cmluZyh0PT09XCJzZXJ2ZXJcIikpO24uYXBwZW5kKFwiaXNFZGdlU2VydmVyXCIsU3RyaW5nKHQ9PT1cImVkZ2Utc2VydmVyXCIpKTtuLmFwcGVuZChcImVycm9yTWVzc2FnZVwiLHIpO2Zvcihjb25zdCB0IGluIGUpe24uYXBwZW5kKHQsKGVbdF0/P1wiXCIpLnRvU3RyaW5nKCkpfWNvbnN0IGE9bmV3IEFib3J0Q29udHJvbGxlcjtjb25zdCBvPXNldFRpbWVvdXQoKCgpPT5hLmFib3J0KCkpLDNlMyk7Y29uc3QgaT1hd2FpdCBzZWxmLmZldGNoKGAke3Byb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCJ9L19fbmV4dGpzX29yaWdpbmFsLXN0YWNrLWZyYW1lPyR7bi50b1N0cmluZygpfWAse3NpZ25hbDphLnNpZ25hbH0pLmZpbmFsbHkoKCgpPT57Y2xlYXJUaW1lb3V0KG8pfSkpO2lmKCFpLm9rfHxpLnN0YXR1cz09PTIwNCl7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcihhd2FpdCBpLnRleHQoKSkpfWNvbnN0IGw9YXdhaXQgaS5qc29uKCk7cmV0dXJue2Vycm9yOmZhbHNlLHJlYXNvbjpudWxsLGV4dGVybmFsOmZhbHNlLGV4cGFuZGVkOiFCb29sZWFuKChlLmZpbGU/LmluY2x1ZGVzKFwibm9kZV9tb2R1bGVzXCIpfHxsLm9yaWdpbmFsU3RhY2tGcmFtZT8uZmlsZT8uaW5jbHVkZXMoXCJub2RlX21vZHVsZXNcIikpPz90cnVlKSxzb3VyY2VTdGFja0ZyYW1lOmUsb3JpZ2luYWxTdGFja0ZyYW1lOmwub3JpZ2luYWxTdGFja0ZyYW1lLG9yaWdpbmFsQ29kZUZyYW1lOmwub3JpZ2luYWxDb2RlRnJhbWV8fG51bGx9fWlmKCEoZS5maWxlPy5zdGFydHNXaXRoKFwid2VicGFjay1pbnRlcm5hbDpcIil8fGUuZmlsZT8uc3RhcnRzV2l0aChcImZpbGU6XCIpKSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7ZXJyb3I6ZmFsc2UscmVhc29uOm51bGwsZXh0ZXJuYWw6dHJ1ZSxleHBhbmRlZDpmYWxzZSxzb3VyY2VTdGFja0ZyYW1lOmUsb3JpZ2luYWxTdGFja0ZyYW1lOm51bGwsb3JpZ2luYWxDb2RlRnJhbWU6bnVsbH0pfXJldHVybiBfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKCkuY2F0Y2goKHQ9Pih7ZXJyb3I6dHJ1ZSxyZWFzb246dD8ubWVzc2FnZT8/dD8udG9TdHJpbmcoKT8/XCJVbmtub3duIEVycm9yXCIsZXh0ZXJuYWw6ZmFsc2UsZXhwYW5kZWQ6ZmFsc2Usc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZTpudWxsLG9yaWdpbmFsQ29kZUZyYW1lOm51bGx9KSkpfWZ1bmN0aW9uIGdldE9yaWdpbmFsU3RhY2tGcmFtZXMoZSx0LHIpe3JldHVybiBQcm9taXNlLmFsbChlLm1hcCgoZT0+Z2V0T3JpZ2luYWxTdGFja0ZyYW1lKGUsdCxyKSkpKX1mdW5jdGlvbiBnZXRGcmFtZVNvdXJjZShlKXtsZXQgdD1cIlwiO3RyeXtjb25zdCByPW5ldyBVUkwoZS5maWxlKTtpZih0eXBlb2YgZ2xvYmFsVGhpcyE9PVwidW5kZWZpbmVkXCImJmdsb2JhbFRoaXMubG9jYXRpb24/Lm9yaWdpbiE9PXIub3JpZ2luKXtpZihyLm9yaWdpbj09PVwibnVsbFwiKXt0Kz1yLnByb3RvY29sfWVsc2V7dCs9ci5vcmlnaW59fXQrPXIucGF0aG5hbWU7dCs9XCIgXCJ9Y2F0Y2h7dCs9KGUuZmlsZXx8XCIodW5rbm93bilcIikrXCIgXCJ9aWYoZS5saW5lTnVtYmVyIT1udWxsKXtpZihlLmNvbHVtbiE9bnVsbCl7dCs9YCgke2UubGluZU51bWJlcn06JHtlLmNvbHVtbn0pIGB9ZWxzZXt0Kz1gKCR7ZS5saW5lTnVtYmVyfSkgYH19cmV0dXJuIHQuc2xpY2UoMCwtMSl9YXN5bmMgZnVuY3Rpb24gZ2V0RXJyb3JCeVR5cGUoZSl7Y29uc3R7aWQ6dCxldmVudDpyfT1lO3N3aXRjaChyLnR5cGUpe2Nhc2UgaTpjYXNlIGw6e3JldHVybntpZDp0LHJ1bnRpbWU6dHJ1ZSxlcnJvcjpyLnJlYXNvbixmcmFtZXM6YXdhaXQgZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyhyLmZyYW1lcyxnZXRFcnJvclNvdXJjZShyLnJlYXNvbiksci5yZWFzb24udG9TdHJpbmcoKSl9fWRlZmF1bHQ6e2JyZWFrfX1jb25zdCBuPXI7dGhyb3cgbmV3IEVycm9yKFwidHlwZSBzeXN0ZW0gaW52YXJpYW50IHZpb2xhdGlvblwiKX12YXIgbT1yZXF1aXJlKFwicmVhY3RcIik7dmFyIHA9ZS5uKG0pO3ZhciBiPXJlcXVpcmUoXCJyZWFjdC1kb21cIik7Y29uc3QgZz1mdW5jdGlvbiBQb3J0YWwoe2NoaWxkcmVuOmUsZ2xvYmFsT3ZlcmxheTp0fSl7bGV0IHI9bS51c2VSZWYobnVsbCk7bGV0IG49bS51c2VSZWYobnVsbCk7bGV0IGE9bS51c2VSZWYobnVsbCk7bGV0WyxvXT1tLnVzZVN0YXRlKCk7bS51c2VMYXlvdXRFZmZlY3QoKCgpPT57Y29uc3QgZT10P2RvY3VtZW50OnIuY3VycmVudC5vd25lckRvY3VtZW50O24uY3VycmVudD1lLmNyZWF0ZUVsZW1lbnQoXCJuZXh0anMtcG9ydGFsXCIpO2EuY3VycmVudD1uLmN1cnJlbnQuYXR0YWNoU2hhZG93KHttb2RlOlwib3BlblwifSk7ZS5ib2R5LmFwcGVuZENoaWxkKG4uY3VycmVudCk7byh7fSk7cmV0dXJuKCk9PntpZihuLmN1cnJlbnQmJm4uY3VycmVudC5vd25lckRvY3VtZW50KXtuLmN1cnJlbnQub3duZXJEb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG4uY3VycmVudCl9fX0pLFt0XSk7cmV0dXJuIGEuY3VycmVudD8oMCxiLmNyZWF0ZVBvcnRhbCkoZSxhLmN1cnJlbnQpOnQ/bnVsbDptLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIse3JlZjpyfSl9O2Z1bmN0aW9uIHVzZU9uQ2xpY2tPdXRzaWRlKGUsdCl7bS51c2VFZmZlY3QoKCgpPT57aWYoZT09bnVsbHx8dD09bnVsbCl7cmV0dXJufWNvbnN0IGxpc3RlbmVyPXI9PntpZighZXx8ZS5jb250YWlucyhyLnRhcmdldCkpe3JldHVybn10KHIpfTtjb25zdCByPWUuZ2V0Um9vdE5vZGUoKTtyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixsaXN0ZW5lcik7ci5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGxpc3RlbmVyKTtyZXR1cm4gZnVuY3Rpb24oKXtyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixsaXN0ZW5lcik7ci5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGxpc3RlbmVyKX19KSxbdCxlXSl9Y29uc3Qgdj1mdW5jdGlvbiBEaWFsb2coe2NoaWxkcmVuOmUsdHlwZTp0LG9uQ2xvc2U6ciwuLi5ufSl7Y29uc3RbYSxvXT1tLnVzZVN0YXRlKG51bGwpO2NvbnN0IGk9bS51c2VDYWxsYmFjaygoZT0+e28oZSl9KSxbXSk7dXNlT25DbGlja091dHNpZGUoYSxyKTttLnVzZUVmZmVjdCgoKCk9PntpZihhPT1udWxsKXtyZXR1cm59Y29uc3QgZT1hLmdldFJvb3ROb2RlKCk7aWYoIShlIGluc3RhbmNlb2YgU2hhZG93Um9vdCkpe3JldHVybn1jb25zdCB0PWU7ZnVuY3Rpb24gaGFuZGxlcihlKXtjb25zdCByPXQuYWN0aXZlRWxlbWVudDtpZihlLmtleT09PVwiRW50ZXJcIiYmciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZyLmdldEF0dHJpYnV0ZShcInJvbGVcIik9PT1cImxpbmtcIil7ZS5wcmV2ZW50RGVmYXVsdCgpO2Uuc3RvcFByb3BhZ2F0aW9uKCk7ci5jbGljaygpfX10LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaGFuZGxlcik7cmV0dXJuKCk9PnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixoYW5kbGVyKX0pLFthXSk7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtyZWY6aSxcImRhdGEtbmV4dGpzLWRpYWxvZ1wiOnRydWUsdGFiSW5kZXg6LTEscm9sZTpcImRpYWxvZ1wiLFwiYXJpYS1sYWJlbGxlZGJ5XCI6bltcImFyaWEtbGFiZWxsZWRieVwiXSxcImFyaWEtZGVzY3JpYmVkYnlcIjpuW1wiYXJpYS1kZXNjcmliZWRieVwiXSxcImFyaWEtbW9kYWxcIjpcInRydWVcIn0sbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lclwiOnRydWUsY2xhc3NOYW1lOmBiYW5uZXItJHt0fWB9KSxlKX07Y29uc3QgaD1mdW5jdGlvbiBEaWFsb2dCb2R5KHtjaGlsZHJlbjplLGNsYXNzTmFtZTp0fSl7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XCI6dHJ1ZSxjbGFzc05hbWU6dH0sZSl9O2NvbnN0IHg9ZnVuY3Rpb24gRGlhbG9nQ29udGVudCh7Y2hpbGRyZW46ZSxjbGFzc05hbWU6dH0pe3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudFwiOnRydWUsY2xhc3NOYW1lOnR9LGUpfTtjb25zdCB5PWZ1bmN0aW9uIERpYWxvZ0hlYWRlcih7Y2hpbGRyZW46ZSxjbGFzc05hbWU6dH0pe3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXCI6dHJ1ZSxjbGFzc05hbWU6dH0sZSl9O2Z1bmN0aW9uIG5vb3AoZSwuLi50KXtjb25zdCByPWUubGVuZ3RoLTE7cmV0dXJuIGUuc2xpY2UoMCxyKS5yZWR1Y2UoKChlLHIsbik9PmUrcit0W25dKSxcIlwiKStlW3JdfWNvbnN0IEU9bm9vcGBcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zaXplLWdhcCk7XG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1kb3VibGUpXG4gICAgICByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDU2cHgpO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDE1cHgpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcbiAgICAgIG1heC13aWR0aDogNTQwcHg7XG4gICAgICBib3gtc2hhZG93OiAwIHZhcigtLXNpemUtZ2FwKSB2YXIoLS1zaXplLWdhcC1xdWFkKSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcbiAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xuICAgICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICB9XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLXdhcm5pbmcge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS15ZWxsb3cpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXS5iYW5uZXItZXJyb3Ige1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdOjphZnRlciB7XG4gICAgei1pbmRleDogMjtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8qIGJhbm5lciB3aWR0aDogKi9cbiAgICBib3JkZXItdG9wLXdpZHRoOiB2YXIoLS1zaXplLWdhcC1oYWxmKTtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgLyogY2FsYyhwYWRkaW5nICsgYmFubmVyIHdpZHRoIG9mZnNldCkgKi9cbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSlcbiAgICAgIHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1oZWFkZXJdIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWJvZHldIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cbmA7dmFyIHc9cmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9wbGF0Zm9ybVwiKTt2YXIgaz1lLm4odyk7dmFyIFM9cmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9jc3MuZXNjYXBlXCIpO3ZhciBUPWUubihTKTtmdW5jdGlvbiBub2RlQXJyYXkoZSl7aWYoIWUpe3JldHVybltdfWlmKEFycmF5LmlzQXJyYXkoZSkpe3JldHVybiBlfWlmKGUubm9kZVR5cGUhPT11bmRlZmluZWQpe3JldHVybltlXX1pZih0eXBlb2YgZT09PVwic3RyaW5nXCIpe2U9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKX1pZihlLmxlbmd0aCE9PXVuZGVmaW5lZCl7cmV0dXJuW10uc2xpY2UuY2FsbChlLDApfXRocm93IG5ldyBUeXBlRXJyb3IoXCJ1bmV4cGVjdGVkIGlucHV0IFwiK1N0cmluZyhlKSl9ZnVuY3Rpb24gY29udGV4dFRvRWxlbWVudChlKXt2YXIgdD1lLmNvbnRleHQscj1lLmxhYmVsLG49cj09PXVuZGVmaW5lZD9cImNvbnRleHQtdG8tZWxlbWVudFwiOnIsYT1lLnJlc29sdmVEb2N1bWVudCxvPWUuZGVmYXVsdFRvRG9jdW1lbnQ7dmFyIGk9bm9kZUFycmF5KHQpWzBdO2lmKGEmJmkmJmkubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX05PREUpe2k9aS5kb2N1bWVudEVsZW1lbnR9aWYoIWkmJm8pe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9aWYoIWkpe3Rocm93IG5ldyBUeXBlRXJyb3IobitcIiByZXF1aXJlcyB2YWxpZCBvcHRpb25zLmNvbnRleHRcIil9aWYoaS5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFJiZpLm5vZGVUeXBlIT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKXt0aHJvdyBuZXcgVHlwZUVycm9yKG4rXCIgcmVxdWlyZXMgb3B0aW9ucy5jb250ZXh0IHRvIGJlIGFuIEVsZW1lbnRcIil9cmV0dXJuIGl9ZnVuY3Rpb24gZ2V0U2hhZG93SG9zdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dDt2YXIgcj1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImdldC9zaGFkb3ctaG9zdFwiLGNvbnRleHQ6dH0pO3ZhciBuPW51bGw7d2hpbGUocil7bj1yO3I9ci5wYXJlbnROb2RlfWlmKG4ubm9kZVR5cGU9PT1uLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUmJm4uaG9zdCl7cmV0dXJuIG4uaG9zdH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBnZXREb2N1bWVudChlKXtpZighZSl7cmV0dXJuIGRvY3VtZW50fWlmKGUubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX05PREUpe3JldHVybiBlfXJldHVybiBlLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50fWZ1bmN0aW9uIGlzQWN0aXZlRWxlbWVudChlKXt2YXIgdD1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImlzL2FjdGl2ZS1lbGVtZW50XCIscmVzb2x2ZURvY3VtZW50OnRydWUsY29udGV4dDplfSk7dmFyIHI9Z2V0RG9jdW1lbnQodCk7aWYoci5hY3RpdmVFbGVtZW50PT09dCl7cmV0dXJuIHRydWV9dmFyIG49Z2V0U2hhZG93SG9zdCh7Y29udGV4dDp0fSk7aWYobiYmbi5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQ9PT10KXtyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9ZnVuY3Rpb24gZ2V0UGFyZW50cygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dDt2YXIgcj1bXTt2YXIgbj1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImdldC9wYXJlbnRzXCIsY29udGV4dDp0fSk7d2hpbGUobil7ci5wdXNoKG4pO249bi5wYXJlbnROb2RlO2lmKG4mJm4ubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSl7bj1udWxsfX1yZXR1cm4gcn12YXIgQz1bXCJtYXRjaGVzXCIsXCJ3ZWJraXRNYXRjaGVzU2VsZWN0b3JcIixcIm1vek1hdGNoZXNTZWxlY3RvclwiLFwibXNNYXRjaGVzU2VsZWN0b3JcIl07dmFyIGo9bnVsbDtmdW5jdGlvbiBmaW5kTWV0aG9kTmFtZShlKXtDLnNvbWUoKGZ1bmN0aW9uKHQpe2lmKCFlW3RdKXtyZXR1cm4gZmFsc2V9aj10O3JldHVybiB0cnVlfSkpfWZ1bmN0aW9uIGVsZW1lbnRNYXRjaGVzKGUsdCl7aWYoIWope2ZpbmRNZXRob2ROYW1lKGUpfXJldHVybiBlW2pdKHQpfXZhciBBPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaygpKSk7dmFyIE89QS5vcy5mYW1pbHl8fFwiXCI7dmFyIF89Tz09PVwiQW5kcm9pZFwiO3ZhciBJPU8uc2xpY2UoMCw3KT09PVwiV2luZG93c1wiO3ZhciBOPU89PT1cIk9TIFhcIjt2YXIgRj1PPT09XCJpT1NcIjt2YXIgTD1BLmxheW91dD09PVwiQmxpbmtcIjt2YXIgRD1BLmxheW91dD09PVwiR2Vja29cIjt2YXIgTT1BLmxheW91dD09PVwiVHJpZGVudFwiO3ZhciBSPUEubGF5b3V0PT09XCJFZGdlSFRNTFwiO3ZhciB6PUEubGF5b3V0PT09XCJXZWJLaXRcIjt2YXIgQj1wYXJzZUZsb2F0KEEudmVyc2lvbik7dmFyIEg9TWF0aC5mbG9vcihCKTtBLm1ham9yVmVyc2lvbj1IO0EuaXM9e0FORFJPSUQ6XyxXSU5ET1dTOkksT1NYOk4sSU9TOkYsQkxJTks6TCxHRUNLTzpELFRSSURFTlQ6TSxFREdFOlIsV0VCS0lUOnosSUU5Ok0mJkg9PT05LElFMTA6TSYmSD09PTEwLElFMTE6TSYmSD09PTExfTtmdW5jdGlvbiBiZWZvcmUoKXt2YXIgZT17YWN0aXZlRWxlbWVudDpkb2N1bWVudC5hY3RpdmVFbGVtZW50LHdpbmRvd1Njcm9sbFRvcDp3aW5kb3cuc2Nyb2xsVG9wLHdpbmRvd1Njcm9sbExlZnQ6d2luZG93LnNjcm9sbExlZnQsYm9keVNjcm9sbFRvcDpkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCxib2R5U2Nyb2xsTGVmdDpkb2N1bWVudC5ib2R5LnNjcm9sbExlZnR9O3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpZnJhbWVcIik7dC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLFwicG9zaXRpb246YWJzb2x1dGU7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDotMnB4OyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IG92ZXJmbG93OmhpZGRlbjtcIik7dC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxpdmVcIixcIm9mZlwiKTt0LnNldEF0dHJpYnV0ZShcImFyaWEtYnVzeVwiLFwidHJ1ZVwiKTt0LnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7dmFyIHI9dC5jb250ZW50V2luZG93O3ZhciBuPXIuZG9jdW1lbnQ7bi5vcGVuKCk7bi5jbG9zZSgpO3ZhciBhPW4uY3JlYXRlRWxlbWVudChcImRpdlwiKTtuLmJvZHkuYXBwZW5kQ2hpbGQoYSk7ZS5pZnJhbWU9dDtlLndyYXBwZXI9YTtlLndpbmRvdz1yO2UuZG9jdW1lbnQ9bjtyZXR1cm4gZX1mdW5jdGlvbiB0ZXN0KGUsdCl7ZS53cmFwcGVyLmlubmVySFRNTD1cIlwiO3ZhciByPXR5cGVvZiB0LmVsZW1lbnQ9PT1cInN0cmluZ1wiP2UuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0LmVsZW1lbnQpOnQuZWxlbWVudChlLndyYXBwZXIsZS5kb2N1bWVudCk7dmFyIG49dC5tdXRhdGUmJnQubXV0YXRlKHIsZS53cmFwcGVyLGUuZG9jdW1lbnQpO2lmKCFuJiZuIT09ZmFsc2Upe249cn0hci5wYXJlbnROb2RlJiZlLndyYXBwZXIuYXBwZW5kQ2hpbGQocik7biYmbi5mb2N1cyYmbi5mb2N1cygpO3JldHVybiB0LnZhbGlkYXRlP3QudmFsaWRhdGUocixuLGUuZG9jdW1lbnQpOmUuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PW59ZnVuY3Rpb24gYWZ0ZXIoZSl7aWYoZS5hY3RpdmVFbGVtZW50PT09ZG9jdW1lbnQuYm9keSl7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtpZihBLmlzLklFMTApe2RvY3VtZW50LmJvZHkuZm9jdXMoKX19ZWxzZXtlLmFjdGl2ZUVsZW1lbnQmJmUuYWN0aXZlRWxlbWVudC5mb2N1cyYmZS5hY3RpdmVFbGVtZW50LmZvY3VzKCl9ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlLmlmcmFtZSk7d2luZG93LnNjcm9sbFRvcD1lLndpbmRvd1Njcm9sbFRvcDt3aW5kb3cuc2Nyb2xsTGVmdD1lLndpbmRvd1Njcm9sbExlZnQ7ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9ZS5ib2R5U2Nyb2xsVG9wO2RvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdD1lLmJvZHlTY3JvbGxMZWZ0fWZ1bmN0aW9uIGRldGVjdEZvY3VzKGUpe3ZhciB0PWJlZm9yZSgpO3ZhciByPXt9O09iamVjdC5rZXlzKGUpLm1hcCgoZnVuY3Rpb24obil7cltuXT10ZXN0KHQsZVtuXSl9KSk7YWZ0ZXIodCk7cmV0dXJuIHJ9dmFyIFA9XCIxLjQuMVwiO2Z1bmN0aW9uIHJlYWRMb2NhbFN0b3JhZ2UoZSl7dmFyIHQ9dm9pZCAwO3RyeXt0PXdpbmRvdy5sb2NhbFN0b3JhZ2UmJndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTt0PXQ/SlNPTi5wYXJzZSh0KTp7fX1jYXRjaChlKXt0PXt9fXJldHVybiB0fWZ1bmN0aW9uIHdyaXRlTG9jYWxTdG9yYWdlKGUsdCl7aWYoIWRvY3VtZW50Lmhhc0ZvY3VzKCkpe3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiZ3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZSl9Y2F0Y2goZSl7fXJldHVybn10cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGUsSlNPTi5zdHJpbmdpZnkodCkpfWNhdGNoKGUpe319dmFyIHE9dHlwZW9mIHdpbmRvdyE9PVwidW5kZWZpbmVkXCImJndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fHxcIlwiO3ZhciBXPVwiYWxseS1zdXBwb3J0cy1jYWNoZVwiO3ZhciBWPXJlYWRMb2NhbFN0b3JhZ2UoVyk7aWYoVi51c2VyQWdlbnQhPT1xfHxWLnZlcnNpb24hPT1QKXtWPXt9fVYudXNlckFnZW50PXE7Vi52ZXJzaW9uPVA7dmFyICQ9e2dldDpmdW5jdGlvbiBnZXQoKXtyZXR1cm4gVn0sc2V0OmZ1bmN0aW9uIHNldChlKXtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXtWW3RdPWVbdF19KSk7Vi50aW1lPShuZXcgRGF0ZSkudG9JU09TdHJpbmcoKTt3cml0ZUxvY2FsU3RvcmFnZShXLFYpfX07ZnVuY3Rpb24gY3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcigpe3ZhciBlPXZvaWQgMDt0cnl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImh0bWwgPj4+IDpmaXJzdC1jaGlsZFwiKTtlPVwiPj4+XCJ9Y2F0Y2godCl7dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJodG1sIC9kZWVwLyA6Zmlyc3QtY2hpbGRcIik7ZT1cIi9kZWVwL1wifWNhdGNoKHQpe2U9XCJcIn19cmV0dXJuIGV9dmFyIEs9XCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTdcIjt2YXIgWj17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9JzxtYXAgbmFtZT1cImltYWdlLW1hcC10YWJpbmRleC10ZXN0XCI+JysnPGFyZWEgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JysnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiB0YWJpbmRleD1cIi0xXCIgYWx0PVwiXCIgc3JjPVwiJytLKydcIj4nO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJhcmVhXCIpfX07dmFyIFU9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPSc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPicrJzxhcmVhIGhyZWY9XCIjdm9pZFwiIHRhYmluZGV4PVwiLTFcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nKyc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicrSysnXCI+JztyZXR1cm4gZmFsc2V9LHZhbGlkYXRlOmZ1bmN0aW9uIHZhbGlkYXRlKGUsdCxyKXtpZihBLmlzLkdFQ0tPKXtyZXR1cm4gdHJ1ZX12YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoXCJhcmVhXCIpO24uZm9jdXMoKTtyZXR1cm4gci5hY3RpdmVFbGVtZW50PT09bn19O3ZhciBHPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD0nPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLWFyZWEtaHJlZi10ZXN0XCI+JysnPGFyZWEgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JysnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLWFyZWEtaHJlZi10ZXN0XCIgYWx0PVwiXCIgc3JjPVwiJytLKydcIj4nO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJhcmVhXCIpfSx2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlLHQscil7aWYoQS5pcy5HRUNLTyl7cmV0dXJuIHRydWV9cmV0dXJuIHIuYWN0aXZlRWxlbWVudD09PXR9fTt2YXIgWD17bmFtZTpcImNhbi1mb2N1cy1hdWRpby13aXRob3V0LWNvbnRyb2xzXCIsZWxlbWVudDpcImF1ZGlvXCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXt0cnl7ZS5zZXRBdHRyaWJ1dGUoXCJzcmNcIixLKX1jYXRjaChlKXt9fX07dmFyIEo9XCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL1paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpcIjt2YXIgUT17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9JzxtYXAgbmFtZT1cImJyb2tlbi1pbWFnZS1tYXAtdGVzdFwiPjxhcmVhIGhyZWY9XCIjdm9pZFwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicrJzxpbWcgdXNlbWFwPVwiI2Jyb2tlbi1pbWFnZS1tYXAtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicrSisnXCI+JztyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwiYXJlYVwiKX19O3ZhciBZPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKTtlLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsXCJkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBmbGV4O1wiKTtlLmlubmVySFRNTD0nPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5oZWxsbzwvc3Bhbj4nO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJzcGFuXCIpfX07dmFyIGVlPXtlbGVtZW50OlwiZmllbGRzZXRcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiwwKTtlLnNldEF0dHJpYnV0ZShcImRpc2FibGVkXCIsXCJkaXNhYmxlZFwiKX19O3ZhciB0ZT17ZWxlbWVudDpcImZpZWxkc2V0XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD1cIjxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+PHA+Y29udGVudDwvcD5cIn19O3ZhciByZT17ZWxlbWVudDpcInNwYW5cIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwic3R5bGVcIixcImRpc3BsYXk6IC13ZWJraXQtZmxleDsgZGlzcGxheTogLW1zLWZsZXhib3g7IGRpc3BsYXk6IGZsZXg7XCIpO2UuaW5uZXJIVE1MPSc8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPmhlbGxvPC9zcGFuPid9fTt2YXIgbmU9e2VsZW1lbnQ6XCJmb3JtXCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsMCk7ZS5zZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiLFwiZGlzYWJsZWRcIil9fTt2YXIgYWU9e2VsZW1lbnQ6XCJhXCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmhyZWY9XCIjdm9pZFwiO2UuaW5uZXJIVE1MPSc8aW1nIGlzbWFwIHNyYz1cIicrSysnXCIgYWx0PVwiXCI+JztyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwiaW1nXCIpfX07dmFyIG9lPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD0nPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj48YXJlYSBocmVmPVwiI3ZvaWRcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nKyc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIHRhYmluZGV4PVwiLTFcIiBhbHQ9XCJcIiAnKydzcmM9XCInK0srJ1wiPic7cmV0dXJuIGUucXVlcnlTZWxlY3RvcihcImltZ1wiKX19O3ZhciBpZT17ZWxlbWVudDpmdW5jdGlvbiBlbGVtZW50KGUsdCl7dmFyIHI9dC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpO2UuYXBwZW5kQ2hpbGQocik7dmFyIG49ci5jb250ZW50V2luZG93LmRvY3VtZW50O24ub3BlbigpO24uY2xvc2UoKTtyZXR1cm4gcn0sbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnN0eWxlLnZpc2liaWxpdHk9XCJoaWRkZW5cIjt2YXIgdD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7dmFyIHI9dC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7dC5ib2R5LmFwcGVuZENoaWxkKHIpO3JldHVybiByfSx2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlKXt2YXIgdD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7dmFyIHI9dC5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIik7cmV0dXJuIHQuYWN0aXZlRWxlbWVudD09PXJ9fTt2YXIgbGU9IUEuaXMuV0VCS0lUO2Z1bmN0aW9uIGZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0KCl7cmV0dXJuIGxlfXZhciBzZT17ZWxlbWVudDpcImRpdlwiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiaW52YWxpZC12YWx1ZVwiKX19O3ZhciB1ZT17ZWxlbWVudDpcImxhYmVsXCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKX0sdmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSx0LHIpe3ZhciBuPWUub2Zmc2V0SGVpZ2h0O2UuZm9jdXMoKTtyZXR1cm4gci5hY3RpdmVFbGVtZW50PT09ZX19O3ZhciBjZT1cImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiXCIrXCJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUJwWkQwaWMzWm5JajQ4ZEdWNGRDQjRQU0l4TUNJZ2VUMGlNakFpSUdsa1BTSlwiK1wiemRtY3RiR2x1YXkxMFpYaDBJajUwWlhoMFBDOTBaWGgwUGp3dmMzWm5QZz09XCI7dmFyIGRlPXtlbGVtZW50Olwib2JqZWN0XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLnNldEF0dHJpYnV0ZShcInR5cGVcIixcImltYWdlL3N2Zyt4bWxcIik7ZS5zZXRBdHRyaWJ1dGUoXCJkYXRhXCIsY2UpO2Uuc2V0QXR0cmlidXRlKFwid2lkdGhcIixcIjIwMFwiKTtlLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLFwiNTBcIik7ZS5zdHlsZS52aXNpYmlsaXR5PVwiaGlkZGVuXCJ9fTt2YXIgZmU9e25hbWU6XCJjYW4tZm9jdXMtb2JqZWN0LXN2Z1wiLGVsZW1lbnQ6XCJvYmplY3RcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwidHlwZVwiLFwiaW1hZ2Uvc3ZnK3htbFwiKTtlLnNldEF0dHJpYnV0ZShcImRhdGFcIixjZSk7ZS5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLFwiMjAwXCIpO2Uuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsXCI1MFwiKX0sdmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSx0LHIpe2lmKEEuaXMuR0VDS08pe3JldHVybiB0cnVlfXJldHVybiByLmFjdGl2ZUVsZW1lbnQ9PT1lfX07dmFyIG1lPSFBLmlzLklFOTtmdW5jdGlvbiBmb2N1c09iamVjdFN3Zigpe3JldHVybiBtZX12YXIgcGU9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPSc8bWFwIG5hbWU9XCJmb2N1cy1yZWRpcmVjdC1pbWctdXNlbWFwXCI+PGFyZWEgaHJlZj1cIiN2b2lkXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JysnPGltZyB1c2VtYXA9XCIjZm9jdXMtcmVkaXJlY3QtaW1nLXVzZW1hcFwiIGFsdD1cIlwiICcrJ3NyYz1cIicrSysnXCI+JztyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKFwiaW1nXCIpfSx2YWxpZGF0ZTpmdW5jdGlvbiB2YWxpZGF0ZShlLHQscil7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKFwiYXJlYVwiKTtyZXR1cm4gci5hY3RpdmVFbGVtZW50PT09bn19O3ZhciBiZT17ZWxlbWVudDpcImZpZWxkc2V0XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD0nPGxlZ2VuZD5sZWdlbmQ8L2xlZ2VuZD48aW5wdXQgdGFiaW5kZXg9XCItMVwiPjxpbnB1dCB0YWJpbmRleD1cIjBcIj4nO3JldHVybiBmYWxzZX0sdmFsaWRhdGU6ZnVuY3Rpb24gdmFsaWRhdGUoZSx0LHIpe3ZhciBuPWUucXVlcnlTZWxlY3RvcignaW5wdXRbdGFiaW5kZXg9XCItMVwiXScpO3ZhciBhPWUucXVlcnlTZWxlY3RvcignaW5wdXRbdGFiaW5kZXg9XCIwXCJdJyk7ZS5mb2N1cygpO2UucXVlcnlTZWxlY3RvcihcImxlZ2VuZFwiKS5mb2N1cygpO3JldHVybiByLmFjdGl2ZUVsZW1lbnQ9PT1uJiZcImZvY3VzYWJsZVwifHxyLmFjdGl2ZUVsZW1lbnQ9PT1hJiZcInRhYmJhYmxlXCJ8fFwiXCJ9fTt2YXIgZ2U9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwic3R5bGVcIixcIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBvdmVyZmxvdzogYXV0bztcIik7ZS5pbm5lckhUTUw9JzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJkaXZcIil9fTt2YXIgdmU9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwic3R5bGVcIixcIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4O1wiKTtlLmlubmVySFRNTD0nPGRpdiBzdHlsZT1cIndpZHRoOiA1MDBweDsgaGVpZ2h0OiA0MHB4O1wiPnNjcm9sbGFibGUgY29udGVudDwvZGl2Pid9fTt2YXIgaGU9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwic3R5bGVcIixcIndpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBvdmVyZmxvdzogYXV0bztcIik7ZS5pbm5lckhUTUw9JzxkaXYgc3R5bGU9XCJ3aWR0aDogNTAwcHg7IGhlaWdodDogNDBweDtcIj5zY3JvbGxhYmxlIGNvbnRlbnQ8L2Rpdj4nfX07dmFyIHhlPXtlbGVtZW50OlwiZGV0YWlsc1wiLG11dGF0ZTpmdW5jdGlvbiBtdXRhdGUoZSl7ZS5pbm5lckhUTUw9XCI8c3VtbWFyeT5mb288L3N1bW1hcnk+PHA+Y29udGVudDwvcD5cIjtyZXR1cm4gZS5maXJzdEVsZW1lbnRDaGlsZH19O2Z1bmN0aW9uIG1ha2VGb2N1c2FibGVGb3JlaWduT2JqZWN0KCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImZvcmVpZ25PYmplY3RcIik7ZS53aWR0aC5iYXNlVmFsLnZhbHVlPTMwO2UuaGVpZ2h0LmJhc2VWYWwudmFsdWU9MzA7ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIikpO2UubGFzdENoaWxkLnR5cGU9XCJ0ZXh0XCI7cmV0dXJuIGV9ZnVuY3Rpb24gZm9jdXNTdmdGb3JlaWduT2JqZWN0SGFjayhlKXt2YXIgdD1lLm93bmVyU1ZHRWxlbWVudHx8ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09XCJzdmdcIjtpZighdCl7cmV0dXJuIGZhbHNlfXZhciByPW1ha2VGb2N1c2FibGVGb3JlaWduT2JqZWN0KCk7ZS5hcHBlbmRDaGlsZChyKTt2YXIgbj1yLnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtuLmZvY3VzKCk7bi5kaXNhYmxlZD10cnVlO2UucmVtb3ZlQ2hpbGQocik7cmV0dXJuIHRydWV9ZnVuY3Rpb24gZ2VuZXJhdGUoZSl7cmV0dXJuJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPicrZStcIjwvc3ZnPlwifWZ1bmN0aW9uIG1haW50YWluX3RhYl9mb2N1c19mb2N1cyhlKXtpZihlLmZvY3VzKXtyZXR1cm59dHJ5e0hUTUxFbGVtZW50LnByb3RvdHlwZS5mb2N1cy5jYWxsKGUpfWNhdGNoKHQpe2ZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2soZSl9fWZ1bmN0aW9uIHZhbGlkYXRlKGUsdCxyKXttYWludGFpbl90YWJfZm9jdXNfZm9jdXModCk7cmV0dXJuIHIuYWN0aXZlRWxlbWVudD09PXR9dmFyIHllPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD1nZW5lcmF0ZSgnPHRleHQgZm9jdXNhYmxlPVwidHJ1ZVwiPmE8L3RleHQ+Jyk7cmV0dXJuIGUucXVlcnlTZWxlY3RvcihcInRleHRcIil9LHZhbGlkYXRlOnZhbGlkYXRlfTt2YXIgRWU9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPWdlbmVyYXRlKCc8dGV4dCB0YWJpbmRleD1cIjBcIj5hPC90ZXh0PicpO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJ0ZXh0XCIpfSx2YWxpZGF0ZTp2YWxpZGF0ZX07dmFyIHdlPXtlbGVtZW50OlwiZGl2XCIsbXV0YXRlOmZ1bmN0aW9uIG11dGF0ZShlKXtlLmlubmVySFRNTD1nZW5lcmF0ZSgnPHRleHQgdGFiaW5kZXg9XCItMVwiPmE8L3RleHQ+Jyk7cmV0dXJuIGUucXVlcnlTZWxlY3RvcihcInRleHRcIil9LHZhbGlkYXRlOnZhbGlkYXRlfTt2YXIga2U9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPWdlbmVyYXRlKFsnPGcgaWQ9XCJhbGx5LXRlc3QtdGFyZ2V0XCI+PGEgeGxpbms6aHJlZj1cIiN2b2lkXCI+PHRleHQ+bGluazwvdGV4dD48L2E+PC9nPicsJzx1c2UgeGxpbms6aHJlZj1cIiNhbGx5LXRlc3QtdGFyZ2V0XCIgeD1cIjBcIiB5PVwiMFwiIHRhYmluZGV4PVwiLTFcIiAvPiddLmpvaW4oXCJcIikpO3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IoXCJ1c2VcIil9LHZhbGlkYXRlOnZhbGlkYXRlfTt2YXIgU2U9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPWdlbmVyYXRlKCc8Zm9yZWlnbk9iamVjdCB0YWJpbmRleD1cIi0xXCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgLz48L2ZvcmVpZ25PYmplY3Q+Jyk7cmV0dXJuIGUucXVlcnlTZWxlY3RvcihcImZvcmVpZ25PYmplY3RcIil8fGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJmb3JlaWduT2JqZWN0XCIpWzBdfSx2YWxpZGF0ZTp2YWxpZGF0ZX07dmFyIFRlPUJvb2xlYW4oQS5pcy5HRUNLTyYmdHlwZW9mIFNWR0VsZW1lbnQhPT1cInVuZGVmaW5lZFwiJiZTVkdFbGVtZW50LnByb3RvdHlwZS5mb2N1cyk7ZnVuY3Rpb24gZm9jdXNTdmdJbklmcmFtZSgpe3JldHVybiBUZX12YXIgQ2U9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2UuaW5uZXJIVE1MPWdlbmVyYXRlKFwiXCIpO3JldHVybiBlLmZpcnN0Q2hpbGR9LHZhbGlkYXRlOnZhbGlkYXRlfTt2YXIgamU9e2VsZW1lbnQ6XCJkaXZcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe2Uuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIixcIjN4XCIpfX07dmFyIEFlPXtlbGVtZW50OlwidGFibGVcIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUsdCxyKXt2YXIgbj1yLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtuLmlubmVySFRNTD1cIjx0cj48dGQ+Y2VsbDwvdGQ+PC90cj5cIjtlLmFwcGVuZENoaWxkKG4pfX07dmFyIE9lPXtlbGVtZW50OlwidmlkZW9cIixtdXRhdGU6ZnVuY3Rpb24gbXV0YXRlKGUpe3RyeXtlLnNldEF0dHJpYnV0ZShcInNyY1wiLEspfWNhdGNoKGUpe319fTt2YXIgX2U9QS5pcy5HRUNLT3x8QS5pcy5UUklERU5UfHxBLmlzLkVER0U7ZnVuY3Rpb24gdGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbigpe3JldHVybiBfZX12YXIgSWU9e2Nzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3I6Y3NzU2hhZG93UGllcmNpbmdEZWVwQ29tYmluYXRvcixmb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdDpmb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdCxmb2N1c09iamVjdFN3Zjpmb2N1c09iamVjdFN3Zixmb2N1c1N2Z0luSWZyYW1lOmZvY3VzU3ZnSW5JZnJhbWUsdGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbjp0YWJzZXF1ZW5jZUFyZWFBdEltZ1Bvc2l0aW9ufTt2YXIgTmU9e2ZvY3VzQXJlYUltZ1RhYmluZGV4OlosZm9jdXNBcmVhVGFiaW5kZXg6VSxmb2N1c0FyZWFXaXRob3V0SHJlZjpHLGZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHM6WCxmb2N1c0Jyb2tlbkltYWdlTWFwOlEsZm9jdXNDaGlsZHJlbk9mRm9jdXNhYmxlRmxleGJveDpZLGZvY3VzRmllbGRzZXREaXNhYmxlZDplZSxmb2N1c0ZpZWxkc2V0OnRlLGZvY3VzRmxleGJveENvbnRhaW5lcjpyZSxmb2N1c0Zvcm1EaXNhYmxlZDpuZSxmb2N1c0ltZ0lzbWFwOmFlLGZvY3VzSW1nVXNlbWFwVGFiaW5kZXg6b2UsZm9jdXNJbkhpZGRlbklmcmFtZTppZSxmb2N1c0ludmFsaWRUYWJpbmRleDpzZSxmb2N1c0xhYmVsVGFiaW5kZXg6dWUsZm9jdXNPYmplY3RTdmc6ZmUsZm9jdXNPYmplY3RTdmdIaWRkZW46ZGUsZm9jdXNSZWRpcmVjdEltZ1VzZW1hcDpwZSxmb2N1c1JlZGlyZWN0TGVnZW5kOmJlLGZvY3VzU2Nyb2xsQm9keTpnZSxmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdzp2ZSxmb2N1c1Njcm9sbENvbnRhaW5lcjpoZSxmb2N1c1N1bW1hcnk6eGUsZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGU6eWUsZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZTpFZSxmb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGU6d2UsZm9jdXNTdmdVc2VUYWJpbmRleDprZSxmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleDpTZSxmb2N1c1N2ZzpDZSxmb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzOmplLGZvY3VzVGFibGU6QWUsZm9jdXNWaWRlb1dpdGhvdXRDb250cm9sczpPZX07ZnVuY3Rpb24gZXhlY3V0ZVRlc3RzKCl7dmFyIGU9ZGV0ZWN0Rm9jdXMoTmUpO09iamVjdC5rZXlzKEllKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPUllW3RdKCl9KSk7cmV0dXJuIGV9dmFyIEZlPW51bGw7ZnVuY3Rpb24gX3N1cHBvcnRzKCl7aWYoRmUpe3JldHVybiBGZX1GZT0kLmdldCgpO2lmKCFGZS50aW1lKXskLnNldChleGVjdXRlVGVzdHMoKSk7RmU9JC5nZXQoKX1yZXR1cm4gRmV9dmFyIExlPXZvaWQgMDt2YXIgRGU9L15cXHMqKC18XFwrKT9bMC05XStcXHMqJC87dmFyIE1lPS9eXFxzKigtfFxcKyk/WzAtOV0rLiokLztmdW5jdGlvbiBpc1ZhbGlkVGFiaW5kZXgoZSl7aWYoIUxlKXtMZT1fc3VwcG9ydHMoKX12YXIgdD1MZS5mb2N1c1RhYmluZGV4VHJhaWxpbmdDaGFyYWN0ZXJzP01lOkRlO3ZhciByPWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvdmFsaWQtdGFiaW5kZXhcIixyZXNvbHZlRG9jdW1lbnQ6dHJ1ZSxjb250ZXh0OmV9KTt2YXIgbj1yLmhhc0F0dHJpYnV0ZShcInRhYmluZGV4XCIpO3ZhciBhPXIuaGFzQXR0cmlidXRlKFwidGFiSW5kZXhcIik7aWYoIW4mJiFhKXtyZXR1cm4gZmFsc2V9dmFyIG89ci5vd25lclNWR0VsZW1lbnR8fHIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PVwic3ZnXCI7aWYobyYmIUxlLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUpe3JldHVybiBmYWxzZX1pZihMZS5mb2N1c0ludmFsaWRUYWJpbmRleCl7cmV0dXJuIHRydWV9dmFyIGk9ci5nZXRBdHRyaWJ1dGUobj9cInRhYmluZGV4XCI6XCJ0YWJJbmRleFwiKTtpZihpPT09XCItMzI3NjhcIil7cmV0dXJuIGZhbHNlfXJldHVybiBCb29sZWFuKGkmJnQudGVzdChpKSl9ZnVuY3Rpb24gdGFiaW5kZXhWYWx1ZShlKXtpZighaXNWYWxpZFRhYmluZGV4KGUpKXtyZXR1cm4gbnVsbH12YXIgdD1lLmhhc0F0dHJpYnV0ZShcInRhYmluZGV4XCIpO3ZhciByPXQ/XCJ0YWJpbmRleFwiOlwidGFiSW5kZXhcIjt2YXIgbj1wYXJzZUludChlLmdldEF0dHJpYnV0ZShyKSwxMCk7cmV0dXJuIGlzTmFOKG4pPy0xOm59ZnVuY3Rpb24gaXNVc2VyTW9kaWZ5V3JpdGFibGUoZSl7dmFyIHQ9ZS53ZWJraXRVc2VyTW9kaWZ5fHxcIlwiO3JldHVybiBCb29sZWFuKHQmJnQuaW5kZXhPZihcIndyaXRlXCIpIT09LTEpfWZ1bmN0aW9uIGhhc0Nzc092ZXJmbG93U2Nyb2xsKGUpe3JldHVybltlLmdldFByb3BlcnR5VmFsdWUoXCJvdmVyZmxvd1wiKSxlLmdldFByb3BlcnR5VmFsdWUoXCJvdmVyZmxvdy14XCIpLGUuZ2V0UHJvcGVydHlWYWx1ZShcIm92ZXJmbG93LXlcIildLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09XCJhdXRvXCJ8fGU9PT1cInNjcm9sbFwifSkpfWZ1bmN0aW9uIGhhc0Nzc0Rpc3BsYXlGbGV4KGUpe3JldHVybiBlLmRpc3BsYXkuaW5kZXhPZihcImZsZXhcIik+LTF9ZnVuY3Rpb24gaXNTY3JvbGxhYmxlQ29udGFpbmVyKGUsdCxyLG4pe2lmKHQhPT1cImRpdlwiJiZ0IT09XCJzcGFuXCIpe3JldHVybiBmYWxzZX1pZihyJiZyIT09XCJkaXZcIiYmciE9PVwic3BhblwiJiYhaGFzQ3NzT3ZlcmZsb3dTY3JvbGwobikpe3JldHVybiBmYWxzZX1yZXR1cm4gZS5vZmZzZXRIZWlnaHQ8ZS5zY3JvbGxIZWlnaHR8fGUub2Zmc2V0V2lkdGg8ZS5zY3JvbGxXaWR0aH12YXIgUmU9dm9pZCAwO2Z1bmN0aW9uIGlzRm9jdXNSZWxldmFudFJ1bGVzKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5jb250ZXh0LHI9ZS5leGNlcHQsbj1yPT09dW5kZWZpbmVkP3tmbGV4Ym94OmZhbHNlLHNjcm9sbGFibGU6ZmFsc2Usc2hhZG93OmZhbHNlfTpyO2lmKCFSZSl7UmU9X3N1cHBvcnRzKCl9dmFyIGE9Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJpcy9mb2N1cy1yZWxldmFudFwiLHJlc29sdmVEb2N1bWVudDp0cnVlLGNvbnRleHQ6dH0pO2lmKCFuLnNoYWRvdyYmYS5zaGFkb3dSb290KXtyZXR1cm4gdHJ1ZX12YXIgbz1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYobz09PVwiaW5wdXRcIiYmYS50eXBlPT09XCJoaWRkZW5cIil7cmV0dXJuIGZhbHNlfWlmKG89PT1cImlucHV0XCJ8fG89PT1cInNlbGVjdFwifHxvPT09XCJidXR0b25cInx8bz09PVwidGV4dGFyZWFcIil7cmV0dXJuIHRydWV9aWYobz09PVwibGVnZW5kXCImJlJlLmZvY3VzUmVkaXJlY3RMZWdlbmQpe3JldHVybiB0cnVlfWlmKG89PT1cImxhYmVsXCIpe3JldHVybiB0cnVlfWlmKG89PT1cImFyZWFcIil7cmV0dXJuIHRydWV9aWYobz09PVwiYVwiJiZhLmhhc0F0dHJpYnV0ZShcImhyZWZcIikpe3JldHVybiB0cnVlfWlmKG89PT1cIm9iamVjdFwiJiZhLmhhc0F0dHJpYnV0ZShcInVzZW1hcFwiKSl7cmV0dXJuIGZhbHNlfWlmKG89PT1cIm9iamVjdFwiKXt2YXIgaT1hLmdldEF0dHJpYnV0ZShcInR5cGVcIik7aWYoIVJlLmZvY3VzT2JqZWN0U3ZnJiZpPT09XCJpbWFnZS9zdmcreG1sXCIpe3JldHVybiBmYWxzZX1lbHNlIGlmKCFSZS5mb2N1c09iamVjdFN3ZiYmaT09PVwiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2hcIil7cmV0dXJuIGZhbHNlfX1pZihvPT09XCJpZnJhbWVcInx8bz09PVwib2JqZWN0XCIpe3JldHVybiB0cnVlfWlmKG89PT1cImVtYmVkXCJ8fG89PT1cImtleWdlblwiKXtyZXR1cm4gdHJ1ZX1pZihhLmhhc0F0dHJpYnV0ZShcImNvbnRlbnRlZGl0YWJsZVwiKSl7cmV0dXJuIHRydWV9aWYobz09PVwiYXVkaW9cIiYmKFJlLmZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHN8fGEuaGFzQXR0cmlidXRlKFwiY29udHJvbHNcIikpKXtyZXR1cm4gdHJ1ZX1pZihvPT09XCJ2aWRlb1wiJiYoUmUuZm9jdXNWaWRlb1dpdGhvdXRDb250cm9sc3x8YS5oYXNBdHRyaWJ1dGUoXCJjb250cm9sc1wiKSkpe3JldHVybiB0cnVlfWlmKFJlLmZvY3VzU3VtbWFyeSYmbz09PVwic3VtbWFyeVwiKXtyZXR1cm4gdHJ1ZX12YXIgbD1pc1ZhbGlkVGFiaW5kZXgoYSk7aWYobz09PVwiaW1nXCImJmEuaGFzQXR0cmlidXRlKFwidXNlbWFwXCIpKXtyZXR1cm4gbCYmUmUuZm9jdXNJbWdVc2VtYXBUYWJpbmRleHx8UmUuZm9jdXNSZWRpcmVjdEltZ1VzZW1hcH1pZihSZS5mb2N1c1RhYmxlJiYobz09PVwidGFibGVcInx8bz09PVwidGRcIikpe3JldHVybiB0cnVlfWlmKFJlLmZvY3VzRmllbGRzZXQmJm89PT1cImZpZWxkc2V0XCIpe3JldHVybiB0cnVlfXZhciBzPW89PT1cInN2Z1wiO3ZhciB1PWEub3duZXJTVkdFbGVtZW50O3ZhciBjPWEuZ2V0QXR0cmlidXRlKFwiZm9jdXNhYmxlXCIpO3ZhciBkPXRhYmluZGV4VmFsdWUoYSk7aWYobz09PVwidXNlXCImJmQhPT1udWxsJiYhUmUuZm9jdXNTdmdVc2VUYWJpbmRleCl7cmV0dXJuIGZhbHNlfWlmKG89PT1cImZvcmVpZ25vYmplY3RcIil7cmV0dXJuIGQhPT1udWxsJiZSZS5mb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleH1pZihlbGVtZW50TWF0Y2hlcyhhLFwic3ZnIGFcIikmJmEuaGFzQXR0cmlidXRlKFwieGxpbms6aHJlZlwiKSl7cmV0dXJuIHRydWV9aWYoKHN8fHUpJiZhLmZvY3VzJiYhUmUuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlJiZkPDApe3JldHVybiBmYWxzZX1pZihzKXtyZXR1cm4gbHx8UmUuZm9jdXNTdmd8fFJlLmZvY3VzU3ZnSW5JZnJhbWV8fEJvb2xlYW4oUmUuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUmJmMmJmM9PT1cInRydWVcIil9aWYodSl7aWYoUmUuZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSYmbCl7cmV0dXJuIHRydWV9aWYoUmUuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUpe3JldHVybiBjPT09XCJ0cnVlXCJ9fWlmKGwpe3JldHVybiB0cnVlfXZhciBmPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk7aWYoaXNVc2VyTW9kaWZ5V3JpdGFibGUoZikpe3JldHVybiB0cnVlfWlmKFJlLmZvY3VzSW1nSXNtYXAmJm89PT1cImltZ1wiJiZhLmhhc0F0dHJpYnV0ZShcImlzbWFwXCIpKXt2YXIgbT1nZXRQYXJlbnRzKHtjb250ZXh0OmF9KS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09XCJhXCImJmUuaGFzQXR0cmlidXRlKFwiaHJlZlwiKX0pKTtpZihtKXtyZXR1cm4gdHJ1ZX19aWYoIW4uc2Nyb2xsYWJsZSYmUmUuZm9jdXNTY3JvbGxDb250YWluZXIpe2lmKFJlLmZvY3VzU2Nyb2xsQ29udGFpbmVyV2l0aG91dE92ZXJmbG93KXtpZihpc1Njcm9sbGFibGVDb250YWluZXIoYSxvKSl7cmV0dXJuIHRydWV9fWVsc2UgaWYoaGFzQ3NzT3ZlcmZsb3dTY3JvbGwoZikpe3JldHVybiB0cnVlfX1pZighbi5mbGV4Ym94JiZSZS5mb2N1c0ZsZXhib3hDb250YWluZXImJmhhc0Nzc0Rpc3BsYXlGbGV4KGYpKXtyZXR1cm4gdHJ1ZX12YXIgcD1hLnBhcmVudEVsZW1lbnQ7aWYoIW4uc2Nyb2xsYWJsZSYmcCl7dmFyIGI9cC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3ZhciBnPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHAsbnVsbCk7aWYoUmUuZm9jdXNTY3JvbGxCb2R5JiZpc1Njcm9sbGFibGVDb250YWluZXIocCxvLGIsZykpe3JldHVybiB0cnVlfWlmKFJlLmZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3gpe2lmKGhhc0Nzc0Rpc3BsYXlGbGV4KGcpKXtyZXR1cm4gdHJ1ZX19fXJldHVybiBmYWxzZX1pc0ZvY3VzUmVsZXZhbnRSdWxlcy5leGNlcHQ9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e307dmFyIHQ9ZnVuY3Rpb24gaXNGb2N1c1JlbGV2YW50KHQpe3JldHVybiBpc0ZvY3VzUmVsZXZhbnRSdWxlcyh7Y29udGV4dDp0LGV4Y2VwdDplfSl9O3QucnVsZXM9aXNGb2N1c1JlbGV2YW50UnVsZXM7cmV0dXJuIHR9O3ZhciB6ZT1pc0ZvY3VzUmVsZXZhbnRSdWxlcy5leGNlcHQoe30pO2Z1bmN0aW9uIGZpbmRJbmRleChlLHQpe2lmKGUuZmluZEluZGV4KXtyZXR1cm4gZS5maW5kSW5kZXgodCl9dmFyIHI9ZS5sZW5ndGg7aWYocj09PTApe3JldHVybi0xfWZvcih2YXIgbj0wO248cjtuKyspe2lmKHQoZVtuXSxuLGUpKXtyZXR1cm4gbn19cmV0dXJuLTF9ZnVuY3Rpb24gZ2V0Q29udGVudERvY3VtZW50KGUpe3RyeXtyZXR1cm4gZS5jb250ZW50RG9jdW1lbnR8fGUuY29udGVudFdpbmRvdyYmZS5jb250ZW50V2luZG93LmRvY3VtZW50fHxlLmdldFNWR0RvY3VtZW50JiZlLmdldFNWR0RvY3VtZW50KCl8fG51bGx9Y2F0Y2goZSl7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIGdldFdpbmRvdyhlKXt2YXIgdD1nZXREb2N1bWVudChlKTtyZXR1cm4gdC5kZWZhdWx0Vmlld3x8d2luZG93fXZhciBCZT12b2lkIDA7ZnVuY3Rpb24gc2VsZWN0SW5TaGFkb3dzKGUpe2lmKHR5cGVvZiBCZSE9PVwic3RyaW5nXCIpe3ZhciB0PWNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IoKTtpZih0KXtCZT1cIiwgaHRtbCBcIit0K1wiIFwifX1pZighQmUpe3JldHVybiBlfXJldHVybiBlK0JlK2UucmVwbGFjZSgvXFxzKixcXHMqL2csXCIsXCIpLnNwbGl0KFwiLFwiKS5qb2luKEJlKX12YXIgSGU9dm9pZCAwO2Z1bmN0aW9uIGZpbmREb2N1bWVudEhvc3RFbGVtZW50KGUpe2lmKCFIZSl7SGU9c2VsZWN0SW5TaGFkb3dzKFwib2JqZWN0LCBpZnJhbWVcIil9aWYoZS5fZnJhbWVFbGVtZW50IT09dW5kZWZpbmVkKXtyZXR1cm4gZS5fZnJhbWVFbGVtZW50fWUuX2ZyYW1lRWxlbWVudD1udWxsO3ZhciB0PWUucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoSGUpO1tdLnNvbWUuY2FsbCh0LChmdW5jdGlvbih0KXt2YXIgcj1nZXRDb250ZW50RG9jdW1lbnQodCk7aWYociE9PWUuZG9jdW1lbnQpe3JldHVybiBmYWxzZX1lLl9mcmFtZUVsZW1lbnQ9dDtyZXR1cm4gdHJ1ZX0pKTtyZXR1cm4gZS5fZnJhbWVFbGVtZW50fWZ1bmN0aW9uIGdldEZyYW1lRWxlbWVudChlKXt2YXIgdD1nZXRXaW5kb3coZSk7aWYoIXQucGFyZW50fHx0LnBhcmVudD09PXQpe3JldHVybiBudWxsfXRyeXtyZXR1cm4gdC5mcmFtZUVsZW1lbnR8fGZpbmREb2N1bWVudEhvc3RFbGVtZW50KHQpfWNhdGNoKGUpe3JldHVybiBudWxsfX12YXIgUGU9L14oYXJlYSkkLztmdW5jdGlvbiBjb21wdXRlZFN0eWxlKGUsdCl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSh0KX1mdW5jdGlvbiBub3REaXNwbGF5ZWQoZSl7cmV0dXJuIGUuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbXB1dGVkU3R5bGUoZSxcImRpc3BsYXlcIik9PT1cIm5vbmVcIn0pKX1mdW5jdGlvbiBub3RWaXNpYmxlKGUpe3ZhciB0PWZpbmRJbmRleChlLChmdW5jdGlvbihlKXt2YXIgdD1jb21wdXRlZFN0eWxlKGUsXCJ2aXNpYmlsaXR5XCIpO3JldHVybiB0PT09XCJoaWRkZW5cInx8dD09PVwiY29sbGFwc2VcIn0pKTtpZih0PT09LTEpe3JldHVybiBmYWxzZX12YXIgcj1maW5kSW5kZXgoZSwoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbXB1dGVkU3R5bGUoZSxcInZpc2liaWxpdHlcIik9PT1cInZpc2libGVcIn0pKTtpZihyPT09LTEpe3JldHVybiB0cnVlfWlmKHQ8cil7cmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGNvbGxhcHNlZFBhcmVudChlKXt2YXIgdD0xO2lmKGVbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PVwic3VtbWFyeVwiKXt0PTJ9cmV0dXJuIGUuc2xpY2UodCkuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PVwiZGV0YWlsc1wiJiZlLm9wZW49PT1mYWxzZX0pKX1mdW5jdGlvbiBpc1Zpc2libGVSdWxlcygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dCxyPWUuZXhjZXB0LG49cj09PXVuZGVmaW5lZD97bm90UmVuZGVyZWQ6ZmFsc2UsY3NzRGlzcGxheTpmYWxzZSxjc3NWaXNpYmlsaXR5OmZhbHNlLGRldGFpbHNFbGVtZW50OmZhbHNlLGJyb3dzaW5nQ29udGV4dDpmYWxzZX06cjt2YXIgYT1jb250ZXh0VG9FbGVtZW50KHtsYWJlbDpcImlzL3Zpc2libGVcIixyZXNvbHZlRG9jdW1lbnQ6dHJ1ZSxjb250ZXh0OnR9KTt2YXIgbz1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoIW4ubm90UmVuZGVyZWQmJlBlLnRlc3Qobykpe3JldHVybiB0cnVlfXZhciBpPWdldFBhcmVudHMoe2NvbnRleHQ6YX0pO3ZhciBsPW89PT1cImF1ZGlvXCImJiFhLmhhc0F0dHJpYnV0ZShcImNvbnRyb2xzXCIpO2lmKCFuLmNzc0Rpc3BsYXkmJm5vdERpc3BsYXllZChsP2kuc2xpY2UoMSk6aSkpe3JldHVybiBmYWxzZX1pZighbi5jc3NWaXNpYmlsaXR5JiZub3RWaXNpYmxlKGkpKXtyZXR1cm4gZmFsc2V9aWYoIW4uZGV0YWlsc0VsZW1lbnQmJmNvbGxhcHNlZFBhcmVudChpKSl7cmV0dXJuIGZhbHNlfWlmKCFuLmJyb3dzaW5nQ29udGV4dCl7dmFyIHM9Z2V0RnJhbWVFbGVtZW50KGEpO3ZhciB1PWlzVmlzaWJsZVJ1bGVzLmV4Y2VwdChuKTtpZihzJiYhdShzKSl7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1pc1Zpc2libGVSdWxlcy5leGNlcHQ9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e307dmFyIHQ9ZnVuY3Rpb24gaXNWaXNpYmxlKHQpe3JldHVybiBpc1Zpc2libGVSdWxlcyh7Y29udGV4dDp0LGV4Y2VwdDplfSl9O3QucnVsZXM9aXNWaXNpYmxlUnVsZXM7cmV0dXJuIHR9O3ZhciBxZT1pc1Zpc2libGVSdWxlcy5leGNlcHQoe30pO2Z1bmN0aW9uIGdldE1hcEJ5TmFtZShlLHQpe3ZhciByPXQucXVlcnlTZWxlY3RvcignbWFwW25hbWU9XCInK1QoKShlKSsnXCJdJyk7cmV0dXJuIHJ8fG51bGx9ZnVuY3Rpb24gZ2V0SW1hZ2VPZkFyZWEoZSl7dmFyIHQ9ZS5wYXJlbnRFbGVtZW50O2lmKCF0Lm5hbWV8fHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PVwibWFwXCIpe3JldHVybiBudWxsfXZhciByPWdldERvY3VtZW50KGUpO3JldHVybiByLnF1ZXJ5U2VsZWN0b3IoJ2ltZ1t1c2VtYXA9XCIjJytUKCkodC5uYW1lKSsnXCJdJyl8fG51bGx9dmFyIFdlPXZvaWQgMDtmdW5jdGlvbiBpc1ZhbGlkQXJlYShlKXtpZighV2Upe1dlPV9zdXBwb3J0cygpfXZhciB0PWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvdmFsaWQtYXJlYVwiLGNvbnRleHQ6ZX0pO3ZhciByPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihyIT09XCJhcmVhXCIpe3JldHVybiBmYWxzZX12YXIgbj10Lmhhc0F0dHJpYnV0ZShcInRhYmluZGV4XCIpO2lmKCFXZS5mb2N1c0FyZWFUYWJpbmRleCYmbil7cmV0dXJuIGZhbHNlfXZhciBhPWdldEltYWdlT2ZBcmVhKHQpO2lmKCFhfHwhcWUoYSkpe3JldHVybiBmYWxzZX1pZighV2UuZm9jdXNCcm9rZW5JbWFnZU1hcCYmKCFhLmNvbXBsZXRlfHwhYS5uYXR1cmFsSGVpZ2h0fHxhLm9mZnNldFdpZHRoPD0wfHxhLm9mZnNldEhlaWdodDw9MCkpe3JldHVybiBmYWxzZX1pZighV2UuZm9jdXNBcmVhV2l0aG91dEhyZWYmJiF0LmhyZWYpe3JldHVybiBXZS5mb2N1c0FyZWFUYWJpbmRleCYmbnx8V2UuZm9jdXNBcmVhSW1nVGFiaW5kZXgmJmEuaGFzQXR0cmlidXRlKFwidGFiaW5kZXhcIil9dmFyIG89Z2V0UGFyZW50cyh7Y29udGV4dDphfSkuc2xpY2UoMSkuc29tZSgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09XCJidXR0b25cInx8dD09PVwiYVwifSkpO2lmKG8pe3JldHVybiBmYWxzZX1yZXR1cm4gdHJ1ZX12YXIgVmU9dm9pZCAwO3ZhciAkZT12b2lkIDA7dmFyIEtlPXtpbnB1dDp0cnVlLHNlbGVjdDp0cnVlLHRleHRhcmVhOnRydWUsYnV0dG9uOnRydWUsZmllbGRzZXQ6dHJ1ZSxmb3JtOnRydWV9O2Z1bmN0aW9uIGlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQoZSl7aWYoIVZlKXtWZT1fc3VwcG9ydHMoKTtpZihWZS5mb2N1c0ZpZWxkc2V0RGlzYWJsZWQpe2RlbGV0ZSBLZS5maWVsZHNldH1pZihWZS5mb2N1c0Zvcm1EaXNhYmxlZCl7ZGVsZXRlIEtlLmZvcm19JGU9bmV3IFJlZ0V4cChcIl4oXCIrT2JqZWN0LmtleXMoS2UpLmpvaW4oXCJ8XCIpK1wiKSRcIil9dmFyIHQ9Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJpcy9uYXRpdmUtZGlzYWJsZWQtc3VwcG9ydGVkXCIsY29udGV4dDplfSk7dmFyIHI9dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBCb29sZWFuKCRlLnRlc3QocikpfXZhciBaZT12b2lkIDA7ZnVuY3Rpb24gaXNEaXNhYmxlZEZpZWxkc2V0KGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD09PVwiZmllbGRzZXRcIiYmZS5kaXNhYmxlZH1mdW5jdGlvbiBpc0Rpc2FibGVkRm9ybShlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ9PT1cImZvcm1cIiYmZS5kaXNhYmxlZH1mdW5jdGlvbiBpc0Rpc2FibGVkKGUpe2lmKCFaZSl7WmU9X3N1cHBvcnRzKCl9dmFyIHQ9Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJpcy9kaXNhYmxlZFwiLGNvbnRleHQ6ZX0pO2lmKHQuaGFzQXR0cmlidXRlKFwiZGF0YS1hbGx5LWRpc2FibGVkXCIpKXtyZXR1cm4gdHJ1ZX1pZighaXNOYXRpdmVEaXNhYmxlZFN1cHBvcnRlZCh0KSl7cmV0dXJuIGZhbHNlfWlmKHQuZGlzYWJsZWQpe3JldHVybiB0cnVlfXZhciByPWdldFBhcmVudHMoe2NvbnRleHQ6dH0pO2lmKHIuc29tZShpc0Rpc2FibGVkRmllbGRzZXQpKXtyZXR1cm4gdHJ1ZX1pZighWmUuZm9jdXNGb3JtRGlzYWJsZWQmJnIuc29tZShpc0Rpc2FibGVkRm9ybSkpe3JldHVybiB0cnVlfXJldHVybiBmYWxzZX1mdW5jdGlvbiBpc09ubHlUYWJiYWJsZVJ1bGVzKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5jb250ZXh0LHI9ZS5leGNlcHQsbj1yPT09dW5kZWZpbmVkP3tvbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0OmZhbHNlLHZpc2libGU6ZmFsc2V9OnI7dmFyIGE9Y29udGV4dFRvRWxlbWVudCh7bGFiZWw6XCJpcy9vbmx5LXRhYmJhYmxlXCIscmVzb2x2ZURvY3VtZW50OnRydWUsY29udGV4dDp0fSk7aWYoIW4udmlzaWJsZSYmIXFlKGEpKXtyZXR1cm4gZmFsc2V9aWYoIW4ub25seUZvY3VzYWJsZUJyb3dzaW5nQ29udGV4dCYmKEEuaXMuR0VDS098fEEuaXMuVFJJREVOVHx8QS5pcy5FREdFKSl7dmFyIG89Z2V0RnJhbWVFbGVtZW50KGEpO2lmKG8pe2lmKHRhYmluZGV4VmFsdWUobyk8MCl7cmV0dXJuIGZhbHNlfX19dmFyIGk9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3ZhciBsPXRhYmluZGV4VmFsdWUoYSk7aWYoaT09PVwibGFiZWxcIiYmQS5pcy5HRUNLTyl7cmV0dXJuIGwhPT1udWxsJiZsPj0wfWlmKEEuaXMuR0VDS08mJmEub3duZXJTVkdFbGVtZW50JiYhYS5mb2N1cyl7aWYoaT09PVwiYVwiJiZhLmhhc0F0dHJpYnV0ZShcInhsaW5rOmhyZWZcIikpe2lmKEEuaXMuR0VDS08pe3JldHVybiB0cnVlfX19cmV0dXJuIGZhbHNlfWlzT25seVRhYmJhYmxlUnVsZXMuZXhjZXB0PWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9O3ZhciB0PWZ1bmN0aW9uIGlzT25seVRhYmJhYmxlKHQpe3JldHVybiBpc09ubHlUYWJiYWJsZVJ1bGVzKHtjb250ZXh0OnQsZXhjZXB0OmV9KX07dC5ydWxlcz1pc09ubHlUYWJiYWJsZVJ1bGVzO3JldHVybiB0fTt2YXIgVWU9aXNPbmx5VGFiYmFibGVSdWxlcy5leGNlcHQoe30pO3ZhciBHZT12b2lkIDA7ZnVuY3Rpb24gaXNPbmx5Rm9jdXNSZWxldmFudChlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYodD09PVwiZW1iZWRcInx8dD09PVwia2V5Z2VuXCIpe3JldHVybiB0cnVlfXZhciByPXRhYmluZGV4VmFsdWUoZSk7aWYoZS5zaGFkb3dSb290JiZyPT09bnVsbCl7cmV0dXJuIHRydWV9aWYodD09PVwibGFiZWxcIil7cmV0dXJuIUdlLmZvY3VzTGFiZWxUYWJpbmRleHx8cj09PW51bGx9aWYodD09PVwibGVnZW5kXCIpe3JldHVybiByPT09bnVsbH1pZihHZS5mb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSYmKGUub3duZXJTVkdFbGVtZW50fHx0PT09XCJzdmdcIikpe3ZhciBuPWUuZ2V0QXR0cmlidXRlKFwiZm9jdXNhYmxlXCIpO3JldHVybiBuJiZuPT09XCJmYWxzZVwifWlmKHQ9PT1cImltZ1wiJiZlLmhhc0F0dHJpYnV0ZShcInVzZW1hcFwiKSl7cmV0dXJuIHI9PT1udWxsfHwhR2UuZm9jdXNJbWdVc2VtYXBUYWJpbmRleH1pZih0PT09XCJhcmVhXCIpe3JldHVybiFpc1ZhbGlkQXJlYShlKX1yZXR1cm4gZmFsc2V9ZnVuY3Rpb24gaXNGb2N1c2FibGVSdWxlcygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dCxyPWUuZXhjZXB0LG49cj09PXVuZGVmaW5lZD97ZGlzYWJsZWQ6ZmFsc2UsdmlzaWJsZTpmYWxzZSxvbmx5VGFiYmFibGU6ZmFsc2V9OnI7aWYoIUdlKXtHZT1fc3VwcG9ydHMoKX12YXIgYT1VZS5ydWxlcy5leGNlcHQoe29ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQ6dHJ1ZSx2aXNpYmxlOm4udmlzaWJsZX0pO3ZhciBvPWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvZm9jdXNhYmxlXCIscmVzb2x2ZURvY3VtZW50OnRydWUsY29udGV4dDp0fSk7dmFyIGk9emUucnVsZXMoe2NvbnRleHQ6byxleGNlcHQ6bn0pO2lmKCFpfHxpc09ubHlGb2N1c1JlbGV2YW50KG8pKXtyZXR1cm4gZmFsc2V9aWYoIW4uZGlzYWJsZWQmJmlzRGlzYWJsZWQobykpe3JldHVybiBmYWxzZX1pZighbi5vbmx5VGFiYmFibGUmJmEobykpe3JldHVybiBmYWxzZX1pZighbi52aXNpYmxlKXt2YXIgbD17Y29udGV4dDpvLGV4Y2VwdDp7fX07aWYoR2UuZm9jdXNJbkhpZGRlbklmcmFtZSl7bC5leGNlcHQuYnJvd3NpbmdDb250ZXh0PXRydWV9aWYoR2UuZm9jdXNPYmplY3RTdmdIaWRkZW4pe3ZhciBzPW8ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihzPT09XCJvYmplY3RcIil7bC5leGNlcHQuY3NzVmlzaWJpbGl0eT10cnVlfX1pZighcWUucnVsZXMobCkpe3JldHVybiBmYWxzZX19dmFyIHU9Z2V0RnJhbWVFbGVtZW50KG8pO2lmKHUpe3ZhciBjPXUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihjPT09XCJvYmplY3RcIiYmIUdlLmZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0KXtpZighdS5vZmZzZXRXaWR0aHx8IXUub2Zmc2V0SGVpZ2h0KXtyZXR1cm4gZmFsc2V9fX12YXIgZD1vLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoZD09PVwic3ZnXCImJkdlLmZvY3VzU3ZnSW5JZnJhbWUmJiF1JiZvLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpPT09bnVsbCl7cmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfWlzRm9jdXNhYmxlUnVsZXMuZXhjZXB0PWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9O3ZhciB0PWZ1bmN0aW9uIGlzRm9jdXNhYmxlKHQpe3JldHVybiBpc0ZvY3VzYWJsZVJ1bGVzKHtjb250ZXh0OnQsZXhjZXB0OmV9KX07dC5ydWxlcz1pc0ZvY3VzYWJsZVJ1bGVzO3JldHVybiB0fTt2YXIgWGU9aXNGb2N1c2FibGVSdWxlcy5leGNlcHQoe30pO2Z1bmN0aW9uIGNyZWF0ZUZpbHRlcihlKXt2YXIgdD1mdW5jdGlvbiBmaWx0ZXIodCl7aWYodC5zaGFkb3dSb290KXtyZXR1cm4gTm9kZUZpbHRlci5GSUxURVJfQUNDRVBUfWlmKGUodCkpe3JldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFR9cmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX1NLSVB9O3QuYWNjZXB0Tm9kZT10O3JldHVybiB0fXZhciBKZT1jcmVhdGVGaWx0ZXIoemUpO2Z1bmN0aW9uIHF1ZXJ5Rm9jdXNhYmxlU3RyaWN0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5jb250ZXh0LHI9ZS5pbmNsdWRlQ29udGV4dCxuPWUuaW5jbHVkZU9ubHlUYWJiYWJsZSxhPWUuc3RyYXRlZ3k7aWYoIXQpe3Q9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fXZhciBvPVhlLnJ1bGVzLmV4Y2VwdCh7b25seVRhYmJhYmxlOm59KTt2YXIgaT1nZXREb2N1bWVudCh0KTt2YXIgbD1pLmNyZWF0ZVRyZWVXYWxrZXIodCxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxhPT09XCJhbGxcIj9KZTpjcmVhdGVGaWx0ZXIobyksZmFsc2UpO3ZhciBzPVtdO3doaWxlKGwubmV4dE5vZGUoKSl7aWYobC5jdXJyZW50Tm9kZS5zaGFkb3dSb290KXtpZihvKGwuY3VycmVudE5vZGUpKXtzLnB1c2gobC5jdXJyZW50Tm9kZSl9cz1zLmNvbmNhdChxdWVyeUZvY3VzYWJsZVN0cmljdCh7Y29udGV4dDpsLmN1cnJlbnROb2RlLnNoYWRvd1Jvb3QsaW5jbHVkZU9ubHlUYWJiYWJsZTpuLHN0cmF0ZWd5OmF9KSl9ZWxzZXtzLnB1c2gobC5jdXJyZW50Tm9kZSl9fWlmKHIpe2lmKGE9PT1cImFsbFwiKXtpZih6ZSh0KSl7cy51bnNoaWZ0KHQpfX1lbHNlIGlmKG8odCkpe3MudW5zaGlmdCh0KX19cmV0dXJuIHN9dmFyIFFlPXZvaWQgMDt2YXIgWWU9dm9pZCAwO2Z1bmN0aW9uIHNlbGVjdG9yJDIoKXtpZighUWUpe1FlPV9zdXBwb3J0cygpfWlmKHR5cGVvZiBZZT09PVwic3RyaW5nXCIpe3JldHVybiBZZX1ZZT1cIlwiKyhRZS5mb2N1c1RhYmxlP1widGFibGUsIHRkLFwiOlwiXCIpKyhRZS5mb2N1c0ZpZWxkc2V0P1wiZmllbGRzZXQsXCI6XCJcIikrXCJzdmcgYSxcIitcImFbaHJlZl0sXCIrXCJhcmVhW2hyZWZdLFwiK1wiaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIGJ1dHRvbixcIitcImlmcmFtZSwgb2JqZWN0LCBlbWJlZCxcIitcImtleWdlbixcIisoUWUuZm9jdXNBdWRpb1dpdGhvdXRDb250cm9scz9cImF1ZGlvLFwiOlwiYXVkaW9bY29udHJvbHNdLFwiKSsoUWUuZm9jdXNWaWRlb1dpdGhvdXRDb250cm9scz9cInZpZGVvLFwiOlwidmlkZW9bY29udHJvbHNdLFwiKSsoUWUuZm9jdXNTdW1tYXJ5P1wic3VtbWFyeSxcIjpcIlwiKStcIlt0YWJpbmRleF0sXCIrXCJbY29udGVudGVkaXRhYmxlXVwiO1llPXNlbGVjdEluU2hhZG93cyhZZSk7cmV0dXJuIFllfWZ1bmN0aW9uIHF1ZXJ5Rm9jdXNhYmxlUXVpY2soKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQscj1lLmluY2x1ZGVDb250ZXh0LG49ZS5pbmNsdWRlT25seVRhYmJhYmxlO3ZhciBhPXNlbGVjdG9yJDIoKTt2YXIgbz10LnF1ZXJ5U2VsZWN0b3JBbGwoYSk7dmFyIGk9WGUucnVsZXMuZXhjZXB0KHtvbmx5VGFiYmFibGU6bn0pO3ZhciBsPVtdLmZpbHRlci5jYWxsKG8saSk7aWYociYmaSh0KSl7bC51bnNoaWZ0KHQpfXJldHVybiBsfWZ1bmN0aW9uIHF1ZXJ5Rm9jdXNhYmxlKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5jb250ZXh0LHI9ZS5pbmNsdWRlQ29udGV4dCxuPWUuaW5jbHVkZU9ubHlUYWJiYWJsZSxhPWUuc3RyYXRlZ3ksbz1hPT09dW5kZWZpbmVkP1wicXVpY2tcIjphO3ZhciBpPWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwicXVlcnkvZm9jdXNhYmxlXCIscmVzb2x2ZURvY3VtZW50OnRydWUsZGVmYXVsdFRvRG9jdW1lbnQ6dHJ1ZSxjb250ZXh0OnR9KTt2YXIgbD17Y29udGV4dDppLGluY2x1ZGVDb250ZXh0OnIsaW5jbHVkZU9ubHlUYWJiYWJsZTpuLHN0cmF0ZWd5Om99O2lmKG89PT1cInF1aWNrXCIpe3JldHVybiBxdWVyeUZvY3VzYWJsZVF1aWNrKGwpfWVsc2UgaWYobz09PVwic3RyaWN0XCJ8fG89PT1cImFsbFwiKXtyZXR1cm4gcXVlcnlGb2N1c2FibGVTdHJpY3QobCl9dGhyb3cgbmV3IFR5cGVFcnJvcigncXVlcnkvZm9jdXNhYmxlIHJlcXVpcmVzIG9wdGlvbi5zdHJhdGVneSB0byBiZSBvbmUgb2YgW1wicXVpY2tcIiwgXCJzdHJpY3RcIiwgXCJhbGxcIl0nKX12YXIgZXQ9dm9pZCAwO3ZhciB0dD0vXihmaWVsZHNldHx0YWJsZXx0ZHxib2R5KSQvO2Z1bmN0aW9uIGlzVGFiYmFibGVSdWxlcygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUuY29udGV4dCxyPWUuZXhjZXB0LG49cj09PXVuZGVmaW5lZD97ZmxleGJveDpmYWxzZSxzY3JvbGxhYmxlOmZhbHNlLHNoYWRvdzpmYWxzZSx2aXNpYmxlOmZhbHNlLG9ubHlUYWJiYWJsZTpmYWxzZX06cjtpZighZXQpe2V0PV9zdXBwb3J0cygpfXZhciBhPWNvbnRleHRUb0VsZW1lbnQoe2xhYmVsOlwiaXMvdGFiYmFibGVcIixyZXNvbHZlRG9jdW1lbnQ6dHJ1ZSxjb250ZXh0OnR9KTtpZihBLmlzLkJMSU5LJiZBLmlzLkFORFJPSUQmJkEubWFqb3JWZXJzaW9uPjQyKXtyZXR1cm4gZmFsc2V9dmFyIG89Z2V0RnJhbWVFbGVtZW50KGEpO2lmKG8pe2lmKEEuaXMuV0VCS0lUJiZBLmlzLklPUyl7cmV0dXJuIGZhbHNlfWlmKHRhYmluZGV4VmFsdWUobyk8MCl7cmV0dXJuIGZhbHNlfWlmKCFuLnZpc2libGUmJihBLmlzLkJMSU5LfHxBLmlzLldFQktJVCkmJiFxZShvKSl7cmV0dXJuIGZhbHNlfXZhciBpPW8ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihpPT09XCJvYmplY3RcIil7dmFyIGw9QS5uYW1lPT09XCJDaHJvbWVcIiYmQS5tYWpvclZlcnNpb24+PTU0fHxBLm5hbWU9PT1cIk9wZXJhXCImJkEubWFqb3JWZXJzaW9uPj00MTtpZihBLmlzLldFQktJVHx8QS5pcy5CTElOSyYmIWwpe3JldHVybiBmYWxzZX19fXZhciBzPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTt2YXIgdT10YWJpbmRleFZhbHVlKGEpO3ZhciBjPXU9PT1udWxsP251bGw6dT49MDtpZihBLmlzLkVER0UmJkEubWFqb3JWZXJzaW9uPj0xNCYmbyYmYS5vd25lclNWR0VsZW1lbnQmJnU8MCl7cmV0dXJuIHRydWV9dmFyIGQ9YyE9PWZhbHNlO3ZhciBmPXUhPT1udWxsJiZ1Pj0wO2lmKGEuaGFzQXR0cmlidXRlKFwiY29udGVudGVkaXRhYmxlXCIpKXtyZXR1cm4gZH1pZih0dC50ZXN0KHMpJiZjIT09dHJ1ZSl7cmV0dXJuIGZhbHNlfWlmKEEuaXMuV0VCS0lUJiZBLmlzLklPUyl7dmFyIG09cz09PVwiaW5wdXRcIiYmYS50eXBlPT09XCJ0ZXh0XCJ8fGEudHlwZT09PVwicGFzc3dvcmRcInx8cz09PVwic2VsZWN0XCJ8fHM9PT1cInRleHRhcmVhXCJ8fGEuaGFzQXR0cmlidXRlKFwiY29udGVudGVkaXRhYmxlXCIpO2lmKCFtKXt2YXIgcD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO209aXNVc2VyTW9kaWZ5V3JpdGFibGUocCl9aWYoIW0pe3JldHVybiBmYWxzZX19aWYocz09PVwidXNlXCImJnUhPT1udWxsKXtpZihBLmlzLkJMSU5LfHxBLmlzLldFQktJVCYmQS5tYWpvclZlcnNpb249PT05KXtyZXR1cm4gdHJ1ZX19aWYoZWxlbWVudE1hdGNoZXMoYSxcInN2ZyBhXCIpJiZhLmhhc0F0dHJpYnV0ZShcInhsaW5rOmhyZWZcIikpe2lmKGQpe3JldHVybiB0cnVlfWlmKGEuZm9jdXMmJiFldC5mb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGUpe3JldHVybiB0cnVlfX1pZihzPT09XCJzdmdcIiYmZXQuZm9jdXNTdmdJbklmcmFtZSYmZCl7cmV0dXJuIHRydWV9aWYoQS5pcy5UUklERU5UfHxBLmlzLkVER0Upe2lmKHM9PT1cInN2Z1wiKXtpZihldC5mb2N1c1N2Zyl7cmV0dXJuIHRydWV9cmV0dXJuIGEuaGFzQXR0cmlidXRlKFwiZm9jdXNhYmxlXCIpfHxmfWlmKGEub3duZXJTVkdFbGVtZW50KXtpZihldC5mb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlJiZmKXtyZXR1cm4gdHJ1ZX1yZXR1cm4gYS5oYXNBdHRyaWJ1dGUoXCJmb2N1c2FibGVcIil9fWlmKGEudGFiSW5kZXg9PT11bmRlZmluZWQpe3JldHVybiBCb29sZWFuKG4ub25seVRhYmJhYmxlKX1pZihzPT09XCJhdWRpb1wiKXtpZighYS5oYXNBdHRyaWJ1dGUoXCJjb250cm9sc1wiKSl7cmV0dXJuIGZhbHNlfWVsc2UgaWYoQS5pcy5CTElOSyl7cmV0dXJuIHRydWV9fWlmKHM9PT1cInZpZGVvXCIpe2lmKCFhLmhhc0F0dHJpYnV0ZShcImNvbnRyb2xzXCIpKXtpZihBLmlzLlRSSURFTlR8fEEuaXMuRURHRSl7cmV0dXJuIGZhbHNlfX1lbHNlIGlmKEEuaXMuQkxJTkt8fEEuaXMuR0VDS08pe3JldHVybiB0cnVlfX1pZihzPT09XCJvYmplY3RcIil7aWYoQS5pcy5CTElOS3x8QS5pcy5XRUJLSVQpe3JldHVybiBmYWxzZX19aWYocz09PVwiaWZyYW1lXCIpe3JldHVybiBmYWxzZX1pZighbi5zY3JvbGxhYmxlJiZBLmlzLkdFQ0tPKXt2YXIgYj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpO2lmKGhhc0Nzc092ZXJmbG93U2Nyb2xsKGIpKXtyZXR1cm4gZH19aWYoQS5pcy5UUklERU5UfHxBLmlzLkVER0Upe2lmKHM9PT1cImFyZWFcIil7dmFyIGc9Z2V0SW1hZ2VPZkFyZWEoYSk7aWYoZyYmdGFiaW5kZXhWYWx1ZShnKTwwKXtyZXR1cm4gZmFsc2V9fXZhciB2PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk7aWYoaXNVc2VyTW9kaWZ5V3JpdGFibGUodikpe3JldHVybiBhLnRhYkluZGV4Pj0wfWlmKCFuLmZsZXhib3gmJmhhc0Nzc0Rpc3BsYXlGbGV4KHYpKXtpZih1IT09bnVsbCl7cmV0dXJuIGZ9cmV0dXJuIHJ0KGEpJiZudChhKX1pZihpc1Njcm9sbGFibGVDb250YWluZXIoYSxzKSl7cmV0dXJuIGZhbHNlfXZhciBoPWEucGFyZW50RWxlbWVudDtpZihoKXt2YXIgeD1oLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7dmFyIHk9d2luZG93LmdldENvbXB1dGVkU3R5bGUoaCxudWxsKTtpZihpc1Njcm9sbGFibGVDb250YWluZXIoaCxzLHgseSkpe3JldHVybiBmYWxzZX1pZihoYXNDc3NEaXNwbGF5RmxleCh5KSl7cmV0dXJuIGZ9fX1yZXR1cm4gYS50YWJJbmRleD49MH1pc1RhYmJhYmxlUnVsZXMuZXhjZXB0PWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9O3ZhciB0PWZ1bmN0aW9uIGlzVGFiYmFibGUodCl7cmV0dXJuIGlzVGFiYmFibGVSdWxlcyh7Y29udGV4dDp0LGV4Y2VwdDplfSl9O3QucnVsZXM9aXNUYWJiYWJsZVJ1bGVzO3JldHVybiB0fTt2YXIgcnQ9emUucnVsZXMuZXhjZXB0KHtmbGV4Ym94OnRydWV9KTt2YXIgbnQ9aXNUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7ZmxleGJveDp0cnVlfSk7dmFyIGF0PWlzVGFiYmFibGVSdWxlcy5leGNlcHQoe30pO2Z1bmN0aW9uIHF1ZXJ5VGFiYmFibGUoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQscj1lLmluY2x1ZGVDb250ZXh0LG49ZS5pbmNsdWRlT25seVRhYmJhYmxlLGE9ZS5zdHJhdGVneTt2YXIgbz1hdC5ydWxlcy5leGNlcHQoe29ubHlUYWJiYWJsZTpufSk7cmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlKHtjb250ZXh0OnQsaW5jbHVkZUNvbnRleHQ6cixpbmNsdWRlT25seVRhYmJhYmxlOm4sc3RyYXRlZ3k6YX0pLmZpbHRlcihvKX1mdW5jdGlvbiBjb21wYXJlRG9tUG9zaXRpb24oZSx0KXtyZXR1cm4gZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8tMToxfWZ1bmN0aW9uIHNvcnREb21PcmRlcihlKXtyZXR1cm4gZS5zb3J0KGNvbXBhcmVEb21Qb3NpdGlvbil9ZnVuY3Rpb24gZ2V0Rmlyc3RTdWNjZXNzb3JPZmZzZXQoZSx0KXtyZXR1cm4gZmluZEluZGV4KGUsKGZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HfSkpfWZ1bmN0aW9uIGZpbmRJbnNlcnRpb25PZmZzZXRzKGUsdCxyKXt2YXIgbj1bXTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBhPXRydWU7dmFyIG89ZS5pbmRleE9mKHQpO2lmKG89PT0tMSl7bz1nZXRGaXJzdFN1Y2Nlc3Nvck9mZnNldChlLHQpO2E9ZmFsc2V9aWYobz09PS0xKXtvPWUubGVuZ3RofXZhciBpPW5vZGVBcnJheShyP3IodCk6dCk7aWYoIWkubGVuZ3RoKXtyZXR1cm59bi5wdXNoKHtvZmZzZXQ6byxyZXBsYWNlOmEsZWxlbWVudHM6aX0pfSkpO3JldHVybiBufWZ1bmN0aW9uIGluc2VydEVsZW1lbnRzQXRPZmZzZXRzKGUsdCl7dmFyIHI9MDt0LnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUub2Zmc2V0LXQub2Zmc2V0fSkpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dC5yZXBsYWNlPzE6MDt2YXIgYT1bdC5vZmZzZXQrcixuXS5jb25jYXQodC5lbGVtZW50cyk7ZS5zcGxpY2UuYXBwbHkoZSxhKTtyKz10LmVsZW1lbnRzLmxlbmd0aC1ufSkpfWZ1bmN0aW9uIG1lcmdlSW5Eb21PcmRlcigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fSx0PWUubGlzdCxyPWUuZWxlbWVudHMsbj1lLnJlc29sdmVFbGVtZW50O3ZhciBhPXQuc2xpY2UoMCk7dmFyIG89bm9kZUFycmF5KHIpLnNsaWNlKDApO3NvcnREb21PcmRlcihvKTt2YXIgaT1maW5kSW5zZXJ0aW9uT2Zmc2V0cyhhLG8sbik7aW5zZXJ0RWxlbWVudHNBdE9mZnNldHMoYSxpKTtyZXR1cm4gYX12YXIgb3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07bi5lbnVtZXJhYmxlPW4uZW51bWVyYWJsZXx8ZmFsc2U7bi5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBuKW4ud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLmtleSxuKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXtpZih0KWRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsdCk7aWYocilkZWZpbmVQcm9wZXJ0aWVzKGUscik7cmV0dXJuIGV9fSgpO2Z1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfX12YXIgaXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBNYXBzKGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLE1hcHMpO3RoaXMuX2RvY3VtZW50PWdldERvY3VtZW50KGUpO3RoaXMubWFwcz17fX1vdChNYXBzLFt7a2V5OlwiZ2V0QXJlYXNGb3JcIix2YWx1ZTpmdW5jdGlvbiBnZXRBcmVhc0ZvcihlKXtpZighdGhpcy5tYXBzW2VdKXt0aGlzLmFkZE1hcEJ5TmFtZShlKX1yZXR1cm4gdGhpcy5tYXBzW2VdfX0se2tleTpcImFkZE1hcEJ5TmFtZVwiLHZhbHVlOmZ1bmN0aW9uIGFkZE1hcEJ5TmFtZShlKXt2YXIgdD1nZXRNYXBCeU5hbWUoZSx0aGlzLl9kb2N1bWVudCk7aWYoIXQpe3JldHVybn10aGlzLm1hcHNbdC5uYW1lXT1xdWVyeVRhYmJhYmxlKHtjb250ZXh0OnR9KX19LHtrZXk6XCJleHRyYWN0QXJlYXNGcm9tTGlzdFwiLHZhbHVlOmZ1bmN0aW9uIGV4dHJhY3RBcmVhc0Zyb21MaXN0KGUpe3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKHQhPT1cImFyZWFcIil7cmV0dXJuIHRydWV9dmFyIHI9ZS5wYXJlbnROb2RlO2lmKCF0aGlzLm1hcHNbci5uYW1lXSl7dGhpcy5tYXBzW3IubmFtZV09W119dGhpcy5tYXBzW3IubmFtZV0ucHVzaChlKTtyZXR1cm4gZmFsc2V9KSx0aGlzKX19XSk7cmV0dXJuIE1hcHN9KCk7ZnVuY3Rpb24gc29ydEFyZWEoZSx0KXt2YXIgcj10LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbWdbdXNlbWFwXVwiKTt2YXIgbj1uZXcgaXQodCk7dmFyIGE9bi5leHRyYWN0QXJlYXNGcm9tTGlzdChlKTtpZighci5sZW5ndGgpe3JldHVybiBhfXJldHVybiBtZXJnZUluRG9tT3JkZXIoe2xpc3Q6YSxlbGVtZW50czpyLHJlc29sdmVFbGVtZW50OmZ1bmN0aW9uIHJlc29sdmVFbGVtZW50KGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKFwidXNlbWFwXCIpLnNsaWNlKDEpO3JldHVybiBuLmdldEFyZWFzRm9yKHQpfX0pfXZhciBsdD1mdW5jdGlvbigpe2Z1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHxmYWxzZTtuLmNvbmZpZ3VyYWJsZT10cnVlO2lmKFwidmFsdWVcImluIG4pbi53cml0YWJsZT10cnVlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4ua2V5LG4pfX1yZXR1cm4gZnVuY3Rpb24oZSx0LHIpe2lmKHQpZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSx0KTtpZihyKWRlZmluZVByb3BlcnRpZXMoZSxyKTtyZXR1cm4gZX19KCk7ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrJDEoZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX19dmFyIHN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gU2hhZG93cyhlLHQpe19jbGFzc0NhbGxDaGVjayQxKHRoaXMsU2hhZG93cyk7dGhpcy5jb250ZXh0PWU7dGhpcy5zb3J0RWxlbWVudHM9dDt0aGlzLmhvc3RDb3VudGVyPTE7dGhpcy5pbkhvc3Q9e307dGhpcy5pbkRvY3VtZW50PVtdO3RoaXMuaG9zdHM9e307dGhpcy5lbGVtZW50cz17fX1sdChTaGFkb3dzLFt7a2V5OlwiX3JlZ2lzdGVySG9zdFwiLHZhbHVlOmZ1bmN0aW9uIF9yZWdpc3Rlckhvc3QoZSl7aWYoZS5fc29ydGluZ0lkKXtyZXR1cm59ZS5fc29ydGluZ0lkPVwic2hhZG93LVwiK3RoaXMuaG9zdENvdW50ZXIrKzt0aGlzLmhvc3RzW2UuX3NvcnRpbmdJZF09ZTt2YXIgdD1nZXRTaGFkb3dIb3N0KHtjb250ZXh0OmV9KTtpZih0KXt0aGlzLl9yZWdpc3Rlckhvc3QodCk7dGhpcy5fcmVnaXN0ZXJIb3N0UGFyZW50KGUsdCl9ZWxzZXt0aGlzLmluRG9jdW1lbnQucHVzaChlKX19fSx7a2V5OlwiX3JlZ2lzdGVySG9zdFBhcmVudFwiLHZhbHVlOmZ1bmN0aW9uIF9yZWdpc3Rlckhvc3RQYXJlbnQoZSx0KXtpZighdGhpcy5pbkhvc3RbdC5fc29ydGluZ0lkXSl7dGhpcy5pbkhvc3RbdC5fc29ydGluZ0lkXT1bXX10aGlzLmluSG9zdFt0Ll9zb3J0aW5nSWRdLnB1c2goZSl9fSx7a2V5OlwiX3JlZ2lzdGVyRWxlbWVudFwiLHZhbHVlOmZ1bmN0aW9uIF9yZWdpc3RlckVsZW1lbnQoZSx0KXtpZighdGhpcy5lbGVtZW50c1t0Ll9zb3J0aW5nSWRdKXt0aGlzLmVsZW1lbnRzW3QuX3NvcnRpbmdJZF09W119dGhpcy5lbGVtZW50c1t0Ll9zb3J0aW5nSWRdLnB1c2goZSl9fSx7a2V5OlwiZXh0cmFjdEVsZW1lbnRzXCIsdmFsdWU6ZnVuY3Rpb24gZXh0cmFjdEVsZW1lbnRzKGUpe3JldHVybiBlLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIHQ9Z2V0U2hhZG93SG9zdCh7Y29udGV4dDplfSk7aWYoIXQpe3JldHVybiB0cnVlfXRoaXMuX3JlZ2lzdGVySG9zdCh0KTt0aGlzLl9yZWdpc3RlckVsZW1lbnQoZSx0KTtyZXR1cm4gZmFsc2V9KSx0aGlzKX19LHtrZXk6XCJzb3J0XCIsdmFsdWU6ZnVuY3Rpb24gc29ydChlKXt2YXIgdD10aGlzLl9pbmplY3RIb3N0cyhlKTt0PXRoaXMuX3JlcGxhY2VIb3N0cyh0KTt0aGlzLl9jbGVhbnVwKCk7cmV0dXJuIHR9fSx7a2V5OlwiX2luamVjdEhvc3RzXCIsdmFsdWU6ZnVuY3Rpb24gX2luamVjdEhvc3RzKGUpe09iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZWxlbWVudHNbZV07dmFyIHI9dGhpcy5pbkhvc3RbZV07dmFyIG49dGhpcy5ob3N0c1tlXS5zaGFkb3dSb290O3RoaXMuZWxlbWVudHNbZV09dGhpcy5fbWVyZ2UodCxyLG4pfSksdGhpcyk7cmV0dXJuIHRoaXMuX21lcmdlKGUsdGhpcy5pbkRvY3VtZW50LHRoaXMuY29udGV4dCl9fSx7a2V5OlwiX21lcmdlXCIsdmFsdWU6ZnVuY3Rpb24gX21lcmdlKGUsdCxyKXt2YXIgbj1tZXJnZUluRG9tT3JkZXIoe2xpc3Q6ZSxlbGVtZW50czp0fSk7cmV0dXJuIHRoaXMuc29ydEVsZW1lbnRzKG4scil9fSx7a2V5OlwiX3JlcGxhY2VIb3N0c1wiLHZhbHVlOmZ1bmN0aW9uIF9yZXBsYWNlSG9zdHMoZSl7cmV0dXJuIG1lcmdlSW5Eb21PcmRlcih7bGlzdDplLGVsZW1lbnRzOnRoaXMuaW5Eb2N1bWVudCxyZXNvbHZlRWxlbWVudDp0aGlzLl9yZXNvbHZlSG9zdEVsZW1lbnQuYmluZCh0aGlzKX0pfX0se2tleTpcIl9yZXNvbHZlSG9zdEVsZW1lbnRcIix2YWx1ZTpmdW5jdGlvbiBfcmVzb2x2ZUhvc3RFbGVtZW50KGUpe3ZhciB0PW1lcmdlSW5Eb21PcmRlcih7bGlzdDp0aGlzLmVsZW1lbnRzW2UuX3NvcnRpbmdJZF0sZWxlbWVudHM6dGhpcy5pbkhvc3RbZS5fc29ydGluZ0lkXSxyZXNvbHZlRWxlbWVudDp0aGlzLl9yZXNvbHZlSG9zdEVsZW1lbnQuYmluZCh0aGlzKX0pO3ZhciByPXRhYmluZGV4VmFsdWUoZSk7aWYociE9PW51bGwmJnI+LTEpe3JldHVybltlXS5jb25jYXQodCl9cmV0dXJuIHR9fSx7a2V5OlwiX2NsZWFudXBcIix2YWx1ZTpmdW5jdGlvbiBfY2xlYW51cCgpe09iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RlbGV0ZSB0aGlzLmhvc3RzW2VdLl9zb3J0aW5nSWR9KSx0aGlzKX19XSk7cmV0dXJuIFNoYWRvd3N9KCk7ZnVuY3Rpb24gc29ydFNoYWRvd2VkKGUsdCxyKXt2YXIgbj1uZXcgc3QodCxyKTt2YXIgYT1uLmV4dHJhY3RFbGVtZW50cyhlKTtpZihhLmxlbmd0aD09PWUubGVuZ3RoKXtyZXR1cm4gcihlKX1yZXR1cm4gbi5zb3J0KGEpfWZ1bmN0aW9uIHNvcnRUYWJpbmRleChlKXt2YXIgdD17fTt2YXIgcj1bXTt2YXIgbj1lLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIG49ZS50YWJJbmRleDtpZihuPT09dW5kZWZpbmVkKXtuPXRhYmluZGV4VmFsdWUoZSl9aWYobjw9MHx8bj09PW51bGx8fG49PT11bmRlZmluZWQpe3JldHVybiB0cnVlfWlmKCF0W25dKXt0W25dPVtdO3IucHVzaChuKX10W25dLnB1c2goZSk7cmV0dXJuIGZhbHNlfSkpO3ZhciBhPXIuc29ydCgpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSkucmVkdWNlUmlnaHQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuY29uY2F0KGUpfSksbik7cmV0dXJuIGF9dmFyIHV0PXZvaWQgMDtmdW5jdGlvbiBtb3ZlQ29udGV4dFRvQmVnaW5uaW5nKGUsdCl7dmFyIHI9ZS5pbmRleE9mKHQpO2lmKHI+MCl7dmFyIG49ZS5zcGxpY2UociwxKTtyZXR1cm4gbi5jb25jYXQoZSl9cmV0dXJuIGV9ZnVuY3Rpb24gc29ydEVsZW1lbnRzKGUsdCl7aWYodXQudGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbil7ZT1zb3J0QXJlYShlLHQpfWU9c29ydFRhYmluZGV4KGUpO3JldHVybiBlfWZ1bmN0aW9uIHF1ZXJ5VGFic2VxdWVuY2UoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJmFyZ3VtZW50c1swXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMF06e30sdD1lLmNvbnRleHQscj1lLmluY2x1ZGVDb250ZXh0LG49ZS5pbmNsdWRlT25seVRhYmJhYmxlLGE9ZS5zdHJhdGVneTtpZighdXQpe3V0PV9zdXBwb3J0cygpfXZhciBvPW5vZGVBcnJheSh0KVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3ZhciBpPXF1ZXJ5VGFiYmFibGUoe2NvbnRleHQ6byxpbmNsdWRlQ29udGV4dDpyLGluY2x1ZGVPbmx5VGFiYmFibGU6bixzdHJhdGVneTphfSk7aWYoZG9jdW1lbnQuYm9keS5jcmVhdGVTaGFkb3dSb290JiZBLmlzLkJMSU5LKXtpPXNvcnRTaGFkb3dlZChpLG8sc29ydEVsZW1lbnRzKX1lbHNle2k9c29ydEVsZW1lbnRzKGksbyl9aWYocil7aT1tb3ZlQ29udGV4dFRvQmVnaW5uaW5nKGksbyl9cmV0dXJuIGl9dmFyIGN0PXt0YWI6OSxsZWZ0OjM3LHVwOjM4LHJpZ2h0OjM5LGRvd246NDAscGFnZVVwOjMzLFwicGFnZS11cFwiOjMzLHBhZ2VEb3duOjM0LFwicGFnZS1kb3duXCI6MzQsZW5kOjM1LGhvbWU6MzYsZW50ZXI6MTMsZXNjYXBlOjI3LHNwYWNlOjMyLHNoaWZ0OjE2LGNhcHNMb2NrOjIwLFwiY2Fwcy1sb2NrXCI6MjAsY3RybDoxNyxhbHQ6MTgsbWV0YTo5MSxwYXVzZToxOSxpbnNlcnQ6NDUsZGVsZXRlOjQ2LGJhY2tzcGFjZTo4LF9hbGlhczp7OTE6WzkyLDkzLDIyNF19fTtmb3IodmFyIGR0PTE7ZHQ8MjY7ZHQrKyl7Y3RbXCJmXCIrZHRdPWR0KzExMX1mb3IodmFyIGZ0PTA7ZnQ8MTA7ZnQrKyl7dmFyIG10PWZ0KzQ4O3ZhciBwdD1mdCs5NjtjdFtmdF09bXQ7Y3RbXCJudW0tXCIrZnRdPXB0O2N0Ll9hbGlhc1ttdF09W3B0XX1mb3IodmFyIGJ0PTA7YnQ8MjY7YnQrKyl7dmFyIGd0PWJ0KzY1O3ZhciB2dD1TdHJpbmcuZnJvbUNoYXJDb2RlKGd0KS50b0xvd2VyQ2FzZSgpO2N0W3Z0XT1ndH12YXIgaHQ9e2FsdDpcImFsdEtleVwiLGN0cmw6XCJjdHJsS2V5XCIsbWV0YTpcIm1ldGFLZXlcIixzaGlmdDpcInNoaWZ0S2V5XCJ9O3ZhciB4dD1PYmplY3Qua2V5cyhodCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaHRbZV19KSk7ZnVuY3Rpb24gY3JlYXRlRXhwZWN0ZWRNb2RpZmllcnMoZSl7dmFyIHQ9ZT9udWxsOmZhbHNlO3JldHVybnthbHRLZXk6dCxjdHJsS2V5OnQsbWV0YUtleTp0LHNoaWZ0S2V5OnR9fWZ1bmN0aW9uIHJlc29sdmVNb2RpZmllcnMoZSl7dmFyIHQ9ZS5pbmRleE9mKFwiKlwiKSE9PS0xO3ZhciByPWNyZWF0ZUV4cGVjdGVkTW9kaWZpZXJzKHQpO2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZT09PVwiKlwiKXtyZXR1cm59dmFyIHQ9dHJ1ZTt2YXIgbj1lLnNsaWNlKDAsMSk7aWYobj09PVwiP1wiKXt0PW51bGx9ZWxzZSBpZihuPT09XCIhXCIpe3Q9ZmFsc2V9aWYodCE9PXRydWUpe2U9ZS5zbGljZSgxKX12YXIgYT1odFtlXTtpZighYSl7dGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBtb2RpZmllciBcIicrZSsnXCInKX1yW2FdPXR9KSk7cmV0dXJuIHJ9ZnVuY3Rpb24gcmVzb2x2ZUtleShlKXt2YXIgdD1jdFtlXXx8cGFyc2VJbnQoZSwxMCk7aWYoIXR8fHR5cGVvZiB0IT09XCJudW1iZXJcInx8aXNOYU4odCkpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24ga2V5IFwiJytlKydcIicpfXJldHVyblt0XS5jb25jYXQoY3QuX2FsaWFzW3RdfHxbXSl9ZnVuY3Rpb24gbWF0Y2hNb2RpZmllcnMoZSx0KXtyZXR1cm4heHQuc29tZSgoZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiBlW3JdPT09XCJib29sZWFuXCImJkJvb2xlYW4odFtyXSkhPT1lW3JdfSkpfWZ1bmN0aW9uIGtleUJpbmRpbmcoZSl7cmV0dXJuIGUuc3BsaXQoL1xccysvKS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoXCIrXCIpO3ZhciByPXJlc29sdmVNb2RpZmllcnModC5zbGljZSgwLC0xKSk7dmFyIG49cmVzb2x2ZUtleSh0LnNsaWNlKC0xKSk7cmV0dXJue2tleUNvZGVzOm4sbW9kaWZpZXJzOnIsbWF0Y2hNb2RpZmllcnM6bWF0Y2hNb2RpZmllcnMuYmluZChudWxsLHIpfX0pKX1mdW5jdGlvbiBnZXRQYXJlbnRDb21wYXJhdG9yKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnt9LHQ9ZS5wYXJlbnQscj1lLmVsZW1lbnQsbj1lLmluY2x1ZGVTZWxmO2lmKHQpe3JldHVybiBmdW5jdGlvbiBpc0NoaWxkT2YoZSl7cmV0dXJuIEJvb2xlYW4obiYmZT09PXR8fHQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkpfX1lbHNlIGlmKHIpe3JldHVybiBmdW5jdGlvbiBpc1BhcmVudE9mKGUpe3JldHVybiBCb29sZWFuKG4mJnI9PT1lfHxlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKX19dGhyb3cgbmV3IFR5cGVFcnJvcihcInV0aWwvY29tcGFyZS1wb3NpdGlvbiNnZXRQYXJlbnRDb21wYXJhdG9yIHJlcXVpcmVkIGVpdGhlciBvcHRpb25zLnBhcmVudCBvciBvcHRpb25zLmVsZW1lbnRcIil9ZnVuY3Rpb24gd2hlbktleSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp7fTt2YXIgdD17fTt2YXIgcj1ub2RlQXJyYXkoZS5jb250ZXh0KVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2RlbGV0ZSBlLmNvbnRleHQ7dmFyIG49bm9kZUFycmF5KGUuZmlsdGVyKTtkZWxldGUgZS5maWx0ZXI7dmFyIGE9T2JqZWN0LmtleXMoZSk7aWYoIWEubGVuZ3RoKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwid2hlbi9rZXkgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIG9wdGlvbiBrZXlcIil9dmFyIG89ZnVuY3Rpb24gcmVnaXN0ZXJCaW5kaW5nKGUpe2Uua2V5Q29kZXMuZm9yRWFjaCgoZnVuY3Rpb24ocil7aWYoIXRbcl0pe3Rbcl09W119dFtyXS5wdXNoKGUpfSkpfTthLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiBlW3RdIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCd3aGVuL2tleSByZXF1aXJlcyBvcHRpb25bXCInK3QrJ1wiXSB0byBiZSBhIGZ1bmN0aW9uJyl9dmFyIHI9ZnVuY3Rpb24gYWRkQ2FsbGJhY2socil7ci5jYWxsYmFjaz1lW3RdO3JldHVybiByfTtrZXlCaW5kaW5nKHQpLm1hcChyKS5mb3JFYWNoKG8pfSkpO3ZhciBpPWZ1bmN0aW9uIGhhbmRsZUtleURvd24oZSl7aWYoZS5kZWZhdWx0UHJldmVudGVkKXtyZXR1cm59aWYobi5sZW5ndGgpe3ZhciBhPWdldFBhcmVudENvbXBhcmF0b3Ioe2VsZW1lbnQ6ZS50YXJnZXQsaW5jbHVkZVNlbGY6dHJ1ZX0pO2lmKG4uc29tZShhKSl7cmV0dXJufX12YXIgbz1lLmtleUNvZGV8fGUud2hpY2g7aWYoIXRbb10pe3JldHVybn10W29dLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKCF0Lm1hdGNoTW9kaWZpZXJzKGUpKXtyZXR1cm59dC5jYWxsYmFjay5jYWxsKHIsZSxsKX0pKX07ci5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGksZmFsc2UpO3ZhciBsPWZ1bmN0aW9uIGRpc2VuZ2FnZSgpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixpLGZhbHNlKX07cmV0dXJue2Rpc2VuZ2FnZTpsfX1mdW5jdGlvbiBtYWludGFpbl90YWJfZm9jdXMoe2NvbnRleHQ6ZX09e30pe2lmKCFlKXtlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudH1xdWVyeVRhYnNlcXVlbmNlKCk7cmV0dXJuIHdoZW5LZXkoe1wiP2FsdCs/c2hpZnQrdGFiXCI6ZnVuY3Rpb24gYWx0U2hpZnRUYWIodCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciByPXF1ZXJ5VGFic2VxdWVuY2Uoe2NvbnRleHQ6ZX0pO3ZhciBuPXQuc2hpZnRLZXk7dmFyIGE9clswXTt2YXIgbz1yW3IubGVuZ3RoLTFdO3ZhciBpPW4/YTpvO3ZhciBsPW4/bzphO2lmKGlzQWN0aXZlRWxlbWVudChpKSl7bC5mb2N1cygpO3JldHVybn12YXIgcz12b2lkIDA7dmFyIHU9ci5zb21lKChmdW5jdGlvbihlLHQpe2lmKCFpc0FjdGl2ZUVsZW1lbnQoZSkpe3JldHVybiBmYWxzZX1zPXQ7cmV0dXJuIHRydWV9KSk7aWYoIXUpe2EuZm9jdXMoKTtyZXR1cm59dmFyIGM9bj8tMToxO3JbcytjXS5mb2N1cygpfX0pfWxldCB5dDtsZXQgRXQ7bGV0IHd0PTA7ZnVuY3Rpb24gbG9jaygpe3NldFRpbWVvdXQoKCgpPT57aWYod3QrKz4wKXtyZXR1cm59Y29uc3QgZT13aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7aWYoZT4wKXt5dD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodDtkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1gJHtlfXB4YH1FdD1kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O2RvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9XCJoaWRkZW5cIn0pKX1mdW5jdGlvbiB1bmxvY2soKXtzZXRUaW1lb3V0KCgoKT0+e2lmKHd0PT09MHx8LS13dCE9PTApe3JldHVybn1pZih5dCE9PXVuZGVmaW5lZCl7ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9eXQ7eXQ9dW5kZWZpbmVkfWlmKEV0IT09dW5kZWZpbmVkKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PUV0O0V0PXVuZGVmaW5lZH19KSl9Y29uc3Qga3Q9ZnVuY3Rpb24gT3ZlcmxheSh7Y2xhc3NOYW1lOmUsY2hpbGRyZW46dCxmaXhlZDpyfSl7bS51c2VFZmZlY3QoKCgpPT57bG9jaygpO3JldHVybigpPT57dW5sb2NrKCl9fSksW10pO2NvbnN0W24sYV09bS51c2VTdGF0ZShudWxsKTtjb25zdCBvPW0udXNlQ2FsbGJhY2soKGU9PnthKGUpfSksW10pO20udXNlRWZmZWN0KCgoKT0+e2lmKG49PW51bGwpe3JldHVybn1jb25zdCBlPW1haW50YWluX3RhYl9mb2N1cyh7Y29udGV4dDpufSk7cmV0dXJuKCk9PntlLmRpc2VuZ2FnZSgpfX0pLFtuXSk7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XCI6dHJ1ZSxjbGFzc05hbWU6ZSxyZWY6b30sbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXCI6dHJ1ZSxcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZFwiOnI/dHJ1ZTp1bmRlZmluZWR9KSx0KX07dmFyIFN0PXJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvYW5zZXJcIik7dmFyIFR0PWUubihTdCk7Y29uc3QgQ3Q9ZnVuY3Rpb24gVGVybWluYWwoe2NvbnRlbnQ6ZX0pe2NvbnN0IHQ9bS51c2VNZW1vKCgoKT0+VHQoKS5hbnNpVG9Kc29uKGUse2pzb246dHJ1ZSx1c2VfY2xhc3Nlczp0cnVlLHJlbW92ZV9lbXB0eTp0cnVlfSkpLFtlXSk7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLXRlcm1pbmFsXCI6dHJ1ZX0sbS5jcmVhdGVFbGVtZW50KFwicHJlXCIsbnVsbCx0Lm1hcCgoKGUsdCk9Pm0uY3JlYXRlRWxlbWVudChcInNwYW5cIix7a2V5OmB0ZXJtaW5hbC1lbnRyeS0ke3R9YCxzdHlsZTp7Y29sb3I6ZS5mZz9gdmFyKC0tY29sb3ItJHtlLmZnfSlgOnVuZGVmaW5lZCwuLi5lLmRlY29yYXRpb249PT1cImJvbGRcIj97Zm9udFdlaWdodDo4MDB9OmUuZGVjb3JhdGlvbj09PVwiaXRhbGljXCI/e2ZvbnRTdHlsZTpcIml0YWxpY1wifTp1bmRlZmluZWR9fSxlLmNvbnRlbnQpKSkpKX07Y29uc3QganQ9ZnVuY3Rpb24gQnVpbGRFcnJvcih7bWVzc2FnZTplfSl7Y29uc3QgdD1tLnVzZUNhbGxiYWNrKCgoKT0+e30pLFtdKTtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KGt0LHtmaXhlZDp0cnVlfSxtLmNyZWF0ZUVsZW1lbnQodix7dHlwZTpcImVycm9yXCIsXCJhcmlhLWxhYmVsbGVkYnlcIjpcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2xhYmVsXCIsXCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9kZXNjXCIsb25DbG9zZTp0fSxtLmNyZWF0ZUVsZW1lbnQoeCxudWxsLG0uY3JlYXRlRWxlbWVudCh5LHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWhlYWRlclwifSxtLmNyZWF0ZUVsZW1lbnQoXCJoNFwiLHtpZDpcIm5leHRqc19fY29udGFpbmVyX2J1aWxkX2Vycm9yX2xhYmVsXCJ9LFwiRmFpbGVkIHRvIGNvbXBpbGVcIikpLG0uY3JlYXRlRWxlbWVudChoLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWJvZHlcIn0sbS5jcmVhdGVFbGVtZW50KEN0LHtjb250ZW50OmV9KSxtLmNyZWF0ZUVsZW1lbnQoXCJmb290ZXJcIixudWxsLG0uY3JlYXRlRWxlbWVudChcInBcIix7aWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9idWlsZF9lcnJvcl9kZXNjXCJ9LG0uY3JlYXRlRWxlbWVudChcInNtYWxsXCIsbnVsbCxcIlRoaXMgZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzIGFuZCBjYW4gb25seSBiZSBkaXNtaXNzZWQgYnkgZml4aW5nIHRoZSBlcnJvci5cIikpKSkpKSl9O2NvbnN0IEF0PW5vb3BgXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLWhlYWRlciA+IGg0IHtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItYm9keSBmb290ZXIge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNpemUtZ2FwKTtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1ib2R5IGZvb3RlciBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci1ib2R5IHNtYWxsIHtcbiAgICBjb2xvcjogIzc1NzU3NTtcbiAgfVxuYDtjb25zdCBDbG9zZUljb249KCk9Pm0uY3JlYXRlRWxlbWVudChcInN2Z1wiLHt3aWR0aDpcIjI0XCIsaGVpZ2h0OlwiMjRcIix2aWV3Qm94OlwiMCAwIDI0IDI0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LG0uY3JlYXRlRWxlbWVudChcInBhdGhcIix7ZDpcIk0xOCA2TDYgMThcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixzdHJva2VXaWR0aDpcIjJcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCJ9KSxtLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNNiA2TDE4IDE4XCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwifSkpO2NvbnN0IE90PWZ1bmN0aW9uIExlZnRSaWdodERpYWxvZ0hlYWRlcih7Y2hpbGRyZW46ZSxjbGFzc05hbWU6dCxwcmV2aW91czpyLG5leHQ6bixjbG9zZTphfSl7Y29uc3Qgbz1tLnVzZVJlZihudWxsKTtjb25zdCBpPW0udXNlUmVmKG51bGwpO2NvbnN0IGw9bS51c2VSZWYobnVsbCk7Y29uc3Rbcyx1XT1tLnVzZVN0YXRlKG51bGwpO2NvbnN0IGM9bS51c2VDYWxsYmFjaygoZT0+e3UoZSl9KSxbXSk7bS51c2VFZmZlY3QoKCgpPT57aWYocz09bnVsbCl7cmV0dXJufWNvbnN0IGU9cy5nZXRSb290Tm9kZSgpO2NvbnN0IHQ9c2VsZi5kb2N1bWVudDtmdW5jdGlvbiBoYW5kbGVyKHQpe2lmKHQua2V5PT09XCJBcnJvd0xlZnRcIil7dC5zdG9wUHJvcGFnYXRpb24oKTtpZihvLmN1cnJlbnQpe28uY3VycmVudC5mb2N1cygpfXImJnIoKX1lbHNlIGlmKHQua2V5PT09XCJBcnJvd1JpZ2h0XCIpe3Quc3RvcFByb3BhZ2F0aW9uKCk7aWYoaS5jdXJyZW50KXtpLmN1cnJlbnQuZm9jdXMoKX1uJiZuKCl9ZWxzZSBpZih0LmtleT09PVwiRXNjYXBlXCIpe3Quc3RvcFByb3BhZ2F0aW9uKCk7aWYoZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Qpe2NvbnN0IHQ9ZS5hY3RpdmVFbGVtZW50O2lmKHQmJnQhPT1sLmN1cnJlbnQmJnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7dC5ibHVyKCk7cmV0dXJufX1pZihhKXthKCl9fX1lLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaGFuZGxlcik7aWYoZSE9PXQpe3QuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixoYW5kbGVyKX1yZXR1cm4gZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsaGFuZGxlcik7aWYoZSE9PXQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixoYW5kbGVyKX19fSksW2EscyxuLHJdKTttLnVzZUVmZmVjdCgoKCk9PntpZihzPT1udWxsKXtyZXR1cm59Y29uc3QgZT1zLmdldFJvb3ROb2RlKCk7aWYoZSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3Qpe2NvbnN0IHQ9ZS5hY3RpdmVFbGVtZW50O2lmKHI9PW51bGwpe2lmKG8uY3VycmVudCYmdD09PW8uY3VycmVudCl7by5jdXJyZW50LmJsdXIoKX19ZWxzZSBpZihuPT1udWxsKXtpZihpLmN1cnJlbnQmJnQ9PT1pLmN1cnJlbnQpe2kuY3VycmVudC5ibHVyKCl9fX19KSxbcyxuLHJdKTtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRcIjp0cnVlLGNsYXNzTmFtZTp0fSxtLmNyZWF0ZUVsZW1lbnQoXCJuYXZcIix7cmVmOmN9LG0uY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLHtyZWY6byx0eXBlOlwiYnV0dG9uXCIsZGlzYWJsZWQ6cj09bnVsbD90cnVlOnVuZGVmaW5lZCxcImFyaWEtZGlzYWJsZWRcIjpyPT1udWxsP3RydWU6dW5kZWZpbmVkLG9uQ2xpY2s6cj8/dW5kZWZpbmVkfSxtLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIix7dmlld0JveDpcIjAgMCAxNCAxNFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxtLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNNi45OTk5NiAxLjE2NjY2TDEuMTY2NjMgNi45OTk5OUw2Ljk5OTk2IDEyLjgzMzNNMTIuODMzMyA2Ljk5OTk5SDEuOTk5OTZIMTIuODMzM1pcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixzdHJva2VXaWR0aDpcIjJcIixzdHJva2VMaW5lY2FwOlwicm91bmRcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCJ9KSkpLG0uY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLHtyZWY6aSx0eXBlOlwiYnV0dG9uXCIsZGlzYWJsZWQ6bj09bnVsbD90cnVlOnVuZGVmaW5lZCxcImFyaWEtZGlzYWJsZWRcIjpuPT1udWxsP3RydWU6dW5kZWZpbmVkLG9uQ2xpY2s6bj8/dW5kZWZpbmVkfSxtLmNyZWF0ZUVsZW1lbnQoXCJzdmdcIix7dmlld0JveDpcIjAgMCAxNCAxNFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxtLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNNi45OTk5NiAxLjE2NjY2TDEyLjgzMzMgNi45OTk5OUw2Ljk5OTk2IDEyLjgzMzNNMS4xNjY2MyA2Ljk5OTk5SDEySDEuMTY2NjNaXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwifSkpKSxcIsKgXCIsZSksYT9tLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1lcnJvcnMtZGlhbG9nLWxlZnQtcmlnaHQtY2xvc2UtYnV0dG9uXCI6dHJ1ZSxyZWY6bCx0eXBlOlwiYnV0dG9uXCIsb25DbGljazphLFwiYXJpYS1sYWJlbFwiOlwiQ2xvc2VcIn0sbS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9LG0uY3JlYXRlRWxlbWVudChDbG9zZUljb24sbnVsbCkpKTpudWxsKX07Y29uc3QgX3Q9bm9vcGBcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgd2lkdGg6IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSArIHZhcigtLXNpemUtZ2FwKSk7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4xKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2U7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbiA+IHN2ZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjIpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XG4gICAgY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuNCk7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZikgMCAwIHZhcigtLXNpemUtZ2FwLWhhbGYpO1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b246bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXNpemUtZ2FwLWhhbGYpIHZhcigtLXNpemUtZ2FwLWhhbGYpIDA7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgb3BhY2l0eTogMC40O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gYnV0dG9uOmxhc3Qtb2YtdHlwZTpob3ZlciB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5gO2NvbnN0IEl0PW5vb3BgXG4gIFtkYXRhLW5leHRqcy10b2FzdF0ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gICAgbGVmdDogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcbiAgICBtYXgtd2lkdGg6IDQyMHB4O1xuICAgIHotaW5kZXg6IDkwMDA7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNDQwcHgpIHtcbiAgICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcbiAgICAgIG1heC13aWR0aDogOTB2dztcbiAgICAgIGxlZnQ6IDV2dztcbiAgICB9XG4gIH1cblxuICBbZGF0YS1uZXh0anMtdG9hc3Qtd3JhcHBlcl0ge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgICBib3gtc2hhZG93OiAwcHggdmFyKC0tc2l6ZS1nYXAtZG91YmxlKSB2YXIoLS1zaXplLWdhcC1xdWFkKVxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgfVxuYDtjb25zdCBOdD1mdW5jdGlvbiBUb2FzdCh7b25DbGljazplLGNoaWxkcmVuOnQsY2xhc3NOYW1lOnJ9KXtyZXR1cm4gbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtdG9hc3RcIjp0cnVlLG9uQ2xpY2s6ZSxjbGFzc05hbWU6cn0sbS5jcmVhdGVFbGVtZW50KFwiZGl2XCIse1wiZGF0YS1uZXh0anMtdG9hc3Qtd3JhcHBlclwiOnRydWV9LHQpKX07dmFyIEZ0PXJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaVwiKTt2YXIgTHQ9ZS5uKEZ0KTtjb25zdCBEdD1mdW5jdGlvbiBDb2RlRnJhbWUoe3N0YWNrRnJhbWU6ZSxjb2RlRnJhbWU6dH0pe2NvbnN0IHI9bS51c2VNZW1vKCgoKT0+e2NvbnN0IGU9dC5zcGxpdCgvXFxyP1xcbi9nKTtjb25zdCByPWUubWFwKChlPT4vXj4/ICtcXGQrICtcXHwgWyBdKy8uZXhlYyhMdCgpKGUpKT09PW51bGw/bnVsbDovXj4/ICtcXGQrICtcXHwgKCAqKS8uZXhlYyhMdCgpKGUpKSkpLmZpbHRlcihCb29sZWFuKS5tYXAoKGU9PmUucG9wKCkpKS5yZWR1Y2UoKChlLHQpPT5pc05hTihlKT90Lmxlbmd0aDpNYXRoLm1pbihlLHQubGVuZ3RoKSksTmFOKTtpZihyPjEpe2NvbnN0IHQ9XCIgXCIucmVwZWF0KHIpO3JldHVybiBlLm1hcCgoKGUscik9Pn4ocj1lLmluZGV4T2YoXCJ8XCIpKT9lLnN1YnN0cmluZygwLHIpK2Uuc3Vic3RyaW5nKHIpLnJlcGxhY2UodCxcIlwiKTplKSkuam9pbihcIlxcblwiKX1yZXR1cm4gZS5qb2luKFwiXFxuXCIpfSksW3RdKTtjb25zdCBuPW0udXNlTWVtbygoKCk9PlR0KCkuYW5zaVRvSnNvbihyLHtqc29uOnRydWUsdXNlX2NsYXNzZXM6dHJ1ZSxyZW1vdmVfZW1wdHk6dHJ1ZX0pKSxbcl0pO2NvbnN0IGE9bS51c2VDYWxsYmFjaygoKCk9Pntjb25zdCB0PW5ldyBVUkxTZWFyY2hQYXJhbXM7Zm9yKGNvbnN0IHIgaW4gZSl7dC5hcHBlbmQociwoZVtyXT8/XCJcIikudG9TdHJpbmcoKSl9c2VsZi5mZXRjaChgJHtwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwifS9fX25leHRqc19sYXVuY2gtZWRpdG9yPyR7dC50b1N0cmluZygpfWApLnRoZW4oKCgpPT57fSksKCgpPT57Y29uc29sZS5lcnJvcihcIlRoZXJlIHdhcyBhbiBpc3N1ZSBvcGVuaW5nIHRoaXMgY29kZSBpbiB5b3VyIGVkaXRvci5cIil9KSl9KSxbZV0pO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb2RlZnJhbWVcIjp0cnVlfSxtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIixudWxsLG0uY3JlYXRlRWxlbWVudChcInBcIix7cm9sZTpcImxpbmtcIixvbkNsaWNrOmEsdGFiSW5kZXg6MSx0aXRsZTpcIkNsaWNrIHRvIG9wZW4gaW4geW91ciBlZGl0b3JcIn0sbS5jcmVhdGVFbGVtZW50KFwic3BhblwiLG51bGwsZ2V0RnJhbWVTb3VyY2UoZSksXCIgQCBcIixlLm1ldGhvZE5hbWUpLG0uY3JlYXRlRWxlbWVudChcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsdmlld0JveDpcIjAgMCAyNCAyNFwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwifSxtLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNlwifSksbS5jcmVhdGVFbGVtZW50KFwicG9seWxpbmVcIix7cG9pbnRzOlwiMTUgMyAyMSAzIDIxIDlcIn0pLG0uY3JlYXRlRWxlbWVudChcImxpbmVcIix7eDE6XCIxMFwiLHkxOlwiMTRcIix4MjpcIjIxXCIseTI6XCIzXCJ9KSkpKSxtLmNyZWF0ZUVsZW1lbnQoXCJwcmVcIixudWxsLG4ubWFwKCgoZSx0KT0+bS5jcmVhdGVFbGVtZW50KFwic3BhblwiLHtrZXk6YGZyYW1lLSR7dH1gLHN0eWxlOntjb2xvcjplLmZnP2B2YXIoLS1jb2xvci0ke2UuZmd9KWA6dW5kZWZpbmVkLC4uLmUuZGVjb3JhdGlvbj09PVwiYm9sZFwiP3tmb250V2VpZ2h0OjgwMH06ZS5kZWNvcmF0aW9uPT09XCJpdGFsaWNcIj97Zm9udFN0eWxlOlwiaXRhbGljXCJ9OnVuZGVmaW5lZH19LGUuY29udGVudCkpKSkpfTtjb25zdCBNdD1mdW5jdGlvbiBDYWxsU3RhY2tGcmFtZSh7ZnJhbWU6ZX0pe2NvbnN0IHQ9ZS5vcmlnaW5hbFN0YWNrRnJhbWU/P2Uuc291cmNlU3RhY2tGcmFtZTtjb25zdCByPUJvb2xlYW4oZS5vcmlnaW5hbENvZGVGcmFtZSk7Y29uc3Qgbj1tLnVzZUNhbGxiYWNrKCgoKT0+e2lmKCFyKXJldHVybjtjb25zdCBlPW5ldyBVUkxTZWFyY2hQYXJhbXM7Zm9yKGNvbnN0IHIgaW4gdCl7ZS5hcHBlbmQociwodFtyXT8/XCJcIikudG9TdHJpbmcoKSl9c2VsZi5mZXRjaChgJHtwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwifS9fX25leHRqc19sYXVuY2gtZWRpdG9yPyR7ZS50b1N0cmluZygpfWApLnRoZW4oKCgpPT57fSksKCgpPT57Y29uc29sZS5lcnJvcihcIlRoZXJlIHdhcyBhbiBpc3N1ZSBvcGVuaW5nIHRoaXMgY29kZSBpbiB5b3VyIGVkaXRvci5cIil9KSl9KSxbcix0XSk7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVcIjp0cnVlfSxtLmNyZWF0ZUVsZW1lbnQoXCJoNlwiLHtcImRhdGEtbmV4dGpzLWZyYW1lLWV4cGFuZGVkXCI6Qm9vbGVhbihlLmV4cGFuZGVkKX0sdC5tZXRob2ROYW1lKSxtLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIix7XCJkYXRhLWhhcy1zb3VyY2VcIjpyP1widHJ1ZVwiOnVuZGVmaW5lZCx0YWJJbmRleDpyPzEwOnVuZGVmaW5lZCxyb2xlOnI/XCJsaW5rXCI6dW5kZWZpbmVkLG9uQ2xpY2s6bix0aXRsZTpyP1wiQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvclwiOnVuZGVmaW5lZH0sbS5jcmVhdGVFbGVtZW50KFwic3BhblwiLG51bGwsZ2V0RnJhbWVTb3VyY2UodCkpLG0uY3JlYXRlRWxlbWVudChcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsdmlld0JveDpcIjAgMCAyNCAyNFwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwifSxtLmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIse2Q6XCJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNlwifSksbS5jcmVhdGVFbGVtZW50KFwicG9seWxpbmVcIix7cG9pbnRzOlwiMTUgMyAyMSAzIDIxIDlcIn0pLG0uY3JlYXRlRWxlbWVudChcImxpbmVcIix7eDE6XCIxMFwiLHkxOlwiMTRcIix4MjpcIjIxXCIseTI6XCIzXCJ9KSkpKX07Y29uc3QgUnQ9ZnVuY3Rpb24gUnVudGltZUVycm9yKHtlcnJvcjplfSl7Y29uc3QgdD1tLnVzZU1lbW8oKCgpPT5lLmZyYW1lcy5maW5kSW5kZXgoKGU9PmUuZXhwYW5kZWQmJkJvb2xlYW4oZS5vcmlnaW5hbENvZGVGcmFtZSkmJkJvb2xlYW4oZS5vcmlnaW5hbFN0YWNrRnJhbWUpKSkpLFtlLmZyYW1lc10pO2NvbnN0IHI9bS51c2VNZW1vKCgoKT0+ZS5mcmFtZXNbdF0/P251bGwpLFtlLmZyYW1lcyx0XSk7Y29uc3Qgbj1tLnVzZU1lbW8oKCgpPT50PDA/W106ZS5mcmFtZXMuc2xpY2UoMCx0KSksW2UuZnJhbWVzLHRdKTtjb25zdFthLG9dPW0udXNlU3RhdGUocj09bnVsbCk7Y29uc3QgaT1tLnVzZUNhbGxiYWNrKCgoKT0+e28oKGU9PiFlKSl9KSxbXSk7Y29uc3QgbD1tLnVzZU1lbW8oKCgpPT5uLmZpbHRlcigoZT0+ZS5leHBhbmRlZHx8YSkpKSxbYSxuXSk7Y29uc3Qgcz1tLnVzZU1lbW8oKCgpPT5lLmZyYW1lcy5zbGljZSh0KzEpKSxbZS5mcmFtZXMsdF0pO2NvbnN0IHU9bS51c2VNZW1vKCgoKT0+cy5maWx0ZXIoKGU9PmUuZXhwYW5kZWR8fGEpKSksW2Esc10pO2NvbnN0IGM9bS51c2VNZW1vKCgoKT0+cy5sZW5ndGghPT11Lmxlbmd0aHx8YSYmciE9bnVsbCksW2Escy5sZW5ndGgscix1Lmxlbmd0aF0pO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCxudWxsLHI/bS5jcmVhdGVFbGVtZW50KG0uRnJhZ21lbnQsbnVsbCxtLmNyZWF0ZUVsZW1lbnQoXCJoNVwiLG51bGwsXCJTb3VyY2VcIiksbC5tYXAoKChlLHQpPT5tLmNyZWF0ZUVsZW1lbnQoTXQse2tleTpgbGVhZGluZy1mcmFtZS0ke3R9LSR7YX1gLGZyYW1lOmV9KSkpLG0uY3JlYXRlRWxlbWVudChEdCx7c3RhY2tGcmFtZTpyLm9yaWdpbmFsU3RhY2tGcmFtZSxjb2RlRnJhbWU6ci5vcmlnaW5hbENvZGVGcmFtZX0pKTp1bmRlZmluZWQsdS5sZW5ndGg/bS5jcmVhdGVFbGVtZW50KG0uRnJhZ21lbnQsbnVsbCxtLmNyZWF0ZUVsZW1lbnQoXCJoNVwiLG51bGwsXCJDYWxsIFN0YWNrXCIpLHUubWFwKCgoZSx0KT0+bS5jcmVhdGVFbGVtZW50KE10LHtrZXk6YGNhbGwtc3RhY2stJHt0fS0ke2F9YCxmcmFtZTplfSkpKSk6dW5kZWZpbmVkLGM/bS5jcmVhdGVFbGVtZW50KG0uRnJhZ21lbnQsbnVsbCxtLmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIix7dGFiSW5kZXg6MTAsXCJkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29sbGFwc2VkLWFjdGlvblwiOnRydWUsdHlwZTpcImJ1dHRvblwiLG9uQ2xpY2s6aX0sYT9cIkhpZGVcIjpcIlNob3dcIixcIiBjb2xsYXBzZWQgZnJhbWVzXCIpKTp1bmRlZmluZWQpfTtjb25zdCB6dD1ub29wYFxuICBidXR0b25bZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvbGxhcHNlZC1hY3Rpb25dIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb250LWJpZ2dlcik7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMyk7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGg2IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICAgIGNvbG9yOiAjMjIyO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGg2W2RhdGEtbmV4dGpzLWZyYW1lLWV4cGFuZGVkPSdmYWxzZSddIHtcbiAgICBjb2xvcjogIzY2NjtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBjb2xvcjogIzk5OTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYgPiBzdmcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXApO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV06aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXSA+IHN2ZyB7XG4gICAgZGlzcGxheTogdW5zZXQ7XG4gIH1cbmA7ZnVuY3Rpb24gZ2V0RXJyb3JTaWduYXR1cmUoZSl7Y29uc3R7ZXZlbnQ6dH09ZTtzd2l0Y2godC50eXBlKXtjYXNlIGk6Y2FzZSBsOntyZXR1cm5gJHt0LnJlYXNvbi5uYW1lfTo6JHt0LnJlYXNvbi5tZXNzYWdlfTo6JHt0LnJlYXNvbi5zdGFja31gfWRlZmF1bHQ6e319Y29uc3Qgcj10O3JldHVyblwiXCJ9Y29uc3QgQnQ9ZnVuY3Rpb24gSG90bGlua2VkVGV4dChlKXtjb25zdHt0ZXh0OnR9PWU7Y29uc3Qgcj0vaHR0cHM/OlxcL1xcL1teXFxzLyQuPyNdLlteXFxzXCJdKi9pO3JldHVybiBtLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCxudWxsLHIudGVzdCh0KT90LnNwbGl0KFwiIFwiKS5tYXAoKChlLHQsbik9PntpZihyLnRlc3QoZSkpe3JldHVybiBtLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCx7a2V5OmBsaW5rLSR7dH1gfSxtLmNyZWF0ZUVsZW1lbnQoXCJhXCIse2hyZWY6ZSx0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub3JlZmVycmVyIG5vb3BlbmVyXCJ9LGUpLHQ9PT1uLmxlbmd0aC0xP1wiXCI6XCIgXCIpfXJldHVybiB0PT09bi5sZW5ndGgtMT9tLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCx7a2V5OmB0ZXh0LSR7dH1gfSxlKTptLmNyZWF0ZUVsZW1lbnQobS5GcmFnbWVudCx7a2V5OmB0ZXh0LSR7dH1gfSxlLFwiIFwiKX0pKTp0KX07Y29uc3QgSHQ9ZnVuY3Rpb24gRXJyb3JzKHtlcnJvcnM6ZX0pe2NvbnN0W3Qscl09bS51c2VTdGF0ZSh7fSk7Y29uc3RbbixhXT1tLnVzZU1lbW8oKCgpPT57bGV0IHI9W107bGV0IG49bnVsbDtmb3IobGV0IGE9MDthPGUubGVuZ3RoOysrYSl7Y29uc3Qgbz1lW2FdO2NvbnN0e2lkOml9PW87aWYoaSBpbiB0KXtyLnB1c2godFtpXSk7Y29udGludWV9aWYoYT4wKXtjb25zdCB0PWVbYS0xXTtpZihnZXRFcnJvclNpZ25hdHVyZSh0KT09PWdldEVycm9yU2lnbmF0dXJlKG8pKXtjb250aW51ZX19bj1vO2JyZWFrfXJldHVybltyLG5dfSksW2UsdF0pO2NvbnN0IG89bS51c2VNZW1vKCgoKT0+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 shadowHost.style[verticalProperty] = \"10px\";\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsa0JBQWUsR0FBR0c7QUFDbEIsSUFBSUMsYUFBYUMsbUJBQU9BLENBQUMsaUdBQTJCO0FBQ3BELFNBQVNGLHVCQUF1QkcsY0FBYyxFQUE2QjtRQUEzQkMsV0FBQUEsaUVBQVcsY0FBYztJQUNyRSxNQUFNQyxhQUFhQyxTQUFTQyxhQUFhLENBQUM7SUFDMUMsTUFBTSxDQUFDQyxrQkFBa0JDLG1CQUFtQixHQUFHTCxTQUFTTSxLQUFLLENBQUM7SUFDOURMLFdBQVdNLEVBQUUsR0FBRztJQUNoQixnRUFBZ0U7SUFDaEVOLFdBQVdPLEtBQUssQ0FBQ1IsUUFBUSxHQUFHO0lBQzVCQyxXQUFXTyxLQUFLLENBQUNKLGlCQUFpQixHQUFHO0lBQ3JDSCxXQUFXTyxLQUFLLENBQUNILG1CQUFtQixHQUFHO0lBQ3ZDSixXQUFXTyxLQUFLLENBQUNDLEtBQUssR0FBRztJQUN6QlIsV0FBV08sS0FBSyxDQUFDRSxNQUFNLEdBQUc7SUFDMUJULFdBQVdPLEtBQUssQ0FBQ0csTUFBTSxHQUFHO0lBQzFCVCxTQUFTVSxJQUFJLENBQUNDLFdBQVcsQ0FBQ1o7SUFDMUIsSUFBSWE7SUFDSixJQUFJQyxTQUFTO0lBQ2IsSUFBSWQsV0FBV2UsWUFBWSxFQUFFO1FBQ3pCRixhQUFhYixXQUFXZSxZQUFZLENBQUM7WUFDakNDLE1BQU07UUFDVjtJQUNKLE9BQU87UUFDSCxpRUFBaUU7UUFDakUsMkRBQTJEO1FBQzNELHVCQUF1QjtRQUN2QkgsYUFBYWI7UUFDYmMsU0FBUztJQUNiLENBQUM7SUFDRCxZQUFZO0lBQ1osTUFBTUcsWUFBWUMsZ0JBQWdCSjtJQUNsQ0QsV0FBV0QsV0FBVyxDQUFDSztJQUN2QixNQUFNO0lBQ04sTUFBTUUsTUFBTUMsVUFBVU4sUUFBUTtRQUMxQlY7UUFDQUQ7SUFDSjtJQUNBVSxXQUFXRCxXQUFXLENBQUNPO0lBQ3ZCLFFBQVE7SUFDUixJQUFJRSxZQUFZLEtBQUs7SUFDckIsSUFBSUMsYUFBYSxLQUFLO0lBQ3RCLElBQUlDLFlBQVksSUFBSTtJQUNwQixnQkFBZ0I7SUFDZixJQUFHM0IsVUFBVSxFQUFFNEIsa0JBQWtCLENBQUMsQ0FBQ0MsUUFBUTtRQUN4Qyw4QkFBOEI7UUFDOUIsSUFBSUEsTUFBTUMsSUFBSSxLQUFLLGdCQUFnQjtZQUMvQjtRQUNKLENBQUM7UUFDRCxJQUFJO1lBQ0FDLGNBQWNGO1FBQ2xCLEVBQUUsT0FBT0csR0FBRyxDQUFDO0lBQ2pCO0lBQ0EsU0FBU0QsY0FBY0YsS0FBSyxFQUFFO1FBQzFCLE1BQU1JLE1BQU0sT0FBT0osVUFBVSxXQUFXO1lBQ3BDSyxRQUFRTDtRQUNaLElBQUlNLEtBQUtDLEtBQUssQ0FBQ1AsTUFBTUMsSUFBSSxDQUFDO1FBQzFCLHdDQUF3QztRQUN4QyxPQUFPRyxJQUFJQyxNQUFNO1lBQ2IsS0FBSztnQkFDRFAsYUFBYVUsYUFBYVY7Z0JBQzFCRixZQUFZLElBQUk7Z0JBQ2hCQyxhQUFhLElBQUk7Z0JBQ2pCWTtnQkFDQSxLQUFNO1lBQ1YsS0FBSztZQUNMLEtBQUs7Z0JBQ0RaLGFBQWEsS0FBSztnQkFDbEIsK0NBQStDO2dCQUMvQ0MsWUFBWVksV0FBVyxJQUFJO29CQUN2QmQsWUFBWSxLQUFLO29CQUNqQmE7Z0JBQ0osR0FBRztnQkFDSEE7Z0JBQ0EsS0FBTTtRQUNkO0lBQ0o7SUFDQXBDLGVBQWU2QjtJQUNmLFNBQVNPLGtCQUFrQjtRQUN2QixJQUFJWixZQUFZO1lBQ1pMLFVBQVVtQixTQUFTLENBQUNDLEdBQUcsQ0FBQyxHQUFVLE9BQVB2QixRQUFPO1FBQ3RDLE9BQU87WUFDSEcsVUFBVW1CLFNBQVMsQ0FBQ0UsTUFBTSxDQUFDLEdBQVUsT0FBUHhCLFFBQU87UUFDekMsQ0FBQztRQUNELElBQUlPLFdBQVc7WUFDWEosVUFBVW1CLFNBQVMsQ0FBQ0MsR0FBRyxDQUFDLEdBQVUsT0FBUHZCLFFBQU87UUFDdEMsT0FBTztZQUNIRyxVQUFVbUIsU0FBUyxDQUFDRSxNQUFNLENBQUMsR0FBVSxPQUFQeEIsUUFBTztRQUN6QyxDQUFDO0lBQ0w7QUFDSjtBQUNBLFNBQVNJLGdCQUFnQkosTUFBTSxFQUFFO0lBQzdCLE1BQU1HLFlBQVloQixTQUFTQyxhQUFhLENBQUM7SUFDekNlLFVBQVVYLEVBQUUsR0FBRyxHQUFVLE9BQVBRLFFBQU87SUFDekJHLFVBQVVzQixTQUFTLEdBQUcsa0JBU1J6QixPQVJIQSxRQUFPLG1PQWNMQSxPQU5DQSxRQUFPLGdOQU1zQ0EsT0FBOUNBLFFBQU8seUNBQThDLE9BQVBBLFFBQU87SUFNbEUsT0FBT0c7QUFDWDtBQUNBLFNBQVNHLFVBQVVOLE1BQU0sRUFBRSxLQUEwQyxFQUFFO1FBQTVDLEVBQUVWLG1CQUFrQixFQUFHRCxpQkFBZ0IsRUFBRyxHQUExQztJQUN2QixNQUFNZ0IsTUFBTWxCLFNBQVNDLGFBQWEsQ0FBQztJQUNuQ2lCLElBQUlxQixXQUFXLEdBQUcsVUFHZHJDLE9BRkRXLFFBQU8sa0RBR05WLE9BREFELGtCQUFpQixtQkFtQmNBLE9BbEIvQkMsb0JBQW1CLHVlQW1CUlUsT0FEb0JYLGtCQUFpQixrQ0FJakRXLE9BSFlBLFFBQU8sNkNBR0FBLE9BQW5CQSxRQUFPLGNBSVBBLE9BSm1CQSxRQUFPLG1EQUlQQSxPQUFuQkEsUUFBTyxjQUNOWCxPQURrQlcsUUFBTyxzQkFLMUJBLE9BSkNYLGtCQUFpQiw4Q0FTbEJXLE9BTEFBLFFBQU8sMkVBVVBBLE9BTEFBLFFBQU8saUZBTUtBLE9BRFpBLFFBQU8sbUNBSUdBLE9BSEVBLFFBQU8sc0VBS2hCWCxPQUZPVyxRQUFPLHFDQU1kWCxPQUpBQSxrQkFBaUIsK0RBU1ZXLE9BTFBYLGtCQUFpQixtRUFLSCxPQUFQVyxRQUFPO0lBVXBCLE9BQU9LO0FBQ1g7QUFFQSxJQUFJLENBQUMsT0FBTzNCLFFBQVFFLE9BQU8sS0FBSyxjQUFlLE9BQU9GLFFBQVFFLE9BQU8sS0FBSyxZQUFZRixRQUFRRSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9GLFFBQVFFLE9BQU8sQ0FBQytDLFVBQVUsS0FBSyxhQUFhO0lBQ3JLbkQsT0FBT0MsY0FBYyxDQUFDQyxRQUFRRSxPQUFPLEVBQUUsY0FBYztRQUFFRCxPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT29ELE1BQU0sQ0FBQ2xELFFBQVFFLE9BQU8sRUFBRUY7SUFDL0JtRCxPQUFPbkQsT0FBTyxHQUFHQSxRQUFRRSxPQUFPO0FBQ2xDLENBQUMsQ0FFRCw2Q0FBNkMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2Rldi1idWlsZC13YXRjaGVyLmpzPzdiMzQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBpbml0aWFsaXplQnVpbGRXYXRjaGVyO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi9lcnJvci1vdmVybGF5L3dlYnNvY2tldFwiKTtcbmZ1bmN0aW9uIGluaXRpYWxpemVCdWlsZFdhdGNoZXIodG9nZ2xlQ2FsbGJhY2ssIHBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCcpIHtcbiAgICBjb25zdCBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgY29uc3QgW3ZlcnRpY2FsUHJvcGVydHksIGhvcml6b250YWxQcm9wZXJ0eV0gPSBwb3NpdGlvbi5zcGxpdCgnLScpO1xuICAgIHNoYWRvd0hvc3QuaWQgPSAnX19uZXh0LWJ1aWxkLXdhdGNoZXInO1xuICAgIC8vIE1ha2Ugc3VyZSBjb250YWluZXIgaXMgZml4ZWQgYW5kIG9uIGEgaGlnaCB6SW5kZXggc28gaXQgc2hvd3NcbiAgICBzaGFkb3dIb3N0LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICBzaGFkb3dIb3N0LnN0eWxlW3ZlcnRpY2FsUHJvcGVydHldID0gJzEwcHgnO1xuICAgIHNoYWRvd0hvc3Quc3R5bGVbaG9yaXpvbnRhbFByb3BlcnR5XSA9ICcyMHB4JztcbiAgICBzaGFkb3dIb3N0LnN0eWxlLndpZHRoID0gMDtcbiAgICBzaGFkb3dIb3N0LnN0eWxlLmhlaWdodCA9IDA7XG4gICAgc2hhZG93SG9zdC5zdHlsZS56SW5kZXggPSA5OTk5OTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpO1xuICAgIGxldCBzaGFkb3dSb290O1xuICAgIGxldCBwcmVmaXggPSAnJztcbiAgICBpZiAoc2hhZG93SG9zdC5hdHRhY2hTaGFkb3cpIHtcbiAgICAgICAgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHtcbiAgICAgICAgICAgIG1vZGU6ICdvcGVuJ1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiBhdHRhY2hTaGFkb3cgaXMgdW5kZWZpbmVkIHRoZW4gdGhlIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydFxuICAgICAgICAvLyB0aGUgU2hhZG93IERPTSwgd2UgbmVlZCB0byBwcmVmaXggYWxsIHRoZSBuYW1lcyBzbyB0aGVyZVxuICAgICAgICAvLyB3aWxsIGJlIG5vIGNvbmZsaWN0c1xuICAgICAgICBzaGFkb3dSb290ID0gc2hhZG93SG9zdDtcbiAgICAgICAgcHJlZml4ID0gJ19fbmV4dC1idWlsZC13YXRjaGVyLSc7XG4gICAgfVxuICAgIC8vIENvbnRhaW5lclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNyZWF0ZUNvbnRhaW5lcihwcmVmaXgpO1xuICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcbiAgICAvLyBDU1NcbiAgICBjb25zdCBjc3MgPSBjcmVhdGVDc3MocHJlZml4LCB7XG4gICAgICAgIGhvcml6b250YWxQcm9wZXJ0eSxcbiAgICAgICAgdmVydGljYWxQcm9wZXJ0eVxuICAgIH0pO1xuICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY3NzKTtcbiAgICAvLyBTdGF0ZVxuICAgIGxldCBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBsZXQgaXNCdWlsZGluZyA9IGZhbHNlO1xuICAgIGxldCB0aW1lb3V0SWQgPSBudWxsO1xuICAgIC8vIEhhbmRsZSBldmVudHNcbiAgICAoMCwgX3dlYnNvY2tldCkuYWRkTWVzc2FnZUxpc3RlbmVyKChldmVudCk9PntcbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgaGVhcnRiZWF0IGV2ZW50XG4gICAgICAgIGlmIChldmVudC5kYXRhID09PSAnXFx1RDgzRFxcdURDOTMnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGhhbmRsZU1lc3NhZ2UoZXZlbnQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZlbnQpIHtcbiAgICAgICAgY29uc3Qgb2JqID0gdHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJyA/IHtcbiAgICAgICAgICAgIGFjdGlvbjogZXZlbnRcbiAgICAgICAgfSA6IEpTT04ucGFyc2UoZXZlbnQuZGF0YSk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2VcbiAgICAgICAgc3dpdGNoKG9iai5hY3Rpb24pe1xuICAgICAgICAgICAgY2FzZSAnYnVpbGRpbmcnOlxuICAgICAgICAgICAgICAgIHRpbWVvdXRJZCAmJiBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgICAgICAgICBpc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlzQnVpbGRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbnRhaW5lcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYnVpbHQnOlxuICAgICAgICAgICAgY2FzZSAnc3luYyc6XG4gICAgICAgICAgICAgICAgaXNCdWlsZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIFdhaXQgZm9yIHRoZSBmYWRlIG91dCB0cmFuc2l0aW9uIHRvIGNvbXBsZXRlXG4gICAgICAgICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29udGFpbmVyKCk7XG4gICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICB1cGRhdGVDb250YWluZXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICB0b2dnbGVDYWxsYmFjayhoYW5kbGVNZXNzYWdlKTtcbiAgICBmdW5jdGlvbiB1cGRhdGVDb250YWluZXIoKSB7XG4gICAgICAgIGlmIChpc0J1aWxkaW5nKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChgJHtwcmVmaXh9YnVpbGRpbmdgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKGAke3ByZWZpeH1idWlsZGluZ2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGAke3ByZWZpeH12aXNpYmxlYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZShgJHtwcmVmaXh9dmlzaWJsZWApO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlQ29udGFpbmVyKHByZWZpeCkge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNvbnRhaW5lci5pZCA9IGAke3ByZWZpeH1jb250YWluZXJgO1xuICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBgXG4gICAgPGRpdiBpZD1cIiR7cHJlZml4fWljb24td3JhcHBlclwiPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDIyNiAyMDBcIj5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgPGxpbmVhckdyYWRpZW50XG4gICAgICAgICAgICB4MT1cIjExNC43MjA3NzUlXCJcbiAgICAgICAgICAgIHkxPVwiMTgxLjI4MzI0NSVcIlxuICAgICAgICAgICAgeDI9XCIzOS41Mzk5MzA2JVwiXG4gICAgICAgICAgICB5Mj1cIjEwMCVcIlxuICAgICAgICAgICAgaWQ9XCIke3ByZWZpeH1saW5lYXItZ3JhZGllbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjMDAwMDAwXCIgb2Zmc2V0PVwiMCVcIiAvPlxuICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiNGRkZGRkZcIiBvZmZzZXQ9XCIxMDAlXCIgLz5cbiAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICA8L2RlZnM+XG4gICAgICAgIDxnIGlkPVwiJHtwcmVmaXh9aWNvbi1ncm91cFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwidXJsKCMke3ByZWZpeH1saW5lYXItZ3JhZGllbnQpXCIgc3Ryb2tlLXdpZHRoPVwiMThcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTExMyw1LjA4MjE5MTE3IEw0LjI4MzkzODAxLDE5Ny41IEwyMjEuNzE2MDYyLDE5Ny41IEwxMTMsNS4wODIxOTExNyBaXCIgLz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIGA7XG4gICAgcmV0dXJuIGNvbnRhaW5lcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUNzcyhwcmVmaXgsIHsgaG9yaXpvbnRhbFByb3BlcnR5ICwgdmVydGljYWxQcm9wZXJ0eSAgfSkge1xuICAgIGNvbnN0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY3NzLnRleHRDb250ZW50ID0gYFxuICAgICMke3ByZWZpeH1jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgJHt2ZXJ0aWNhbFByb3BlcnR5fTogMTBweDtcbiAgICAgICR7aG9yaXpvbnRhbFByb3BlcnR5fTogMzBweDtcblxuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udDogaW5pdGlhbDtcbiAgICAgIGN1cnNvcjogaW5pdGlhbDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgdGV4dC1zaGFkb3c6IGluaXRpYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgIHZpc2liaWxpdHk6IGluaXRpYWw7XG5cbiAgICAgIHBhZGRpbmc6IDdweCAxMHB4IDhweCAxMHB4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJveC1zaGFkb3c6IDAgMTFweCA0MHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KSwgMCAycHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG5cbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsICR7dmVydGljYWxQcm9wZXJ0eX0gMC4xcyBlYXNlO1xuICAgICAgYW5pbWF0aW9uOiAke3ByZWZpeH1mYWRlLWluIDAuMXMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lci4ke3ByZWZpeH12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWNvbnRhaW5lci4ke3ByZWZpeH1idWlsZGluZyB7XG4gICAgICAke3ZlcnRpY2FsUHJvcGVydHl9OiAyMHB4O1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9aWNvbi13cmFwcGVyIHtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgIH1cblxuICAgICMke3ByZWZpeH1pY29uLXdyYXBwZXIgPiBzdmcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWljb24tZ3JvdXAge1xuICAgICAgYW5pbWF0aW9uOiAke3ByZWZpeH1zdHJva2VkYXNoIDFzIGVhc2UtaW4tb3V0IGJvdGggaW5maW5pdGU7XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyAke3ByZWZpeH1mYWRlLWluIHtcbiAgICAgIGZyb20ge1xuICAgICAgICAke3ZlcnRpY2FsUHJvcGVydHl9OiAxMHB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICAke3ZlcnRpY2FsUHJvcGVydHl9OiAyMHB4O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgJHtwcmVmaXh9c3Ryb2tlZGFzaCB7XG4gICAgICAwJSB7XG4gICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAgMjI2O1xuICAgICAgfVxuICAgICAgODAlLFxuICAgICAgMTAwJSB7XG4gICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDY1OSAyMjY7XG4gICAgICB9XG4gICAgfVxuICBgO1xuICAgIHJldHVybiBjc3M7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRldi1idWlsZC13YXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImRlZmF1bHQiLCJpbml0aWFsaXplQnVpbGRXYXRjaGVyIiwiX3dlYnNvY2tldCIsInJlcXVpcmUiLCJ0b2dnbGVDYWxsYmFjayIsInBvc2l0aW9uIiwic2hhZG93SG9zdCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInZlcnRpY2FsUHJvcGVydHkiLCJob3Jpem9udGFsUHJvcGVydHkiLCJzcGxpdCIsImlkIiwic3R5bGUiLCJ3aWR0aCIsImhlaWdodCIsInpJbmRleCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInNoYWRvd1Jvb3QiLCJwcmVmaXgiLCJhdHRhY2hTaGFkb3ciLCJtb2RlIiwiY29udGFpbmVyIiwiY3JlYXRlQ29udGFpbmVyIiwiY3NzIiwiY3JlYXRlQ3NzIiwiaXNWaXNpYmxlIiwiaXNCdWlsZGluZyIsInRpbWVvdXRJZCIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsImV2ZW50IiwiZGF0YSIsImhhbmRsZU1lc3NhZ2UiLCJlIiwib2JqIiwiYWN0aW9uIiwiSlNPTiIsInBhcnNlIiwiY2xlYXJUaW1lb3V0IiwidXBkYXRlQ29udGFpbmVyIiwic2V0VGltZW91dCIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsImlubmVySFRNTCIsInRleHRDb250ZW50IiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\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("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = formatWebpackMessages;\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\"));\nfunction formatWebpackMessages(json, verbose) {\n const formattedErrors = json.errors.map((message)=>{\n const isUnknownNextFontError = message.message.includes(\"An error occured in `@next/font`.\");\n return formatMessage(message, isUnknownNextFontError || verbose);\n });\n const formattedWarnings = json.warnings.map((message)=>{\n return formatMessage(message, verbose);\n });\n 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}\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 ? (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 message = message.replace(/File was processed with these loaders:\\n(.+[\\\\/](next[\\\\/]dist[\\\\/].+|@next[\\\\/]react-refresh-utils[\\\\/]loader)\\.js\\n)*You may need an additional loader to handle the result of these loaders.\\n/g, \"\");\n lines = message.split(\"\\n\");\n }\n // Remove duplicated newlines\n lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== \"\" || line.trim() !== arr[index - 1].trim());\n // Reassemble the message\n message = lines.join(\"\\n\");\n return message.trim();\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9mb3JtYXQtd2VicGFjay1tZXNzYWdlcy5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxrQkFBZSxHQUFHRztBQUNsQixJQUFJQyxXQUFXQyxtSEFBK0M7QUFDOUQsSUFBSUMsMkJBQTJCRCxtSkFBK0Q7QUFDOUYsSUFBSUUsYUFBYUQseUJBQXlCRCxtQkFBT0EsQ0FBQyw0RkFBK0I7QUFDakYsU0FBU0Ysc0JBQXNCSyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtJQUMxQyxNQUFNQyxrQkFBa0JGLEtBQUtHLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLFVBQVU7UUFDL0MsTUFBTUMseUJBQXlCRCxRQUFRQSxPQUFPLENBQUNFLFFBQVEsQ0FBQztRQUN4RCxPQUFPQyxjQUFjSCxTQUFTQywwQkFBMEJMO0lBQzVEO0lBQ0EsTUFBTVEsb0JBQW9CVCxLQUFLVSxRQUFRLENBQUNOLEdBQUcsQ0FBQyxDQUFDQyxVQUFVO1FBQ25ELE9BQU9HLGNBQWNILFNBQVNKO0lBQ2xDO0lBQ0EsTUFBTVUsU0FBU2YsU0FBUyxDQUFDLEdBQUdJLE1BQU07UUFDOUJHLFFBQVFEO1FBQ1JRLFVBQVVEO0lBQ2Q7SUFDQSxJQUFJLENBQUNSLFdBQVdVLE9BQU9SLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDQyx1QkFBdUI7UUFDdEQsa0RBQWtEO1FBQ2xERixPQUFPUixNQUFNLEdBQUdRLE9BQU9SLE1BQU0sQ0FBQ1csTUFBTSxDQUFDRDtRQUNyQ0YsT0FBT0QsUUFBUSxHQUFHLEVBQUU7SUFDeEIsQ0FBQztJQUNELE9BQU9DO0FBQ1g7QUFDQSxxS0FBcUs7QUFDckssMERBQTBEO0FBQzFELE1BQU1JLDJCQUEyQjtBQUNqQyxNQUFNQyxvQ0FBb0M7QUFDMUMsU0FBU0gscUJBQXFCUixPQUFPLEVBQUU7SUFDbkMsT0FBTyxD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UUEsTUFBTXBCLE1BQU0sQ0FBQyxDQUFDc0IsTUFBTVcsT0FBT0MsTUFBTUQsVUFBVSxLQUFLWCxLQUFLTyxJQUFJLE9BQU8sTUFBTVAsS0FBS08sSUFBSSxPQUFPSyxHQUFHLENBQUNELFFBQVEsRUFBRSxDQUFDSixJQUFJO0lBQ2pILHlCQUF5QjtJQUN6QnRDLFVBQVU2QixNQUFNRixJQUFJLENBQUM7SUFDckIsT0FBTzNCLFFBQVFzQyxJQUFJO0FBQ3ZCO0FBRUEsSUFBSSxDQUFDLE9BQU9uRCxRQUFRRSxPQUFPLEtBQUssY0FBZSxPQUFPRixRQUFRRSxPQUFPLEtBQUssWUFBWUYsUUFBUUUsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPRixRQUFRRSxPQUFPLENBQUN1RCxVQUFVLEtBQUssYUFBYTtJQUNySzNELE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUUUsT0FBTyxFQUFFLGNBQWM7UUFBRUQsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU80RCxNQUFNLENBQUMxRCxRQUFRRSxPQUFPLEVBQUVGO0lBQy9CMkQsT0FBTzNELE9BQU8sR0FBR0EsUUFBUUUsT0FBTztBQUNsQyxDQUFDLENBRUQsbURBQW1EIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi9lcnJvci1vdmVybGF5L2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLmpzPzc1ZWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBmb3JtYXRXZWJwYWNrTWVzc2FnZXM7XG52YXIgX2V4dGVuZHMgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9fZXh0ZW5kcy5qc1wiKS5kZWZhdWx0O1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9zdHJpcEFuc2kgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpXCIpKTtcbmZ1bmN0aW9uIGZvcm1hdFdlYnBhY2tNZXNzYWdlcyhqc29uLCB2ZXJib3NlKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0ganNvbi5lcnJvcnMubWFwKChtZXNzYWdlKT0+e1xuICAgICAgICBjb25zdCBpc1Vua25vd25OZXh0Rm9udEVycm9yID0gbWVzc2FnZS5tZXNzYWdlLmluY2x1ZGVzKCdBbiBlcnJvciBvY2N1cmVkIGluIGBAbmV4dC9mb250YC4nKTtcbiAgICAgICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgaXNVbmtub3duTmV4dEZvbnRFcnJvciB8fCB2ZXJib3NlKTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtYXR0ZWRXYXJuaW5ncyA9IGpzb24ud2FybmluZ3MubWFwKChtZXNzYWdlKT0+e1xuICAgICAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlKTtcbiAgICB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBfZXh0ZW5kcyh7fSwganNvbiwge1xuICAgICAgICBlcnJvcnM6IGZvcm1hdHRlZEVycm9ycyxcbiAgICAgICAgd2FybmluZ3M6IGZvcm1hdHRlZFdhcm5pbmdzXG4gICAgfSk7XG4gICAgaWYgKCF2ZXJib3NlICYmIHJlc3VsdC5lcnJvcnMuc29tZShpc0xpa2VseUFTeW50YXhFcnJvcikpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzeW50YXggZXJyb3JzLCBzaG93IGp1c3QgdGhlbS5cbiAgICAgICAgcmVzdWx0LmVycm9ycyA9IHJlc3VsdC5lcnJvcnMuZmlsdGVyKGlzTGlrZWx5QVN5bnRheEVycm9yKTtcbiAgICAgICAgcmVzdWx0Lndhcm5pbmdzID0gW107XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyBUaGlzIGZpbGUgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvYmxvYi83YjFhMzJiZTZlYzlmOTlhNmM5YTNjNjY4MTNmM2FjMDljNDczNmI5L3BhY2thZ2VzL3JlYWN0LWRldi11dGlscy9mb3JtYXRXZWJwYWNrTWVzc2FnZXMuanNcbi8vIEl0J3MgYmVlbiBlZGl0ZWQgdG8gcmVtb3ZlIGNoYWxrIGFuZCBDUkEtc3BlY2lmaWMgbG9naWNcbmNvbnN0IGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCA9ICdTeW50YXggZXJyb3I6JztcbmNvbnN0IFdFQlBBQ0tfQlJFQUtJTkdfQ0hBTkdFX1BPTFlGSUxMUyA9ICdcXG5cXG5CUkVBS0lORyBDSEFOR0U6IHdlYnBhY2sgPCA1IHVzZWQgdG8gaW5jbHVkZSBwb2x5ZmlsbHMgZm9yIG5vZGUuanMgY29yZSBtb2R1bGVzIGJ5IGRlZmF1bHQuJztcbmZ1bmN0aW9uIGlzTGlrZWx5QVN5bnRheEVycm9yKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gKDAsIF9zdHJpcEFuc2kpLmRlZmF1bHQobWVzc2FnZSkuaW5kZXhPZihmcmllbmRseVN5bnRheEVycm9yTGFiZWwpICE9PSAtMTtcbn1cbmxldCBoYWRNaXNzaW5nU2Fzc0Vycm9yID0gZmFsc2U7XG4vLyBDbGVhbnMgdXAgd2VicGFjayBlcnJvciBtZXNzYWdlcy5cbmZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgdmVyYm9zZSwgaW1wb3J0VHJhY2VOb3RlKSB7XG4gICAgLy8gVE9ETzogUmVwbGFjZSB0aGlzIG9uY2Ugd2VicGFjayA1IGlzIHN0YWJsZVxuICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcgJiYgbWVzc2FnZS5tZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkTW9kdWxlVHJhY2UgPSBtZXNzYWdlLm1vZHVsZVRyYWNlICYmIG1lc3NhZ2UubW9kdWxlVHJhY2UuZmlsdGVyKCh0cmFjZSk9PiEvbmV4dC0obWlkZGxld2FyZXxjbGllbnQtcGFnZXN8ZWRnZS1mdW5jdGlvbiktbG9hZGVyXFwuanMvLnRlc3QodHJhY2Uub3JpZ2luTmFtZSkpO1xuICAgICAgICBsZXQgYm9keSA9IG1lc3NhZ2UubWVzc2FnZTtcbiAgICAgICAgY29uc3QgYnJlYWtpbmdDaGFuZ2VJbmRleCA9IGJvZHkuaW5kZXhPZihXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMpO1xuICAgICAgICBpZiAoYnJlYWtpbmdDaGFuZ2VJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBib2R5ID0gYm9keS5zbGljZSgwLCBicmVha2luZ0NoYW5nZUluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICBtZXNzYWdlID0gKG1lc3NhZ2UubW9kdWxlTmFtZSA/ICgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KG1lc3NhZ2UubW9kdWxlTmFtZSkgKyAnXFxuJyA6ICcnKSArIChtZXNzYWdlLmZpbGUgPyAoMCwgX3N0cmlwQW5zaSkuZGVmYXVsdChtZXNzYWdlLmZpbGUpICsgJ1xcbicgOiAnJykgKyBib2R5ICsgKG1lc3NhZ2UuZGV0YWlscyAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLmRldGFpbHMgOiAnJykgKyAoZmlsdGVyZWRNb2R1bGVUcmFjZSAmJiBmaWx0ZXJlZE1vZHVsZVRyYWNlLmxlbmd0aCA/IChpbXBvcnRUcmFjZU5vdGUgfHwgJ1xcblxcbkltcG9ydCB0cmFjZSBmb3IgcmVxdWVzdGVkIG1vZHVsZTonKSArIGZpbHRlcmVkTW9kdWxlVHJhY2UubWFwKCh0cmFjZSk9PmBcXG4ke3RyYWNlLm1vZHVsZU5hbWV9YCkuam9pbignJykgOiAnJykgKyAobWVzc2FnZS5zdGFjayAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLnN0YWNrIDogJycpO1xuICAgIH1cbiAgICBsZXQgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKTtcbiAgICAvLyBTdHJpcCBXZWJwYWNrLWFkZGVkIGhlYWRlcnMgb2ZmIGVycm9ycy93YXJuaW5nc1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrL3dlYnBhY2svYmxvYi9tYXN0ZXIvbGliL01vZHVsZUVycm9yLmpzXG4gICAgbGluZXMgPSBsaW5lcy5maWx0ZXIoKGxpbmUpPT4hL01vZHVsZSBbQS16IF0rXFwoZnJvbS8udGVzdChsaW5lKSk7XG4gICAgLy8gVHJhbnNmb3JtIHBhcnNpbmcgZXJyb3IgaW50byBzeW50YXggZXJyb3JcbiAgICAvLyBUT0RPOiBtb3ZlIHRoaXMgdG8gb3VyIEVTTGludCBmb3JtYXR0ZXI/XG4gICAgbGluZXMgPSBsaW5lcy5tYXAoKGxpbmUpPT57XG4gICAgICAgIGNvbnN0IHBhcnNpbmdFcnJvciA9IC9MaW5lIChcXGQrKTooPzooXFxkKyk6KT9cXHMqUGFyc2luZyBlcnJvcjogKC4rKSQvLmV4ZWMobGluZSk7XG4gICAgICAgIGlmICghcGFyc2luZ0Vycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbGluZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbLCBlcnJvckxpbmUsIGVycm9yQ29sdW1uLCBlcnJvck1lc3NhZ2VdID0gcGFyc2luZ0Vycm9yO1xuICAgICAgICByZXR1cm4gYCR7ZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsfSAke2Vycm9yTWVzc2FnZX0gKCR7ZXJyb3JMaW5lfToke2Vycm9yQ29sdW1ufSlgO1xuICAgIH0pO1xuICAgIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKTtcbiAgICAvLyBTbW9vc2ggc3ludGF4IGVycm9ycyAoY29tbW9ubHkgZm91bmQgaW4gQ1NTKVxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL1N5bnRheEVycm9yXFxzK1xcKChcXGQrKTooXFxkKylcXClcXHMqKC4rPylcXG4vZywgYCR7ZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsfSAkMyAoJDE6JDIpXFxuYCk7XG4gICAgLy8gQ2xlYW4gdXAgZXhwb3J0IGVycm9yc1xuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL14uKmV4cG9ydCAnKC4rPyknIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSwgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQyJy5gKTtcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eLipleHBvcnQgJ2RlZmF1bHQnIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLCBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQyJyBkb2VzIG5vdCBjb250YWluIGEgZGVmYXVsdCBleHBvcnQgKGltcG9ydGVkIGFzICckMScpLmApO1xuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL14uKmV4cG9ydCAnKC4rPyknIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLCBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQxJyBpcyBub3QgZXhwb3J0ZWQgZnJvbSAnJDMnIChpbXBvcnRlZCBhcyAnJDInKS5gKTtcbiAgICBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpO1xuICAgIC8vIFJlbW92ZSBsZWFkaW5nIG5ld2xpbmVcbiAgICBpZiAobGluZXMubGVuZ3RoID4gMiAmJiBsaW5lc1sxXS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSgxLCAxKTtcbiAgICB9XG4gICAgLy8gQ2xlYW5zIHVwIHZlcmJvc2UgXCJtb2R1bGUgbm90IGZvdW5kXCIgbWVzc2FnZXMgZm9yIGZpbGVzIGFuZCBwYWNrYWdlcy5cbiAgICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0uaW5kZXhPZignTW9kdWxlIG5vdCBmb3VuZDogJykgPT09IDApIHtcbiAgICAgICAgbGluZXMgPSBbXG4gICAgICAgICAgICBsaW5lc1swXSxcbiAgICAgICAgICAgIGxpbmVzWzFdLnJlcGxhY2UoJ0Vycm9yOiAnLCAnJykucmVwbGFjZSgnTW9kdWxlIG5vdCBmb3VuZDogQ2Fubm90IGZpbmQgZmlsZTonLCAnQ2Fubm90IGZpbmQgZmlsZTonKSxcbiAgICAgICAgICAgIC4uLmxpbmVzLnNsaWNlKDIpLCBcbiAgICAgICAgXTtcbiAgICB9XG4gICAgLy8gQWRkIGhlbHBmdWwgbWVzc2FnZSBmb3IgdXNlcnMgdHJ5aW5nIHRvIHVzZSBTYXNzIGZvciB0aGUgZmlyc3QgdGltZVxuICAgIGlmIChsaW5lc1sxXSAmJiBsaW5lc1sxXS5tYXRjaCgvQ2Fubm90IGZpbmQgbW9kdWxlLitzYXNzLykpIHtcbiAgICAgICAgLy8gLi9maWxlLm1vZHVsZS5zY3NzICg8PGxvYWRlciBpbmZvPj4pID0+IC4vZmlsZS5tb2R1bGUuc2Nzc1xuICAgICAgICBjb25zdCBmaXJzdExpbmUgPSBsaW5lc1swXS5zcGxpdCgnIScpO1xuICAgICAgICBsaW5lc1swXSA9IGZpcnN0TGluZVtmaXJzdExpbmUubGVuZ3RoIC0gMV07XG4gICAgICAgIGxpbmVzWzFdID0gXCJUbyB1c2UgTmV4dC5qcycgYnVpbHQtaW4gU2FzcyBzdXBwb3J0LCB5b3UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIGBzYXNzYC5cXG5cIjtcbiAgICAgICAgbGluZXNbMV0gKz0gJ1J1biBgbnBtIGkgc2Fzc2Agb3IgYHlhcm4gYWRkIHNhc3NgIGluc2lkZSB5b3VyIHdvcmtzcGFjZS5cXG4nO1xuICAgICAgICBsaW5lc1sxXSArPSAnXFxuTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW5zdGFsbC1zYXNzJztcbiAgICAgICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2VcbiAgICAgICAgbGluZXMgPSBsaW5lcy5zbGljZSgwLCAyKTtcbiAgICAgICAgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChoYWRNaXNzaW5nU2Fzc0Vycm9yICYmIG1lc3NhZ2UubWF0Y2goLyhzYXNzLWxvYWRlcnxyZXNvbHZlLXVybC1sb2FkZXI6IENTUyBlcnJvcikvKSkge1xuICAgICAgICAvLyBkaXNwb3NlIG9mIHVuaGVscGZ1bCBzdGFjayB0cmFjZSBmb2xsb3dpbmcgbWlzc2luZyBzYXNzIG1vZHVsZVxuICAgICAgICBsaW5lcyA9IFtdO1xuICAgIH1cbiAgICBpZiAoIXZlcmJvc2UpIHtcbiAgICAgICAgbWVzc2FnZSA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgICAgICAvLyBJbnRlcm5hbCBzdGFja3MgYXJlIGdlbmVyYWxseSB1c2VsZXNzIHNvIHdlIHN0cmlwIHRoZW0uLi4gd2l0aCB0aGVcbiAgICAgICAgLy8gZXhjZXB0aW9uIG9mIHN0YWNrcyBjb250YWluaW5nIGB3ZWJwYWNrOmAgYmVjYXVzZSB0aGV5J3JlIG5vcm1hbGx5XG4gICAgICAgIC8vIGZyb20gdXNlciBjb2RlIGdlbmVyYXRlZCBieSBXZWJwYWNrLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWVcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvcHVsbC8xMDUwXG4gICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL15cXHMqYXRcXHMoKD8hd2VicGFjazopLikqOlxcZCs6XFxkK1tcXHMpXSooXFxufCQpL2dtLCAnJykgLy8gYXQgLi4uIC4uLjp4OnlcbiAgICAgICAgO1xuICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eXFxzKmF0XFxzPGFub255bW91cz4oXFxufCQpL2dtLCAnJykgLy8gYXQgPGFub255bW91cz5cbiAgICAgICAgO1xuICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9GaWxlIHdhcyBwcm9jZXNzZWQgd2l0aCB0aGVzZSBsb2FkZXJzOlxcbiguK1tcXFxcL10obmV4dFtcXFxcL11kaXN0W1xcXFwvXS4rfEBuZXh0W1xcXFwvXXJlYWN0LXJlZnJlc2gtdXRpbHNbXFxcXC9dbG9hZGVyKVxcLmpzXFxuKSpZb3UgbWF5IG5lZWQgYW4gYWRkaXRpb25hbCBsb2FkZXIgdG8gaGFuZGxlIHRoZSByZXN1bHQgb2YgdGhlc2UgbG9hZGVycy5cXG4vZywgJycpO1xuICAgICAgICBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpO1xuICAgIH1cbiAgICAvLyBSZW1vdmUgZHVwbGljYXRlZCBuZXdsaW5lc1xuICAgIGxpbmVzID0gbGluZXMuZmlsdGVyKChsaW5lLCBpbmRleCwgYXJyKT0+aW5kZXggPT09IDAgfHwgbGluZS50cmltKCkgIT09ICcnIHx8IGxpbmUudHJpbSgpICE9PSBhcnJbaW5kZXggLSAxXS50cmltKCkpO1xuICAgIC8vIFJlYXNzZW1ibGUgdGhlIG1lc3NhZ2VcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJyk7XG4gICAgcmV0dXJuIG1lc3NhZ2UudHJpbSgpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXQtd2VicGFjay1tZXNzYWdlcy5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwiX2V4dGVuZHMiLCJyZXF1aXJlIiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwiX3N0cmlwQW5zaSIsImpzb24iLCJ2ZXJib3NlIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwibWFwIiwibWVzc2FnZSIsImlzVW5rbm93bk5leHRGb250RXJyb3IiLCJpbmNsdWRlcyIsImZvcm1hdE1lc3NhZ2UiLCJmb3JtYXR0ZWRXYXJuaW5ncyIsIndhcm5pbmdzIiwicmVzdWx0Iiwic29tZSIsImlzTGlrZWx5QVN5bnRheEVycm9yIiwiZmlsdGVyIiwiZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsIiwiV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTIiwiaW5kZXhPZiIsImhhZE1pc3NpbmdTYXNzRXJyb3IiLCJpbXBvcnRUcmFjZU5vdGUiLCJmaWx0ZXJlZE1vZHVsZVRyYWNlIiwibW9kdWxlVHJhY2UiLCJ0cmFjZSIsInRlc3QiLCJvcmlnaW5OYW1lIiwiYm9keSIsImJyZWFraW5nQ2hhbmdlSW5kZXgiLCJzbGljZSIsIm1vZHVsZU5hbWUiLCJmaWxlIiwiZGV0YWlscyIsImxlbmd0aCIsImpvaW4iLCJzdGFjayIsImxpbmVzIiwic3BsaXQiLCJsaW5lIiwicGFyc2luZ0Vycm9yIiwiZXhlYyIsImVycm9yTGluZSIsImVycm9yQ29sdW1uIiwiZXJyb3JNZXNzYWdlIiwicmVwbGFjZSIsInRyaW0iLCJzcGxpY2UiLCJtYXRjaCIsImZpcnN0TGluZSIsImluZGV4IiwiYXJyIiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\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}\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 // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n return module.hot.status() === \"idle\";\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === \"idle\") {\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\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 // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\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 // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\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 // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudC5qcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiQSw4Q0FBNkM7SUFDekNHLE9BQU8sSUFBSTtBQUNmLENBQUMsRUFBQztBQUNGRCxrQkFBZSxHQUFHRztBQUNsQixJQUFJQywyQkFBMkJDLG1KQUErRDtBQUM5RixJQUFJQyxVQUFVRCxtQkFBT0EsQ0FBQyx3SUFBd0Q7QUFDOUUsSUFBSUUsYUFBYUgseUJBQXlCQyxtQkFBT0EsQ0FBQyw0RkFBK0I7QUFDakYsSUFBSUcsYUFBYUgsbUJBQU9BLENBQUMsbUZBQWE7QUFDdEMsSUFBSUkseUJBQXlCTCx5QkFBeUJDLG1CQUFPQSxDQUFDLCtHQUEyQjtBQUN6RixTQUFTRixVQUFVO0lBQ2QsSUFBR0csT0FBTyxFQUFFSSxRQUFRO0lBQ3BCLElBQUdGLFVBQVUsRUFBRUcsa0JBQWtCLENBQUMsQ0FBQ0MsUUFBUTtRQUN4QyxJQUFJQSxNQUFNQyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRztRQUN6QyxJQUFJO1lBQ0FDLGVBQWVIO1FBQ25CLEVBQUUsT0FBT0ksSUFBSTtZQUNUQyxRQUFRQyxJQUFJLENBQUMsMEJBQTBCTixNQUFNQyxJQUFJLEdBQUcsTUFBTUc7UUFDOUQ7SUFDSjtJQUNBLE9BQU87UUFDSEcscUJBQXFCQyxPQUFPLEVBQUU7WUFDMUJDLHdCQUF3QkQ7UUFDNUI7UUFDQUUsd0JBQXdCO1lBQ3BCQyxrQkFBa0IsSUFBSTtRQUMxQjtJQUNKO0FBQ0o7QUFDQUMsT0FBT0MsaUJBQWlCLEdBQUdDLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsTUFBTSxLQUFLLE1BQU1DLEtBQUtDLEdBQUc7QUFDcEUsSUFBSVAsa0JBQWtCLEtBQUs7QUFDM0IsSUFBSUY7QUFDSix5REFBeUQ7QUFDekQsSUFBSVUscUJBQXFCLElBQUk7QUFDN0IsSUFBSUMsNEJBQTRCLElBQUk7QUFDcEMsSUFBSUMsbUJBQW1CLEtBQUs7QUFDNUIsU0FBU0Msc0JBQXNCO0lBQzNCLDRDQUE0QztJQUM1QyxJQUFJLE9BQU9qQixZQUFZLGVBQWUsT0FBT0EsUUFBUWtCLEtBQUssS0FBSyxZQUFZO1FBQ3ZFLElBQUlGLGtCQUFrQjtZQUNsQmhCLFFBQVFrQixLQUFLO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0FBQ0w7QUFDQSwwQkFBMEI7QUFDMUIsU0FBU0MsZ0JBQWdCO0lBQ3JCRjtJQUNBLE1BQU1HLGNBQWMsQ0FBQ04sc0JBQXNCUCxPQUFPYyxhQUFhLENBQUNDLElBQUksS0FBSyxhQUFhQztJQUN0RlQscUJBQXFCLEtBQUs7SUFDMUJFLG1CQUFtQixLQUFLO0lBQ3hCLDBDQUEwQztJQUMxQyxJQUFJSSxhQUFhO1FBQ2JJLGdCQUFnQkMscUJBQXFCQztJQUN6QyxDQUFDO0FBQ0w7QUFDQSwyQ0FBMkM7QUFDM0MsU0FBU0MsZUFBZUMsUUFBUSxFQUFFO0lBQzlCWDtJQUNBLE1BQU1HLGNBQWMsQ0FBQ047SUFDckJBLHFCQUFxQixLQUFLO0lBQzFCRSxtQkFBbUIsS0FBSztJQUN4QixTQUFTYSxnQkFBZ0I7UUFDckIsaUNBQWlDO1FBQ2pDLE1BQU1DLFlBQVksQ0FBQyxHQUFHdEMsc0JBQXNCLEVBQUVQLE9BQU8sQ0FBQztZQUNsRDJDLFVBQVVBO1lBQ1ZHLFFBQVEsRUFBRTtRQUNkO1FBQ0EsSUFBSSxPQUFPL0IsWUFBWSxlQUFlLE9BQU9BLFFBQVFDLElBQUksS0FBSyxZQUFZO1lBQ3RFLElBQUkrQjtZQUNKLElBQUksSUFBSUMsSUFBSSxHQUFHQSxJQUFLLEVBQUNELE1BQU1GLFVBQVVGLFFBQVEsS0FBSyxJQUFJLEdBQUcsS0FBSyxJQUFJSSxJQUFJRSxNQUFNLEdBQUdELElBQUk7Z0JBQy9FLElBQUlBLE1BQU0sR0FBRztvQkFDVGpDLFFBQVFDLElBQUksQ0FBQywrQ0FBK0M7b0JBQzVELEtBQU07Z0JBQ1YsQ0FBQztnQkFDREQsUUFBUUMsSUFBSSxDQUFDLENBQUMsR0FBR1gsVUFBVSxFQUFFTCxPQUFPLENBQUM2QyxVQUFVRixRQUFRLENBQUNLLEVBQUU7WUFDOUQ7UUFDSixDQUFDO0lBQ0w7SUFDQUo7SUFDQSwwQ0FBMEM7SUFDMUMsSUFBSVQsYUFBYTtRQUNiSSxnQkFBZ0JDLHFCQUFxQkM7SUFDekMsQ0FBQztBQUNMO0FBQ0Esa0VBQWtFO0FBQ2xFLFNBQVNTLGFBQWFKLE1BQU0sRUFBRTtJQUMxQmQ7SUFDQUgscUJBQXFCLEtBQUs7SUFDMUJFLG1CQUFtQixJQUFJO0lBQ3ZCLDhCQUE4QjtJQUM5QixJQUFJYyxZQUFZLENBQUMsR0FBR3RDLHNCQUFzQixFQUFFUCxPQUFPLENBQUM7UUFDaEQ4QyxRQUFRQTtRQUNSSCxVQUFVLEVBQUU7SUFDaEI7SUFDQSw2QkFBNkI7SUFDNUIsSUFBR3ZDLE9BQU8sRUFBRStDLFlBQVksQ0FBQ04sVUFBVUMsTUFBTSxDQUFDLEVBQUU7SUFDN0MsZ0NBQWdDO0lBQ2hDLElBQUksT0FBTy9CLFlBQVksZUFBZSxPQUFPQSxRQUFRcUMsS0FBSyxLQUFLLFlBQVk7UUFDdkUsSUFBSSxJQUFJSixJQUFJLEdBQUdBLElBQUlILFVBQVVDLE1BQU0sQ0FBQ0csTUFBTSxFQUFFRCxJQUFJO1lBQzVDakMsUUFBUXFDLEtBQUssQ0FBQyxDQUFDLEdBQUcvQyxVQUFVLEVBQUVMLE9BQU8sQ0FBQzZDLFVBQVVDLE1BQU0sQ0FBQ0UsRUFBRTtRQUM3RDtJQUNKLENBQUM7SUFDRCxnQ0FBZ0M7SUFDaEMsMENBQTBDO0lBQzFDLElBQUlLLEtBQTRCLEVBQUUsRUFLakM7QUFDTDtBQUNBLElBQUlLLGVBQWVDO0FBQ25CLFNBQVNuQixvQkFBb0JvQixVQUFVLEVBQUU7SUFDckMsSUFBSUEsWUFBWTtRQUNaLDJEQUEyRDtRQUMzRCxzQkFBc0I7UUFDckIsSUFBR3hELE9BQU8sRUFBRXlELGVBQWU7SUFDaEMsQ0FBQztBQUNMO0FBQ0EsU0FBU3BCLGNBQWNtQixVQUFVLEVBQUU7SUFDOUIsSUFBR3hELE9BQU8sRUFBRTBELFNBQVM7SUFDdEIsSUFBSUYsWUFBWTtRQUNaLHNEQUFzRDtRQUN0RCw0QkFBNEI7UUFDM0IsSUFBR3hELE9BQU8sRUFBRTJELFNBQVM7SUFDMUIsQ0FBQztJQUNELElBQUlMLGNBQWM7UUFDZCxNQUFNTSxhQUFhckMsS0FBS0MsR0FBRztRQUMzQixNQUFNcUMsVUFBVUQsYUFBYU47UUFDN0IzQyxRQUFRbUQsR0FBRyxDQUFDLDBCQUFrQyxPQUFSRCxTQUFRO1FBQzdDLElBQUczRCxVQUFVLEVBQUU2RCxXQUFXLENBQUNDLEtBQUtDLFNBQVMsQ0FBQztZQUN2QzNELE9BQU87WUFDUDRELElBQUloRCxPQUFPQyxpQkFBaUI7WUFDNUJnRCxXQUFXYjtZQUNYYyxTQUFTUjtRQUNiO1FBQ0EsSUFBSVIsS0FBS2lCLHFCQUFxQixFQUFFO1lBQzVCakIsS0FBS2lCLHFCQUFxQixDQUFDUjtRQUMvQixDQUFDO0lBQ0wsQ0FBQztBQUNMO0FBQ0Esa0RBQWtEO0FBQ2xELFNBQVNTLG9CQUFvQkMsSUFBSSxFQUFFO0lBQy9CLHNDQUFzQztJQUN0QzdDLDRCQUE0QjZDO0FBQ2hDO0FBQ0EsbUNBQW1DO0FBQ25DLFNBQVM5RCxlQUFlK0QsQ0FBQyxFQUFFO0lBQ3ZCLE1BQU1DLE1BQU1ULEtBQUtVLEtBQUssQ0FBQ0YsRUFBRWpFLElBQUk7SUFDN0IsT0FBT2tFLElBQUlFLE1BQU07UUFDYixLQUFLO1lBQ0Q7Z0JBQ0lyQixlQUFlL0IsS0FBS0MsR0FBRztnQkFDdkJiLFFBQVFtRCxHQUFHLENBQUM7Z0JBQ1osS0FBTTtZQUNWO1FBQ0osS0FBSztRQUNMLEtBQUs7WUFDRDtnQkFDSSxJQUFJVyxJQUFJRixJQUFJLEVBQUU7b0JBQ1ZELG9CQUFvQkcsSUFBSUYsSUFBSTtnQkFDaEMsQ0FBQztnQkFDRCxNQUFNLEVBQUU3QixPQUFNLEVBQUdILFNBQVEsRUFBRyxHQUFHa0M7Z0JBQy9CLE1BQU1HLFlBQVlDLFFBQVFuQyxVQUFVQSxPQUFPRyxNQUFNO2dCQUNqRCxJQUFJK0IsV0FBVztvQkFDVixJQUFHMUUsVUFBVSxFQUFFNkQsV0FBVyxDQUFDQyxLQUFLQyxTQUFTLENBQUM7d0JBQ3ZDM0QsT0FBTzt3QkFDUHdFLFlBQVlwQyxPQUFPRyxNQUFNO3dCQUN6QmtDLFVBQVU3RCxPQUFPQyxpQkFBaUI7b0JBQ3RDO29CQUNBLE9BQU8yQixhQUFhSjtnQkFDeEIsQ0FBQztnQkFDRCxNQUFNc0MsY0FBY0gsUUFBUXRDLFlBQVlBLFNBQVNNLE1BQU07Z0JBQ3ZELElBQUltQyxhQUFhO29CQUNaLElBQUc5RSxVQUFVLEVBQUU2RCxXQUFXLENBQUNDLEtBQUtDLFNBQVMsQ0FBQzt3QkFDdkMzRCxPQUFPO3dCQUNQMkUsY0FBYzFDLFNBQVNNLE1BQU07d0JBQzdCa0MsVUFBVTdELE9BQU9DLGlCQUFpQjtvQkFDdEM7b0JBQ0EsT0FBT21CLGVBQWVDO2dCQUMxQixDQUFDO2dCQUNBLElBQUdyQyxVQUFVLEVBQUU2RCxXQUFXLENBQUNDLEtBQUtDLFNBQVMsQ0FBQztvQkFDdkMzRCxPQUFPO29CQUNQeUUsVUFBVTdELE9BQU9DLGlCQUFpQjtnQkFDdEM7Z0JBQ0EsT0FBT1c7WUFDWDtRQUNKLEtBQUs7WUFDRDtnQkFDSSxtREFBbUQ7Z0JBQ25EO1lBQ0o7UUFDSjtZQUNJO2dCQUNJLElBQUlmLHVCQUF1QjtvQkFDdkJBLHNCQUFzQjBEO29CQUN0QixLQUFNO2dCQUNWLENBQUM7Z0JBQ0QsS0FBTTtZQUNWO0lBQ1I7QUFDSjtBQUNBLG1EQUFtRDtBQUNuRCxTQUFTdkMsb0JBQW9CO0lBQ3pCLDRCQUE0QixHQUFHLDJEQUEyRDtJQUMxRiw4Q0FBOEM7SUFDOUMsT0FBT1IsOEJBQThCd0QsdUJBQWdCQTtBQUN6RDtBQUNBLDZDQUE2QztBQUM3QyxTQUFTQyxrQkFBa0I7SUFDdkIseUlBQXlJO0lBQ3pJLE9BQU9DLFVBQVUsQ0FBQ0UsTUFBTSxPQUFPO0FBQ25DO0FBQ0EsU0FBU0Msa0JBQWtCQyxFQUFFLEVBQUU7SUFDM0IsSUFBSUwsbUJBQW1CO1FBQ25CSztJQUNKLE9BQU87UUFDSCxTQUFTMUUsUUFBUXdFLE1BQU0sRUFBRTtZQUNyQixJQUFJQSxXQUFXLFFBQVE7Z0JBQ25CLHlJQUF5STtnQkFDeklGLFVBQVUsQ0FBQ0ssbUJBQW1CLENBQUMzRTtnQkFDL0IwRTtZQUNKLENBQUM7UUFDTDtRQUNBLHlJQUF5STtRQUN6SUosVUFBVSxDQUFDTSxnQkFBZ0IsQ0FBQzVFO0lBQ2hDLENBQUM7QUFDTDtBQUNBLGlFQUFpRTtBQUNqRSxTQUFTcUIsZ0JBQWdCd0QsaUJBQWlCLEVBQUVDLGtCQUFrQixFQUFFO0lBQzVELHlJQUF5STtJQUN6SSxJQUFJLEtBQVcsRUFBRSxFQUtoQjtJQUNELElBQUksQ0FBQzFELHVCQUF1QixDQUFDaUQsbUJBQW1CO1FBQzNDLElBQUduRixPQUFPLEVBQUUwRCxTQUFTO1FBQ3RCO0lBQ0osQ0FBQztJQUNELFNBQVNtQyxtQkFBbUJDLEdBQUcsRUFBRUMsY0FBYyxFQUFFO1FBQzdDLElBQUlELE9BQU83RSxtQkFBbUIsQ0FBQzhFLGdCQUFnQjtZQUMzQyxJQUFJRCxLQUFLO2dCQUNMbkYsUUFBUUMsSUFBSSxDQUFDLDhDQUE4QyxtSUFBbUkscUlBQXFJLCtHQUErRyw4SEFBOEg7WUFDcGpCLE9BQU8sSUFBSUssaUJBQWlCO2dCQUN4Qk4sUUFBUUMsSUFBSSxDQUFDO1lBQ2pCLENBQUM7WUFDRG9GLGtCQUFrQkY7WUFDbEI7UUFDSixDQUFDO1FBQ0QsTUFBTXRDLGFBQWFxQixRQUFRa0IsZUFBZWxELE1BQU07UUFDaEQsSUFBSSxPQUFPK0MsdUJBQXVCLFlBQVk7WUFDMUMsaUNBQWlDO1lBQ2pDQSxtQkFBbUJwQztRQUN2QixDQUFDO1FBQ0QsSUFBSXRCLHFCQUFxQjtZQUNyQiwrREFBK0Q7WUFDL0QsNkRBQTZEO1lBQzdEQyxnQkFBZ0JxQixhQUFhRCxZQUFZb0MsaUJBQWlCLEVBQUVuQyxhQUFheEQsUUFBUTBELFNBQVMsR0FBR2tDLGtCQUFrQjtRQUNuSCxPQUFPO1lBQ0YsSUFBRzVGLE9BQU8sRUFBRTBELFNBQVM7WUFDdEIsSUFBSVQsS0FBNEIsRUFBRSxFQU9qQztRQUNMLENBQUM7SUFDTDtJQUNBLDJEQUEyRDtJQUMzRCx5SUFBeUk7SUFDekltQyxVQUFVLENBQUNhLEtBQUssQ0FBQyxhQUFhLEdBQUcsS0FBSyxFQUFFQyxJQUFJLENBQUMsQ0FBQ0gsaUJBQWlCO1FBQzNELElBQUksQ0FBQ0EsZ0JBQWdCO1lBQ2pCLE9BQU8sSUFBSTtRQUNmLENBQUM7UUFDRCxJQUFJLE9BQU9KLHNCQUFzQixZQUFZO1lBQ3pDLE1BQU1uQyxhQUFhcUIsUUFBUWtCLGVBQWVsRCxNQUFNO1lBQ2hEOEMsa0JBQWtCbkM7UUFDdEIsQ0FBQztRQUNELHlJQUF5STtRQUN6SSxPQUFPNEIsVUFBVSxDQUFDZSxLQUFLO0lBQzNCLEdBQUdELElBQUksQ0FBQyxDQUFDSCxpQkFBaUI7UUFDdEJGLG1CQUFtQixJQUFJLEVBQUVFO0lBQzdCLEdBQUcsQ0FBQ0QsTUFBTTtRQUNORCxtQkFBbUJDLEtBQUssSUFBSTtJQUNoQztBQUNKO0FBQ0EsU0FBU0Usa0JBQWtCRixHQUFHLEVBQUU7SUFDNUIsTUFBTU0sYUFBYU4sT0FBUUEsQ0FBQUEsSUFBSU8sS0FBSyxJQUFJUCxJQUFJTyxLQUFLLENBQUNDLEtBQUssQ0FBQyxNQUFNQyxLQUFLLENBQUMsR0FBRyxHQUFHQyxJQUFJLENBQUMsU0FBU1YsSUFBSVcsT0FBTyxJQUFJWCxNQUFNLEVBQUM7SUFDN0csSUFBRzVGLFVBQVUsRUFBRTZELFdBQVcsQ0FBQ0MsS0FBS0MsU0FBUyxDQUFDO1FBQ3ZDM0QsT0FBTztRQUNQOEY7UUFDQW5GLGlCQUFpQixDQUFDLENBQUNBO0lBQ3ZCO0lBQ0FDLE9BQU93RixRQUFRLENBQUNDLE1BQU07QUFDMUI7QUFFQSxJQUFJLENBQUMsT0FBT2pILFFBQVFFLE9BQU8sS0FBSyxjQUFlLE9BQU9GLFFBQVFFLE9BQU8sS0FBSyxZQUFZRixRQUFRRSxPQUFPLEtBQUssSUFBSSxLQUFNLE9BQU9GLFFBQVFFLE9BQU8sQ0FBQ2dILFVBQVUsS0FBSyxhQUFhO0lBQ3JLcEgsT0FBT0MsY0FBYyxDQUFDQyxRQUFRRSxPQUFPLEVBQUUsY0FBYztRQUFFRCxPQUFPLElBQUk7SUFBQztJQUNuRUgsT0FBT3FILE1BQU0sQ0FBQ25ILFFBQVFFLE9BQU8sRUFBRUY7SUFDL0IwRixPQUFPMUYsT0FBTyxHQUFHQSxRQUFRRSxPQUFPO0FBQ2xDLENBQUMsQ0FFRCwwQ0FBMEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvZGV2L2Vycm9yLW92ZXJsYXkvaG90LWRldi1jbGllbnQuanM/MTYwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGNvbm5lY3Q7XG52YXIgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9saWIvX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzXCIpLmRlZmF1bHQ7XG52YXIgX2NsaWVudCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvZGlzdC9jbGllbnRcIik7XG52YXIgX3N0cmlwQW5zaSA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2lcIikpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi93ZWJzb2NrZXRcIik7XG52YXIgX2Zvcm1hdFdlYnBhY2tNZXNzYWdlcyA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi9mb3JtYXQtd2VicGFjay1tZXNzYWdlc1wiKSk7XG5mdW5jdGlvbiBjb25uZWN0KCkge1xuICAgICgwLCBfY2xpZW50KS5yZWdpc3RlcigpO1xuICAgICgwLCBfd2Vic29ja2V0KS5hZGRNZXNzYWdlTGlzdGVuZXIoKGV2ZW50KT0+e1xuICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCdhY3Rpb24nKSA9PT0gLTEpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2Nlc3NNZXNzYWdlKGV2ZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCBITVIgbWVzc2FnZTogJyArIGV2ZW50LmRhdGEgKyAnXFxuJywgZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3Vic2NyaWJlVG9IbXJFdmVudCAoaGFuZGxlcikge1xuICAgICAgICAgICAgY3VzdG9tSG1yRXZlbnRIYW5kbGVyID0gaGFuZGxlcjtcbiAgICAgICAgfSxcbiAgICAgICAgb25VbnJlY292ZXJhYmxlRXJyb3IgKCkge1xuICAgICAgICAgICAgaGFkUnVudGltZUVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG59XG53aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyBEYXRlLm5vdygpKTtcbmxldCBoYWRSdW50aW1lRXJyb3IgPSBmYWxzZTtcbmxldCBjdXN0b21IbXJFdmVudEhhbmRsZXI7XG4vLyBSZW1lbWJlciBzb21lIHN0YXRlIHJlbGF0ZWQgdG8gaG90IG1vZHVsZSByZXBsYWNlbWVudC5cbnZhciBpc0ZpcnN0Q29tcGlsYXRpb24gPSB0cnVlO1xudmFyIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggPSBudWxsO1xudmFyIGhhc0NvbXBpbGVFcnJvcnMgPSBmYWxzZTtcbmZ1bmN0aW9uIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKSB7XG4gICAgLy8gQ2xlYW4gdXAgb3V0ZGF0ZWQgY29tcGlsZSBlcnJvcnMsIGlmIGFueS5cbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmNsZWFyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGlmIChoYXNDb21waWxlRXJyb3JzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBTdWNjZXNzZnVsIGNvbXBpbGF0aW9uLlxuZnVuY3Rpb24gaGFuZGxlU3VjY2VzcygpIHtcbiAgICBjbGVhck91dGRhdGVkRXJyb3JzKCk7XG4gICAgY29uc3QgaXNIb3RVcGRhdGUgPSAhaXNGaXJzdENvbXBpbGF0aW9uIHx8IHdpbmRvdy5fX05FWFRfREFUQV9fLnBhZ2UgIT09ICcvX2Vycm9yJyAmJiBpc1VwZGF0ZUF2YWlsYWJsZSgpO1xuICAgIGlzRmlyc3RDb21waWxhdGlvbiA9IGZhbHNlO1xuICAgIGhhc0NvbXBpbGVFcnJvcnMgPSBmYWxzZTtcbiAgICAvLyBBdHRlbXB0IHRvIGFwcGx5IGhvdCB1cGRhdGVzIG9yIHJlbG9hZC5cbiAgICBpZiAoaXNIb3RVcGRhdGUpIHtcbiAgICAgICAgdHJ5QXBwbHlVcGRhdGVzKG9uQmVmb3JlRmFzdFJlZnJlc2gsIG9uRmFzdFJlZnJlc2gpO1xuICAgIH1cbn1cbi8vIENvbXBpbGF0aW9uIHdpdGggd2FybmluZ3MgKGUuZy4gRVNMaW50KS5cbmZ1bmN0aW9uIGhhbmRsZVdhcm5pbmdzKHdhcm5pbmdzKSB7XG4gICAgY2xlYXJPdXRkYXRlZEVycm9ycygpO1xuICAgIGNvbnN0IGlzSG90VXBkYXRlID0gIWlzRmlyc3RDb21waWxhdGlvbjtcbiAgICBpc0ZpcnN0Q29tcGlsYXRpb24gPSBmYWxzZTtcbiAgICBoYXNDb21waWxlRXJyb3JzID0gZmFsc2U7XG4gICAgZnVuY3Rpb24gcHJpbnRXYXJuaW5ncygpIHtcbiAgICAgICAgLy8gUHJpbnQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9ICgwLCBfZm9ybWF0V2VicGFja01lc3NhZ2VzKS5kZWZhdWx0KHtcbiAgICAgICAgICAgIHdhcm5pbmdzOiB3YXJuaW5ncyxcbiAgICAgICAgICAgIGVycm9yczogW11cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbnNvbGUud2FybiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCAoKHJlZiA9IGZvcm1hdHRlZC53YXJuaW5ncykgPT0gbnVsbCA/IHZvaWQgMCA6IHJlZi5sZW5ndGgpOyBpKyspe1xuICAgICAgICAgICAgICAgIGlmIChpID09PSA1KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhlcmUgd2VyZSBtb3JlIHdhcm5pbmdzIGluIG90aGVyIGZpbGVzLlxcbicgKyAnWW91IGNhbiBmaW5kIGEgY29tcGxldGUgbG9nIGluIHRoZSB0ZXJtaW5hbC4nKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigoMCwgX3N0cmlwQW5zaSkuZGVmYXVsdChmb3JtYXR0ZWQud2FybmluZ3NbaV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwcmludFdhcm5pbmdzKCk7XG4gICAgLy8gQXR0ZW1wdCB0byBhcHBseSBob3QgdXBkYXRlcyBvciByZWxvYWQuXG4gICAgaWYgKGlzSG90VXBkYXRlKSB7XG4gICAgICAgIHRyeUFwcGx5VXBkYXRlcyhvbkJlZm9yZUZhc3RSZWZyZXNoLCBvbkZhc3RSZWZyZXNoKTtcbiAgICB9XG59XG4vLyBDb21waWxhdGlvbiB3aXRoIGVycm9ycyAoZS5nLiBzeW50YXggZXJyb3Igb3IgbWlzc2luZyBtb2R1bGVzKS5cbmZ1bmN0aW9uIGhhbmRsZUVycm9ycyhlcnJvcnMpIHtcbiAgICBjbGVhck91dGRhdGVkRXJyb3JzKCk7XG4gICAgaXNGaXJzdENvbXBpbGF0aW9uID0gZmFsc2U7XG4gICAgaGFzQ29tcGlsZUVycm9ycyA9IHRydWU7XG4gICAgLy8gXCJNYXNzYWdlXCIgd2VicGFjayBtZXNzYWdlcy5cbiAgICB2YXIgZm9ybWF0dGVkID0gKDAsIF9mb3JtYXRXZWJwYWNrTWVzc2FnZXMpLmRlZmF1bHQoe1xuICAgICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgICAgd2FybmluZ3M6IFtdXG4gICAgfSk7XG4gICAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgICAoMCwgX2NsaWVudCkub25CdWlsZEVycm9yKGZvcm1hdHRlZC5lcnJvcnNbMF0pO1xuICAgIC8vIEFsc28gbG9nIHRoZW0gdG8gdGhlIGNvbnNvbGUuXG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgZm9ybWF0dGVkLmVycm9ycy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCgwLCBfc3RyaXBBbnNpKS5kZWZhdWx0KGZvcm1hdHRlZC5lcnJvcnNbaV0pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBEbyBub3QgYXR0ZW1wdCB0byByZWxvYWQgbm93LlxuICAgIC8vIFdlIHdpbGwgcmVsb2FkIG9uIG5leHQgc3VjY2VzcyBpbnN0ZWFkLlxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQihmb3JtYXR0ZWQuZXJyb3JzWzBdKTtcbiAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG5sZXQgc3RhcnRMYXRlbmN5ID0gdW5kZWZpbmVkO1xuZnVuY3Rpb24gb25CZWZvcmVGYXN0UmVmcmVzaChoYXNVcGRhdGVzKSB7XG4gICAgaWYgKGhhc1VwZGF0ZXMpIHtcbiAgICAgICAgLy8gT25seSB0cmlnZ2VyIGEgcGVuZGluZyBzdGF0ZSBpZiB3ZSBoYXZlIHVwZGF0ZXMgdG8gYXBwbHlcbiAgICAgICAgLy8gKGNmLiBvbkZhc3RSZWZyZXNoKVxuICAgICAgICAoMCwgX2NsaWVudCkub25CZWZvcmVSZWZyZXNoKCk7XG4gICAgfVxufVxuZnVuY3Rpb24gb25GYXN0UmVmcmVzaChoYXNVcGRhdGVzKSB7XG4gICAgKDAsIF9jbGllbnQpLm9uQnVpbGRPaygpO1xuICAgIGlmIChoYXNVcGRhdGVzKSB7XG4gICAgICAgIC8vIE9ubHkgY29tcGxldGUgYSBwZW5kaW5nIHN0YXRlIGlmIHdlIGFwcGxpZWQgdXBkYXRlc1xuICAgICAgICAvLyAoY2YuIG9uQmVmb3JlRmFzdFJlZnJlc2gpXG4gICAgICAgICgwLCBfY2xpZW50KS5vblJlZnJlc2goKTtcbiAgICB9XG4gICAgaWYgKHN0YXJ0TGF0ZW5jeSkge1xuICAgICAgICBjb25zdCBlbmRMYXRlbmN5ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgbGF0ZW5jeSA9IGVuZExhdGVuY3kgLSBzdGFydExhdGVuY3k7XG4gICAgICAgIGNvbnNvbGUubG9nKGBbRmFzdCBSZWZyZXNoXSBkb25lIGluICR7bGF0ZW5jeX1tc2ApO1xuICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtaG1yLWxhdGVuY3knLFxuICAgICAgICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICAgIHN0YXJ0VGltZTogc3RhcnRMYXRlbmN5LFxuICAgICAgICAgICAgZW5kVGltZTogZW5kTGF0ZW5jeVxuICAgICAgICB9KSk7XG4gICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQikge1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0xBVEVOQ1lfQ0IobGF0ZW5jeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBUaGVyZSBpcyBhIG5ld2VyIHZlcnNpb24gb2YgdGhlIGNvZGUgYXZhaWxhYmxlLlxuZnVuY3Rpb24gaGFuZGxlQXZhaWxhYmxlSGFzaChoYXNoKSB7XG4gICAgLy8gVXBkYXRlIGxhc3Qga25vd24gY29tcGlsYXRpb24gaGFzaC5cbiAgICBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoID0gaGFzaDtcbn1cbi8vIEhhbmRsZSBtZXNzYWdlcyBmcm9tIHRoZSBzZXJ2ZXIuXG5mdW5jdGlvbiBwcm9jZXNzTWVzc2FnZShlKSB7XG4gICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShlLmRhdGEpO1xuICAgIHN3aXRjaChvYmouYWN0aW9uKXtcbiAgICAgICAgY2FzZSAnYnVpbGRpbmcnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0YXJ0TGF0ZW5jeSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tGYXN0IFJlZnJlc2hdIHJlYnVpbGRpbmcnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgY2FzZSAnYnVpbHQnOlxuICAgICAgICBjYXNlICdzeW5jJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXZhaWxhYmxlSGFzaChvYmouaGFzaCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzICwgd2FybmluZ3MgIH0gPSBvYmo7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzRXJyb3JzID0gQm9vbGVhbihlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0Vycm9ycykge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudDogZXJyb3JzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXJyb3JzKGVycm9ycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1dhcm5pbmdzID0gQm9vbGVhbih3YXJuaW5ncyAmJiB3YXJuaW5ncy5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNXYXJuaW5ncykge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtd2FybmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nQ291bnQ6IHdhcm5pbmdzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlV2FybmluZ3Mod2FybmluZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAoMCwgX3dlYnNvY2tldCkuc2VuZE1lc3NhZ2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICBldmVudDogJ2NsaWVudC1zdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlU3VjY2VzcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlICdzZXJ2ZXJDb21wb25lbnRDaGFuZ2VzJzpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBTZXJ2ZXIgY29tcG9uZW50IGNoYW5nZXMgZG9uJ3QgYXBwbHkgdG8gYHBhZ2VzYC5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbUhtckV2ZW50SGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21IbXJFdmVudEhhbmRsZXIob2JqKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cbi8vIElzIHRoZXJlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgYXZhaWxhYmxlP1xuZnVuY3Rpb24gaXNVcGRhdGVBdmFpbGFibGUoKSB7XG4gICAgLyogZ2xvYmFscyBfX3dlYnBhY2tfaGFzaF9fICovIC8vIF9fd2VicGFja19oYXNoX18gaXMgdGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24uXG4gICAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICAgIHJldHVybiBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoICE9PSBfX3dlYnBhY2tfaGFzaF9fO1xufVxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBtb2R1bGUuaG90IGV4aXN0cyBidXQgdHlwZSBuZWVkcyB0byBiZSBhZGRlZC4gQ2FuJ3QgdXNlIGBhcyBhbnlgIGhlcmUgYXMgd2VicGFjayBwYXJzZXMgZm9yIGBtb2R1bGUuaG90YCBjYWxscy5cbiAgICByZXR1cm4gbW9kdWxlLmhvdC5zdGF0dXMoKSA9PT0gJ2lkbGUnO1xufVxuZnVuY3Rpb24gYWZ0ZXJBcHBseVVwZGF0ZXMoZm4pIHtcbiAgICBpZiAoY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICAgICAgZm4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmdW5jdGlvbiBoYW5kbGVyKHN0YXR1cykge1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ2lkbGUnKSB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBtb2R1bGUuaG90IGV4aXN0cyBidXQgdHlwZSBuZWVkcyB0byBiZSBhZGRlZC4gQ2FuJ3QgdXNlIGBhcyBhbnlgIGhlcmUgYXMgd2VicGFjayBwYXJzZXMgZm9yIGBtb2R1bGUuaG90YCBjYWxscy5cbiAgICAgICAgICAgICAgICBtb2R1bGUuaG90LnJlbW92ZVN0YXR1c0hhbmRsZXIoaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IG1vZHVsZS5ob3QgZXhpc3RzIGJ1dCB0eXBlIG5lZWRzIHRvIGJlIGFkZGVkLiBDYW4ndCB1c2UgYGFzIGFueWAgaGVyZSBhcyB3ZWJwYWNrIHBhcnNlcyBmb3IgYG1vZHVsZS5ob3RgIGNhbGxzLlxuICAgICAgICBtb2R1bGUuaG90LmFkZFN0YXR1c0hhbmRsZXIoaGFuZGxlcik7XG4gICAgfVxufVxuLy8gQXR0ZW1wdCB0byB1cGRhdGUgY29kZSBvbiB0aGUgZmx5LCBmYWxsIGJhY2sgdG8gYSBoYXJkIHJlbG9hZC5cbmZ1bmN0aW9uIHRyeUFwcGx5VXBkYXRlcyhvbkJlZm9yZUhvdFVwZGF0ZSwgb25Ib3RVcGRhdGVTdWNjZXNzKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBtb2R1bGUuaG90IGV4aXN0cyBidXQgdHlwZSBuZWVkcyB0byBiZSBhZGRlZC4gQ2FuJ3QgdXNlIGBhcyBhbnlgIGhlcmUgYXMgd2VicGFjayBwYXJzZXMgZm9yIGBtb2R1bGUuaG90YCBjYWxscy5cbiAgICBpZiAoIW1vZHVsZS5ob3QpIHtcbiAgICAgICAgLy8gSG90TW9kdWxlUmVwbGFjZW1lbnRQbHVnaW4gaXMgbm90IGluIFdlYnBhY2sgY29uZmlndXJhdGlvbi5cbiAgICAgICAgY29uc29sZS5lcnJvcignSG90TW9kdWxlUmVwbGFjZW1lbnRQbHVnaW4gaXMgbm90IGluIFdlYnBhY2sgY29uZmlndXJhdGlvbi4nKTtcbiAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICAgICAgKDAsIF9jbGllbnQpLm9uQnVpbGRPaygpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhlcnIsIHVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICAgIGlmIChlcnIgfHwgaGFkUnVudGltZUVycm9yIHx8ICF1cGRhdGVkTW9kdWxlcykge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZFxcblxcbicgKyBcIkZhc3QgUmVmcmVzaCB3aWxsIHBlcmZvcm0gYSBmdWxsIHJlbG9hZCB3aGVuIHlvdSBlZGl0IGEgZmlsZSB0aGF0J3MgaW1wb3J0ZWQgYnkgbW9kdWxlcyBvdXRzaWRlIG9mIHRoZSBSZWFjdCByZW5kZXJpbmcgdHJlZS5cXG5cIiArICdZb3UgbWlnaHQgaGF2ZSBhIGZpbGUgd2hpY2ggZXhwb3J0cyBhIFJlYWN0IGNvbXBvbmVudCBidXQgYWxzbyBleHBvcnRzIGEgdmFsdWUgdGhhdCBpcyBpbXBvcnRlZCBieSBhIG5vbi1SZWFjdCBjb21wb25lbnQgZmlsZS5cXG4nICsgJ0NvbnNpZGVyIG1pZ3JhdGluZyB0aGUgbm9uLVJlYWN0IGNvbXBvbmVudCBleHBvcnQgdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBpbXBvcnRpbmcgaXQgaW50byBib3RoIGZpbGVzLlxcblxcbicgKyAnSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGUgcGFyZW50IGNvbXBvbmVudCBvZiB0aGUgY29tcG9uZW50IHlvdSBlZGl0ZWQgaXMgYSBjbGFzcyBjb21wb25lbnQsIHdoaWNoIGRpc2FibGVzIEZhc3QgUmVmcmVzaC5cXG4nICsgJ0Zhc3QgUmVmcmVzaCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgcGFyZW50IGZ1bmN0aW9uIGNvbXBvbmVudCBpbiB5b3VyIFJlYWN0IHRyZWUuJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZCBiZWNhdXNlIHlvdXIgYXBwbGljYXRpb24gaGFkIGFuIHVucmVjb3ZlcmFibGUgZXJyb3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKGVycik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzVXBkYXRlcyA9IEJvb2xlYW4odXBkYXRlZE1vZHVsZXMubGVuZ3RoKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvbkhvdFVwZGF0ZVN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIE1heWJlIHdlIHdhbnQgdG8gZG8gc29tZXRoaW5nLlxuICAgICAgICAgICAgb25Ib3RVcGRhdGVTdWNjZXNzKGhhc1VwZGF0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAgICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHRoaXMgdGltZSwgZG9uJ3QgdHJpZ2dlciBhIHBlbmRpbmcgcmVmcmVzaCBzdGF0ZS5cbiAgICAgICAgICAgIHRyeUFwcGx5VXBkYXRlcyhoYXNVcGRhdGVzID8gdW5kZWZpbmVkIDogb25CZWZvcmVIb3RVcGRhdGUsIGhhc1VwZGF0ZXMgPyBfY2xpZW50Lm9uQnVpbGRPayA6IG9uSG90VXBkYXRlU3VjY2Vzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoMCwgX2NsaWVudCkub25CdWlsZE9rKCk7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICAgICAgICAgIGFmdGVyQXBwbHlVcGRhdGVzKCgpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2NoZWNrXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBtb2R1bGUuaG90IGV4aXN0cyBidXQgdHlwZSBuZWVkcyB0byBiZSBhZGRlZC4gQ2FuJ3QgdXNlIGBhcyBhbnlgIGhlcmUgYXMgd2VicGFjayBwYXJzZXMgZm9yIGBtb2R1bGUuaG90YCBjYWxscy5cbiAgICBtb2R1bGUuaG90LmNoZWNrKC8qIGF1dG9BcHBseSAqLyBmYWxzZSkudGhlbigodXBkYXRlZE1vZHVsZXMpPT57XG4gICAgICAgIGlmICghdXBkYXRlZE1vZHVsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Ygb25CZWZvcmVIb3RVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1VwZGF0ZXMgPSBCb29sZWFuKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aCk7XG4gICAgICAgICAgICBvbkJlZm9yZUhvdFVwZGF0ZShoYXNVcGRhdGVzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IG1vZHVsZS5ob3QgZXhpc3RzIGJ1dCB0eXBlIG5lZWRzIHRvIGJlIGFkZGVkLiBDYW4ndCB1c2UgYGFzIGFueWAgaGVyZSBhcyB3ZWJwYWNrIHBhcnNlcyBmb3IgYG1vZHVsZS5ob3RgIGNhbGxzLlxuICAgICAgICByZXR1cm4gbW9kdWxlLmhvdC5hcHBseSgpO1xuICAgIH0pLnRoZW4oKHVwZGF0ZWRNb2R1bGVzKT0+e1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMobnVsbCwgdXBkYXRlZE1vZHVsZXMpO1xuICAgIH0sIChlcnIpPT57XG4gICAgICAgIGhhbmRsZUFwcGx5VXBkYXRlcyhlcnIsIG51bGwpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gcGVyZm9ybUZ1bGxSZWxvYWQoZXJyKSB7XG4gICAgY29uc3Qgc3RhY2tUcmFjZSA9IGVyciAmJiAoZXJyLnN0YWNrICYmIGVyci5zdGFjay5zcGxpdCgnXFxuJykuc2xpY2UoMCwgNSkuam9pbignXFxuJykgfHwgZXJyLm1lc3NhZ2UgfHwgZXJyICsgJycpO1xuICAgICgwLCBfd2Vic29ja2V0KS5zZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGV2ZW50OiAnY2xpZW50LWZ1bGwtcmVsb2FkJyxcbiAgICAgICAgc3RhY2tUcmFjZSxcbiAgICAgICAgaGFkUnVudGltZUVycm9yOiAhIWhhZFJ1bnRpbWVFcnJvclxuICAgIH0pKTtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhvdC1kZXYtY2xpZW50LmpzLm1hcCJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsImRlZmF1bHQiLCJjb25uZWN0IiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9jbGllbnQiLCJfc3RyaXBBbnNpIiwiX3dlYnNvY2tldCIsIl9mb3JtYXRXZWJwYWNrTWVzc2FnZXMiLCJyZWdpc3RlciIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsImV2ZW50IiwiZGF0YSIsImluZGV4T2YiLCJwcm9jZXNzTWVzc2FnZSIsImV4IiwiY29uc29sZSIsIndhcm4iLCJzdWJzY3JpYmVUb0htckV2ZW50IiwiaGFuZGxlciIsImN1c3RvbUhtckV2ZW50SGFuZGxlciIsIm9uVW5yZWNvdmVyYWJsZUVycm9yIiwiaGFkUnVudGltZUVycm9yIiwid2luZG93IiwiX19uZXh0RGV2Q2xpZW50SWQiLCJNYXRoIiwicm91bmQiLCJyYW5kb20iLCJEYXRlIiwibm93IiwiaXNGaXJzdENvbXBpbGF0aW9uIiwibW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCIsImhhc0NvbXBpbGVFcnJvcnMiLCJjbGVhck91dGRhdGVkRXJyb3JzIiwiY2xlYXIiLCJoYW5kbGVTdWNjZXNzIiwiaXNIb3RVcGRhdGUiLCJfX05FWFRfREFUQV9fIiwicGFnZSIsImlzVXBkYXRlQXZhaWxhYmxlIiwidHJ5QXBwbHlVcGRhdGVzIiwib25CZWZvcmVGYXN0UmVmcmVzaCIsIm9uRmFzdFJlZnJlc2giLCJoYW5kbGVXYXJuaW5ncyIsIndhcm5pbmdzIiwicHJpbnRXYXJuaW5ncyIsImZvcm1hdHRlZCIsImVycm9ycyIsInJlZiIsImkiLCJsZW5ndGgiLCJoYW5kbGVFcnJvcnMiLCJvbkJ1aWxkRXJyb3IiLCJlcnJvciIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfVEVTVF9NT0RFIiwic2VsZiIsIl9fTkVYVF9ITVJfQ0IiLCJzdGFydExhdGVuY3kiLCJ1bmRlZmluZWQiLCJoYXNVcGRhdGVzIiwib25CZWZvcmVSZWZyZXNoIiwib25CdWlsZE9rIiwib25SZWZyZXNoIiwiZW5kTGF0ZW5jeSIsImxhdGVuY3kiLCJsb2ciLCJzZW5kTWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZCIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJfX05FWFRfSE1SX0xBVEVOQ1lfQ0IiLCJoYW5kbGVBdmFpbGFibGVIYXNoIiwiaGFzaCIsImUiLCJvYmoiLCJwYXJzZSIsImFjdGlvbiIsImhhc0Vycm9ycyIsIkJvb2xlYW4iLCJlcnJvckNvdW50IiwiY2xpZW50SWQiLCJoYXNXYXJuaW5ncyIsIndhcm5pbmdDb3VudCIsIl9fd2VicGFja19oYXNoX18iLCJjYW5BcHBseVVwZGF0ZXMiLCJtb2R1bGUiLCJob3QiLCJzdGF0dXMiLCJhZnRlckFwcGx5VXBkYXRlcyIsImZuIiwicmVtb3ZlU3RhdHVzSGFuZGxlciIsImFkZFN0YXR1c0hhbmRsZXIiLCJvbkJlZm9yZUhvdFVwZGF0ZSIsIm9uSG90VXBkYXRlU3VjY2VzcyIsImhhbmRsZUFwcGx5VXBkYXRlcyIsImVyciIsInVwZGF0ZWRNb2R1bGVzIiwicGVyZm9ybUZ1bGxSZWxvYWQiLCJjaGVjayIsInRoZW4iLCJhcHBseSIsInN0YWNrVHJhY2UiLCJzdGFjayIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwibWVzc2FnZSIsImxvY2F0aW9uIiwicmVsb2FkIiwiX19lc01vZHVsZSIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiIn0=\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__(/*! ../router */ \"./node_modules/next/dist/client/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2JBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZELGtCQUFlLEdBQUcsS0FBSztBQUN2QixJQUFJRyxzQkFBc0JDLHlJQUEwRDtBQUNwRixJQUFJQywyQkFBMkJELG1KQUErRDtBQUM5RixJQUFJRSxVQUFVRCx5QkFBeUJELG1CQUFPQSxDQUFDLDREQUFXO0FBQzFELElBQUlHLGFBQWFILG1CQUFPQSxDQUFDLGlHQUEyQjtBQUNwRCxJQUFJSSxXQUFXTCxvQkFBb0IsVUFBVU0sSUFBSSxFQUFFO0lBQy9DLElBQUlBLE1BQU07UUFDTix3REFBd0Q7UUFDeEQsc0RBQXNEO1FBQ3REQyxZQUFZLElBQUk7WUFDWCxJQUFHSCxVQUFVLEVBQUVJLFdBQVcsQ0FBQ0MsS0FBS0MsU0FBUyxDQUFDO2dCQUN2Q0MsT0FBTztnQkFDUEw7WUFDSjtRQUNKLEdBQUc7SUFDUCxPQUFPO1FBQ0hILFFBQVFKLE9BQU8sQ0FBQ2EsS0FBSyxDQUFDLElBQUk7WUFDdEJMLFlBQVksSUFBSTtnQkFDWixpRUFBaUU7Z0JBQ2pFLGdFQUFnRTtnQkFDaEUsK0RBQStEO2dCQUMvRCxNQUFNTSxrQkFBa0JDLEtBQUtDLGFBQWEsQ0FBQ0YsZUFBZTtnQkFDMUQsTUFBTUcsV0FBVyxDQUFDYixRQUFRSixPQUFPLENBQUNpQixRQUFRLEtBQUssVUFBVWIsUUFBUUosT0FBTyxDQUFDaUIsUUFBUSxLQUFLLFNBQVEsS0FBTUgsa0JBQWtCQSxrQkFBa0JWLFFBQVFKLE9BQU8sQ0FBQ2lCLFFBQVE7Z0JBQy9KLElBQUdaLFVBQVUsRUFBRUksV0FBVyxDQUFDQyxLQUFLQyxTQUFTLENBQUM7b0JBQ3ZDQyxPQUFPO29CQUNQTCxNQUFNVTtnQkFDVjtZQUNKLEdBQUc7UUFDUDtJQUNKLENBQUM7SUFDQSxJQUFHWixVQUFVLEVBQUVhLGtCQUFrQixDQUFDLENBQUNOLFFBQVE7UUFDeEMsSUFBSUEsTUFBTU8sSUFBSSxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUc7UUFDcEMsSUFBSTtZQUNBLE1BQU1DLFVBQVVYLEtBQUtZLEtBQUssQ0FBQ1YsTUFBTU8sSUFBSTtZQUNyQywyREFBMkQ7WUFDM0QsOERBQThEO1lBQzlELGFBQWE7WUFDYixJQUFJRSxRQUFRVCxLQUFLLEtBQUssVUFBVVMsUUFBUUUsT0FBTyxJQUFJLENBQUNSLEtBQUtDLGFBQWEsQ0FBQ1EsR0FBRyxFQUFFO2dCQUN4RSxzREFBc0Q7Z0JBQ3RELHFDQUFxQztnQkFDckNDLE1BQU1DLFNBQVNDLElBQUksRUFBRTtvQkFDakJDLGFBQWE7Z0JBQ2pCLEdBQUdDLElBQUksQ0FBQyxDQUFDQyxVQUFVO29CQUNmLElBQUlBLFFBQVFDLE1BQU0sS0FBSyxLQUFLO3dCQUN4QiwwQkFBMEI7d0JBQzFCTCxTQUFTTSxNQUFNO29CQUNuQixPQUFPO3dCQUNILHFCQUFxQjt3QkFDckIsSUFBSWpCLEtBQUtDLGFBQWEsQ0FBQ1QsSUFBSSxLQUFLSCxRQUFRSixPQUFPLENBQUNpQixRQUFRLElBQUliLFFBQVFKLE9BQU8sQ0FBQ2lCLFFBQVEsS0FBSyxXQUFXOzRCQUNoRyw0QkFBNEI7NEJBQzVCLGdDQUFnQzs0QkFDaENTLFNBQVNNLE1BQU07d0JBQ25CLENBQUM7b0JBQ0wsQ0FBQztnQkFDTDtZQUNKLENBQUM7UUFDTCxFQUFFLE9BQU9SLEtBQUs7WUFDVlMsUUFBUUMsS0FBSyxDQUFDLDhDQUE4Q1Y7UUFDaEU7SUFDSjtBQUNKO0FBQ0ExQixrQkFBZSxHQUFHUTtBQUVsQixJQUFJLENBQUMsT0FBT1IsUUFBUUUsT0FBTyxLQUFLLGNBQWUsT0FBT0YsUUFBUUUsT0FBTyxLQUFLLFlBQVlGLFFBQVFFLE9BQU8sS0FBSyxJQUFJLEtBQU0sT0FBT0YsUUFBUUUsT0FBTyxDQUFDbUMsVUFBVSxLQUFLLGFBQWE7SUFDckt2QyxPQUFPQyxjQUFjLENBQUNDLFFBQVFFLE9BQU8sRUFBRSxjQUFjO1FBQUVELE9BQU8sSUFBSTtJQUFDO0lBQ25FSCxPQUFPd0MsTUFBTSxDQUFDdEMsUUFBUUUsT0FBTyxFQUFFRjtJQUMvQnVDLE9BQU92QyxPQUFPLEdBQUdBLFFBQVFFLE9BQU87QUFDbEMsQ0FBQyxDQUVELG9EQUFvRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzPzg0NWMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2FzeW5jX3RvX2dlbmVyYXRvciA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19hc3luY190b19nZW5lcmF0b3IuanNcIikuZGVmYXVsdDtcbnZhciBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanNcIikuZGVmYXVsdDtcbnZhciBfcm91dGVyID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9yb3V0ZXJcIikpO1xudmFyIF93ZWJzb2NrZXQgPSByZXF1aXJlKFwiLi9lcnJvci1vdmVybGF5L3dlYnNvY2tldFwiKTtcbnZhciBfZGVmYXVsdCA9IF9hc3luY190b19nZW5lcmF0b3IoZnVuY3Rpb24qKHBhZ2UpIHtcbiAgICBpZiAocGFnZSkge1xuICAgICAgICAvLyBpbiBBTVAgdGhlIHJvdXRlciBpc24ndCBpbml0aWFsaXplZCBvbiB0aGUgY2xpZW50IGFuZFxuICAgICAgICAvLyBjbGllbnQtdHJhbnNpdGlvbnMgZG9uJ3Qgb2NjdXIgc28gcGluZyBpbml0aWFsIHBhZ2VcbiAgICAgICAgc2V0SW50ZXJ2YWwoKCk9PntcbiAgICAgICAgICAgICgwLCBfd2Vic29ja2V0KS5zZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZXZlbnQ6ICdwaW5nJyxcbiAgICAgICAgICAgICAgICBwYWdlXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0sIDI1MDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIF9yb3V0ZXIuZGVmYXVsdC5yZWFkeSgoKT0+e1xuICAgICAgICAgICAgc2V0SW50ZXJ2YWwoKCk9PntcbiAgICAgICAgICAgICAgICAvLyB3aGVuIG5vdEZvdW5kOiB0cnVlIGlzIHJldHVybmVkIHdlIHNob3VsZCB1c2UgdGhlIG5vdEZvdW5kUGFnZVxuICAgICAgICAgICAgICAgIC8vIGFzIHRoZSBSb3V0ZXIucGF0aG5hbWUgd2lsbCBwb2ludCB0byB0aGUgNDA0IHBhZ2UgYnV0IHdlIHdhbnRcbiAgICAgICAgICAgICAgICAvLyB0byBwaW5nIHRoZSBzb3VyY2UgcGFnZSB0aGF0IHJldHVybmVkIG5vdEZvdW5kOiB0cnVlIGluc3RlYWRcbiAgICAgICAgICAgICAgICBjb25zdCBub3RGb3VuZFNyY1BhZ2UgPSBzZWxmLl9fTkVYVF9EQVRBX18ubm90Rm91bmRTcmNQYWdlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lID0gKF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZSA9PT0gJy80MDQnIHx8IF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZSA9PT0gJy9fZXJyb3InKSAmJiBub3RGb3VuZFNyY1BhZ2UgPyBub3RGb3VuZFNyY1BhZ2UgOiBfcm91dGVyLmRlZmF1bHQucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgKDAsIF93ZWJzb2NrZXQpLnNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdwaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogcGF0aG5hbWVcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9LCAyNTAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgICgwLCBfd2Vic29ja2V0KS5hZGRNZXNzYWdlTGlzdGVuZXIoKGV2ZW50KT0+e1xuICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCd7JykgPT09IC0xKSByZXR1cm47XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShldmVudC5kYXRhKTtcbiAgICAgICAgICAgIC8vIGRvbid0IGF0dGVtcHQgZmV0Y2hpbmcgdGhlIHBhZ2UgaWYgd2UncmUgYWxyZWFkeSBzaG93aW5nXG4gICAgICAgICAgICAvLyB0aGUgZGV2IG92ZXJsYXkgYXMgdGhpcyBjYW4gY2F1c2UgdGhlIGVycm9yIHRvIGJlIHRyaWdnZXJlZFxuICAgICAgICAgICAgLy8gcmVwZWF0ZWRseVxuICAgICAgICAgICAgaWYgKHBheWxvYWQuZXZlbnQgPT09ICdwb25nJyAmJiBwYXlsb2FkLmludmFsaWQgJiYgIXNlbGYuX19ORVhUX0RBVEFfXy5lcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBQYXlsb2FkIGNhbiBiZSBpbnZhbGlkIGV2ZW4gaWYgdGhlIHBhZ2UgZG9lcyBleGlzdC5cbiAgICAgICAgICAgICAgICAvLyBTbywgd2UgY2hlY2sgaWYgaXQgY2FuIGJlIGNyZWF0ZWQuXG4gICAgICAgICAgICAgICAgZmV0Y2gobG9jYXRpb24uaHJlZiwge1xuICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJ1xuICAgICAgICAgICAgICAgIH0pLnRoZW4oKHBhZ2VSZXMpPT57XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYWdlUmVzLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQYWdlIGV4aXN0cyBub3csIHJlbG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQYWdlIGRvZXNuJ3QgZXhpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLl9fTkVYVF9EQVRBX18ucGFnZSA9PT0gX3JvdXRlci5kZWZhdWx0LnBhdGhuYW1lICYmIF9yb3V0ZXIuZGVmYXVsdC5wYXRobmFtZSAhPT0gJy9fZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIHN0aWxsIG9uIHRoZSBwYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbG9hZCB0byBzaG93IDQwNCBlcnJvciBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdvbi1kZW1hbmQtZW50cmllcyBmYWlsZWQgdG8gcGFyc2UgcmVzcG9uc2UnLCBlcnIpO1xuICAgICAgICB9XG4gICAgfSk7XG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1vbi1kZW1hbmQtZW50cmllcy1jbGllbnQuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZGVmYXVsdCIsIl9hc3luY190b19nZW5lcmF0b3IiLCJyZXF1aXJlIiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwiX3JvdXRlciIsIl93ZWJzb2NrZXQiLCJfZGVmYXVsdCIsInBhZ2UiLCJzZXRJbnRlcnZhbCIsInNlbmRNZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwicmVhZHkiLCJub3RGb3VuZFNyY1BhZ2UiLCJzZWxmIiwiX19ORVhUX0RBVEFfXyIsInBhdGhuYW1lIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwiZGF0YSIsImluZGV4T2YiLCJwYXlsb2FkIiwicGFyc2UiLCJpbnZhbGlkIiwiZXJyIiwiZmV0Y2giLCJsb2NhdGlvbiIsImhyZWYiLCJjcmVkZW50aWFscyIsInRoZW4iLCJwYWdlUmVzIiwic3RhdHVzIiwicmVsb2FkIiwiY29uc29sZSIsImVycm9yIiwiX19lc01vZHVsZSIsImFzc2lnbiIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\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 [page] = obj.data;\n if (page === window.next.router.pathname && typeof window.next.router.components[page] === \"undefined\") {\n (0, _websocket).sendMessage(JSON.stringify({\n event: \"client-added-page\",\n clientId: window.__nextDevClientId,\n page\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvd2VicGFjay1ob3QtbWlkZGxld2FyZS1jbGllbnQuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsa0JBQWUsR0FBRyxLQUFLO0FBQ3ZCLElBQUlHLDJCQUEyQkMsbUpBQStEO0FBQzlGLElBQUlDLGdCQUFnQkYseUJBQXlCQyxtQkFBT0EsQ0FBQywyR0FBZ0M7QUFDckYsSUFBSUUsYUFBYUYsbUJBQU9BLENBQUMsaUdBQTJCO0FBQ3BELElBQUlHLFdBQVcsSUFBSTtJQUNmLE1BQU1DLFlBQVksQ0FBQyxHQUFHSCxhQUFhLEVBQUVILE9BQU87SUFDNUNNLFVBQVVDLG1CQUFtQixDQUFDLENBQUNDLE1BQU07UUFDakMsSUFBSUEsSUFBSUMsTUFBTSxLQUFLLGNBQWM7WUFDNUIsSUFBR0wsVUFBVSxFQUFFTSxXQUFXLENBQUNDLEtBQUtDLFNBQVMsQ0FBQztnQkFDdkNDLE9BQU87Z0JBQ1BDLFVBQVVDLE9BQU9DLGlCQUFpQjtZQUN0QztZQUNBLE9BQU9ELE9BQU9FLFFBQVEsQ0FBQ0MsTUFBTTtRQUNqQyxDQUFDO1FBQ0QsSUFBSVYsSUFBSUMsTUFBTSxLQUFLLGVBQWU7WUFDOUIsTUFBTSxDQUFDVSxLQUFLLEdBQUdYLElBQUlZLElBQUk7WUFDdkIsSUFBSUQsU0FBU0osT0FBT00sSUFBSSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsRUFBRTtnQkFDckMsSUFBR25CLFVBQVUsRUFBRU0sV0FBVyxDQUFDQyxLQUFLQyxTQUFTLENBQUM7b0JBQ3ZDQyxPQUFPO29CQUNQQyxVQUFVQyxPQUFPQyxpQkFBaUI7b0JBQ2xDRztnQkFDSjtnQkFDQSxPQUFPSixPQUFPRSxRQUFRLENBQUNDLE1BQU07WUFDakMsQ0FBQztZQUNEO1FBQ0osQ0FBQztRQUNELElBQUlWLElBQUlDLE1BQU0sS0FBSyxhQUFhO1lBQzVCLE1BQU0sQ0FBQ1UsS0FBSyxHQUFHWCxJQUFJWSxJQUFJO1lBQ3ZCLElBQUlELFNBQVNKLE9BQU9NLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLElBQUksT0FBT1IsT0FBT00sSUFBSSxDQUFDQyxNQUFNLENBQUNFLFVBQVUsQ0FBQ0wsS0FBSyxLQUFLLGFBQWE7Z0JBQ25HLElBQUdmLFVBQVUsRUFBRU0sV0FBVyxDQUFDQyxLQUFLQyxTQUFTLENBQUM7b0JBQ3ZDQyxPQUFPO29CQUNQQyxVQUFVQyxPQUFPQyxpQkFBaUI7b0JBQ2xDRztnQkFDSjtnQkFDQSxPQUFPSixPQUFPRSxRQUFRLENBQUNDLE1BQU07WUFDakMsQ0FBQztZQUNEO1FBQ0osQ0FBQztRQUNELE1BQU0sSUFBSU8sTUFBTSx1QkFBdUJqQixJQUFJQyxNQUFNLEVBQUU7SUFDdkQ7SUFDQSxPQUFPSDtBQUNYO0FBQ0FSLGtCQUFlLEdBQUdPO0FBRWxCLElBQUksQ0FBQyxPQUFPUCxRQUFRRSxPQUFPLEtBQUssY0FBZSxPQUFPRixRQUFRRSxPQUFPLEtBQUssWUFBWUYsUUFBUUUsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPRixRQUFRRSxPQUFPLENBQUMwQixVQUFVLEtBQUssYUFBYTtJQUNySzlCLE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUUUsT0FBTyxFQUFFLGNBQWM7UUFBRUQsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU8rQixNQUFNLENBQUM3QixRQUFRRSxPQUFPLEVBQUVGO0lBQy9COEIsT0FBTzlCLE9BQU8sR0FBR0EsUUFBUUUsT0FBTztBQUNsQyxDQUFDLENBRUQseURBQXlEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2Rldi93ZWJwYWNrLWhvdC1taWRkbGV3YXJlLWNsaWVudC5qcz85YWQyIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9ob3REZXZDbGllbnQgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vZXJyb3Itb3ZlcmxheS9ob3QtZGV2LWNsaWVudFwiKSk7XG52YXIgX3dlYnNvY2tldCA9IHJlcXVpcmUoXCIuL2Vycm9yLW92ZXJsYXkvd2Vic29ja2V0XCIpO1xudmFyIF9kZWZhdWx0ID0gKCk9PntcbiAgICBjb25zdCBkZXZDbGllbnQgPSAoMCwgX2hvdERldkNsaWVudCkuZGVmYXVsdCgpO1xuICAgIGRldkNsaWVudC5zdWJzY3JpYmVUb0htckV2ZW50KChvYmopPT57XG4gICAgICAgIGlmIChvYmouYWN0aW9uID09PSAncmVsb2FkUGFnZScpIHtcbiAgICAgICAgICAgICgwLCBfd2Vic29ja2V0KS5zZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtcmVsb2FkLXBhZ2UnLFxuICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWRcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iai5hY3Rpb24gPT09ICdyZW1vdmVkUGFnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IFtwYWdlXSA9IG9iai5kYXRhO1xuICAgICAgICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSkge1xuICAgICAgICAgICAgICAgICgwLCBfd2Vic29ja2V0KS5zZW5kTWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXJlbW92ZWQtcGFnZScsXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqLmFjdGlvbiA9PT0gJ2FkZGVkUGFnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IFtwYWdlXSA9IG9iai5kYXRhO1xuICAgICAgICAgICAgaWYgKHBhZ2UgPT09IHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSAmJiB0eXBlb2Ygd2luZG93Lm5leHQucm91dGVyLmNvbXBvbmVudHNbcGFnZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgKDAsIF93ZWJzb2NrZXQpLnNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtYWRkZWQtcGFnZScsXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgYWN0aW9uICcgKyBvYmouYWN0aW9uKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGV2Q2xpZW50O1xufTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD13ZWJwYWNrLWhvdC1taWRkbGV3YXJlLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJkZWZhdWx0IiwiX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IiwicmVxdWlyZSIsIl9ob3REZXZDbGllbnQiLCJfd2Vic29ja2V0IiwiX2RlZmF1bHQiLCJkZXZDbGllbnQiLCJzdWJzY3JpYmVUb0htckV2ZW50Iiwib2JqIiwiYWN0aW9uIiwic2VuZE1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJjbGllbnRJZCIsIndpbmRvdyIsIl9fbmV4dERldkNsaWVudElkIiwibG9jYXRpb24iLCJyZWxvYWQiLCJwYWdlIiwiZGF0YSIsIm5leHQiLCJyb3V0ZXIiLCJwYXRobmFtZSIsImNvbXBvbmVudHMiLCJFcnJvciIsIl9fZXNNb2R1bGUiLCJhc3NpZ24iLCJtb2R1bGUiXSwic291cmNlUm9vdCI6IiJ9\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.5\";\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 }, false ? /*#__PURE__*/ 0 : elem));\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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RVIsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9pRixNQUFNLENBQUMvRSxRQUFRUyxPQUFPLEVBQUVUO0lBQy9CNlQsT0FBTzdULE9BQU8sR0FBR0EsUUFBUVMsT0FBTztBQUNsQyxDQUFDLENBRUQsaUNBQWlDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2luZGV4LmpzPzQ2Y2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmluaXRpYWxpemUgPSBpbml0aWFsaXplO1xuZXhwb3J0cy5oeWRyYXRlID0gaHlkcmF0ZTtcbmV4cG9ydHMuZW1pdHRlciA9IGV4cG9ydHMucm91dGVyID0gZXhwb3J0cy52ZXJzaW9uID0gdm9pZCAwO1xudmFyIF9hc3luY190b19nZW5lcmF0b3IgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9fYXN5bmNfdG9fZ2VuZXJhdG9yLmpzXCIpLmRlZmF1bHQ7XG52YXIgX2V4dGVuZHMgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9fZXh0ZW5kcy5qc1wiKS5kZWZhdWx0O1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL2xpYi9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzXCIpLmRlZmF1bHQ7XG5yZXF1aXJlKFwiLi4vYnVpbGQvcG9seWZpbGxzL3BvbHlmaWxsLW1vZHVsZVwiKTtcbnZhciBfcmVhY3QgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfY2xpZW50ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC1kb20vY2xpZW50XCIpKTtcbnZhciBfaGVhZE1hbmFnZXJDb250ZXh0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHRcIik7XG52YXIgX21pdHQgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvbWl0dFwiKSk7XG52YXIgX3JvdXRlckNvbnRleHQgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dFwiKTtcbnZhciBfaXNEeW5hbWljID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWNcIik7XG52YXIgX3F1ZXJ5c3RyaW5nID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nXCIpO1xudmFyIF9ydW50aW1lQ29uZmlnID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcnVudGltZS1jb25maWdcIik7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvdXRpbHNcIik7XG52YXIgX3BvcnRhbCA9IHJlcXVpcmUoXCIuL3BvcnRhbFwiKTtcbnZhciBfaGVhZE1hbmFnZXIgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vaGVhZC1tYW5hZ2VyXCIpKTtcbnZhciBfcGFnZUxvYWRlciA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi9wYWdlLWxvYWRlclwiKSk7XG52YXIgX3BlcmZvcm1hbmNlUmVsYXllciA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi9wZXJmb3JtYW5jZS1yZWxheWVyXCIpKTtcbnZhciBfcm91dGVBbm5vdW5jZXIgPSByZXF1aXJlKFwiLi9yb3V0ZS1hbm5vdW5jZXJcIik7XG52YXIgX3JvdXRlciA9IHJlcXVpcmUoXCIuL3JvdXRlclwiKTtcbnZhciBfaXNFcnJvciA9IHJlcXVpcmUoXCIuLi9saWIvaXMtZXJyb3JcIik7XG52YXIgX2ltYWdlQ29uZmlnQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2ltYWdlLWNvbmZpZy1jb250ZXh0XCIpO1xudmFyIF9yZW1vdmVCYXNlUGF0aCA9IHJlcXVpcmUoXCIuL3JlbW92ZS1iYXNlLXBhdGhcIik7XG52YXIgX2hhc0Jhc2VQYXRoID0gcmVxdWlyZShcIi4vaGFzLWJhc2UtcGF0aFwiKTtcbnZhciBfYXBwUm91dGVyQ29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dFwiKTtcbnZhciBfYWRhcHRlcnMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvYWRhcHRlcnNcIik7XG52YXIgX2hvb2tzQ2xpZW50Q29udGV4dCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0XCIpO1xudmFyIF9vblJlY292ZXJhYmxlRXJyb3IgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4vb24tcmVjb3ZlcmFibGUtZXJyb3JcIikpO1xuY29uc3QgdmVyc2lvbiA9IFwiMTMuMS41XCI7XG5leHBvcnRzLnZlcnNpb24gPSB2ZXJzaW9uO1xubGV0IHJvdXRlcjtcbmV4cG9ydHMucm91dGVyID0gcm91dGVyO1xuY29uc3QgZW1pdHRlciA9ICgwLCBfbWl0dCkuZGVmYXVsdCgpO1xuZXhwb3J0cy5lbWl0dGVyID0gZW1pdHRlcjtcbmNvbnN0IGxvb3NlVG9BcnJheSA9IChpbnB1dCk9PltdLnNsaWNlLmNhbGwoaW5wdXQpO1xubGV0IGluaXRpYWxEYXRhO1xubGV0IGRlZmF1bHRMb2NhbGUgPSB1bmRlZmluZWQ7XG5sZXQgYXNQYXRoO1xubGV0IHBhZ2VMb2FkZXI7XG5sZXQgYXBwRWxlbWVudDtcbmxldCBoZWFkTWFuYWdlcjtcbmxldCBpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmUgPSBmYWxzZTtcbmxldCBsYXN0QXBwUHJvcHM7XG5sZXQgbGFzdFJlbmRlclJlamVjdDtcbmxldCB3ZWJwYWNrSE1SO1xubGV0IENhY2hlZEFwcCwgb25QZXJmRW50cnk7XG5sZXQgQ2FjaGVkQ29tcG9uZW50O1xuc2VsZi5fX25leHRfcmVxdWlyZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXztcbmNsYXNzIENvbnRhaW5lciBleHRlbmRzIF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCB7XG4gICAgY29tcG9uZW50RGlkQ2F0Y2goY29tcG9uZW50RXJyLCBpbmZvKSB7XG4gICAgICAgIHRoaXMucHJvcHMuZm4oY29tcG9uZW50RXJyLCBpbmZvKTtcbiAgICB9XG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9IYXNoKCk7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgcm91dGVyIHN0YXRlIGlmOlxuICAgICAgICAvLyAtIHRoZSBwYWdlIHdhcyAoYXV0bykgZXhwb3J0ZWQgYW5kIGhhcyBhIHF1ZXJ5IHN0cmluZyBvciBzZWFyY2ggKGhhc2gpXG4gICAgICAgIC8vIC0gaXQgd2FzIGF1dG8gZXhwb3J0ZWQgYW5kIGlzIGEgZHluYW1pYyByb3V0ZSAodG8gcHJvdmlkZSBwYXJhbXMpXG4gICAgICAgIC8vIC0gaWYgaXQgaXMgYSBjbGllbnQtc2lkZSBza2VsZXRvbiAoZmFsbGJhY2sgcmVuZGVyKVxuICAgICAgICAvLyAtIGlmIG1pZGRsZXdhcmUgbWF0Y2hlcyB0aGUgY3VycmVudCBwYWdlIChtYXkgaGF2ZSByZXdyaXRlIHBhcmFtcylcbiAgICAgICAgLy8gLSBpZiByZXdyaXRlcyBpbiBuZXh0LmNvbmZpZy5qcyBtYXRjaCAobWF5IGhhdmUgcmV3cml0ZSBwYXJhbXMpXG4gICAgICAgIGlmIChyb3V0ZXIuaXNTc3IgJiYgKGluaXRpYWxEYXRhLmlzRmFsbGJhY2sgfHwgaW5pdGlhbERhdGEubmV4dEV4cG9ydCAmJiAoKDAsIF9pc0R5bmFtaWMpLmlzRHluYW1pY1JvdXRlKHJvdXRlci5wYXRobmFtZSkgfHwgbG9jYXRpb24uc2VhcmNoIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgfHwgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlKSB8fCBpbml0aWFsRGF0YS5wcm9wcyAmJiBpbml0aWFsRGF0YS5wcm9wcy5fX05fU1NHICYmIChsb2NhdGlvbi5zZWFyY2ggfHwgcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyB8fCBpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmUpKSkge1xuICAgICAgICAgICAgLy8gdXBkYXRlIHF1ZXJ5IG9uIG1vdW50IGZvciBleHBvcnRlZCBwYWdlc1xuICAgICAgICAgICAgcm91dGVyLnJlcGxhY2Uocm91dGVyLnBhdGhuYW1lICsgJz8nICsgU3RyaW5nKCgwLCBfcXVlcnlzdHJpbmcpLmFzc2lnbigoMCwgX3F1ZXJ5c3RyaW5nKS51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHJvdXRlci5xdWVyeSksIG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKSkpLCBhc1BhdGgsIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgLy8gV0FSTklORzogYF9oYCBpcyBhbiBpbnRlcm5hbCBvcHRpb24gZm9yIGhhbmRpbmcgTmV4dC5qc1xuICAgICAgICAgICAgICAgIC8vIGNsaWVudC1zaWRlIGh5ZHJhdGlvbi4gWW91ciBhcHAgc2hvdWxkIF9uZXZlcl8gdXNlIHRoaXMgcHJvcGVydHkuXG4gICAgICAgICAgICAgICAgLy8gSXQgbWF5IGNoYW5nZSBhdCBhbnkgdGltZSB3aXRob3V0IG5vdGljZS5cbiAgICAgICAgICAgICAgICBfaDogMSxcbiAgICAgICAgICAgICAgICAvLyBGYWxsYmFjayBwYWdlcyBtdXN0IHRyaWdnZXIgdGhlIGRhdGEgZmV0Y2gsIHNvIHRoZSB0cmFuc2l0aW9uIGlzXG4gICAgICAgICAgICAgICAgLy8gbm90IHNoYWxsb3cuXG4gICAgICAgICAgICAgICAgLy8gT3RoZXIgcGFnZXMgKHN0cmljdGx5IHVwZGF0aW5nIHF1ZXJ5KSBoYXBwZW5zIHNoYWxsb3dseSwgYXMgZGF0YVxuICAgICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyB3b3VsZCBhbHJlYWR5IGJlIHByZXNlbnQuXG4gICAgICAgICAgICAgICAgc2hhbGxvdzogIWluaXRpYWxEYXRhLmlzRmFsbGJhY2sgJiYgIWluaXRpYWxNYXRjaGVzTWlkZGxld2FyZVxuICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICBpZiAoIWVyci5jYW5jZWxsZWQpIHRocm93IGVycjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb0hhc2goKTtcbiAgICB9XG4gICAgc2Nyb2xsVG9IYXNoKCkge1xuICAgICAgICBsZXQgeyBoYXNoICB9ID0gbG9jYXRpb247XG4gICAgICAgIGhhc2ggPSBoYXNoICYmIGhhc2guc3Vic3RyaW5nKDEpO1xuICAgICAgICBpZiAoIWhhc2gpIHJldHVybjtcbiAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoKTtcbiAgICAgICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgICAgICAvLyBJZiB3ZSBjYWxsIHNjcm9sbEludG9WaWV3KCkgaW4gaGVyZSB3aXRob3V0IGEgc2V0VGltZW91dFxuICAgICAgICAvLyBpdCB3b24ndCBzY3JvbGwgcHJvcGVybHkuXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PmVsLnNjcm9sbEludG9WaWV3KCksIDApO1xuICAgIH1cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHsgUmVhY3REZXZPdmVybGF5ICwgIH0gPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvQG5leHQvcmVhY3QtZGV2LW92ZXJsYXkvZGlzdC9jbGllbnQnKTtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoUmVhY3REZXZPdmVybGF5LCBudWxsLCB0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIGluaXRpYWxpemUoKSB7XG4gICAgcmV0dXJuIF9pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfaW5pdGlhbGl6ZSgpIHtcbiAgICBfaW5pdGlhbGl6ZSA9IF9hc3luY190b19nZW5lcmF0b3IoZnVuY3Rpb24qKG9wdHMgPSB7fSkge1xuICAgICAgICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhpcyBzcGVjaWZpYyBsaW5lcyBhcmUgcmVtb3ZlZCBpbiBwcm9kdWN0aW9uXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgd2VicGFja0hNUiA9IG9wdHMud2VicGFja0hNUjtcbiAgICAgICAgfVxuICAgICAgICBpbml0aWFsRGF0YSA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19fTkVYVF9EQVRBX18nKS50ZXh0Q29udGVudCk7XG4gICAgICAgIHdpbmRvdy5fX05FWFRfREFUQV9fID0gaW5pdGlhbERhdGE7XG4gICAgICAgIGRlZmF1bHRMb2NhbGUgPSBpbml0aWFsRGF0YS5kZWZhdWx0TG9jYWxlO1xuICAgICAgICBjb25zdCBwcmVmaXggPSBpbml0aWFsRGF0YS5hc3NldFByZWZpeCB8fCAnJztcbiAgICAgICAgLy8gV2l0aCBkeW5hbWljIGFzc2V0UHJlZml4IGl0J3Mgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIHNldCBhc3NldFByZWZpeCBhdCB0aGUgYnVpbGQgdGltZVxuICAgICAgICAvLyBTbywgdGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIGNsaWVudCBzaWRlIGF0IHJ1bnRpbWVcbiAgICAgICAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBgJHtwcmVmaXh9L19uZXh0L2AgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgIDtcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBuZXh0L2NvbmZpZyB3aXRoIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gICAgICAgICgwLCBfcnVudGltZUNvbmZpZykuc2V0Q29uZmlnKHtcbiAgICAgICAgICAgIHNlcnZlclJ1bnRpbWVDb25maWc6IHt9LFxuICAgICAgICAgICAgcHVibGljUnVudGltZUNvbmZpZzogaW5pdGlhbERhdGEucnVudGltZUNvbmZpZyB8fCB7fVxuICAgICAgICB9KTtcbiAgICAgICAgYXNQYXRoID0gKDAsIF91dGlscykuZ2V0VVJMKCk7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBub3QgdG8gYXR0ZW1wdCBzdHJpcHBpbmcgYmFzZVBhdGggZm9yIDQwNHNcbiAgICAgICAgaWYgKCgwLCBfaGFzQmFzZVBhdGgpLmhhc0Jhc2VQYXRoKGFzUGF0aCkpIHtcbiAgICAgICAgICAgIGFzUGF0aCA9ICgwLCBfcmVtb3ZlQmFzZVBhdGgpLnJlbW92ZUJhc2VQYXRoKGFzUGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCAgfSA9IHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZGV0ZWN0RG9tYWluTG9jYWxlICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJyk7XG4gICAgICAgICAgICBjb25zdCB7IHBhcnNlUmVsYXRpdmVVcmwgIH0gPSByZXF1aXJlKCcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwnKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZm9ybWF0VXJsICB9ID0gcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybCcpO1xuICAgICAgICAgICAgaWYgKGluaXRpYWxEYXRhLmxvY2FsZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRBcyA9IHBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGVQYXRoUmVzdWx0ID0gbm9ybWFsaXplTG9jYWxlUGF0aChwYXJzZWRBcy5wYXRobmFtZSwgaW5pdGlhbERhdGEubG9jYWxlcyk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZVBhdGhSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkQXMucGF0aG5hbWUgPSBsb2NhbGVQYXRoUmVzdWx0LnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgICAgICBhc1BhdGggPSBmb3JtYXRVcmwocGFyc2VkQXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGRlcml2ZSB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgaXQgd2Fzbid0IGRldGVjdGVkIGluIHRoZSBhc1BhdGhcbiAgICAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2UgZG9uJ3QgcHJlcmVuZGVyIHN0YXRpYyBwYWdlcyB3aXRoIGFsbCBwb3NzaWJsZSBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgIC8vIGxvY2FsZXNcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExvY2FsZSA9IGluaXRpYWxEYXRhLmxvY2FsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYXR0ZW1wdCBkZXRlY3RpbmcgZGVmYXVsdCBsb2NhbGUgYmFzZWQgb24gaG9zdG5hbWVcbiAgICAgICAgICAgICAgICBjb25zdCBkZXRlY3RlZERvbWFpbiA9IGRldGVjdERvbWFpbkxvY2FsZShwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9ET01BSU5TLCB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpO1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIGlmIGRlZmF1bHRMb2NhbGUgbmVlZHMgdG8gYmUgcG9wdWxhdGVkIGFmdGVyXG4gICAgICAgICAgICAgICAgLy8gaHlkcmF0aW9uIHRvIHByZXZlbnQgbWlzbWF0Y2hlZCByZW5kZXJzXG4gICAgICAgICAgICAgICAgaWYgKGRldGVjdGVkRG9tYWluKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUgPSBkZXRlY3RlZERvbWFpbi5kZWZhdWx0TG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5pdGlhbERhdGEuc2NyaXB0TG9hZGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGluaXRTY3JpcHRMb2FkZXIgIH0gPSByZXF1aXJlKCcuL3NjcmlwdCcpO1xuICAgICAgICAgICAgaW5pdFNjcmlwdExvYWRlcihpbml0aWFsRGF0YS5zY3JpcHRMb2FkZXIpO1xuICAgICAgICB9XG4gICAgICAgIHBhZ2VMb2FkZXIgPSBuZXcgX3BhZ2VMb2FkZXIuZGVmYXVsdChpbml0aWFsRGF0YS5idWlsZElkLCBwcmVmaXgpO1xuICAgICAgICBjb25zdCByZWdpc3RlciA9IChbciwgZl0pPT5wYWdlTG9hZGVyLnJvdXRlTG9hZGVyLm9uRW50cnlwb2ludChyLCBmKTtcbiAgICAgICAgaWYgKHdpbmRvdy5fX05FWFRfUCkge1xuICAgICAgICAgICAgLy8gRGVmZXIgcGFnZSByZWdpc3RyYXRpb24gZm9yIGFub3RoZXIgdGljay4gVGhpcyB3aWxsIGluY3JlYXNlIHRoZSBvdmVyYWxsXG4gICAgICAgICAgICAvLyBsYXRlbmN5IGluIGh5ZHJhdGluZyB0aGUgcGFnZSwgYnV0IHJlZHVjZSB0aGUgdG90YWwgYmxvY2tpbmcgdGltZS5cbiAgICAgICAgICAgIHdpbmRvdy5fX05FWFRfUC5tYXAoKHApPT5zZXRUaW1lb3V0KCgpPT5yZWdpc3RlcihwKSwgMCkpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5fX05FWFRfUCA9IFtdO1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaCA9IHJlZ2lzdGVyO1xuICAgICAgICBoZWFkTWFuYWdlciA9ICgwLCBfaGVhZE1hbmFnZXIpLmRlZmF1bHQoKTtcbiAgICAgICAgaGVhZE1hbmFnZXIuZ2V0SXNTc3IgPSAoKT0+e1xuICAgICAgICAgICAgcmV0dXJuIHJvdXRlci5pc1NzcjtcbiAgICAgICAgfTtcbiAgICAgICAgYXBwRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX25leHQnKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFzc2V0UHJlZml4OiBwcmVmaXhcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICByZXR1cm4gX2luaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckFwcChBcHAsIGFwcFByb3BzKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChBcHAsIE9iamVjdC5hc3NpZ24oe30sIGFwcFByb3BzKSk7XG59XG5mdW5jdGlvbiBBcHBDb250YWluZXIoeyBjaGlsZHJlbiAgfSkge1xuICAgIHZhciBfYXV0b0V4cG9ydDtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KENvbnRhaW5lciwge1xuICAgICAgICBmbjogKGVycm9yKT0+Ly8gVE9ETzogRml4IGRpc2FibGVkIGVzbGludCBydWxlXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgICAgICByZW5kZXJFcnJvcih7XG4gICAgICAgICAgICAgICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgICAgICAgICAgICAgZXJyOiBlcnJvclxuICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PmNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbmRlcmluZyBwYWdlOiAnLCBlcnIpKVxuICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfYXBwUm91dGVyQ29udGV4dC5BcHBSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiAoMCwgX2FkYXB0ZXJzKS5hZGFwdEZvckFwcFJvdXRlckluc3RhbmNlKHJvdXRlcilcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2hvb2tzQ2xpZW50Q29udGV4dC5TZWFyY2hQYXJhbXNDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgICAgIHZhbHVlOiAoMCwgX2FkYXB0ZXJzKS5hZGFwdEZvclNlYXJjaFBhcmFtcyhyb3V0ZXIpXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9hZGFwdGVycy5QYXRobmFtZUNvbnRleHRQcm92aWRlckFkYXB0ZXIsIHtcbiAgICAgICAgcm91dGVyOiByb3V0ZXIsXG4gICAgICAgIGlzQXV0b0V4cG9ydDogKF9hdXRvRXhwb3J0ID0gc2VsZi5fX05FWFRfREFUQV9fLmF1dG9FeHBvcnQpICE9IG51bGwgPyBfYXV0b0V4cG9ydCA6IGZhbHNlXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yb3V0ZXJDb250ZXh0LlJvdXRlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6ICgwLCBfcm91dGVyKS5tYWtlUHVibGljUm91dGVySW5zdGFuY2Uocm91dGVyKVxuICAgIH0sIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfaGVhZE1hbmFnZXJDb250ZXh0LkhlYWRNYW5hZ2VyQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgICB2YWx1ZTogaGVhZE1hbmFnZXJcbiAgICB9LCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX2ltYWdlQ29uZmlnQ29udGV4dC5JbWFnZUNvbmZpZ0NvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IHByb2Nlc3MuZW52Ll9fTkVYVF9JTUFHRV9PUFRTXG4gICAgfSwgY2hpbGRyZW4pKSkpKSkpO1xufVxuY29uc3Qgd3JhcEFwcCA9IChBcHApPT4od3JhcHBlZEFwcFByb3BzKT0+e1xuICAgICAgICBjb25zdCBhcHBQcm9wcyA9IF9leHRlbmRzKHt9LCB3cmFwcGVkQXBwUHJvcHMsIHtcbiAgICAgICAgICAgIENvbXBvbmVudDogQ2FjaGVkQ29tcG9uZW50LFxuICAgICAgICAgICAgZXJyOiBpbml0aWFsRGF0YS5lcnIsXG4gICAgICAgICAgICByb3V0ZXJcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQXBwQ29udGFpbmVyLCBudWxsLCByZW5kZXJBcHAoQXBwLCBhcHBQcm9wcykpO1xuICAgIH07XG4vLyBUaGlzIG1ldGhvZCBoYW5kbGVzIGFsbCBydW50aW1lIGFuZCBkZWJ1ZyBlcnJvcnMuXG4vLyA0MDQgYW5kIDUwMCBlcnJvcnMgYXJlIHNwZWNpYWwga2luZCBvZiBlcnJvcnNcbi8vIGFuZCB0aGV5IGFyZSBzdGlsbCBoYW5kbGUgdmlhIHRoZSBtYWluIHJlbmRlciBtZXRob2QuXG5mdW5jdGlvbiByZW5kZXJFcnJvcihyZW5kZXJFcnJvclByb3BzKSB7XG4gICAgbGV0IHsgQXBwICwgZXJyICB9ID0gcmVuZGVyRXJyb3JQcm9wcztcbiAgICAvLyBJbiBkZXZlbG9wbWVudCBydW50aW1lIGVycm9ycyBhcmUgY2F1Z2h0IGJ5IG91ciBvdmVybGF5XG4gICAgLy8gSW4gcHJvZHVjdGlvbiB3ZSBjYXRjaCBydW50aW1lIGVycm9ycyB1c2luZyBjb21wb25lbnREaWRDYXRjaCB3aGljaCB3aWxsIHRyaWdnZXIgcmVuZGVyRXJyb3JcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAvLyBBIE5leHQuanMgcmVuZGVyaW5nIHJ1bnRpbWUgZXJyb3IgaXMgYWx3YXlzIHVucmVjb3ZlcmFibGVcbiAgICAgICAgLy8gRklYTUU6IGxldCdzIG1ha2UgdGhpcyByZWNvdmVyYWJsZSAoZXJyb3IgaW4gR0lQIGNsaWVudC10cmFuc2l0aW9uKVxuICAgICAgICB3ZWJwYWNrSE1SLm9uVW5yZWNvdmVyYWJsZUVycm9yKCk7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVuZGVyIGFuIGVtcHR5IDxBcHA+IHNvIHRoYXQgdGhlIGA8UmVhY3REZXZPdmVybGF5PmAgY2FuXG4gICAgICAgIC8vIHJlbmRlciBpdHNlbGYuXG4gICAgICAgIC8vIFRPRE86IEZpeCBkaXNhYmxlZCBlc2xpbnQgcnVsZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgIHJldHVybiBkb1JlbmRlcih7XG4gICAgICAgICAgICBBcHA6ICgpPT5udWxsLFxuICAgICAgICAgICAgcHJvcHM6IHt9LFxuICAgICAgICAgICAgQ29tcG9uZW50OiAoKT0+bnVsbCxcbiAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gTWFrZSBzdXJlIHdlIGxvZyB0aGUgZXJyb3IgdG8gdGhlIGNvbnNvbGUsIG90aGVyd2lzZSB1c2VycyBjYW4ndCB0cmFjayBkb3duIGlzc3Vlcy5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgY29uc29sZS5lcnJvcihgQSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkLCBzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9jbGllbnQtc2lkZS1leGNlcHRpb24tb2NjdXJyZWRgKTtcbiAgICByZXR1cm4gcGFnZUxvYWRlci5sb2FkUGFnZSgnL19lcnJvcicpLnRoZW4oKHsgcGFnZTogRXJyb3JDb21wb25lbnQgLCBzdHlsZVNoZWV0cyAgfSk9PntcbiAgICAgICAgcmV0dXJuIChsYXN0QXBwUHJvcHMgPT0gbnVsbCA/IHZvaWQgMCA6IGxhc3RBcHBQcm9wcy5Db21wb25lbnQpID09PSBFcnJvckNvbXBvbmVudCA/IGltcG9ydCgnLi4vcGFnZXMvX2Vycm9yJykudGhlbigoZXJyb3JNb2R1bGUpPT57XG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KCcuLi9wYWdlcy9fYXBwJykudGhlbigoYXBwTW9kdWxlKT0+e1xuICAgICAgICAgICAgICAgIEFwcCA9IGFwcE1vZHVsZS5kZWZhdWx0O1xuICAgICAgICAgICAgICAgIHJlbmRlckVycm9yUHJvcHMuQXBwID0gQXBwO1xuICAgICAgICAgICAgICAgIHJldHVybiBlcnJvck1vZHVsZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KS50aGVuKChtKT0+KHtcbiAgICAgICAgICAgICAgICBFcnJvckNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXVxuICAgICAgICAgICAgfSkpIDoge1xuICAgICAgICAgICAgRXJyb3JDb21wb25lbnQsXG4gICAgICAgICAgICBzdHlsZVNoZWV0c1xuICAgICAgICB9O1xuICAgIH0pLnRoZW4oKHsgRXJyb3JDb21wb25lbnQgLCBzdHlsZVNoZWV0cyAgfSk9PntcbiAgICAgICAgdmFyIHJlZjtcbiAgICAgICAgLy8gSW4gcHJvZHVjdGlvbiB3ZSBkbyBhIG5vcm1hbCByZW5kZXIgd2l0aCB0aGUgYEVycm9yQ29tcG9uZW50YCBhcyBjb21wb25lbnQuXG4gICAgICAgIC8vIElmIHdlJ3ZlIGdvdHRlbiBoZXJlIHVwb24gaW5pdGlhbCByZW5kZXIsIHdlIGNhbiB1c2UgdGhlIHByb3BzIGZyb20gdGhlIHNlcnZlci5cbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGNhbGwgYGdldEluaXRpYWxQcm9wc2Agb24gYEFwcGAgYmVmb3JlIG1vdW50aW5nLlxuICAgICAgICBjb25zdCBBcHBUcmVlID0gd3JhcEFwcChBcHApO1xuICAgICAgICBjb25zdCBhcHBDdHggPSB7XG4gICAgICAgICAgICBDb21wb25lbnQ6IEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgICAgQXBwVHJlZSxcbiAgICAgICAgICAgIHJvdXRlcixcbiAgICAgICAgICAgIGN0eDoge1xuICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgICBwYXRobmFtZTogaW5pdGlhbERhdGEucGFnZSxcbiAgICAgICAgICAgICAgICBxdWVyeTogaW5pdGlhbERhdGEucXVlcnksXG4gICAgICAgICAgICAgICAgYXNQYXRoLFxuICAgICAgICAgICAgICAgIEFwcFRyZWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgoKHJlZiA9IHJlbmRlckVycm9yUHJvcHMucHJvcHMpID09IG51bGwgPyB2b2lkIDAgOiByZWYuZXJyKSA/IHJlbmRlckVycm9yUHJvcHMucHJvcHMgOiAoMCwgX3V0aWxzKS5sb2FkR2V0SW5pdGlhbFByb3BzKEFwcCwgYXBwQ3R4KSkudGhlbigoaW5pdFByb3BzKT0+Ly8gVE9ETzogRml4IGRpc2FibGVkIGVzbGludCBydWxlXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgICAgICBkb1JlbmRlcihfZXh0ZW5kcyh7fSwgcmVuZGVyRXJyb3JQcm9wcywge1xuICAgICAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgICAgICBDb21wb25lbnQ6IEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRzLFxuICAgICAgICAgICAgICAgIHByb3BzOiBpbml0UHJvcHNcbiAgICAgICAgICAgIH0pKSk7XG4gICAgfSk7XG59XG4vLyBEdW1teSBjb21wb25lbnQgdGhhdCB3ZSByZW5kZXIgYXMgYSBjaGlsZCBvZiBSb290IHNvIHRoYXQgd2UgY2FuXG4vLyB0b2dnbGUgdGhlIGNvcnJlY3Qgc3R5bGVzIGJlZm9yZSB0aGUgcGFnZSBpcyByZW5kZXJlZC5cbmZ1bmN0aW9uIEhlYWQoeyBjYWxsYmFjayAgfSkge1xuICAgIC8vIFdlIHVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBndWFyYW50ZWUgdGhlIGNhbGxiYWNrIGlzIGV4ZWN1dGVkXG4gICAgLy8gYXMgc29vbiBhcyBSZWFjdCBmbHVzaGVzIHRoZSB1cGRhdGUuXG4gICAgX3JlYWN0LmRlZmF1bHQudXNlTGF5b3V0RWZmZWN0KCgpPT5jYWxsYmFjaygpLCBbXG4gICAgICAgIGNhbGxiYWNrXG4gICAgXSk7XG4gICAgcmV0dXJuIG51bGw7XG59XG5sZXQgcmVhY3RSb290ID0gbnVsbDtcbi8vIE9uIGluaXRpYWwgcmVuZGVyIGEgaHlkcmF0ZSBzaG91bGQgYWx3YXlzIGhhcHBlblxubGV0IHNob3VsZEh5ZHJhdGUgPSB0cnVlO1xuZnVuY3Rpb24gY2xlYXJNYXJrcygpIHtcbiAgICBbXG4gICAgICAgICdiZWZvcmVSZW5kZXInLFxuICAgICAgICAnYWZ0ZXJIeWRyYXRlJyxcbiAgICAgICAgJ2FmdGVyUmVuZGVyJyxcbiAgICAgICAgJ3JvdXRlQ2hhbmdlJ1xuICAgIF0uZm9yRWFjaCgobWFyayk9PnBlcmZvcm1hbmNlLmNsZWFyTWFya3MobWFyaykpO1xufVxuZnVuY3Rpb24gbWFya0h5ZHJhdGVDb21wbGV0ZSgpIHtcbiAgICBpZiAoIV91dGlscy5TVCkgcmV0dXJuO1xuICAgIHBlcmZvcm1hbmNlLm1hcmsoJ2FmdGVySHlkcmF0ZScpIC8vIG1hcmsgZW5kIG9mIGh5ZHJhdGlvblxuICAgIDtcbiAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKCdOZXh0LmpzLWJlZm9yZS1oeWRyYXRpb24nLCAnbmF2aWdhdGlvblN0YXJ0JywgJ2JlZm9yZVJlbmRlcicpO1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoJ05leHQuanMtaHlkcmF0aW9uJywgJ2JlZm9yZVJlbmRlcicsICdhZnRlckh5ZHJhdGUnKTtcbiAgICBpZiAob25QZXJmRW50cnkpIHtcbiAgICAgICAgcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgnTmV4dC5qcy1oeWRyYXRpb24nKS5mb3JFYWNoKG9uUGVyZkVudHJ5KTtcbiAgICB9XG4gICAgY2xlYXJNYXJrcygpO1xufVxuZnVuY3Rpb24gbWFya1JlbmRlckNvbXBsZXRlKCkge1xuICAgIGlmICghX3V0aWxzLlNUKSByZXR1cm47XG4gICAgcGVyZm9ybWFuY2UubWFyaygnYWZ0ZXJSZW5kZXInKSAvLyBtYXJrIGVuZCBvZiByZW5kZXJcbiAgICA7XG4gICAgY29uc3QgbmF2U3RhcnRFbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgncm91dGVDaGFuZ2UnLCAnbWFyaycpO1xuICAgIGlmICghbmF2U3RhcnRFbnRyaWVzLmxlbmd0aCkgcmV0dXJuO1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoJ05leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlcicsIG5hdlN0YXJ0RW50cmllc1swXS5uYW1lLCAnYmVmb3JlUmVuZGVyJyk7XG4gICAgcGVyZm9ybWFuY2UubWVhc3VyZSgnTmV4dC5qcy1yZW5kZXInLCAnYmVmb3JlUmVuZGVyJywgJ2FmdGVyUmVuZGVyJyk7XG4gICAgaWYgKG9uUGVyZkVudHJ5KSB7XG4gICAgICAgIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ05leHQuanMtcmVuZGVyJykuZm9yRWFjaChvblBlcmZFbnRyeSk7XG4gICAgICAgIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ05leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlcicpLmZvckVhY2gob25QZXJmRW50cnkpO1xuICAgIH1cbiAgICBjbGVhck1hcmtzKCk7XG4gICAgW1xuICAgICAgICAnTmV4dC5qcy1yb3V0ZS1jaGFuZ2UtdG8tcmVuZGVyJyxcbiAgICAgICAgJ05leHQuanMtcmVuZGVyJ1xuICAgIF0uZm9yRWFjaCgobWVhc3VyZSk9PnBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMobWVhc3VyZSkpO1xufVxuZnVuY3Rpb24gcmVuZGVyUmVhY3RFbGVtZW50KGRvbUVsLCBmbikge1xuICAgIC8vIG1hcmsgc3RhcnQgb2YgaHlkcmF0ZS9yZW5kZXJcbiAgICBpZiAoX3V0aWxzLlNUKSB7XG4gICAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ2JlZm9yZVJlbmRlcicpO1xuICAgIH1cbiAgICBjb25zdCByZWFjdEVsID0gZm4oc2hvdWxkSHlkcmF0ZSA/IG1hcmtIeWRyYXRlQ29tcGxldGUgOiBtYXJrUmVuZGVyQ29tcGxldGUpO1xuICAgIGlmICghcmVhY3RSb290KSB7XG4gICAgICAgIC8vIFVubGlrZSB3aXRoIGNyZWF0ZVJvb3QsIHlvdSBkb24ndCBuZWVkIGEgc2VwYXJhdGUgcm9vdC5yZW5kZXIoKSBjYWxsIGhlcmVcbiAgICAgICAgcmVhY3RSb290ID0gX2NsaWVudC5kZWZhdWx0Lmh5ZHJhdGVSb290KGRvbUVsLCByZWFjdEVsLCB7XG4gICAgICAgICAgICBvblJlY292ZXJhYmxlRXJyb3I6IF9vblJlY292ZXJhYmxlRXJyb3IuZGVmYXVsdFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIHNob3VsZEh5ZHJhdGUgdmFyaWFibGUgd2hlbiBSZWFjdCAxOCBpcyBzdGFibGUgYXMgaXQgY2FuIGRlcGVuZCBvbiBgcmVhY3RSb290YCBleGlzdGluZ1xuICAgICAgICBzaG91bGRIeWRyYXRlID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RhcnRUcmFuc2l0aW9uID0gX3JlYWN0LmRlZmF1bHQuc3RhcnRUcmFuc2l0aW9uO1xuICAgICAgICBzdGFydFRyYW5zaXRpb24oKCk9PntcbiAgICAgICAgICAgIHJlYWN0Um9vdC5yZW5kZXIocmVhY3RFbCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIFJvb3QoeyBjYWxsYmFja3MgLCBjaGlsZHJlbiAgfSkge1xuICAgIC8vIFdlIHVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBndWFyYW50ZWUgdGhlIGNhbGxiYWNrcyBhcmUgZXhlY3V0ZWRcbiAgICAvLyBhcyBzb29uIGFzIFJlYWN0IGZsdXNoZXMgdGhlIHVwZGF0ZVxuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUxheW91dEVmZmVjdCgoKT0+Y2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKT0+Y2FsbGJhY2soKSksIFtcbiAgICAgICAgY2FsbGJhY2tzXG4gICAgXSk7XG4gICAgLy8gV2Ugc2hvdWxkIGFzayB0byBtZWFzdXJlIHRoZSBXZWIgVml0YWxzIGFmdGVyIHJlbmRlcmluZyBjb21wbGV0ZXMgc28gd2VcbiAgICAvLyBkb24ndCBjYXVzZSBhbnkgaHlkcmF0aW9uIGRlbGF5OlxuICAgIF9yZWFjdC5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1xuICAgICAgICAoMCwgX3BlcmZvcm1hbmNlUmVsYXllcikuZGVmYXVsdChvblBlcmZFbnRyeSk7XG4gICAgfSwgW10pO1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICBfcmVhY3QuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntcbiAgICAgICAgICAgIHdpbmRvdy5fX05FWFRfSFlEUkFURUQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5fX05FWFRfSFlEUkFURURfQ0IpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuX19ORVhUX0hZRFJBVEVEX0NCKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xufVxuZnVuY3Rpb24gZG9SZW5kZXIoaW5wdXQpIHtcbiAgICBsZXQgeyBBcHAgLCBDb21wb25lbnQgLCBwcm9wcyAsIGVyciAgfSA9IGlucHV0O1xuICAgIGxldCBzdHlsZVNoZWV0cyA9ICdpbml0aWFsJyBpbiBpbnB1dCA/IHVuZGVmaW5lZCA6IGlucHV0LnN0eWxlU2hlZXRzO1xuICAgIENvbXBvbmVudCA9IENvbXBvbmVudCB8fCBsYXN0QXBwUHJvcHMuQ29tcG9uZW50O1xuICAgIHByb3BzID0gcHJvcHMgfHwgbGFzdEFwcFByb3BzLnByb3BzO1xuICAgIGNvbnN0IGFwcFByb3BzID0gX2V4dGVuZHMoe30sIHByb3BzLCB7XG4gICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgZXJyLFxuICAgICAgICByb3V0ZXJcbiAgICB9KTtcbiAgICAvLyBsYXN0QXBwUHJvcHMgaGFzIHRvIGJlIHNldCBiZWZvcmUgUmVhY3REb20ucmVuZGVyIHRvIGFjY291bnQgZm9yIFJlYWN0RG9tIHRocm93aW5nIGFuIGVycm9yLlxuICAgIGxhc3RBcHBQcm9wcyA9IGFwcFByb3BzO1xuICAgIGxldCBjYW5jZWxlZCA9IGZhbHNlO1xuICAgIGxldCByZXNvbHZlUHJvbWlzZTtcbiAgICBjb25zdCByZW5kZXJQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgICAgaWYgKGxhc3RSZW5kZXJSZWplY3QpIHtcbiAgICAgICAgICAgIGxhc3RSZW5kZXJSZWplY3QoKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlUHJvbWlzZSA9ICgpPT57XG4gICAgICAgICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gbnVsbDtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfTtcbiAgICAgICAgbGFzdFJlbmRlclJlamVjdCA9ICgpPT57XG4gICAgICAgICAgICBjYW5jZWxlZCA9IHRydWU7XG4gICAgICAgICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCdDYW5jZWwgcmVuZGVyaW5nIHJvdXRlJyk7XG4gICAgICAgICAgICBlcnJvci5jYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGhhcyBhIHJldHVybiB0eXBlIHRvIGVuc3VyZSBpdCBkb2Vzbid0IHN0YXJ0IHJldHVybmluZyBhXG4gICAgLy8gUHJvbWlzZS4gSXQgc2hvdWxkIHJlbWFpbiBzeW5jaHJvbm91cy5cbiAgICBmdW5jdGlvbiBvblN0YXJ0KCkge1xuICAgICAgICBpZiAoIXN0eWxlU2hlZXRzIHx8IC8vIFdlIHVzZSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudCwgc28gd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgICAgICAvLyB1bmxlc3Mgd2UncmUgaW4gcHJvZHVjdGlvbjpcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdHlsZVRhZ3MgPSBsb29zZVRvQXJyYXkoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGVbZGF0YS1uLWhyZWZdJykpO1xuICAgICAgICBjb25zdCBjdXJyZW50SHJlZnMgPSBuZXcgU2V0KGN1cnJlbnRTdHlsZVRhZ3MubWFwKCh0YWcpPT50YWcuZ2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicpKSk7XG4gICAgICAgIGNvbnN0IG5vc2NyaXB0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignbm9zY3JpcHRbZGF0YS1uLWNzc10nKTtcbiAgICAgICAgY29uc3Qgbm9uY2UgPSBub3NjcmlwdCA9PSBudWxsID8gdm9pZCAwIDogbm9zY3JpcHQuZ2V0QXR0cmlidXRlKCdkYXRhLW4tY3NzJyk7XG4gICAgICAgIHN0eWxlU2hlZXRzLmZvckVhY2goKHsgaHJlZiAsIHRleHQgIH0pPT57XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRIcmVmcy5oYXMoaHJlZikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgICAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicsIGhyZWYpO1xuICAgICAgICAgICAgICAgIHN0eWxlVGFnLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAneCcpO1xuICAgICAgICAgICAgICAgIGlmIChub25jZSkge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZVRhZy5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgbm9uY2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlVGFnKTtcbiAgICAgICAgICAgICAgICBzdHlsZVRhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb25IZWFkQ29tbWl0KCkge1xuICAgICAgICBpZiAoLy8gV2UgdXNlIGBzdHlsZS1sb2FkZXJgIGluIGRldmVsb3BtZW50LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgICAgIC8vIHVubGVzcyB3ZSdyZSBpbiBwcm9kdWN0aW9uOlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmIC8vIFdlIGNhbiBza2lwIHRoaXMgZHVyaW5nIGh5ZHJhdGlvbi4gUnVubmluZyBpdCB3b250IGNhdXNlIGFueSBoYXJtLCBidXRcbiAgICAgICAgLy8gd2UgbWF5IGFzIHdlbGwgc2F2ZSB0aGUgQ1BVIGN5Y2xlczpcbiAgICAgICAgc3R5bGVTaGVldHMgJiYgLy8gRW5zdXJlIHRoaXMgcmVuZGVyIHdhcyBub3QgY2FuY2VsZWRcbiAgICAgICAgIWNhbmNlbGVkKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNpcmVkSHJlZnMgPSBuZXcgU2V0KHN0eWxlU2hlZXRzLm1hcCgocyk9PnMuaHJlZikpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFN0eWxlVGFncyA9IGxvb3NlVG9BcnJheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZVtkYXRhLW4taHJlZl0nKSk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SHJlZnMgPSBjdXJyZW50U3R5bGVUYWdzLm1hcCgodGFnKT0+dGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uLWhyZWYnKSk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgYDxzdHlsZT5gIHRhZ3Mgb24gb3Igb2ZmIGRlcGVuZGluZyBvbiBpZiB0aGV5J3JlIG5lZWRlZDpcbiAgICAgICAgICAgIGZvcihsZXQgaWR4ID0gMDsgaWR4IDwgY3VycmVudEhyZWZzLmxlbmd0aDsgKytpZHgpe1xuICAgICAgICAgICAgICAgIGlmIChkZXNpcmVkSHJlZnMuaGFzKGN1cnJlbnRIcmVmc1tpZHhdKSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3R5bGVUYWdzW2lkeF0ucmVtb3ZlQXR0cmlidXRlKCdtZWRpYScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdHlsZVRhZ3NbaWR4XS5zZXRBdHRyaWJ1dGUoJ21lZGlhJywgJ3gnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBSZW9yZGVyIHN0eWxlcyBpbnRvIGludGVuZGVkIG9yZGVyOlxuICAgICAgICAgICAgbGV0IHJlZmVyZW5jZU5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdub3NjcmlwdFtkYXRhLW4tY3NzXScpO1xuICAgICAgICAgICAgaWYgKC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUpIHtcbiAgICAgICAgICAgICAgICBzdHlsZVNoZWV0cy5mb3JFYWNoKCh7IGhyZWYgIH0pPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldFRhZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHN0eWxlW2RhdGEtbi1ocmVmPVwiJHtocmVmfVwiXWApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoLy8gVGhpcyBzaG91bGQgYmUgYW4gaW52YXJpYW50OlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRUYWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGFyZ2V0VGFnLCByZWZlcmVuY2VOb2RlLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUgPSB0YXJnZXRUYWc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZpbmFsbHksIGNsZWFuIHVwIHNlcnZlciByZW5kZXJlZCBzdHlsZXNoZWV0czpcbiAgICAgICAgICAgIGxvb3NlVG9BcnJheShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW2RhdGEtbi1wXScpKS5mb3JFYWNoKChlbCk9PntcbiAgICAgICAgICAgICAgICBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dC5zY3JvbGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvcjtcbiAgICAgICAgICAgIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nO1xuICAgICAgICAgICAgLy8gSW4gQ2hyb21lLWJhc2VkIGJyb3dzZXJzIHdlIG5lZWQgdG8gZm9yY2UgcmVmbG93IGJlZm9yZSBjYWxsaW5nIGBzY3JvbGxUb2AuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgaXQgd2lsbCBub3QgcGlja3VwIHRoZSBjaGFuZ2UgaW4gc2Nyb2xsQmVoYXZpb3JcbiAgICAgICAgICAgIC8vIE1vcmUgaW5mbyBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvaXNzdWVzLzQwNzE5I2lzc3VlY29tbWVudC0xMzM2MjQ4MDQyXG4gICAgICAgICAgICBodG1sRWxlbWVudC5nZXRDbGllbnRSZWN0cygpO1xuICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKGlucHV0LnNjcm9sbC54LCBpbnB1dC5zY3JvbGwueSk7XG4gICAgICAgICAgICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9IGV4aXN0aW5nO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uUm9vdENvbW1pdCgpIHtcbiAgICAgICAgcmVzb2x2ZVByb21pc2UoKTtcbiAgICB9XG4gICAgb25TdGFydCgpO1xuICAgIGNvbnN0IGVsZW0gPSAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3JlYWN0LmRlZmF1bHQuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChIZWFkLCB7XG4gICAgICAgIGNhbGxiYWNrOiBvbkhlYWRDb21taXRcbiAgICB9KSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KEFwcENvbnRhaW5lciwgbnVsbCwgcmVuZGVyQXBwKEFwcCwgYXBwUHJvcHMpLCAvKiNfX1BVUkVfXyovIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX3BvcnRhbC5Qb3J0YWwsIHtcbiAgICAgICAgdHlwZTogXCJuZXh0LXJvdXRlLWFubm91bmNlclwiXG4gICAgfSwgLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yb3V0ZUFubm91bmNlci5Sb3V0ZUFubm91bmNlciwgbnVsbCkpKSk7XG4gICAgLy8gV2UgY2F0Y2ggcnVudGltZSBlcnJvcnMgdXNpbmcgY29tcG9uZW50RGlkQ2F0Y2ggd2hpY2ggd2lsbCB0cmlnZ2VyIHJlbmRlckVycm9yXG4gICAgcmVuZGVyUmVhY3RFbGVtZW50KGFwcEVsZW1lbnQsIChjYWxsYmFjayk9Pi8qI19fUFVSRV9fKi8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChSb290LCB7XG4gICAgICAgICAgICBjYWxsYmFja3M6IFtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgICAgICAgICBvblJvb3RDb21taXRcbiAgICAgICAgICAgIF1cbiAgICAgICAgfSwgcHJvY2Vzcy5lbnYuX19ORVhUX1NUUklDVF9NT0RFID8gLyojX19QVVJFX18qLyBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9yZWFjdC5kZWZhdWx0LlN0cmljdE1vZGUsIG51bGwsIGVsZW0pIDogZWxlbSkpO1xuICAgIHJldHVybiByZW5kZXJQcm9taXNlO1xufVxuZnVuY3Rpb24gcmVuZGVyKHJlbmRlcmluZ1Byb3BzKSB7XG4gICAgcmV0dXJuIF9yZW5kZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9yZW5kZXIoKSB7XG4gICAgX3JlbmRlciA9IF9hc3luY190b19nZW5lcmF0b3IoZnVuY3Rpb24qKHJlbmRlcmluZ1Byb3BzKSB7XG4gICAgICAgIGlmIChyZW5kZXJpbmdQcm9wcy5lcnIpIHtcbiAgICAgICAgICAgIHlpZWxkIHJlbmRlckVycm9yKHJlbmRlcmluZ1Byb3BzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgeWllbGQgZG9SZW5kZXIocmVuZGVyaW5nUHJvcHMpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlckVyciA9ICgwLCBfaXNFcnJvcikuZ2V0UHJvcGVyRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIC8vIGJ1YmJsZSB1cCBjYW5jZWxhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgIGlmIChyZW5kZXJFcnIuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgcmVuZGVyRXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoaXMgZXJyb3IgaXMgZGlzcGxheWVkIGluIHRoZSBvdmVybGF5IGluIGRldmVsb3BtZW50XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZW5kZXJFcnI7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB5aWVsZCByZW5kZXJFcnJvcihfZXh0ZW5kcyh7fSwgcmVuZGVyaW5nUHJvcHMsIHtcbiAgICAgICAgICAgICAgICBlcnI6IHJlbmRlckVyclxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIF9yZW5kZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGh5ZHJhdGUob3B0cykge1xuICAgIHJldHVybiBfaHlkcmF0ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gX2h5ZHJhdGUoKSB7XG4gICAgX2h5ZHJhdGUgPSBfYXN5bmNfdG9fZ2VuZXJhdG9yKGZ1bmN0aW9uKihvcHRzKSB7XG4gICAgICAgIGxldCBpbml0aWFsRXJyID0gaW5pdGlhbERhdGEuZXJyO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYXBwRW50cnlwb2ludCA9IHlpZWxkIHBhZ2VMb2FkZXIucm91dGVMb2FkZXIud2hlbkVudHJ5cG9pbnQoJy9fYXBwJyk7XG4gICAgICAgICAgICBpZiAoJ2Vycm9yJyBpbiBhcHBFbnRyeXBvaW50KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgYXBwRW50cnlwb2ludC5lcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgY29tcG9uZW50OiBhcHAgLCBleHBvcnRzOiBtb2QgIH0gPSBhcHBFbnRyeXBvaW50O1xuICAgICAgICAgICAgQ2FjaGVkQXBwID0gYXBwO1xuICAgICAgICAgICAgaWYgKG1vZCAmJiBtb2QucmVwb3J0V2ViVml0YWxzKSB7XG4gICAgICAgICAgICAgICAgb25QZXJmRW50cnkgPSAoeyBpZCAsIG5hbWUgLCBzdGFydFRpbWUgLCB2YWx1ZSAsIGR1cmF0aW9uICwgZW50cnlUeXBlICwgZW50cmllcyAsIGF0dHJpYnV0aW9uICB9KT0+e1xuICAgICAgICAgICAgICAgICAgICAvLyBDb21iaW5lcyB0aW1lc3RhbXAgd2l0aCByYW5kb20gbnVtYmVyIGZvciB1bmlxdWUgSURcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5pcXVlSUQgPSBgJHtEYXRlLm5vdygpfS0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg5ZTEyIC0gMSkpICsgMWUxMn1gO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGVyZlN0YXJ0RW50cnk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJmU3RhcnRFbnRyeSA9IGVudHJpZXNbMF0uc3RhcnRUaW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlYlZpdGFscyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpZCB8fCB1bmlxdWVJRCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSB8fCBwZXJmU3RhcnRFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSA9PSBudWxsID8gZHVyYXRpb24gOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRyeVR5cGUgPT09ICdtYXJrJyB8fCBlbnRyeVR5cGUgPT09ICdtZWFzdXJlJyA/ICdjdXN0b20nIDogJ3dlYi12aXRhbCdcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWJWaXRhbHMuYXR0cmlidXRpb24gPSBhdHRyaWJ1dGlvbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtb2QucmVwb3J0V2ViVml0YWxzKHdlYlZpdGFscyk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhZ2VFbnRyeXBvaW50ID0gLy8gVGhlIGRldiBzZXJ2ZXIgZmFpbHMgdG8gc2VydmUgc2NyaXB0IGFzc2V0cyB3aGVuIHRoZXJlJ3MgYSBoeWRyYXRpb25cbiAgICAgICAgICAgIC8vIGVycm9yLCBzbyB3ZSBuZWVkIHRvIHNraXAgd2FpdGluZyBmb3IgdGhlIGVudHJ5cG9pbnQuXG4gICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBpbml0aWFsRGF0YS5lcnIgPyB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IGluaXRpYWxEYXRhLmVyclxuICAgICAgICAgICAgfSA6IHlpZWxkIHBhZ2VMb2FkZXIucm91dGVMb2FkZXIud2hlbkVudHJ5cG9pbnQoaW5pdGlhbERhdGEucGFnZSk7XG4gICAgICAgICAgICBpZiAoJ2Vycm9yJyBpbiBwYWdlRW50cnlwb2ludCkge1xuICAgICAgICAgICAgICAgIHRocm93IHBhZ2VFbnRyeXBvaW50LmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQ2FjaGVkQ29tcG9uZW50ID0gcGFnZUVudHJ5cG9pbnQuY29tcG9uZW50O1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzVmFsaWRFbGVtZW50VHlwZSAgfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcycpO1xuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKENhY2hlZENvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZGVmYXVsdCBleHBvcnQgaXMgbm90IGEgUmVhY3QgQ29tcG9uZW50IGluIHBhZ2U6IFwiJHtpbml0aWFsRGF0YS5wYWdlfVwiYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcjEpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgY2F0Y2hlcyBlcnJvcnMgbGlrZSB0aHJvd2luZyBpbiB0aGUgdG9wIGxldmVsIG9mIGEgbW9kdWxlXG4gICAgICAgICAgICBpbml0aWFsRXJyID0gKDAsIF9pc0Vycm9yKS5nZXRQcm9wZXJFcnJvcihlcnJvcjEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgY29uc3QgeyBnZXRTZXJ2ZXJFcnJvciAsICB9ID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL0BuZXh0L3JlYWN0LWRldi1vdmVybGF5L2Rpc3QvY2xpZW50Jyk7XG4gICAgICAgICAgICAvLyBTZXJ2ZXItc2lkZSBydW50aW1lIGVycm9ycyBuZWVkIHRvIGJlIHJlLXRocm93biBvbiB0aGUgY2xpZW50LXNpZGUgc29cbiAgICAgICAgICAgIC8vIHRoYXQgdGhlIG92ZXJsYXkgaXMgcmVuZGVyZWQuXG4gICAgICAgICAgICBpZiAoaW5pdGlhbEVycikge1xuICAgICAgICAgICAgICAgIGlmIChpbml0aWFsRXJyID09PSBpbml0aWFsRGF0YS5lcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSBhIG5ldyBlcnJvciBvYmplY3QuIFdlIGB0aHJvd2AgaXQgYmVjYXVzZSBzb21lIGJyb3dzZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBzZXQgdGhlIGBzdGFja2Agd2hlbiB0aHJvd24sIGFuZCB3ZSB3YW50IHRvIGVuc3VyZSBvdXJzIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IG92ZXJyaWRkZW4gd2hlbiB3ZSByZS10aHJvdyBpdCBiZWxvdy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoaW5pdGlhbEVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5uYW1lID0gaW5pdGlhbEVyci5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Iuc3RhY2sgPSBpbml0aWFsRXJyLnN0YWNrO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZ2V0U2VydmVyRXJyb3IoZXJyb3IsIGluaXRpYWxFcnIuc291cmNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgaW5pdGlhbEVycjtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh3aW5kb3cuX19ORVhUX1BSRUxPQURSRUFEWSkge1xuICAgICAgICAgICAgeWllbGQgd2luZG93Ll9fTkVYVF9QUkVMT0FEUkVBRFkoaW5pdGlhbERhdGEuZHluYW1pY0lkcyk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwb3J0cy5yb3V0ZXIgPSByb3V0ZXIgPSAoMCwgX3JvdXRlcikuY3JlYXRlUm91dGVyKGluaXRpYWxEYXRhLnBhZ2UsIGluaXRpYWxEYXRhLnF1ZXJ5LCBhc1BhdGgsIHtcbiAgICAgICAgICAgIGluaXRpYWxQcm9wczogaW5pdGlhbERhdGEucHJvcHMsXG4gICAgICAgICAgICBwYWdlTG9hZGVyLFxuICAgICAgICAgICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgICAgICAgICBDb21wb25lbnQ6IENhY2hlZENvbXBvbmVudCxcbiAgICAgICAgICAgIHdyYXBBcHAsXG4gICAgICAgICAgICBlcnI6IGluaXRpYWxFcnIsXG4gICAgICAgICAgICBpc0ZhbGxiYWNrOiBCb29sZWFuKGluaXRpYWxEYXRhLmlzRmFsbGJhY2spLFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiAoaW5mbywgQXBwLCBzY3JvbGwpPT5yZW5kZXIoT2JqZWN0LmFzc2lnbih7fSwgaW5mbywge1xuICAgICAgICAgICAgICAgICAgICBBcHAsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFxuICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIGxvY2FsZTogaW5pdGlhbERhdGEubG9jYWxlLFxuICAgICAgICAgICAgbG9jYWxlczogaW5pdGlhbERhdGEubG9jYWxlcyxcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGUsXG4gICAgICAgICAgICBkb21haW5Mb2NhbGVzOiBpbml0aWFsRGF0YS5kb21haW5Mb2NhbGVzLFxuICAgICAgICAgICAgaXNQcmV2aWV3OiBpbml0aWFsRGF0YS5pc1ByZXZpZXdcbiAgICAgICAgfSk7XG4gICAgICAgIGluaXRpYWxNYXRjaGVzTWlkZGxld2FyZSA9IHlpZWxkIHJvdXRlci5faW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZTtcbiAgICAgICAgY29uc3QgcmVuZGVyQ3R4ID0ge1xuICAgICAgICAgICAgQXBwOiBDYWNoZWRBcHAsXG4gICAgICAgICAgICBpbml0aWFsOiB0cnVlLFxuICAgICAgICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICAgICAgICBwcm9wczogaW5pdGlhbERhdGEucHJvcHMsXG4gICAgICAgICAgICBlcnI6IGluaXRpYWxFcnJcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG9wdHMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdHMuYmVmb3JlUmVuZGVyKSB7XG4gICAgICAgICAgICB5aWVsZCBvcHRzLmJlZm9yZVJlbmRlcigpO1xuICAgICAgICB9XG4gICAgICAgIHJlbmRlcihyZW5kZXJDdHgpO1xuICAgIH0pO1xuICAgIHJldHVybiBfaHlkcmF0ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOlsiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJleHBvcnRzIiwidmFsdWUiLCJpbml0aWFsaXplIiwiaHlkcmF0ZSIsImVtaXR0ZXIiLCJyb3V0ZXIiLCJ2ZXJzaW9uIiwiX2FzeW5jX3RvX2dlbmVyYXRvciIsInJlcXVpcmUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIiwiX3JlYWN0IiwiX2NsaWVudCIsIl9oZWFkTWFuYWdlckNvbnRleHQiLCJfbWl0dCIsIl9yb3V0ZXJDb250ZXh0IiwiX2lzRHluYW1pYyIsIl9xdWVyeXN0cmluZyIsIl9ydW50aW1lQ29uZmlnIiwiX3V0aWxzIiwiX3BvcnRhbCIsIl9oZWFkTWFuYWdlciIsIl9wYWdlTG9hZGVyIiwiX3BlcmZvcm1hbmNlUmVsYXllciIsIl9yb3V0ZUFubm91bmNlciIsIl9yb3V0ZXIiLCJfaXNFcnJvciIsIl9pbWFnZUNvbmZpZ0NvbnRleHQiLCJfcmVtb3ZlQmFzZVBhdGgiLCJfaGFzQmFzZVBhdGgiLCJfYXBwUm91dGVyQ29udGV4dCIsIl9hZGFwdGVycyIsIl9ob29rc0NsaWVudENvbnRleHQiLCJfb25SZWNvdmVyYWJsZUVycm9yIiwibG9vc2VUb0FycmF5IiwiaW5wdXQiLCJzbGljZSIsImNhbGwiLCJpbml0aWFsRGF0YSIsImRlZmF1bHRMb2NhbGUiLCJ1bmRlZmluZWQiLCJhc1BhdGgiLCJwYWdlTG9hZGVyIiwiYXBwRWxlbWVudCIsImhlYWRNYW5hZ2VyIiwiaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlIiwibGFzdEFwcFByb3BzIiwibGFzdFJlbmRlclJlamVjdCIsIndlYnBhY2tITVIiLCJDYWNoZWRBcHAiLCJvblBlcmZFbnRyeSIsIkNhY2hlZENvbXBvbmVudCIsInNlbGYiLCJfX25leHRfcmVxdWlyZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIkNvbnRhaW5lciIsIkNvbXBvbmVudCIsImNvbXBvbmVudERpZENhdGNoIiwiY29tcG9uZW50RXJyIiwiaW5mbyIsInByb3BzIiwiZm4iLCJjb21wb25lbnREaWRNb3VudCIsInNjcm9sbFRvSGFzaCIsImlzU3NyIiwiaXNGYWxsYmFjayIsIm5leHRFeHBvcnQiLCJpc0R5bmFtaWNSb3V0ZSIsInBhdGhuYW1lIiwibG9jYXRpb24iLCJzZWFyY2giLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0hBU19SRVdSSVRFUyIsIl9fTl9TU0ciLCJyZXBsYWNlIiwiU3RyaW5nIiwiYXNzaWduIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInF1ZXJ5IiwiVVJMU2VhcmNoUGFyYW1zIiwiX2giLCJzaGFsbG93IiwiY2F0Y2giLCJlcnIiLCJjYW5jZWxsZWQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJoYXNoIiwic3Vic3RyaW5nIiwiZWwiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2V0VGltZW91dCIsInNjcm9sbEludG9WaWV3IiwicmVuZGVyIiwiY2hpbGRyZW4iLCJSZWFjdERldk92ZXJsYXkiLCJjcmVhdGVFbGVtZW50IiwiX2luaXRpYWxpemUiLCJhcHBseSIsImFyZ3VtZW50cyIsIm9wdHMiLCJKU09OIiwicGFyc2UiLCJ0ZXh0Q29udGVudCIsIndpbmRvdyIsIl9fTkVYVF9EQVRBX18iLCJwcmVmaXgiLCJhc3NldFByZWZpeCIsIl9fd2VicGFja19wdWJsaWNfcGF0aF9fIiwic2V0Q29uZmlnIiwic2VydmVyUnVudGltZUNvbmZpZyIsInB1YmxpY1J1bnRpbWVDb25maWciLCJydW50aW1lQ29uZmlnIiwiZ2V0VVJMIiwiaGFzQmFzZVBhdGgiLCJyZW1vdmVCYXNlUGF0aCIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwicGFyc2VSZWxhdGl2ZVVybCIsImZvcm1hdFVybCIsImxvY2FsZXMiLCJwYXJzZWRBcyIsImxvY2FsZVBhdGhSZXN1bHQiLCJkZXRlY3RlZExvY2FsZSIsImxvY2FsZSIsImRldGVjdGVkRG9tYWluIiwiX19ORVhUX0kxOE5fRE9NQUlOUyIsImhvc3RuYW1lIiwic2NyaXB0TG9hZGVyIiwiaW5pdFNjcmlwdExvYWRlciIsImJ1aWxkSWQiLCJyZWdpc3RlciIsInIiLCJmIiwicm91dGVMb2FkZXIiLCJvbkVudHJ5cG9pbnQiLCJfX05FWFRfUCIsIm1hcCIsInAiLCJwdXNoIiwiZ2V0SXNTc3IiLCJyZW5kZXJBcHAiLCJBcHAiLCJhcHBQcm9wcyIsIkFwcENvbnRhaW5lciIsIl9hdXRvRXhwb3J0IiwiZXJyb3IiLCJyZW5kZXJFcnJvciIsImNvbnNvbGUiLCJBcHBSb3V0ZXJDb250ZXh0IiwiUHJvdmlkZXIiLCJhZGFwdEZvckFwcFJvdXRlckluc3RhbmNlIiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsImFkYXB0Rm9yU2VhcmNoUGFyYW1zIiwiUGF0aG5hbWVDb250ZXh0UHJvdmlkZXJBZGFwdGVyIiwiaXNBdXRvRXhwb3J0IiwiYXV0b0V4cG9ydCIsIlJvdXRlckNvbnRleHQiLCJtYWtlUHVibGljUm91dGVySW5zdGFuY2UiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJJbWFnZUNvbmZpZ0NvbnRleHQiLCJfX05FWFRfSU1BR0VfT1BUUyIsIndyYXBBcHAiLCJ3cmFwcGVkQXBwUHJvcHMiLCJyZW5kZXJFcnJvclByb3BzIiwib25VbnJlY292ZXJhYmxlRXJyb3IiLCJkb1JlbmRlciIsInN0eWxlU2hlZXRzIiwibG9hZFBhZ2UiLCJ0aGVuIiwicGFnZSIsIkVycm9yQ29tcG9uZW50IiwiZXJyb3JNb2R1bGUiLCJhcHBNb2R1bGUiLCJtIiwicmVmIiwiQXBwVHJlZSIsImFwcEN0eCIsImN0eCIsIlByb21pc2UiLCJyZXNvbHZlIiwibG9hZEdldEluaXRpYWxQcm9wcyIsImluaXRQcm9wcyIsIkhlYWQiLCJjYWxsYmFjayIsInVzZUxheW91dEVmZmVjdCIsInJlYWN0Um9vdCIsInNob3VsZEh5ZHJhdGUiLCJjbGVhck1hcmtzIiwiZm9yRWFjaCIsIm1hcmsiLCJwZXJmb3JtYW5jZSIsIm1hcmtIeWRyYXRlQ29tcGxldGUiLCJTVCIsIm1lYXN1cmUiLCJnZXRFbnRyaWVzQnlOYW1lIiwibWFya1JlbmRlckNvbXBsZXRlIiwibmF2U3RhcnRFbnRyaWVzIiwibGVuZ3RoIiwibmFtZSIsImNsZWFyTWVhc3VyZXMiLCJyZW5kZXJSZWFjdEVsZW1lbnQiLCJkb21FbCIsInJlYWN0RWwiLCJoeWRyYXRlUm9vdCIsIm9uUmVjb3ZlcmFibGVFcnJvciIsInN0YXJ0VHJhbnNpdGlvbiIsIlJvb3QiLCJjYWxsYmFja3MiLCJ1c2VFZmZlY3QiLCJfX05FWFRfVEVTVF9NT0RFIiwiX19ORVhUX0hZRFJBVEVEIiwiX19ORVhUX0hZRFJBVEVEX0NCIiwiY2FuY2VsZWQiLCJyZXNvbHZlUHJvbWlzZSIsInJlbmRlclByb21pc2UiLCJyZWplY3QiLCJFcnJvciIsIm9uU3RhcnQiLCJjdXJyZW50U3R5bGVUYWdzIiwicXVlcnlTZWxlY3RvckFsbCIsImN1cnJlbnRIcmVmcyIsIlNldCIsInRhZyIsImdldEF0dHJpYnV0ZSIsIm5vc2NyaXB0IiwicXVlcnlTZWxlY3RvciIsIm5vbmNlIiwiaHJlZiIsInRleHQiLCJoYXMiLCJzdHlsZVRhZyIsInNldEF0dHJpYnV0ZSIsImhlYWQiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwib25IZWFkQ29tbWl0IiwiZGVzaXJlZEhyZWZzIiwicyIsImlkeCIsInJlbW92ZUF0dHJpYnV0ZSIsInJlZmVyZW5jZU5vZGUiLCJ0YXJnZXRUYWciLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJyZW1vdmVDaGlsZCIsInNjcm9sbCIsImh0bWxFbGVtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiZXhpc3RpbmciLCJzdHlsZSIsInNjcm9sbEJlaGF2aW9yIiwiZ2V0Q2xpZW50UmVjdHMiLCJzY3JvbGxUbyIsIngiLCJ5Iiwib25Sb290Q29tbWl0IiwiZWxlbSIsIkZyYWdtZW50IiwiUG9ydGFsIiwidHlwZSIsIlJvdXRlQW5ub3VuY2VyIiwiX19ORVhUX1NUUklDVF9NT0RFIiwiU3RyaWN0TW9kZSIsInJlbmRlcmluZ1Byb3BzIiwiX3JlbmRlciIsInJlbmRlckVyciIsImdldFByb3BlckVycm9yIiwiX2h5ZHJhdGUiLCJpbml0aWFsRXJyIiwiYXBwRW50cnlwb2ludCIsIndoZW5FbnRyeXBvaW50IiwiY29tcG9uZW50IiwiYXBwIiwibW9kIiwicmVwb3J0V2ViVml0YWxzIiwiaWQiLCJzdGFydFRpbWUiLCJkdXJhdGlvbiIsImVudHJ5VHlwZSIsImVudHJpZXMiLCJhdHRyaWJ1dGlvbiIsInVuaXF1ZUlEIiwiTWF0aCIsIkRhdGUiLCJub3ciLCJmbG9vciIsInJhbmRvbSIsInBlcmZTdGFydEVudHJ5Iiwid2ViVml0YWxzIiwibGFiZWwiLCJwYWdlRW50cnlwb2ludCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImVycm9yMSIsImdldFNlcnZlckVycm9yIiwibWVzc2FnZSIsImUiLCJzdGFjayIsInNvdXJjZSIsIl9fTkVYVF9QUkVMT0FEUkVBRFkiLCJkeW5hbWljSWRzIiwiY3JlYXRlUm91dGVyIiwiaW5pdGlhbFByb3BzIiwiQm9vbGVhbiIsInN1YnNjcmlwdGlvbiIsImRvbWFpbkxvY2FsZXMiLCJpc1ByZXZpZXciLCJfaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZSIsInJlbmRlckN0eCIsImluaXRpYWwiLCJiZWZvcmVSZW5kZXIiLCJfX2VzTW9kdWxlIiwibW9kdWxlIl0sInNvdXJjZVJvb3QiOiIifQ==\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYkEsOENBQTZDO0lBQ3pDRyxPQUFPLElBQUk7QUFDZixDQUFDLEVBQUM7QUFDRkQsc0JBQXNCLEdBQUdFO0FBQ3pCRixvQkFBb0IsR0FBR0c7QUFDdkJILDhCQUE4QixHQUFHSTtBQUNqQ0oseUJBQXlCLEdBQUdLO0FBQzVCLElBQUlDLDJCQUEyQkMsbUpBQStEO0FBQzlGLElBQUlFLHlCQUF5QkgseUJBQXlCQyxtQkFBT0EsQ0FBQywySUFBc0Q7QUFDcEgsSUFBSUcsZ0JBQWdCSCxtQkFBT0EsQ0FBQyx5RUFBaUI7QUFDN0MsSUFBSUksdUJBQXVCSixtQkFBT0EsQ0FBQyx5RkFBeUI7QUFDNUQsdUVBQXVFO0FBQ3ZFLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0Usb0NBQW9DO0FBQ3BDLE1BQU1LLG9CQUFvQjtBQUMxQixTQUFTQyxXQUFXQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsU0FBUyxFQUFFO0lBQ3JDLElBQUlDLFFBQVFGLElBQUlHLEdBQUcsQ0FBQ0o7SUFDcEIsSUFBSUcsT0FBTztRQUNQLElBQUksWUFBWUEsT0FBTztZQUNuQixPQUFPQSxNQUFNRSxNQUFNO1FBQ3ZCLENBQUM7UUFDRCxPQUFPQyxRQUFRQyxPQUFPLENBQUNKO0lBQzNCLENBQUM7SUFDRCxJQUFJSztJQUNKLE1BQU1DLE9BQU8sSUFBSUgsUUFBUSxDQUFDQyxVQUFVO1FBQ2hDQyxXQUFXRDtJQUNmO0lBQ0FOLElBQUlTLEdBQUcsQ0FBQ1YsS0FBS0csUUFBUTtRQUNqQkksU0FBU0M7UUFDVEgsUUFBUUk7SUFDWjtJQUNBLE9BQU9QLFlBQVlBLFlBQVcsd0NBQXdDO0tBQ3JFUyxJQUFJLENBQUMsQ0FBQ3hCLFFBQVNxQixDQUFBQSxTQUFTckIsUUFBUUEsS0FBSyxHQUFHeUIsS0FBSyxDQUFDLENBQUNDLE1BQU07UUFDbERaLElBQUlhLE1BQU0sQ0FBQ2Q7UUFDWCxNQUFNYSxJQUFJO0lBQ2QsS0FBS0osSUFBSTtBQUNiO0FBQ0EsTUFBTU0sbUJBQW1CQyxPQUFPO0FBQ2hDLFNBQVM1QixlQUFleUIsR0FBRyxFQUFFO0lBQ3pCLE9BQU83QixPQUFPQyxjQUFjLENBQUM0QixLQUFLRSxrQkFBa0IsQ0FBQztBQUN6RDtBQUNBLFNBQVMxQixhQUFhd0IsR0FBRyxFQUFFO0lBQ3ZCLE9BQU9BLE9BQU9FLG9CQUFvQkY7QUFDdEM7QUFDQSxTQUFTSSxZQUFZQyxJQUFJLEVBQUU7SUFDdkIsSUFBSTtRQUNBQSxPQUFPQyxTQUFTQyxhQUFhLENBQUM7UUFDOUIsT0FFQSx1QkFEdUI7UUFDdEIsQ0FBQyxDQUFDQyxPQUFPQyxvQkFBb0IsSUFBSSxDQUFDLENBQUNILFNBQVNJLFlBQVksSUFBS0wsS0FBS00sT0FBTyxDQUFDQyxRQUFRLENBQUM7SUFDeEYsRUFBRSxPQUFPQyxHQUFHO1FBQ1IsT0FBTyxLQUFLO0lBQ2hCO0FBQ0o7QUFDQSxNQUFNQyxjQUFjVjtBQUNwQixTQUFTVyxlQUFlQyxJQUFJLEVBQUVDLEVBQUUsRUFBRVosSUFBSSxFQUFFO0lBQ3BDLE9BQU8sSUFBSVosUUFBUSxDQUFDQyxTQUFTd0IsU0FBUztRQUNsQyxNQUFNQyxXQUFXLHVDQUVVSCxPQURDQSxNQUFLLDBDQUVwQkEsT0FEY0EsTUFBSyw0QkFDZCxPQUFMQSxNQUFLO1FBQ2xCLElBQUlWLFNBQVNjLGFBQWEsQ0FBQ0QsV0FBVztZQUNsQyxPQUFPekI7UUFDWCxDQUFDO1FBQ0RXLE9BQU9DLFNBQVNDLGFBQWEsQ0FBQztRQUM5Qix3REFBd0Q7UUFDeEQsSUFBSVUsSUFBSVosS0FBS1ksRUFBRSxHQUFHQTtRQUNsQlosS0FBS2dCLEdBQUcsR0FBSTtRQUNaaEIsS0FBS2lCLFdBQVcsR0FBR0MsU0FBK0I7UUFDbERsQixLQUFLcUIsTUFBTSxHQUFHaEM7UUFDZFcsS0FBS3NCLE9BQU8sR0FBRyxJQUFJVCxPQUFPM0MsZUFBZSxJQUFJcUQsTUFBTSx1QkFBNEIsT0FBTFo7UUFDMUUsZ0NBQWdDO1FBQ2hDWCxLQUFLVyxJQUFJLEdBQUdBO1FBQ1pWLFNBQVN1QixJQUFJLENBQUNDLFdBQVcsQ0FBQ3pCO0lBQzlCO0FBQ0o7QUFDQSxTQUFTMEIsYUFBYUMsR0FBRyxFQUFFQyxNQUFNLEVBQUU7SUFDL0IsT0FBTyxJQUFJeEMsUUFBUSxDQUFDQyxTQUFTd0IsU0FBUztRQUNsQ2UsU0FBUzNCLFNBQVNDLGFBQWEsQ0FBQztRQUNoQyx3REFBd0Q7UUFDeEQsbUVBQW1FO1FBQ25FLGlDQUFpQztRQUNqQzBCLE9BQU9QLE1BQU0sR0FBR2hDO1FBQ2hCdUMsT0FBT04sT0FBTyxHQUFHLElBQUlULE9BQU8zQyxlQUFlLElBQUlxRCxNQUFNLDBCQUE4QixPQUFKSTtRQUMvRSwyRUFBMkU7UUFDM0UsOEJBQThCO1FBQzlCQyxPQUFPWCxXQUFXLEdBQUdDLFNBQStCO1FBQ3BELHVFQUF1RTtRQUN2RSw2Q0FBNkM7UUFDN0NVLE9BQU9ELEdBQUcsR0FBR0E7UUFDYjFCLFNBQVM0QixJQUFJLENBQUNKLFdBQVcsQ0FBQ0c7SUFDOUI7QUFDSjtBQUNBLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsSUFBSUU7QUFDSix1RUFBdUU7QUFDdkUsU0FBU0MsMEJBQTBCQyxDQUFDLEVBQUVDLEVBQUUsRUFBRXRDLEdBQUcsRUFBRTtJQUMzQyxPQUFPLElBQUlQLFFBQVEsQ0FBQ0MsU0FBU3dCLFNBQVM7UUFDbEMsSUFBSXFCLFlBQVksS0FBSztRQUNyQkYsRUFBRXZDLElBQUksQ0FBQyxDQUFDMEMsSUFBSTtZQUNSLCtCQUErQjtZQUMvQkQsWUFBWSxJQUFJO1lBQ2hCN0MsUUFBUThDO1FBQ1osR0FBR3pDLEtBQUssQ0FBQ21CO1FBQ1Qsc0VBQXNFO1FBQ3RFLHNCQUFzQjtRQUN0QixJQUFJSyxJQUF5QixFQUFlO1lBQ3ZDWSxDQUFBQSxtQkFBbUIxQyxRQUFRQyxPQUFPLEVBQUMsRUFBR0ksSUFBSSxDQUFDLElBQUk7Z0JBQzNDLElBQUdkLG9CQUFvQixFQUFFeUQsbUJBQW1CLENBQUMsSUFBSUMsV0FBVyxJQUFJO3dCQUN6RCxJQUFJLENBQUNILFdBQVc7NEJBQ1pyQixPQUFPbEI7d0JBQ1gsQ0FBQztvQkFDTCxHQUFHc0M7WUFDWDtRQUNKLENBQUM7UUFDRCxJQUFJZixLQUF5QixFQUFlLEVBTTNDO0lBQ0w7QUFDSjtBQUNBLFNBQVM5Qyx5QkFBeUI7SUFDOUIsSUFBSWtFLEtBQUtDLGdCQUFnQixFQUFFO1FBQ3ZCLE9BQU9uRCxRQUFRQyxPQUFPLENBQUNpRCxLQUFLQyxnQkFBZ0I7SUFDaEQsQ0FBQztJQUNELE1BQU1DLGtCQUFrQixJQUFJcEQsUUFBUSxDQUFDQyxVQUFVO1FBQzNDLGlEQUFpRDtRQUNqRCxNQUFNb0QsS0FBS0gsS0FBS0ksbUJBQW1CO1FBQ25DSixLQUFLSSxtQkFBbUIsR0FBRyxJQUFJO1lBQzNCckQsUUFBUWlELEtBQUtDLGdCQUFnQjtZQUM3QkUsTUFBTUE7UUFDVjtJQUNKO0lBQ0EsT0FBT1YsMEJBQTBCUyxpQkFBaUI1RCxtQkFBbUJWLGVBQWUsSUFBSXFELE1BQU07QUFDbEc7QUFDQSxTQUFTb0IsaUJBQWlCQyxXQUFXLEVBQUVDLEtBQUssRUFBRTtJQUMxQyxJQUFJM0IsSUFBeUIsRUFBZTtRQUN4QyxNQUFNNEIsWUFBWUYsY0FBYywrQkFBK0JHLFVBQVUsQ0FBQyxHQUFHdEUsc0JBQXNCLEVBQUVELE9BQU8sQ0FBQ3FFLE9BQU87UUFDcEgsT0FBT3pELFFBQVFDLE9BQU8sQ0FBQztZQUNuQjJELFNBQVM7Z0JBQ0osSUFBR3RFLGFBQWEsRUFBRXVFLDhCQUE4QixDQUFDSDthQUNyRDtZQUNELHVEQUF1RDtZQUN2REksS0FBSyxFQUFFO1FBQ1g7SUFDSixDQUFDO0lBQ0QsT0FBTzlFLHlCQUF5QnFCLElBQUksQ0FBQyxDQUFDMEQsV0FBVztRQUM3QyxJQUFJLENBQUVOLENBQUFBLFNBQVNNLFFBQU8sR0FBSTtZQUN0QixNQUFNakYsZUFBZSxJQUFJcUQsTUFBTSwyQkFBaUMsT0FBTnNCLFNBQVU7UUFDeEUsQ0FBQztRQUNELE1BQU1PLFdBQVdELFFBQVEsQ0FBQ04sTUFBTSxDQUFDOUQsR0FBRyxDQUFDLENBQUNFLFFBQVEyRCxjQUFjLFlBQVlHLFVBQVU5RDtRQUNsRixPQUFPO1lBQ0grRCxTQUFTSSxTQUFTQyxNQUFNLENBQUMsQ0FBQ0MsSUFBSUEsRUFBRUMsUUFBUSxDQUFDLFFBQVF4RSxHQUFHLENBQUMsQ0FBQ3VFLElBQUksQ0FBQyxHQUFHNUUsYUFBYSxFQUFFdUUsOEJBQThCLENBQUNLO1lBQzVHSixLQUFLRSxTQUFTQyxNQUFNLENBQUMsQ0FBQ0MsSUFBSUEsRUFBRUMsUUFBUSxDQUFDO1FBQ3pDO0lBQ0o7QUFDSjtBQUNBLFNBQVNsRixrQkFBa0J1RSxXQUFXLEVBQUU7SUFDcEMsTUFBTVksY0FBYyxJQUFJQztJQUN4QixNQUFNQyxnQkFBZ0IsSUFBSUQ7SUFDMUIsTUFBTUUsY0FBYyxJQUFJRjtJQUN4QixNQUFNRyxTQUFTLElBQUlIO0lBQ25CLFNBQVNJLG1CQUFtQmxDLEdBQUcsRUFBRTtRQUM3QiwyREFBMkQ7UUFDM0Qsa0VBQWtFO1FBQ2xFLGNBQWM7UUFDZCxJQUFJVCxLQUF5QixFQUFlLEVBVzNDLE1BQU07WUFDSCxPQUFPUSxhQUFhQztRQUN4QixDQUFDO0lBQ0w7SUFDQSxTQUFTb0MsZ0JBQWdCcEQsSUFBSSxFQUFFO1FBQzNCLElBQUlwQixPQUFPb0UsWUFBWXpFLEdBQUcsQ0FBQ3lCO1FBQzNCLElBQUlwQixNQUFNO1lBQ04sT0FBT0E7UUFDWCxDQUFDO1FBQ0RvRSxZQUFZbkUsR0FBRyxDQUFDbUIsTUFBTXBCLE9BQU95RSxNQUFNckQsTUFBTWxCLElBQUksQ0FBQyxDQUFDd0UsTUFBTTtZQUNqRCxJQUFJLENBQUNBLElBQUlDLEVBQUUsRUFBRTtnQkFDVCxNQUFNLElBQUkzQyxNQUFNLDhCQUFtQyxPQUFMWixPQUFRO1lBQzFELENBQUM7WUFDRCxPQUFPc0QsSUFBSUUsSUFBSSxHQUFHMUUsSUFBSSxDQUFDLENBQUMwRSxPQUFRO29CQUN4QnhELE1BQU1BO29CQUNOeUQsU0FBU0Q7Z0JBQ2I7UUFDUixHQUFHekUsS0FBSyxDQUFDLENBQUNDLE1BQU07WUFDWixNQUFNekIsZUFBZXlCLEtBQUs7UUFDOUI7UUFDQSxPQUFPSjtJQUNYO0lBQ0EsT0FBTztRQUNIOEUsZ0JBQWdCeEIsS0FBSyxFQUFFO1lBQ25CLE9BQU9oRSxXQUFXZ0UsT0FBT1c7UUFDN0I7UUFDQWMsY0FBY3pCLEtBQUssRUFBRTBCLE9BQU8sRUFBRTtZQUN6QkEsQ0FBQUEsVUFBVW5GLFFBQVFDLE9BQU8sR0FBR0ksSUFBSSxDQUFDLElBQUk4RSxXQUFXOUUsSUFBSSxDQUFDLENBQUN6QixXQUFXO29CQUMxRHdHLFdBQVd4RyxZQUFXQSxTQUFRUSxPQUFPLElBQUlSO29CQUN6Q0EsU0FBU0E7Z0JBQ2IsSUFBSSxDQUFDMkIsTUFBTztvQkFDUjhFLE9BQU85RTtnQkFDWCxNQUFNUCxRQUFRQyxPQUFPLENBQUNxRixVQUFVLEVBQUVqRixJQUFJLENBQUMsQ0FBQ2tGLFFBQVE7Z0JBQ2hELE1BQU1DLE1BQU1wQixZQUFZdEUsR0FBRyxDQUFDMkQ7Z0JBQzVCLElBQUkrQixPQUFPLGFBQWFBLEtBQUs7b0JBQ3pCLElBQUlELE9BQU87d0JBQ1BuQixZQUFZaEUsR0FBRyxDQUFDcUQsT0FBTzhCO3dCQUN2QkMsSUFBSXZGLE9BQU8sQ0FBQ3NGO29CQUNoQixDQUFDO2dCQUNMLE9BQU87b0JBQ0gsSUFBSUEsT0FBTzt3QkFDUG5CLFlBQVloRSxHQUFHLENBQUNxRCxPQUFPOEI7b0JBQzNCLE9BQU87d0JBQ0huQixZQUFZNUQsTUFBTSxDQUFDaUQ7b0JBQ3ZCLENBQUM7b0JBQ0QsZ0RBQWdEO29CQUNoRCxrREFBa0Q7b0JBQ2xELG1CQUFtQjtvQkFDbkJlLE9BQU9oRSxNQUFNLENBQUNpRDtnQkFDbEIsQ0FBQztZQUNMO1FBQ0o7UUFDQWdDLFdBQVdoQyxLQUFLLEVBQUVpQyxRQUFRLEVBQUU7WUFDeEIsT0FBT2pHLFdBQVdnRSxPQUFPZSxRQUFRLElBQUk7Z0JBQ2pDLElBQUltQjtnQkFDSixJQUFJN0QsSUFBeUIsRUFBZTtvQkFDeENZLGtCQUFrQixJQUFJMUMsUUFBUSxDQUFDQyxVQUFVO3dCQUNyQzBGLHlCQUF5QjFGO29CQUM3QjtnQkFDSixDQUFDO2dCQUNELE9BQU8wQywwQkFBMEJZLGlCQUFpQkMsYUFBYUMsT0FBT3BELElBQUksQ0FBQyxTQUFzQjt3QkFBckIsRUFBRXVELFFBQU8sRUFBR0UsSUFBRyxFQUFHO29CQUMxRixPQUFPOUQsUUFBUTRGLEdBQUcsQ0FBQzt3QkFDZnhCLFlBQVl5QixHQUFHLENBQUNwQyxTQUFTLEVBQUUsR0FBR3pELFFBQVE0RixHQUFHLENBQUNoQyxRQUFRakUsR0FBRyxDQUFDOEUsb0JBQW9CO3dCQUMxRXpFLFFBQVE0RixHQUFHLENBQUM5QixJQUFJbkUsR0FBRyxDQUFDZ0Y7cUJBQ3ZCO2dCQUNMLEdBQUd0RSxJQUFJLENBQUMsQ0FBQ3dFLE1BQU07b0JBQ1gsT0FBTyxJQUFJLENBQUNJLGNBQWMsQ0FBQ3hCLE9BQU9wRCxJQUFJLENBQUMsQ0FBQ3lGLGFBQWM7NEJBQzlDQTs0QkFDQUMsUUFBUWxCLEdBQUcsQ0FBQyxFQUFFO3dCQUNsQjtnQkFDUixJQUFJckYsbUJBQW1CVixlQUFlLElBQUlxRCxNQUFNLG1DQUF5QyxPQUFOc0IsVUFBV3BELElBQUksQ0FBQyxTQUE0Qjt3QkFBM0IsRUFBRXlGLFdBQVUsRUFBR0MsT0FBTSxFQUFHO29CQUN4SCxNQUFNbEIsTUFBTW5HLE9BQU9zSCxNQUFNLENBQUM7d0JBQ3RCRCxRQUFRQTtvQkFDWixHQUFHRDtvQkFDSCxPQUFPLFdBQVdBLGFBQWFBLGFBQWFqQixHQUFHO2dCQUNuRCxHQUFHdkUsS0FBSyxDQUFDLENBQUNDLE1BQU07b0JBQ1osSUFBSW1GLFVBQVU7d0JBQ1YsZ0RBQWdEO3dCQUNoRCxNQUFNbkYsSUFBSTtvQkFDZCxDQUFDO29CQUNELE9BQU87d0JBQ0g4RSxPQUFPOUU7b0JBQ1g7Z0JBQ0osR0FBRzBGLE9BQU8sQ0FBQyxJQUFJO29CQUNYLE9BQU9OLDBCQUEwQixJQUFJLEdBQUcsS0FBSyxJQUFJQSx3QkFBd0I7Z0JBQzdFO1lBQ0o7UUFDSjtRQUNBRCxVQUFVakMsS0FBSyxFQUFFO1lBQ2Isc0hBQXNIO1lBQ3RILHNCQUFzQjtZQUN0QixJQUFJeUM7WUFDSixJQUFJQSxLQUFLQyxVQUFVQyxVQUFVLEVBQUU7Z0JBQzNCLHlEQUF5RDtnQkFDekQsSUFBSUYsR0FBR0csUUFBUSxJQUFJLEtBQUtDLElBQUksQ0FBQ0osR0FBR0ssYUFBYSxHQUFHLE9BQU92RyxRQUFRQyxPQUFPO1lBQzFFLENBQUM7WUFDRCxPQUFPc0QsaUJBQWlCQyxhQUFhQyxPQUFPcEQsSUFBSSxDQUFDLENBQUNtRyxTQUFTeEcsUUFBUTRGLEdBQUcsQ0FBQ3ZFLGNBQWNtRixPQUFPNUMsT0FBTyxDQUFDakUsR0FBRyxDQUFDLENBQUM2QyxTQUFTbEIsZUFBZWtCLE9BQU9rQyxRQUFRLElBQUksYUFBYSxFQUFFLEdBQUdyRSxJQUFJLENBQUMsSUFBSTtnQkFDMUssSUFBR2Qsb0JBQW9CLEVBQUV5RCxtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQ3lDLFNBQVMsQ0FBQ2hDLE9BQU8sSUFBSSxFQUFFbkQsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM3RixHQUFHQSxLQUFLLENBQ1IsSUFBSSxDQUFDO1FBQ1Q7SUFDSjtBQUNKO0FBRUEsSUFBSSxDQUFDLE9BQU8xQixRQUFRUSxPQUFPLEtBQUssY0FBZSxPQUFPUixRQUFRUSxPQUFPLEtBQUssWUFBWVIsUUFBUVEsT0FBTyxLQUFLLElBQUksS0FBTSxPQUFPUixRQUFRUSxPQUFPLENBQUNxSCxVQUFVLEtBQUssYUFBYTtJQUNySy9ILE9BQU9DLGNBQWMsQ0FBQ0MsUUFBUVEsT0FBTyxFQUFFLGNBQWM7UUFBRVAsT0FBTyxJQUFJO0lBQUM7SUFDbkVILE9BQU9zSCxNQUFNLENBQUNwSCxRQUFRUSxPQUFPLEVBQUVSO0lBQy9COEgsT0FBTzlILE9BQU8sR0FBR0EsUUFBUVEsT0FBTztBQUNsQyxDQUFDLENBRUQsd0NBQXdDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JvdXRlLWxvYWRlci5qcz9lYTM0Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5tYXJrQXNzZXRFcnJvciA9IG1hcmtBc3NldEVycm9yO1xuZXhwb3J0cy5pc0Fzc2V0RXJyb3IgPSBpc0Fzc2V0RXJyb3I7XG5leHBvcnRzLmdldENsaWVudEJ1aWxkTWFuaWZlc3QgPSBnZXRDbGllbnRCdWlsZE1hbmlmZXN0O1xuZXhwb3J0cy5jcmVhdGVSb3V0ZUxvYWRlciA9IGNyZWF0ZVJvdXRlTG9hZGVyO1xudmFyIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCA9IHJlcXVpcmUoXCJAc3djL2hlbHBlcnMvbGliL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5qc1wiKS5kZWZhdWx0O1xudmFyIF9nZXRBc3NldFBhdGhGcm9tUm91dGUgPSBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGVcIikpO1xudmFyIF90cnVzdGVkVHlwZXMgPSByZXF1aXJlKFwiLi90cnVzdGVkLXR5cGVzXCIpO1xudmFyIF9yZXF1ZXN0SWRsZUNhbGxiYWNrID0gcmVxdWlyZShcIi4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrXCIpO1xuLy8gMy44cyB3YXMgYXJiaXRyYXJpbHkgY2hvc2VuIGFzIGl0J3Mgd2hhdCBodHRwczovL3dlYi5kZXYvaW50ZXJhY3RpdmVcbi8vIGNvbnNpZGVycyBhcyBcIkdvb2RcIiB0aW1lLXRvLWludGVyYWN0aXZlLiBXZSBtdXN0IGFzc3VtZSBzb21ldGhpbmcgd2VudFxuLy8gd3JvbmcgYmV5b25kIHRoaXMgcG9pbnQsIGFuZCB0aGVuIGZhbGwtYmFjayB0byBhIGZ1bGwgcGFnZSB0cmFuc2l0aW9uIHRvXG4vLyBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBvZiB2YWx1ZS5cbmNvbnN0IE1TX01BWF9JRExFX0RFTEFZID0gMzgwMDtcbmZ1bmN0aW9uIHdpdGhGdXR1cmUoa2V5LCBtYXAsIGdlbmVyYXRvcikge1xuICAgIGxldCBlbnRyeSA9IG1hcC5nZXQoa2V5KTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgaWYgKCdmdXR1cmUnIGluIGVudHJ5KSB7XG4gICAgICAgICAgICByZXR1cm4gZW50cnkuZnV0dXJlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50cnkpO1xuICAgIH1cbiAgICBsZXQgcmVzb2x2ZXI7XG4gICAgY29uc3QgcHJvbSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+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(\"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/IGAke2Vyci5tZXNzYWdlfVxcbiR7ZXJyLnN0YWNrfWAgOiBlcnIgKyAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xudmFyIF9kZWZhdWx0ID0gc2luZ2xldG9uUm91dGVyO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG5mdW5jdGlvbiB1c2VSb3V0ZXIoKSB7XG4gICAgY29uc3Qgcm91dGVyID0gX3JlYWN0LmRlZmF1bHQudXNlQ29udGV4dChfcm91dGVyQ29udGV4dC5Sb3V0ZXJDb250ZXh0KTtcbiAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05leHRSb3V0ZXIgd2FzIG5vdCBtb3VudGVkLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJvdXRlci1ub3QtbW91bnRlZCcpO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGVyO1xufVxuZnVuY3Rpb24gY3JlYXRlUm91dGVyKC4uLmFyZ3MpIHtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucm91dGVyID0gbmV3IF9yb3V0ZXIuZGVmYXVsdCguLi5hcmdzKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MuZm9yRWFjaCgoY2IpPT5jYigpKTtcbiAgICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MgPSBbXTtcbiAgICByZXR1cm4gc2luZ2xldG9uUm91dGVyLnJvdXRlcjtcbn1cbmZ1bmN0aW9uIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpIHtcbiAgICBjb25zdCBzY29wZWRSb3V0ZXIgPSByb3V0ZXI7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB7fTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHVybFByb3BlcnR5RmllbGRzKXtcbiAgICAgICAgaWYgKHR5cGVvZiBzY29wZWRSb3V0ZXJbcHJvcGVydHldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaW5zdGFuY2VbcHJvcGVydHldID0gT2JqZWN0LmFzc2lnbihBcnJheS5pc0FycmF5KHNjb3BlZFJvdXRlcltwcm9wZXJ0eV0pID8gW10gOiB7fSwgc2NvcGVkUm91dGVyW3Byb3BlcnR5XSkgLy8gbWFrZXMgc3VyZSBxdWVyeSBpcyBub3Qgc3RhdGVmdWxcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGluc3RhbmNlW3Byb3BlcnR5XSA9IHNjb3BlZFJvdXRlcltwcm9wZXJ0eV07XG4gICAgfVxuICAgIC8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbiAgICBpbnN0YW5jZS5ldmVudHMgPSBfcm91dGVyLmRlZmF1bHQuZXZlbnRzO1xuICAgIGNvcmVNZXRob2RGaWVsZHMuZm9yRWFjaCgoZmllbGQpPT57XG4gICAgICAgIGluc3RhbmNlW2ZpZWxkXSA9ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgcmV0dXJuIHNjb3BlZFJvdXRlcltmaWVsZF0oLi4uYXJncyk7XG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZXIuanMubWFwIl0sIm5hbWVzIjpbIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZXhwb3J0cyIsInZhbHVlIiwiZW51bWVyYWJsZSIsImdldCIsIl9yb3V0ZXIiLCJkZWZhdWx0IiwiX3dpdGhSb3V0ZXIiLCJ1c2VSb3V0ZXIiLCJjcmVhdGVSb3V0ZXIiLCJtYWtlUHVibGljUm91dGVySW5zdGFuY2UiLCJfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JvdXRlckNvbnRleHQiLCJfaXNFcnJvciIsInNpbmdsZXRvblJvdXRlciIsInJvdXRlciIsInJlYWR5Q2FsbGJhY2tzIiwicmVhZHkiLCJjYiIsInB1c2giLCJ1cmxQcm9wZXJ0eUZpZWxkcyIsInJvdXRlckV2ZW50cyIsImNvcmVNZXRob2RGaWVsZHMiLCJldmVudHMiLCJnZXRSb3V0ZXIiLCJtZXNzYWdlIiwiRXJyb3IiLCJmb3JFYWNoIiwiZmllbGQiLCJhcmdzIiwiZXZlbnQiLCJvbiIsImV2ZW50RmllbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0cmluZyIsIl9zaW5nbGV0b25Sb3V0ZXIiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJzdGFjayIsIl9kZWZhdWx0IiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5IiwiX19lc01vZHVsZSIsIm1vZHVsZSJdLCJzb3VyY2VSb290IjoiIn0=\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