Files
est-dsx/.next/server/pages/_app.js
2025-10-22 03:46:30 +00:00

134 lines
65 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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/).
*/
(() => {
var exports = {};
exports.id = "pages/_app";
exports.ids = ["pages/_app"];
exports.modules = {
/***/ "(pages-dir-node)/./src/components/AudioProvider.js":
/*!*****************************************!*\
!*** ./src/components/AudioProvider.js ***!
\*****************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AudioProvider: () => (/* binding */ AudioProvider),\n/* harmony export */ useAudio: () => (/* binding */ useAudio)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _store_deviceStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/store/deviceStore */ \"(pages-dir-node)/./src/store/deviceStore.js\");\n/* harmony import */ var _utils_asset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/utils/asset */ \"(pages-dir-node)/./src/utils/asset.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_store_deviceStore__WEBPACK_IMPORTED_MODULE_2__, _utils_asset__WEBPACK_IMPORTED_MODULE_3__]);\n([_store_deviceStore__WEBPACK_IMPORTED_MODULE_2__, _utils_asset__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n// 全局音效 Provider根据 estmodel 预加载并动态切换资源\n\n\n\n\nconst AudioCtx = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n play: ()=>{}\n});\nfunction AudioProvider({ children }) {\n const { estmodel } = (0,_store_deviceStore__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n const soundsRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({});\n const ensureAudio = (key, path)=>{\n const url = (0,_utils_asset__WEBPACK_IMPORTED_MODULE_3__.getAssetUrl)(path);\n let audio = soundsRef.current[key];\n if (!audio) {\n audio = new Audio(url);\n audio.preload = 'auto';\n soundsRef.current[key] = audio;\n } else if (audio.src !== url) {\n audio.src = url;\n audio.load();\n }\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"AudioProvider.useEffect\": ()=>{\n if (true) return;\n // 按需添加你要的音效键和值\n ensureAudio('install', '/sounds/generic_in.wav');\n ensureAudio('uninstall', '/sounds/generic_out.wav');\n ensureAudio('keyClick', '/sounds/key_click.wav');\n ensureAudio('pass', '/sounds/test_pass.wav');\n ensureAudio('fail', '/sounds/test_fail.wav');\n ensureAudio('connect', '/sounds/rmt_connect.wav');\n ensureAudio('disconnect', '/sounds/rmt_disconnect.wav');\n }\n }[\"AudioProvider.useEffect\"], [\n estmodel\n ]);\n const play = (key, opts = {})=>{\n const base = soundsRef.current[key];\n if (!base) return;\n // 克隆节点以支持频繁触发的并发播放\n const audio = base.cloneNode(true);\n if (opts.volume != null) audio.volume = Math.min(1, Math.max(0, opts.volume));\n if (opts.playbackRate != null) audio.playbackRate = opts.playbackRate;\n audio.currentTime = 0;\n audio.play().catch(()=>{});\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AudioCtx.Provider, {\n value: {\n play\n },\n children: children\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/components/AudioProvider.js\",\n lineNumber: 51,\n columnNumber: 5\n }, this);\n}\nconst useAudio = ()=>(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(AudioCtx);\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy9jb21wb25lbnRzL0F1ZGlvUHJvdmlkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBdUM7O0FBQzhCO0FBQ3BCO0FBQ0w7QUFFNUMsTUFBTU0seUJBQVdOLG9EQUFhQSxDQUFDO0lBQUVPLE1BQU0sS0FBTztBQUFFO0FBRXpDLFNBQVNDLGNBQWMsRUFBRUMsUUFBUSxFQUFFO0lBQ3hDLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdOLDhEQUFjQTtJQUNuQyxNQUFNTyxZQUFZUiw2Q0FBTUEsQ0FBQyxDQUFDO0lBRTFCLE1BQU1TLGNBQWMsQ0FBQ0MsS0FBS0M7UUFDeEIsTUFBTUMsTUFBTVYseURBQVdBLENBQUNTO1FBQ3hCLElBQUlFLFFBQVFMLFVBQVVNLE9BQU8sQ0FBQ0osSUFBSTtRQUNsQyxJQUFJLENBQUNHLE9BQU87WUFDVkEsUUFBUSxJQUFJRSxNQUFNSDtZQUNsQkMsTUFBTUcsT0FBTyxHQUFHO1lBQ2hCUixVQUFVTSxPQUFPLENBQUNKLElBQUksR0FBR0c7UUFDM0IsT0FBTyxJQUFJQSxNQUFNSSxHQUFHLEtBQUtMLEtBQUs7WUFDNUJDLE1BQU1JLEdBQUcsR0FBR0w7WUFDWkMsTUFBTUssSUFBSTtRQUNaO0lBQ0Y7SUFFQW5CLGdEQUFTQTttQ0FBQztZQUNSLElBQUksSUFBNkQsRUFBRTtZQUNuRSxlQUFlO1lBQ2ZVLFlBQVksV0FBVztZQUN2QkEsWUFBWSxhQUFhO1lBQ3pCQSxZQUFZLFlBQVk7WUFFeEJBLFlBQVksUUFBUTtZQUNwQkEsWUFBWSxRQUFRO1lBRXBCQSxZQUFZLFdBQVc7WUFDdkJBLFlBQVksY0FBYztRQUM1QjtrQ0FBRztRQUFDRjtLQUFTO0lBRWIsTUFBTUgsT0FBTyxDQUFDTSxLQUFLUyxPQUFPLENBQUMsQ0FBQztRQUMxQixNQUFNQyxPQUFPWixVQUFVTSxPQUFPLENBQUNKLElBQUk7UUFDbkMsSUFBSSxDQUFDVSxNQUFNO1FBQ1gsbUJBQW1CO1FBQ25CLE1BQU1QLFFBQVFPLEtBQUtDLFNBQVMsQ0FBQztRQUM3QixJQUFJRixLQUFLRyxNQUFNLElBQUksTUFBTVQsTUFBTVMsTUFBTSxHQUFHQyxLQUFLQyxHQUFHLENBQUMsR0FBR0QsS0FBS0UsR0FBRyxDQUFDLEdBQUdOLEtBQUtHLE1BQU07UUFDM0UsSUFBSUgsS0FBS08sWUFBWSxJQUFJLE1BQU1iLE1BQU1hLFlBQVksR0FBR1AsS0FBS08sWUFBWTtRQUNyRWIsTUFBTWMsV0FBVyxHQUFHO1FBQ3BCZCxNQUFNVCxJQUFJLEdBQUd3QixLQUFLLENBQUMsS0FBTztJQUM1QjtJQUVBLHFCQUNFLDhEQUFDekIsU0FBUzBCLFFBQVE7UUFBQ0MsT0FBTztZQUFFMUI7UUFBSztrQkFDOUJFOzs7Ozs7QUFHUDtBQUVPLE1BQU15QixXQUFXLElBQU1qQyxpREFBVUEsQ0FBQ0ssVUFBVSIsInNvdXJjZXMiOlsiL29wdC9kZXYvZXN0LWRzeC9zcmMvY29tcG9uZW50cy9BdWRpb1Byb3ZpZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIOWFqOWxgOmfs+aViCBQcm92aWRlcu+8muagueaNriBlc3Rtb2RlbCDpooTliqDovb3lubbliqjmgIHliIfmjaLotYTmupBcclxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB1c2VEZXZpY2VTdG9yZSBmcm9tICdAL3N0b3JlL2RldmljZVN0b3JlJztcclxuaW1wb3J0IHsgZ2V0QXNzZXRVcmwgfSBmcm9tICdAL3V0aWxzL2Fzc2V0JztcclxuXHJcbmNvbnN0IEF1ZGlvQ3R4ID0gY3JlYXRlQ29udGV4dCh7IHBsYXk6ICgpID0+IHt9IH0pO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEF1ZGlvUHJvdmlkZXIoeyBjaGlsZHJlbiB9KSB7XHJcbiAgY29uc3QgeyBlc3Rtb2RlbCB9ID0gdXNlRGV2aWNlU3RvcmUoKTtcclxuICBjb25zdCBzb3VuZHNSZWYgPSB1c2VSZWYoe30pO1xyXG5cclxuICBjb25zdCBlbnN1cmVBdWRpbyA9IChrZXksIHBhdGgpID0+IHtcclxuICAgIGNvbnN0IHVybCA9IGdldEFzc2V0VXJsKHBhdGgpO1xyXG4gICAgbGV0IGF1ZGlvID0gc291bmRzUmVmLmN1cnJlbnRba2V5XTtcclxuICAgIGlmICghYXVkaW8pIHtcclxuICAgICAgYXVkaW8gPSBuZXcgQXVkaW8odXJsKTtcclxuICAgICAgYXVkaW8ucHJlbG9hZCA9ICdhdXRvJztcclxuICAgICAgc291bmRzUmVmLmN1cnJlbnRba2V5XSA9IGF1ZGlvO1xyXG4gICAgfSBlbHNlIGlmIChhdWRpby5zcmMgIT09IHVybCkge1xyXG4gICAgICBhdWRpby5zcmMgPSB1cmw7XHJcbiAgICAgIGF1ZGlvLmxvYWQoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiBBdWRpbyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcclxuICAgIC8vIOaMiemcgOa3u+WKoOS9oOimgeeahOmfs+aViOmUruWSjOWAvFxyXG4gICAgZW5zdXJlQXVkaW8oJ2luc3RhbGwnLCAnL3NvdW5kcy9nZW5lcmljX2luLndhdicpO1xyXG4gICAgZW5zdXJlQXVkaW8oJ3VuaW5zdGFsbCcsICcvc291bmRzL2dlbmVyaWNfb3V0LndhdicpO1xyXG4gICAgZW5zdXJlQXVkaW8oJ2tleUNsaWNrJywgJy9zb3VuZHMva2V5X2NsaWNrLndhdicpO1xyXG4gICAgXHJcbiAgICBlbnN1cmVBdWRpbygncGFzcycsICcvc291bmRzL3Rlc3RfcGFzcy53YXYnKTtcclxuICAgIGVuc3VyZUF1ZGlvKCdmYWlsJywgJy9zb3VuZHMvdGVzdF9mYWlsLndhdicpO1xyXG5cclxuICAgIGVuc3VyZUF1ZGlvKCdjb25uZWN0JywgJy9zb3VuZHMvcm10X2Nvbm5lY3Qud2F2Jyk7XHJcbiAgICBlbnN1cmVBdWRpbygnZGlzY29ubmVjdCcsICcvc291bmRzL3JtdF9kaXNjb25uZWN0LndhdicpO1xyXG4gIH0sIFtlc3Rtb2RlbF0pO1xyXG5cclxuICBjb25zdCBwbGF5ID0gKGtleSwgb3B0cyA9IHt9KSA9PiB7XHJcbiAgICBjb25zdCBiYXNlID0gc291bmRzUmVmLmN1cnJlbnRba2V5XTtcclxuICAgIGlmICghYmFzZSkgcmV0dXJuO1xyXG4gICAgLy8g5YWL6ZqG6IqC54K55Lul5pSv5oyB6aKR57mB6Kem5Y+R55qE5bm25Y+R5pKt5pS+XHJcbiAgICBjb25zdCBhdWRpbyA9IGJhc2UuY2xvbmVOb2RlKHRydWUpO1xyXG4gICAgaWYgKG9wdHMudm9sdW1lICE9IG51bGwpIGF1ZGlvLnZvbHVtZSA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIG9wdHMudm9sdW1lKSk7XHJcbiAgICBpZiAob3B0cy5wbGF5YmFja1JhdGUgIT0gbnVsbCkgYXVkaW8ucGxheWJhY2tSYXRlID0gb3B0cy5wbGF5YmFja1JhdGU7XHJcbiAgICBhdWRpby5jdXJyZW50VGltZSA9IDA7XHJcbiAgICBhdWRpby5wbGF5KCkuY2F0Y2goKCkgPT4ge30pO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8QXVkaW9DdHguUHJvdmlkZXIgdmFsdWU9e3sgcGxheSB9fT5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9BdWRpb0N0eC5Qcm92aWRlcj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgdXNlQXVkaW8gPSAoKSA9PiB1c2VDb250ZXh0KEF1ZGlvQ3R4KTsiXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VEZXZpY2VTdG9yZSIsImdldEFzc2V0VXJsIiwiQXVkaW9DdHgiLCJwbGF5IiwiQXVkaW9Qcm92aWRlciIsImNoaWxkcmVuIiwiZXN0bW9kZWwiLCJzb3VuZHNSZWYiLCJlbnN1cmVBdWRpbyIsImtleSIsInBhdGgiLCJ1cmwiLCJhdWRpbyIsImN1cnJlbnQiLCJBdWRpbyIsInByZWxvYWQiLCJzcmMiLCJsb2FkIiwib3B0cyIsImJhc2UiLCJjbG9uZU5vZGUiLCJ2b2x1bWUiLCJNYXRoIiwibWluIiwibWF4IiwicGxheWJhY2tSYXRlIiwiY3VycmVudFRpbWUiLCJjYXRjaCIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1c2VBdWRpbyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/components/AudioProvider.js\n");
/***/ }),
/***/ "(pages-dir-node)/./src/pages/_app.js":
/*!***************************!*\
!*** ./src/pages/_app.js ***!
\***************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ App)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/styles/globals.css */ \"(pages-dir-node)/./src/styles/globals.css\");\n/* harmony import */ var _styles_globals_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_globals_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/head */ \"next/head\");\n/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/AudioProvider */ \"(pages-dir-node)/./src/components/AudioProvider.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__]);\n_components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\n\n\nfunction App({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_head__WEBPACK_IMPORTED_MODULE_2___default()), {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"title\", {\n children: \"信息网络布线仿真测试平台\"\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 9,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"meta\", {\n name: \"description\",\n content: \"信息网络布线仿真测试平台\"\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 10,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 8,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AudioProvider__WEBPACK_IMPORTED_MODULE_3__.AudioProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 13,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/opt/dev/est-dsx/src/pages/_app.js\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUE4QjtBQUNGO0FBQytCO0FBRTVDLFNBQVNFLElBQUksRUFBRUMsU0FBUyxFQUFFQyxTQUFTLEVBQUU7SUFDbEQscUJBQ0U7OzBCQUNFLDhEQUFDSixrREFBSUE7O2tDQUNILDhEQUFDSztrQ0FBTTs7Ozs7O2tDQUNQLDhEQUFDQzt3QkFBS0MsTUFBSzt3QkFBY0MsU0FBUTs7Ozs7Ozs7Ozs7OzBCQUVuQyw4REFBQ1Asb0VBQWFBOzBCQUNaLDRFQUFDRTtvQkFBVyxHQUFHQyxTQUFTOzs7Ozs7Ozs7Ozs7O0FBSWhDIiwic291cmNlcyI6WyIvb3B0L2Rldi9lc3QtZHN4L3NyYy9wYWdlcy9fYXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIkAvc3R5bGVzL2dsb2JhbHMuY3NzXCI7XG5pbXBvcnQgSGVhZCBmcm9tICduZXh0L2hlYWQnXG5pbXBvcnQgeyBBdWRpb1Byb3ZpZGVyIH0gZnJvbSAnQC9jb21wb25lbnRzL0F1ZGlvUHJvdmlkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9KSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxIZWFkPlxuICAgICAgICA8dGl0bGU+5L+h5oGv572R57uc5biD57q/5Lu/55yf5rWL6K+V5bmz5Y+wPC90aXRsZT5cbiAgICAgICAgPG1ldGEgbmFtZT1cImRlc2NyaXB0aW9uXCIgY29udGVudD1cIuS/oeaBr+e9kee7nOW4g+e6v+S7v+ecn+a1i+ivleW5s+WPsFwiIC8+XG4gICAgICA8L0hlYWQ+XG4gICAgICA8QXVkaW9Qcm92aWRlcj5cbiAgICAgICAgPENvbXBvbmVudCB7Li4ucGFnZVByb3BzfSAvPlxuICAgICAgPC9BdWRpb1Byb3ZpZGVyPlxuICAgIDwvPlxuICApXG59XG4iXSwibmFtZXMiOlsiSGVhZCIsIkF1ZGlvUHJvdmlkZXIiLCJBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiLCJ0aXRsZSIsIm1ldGEiLCJuYW1lIiwiY29udGVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/pages/_app.js\n");
/***/ }),
/***/ "(pages-dir-node)/./src/store/deviceStore.js":
/*!**********************************!*\
!*** ./src/store/deviceStore.js ***!
\**********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zustand */ \"zustand\");\n/* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zustand/middleware */ \"zustand/middleware\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([zustand__WEBPACK_IMPORTED_MODULE_0__, zustand_middleware__WEBPACK_IMPORTED_MODULE_1__]);\n([zustand__WEBPACK_IMPORTED_MODULE_0__, zustand_middleware__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);\n\n\nconst useDeviceStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__.create)(// devtools(\n(set, get)=>({\n // 版本控制\n estmodel: 'general',\n // estmodel: 'fluke',\n updateEstmodel: (model)=>set({\n estmodel: model\n }),\n // 各个类别的设备\n devices: {\n '模块': [\n {\n id: '8000',\n name: '铜缆分析模块',\n type: 'module',\n portType: 'copper',\n image: '/dsx.png',\n description: '铜缆认证分析仪模块'\n },\n {\n id: 'cfp',\n name: '光纤损耗模块',\n type: 'module',\n portType: 'fiber',\n image: '/cfp.png',\n description: '光纤损耗测试模块'\n },\n {\n id: 'ofp',\n name: '光时域反射模块',\n type: 'module',\n portType: 'fiber',\n image: '/ofp.png',\n description: 'OTDR光时域反射测试模块'\n }\n ],\n '适配器': [\n {\n id: 'channel',\n name: '通道适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-copper',\n image: '/CHA804.png',\n description: 'Cat 8/Class I 通道测试适配器'\n },\n {\n id: 'permanent',\n name: '永久链路适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-copper',\n image: '/PLA804.png',\n description: 'Cat 8/Class I 永久链路测试适配器'\n },\n {\n id: 'patchcode-Cat6',\n name: '跳线适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-copper',\n image: '/DSX-PC6S.png',\n description: 'Cat 6 跳线适配器'\n },\n {\n id: 'channel-m12-d',\n name: 'M12 D-Code适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-m12-d',\n image: '/DSX-CHA021S.png',\n description: ' M12-D 4位适配器'\n },\n {\n id: 'channel-m12-x',\n name: 'M12 X-Code适配器',\n type: 'adapter',\n portType: 'copper',\n jstype: 'modelport-m12-x',\n image: '/DSX-CHA-M12-X-S.png',\n description: 'M12-X 8 位适配器'\n }\n ],\n '跳线': [\n // 铜缆跳线\n {\n id: 'pachcode-copper',\n name: 'RJ45跳线',\n type: 'cable',\n portType: 'copper',\n image: '/Cable.png',\n description: 'Cat 6测试跳线'\n },\n {\n id: 'pachcode-m12-x',\n name: 'M12-X-Code跳线',\n type: 'cable',\n portType: 'copper-m12-x',\n image: '/M12.png',\n description: 'M12-X-Code跳线'\n },\n {\n id: 'pachcode-m12-d',\n name: 'M12-D-Code跳线',\n type: 'cable',\n portType: 'copper-m12-d',\n image: '/M12.png',\n description: 'M12-D-Code跳线'\n },\n // 光纤跳线\n {\n id: 'sm-lc-lc',\n name: '单模跳纤',\n type: 'cable',\n portType: 'fiber',\n image: '/SM-LC-LC.png',\n description: '单模 LC-LC 双工测试跳线'\n },\n {\n id: 'mm-lc-lc',\n name: '多模跳纤',\n type: 'cable',\n portType: 'fiber',\n image: '/MM-LC-LC.png',\n description: '多模 LC-LC 双工测试跳线'\n },\n // 补偿光纤\n {\n id: 'smc-lc-lc',\n name: '单模补偿光纤',\n type: 'cable',\n portType: 'fiber',\n image: '/SMC-LC-LC.png',\n description: '单模 LC-LC 双工补偿光纤'\n },\n {\n id: 'mmc-lc-lc',\n name: '多模补偿光纤',\n type: 'cable',\n portType: 'fiber',\n image: '/MMC-LC-LC.png',\n description: '多模 LC-LC 双工补偿光纤'\n },\n // MPO跳线\n {\n id: 'sm-mpo-mpo',\n name: '单模MPO跳线',\n type: 'cable-mpo',\n portType: 'fiber-mpo',\n image: '/SM-MPO-MPO.png',\n description: '单模 MPO-MPO 跳线'\n },\n {\n id: 'mm-mpo-mpo',\n name: '多模MPO跳线',\n type: 'cable-mpo',\n portType: 'fiber-mpo',\n image: '/MM-MPO-MPO.png',\n description: '多模 MPO-MPO 跳线'\n },\n {\n id: 'mm-mpo-lc-box',\n name: '多模mpo-lc转接盒',\n type: 'mpo',\n portType: 'fiberbox',\n image: '/MM-MPO-LC-BOX.png',\n description: '多模 MPO-LC 转接盒'\n }\n ],\n '连接器': [\n {\n id: 'lc-connector',\n name: 'LC法兰',\n type: 'connector',\n portType: 'fiber',\n image: '/LC-connector.png',\n description: '光纤连接器'\n }\n ],\n '工具': [\n {\n id: 'lc-clean',\n name: '1.25mm清洁笔',\n image: '/LC-clean.png',\n description: '光纤清洁笔'\n },\n {\n id: 'mpo-clean',\n name: 'mpo清洁笔',\n image: '/MPO-clean.png',\n description: '光纤清洁笔'\n },\n {\n id: 'ILT200',\n name: '音频探棒',\n image: '/ILT200.png',\n description: '音频探棒'\n }\n ]\n },\n // 故障场景\n faultScenarios: \"Office\",\n // faultScenarios: \"WorldSkill\",\n // faultScenarios: \"Industry\",\n // faultScenarios: \"DataCenter\",\n WorldSkillScenarios: \"OFFICE\",\n // 赛位号\n seatNumber: \"\",\n // 比赛ID\n seatUUID: null,\n // 比赛开始时间\n seatStartTime: null,\n // 表单记录\n reports: [],\n // 主机已安装模块\n mainUnitModules: [],\n // 远端已安装模块\n remoteUnitModules: [],\n // 主机适配器\n mainUnitAdapter: null,\n // 远端适配器\n remoteUnitAdapter: null,\n // 主机接口\n mainUnitPorts: [],\n // 远端接口\n remoteUnitPorts: [],\n // 当前选中的工具\n selectedTool: null,\n // 连接区物品列表\n connectionItems: [],\n // 连接路径列表\n connectionPaths: [],\n // 连接状态分析结果\n connectionStatus: [],\n // 选择工具\n selectTool: (tool)=>{\n set({\n selectedTool: tool\n });\n },\n // 取消选择工具\n clearSelectedTool: ()=>{\n set({\n selectedTool: null\n });\n },\n // 安装模块\n installModule: (module, target)=>{\n set((state)=>{\n if (target === 'main') {\n let ports = [];\n if (module.id === 'cfp') {\n ports = [\n {\n id: 'cfp-sm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-in',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-mm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'vfl',\n type: 'modelport',\n module: 'cfp'\n }\n ];\n } else if (module.id === 'ofp') {\n ports = [\n {\n id: 'ofp-sm-out',\n type: 'modelport',\n module: 'ofp'\n },\n {\n id: 'ofp-mm-out',\n type: 'modelport',\n module: 'ofp'\n },\n {\n id: 'vfl',\n type: 'modelport',\n module: 'ofp'\n }\n ];\n }\n return {\n mainUnitModules: [\n ...state.mainUnitModules,\n module\n ],\n mainUnitPorts: ports\n };\n } else {\n let ports = [];\n if (module.id === 'cfp') {\n ports = [\n {\n id: 'cfp-sm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-in',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'cfp-mm-out',\n type: 'modelport',\n module: 'cfp'\n },\n {\n id: 'vfl',\n type: 'modelport',\n module: 'cfp'\n }\n ];\n }\n return {\n remoteUnitModules: [\n ...state.remoteUnitModules,\n module\n ],\n remoteUnitPorts: ports\n };\n }\n });\n },\n // 卸载模块\n uninstallModule: (moduleId, target)=>{\n set((state)=>{\n if (target === 'main') {\n return {\n mainUnitModules: state.mainUnitModules.filter((m)=>m.id !== moduleId),\n mainUnitPorts: [],\n mainUnitAdapter: null\n };\n } else {\n return {\n remoteUnitModules: state.remoteUnitModules.filter((m)=>m.id !== moduleId),\n remoteUnitPorts: [],\n remoteUnitAdapter: null\n };\n }\n });\n },\n // 安装适配器\n installAdapter: (adapter, target)=>{\n set((state)=>({\n [target === 'main' ? 'mainUnitAdapter' : 'remoteUnitAdapter']: {\n ...adapter,\n port: {\n id: `${adapter.id}`,\n type: 'modelport',\n module: adapter.id\n }\n }\n }));\n },\n // 卸载适配器\n uninstallAdapter: (target)=>{\n set((state)=>({\n [target === 'main' ? 'mainUnitAdapter' : 'remoteUnitAdapter']: null\n }));\n },\n // 更新故障场景\n updateFaultScenarios: (status)=>{\n set(()=>({\n faultScenarios: status\n }));\n },\n // 更新竞赛故障场景\n updateWorldSkillScenarios: (status)=>{\n set(()=>({\n WorldSkillScenarios: status\n }));\n },\n // 更新赛位号\n updateSeatNumber: (number)=>{\n set(()=>({\n seatNumber: number\n }));\n },\n // 更新比赛ID\n updateSeatUUID: (uuid)=>{\n set(()=>({\n seatUUID: uuid\n }));\n },\n // 更新比赛开始时间\n updateSeatStartTime: (startTime)=>{\n set(()=>({\n seatStartTime: startTime\n }));\n },\n // 更新报告数据\n updateReports: (records)=>{\n set(()=>({\n reports: records\n }));\n },\n // ----***物品区域方法***----\n // 添加物品到连接区\n addConnectionItem: (item)=>set((state)=>({\n connectionItems: [\n ...state.connectionItems,\n item\n ]\n })),\n // 从连接区移除物品\n removeConnectionItem: (index)=>set((state)=>({\n connectionItems: state.connectionItems.filter((_, i)=>i !== index)\n })),\n // ---***连接路径***---\n // 添加连接路径\n addConnectionPath: (path)=>set((state)=>{\n const newPaths = [\n ...state.connectionPaths,\n path\n ];\n return {\n connectionPaths: newPaths\n };\n }),\n // 移除连接路径\n removeConnectionPath: (sourceId, targetId)=>set((state)=>{\n const newPaths = state.connectionPaths.filter((path)=>!(path.source === sourceId && path.target === targetId));\n return {\n connectionPaths: newPaths\n };\n }),\n // 清空连接路径\n clearConnectionPaths: ()=>set(()=>{\n return {\n connectionPaths: []\n };\n }),\n // 获取当前连接路径\n getConnectionPaths: ()=>get().connectionPaths,\n // ---***连接状态分析结果***---\n // 更新连接状态\n updateConnectionStatus: (status)=>set(()=>({\n connectionStatus: status\n })),\n // 提示框方法\n setShowTotalToast: (show)=>set({\n showTotalToast: show\n }),\n setTotalToastMessage: (message)=>set({\n totalToastMessage: message\n }),\n // 初始化数据\n // 重置到默认状态\n resetdeviceStore: ()=>{\n set(()=>({\n // 主机已安装模块\n mainUnitModules: [],\n // 远端已安装模块\n remoteUnitModules: [],\n // 主机适配器\n mainUnitAdapter: null,\n // 远端适配器\n remoteUnitAdapter: null,\n // 主机接口\n mainUnitPorts: [],\n // 远端接口\n remoteUnitPorts: [],\n // 当前选中的工具\n selectedTool: null,\n // 连接区物品列表\n connectionItems: [],\n // 连接路径列表\n connectionPaths: [],\n // 连接状态分析结果\n connectionStatus: [],\n // 报告数据\n reports: []\n }));\n }\n }));\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useDeviceStore);\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy9zdG9yZS9kZXZpY2VTdG9yZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBaUM7QUFDYTtBQUc5QyxNQUFNRSxpQkFBaUJGLCtDQUFNQSxDQUMzQixZQUFZO0FBQ1YsQ0FBQ0csS0FBS0MsTUFBUztRQUNqQixPQUFPO1FBQ1BDLFVBQVU7UUFDVixxQkFBcUI7UUFDcEJDLGdCQUFnQixDQUFDQyxRQUFVSixJQUFJO2dCQUFFRSxVQUFVRTtZQUFNO1FBRWxELFVBQVU7UUFDVkMsU0FBUztZQUNQLE1BQU07Z0JBQ0o7b0JBQ0VDLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLFVBQVU7b0JBQ1ZDLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VMLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLFVBQVU7b0JBQ1ZDLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VMLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLFVBQVU7b0JBQ1ZDLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7YUFDRDtZQUNELE9BQU87Z0JBQ0w7b0JBQ0VMLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLFVBQVU7b0JBQ1ZHLFFBQVE7b0JBQ1JGLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VMLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLFVBQVU7b0JBQ1ZHLFFBQVE7b0JBQ1JGLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VMLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLFVBQVU7b0JBQ1ZHLFFBQVE7b0JBQ1JGLE9BQU87b0JBQ1BDLGFBQWE7Z0JBQ2Y7Z0JBQ0E7b0JBQ0VMLElBQUk7b0JBQ0pDLE1BQU07b0JBQ05DLE1BQU07b0JBQ05DLFVBQVU7b0JBQ1ZHLFFBQVE7b0JBQ1JG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O0FBVUEsaUVBQWVuQixjQUFjQSxFQUFDIiwic291cmNlcyI6WyIvb3B0L2Rldi9lc3QtZHN4L3NyYy9zdG9yZS9kZXZpY2VTdG9yZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGUgfSBmcm9tICd6dXN0YW5kJztcbmltcG9ydCB7IGRldnRvb2xzIH0gZnJvbSAnenVzdGFuZC9taWRkbGV3YXJlJztcblxuXG5jb25zdCB1c2VEZXZpY2VTdG9yZSA9IGNyZWF0ZShcbiAgLy8gZGV2dG9vbHMoXG4gICAgKHNldCwgZ2V0KSA9PiAoe1xuICAvLyDniYjmnKzmjqfliLZcbiAgZXN0bW9kZWw6ICdnZW5lcmFsJyxcbiAgLy8gZXN0bW9kZWw6ICdmbHVrZScsXG4gICB1cGRhdGVFc3Rtb2RlbDogKG1vZGVsKSA9PiBzZXQoeyBlc3Rtb2RlbDogbW9kZWwgfSksXG4gICBcbiAgLy8g5ZCE5Liq57G75Yir55qE6K6+5aSHXG4gIGRldmljZXM6IHtcbiAgICAn5qih5Z2XJzogW1xuICAgICAge1xuICAgICAgICBpZDogJzgwMDAnLCBcbiAgICAgICAgbmFtZTogJ+mTnOe8huWIhuaekOaooeWdlycsXG4gICAgICAgIHR5cGU6ICdtb2R1bGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlcicsXG4gICAgICAgIGltYWdlOiAnL2RzeC5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+mTnOe8huiupOivgeWIhuaekOS7quaooeWdlydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnY2ZwJywgXG4gICAgICAgIG5hbWU6ICflhYnnuqTmjZ/ogJfmqKHlnZcnLFxuICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlcicsXG4gICAgICAgIGltYWdlOiAnL2NmcC5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+WFiee6pOaNn+iAl+a1i+ivleaooeWdlydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnb2ZwJywgXG4gICAgICAgIG5hbWU6ICflhYnml7bln5/lj43lsITmqKHlnZcnLFxuICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlcicsXG4gICAgICAgIGltYWdlOiAnL29mcC5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09URFLlhYnml7bln5/lj43lsITmtYvor5XmqKHlnZcnXG4gICAgICB9XG4gICAgXSxcbiAgICAn6YCC6YWN5ZmoJzogW1xuICAgICAge1xuICAgICAgICBpZDogJ2NoYW5uZWwnLCBcbiAgICAgICAgbmFtZTogJ+mAmumBk+mAgumFjeWZqCcsIFxuICAgICAgICB0eXBlOiAnYWRhcHRlcicsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyJyxcbiAgICAgICAganN0eXBlOiAnbW9kZWxwb3J0LWNvcHBlcicsXG4gICAgICAgIGltYWdlOiAnL0NIQTgwNC5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0NhdCA4L0NsYXNzIEkg6YCa6YGT5rWL6K+V6YCC6YWN5ZmoJ1xuICAgICAgfSxcbiAgICAgIHsgXG4gICAgICAgIGlkOiAncGVybWFuZW50JywgXG4gICAgICAgIG5hbWU6ICfmsLjkuYXpk77ot6/pgILphY3lmagnLCBcbiAgICAgICAgdHlwZTogJ2FkYXB0ZXInLFxuICAgICAgICBwb3J0VHlwZTogJ2NvcHBlcicsXG4gICAgICAgIGpzdHlwZTogJ21vZGVscG9ydC1jb3BwZXInLFxuICAgICAgICBpbWFnZTogJy9QTEE4MDQucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdDYXQgOC9DbGFzcyBJIOawuOS5hemTvui3r+a1i+ivlemAgumFjeWZqCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAncGF0Y2hjb2RlLUNhdDYnLCBcbiAgICAgICAgbmFtZTogJ+i3s+e6v+mAgumFjeWZqCcsIFxuICAgICAgICB0eXBlOiAnYWRhcHRlcicsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyJyxcbiAgICAgICAganN0eXBlOiAnbW9kZWxwb3J0LWNvcHBlcicsXG4gICAgICAgIGltYWdlOiAnL0RTWC1QQzZTLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQ2F0IDYg6Lez57q/6YCC6YWN5ZmoJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjaGFubmVsLW0xMi1kJywgXG4gICAgICAgIG5hbWU6ICdNMTIgRC1Db2Rl6YCC6YWN5ZmoJywgXG4gICAgICAgIHR5cGU6ICdhZGFwdGVyJyxcbiAgICAgICAgcG9ydFR5cGU6ICdjb3BwZXInLFxuICAgICAgICBqc3R5cGU6ICdtb2RlbHBvcnQtbTEyLWQnLFxuICAgICAgICBpbWFnZTogJy9EU1gtQ0hBMDIxUy5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJyBNMTItRCA05L2N6YCC6YWN5ZmoJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjaGFubmVsLW0xMi14JywgXG4gICAgICAgIG5hbWU6ICdNMTIgWC1Db2Rl6YCC6YWN5ZmoJywgXG4gICAgICAgIHR5cGU6ICdhZGFwdGVyJyxcbiAgICAgICAgcG9ydFR5cGU6ICdjb3BwZXInLFxuICAgICAgICBqc3R5cGU6ICdtb2RlbHBvcnQtbTEyLXgnLFxuICAgICAgICBpbWFnZTogJy9EU1gtQ0hBLU0xMi1YLVMucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdNMTItWCA4IOS9jemAgumFjeWZqCdcbiAgICAgIH1cbiAgICBdLFxuICAgICfot7Pnur8nOiBbXG4gICAgICAvLyDpk5znvIbot7Pnur9cbiAgICAgIHsgXG4gICAgICAgIGlkOiAncGFjaGNvZGUtY29wcGVyJywgXG4gICAgICAgIG5hbWU6ICdSSjQ16Lez57q/JywgXG4gICAgICAgIHR5cGU6ICdjYWJsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyJyxcbiAgICAgICAgaW1hZ2U6ICcvQ2FibGUucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdDYXQgNua1i+ivlei3s+e6vydcbiAgICAgIH0sXG4gICAgICB7IFxuICAgICAgICBpZDogJ3BhY2hjb2RlLW0xMi14JywgXG4gICAgICAgIG5hbWU6ICdNMTItWC1Db2Rl6Lez57q/JywgXG4gICAgICAgIHR5cGU6ICdjYWJsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyLW0xMi14JyxcbiAgICAgICAgaW1hZ2U6ICcvTTEyLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTTEyLVgtQ29kZei3s+e6vydcbiAgICAgIH0sXG4gICAgICB7IFxuICAgICAgICBpZDogJ3BhY2hjb2RlLW0xMi1kJywgXG4gICAgICAgIG5hbWU6ICdNMTItRC1Db2Rl6Lez57q/JywgXG4gICAgICAgIHR5cGU6ICdjYWJsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnY29wcGVyLW0xMi1kJyxcbiAgICAgICAgaW1hZ2U6ICcvTTEyLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTTEyLUQtQ29kZei3s+e6vydcbiAgICAgIH0sXG4gICAgICAvLyDlhYnnuqTot7Pnur9cbiAgICAgIHsgXG4gICAgICAgIGlkOiAnc20tbGMtbGMnLCBcbiAgICAgICAgbmFtZTogJ+WNleaooei3s+e6pCcsIFxuICAgICAgICB0eXBlOiAnY2FibGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2ZpYmVyJyxcbiAgICAgICAgaW1hZ2U6ICcvU00tTEMtTEMucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICfljZXmqKEgTEMtTEMg5Y+M5bel5rWL6K+V6Lez57q/J1xuICAgICAgfSxcbiAgICAgIHsgXG4gICAgICAgIGlkOiAnbW0tbGMtbGMnLCBcbiAgICAgICAgbmFtZTogJ+Wkmuaooei3s+e6pCcsIFxuICAgICAgICB0eXBlOiAnY2FibGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2ZpYmVyJyxcbiAgICAgICAgaW1hZ2U6ICcvTU0tTEMtTEMucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICflpJrmqKEgTEMtTEMg5Y+M5bel5rWL6K+V6Lez57q/J1xuICAgICAgfSxcbiAgICAgIC8vIOihpeWBv+WFiee6pFxuICAgICAgeyBcbiAgICAgICAgaWQ6ICdzbWMtbGMtbGMnLCBcbiAgICAgICAgbmFtZTogJ+WNleaooeihpeWBv+WFiee6pCcsIFxuICAgICAgICB0eXBlOiAnY2FibGUnLFxuICAgICAgICBwb3J0VHlwZTogJ2ZpYmVyJyxcbiAgICAgICAgaW1hZ2U6ICcvU01DLUxDLUxDLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5Y2V5qihIExDLUxDIOWPjOW3peihpeWBv+WFiee6pCdcbiAgICAgIH0sXG4gICAgICB7IFxuICAgICAgICBpZDogJ21tYy1sYy1sYycsIFxuICAgICAgICBuYW1lOiAn5aSa5qih6KGl5YG/5YWJ57qkJywgXG4gICAgICAgIHR5cGU6ICdjYWJsZScsXG4gICAgICAgIHBvcnRUeXBlOiAnZmliZXInLFxuICAgICAgICBpbWFnZTogJy9NTUMtTEMtTEMucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICflpJrmqKEgTEMtTEMg5Y+M5bel6KGl5YG/5YWJ57qkJ1xuICAgICAgfSxcbiAgICAgIC8vIE1QT+i3s+e6v1xuICAgICAgeyBcbiAgICAgICAgaWQ6ICdzbS1tcG8tbXBvJywgXG4gICAgICAgIG5hbWU6ICfljZXmqKFNUE/ot7Pnur8nLCBcbiAgICAgICAgdHlwZTogJ2NhYmxlLW1wbycsXG4gICAgICAgIHBvcnRUeXBlOiAnZmliZXItbXBvJyxcbiAgICAgICAgaW1hZ2U6ICcvU00tTVBPLU1QTy5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+WNleaooSBNUE8tTVBPIOi3s+e6vydcbiAgICAgIH0sXG4gICAgICB7IFxuICAgICAgICBpZDogJ21tLW1wby1tcG8nLCBcbiAgICAgICAgbmFtZTogJ+WkmuaooU1QT+i3s+e6vycsIFxuICAgICAgICB0eXBlOiAnY2FibGUtbXBvJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlci1tcG8nLFxuICAgICAgICBpbWFnZTogJy9NTS1NUE8tTVBPLnBuZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAn5aSa5qihIE1QTy1NUE8g6Lez57q/J1xuICAgICAgfSxcbiAgICAgIHsgXG4gICAgICAgIGlkOiAnbW0tbXBvLWxjLWJveCcsIFxuICAgICAgICBuYW1lOiAn5aSa5qihbXBvLWxj6L2s5o6l55uSJywgXG4gICAgICAgIHR5cGU6ICdtcG8nLFxuICAgICAgICBwb3J0VHlwZTogJ2ZpYmVyYm94JyxcbiAgICAgICAgaW1hZ2U6ICcvTU0tTVBPLUxDLUJPWC5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+WkmuaooSBNUE8tTEMg6L2s5o6l55uSJ1xuICAgICAgfVxuICAgIF0sXG4gICAgJ+i/nuaOpeWZqCc6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdsYy1jb25uZWN0b3InLFxuICAgICAgICBuYW1lOiAnTEPms5XlhbAnLFxuICAgICAgICB0eXBlOiAnY29ubmVjdG9yJyxcbiAgICAgICAgcG9ydFR5cGU6ICdmaWJlcicsXG4gICAgICAgIGltYWdlOiAnL0xDLWNvbm5lY3Rvci5wbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ+WFiee6pOi/nuaOpeWZqCdcbiAgICAgIH1cbiAgICBdLFxuICAgICflt6XlhbcnOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbGMtY2xlYW4nLFxuICAgICAgICBuYW1lOiAnMS4yNW1t5riF5rSB56yUJyxcbiAgICAgICAgaW1hZ2U6ICcvTEMtY2xlYW4ucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICflhYnnuqTmuIXmtIHnrJQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ21wby1jbGVhbicsXG4gICAgICAgIG5hbWU6ICdtcG/muIXmtIHnrJQnLFxuICAgICAgICBpbWFnZTogJy9NUE8tY2xlYW4ucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICflhYnnuqTmuIXmtIHnrJQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0lMVDIwMCcsXG4gICAgICAgIG5hbWU6ICfpn7PpopHmjqLmo5InLFxuICAgICAgICBpbWFnZTogJy9JTFQyMDAucG5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICfpn7PpopHmjqLmo5InXG4gICAgICB9XG4gICAgXSxcbiAgfSxcblxuXG4gIFxuICAvLyDmlYXpmpzlnLrmma9cbiAgZmF1bHRTY2VuYXJpb3M6IFwiT2ZmaWNlXCIsXG4gIC8vIGZhdWx0U2NlbmFyaW9zOiBcIldvcmxkU2tpbGxcIixcbiAgLy8gZmF1bHRTY2VuYXJpb3M6IFwiSW5kdXN0cnlcIixcbiAgLy8gZmF1bHRTY2VuYXJpb3M6IFwiRGF0YUNlbnRlclwiLFxuICBXb3JsZFNraWxsU2NlbmFyaW9zOiBcIk9GRklDRVwiLFxuICAvLyDotZvkvY3lj7dcbiAgc2VhdE51bWJlcjogXCJcIixcbiAgLy8g5q+U6LWbSURcbiAgc2VhdFVVSUQ6IG51bGwsXG4gIC8vIOavlOi1m+W8gOWni+aXtumXtFxuICBzZWF0U3RhcnRUaW1lOm51bGwsXG4gIC8vIOihqOWNleiusOW9lVxuICByZXBvcnRzOltdLFxuICAvLyDkuLvmnLrlt7Llronoo4XmqKHlnZdcbiAgbWFpblVuaXRNb2R1bGVzOiBbXSxcbiAgLy8g6L+c56uv5bey5a6J6KOF5qih5Z2XXG4gIHJlbW90ZVVuaXRNb2R1bGVzOiBbXSxcbiAgLy8g5Li75py66YCC6YWN5ZmoXG4gIG1haW5Vbml0QWRhcHRlcjogbnVsbCxcbiAgLy8g6L+c56uv6YCC6YWN5ZmoXG4gIHJlbW90ZVVuaXRBZGFwdGVyOiBudWxsLFxuICAvLyDkuLvmnLrmjqXlj6NcbiAgbWFpblVuaXRQb3J0czogW10sXG4gIC8vIOi/nOerr+aOpeWPo1xuICByZW1vdGVVbml0UG9ydHM6IFtdLFxuICAvLyDlvZPliY3pgInkuK3nmoTlt6XlhbdcbiAgc2VsZWN0ZWRUb29sOiBudWxsLFxuICAvLyDov57mjqXljLrnianlk4HliJfooahcbiAgY29ubmVjdGlvbkl0ZW1zOiBbXSxcbiAgLy8g6L+e5o6l6Lev5b6E5YiX6KGoXG4gIGNvbm5lY3Rpb25QYXRoczogW10sXG4gIC8vIOi/nuaOpeeKtuaAgeWIhuaekOe7k+aenFxuICBjb25uZWN0aW9uU3RhdHVzOiBbXSxcblxuICAvLyDpgInmi6nlt6XlhbdcbiAgc2VsZWN0VG9vbDogKHRvb2wpID0+IHtcbiAgICBzZXQoeyBzZWxlY3RlZFRvb2w6IHRvb2wgfSk7XG4gIH0sXG4gIC8vIOWPlua2iOmAieaLqeW3peWFt1xuICBjbGVhclNlbGVjdGVkVG9vbDogKCkgPT4ge1xuICAgIHNldCh7IHNlbGVjdGVkVG9vbDogbnVsbCB9KTtcbiAgfSxcbiAgXG4gIC8vIOWuieijheaooeWdl1xuICBpbnN0YWxsTW9kdWxlOiAobW9kdWxlLCB0YXJnZXQpID0+IHtcbiAgICBzZXQoKHN0YXRlKSA9PiB7XG4gICAgICBpZiAodGFyZ2V0ID09PSAnbWFpbicpIHtcbiAgICAgICAgbGV0IHBvcnRzID0gW107XG4gICAgICAgIGlmIChtb2R1bGUuaWQgPT09ICdjZnAnKSB7XG4gICAgICAgICAgcG9ydHMgPSBbXG4gICAgICAgICAgICB7IGlkOiAnY2ZwLXNtLW91dCcsIHR5cGU6ICdtb2RlbHBvcnQnLCBtb2R1bGU6ICdjZnAnIH0sXG4gICAgICAgICAgICB7IGlkOiAnY2ZwLWluJywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ2NmcCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjZnAtbW0tb3V0JywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ2NmcCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICd2ZmwnLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnY2ZwJyB9XG4gICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUuaWQgPT09ICdvZnAnKSB7XG4gICAgICAgICAgcG9ydHMgPSBbXG4gICAgICAgICAgICB7IGlkOiAnb2ZwLXNtLW91dCcsIHR5cGU6ICdtb2RlbHBvcnQnLCBtb2R1bGU6ICdvZnAnIH0sXG4gICAgICAgICAgICB7IGlkOiAnb2ZwLW1tLW91dCcsIHR5cGU6ICdtb2RlbHBvcnQnLCBtb2R1bGU6ICdvZnAnIH0sXG4gICAgICAgICAgICB7IGlkOiAndmZsJywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ29mcCcgfVxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWFpblVuaXRNb2R1bGVzOiBbLi4uc3RhdGUubWFpblVuaXRNb2R1bGVzLCBtb2R1bGVdLFxuICAgICAgICAgIG1haW5Vbml0UG9ydHM6IHBvcnRzXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcG9ydHMgPSBbXTtcbiAgICAgICAgaWYgKG1vZHVsZS5pZCA9PT0gJ2NmcCcpIHtcbiAgICAgICAgICBwb3J0cyA9IFtcbiAgICAgICAgICAgIHsgaWQ6ICdjZnAtc20tb3V0JywgdHlwZTogJ21vZGVscG9ydCcsIG1vZHVsZTogJ2NmcCcgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdjZnAtaW4nLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnY2ZwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ2NmcC1tbS1vdXQnLCB0eXBlOiAnbW9kZWxwb3J0JywgbW9kdWxlOiAnY2ZwJyB9LFxuICAgICAgICAgICAgeyBpZDogJ3ZmbCcsIHR5cGU6ICdtb2RlbHBvcnQnLCBtb2R1bGU6ICdjZnAnIH1cbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlbW90ZVVuaXRNb2R1bGVzOiBbLi4uc3RhdGUucmVtb3RlVW5pdE1vZHVsZXMsIG1vZHVsZV0sXG4gICAgICAgICAgcmVtb3RlVW5pdFBvcnRzOiBwb3J0c1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBcbiAgLy8g5Y246L295qih5Z2XXG4gIHVuaW5zdGFsbE1vZHVsZTogKG1vZHVsZUlkLCB0YXJnZXQpID0+IHtcbiAgICBzZXQoKHN0YXRlKSA9PiB7XG4gICAgICBpZiAodGFyZ2V0ID09PSAnbWFpbicpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtYWluVW5pdE1vZHVsZXM6IHN0YXRlLm1haW5Vbml0TW9kdWxlcy5maWx0ZXIobSA9PiBtLmlkICE9PSBtb2R1bGVJZCksXG4gICAgICAgICAgbWFpblVuaXRQb3J0czogW10sXG4gICAgICAgICAgbWFpblVuaXRBZGFwdGVyOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlbW90ZVVuaXRNb2R1bGVzOiBzdGF0ZS5yZW1vdGVVbml0TW9kdWxlcy5maWx0ZXIobSA9PiBtLmlkICE9PSBtb2R1bGVJZCksXG4gICAgICAgICAgcmVtb3RlVW5pdFBvcnRzOiBbXSxcbiAgICAgICAgICByZW1vdGVVbml0QWRhcHRlcjogbnVsbFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBcbiAgLy8g5a6J6KOF6YCC6YWN5ZmoXG4gIGluc3RhbGxBZGFwdGVyOiAoYWRhcHRlciwgdGFyZ2V0KSA9PiB7XG4gICAgc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgIFt0YXJnZXQgPT09ICdtYWluJyA/ICdtYWluVW5pdEFkYXB0ZXInIDogJ3JlbW90ZVVuaXRBZGFwdGVyJ106IHtcbiAgICAgICAgLi4uYWRhcHRlcixcbiAgICAgICAgcG9ydDoge1xuICAgICAgICAgIGlkOiBgJHthZGFwdGVyLmlkfWAsXG4gICAgICAgICAgdHlwZTogJ21vZGVscG9ydCcsXG4gICAgICAgICAgbW9kdWxlOiBhZGFwdGVyLmlkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSk7XG4gIH0sXG4gIFxuICAvLyDljbjovb3pgILphY3lmahcbiAgdW5pbnN0YWxsQWRhcHRlcjogKHRhcmdldCkgPT4ge1xuICAgIHNldCgoc3RhdGUpID0+ICh7XG4gICAgICBbdGFyZ2V0ID09PSAnbWFpbicgPyAnbWFpblVuaXRBZGFwdGVyJyA6ICdyZW1vdGVVbml0QWRhcHRlciddOiBudWxsXG4gICAgfSkpO1xuICB9LFxuICBcbiAgLy8g5pu05paw5pWF6Zqc5Zy65pmvXG4gIHVwZGF0ZUZhdWx0U2NlbmFyaW9zOiAoc3RhdHVzKSA9PiB7XG4gICAgc2V0KCgpID0+ICh7XG4gICAgICBmYXVsdFNjZW5hcmlvczogc3RhdHVzXG4gICAgfSkpO1xuICB9LFxuICAvLyDmm7TmlrDnq57otZvmlYXpmpzlnLrmma9cbiAgdXBkYXRlV29ybGRTa2lsbFNjZW5hcmlvczogKHN0YXR1cykgPT4ge1xuICAgIHNldCgoKSA9PiAoe1xuICAgICAgV29ybGRTa2lsbFNjZW5hcmlvczogc3RhdHVzXG4gICAgfSkpO1xuICB9LFxuICAvLyDmm7TmlrDotZvkvY3lj7dcbiAgdXBkYXRlU2VhdE51bWJlcjogKG51bWJlcikgPT4ge1xuICAgIHNldCgoKSA9PiAoe1xuICAgICAgc2VhdE51bWJlcjogbnVtYmVyXG4gICAgfSkpO1xuICB9LFxuXG4gIC8vIOabtOaWsOavlOi1m0lEXG4gIHVwZGF0ZVNlYXRVVUlEOiAodXVpZCkgPT4ge1xuICAgIHNldCgoKSA9PiAoe1xuICAgICAgc2VhdFVVSUQ6IHV1aWRcbiAgICB9KSk7XG4gIH0sXG5cbiAgLy8g5pu05paw5q+U6LWb5byA5aeL5pe26Ze0XG4gIHVwZGF0ZVNlYXRTdGFydFRpbWU6IChzdGFydFRpbWUpID0+IHtcbiAgICBzZXQoKCkgPT4gKHtcbiAgICAgIHNlYXRTdGFydFRpbWU6IHN0YXJ0VGltZVxuICAgIH0pKTtcbiAgfSxcbiAgLy8g5pu05paw5oql5ZGK5pWw5o2uXG4gIHVwZGF0ZVJlcG9ydHM6IChyZWNvcmRzKSA9PiB7XG4gICAgc2V0KCgpID0+ICh7XG4gICAgICByZXBvcnRzOiByZWNvcmRzXG4gICAgfSkpO1xuICB9LFxuICBcblxuLy8gLS0tLSoqKueJqeWTgeWMuuWfn+aWueazlSoqKi0tLS1cbiAgLy8g5re75Yqg54mp5ZOB5Yiw6L+e5o6l5Yy6XG4gIGFkZENvbm5lY3Rpb25JdGVtOiAoaXRlbSkgPT4gXG4gICAgc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgIGNvbm5lY3Rpb25JdGVtczogWy4uLnN0YXRlLmNvbm5lY3Rpb25JdGVtcywgaXRlbV1cbiAgICB9KSksXG5cbiAgLy8g5LuO6L+e5o6l5Yy656e76Zmk54mp5ZOBXG4gIHJlbW92ZUNvbm5lY3Rpb25JdGVtOiAoaW5kZXgpID0+XG4gICAgc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgIGNvbm5lY3Rpb25JdGVtczogc3RhdGUuY29ubmVjdGlvbkl0ZW1zLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpXG4gICAgfSkpLFxuXG5cbi8vIC0tLSoqKui/nuaOpei3r+W+hCoqKi0tLVxuICAvLyDmt7vliqDov57mjqXot6/lvoRcbiAgYWRkQ29ubmVjdGlvblBhdGg6IChwYXRoKSA9PiBcbiAgICBzZXQoKHN0YXRlKSA9PiB7XG4gICAgICBjb25zdCBuZXdQYXRocyA9IFsuLi5zdGF0ZS5jb25uZWN0aW9uUGF0aHMsIHBhdGhdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29ubmVjdGlvblBhdGhzOiBuZXdQYXRoc1xuICAgICAgfTtcbiAgICB9KSxcblxuICAvLyDnp7vpmaTov57mjqXot6/lvoRcbiAgcmVtb3ZlQ29ubmVjdGlvblBhdGg6IChzb3VyY2VJZCwgdGFyZ2V0SWQpID0+XG4gICAgc2V0KChzdGF0ZSkgPT4ge1xuICAgICAgY29uc3QgbmV3UGF0aHMgPSBzdGF0ZS5jb25uZWN0aW9uUGF0aHMuZmlsdGVyKHBhdGggPT4gXG4gICAgICAgICEocGF0aC5zb3VyY2UgPT09IHNvdXJjZUlkICYmIHBhdGgudGFyZ2V0ID09PSB0YXJnZXRJZClcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb25uZWN0aW9uUGF0aHM6IG5ld1BhdGhzXG4gICAgICB9O1xuICAgIH0pLFxuXG4gIC8vIOa4heepuui/nuaOpei3r+W+hFxuICBjbGVhckNvbm5lY3Rpb25QYXRoczogKCkgPT5cbiAgICBzZXQoKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29ubmVjdGlvblBhdGhzOiBbXVxuICAgICAgfTtcbiAgICB9KSxcblxuICAvLyDojrflj5blvZPliY3ov57mjqXot6/lvoRcbiAgZ2V0Q29ubmVjdGlvblBhdGhzOiAoKSA9PiBnZXQoKS5jb25uZWN0aW9uUGF0aHMsXG5cbiAvLyAtLS0qKirov57mjqXnirbmgIHliIbmnpDnu5PmnpwqKiotLS1cblxuXG4gIC8vIOabtOaWsOi/nuaOpeeKtuaAgVxuICB1cGRhdGVDb25uZWN0aW9uU3RhdHVzOiAoc3RhdHVzKSA9PlxuICAgIHNldCgoKSA9PiAoe1xuICAgICAgY29ubmVjdGlvblN0YXR1czogc3RhdHVzXG4gICAgfSkpLFxuXG4gIC8vIOaPkOekuuahhuaWueazlVxuICBzZXRTaG93VG90YWxUb2FzdDogKHNob3cpID0+IHNldCh7IHNob3dUb3RhbFRvYXN0OiBzaG93IH0pLFxuICBzZXRUb3RhbFRvYXN0TWVzc2FnZTogKG1lc3NhZ2UpID0+IHNldCh7IHRvdGFsVG9hc3RNZXNzYWdlOiBtZXNzYWdlIH0pLFxuXG4vLyDliJ3lp4vljJbmlbDmja5cblxuICAgIC8vIOmHjee9ruWIsOm7mOiupOeKtuaAgVxuICAgIHJlc2V0ZGV2aWNlU3RvcmU6ICgpID0+IHtcbiAgICAgIHNldCgoKSA9PiAoe1xuICAgICAgICAvLyDkuLvmnLrlt7Llronoo4XmqKHlnZdcbiAgICAgICAgbWFpblVuaXRNb2R1bGVzOiBbXSxcbiAgICAgICAgLy8g6L+c56uv5bey5a6J6KOF5qih5Z2XXG4gICAgICAgIHJlbW90ZVVuaXRNb2R1bGVzOiBbXSxcbiAgICAgICAgLy8g5Li75py66YCC6YWN5ZmoXG4gICAgICAgIG1haW5Vbml0QWRhcHRlcjogbnVsbCxcbiAgICAgICAgLy8g6L+c56uv6YCC6YWN5ZmoXG4gICAgICAgIHJlbW90ZVVuaXRBZGFwdGVyOiBudWxsLFxuICAgICAgICAvLyDkuLvmnLrmjqXlj6NcbiAgICAgICAgbWFpblVuaXRQb3J0czogW10sXG4gICAgICAgIC8vIOi/nOerr+aOpeWPo1xuICAgICAgICByZW1vdGVVbml0UG9ydHM6IFtdLFxuICAgICAgICAvLyDlvZPliY3pgInkuK3nmoTlt6XlhbdcbiAgICAgICAgc2VsZWN0ZWRUb29sOiBudWxsLFxuICAgICAgICAvLyDov57mjqXljLrnianlk4HliJfooahcbiAgICAgICAgY29ubmVjdGlvbkl0ZW1zOiBbXSxcbiAgICAgICAgLy8g6L+e5o6l6Lev5b6E5YiX6KGoXG4gICAgICAgIGNvbm5lY3Rpb25QYXRoczogW10sXG4gICAgICAgIC8vIOi/nuaOpeeKtuaAgeWIhuaekOe7k+aenFxuICAgICAgICBjb25uZWN0aW9uU3RhdHVzOiBbXSxcbiAgICAgICAgLy8g5oql5ZGK5pWw5o2uXG4gICAgICAgIHJlcG9ydHM6IFtdLFxuICAgICAgfSkpO1xuICB9LFxuXG5cblxufSlcblxuLy9kZXZ0b29sc1xuLy8gIClcbik7XG5cblxuXG5cblxuZXhwb3J0IGRlZmF1bHQgdXNlRGV2aWNlU3RvcmU7Il0sIm5hbWVzIjpbImNyZWF0ZSIsImRldnRvb2xzIiwidXNlRGV2aWNlU3RvcmUiLCJzZXQiLCJnZXQiLCJlc3Rtb2RlbCIsInVwZGF0ZUVzdG1vZGVsIiwibW9kZWwiLCJkZXZpY2VzIiwiaWQiLCJuYW1lIiwidHlwZSIsInBvcnRUeXBlIiwiaW1hZ2UiLCJkZXNjcmlwdGlvbiIsImpzdHlwZSIsImZhdWx0U2NlbmFyaW9zIiwiV29ybGRTa2lsbFNjZW5hcmlvcyIsInNlYXROdW1iZXIiLCJzZWF0VVVJRCIsInNlYXRTdGFydFRpbWUiLCJyZXBvcnRzIiwibWFpblVuaXRNb2R1bGVzIiwicmVtb3RlVW5pdE1vZHVsZXMiLCJtYWluVW5pdEFkYXB0ZXIiLCJyZW1vdGVVbml0QWRhcHRlciIsIm1haW5Vbml0UG9ydHMiLCJyZW1vdGVVbml0UG9ydHMiLCJzZWxlY3RlZFRvb2wiLCJjb25uZWN0aW9uSXRlbXMiLCJjb25uZWN0aW9uUGF0aHMiLCJjb25uZWN0aW9uU3RhdHVzIiwic2VsZWN0VG9vbCIsInRvb2wiLCJjbGVhclNlbGVjdGVkVG9vbCIsImluc3RhbGxNb2R1bGUiLCJtb2R1bGUiLCJ0YXJnZXQiLCJzdGF0ZSIsInBvcnRzIiwidW5pbnN0YWxsTW9kdWxlIiwibW9kdWxlSWQiLCJmaWx0ZXIiLCJtIiwiaW5zdGFsbEFkYXB0ZXIiLCJhZGFwdGVyIiwicG9ydCIsInVuaW5zdGFsbEFkYXB0ZXIiLCJ1cGRhdGVGYXVsdFNjZW5hcmlvcyIsInN0YXR1cyIsInVwZGF0ZVdvcmxkU2tpbGxTY2VuYXJpb3MiLCJ1cGRhdGVTZWF0TnVtYmVyIiwibnVtYmVyIiwidXBkYXRlU2VhdFVVSUQiLCJ1dWlkIiwidXBkYXRlU2VhdFN0YXJ0VGltZSIsInN0YXJ0VGltZSIsInVwZGF0ZVJlcG9ydHMiLCJyZWNvcmRzIiwiYWRkQ29ubmVjdGlvbkl0ZW0iLCJpdGVtIiwicmVtb3ZlQ29ubmVjdGlvbkl0ZW0iLCJpbmRleCIsIl8iLCJpIiwiYWRkQ29ubmVjdGlvblBhdGgiLCJwYXRoIiwibmV3UGF0aHMiLCJyZW1vdmVDb25uZWN0aW9uUGF0aCIsInNvdXJjZUlkIiwidGFyZ2V0SWQiLCJzb3VyY2UiLCJjbGVhckNvbm5lY3Rpb25QYXRocyIsImdldENvbm5lY3Rpb25QYXRocyIsInVwZGF0ZUNvbm5lY3Rpb25TdGF0dXMiLCJzZXRTaG93VG90YWxUb2FzdCIsInNob3ciLCJzaG93VG90YWxUb2FzdCIsInNldFRvdGFsVG9hc3RNZXNzYWdlIiwibWVzc2FnZSIsInRvdGFsVG9hc3RNZXNzYWdlIiwicmVzZXRkZXZpY2VTdG9yZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/store/deviceStore.js\n");
/***/ }),
/***/ "(pages-dir-node)/./src/styles/globals.css":
/*!********************************!*\
!*** ./src/styles/globals.css ***!
\********************************/
/***/ (() => {
/***/ }),
/***/ "(pages-dir-node)/./src/utils/asset.js":
/*!****************************!*\
!*** ./src/utils/asset.js ***!
\****************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAssetUrl: () => (/* binding */ getAssetUrl)\n/* harmony export */ });\n/* harmony import */ var _store_deviceStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/store/deviceStore */ \"(pages-dir-node)/./src/store/deviceStore.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_store_deviceStore__WEBPACK_IMPORTED_MODULE_0__]);\n_store_deviceStore__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\nfunction getAssetUrl(relativePath) {\n const { estmodel } = _store_deviceStore__WEBPACK_IMPORTED_MODULE_0__[\"default\"].getState();\n const cleanPath = relativePath?.startsWith('/') ? relativePath : `/${relativePath}`;\n if (!estmodel) return cleanPath;\n if (cleanPath.startsWith(`/${estmodel}/`)) return cleanPath;\n return `/${estmodel}${cleanPath}`;\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL3NyYy91dGlscy9hc3NldC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRDtBQUUxQyxTQUFTQyxZQUFZQyxZQUFZO0lBQ3BDLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdILG1FQUF1QjtJQUM1QyxNQUFNSyxZQUFZSCxjQUFjSSxXQUFXLE9BQU9KLGVBQWUsQ0FBQyxDQUFDLEVBQUVBLGNBQWM7SUFFbkYsSUFBSSxDQUFDQyxVQUFVLE9BQU9FO0lBQ3RCLElBQUlBLFVBQVVDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRUgsU0FBUyxDQUFDLENBQUMsR0FBRyxPQUFPRTtJQUVsRCxPQUFPLENBQUMsQ0FBQyxFQUFFRixXQUFXRSxXQUFXO0FBQ3JDIiwic291cmNlcyI6WyIvb3B0L2Rldi9lc3QtZHN4L3NyYy91dGlscy9hc3NldC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXNlRGV2aWNlU3RvcmUgZnJvbSAnQC9zdG9yZS9kZXZpY2VTdG9yZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNzZXRVcmwocmVsYXRpdmVQYXRoKSB7XHJcbiAgICBjb25zdCB7IGVzdG1vZGVsIH0gPSB1c2VEZXZpY2VTdG9yZS5nZXRTdGF0ZSgpO1xyXG4gICAgY29uc3QgY2xlYW5QYXRoID0gcmVsYXRpdmVQYXRoPy5zdGFydHNXaXRoKCcvJykgPyByZWxhdGl2ZVBhdGggOiBgLyR7cmVsYXRpdmVQYXRofWA7XHJcblxyXG4gICAgaWYgKCFlc3Rtb2RlbCkgcmV0dXJuIGNsZWFuUGF0aDtcclxuICAgIGlmIChjbGVhblBhdGguc3RhcnRzV2l0aChgLyR7ZXN0bW9kZWx9L2ApKSByZXR1cm4gY2xlYW5QYXRoO1xyXG5cclxuICAgIHJldHVybiBgLyR7ZXN0bW9kZWx9JHtjbGVhblBhdGh9YDtcclxufSJdLCJuYW1lcyI6WyJ1c2VEZXZpY2VTdG9yZSIsImdldEFzc2V0VXJsIiwicmVsYXRpdmVQYXRoIiwiZXN0bW9kZWwiLCJnZXRTdGF0ZSIsImNsZWFuUGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./src/utils/asset.js\n");
/***/ }),
/***/ "next/head":
/*!****************************!*\
!*** external "next/head" ***!
\****************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/head");
/***/ }),
/***/ "react":
/*!************************!*\
!*** external "react" ***!
\************************/
/***/ ((module) => {
"use strict";
module.exports = require("react");
/***/ }),
/***/ "react/jsx-dev-runtime":
/*!****************************************!*\
!*** external "react/jsx-dev-runtime" ***!
\****************************************/
/***/ ((module) => {
"use strict";
module.exports = require("react/jsx-dev-runtime");
/***/ }),
/***/ "zustand":
/*!**************************!*\
!*** external "zustand" ***!
\**************************/
/***/ ((module) => {
"use strict";
module.exports = import("zustand");;
/***/ }),
/***/ "zustand/middleware":
/*!*************************************!*\
!*** external "zustand/middleware" ***!
\*************************************/
/***/ ((module) => {
"use strict";
module.exports = import("zustand/middleware");;
/***/ })
};
;
// load runtime
var __webpack_require__ = require("../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = (__webpack_exec__("(pages-dir-node)/./src/pages/_app.js"));
module.exports = __webpack_exports__;
})();