You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NextWeb/.next/static/webpack/_app-pages-browser_app_comp...

22 lines
305 KiB
JavaScript

"use strict";
/*
* 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["webpackHotUpdate_N_E"]("_app-pages-browser_app_components_settings_tsx",{
/***/ "(app-pages-browser)/./app/components/settings.tsx":
/*!*************************************!*\
!*** ./app/components/settings.tsx ***!
\*************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Settings: function() { return /* binding */ Settings; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./settings.module.scss */ \"(app-pages-browser)/./app/components/settings.module.scss\");\n/* harmony import */ var _settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_settings_module_scss__WEBPACK_IMPORTED_MODULE_36__);\n/* harmony import */ var _icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../icons/reload.svg */ \"(app-pages-browser)/./app/icons/reload.svg\");\n/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/add.svg */ \"(app-pages-browser)/./app/icons/add.svg\");\n/* harmony import */ var _icons_close_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/close.svg */ \"(app-pages-browser)/./app/icons/close.svg\");\n/* harmony import */ var _icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/copy.svg */ \"(app-pages-browser)/./app/icons/copy.svg\");\n/* harmony import */ var _icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/clear.svg */ \"(app-pages-browser)/./app/icons/clear.svg\");\n/* harmony import */ var _icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/three-dots.svg */ \"(app-pages-browser)/./app/icons/three-dots.svg\");\n/* harmony import */ var _icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/edit.svg */ \"(app-pages-browser)/./app/icons/edit.svg\");\n/* harmony import */ var _icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/fire.svg */ \"(app-pages-browser)/./app/icons/fire.svg\");\n/* harmony import */ var _icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../icons/eye.svg */ \"(app-pages-browser)/./app/icons/eye.svg\");\n/* harmony import */ var _icons_download_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../icons/download.svg */ \"(app-pages-browser)/./app/icons/download.svg\");\n/* harmony import */ var _icons_upload_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../icons/upload.svg */ \"(app-pages-browser)/./app/icons/upload.svg\");\n/* harmony import */ var _icons_confirm_svg__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../icons/confirm.svg */ \"(app-pages-browser)/./app/icons/confirm.svg\");\n/* harmony import */ var _icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../icons/connection.svg */ \"(app-pages-browser)/./app/icons/connection.svg\");\n/* harmony import */ var _icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../icons/cloud-success.svg */ \"(app-pages-browser)/./app/icons/cloud-success.svg\");\n/* harmony import */ var _icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../icons/cloud-fail.svg */ \"(app-pages-browser)/./app/icons/cloud-fail.svg\");\n/* harmony import */ var _utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/auth-settings-events */ \"(app-pages-browser)/./app/utils/auth-settings-events.ts\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ui-lib */ \"(app-pages-browser)/./app/components/ui-lib.tsx\");\n/* harmony import */ var _model_config__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./model-config */ \"(app-pages-browser)/./app/components/model-config.tsx\");\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./button */ \"(app-pages-browser)/./app/components/button.tsx\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../store */ \"(app-pages-browser)/./app/store/index.ts\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../locales */ \"(app-pages-browser)/./app/locales/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils */ \"(app-pages-browser)/./app/utils.ts\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var _store_prompt__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../store/prompt */ \"(app-pages-browser)/./app/store/prompt.ts\");\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./error */ \"(app-pages-browser)/./app/components/error.tsx\");\n/* harmony import */ var _input_range__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./input-range */ \"(app-pages-browser)/./app/components/input-range.tsx\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var _emoji__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./emoji */ \"(app-pages-browser)/./app/components/emoji.tsx\");\n/* harmony import */ var _config_client__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../config/client */ \"(app-pages-browser)/./app/config/client.ts\");\n/* harmony import */ var _store_sync__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../store/sync */ \"(app-pages-browser)/./app/store/sync.ts\");\n/* harmony import */ var nanoid__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! nanoid */ \"(app-pages-browser)/./node_modules/nanoid/index.browser.js\");\n/* harmony import */ var _store_mask__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../store/mask */ \"(app-pages-browser)/./app/store/mask.ts\");\n/* harmony import */ var _utils_cloud__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../utils/cloud */ \"(app-pages-browser)/./app/utils/cloud/index.ts\");\n/* harmony import */ var _tts_config__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./tts-config */ \"(app-pages-browser)/./app/components/tts-config.tsx\");\n/* harmony import */ var _realtime_chat_realtime_config__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./realtime-chat/realtime-config */ \"(app-pages-browser)/./app/components/realtime-chat/realtime-config.tsx\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$(), _s4 = $RefreshSig$(), _s5 = $RefreshSig$(), _s6 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction EditPromptModal(props) {\n _s();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const prompt = promptStore.get(props.id);\n return prompt ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.EditModal.Title,\n onClose: props.onClose,\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: props.onClose,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Confirm,\n bordered: true\n }, \"\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 102,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"edit-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: prompt.title,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"edit-prompt-title\"]),\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.title = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Input, {\n value: prompt.content,\n readOnly: !prompt.isUser,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"edit-prompt-content\"]),\n rows: 10,\n onInput: (e)=>promptStore.updatePrompt(props.id, (prompt)=>prompt.content = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 98,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 97,\n columnNumber: 5\n }, this) : null;\n}\n_s(EditPromptModal, \"EzYblIzMAFxPJK+yzvwKHzO38X8=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c = EditPromptModal;\nfunction UserPromptModal(props) {\n _s1();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const userPrompts = promptStore.getUserPrompts();\n const builtinPrompts = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.builtinPrompts;\n const allPrompts = userPrompts.concat(builtinPrompts);\n const [searchInput, setSearchInput] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [searchPrompts, setSearchPrompts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const prompts = searchInput.length > 0 ? searchPrompts : allPrompts;\n const [editingPromptId, setEditingPromptId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (searchInput.length > 0) {\n const searchResult = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.search(searchInput);\n setSearchPrompts(searchResult);\n } else {\n setSearchPrompts([]);\n }\n }, [\n searchInput\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: ()=>{\n const promptId = promptStore.add({\n id: (0,nanoid__WEBPACK_IMPORTED_MODULE_37__.nanoid)(),\n createdAt: Date.now(),\n title: \"Empty Prompt\",\n content: \"Empty Prompt Content\"\n });\n setEditingPromptId(promptId);\n },\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 178,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Add\n }, \"add\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 167,\n columnNumber: 11\n }, void 0)\n ],\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-modal\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-search\"]),\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Modal.Search,\n value: searchInput,\n onInput: (e)=>setSearchInput(e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 185,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-list\"]),\n children: prompts.map((v, _)=>/*#__PURE__*/ {\n var _v_id;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-item\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-header\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-title\"]),\n children: v.title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 197,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-content\"]) + \" one-line\",\n children: v.content\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 198,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 196,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-buttons\"]),\n children: [\n v.isUser && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_clear_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 206,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>promptStore.remove(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 205,\n columnNumber: 21\n }, this),\n v.isUser ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 213,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 212,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_eye_svg__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 219,\n columnNumber: 29\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>setEditingPromptId(v.id)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 218,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_copy_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 225,\n columnNumber: 27\n }, void 0),\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"user-prompt-button\"]),\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_23__.copyToClipboard)(v.content)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 224,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 203,\n columnNumber: 17\n }, this)\n ]\n }, (_v_id = v.id) !== null && _v_id !== void 0 ? _v_id : v.title, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 195,\n columnNumber: 15\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 193,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 184,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 163,\n columnNumber: 7\n }, this),\n editingPromptId !== undefined && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(EditPromptModal, {\n id: editingPromptId,\n onClose: ()=>setEditingPromptId(undefined)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 237,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 162,\n columnNumber: 5\n }, this);\n}\n_s1(UserPromptModal, \"j8e7IC+Qorb6vYwwV+saiLvwdt4=\", false, function() {\n return [\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c1 = UserPromptModal;\nfunction DangerItems() {\n _s2();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useChatStore)();\n const appConfig = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_18__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Reset.Confirm)) {\n appConfig.reset();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 256,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 252,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Title,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Action,\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_18__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Danger.Clear.Confirm)) {\n chatStore.clearAllData();\n }\n },\n type: \"danger\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 267,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 251,\n columnNumber: 5\n }, this);\n}\n_s2(DangerItems, \"bujEX65sRm+zZElj4DteQrQ/PHM=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_21__.useChatStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig\n ];\n});\n_c2 = DangerItems;\nfunction CheckButton() {\n _s3();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n const couldCheck = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [checkState, setCheckState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"none\");\n async function check() {\n setCheckState(\"checking\");\n const valid = await syncStore.check();\n setCheckState(valid ? \"success\" : \"failed\");\n }\n if (!couldCheck) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Modal.Check,\n bordered: true,\n onClick: check,\n icon: checkState === \"none\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 312,\n columnNumber: 11\n }, void 0) : checkState === \"checking\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 314,\n columnNumber: 11\n }, void 0) : checkState === \"success\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_success_svg__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 316,\n columnNumber: 11\n }, void 0) : checkState === \"failed\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_cloud_fail_svg__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 318,\n columnNumber: 11\n }, void 0) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_connection_svg__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 320,\n columnNumber: 11\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 306,\n columnNumber: 5\n }, this);\n}\n_s3(CheckButton, \"/6RI3yEungwoEAZn8dbo3xLpAIg=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore\n ];\n});\n_c3 = CheckButton;\nfunction SyncConfigModal(props) {\n _s4();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"modal-mask\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Modal, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Modal.Title,\n onClose: ()=>{\n var _props_onClose;\n return (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);\n },\n actions: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CheckButton, {}, \"check\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 336,\n columnNumber: 11\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n onClick: props.onClose,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_confirm_svg__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 340,\n columnNumber: 19\n }, void 0),\n bordered: true,\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Confirm\n }, \"confirm\", false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 337,\n columnNumber: 11\n }, void 0)\n ],\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.SyncType.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.SyncType.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: syncStore.provider,\n onChange: (e)=>{\n syncStore.update((config)=>config.provider = e.target.value);\n },\n children: Object.entries(_utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 351,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 347,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Proxy.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.Proxy.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n checked: syncStore.useProxy,\n onChange: (e)=>{\n syncStore.update((config)=>config.useProxy = e.currentTarget.checked);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 372,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 368,\n columnNumber: 11\n }, this),\n syncStore.useProxy ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.ProxyUrl.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.ProxyUrl.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.proxyUrl,\n onChange: (e)=>{\n syncStore.update((config)=>config.proxyUrl = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 387,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 383,\n columnNumber: 13\n }, this) : null\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 346,\n columnNumber: 9\n }, this),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType.WebDAV && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 404,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 403,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.webdav.username,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 417,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 416,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.WebDav.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: syncStore.webdav.password,\n onChange: (e)=>{\n syncStore.update((config)=>config.webdav.password = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 429,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 428,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 402,\n columnNumber: 13\n }, this)\n }, void 0, false),\n syncStore.provider === _utils_cloud__WEBPACK_IMPORTED_MODULE_33__.ProviderType.UpStash && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.Endpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.endpoint,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.endpoint = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 446,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 445,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.UserName,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: syncStore.upstash.username,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.STORAGE_KEY,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.username = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 459,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 458,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Config.UpStash.Password,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: syncStore.upstash.apiKey,\n onChange: (e)=>{\n syncStore.update((config)=>config.upstash.apiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 472,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 471,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 444,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 332,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 331,\n columnNumber: 5\n }, this);\n}\n_s4(SyncConfigModal, \"7LGHNOh5zyQVSbzbR8YwVjAXtoY=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore\n ];\n});\n_c4 = SyncConfigModal;\nfunction SyncItems() {\n _s5();\n const syncStore = (0,_store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore)();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useChatStore)();\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const maskStore = (0,_store_mask__WEBPACK_IMPORTED_MODULE_32__.useMaskStore)();\n const couldSync = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return syncStore.cloudSync();\n }, [\n syncStore\n ]);\n const [showSyncConfigModal, setShowSyncConfigModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const stateOverview = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const sessions = chatStore.sessions;\n const messageCount = sessions.reduce((p, c)=>p + c.messages.length, 0);\n return {\n chat: sessions.length,\n message: messageCount,\n prompt: Object.keys(promptStore.prompts).length,\n mask: Object.keys(maskStore.masks).length\n };\n }, [\n chatStore.sessions,\n maskStore.masks,\n promptStore.prompts\n ]);\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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.Overview(stateOverview),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Export,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_upload_svg__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 521,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Export,\n onClick: ()=>{\n syncStore.export();\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 519,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Sync.LocalState + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Import,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_download_svg__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 529,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Import,\n onClick: ()=>{\n syncStore.import();\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 527,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 518,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 514,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 513,\n columnNumber: 7\n }, this),\n showSyncConfigModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncConfigModal, {\n onClose: ()=>setShowSyncConfigModal(false)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 540,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true);\n}\n_s5(SyncItems, \"nX5YTDzhgMuya10UCPA20+lQ5Uw=\", false, function() {\n return [\n _store_sync__WEBPACK_IMPORTED_MODULE_31__.useSyncStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useChatStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore,\n _store_mask__WEBPACK_IMPORTED_MODULE_32__.useMaskStore\n ];\n});\n_c5 = SyncItems;\nfunction Settings() {\n var _getClientConfig;\n _s6();\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_38__.useNavigate)();\n const [showEmojiPicker, setShowEmojiPicker] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig)();\n const updateConfig = config.update;\n const updateStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useUpdateStore)();\n const [checkingUpdate, setCheckingUpdate] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const currentVersion = updateStore.formatVersion(updateStore.version);\n const remoteId = updateStore.formatVersion(updateStore.remoteVersion);\n const hasNewVersion = (0,_utils__WEBPACK_IMPORTED_MODULE_23__.semverCompare)(currentVersion, remoteId) === -1;\n const updateUrl = ((_getClientConfig = (0,_config_client__WEBPACK_IMPORTED_MODULE_30__.getClientConfig)()) === null || _getClientConfig === void 0 ? void 0 : _getClientConfig.isApp) ? _constant__WEBPACK_IMPORTED_MODULE_25__.RELEASE_URL : _constant__WEBPACK_IMPORTED_MODULE_25__.UPDATE_URL;\n function checkUpdate() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n setCheckingUpdate(true);\n updateStore.getLatestVersion(force).then(()=>{\n setCheckingUpdate(false);\n });\n console.log(\"[Update] local version \", updateStore.version);\n console.log(\"[Update] remote version \", updateStore.remoteVersion);\n }\n const accessStore = (0,_store__WEBPACK_IMPORTED_MODULE_21__.useAccessStore)();\n const shouldHideBalanceQuery = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const isOpenAiUrl = accessStore.openaiUrl.includes(_constant__WEBPACK_IMPORTED_MODULE_25__.OPENAI_BASE_URL);\n return accessStore.hideBalanceQuery || isOpenAiUrl || accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Azure;\n }, [\n accessStore.hideBalanceQuery,\n accessStore.openaiUrl,\n accessStore.provider\n ]);\n const usage = {\n used: updateStore.used,\n subscription: updateStore.subscription\n };\n const [loadingUsage, setLoadingUsage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n function checkUsage() {\n let force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;\n if (shouldHideBalanceQuery) {\n return;\n }\n setLoadingUsage(true);\n updateStore.updateUsage(force).finally(()=>{\n setLoadingUsage(false);\n });\n }\n const enabledAccessControl = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>accessStore.enabledAccessControl(), // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n const promptStore = (0,_store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore)();\n const builtinCount = _store_prompt__WEBPACK_IMPORTED_MODULE_26__.SearchService.count.builtin;\n var _promptStore_getUserPrompts_length;\n const customCount = (_promptStore_getUserPrompts_length = promptStore.getUserPrompts().length) !== null && _promptStore_getUserPrompts_length !== void 0 ? _promptStore_getUserPrompts_length : 0;\n const [shouldShowPromptModal, setShowPromptModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const showUsage = accessStore.isAuthorized();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // checks per minutes\n checkUpdate();\n showUsage && checkUsage();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const keydownEvent = (e)=>{\n if (e.key === \"Escape\") {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_25__.Path.Home);\n }\n };\n if (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) {\n // Force to set custom endpoint to true if it's app\n accessStore.update((state)=>{\n state.useCustomConfig = true;\n });\n }\n document.addEventListener(\"keydown\", keydownEvent);\n return ()=>{\n document.removeEventListener(\"keydown\", keydownEvent);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const clientConfig = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_config_client__WEBPACK_IMPORTED_MODULE_30__.getClientConfig)(), []);\n const showAccessCode = enabledAccessControl && !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp);\n const accessCodeComponent = showAccessCode && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n value: accessStore.accessCode,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.AccessCode.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.accessCode = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 646,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 642,\n columnNumber: 5\n }, this);\n const saasStartComponent = /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default()[\"subtitle-button\"]),\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Title + \"\".concat(_locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Label),\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.Title + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.ChatNow,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_fire_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 673,\n columnNumber: 15\n }, void 0),\n type: \"primary\",\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SaasStart.ChatNow,\n onClick: ()=>{\n (0,_utils_auth_settings_events__WEBPACK_IMPORTED_MODULE_17__.trackSettingsPageGuideToCPaymentClick)();\n window.location.href = _constant__WEBPACK_IMPORTED_MODULE_25__.SAAS_CHAT_URL;\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 668,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 660,\n columnNumber: 5\n }, this);\n const useCustomConfigComponent = !(clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.CustomEndpoint.Title,\n type: \"checkbox\",\n checked: accessStore.useCustomConfig,\n onChange: (e)=>accessStore.update((access)=>access.useCustomConfig = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 690,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 686,\n columnNumber: 7\n }, this);\n const openAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.OpenAI && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.openaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.OPENAI_BASE_URL,\n onChange: (e)=>accessStore.update((access)=>access.openaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 710,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 706,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.ShowPassword,\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Title,\n value: accessStore.openaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.OpenAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.openaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 726,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 722,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const azureConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Azure && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Azure.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.Endpoint.Title,\n type: \"text\",\n value: accessStore.azureUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Azure.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.azureUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 751,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 745,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Title,\n value: accessStore.azureApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.azureApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 767,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 763,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Azure.ApiVerion.Title,\n type: \"text\",\n value: accessStore.azureApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.azureApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 783,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 779,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const googleConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Google && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Google.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.Endpoint.Title,\n type: \"text\",\n value: accessStore.googleUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Google.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.googleUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 808,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 801,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Title,\n value: accessStore.googleApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 824,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 820,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.ApiVersion.Title,\n type: \"text\",\n value: accessStore.googleApiVersion,\n placeholder: \"2023-08-01-preview\",\n onChange: (e)=>accessStore.update((access)=>access.googleApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 840,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 836,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Google.GoogleSafetySettings.Title,\n value: accessStore.googleSafetySettings,\n onChange: (e)=>{\n accessStore.update((access)=>access.googleSafetySettings = e.target.value);\n },\n children: Object.entries(_constant__WEBPACK_IMPORTED_MODULE_25__.GoogleSafetySettingsThreshold).map((param)=>{\n let [k, v] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: k\n }, k, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 868,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 856,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 852,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const anthropicConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Anthropic && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.Endpoint.Title,\n type: \"text\",\n value: accessStore.anthropicUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.anthropicUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 887,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 880,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Title,\n value: accessStore.anthropicApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.anthropicApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 903,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 899,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Anthropic.ApiVerion.Title,\n type: \"text\",\n value: accessStore.anthropicApiVersion,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Anthropic.Vision,\n onChange: (e)=>accessStore.update((access)=>access.anthropicApiVersion = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 919,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 915,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const baiduConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Baidu && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.Endpoint.Title,\n type: \"text\",\n value: accessStore.baiduUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Baidu.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.baiduUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 941,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 937,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Title,\n value: accessStore.baiduApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 957,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 953,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Title,\n value: accessStore.baiduSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Baidu.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.baiduSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 973,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 969,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const tencentConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Tencent && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.Endpoint.Title,\n type: \"text\",\n value: accessStore.tencentUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Tencent.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.tencentUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 995,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 991,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Title,\n value: accessStore.tencentSecretId,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretId = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1011,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1007,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Title,\n value: accessStore.tencentSecretKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Tencent.SecretKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.tencentSecretKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1027,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1023,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const byteDanceConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.ByteDance && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.ByteDance.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.Endpoint.Title,\n type: \"text\",\n value: accessStore.bytedanceUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.ByteDance.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.bytedanceUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1052,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1045,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Title,\n value: accessStore.bytedanceApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ByteDance.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.bytedanceApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1068,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1064,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const alibabaConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Alibaba && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Alibaba.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.Endpoint.Title,\n type: \"text\",\n value: accessStore.alibabaUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Alibaba.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.alibabaUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1093,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1086,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Title,\n value: accessStore.alibabaApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Alibaba.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.alibabaApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1109,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1105,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const moonshotConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Moonshot && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Moonshot.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.Endpoint.Title,\n type: \"text\",\n value: accessStore.moonshotUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Moonshot.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.moonshotUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1134,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1127,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Title,\n value: accessStore.moonshotApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Moonshot.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.moonshotApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1150,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1146,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const deepseekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.DeepSeek && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.DeepSeek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.Endpoint.Title,\n type: \"text\",\n value: accessStore.deepseekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.DeepSeek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.deepseekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1175,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1168,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Title,\n value: accessStore.deepseekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.DeepSeek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.deepseekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1191,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1187,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const XAIConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.XAI && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.XAI.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.Endpoint.Title,\n type: \"text\",\n value: accessStore.xaiUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.XAI.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.xaiUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1214,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1208,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Title,\n value: accessStore.xaiApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.XAI.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.xaiApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1230,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1226,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const chatglmConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.ChatGLM && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.ChatGLM.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.Endpoint.Title,\n type: \"text\",\n value: accessStore.chatglmUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.ChatGLM.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.chatglmUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1255,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1248,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Title,\n value: accessStore.chatglmApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.ChatGLM.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.chatglmApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1271,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1267,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const siliconflowConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.SiliconFlow && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.SiliconFlow.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.Endpoint.Title,\n type: \"text\",\n value: accessStore.siliconflowUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.SiliconFlow.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.siliconflowUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1295,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1288,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Title,\n value: accessStore.siliconflowApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.SiliconFlow.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.siliconflowApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1311,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1307,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const stabilityConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Stability && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Stability.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.Endpoint.Title,\n type: \"text\",\n value: accessStore.stabilityUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Stability.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.stabilityUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1336,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1329,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Title,\n value: accessStore.stabilityApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Stability.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.stabilityApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1352,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1348,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n const lflytekConfigComponent = accessStore.provider === _constant__WEBPACK_IMPORTED_MODULE_25__.ServiceProvider.Iflytek && /*#__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)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.SubTitle + _constant__WEBPACK_IMPORTED_MODULE_25__.Iflytek.ExampleEndpoint,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.Endpoint.Title,\n type: \"text\",\n value: accessStore.iflytekUrl,\n placeholder: _constant__WEBPACK_IMPORTED_MODULE_25__.Iflytek.ExampleEndpoint,\n onChange: (e)=>accessStore.update((access)=>access.iflytekUrl = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1376,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1369,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Title,\n value: accessStore.iflytekApiKey,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiKey.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiKey = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1392,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1388,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.PasswordInput, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Title,\n value: accessStore.iflytekApiSecret,\n type: \"text\",\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Access.Iflytek.ApiSecret.Placeholder,\n onChange: (e)=>{\n accessStore.update((access)=>access.iflytekApiSecret = e.currentTarget.value);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1409,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1405,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n var _config_fontSize;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_error__WEBPACK_IMPORTED_MODULE_27__.ErrorBoundary, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header\",\n \"data-tauri-drag-region\": true,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-title\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-main-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Title\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1428,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-header-sub-title\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SubTitle\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1431,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1427,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-actions\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1436,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\"\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1437,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"window-action-button\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].UI.Close,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_close_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1441,\n columnNumber: 21\n }, void 0),\n onClick: ()=>navigate(_constant__WEBPACK_IMPORTED_MODULE_25__.Path.Home),\n bordered: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1439,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1438,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1435,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1426,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default().settings),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Avatar,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Popover, {\n onClose: ()=>setShowEmojiPicker(false),\n content: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_29__.AvatarPicker, {\n onEmojiClick: (avatar)=>{\n updateConfig((config)=>config.avatar = avatar);\n setShowEmojiPicker(false);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1454,\n columnNumber: 17\n }, void 0),\n open: showEmojiPicker,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Avatar,\n tabIndex: 0,\n className: (_settings_module_scss__WEBPACK_IMPORTED_MODULE_36___default().avatar),\n onClick: ()=>{\n setShowEmojiPicker(!showEmojiPicker);\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_emoji__WEBPACK_IMPORTED_MODULE_29__.Avatar, {\n avatar: config.avatar\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1471,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1463,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1451,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1450,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.Version(currentVersion !== null && currentVersion !== void 0 ? currentVersion : \"unknown\"),\n subTitle: checkingUpdate ? _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.IsChecking : hasNewVersion ? _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.FoundUpdate(remoteId !== null && remoteId !== void 0 ? remoteId : \"ERROR\") : _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.IsLatest,\n children: checkingUpdate ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_three_dots_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1487,\n columnNumber: 15\n }, this) : hasNewVersion ? (clientConfig === null || clientConfig === void 0 ? void 0 : clientConfig.isApp) ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1491,\n columnNumber: 25\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.GoToUpdate,\n onClick: ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_23__.clientUpdate)()\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1490,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_24__[\"default\"], {\n href: updateUrl,\n target: \"_blank\",\n className: \"link\",\n children: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.GoToUpdate\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1496,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_reload_svg__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1502,\n columnNumber: 23\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Update.CheckUpdate,\n onClick: ()=>checkUpdate(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1501,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1476,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendKey,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendKey,\n value: config.submitKey,\n onChange: (e)=>{\n updateConfig((config)=>config.submitKey = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_21__.SubmitKey).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1521,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1510,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1509,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Theme,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Theme,\n value: config.theme,\n onChange: (e)=>{\n updateConfig((config)=>config.theme = e.target.value);\n },\n children: Object.values(_store__WEBPACK_IMPORTED_MODULE_21__.Theme).map((v)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: v,\n children: v\n }, v, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1539,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1529,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1528,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Lang.Name,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.Select, {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Lang.Name,\n value: (0,_locales__WEBPACK_IMPORTED_MODULE_22__.getLang)(),\n onChange: (e)=>{\n (0,_locales__WEBPACK_IMPORTED_MODULE_22__.changeLang)(e.target.value);\n },\n children: _locales__WEBPACK_IMPORTED_MODULE_22__.AllLangs.map((lang)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: lang,\n children: _locales__WEBPACK_IMPORTED_MODULE_22__.ALL_LANG_OPTIONS[lang]\n }, lang, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1555,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1547,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1546,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_input_range__WEBPACK_IMPORTED_MODULE_28__.InputRange, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontSize.Title,\n title: \"\".concat((_config_fontSize = config.fontSize) !== null && _config_fontSize !== void 0 ? _config_fontSize : 14, \"px\"),\n value: config.fontSize,\n min: \"12\",\n max: \"40\",\n step: \"1\",\n onChange: (e)=>updateConfig((config)=>config.fontSize = Number.parseInt(e.currentTarget.value))\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1566,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1562,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Title,\n type: \"text\",\n value: config.fontFamily,\n placeholder: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.FontFamily.Placeholder,\n onChange: (e)=>updateConfig((config)=>config.fontFamily = e.currentTarget.value)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1586,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1582,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.AutoGenerateTitle.Title,\n type: \"checkbox\",\n checked: config.enableAutoGenerateTitle,\n onChange: (e)=>updateConfig((config)=>config.enableAutoGenerateTitle = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1603,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1599,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.SendPreviewBubble.Title,\n type: \"checkbox\",\n checked: config.sendPreviewBubble,\n onChange: (e)=>updateConfig((config)=>config.sendPreviewBubble = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1620,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1616,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.Artifacts.Title,\n type: \"checkbox\",\n checked: config.enableArtifacts,\n onChange: (e)=>updateConfig((config)=>config.enableArtifacts = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1637,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1633,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Mask.Config.CodeFold.Title,\n type: \"checkbox\",\n checked: config.enableCodeFold,\n \"data-testid\": \"enable-code-fold-checkbox\",\n onChange: (e)=>updateConfig((config)=>config.enableCodeFold = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1653,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1649,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1449,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SyncItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1667,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Disable.Title,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Disable.SubTitle,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n \"aria-label\": _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Disable.Title,\n type: \"checkbox\",\n checked: config.disablePromptHint,\n onChange: (e)=>updateConfig((config)=>config.disablePromptHint = e.currentTarget.checked)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1674,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1670,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.ListItem, {\n title: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.List,\n subTitle: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.ListCount(builtinCount, customCount),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_20__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.List + _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Edit,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_edit_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1696,\n columnNumber: 21\n }, void 0),\n text: _locales__WEBPACK_IMPORTED_MODULE_22__[\"default\"].Settings.Prompt.Edit,\n onClick: ()=>setShowPromptModal(true)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1694,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1687,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1669,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_model_config__WEBPACK_IMPORTED_MODULE_19__.ModelConfigList, {\n modelConfig: config.modelConfig,\n updateConfig: (updater)=>{\n const modelConfig = {\n ...config.modelConfig\n };\n updater(modelConfig);\n config.update((config)=>config.modelConfig = modelConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1704,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1703,\n columnNumber: 9\n }, this),\n shouldShowPromptModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(UserPromptModal, {\n onClose: ()=>setShowPromptModal(false)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1715,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_realtime_chat_realtime_config__WEBPACK_IMPORTED_MODULE_35__.RealtimeConfigList, {\n realtimeConfig: config.realtimeConfig,\n updateConfig: (updater)=>{\n const realtimeConfig = {\n ...config.realtimeConfig\n };\n updater(realtimeConfig);\n config.update((config)=>config.realtimeConfig = realtimeConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1718,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1717,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_18__.List, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_tts_config__WEBPACK_IMPORTED_MODULE_34__.TTSConfigList, {\n ttsConfig: config.ttsConfig,\n updateConfig: (updater)=>{\n const ttsConfig = {\n ...config.ttsConfig\n };\n updater(ttsConfig);\n config.update((config)=>config.ttsConfig = ttsConfig);\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1730,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1729,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(DangerItems, {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1740,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1448,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\settings.tsx\",\n lineNumber: 1425,\n columnNumber: 5\n }, this);\n}\n_s6(Settings, \"gamYpAPQsfvuG0awLCYLheWjSrg=\", false, function() {\n return [\n react_router_dom__WEBPACK_IMPORTED_MODULE_38__.useNavigate,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAppConfig,\n _store__WEBPACK_IMPORTED_MODULE_21__.useUpdateStore,\n _store__WEBPACK_IMPORTED_MODULE_21__.useAccessStore,\n _store_prompt__WEBPACK_IMPORTED_MODULE_26__.usePromptStore\n ];\n});\n_c6 = Settings;\nvar _c, _c1, _c2, _c3, _c4, _c5, _c6;\n$RefreshReg$(_c, \"EditPromptModal\");\n$RefreshReg$(_c1, \"UserPromptModal\");\n$RefreshReg$(_c2, \"DangerItems\");\n$RefreshReg$(_c3, \"CheckButton\");\n$RefreshReg$(_c4, \"SyncConfigModal\");\n$RefreshReg$(_c5, \"SyncItems\");\n$RefreshReg$(_c6, \"Settings\");\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 prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== 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 signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(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 (prevSignature !== 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(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(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 = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb21wb25lbnRzL3NldHRpbmdzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFxRDtBQUVUO0FBRUE7QUFDTDtBQUNJO0FBQ0Y7QUFDRTtBQUNPO0FBQ1Q7QUFDQTtBQUNGO0FBQ1U7QUFDSjtBQUVFO0FBRU07QUFDSztBQUNOO0FBQ2tDO0FBV3BFO0FBQytCO0FBRVg7QUFRcEI7QUFPRTtBQUNvRDtBQUMzQztBQXlCUjtBQUNtRDtBQUNoQztBQUNHO0FBQ0k7QUFDQTtBQUNJO0FBQ047QUFDYjtBQUNhO0FBQ0M7QUFDRDtBQUN3QjtBQUVyRSxTQUFTaUYsZ0JBQWdCQyxLQUEwQzs7SUFDakUsTUFBTUMsY0FBY2YsOERBQWNBO0lBQ2xDLE1BQU1nQixTQUFTRCxZQUFZRSxHQUFHLENBQUNILE1BQU1JLEVBQUU7SUFFdkMsT0FBT0YsdUJBQ0wsOERBQUNHO1FBQUlDLFdBQVU7a0JBQ2IsNEVBQUNqRSwyQ0FBS0E7WUFDSmtFLE9BQU9yRCxpREFBTUEsQ0FBQ3NELFFBQVEsQ0FBQ0MsTUFBTSxDQUFDQyxTQUFTLENBQUNDLEtBQUs7WUFDN0NDLFNBQVNaLE1BQU1ZLE9BQU87WUFDdEJDLFNBQVM7OEJBQ1AsOERBQUNsRSxnREFBVUE7b0JBRVRtRSxTQUFTZCxNQUFNWSxPQUFPO29CQUN0QkcsTUFBTTdELGlEQUFNQSxDQUFDOEQsRUFBRSxDQUFDQyxPQUFPO29CQUN2QkMsUUFBUTttQkFISjs7Ozs7YUFLUDtzQkFFRCw0RUFBQ2I7Z0JBQUlDLFdBQVdyRixvRkFBMkI7O2tDQUN6Qyw4REFBQ2tHO3dCQUNDQyxNQUFLO3dCQUNMQyxPQUFPbkIsT0FBT0ssS0FBSzt3QkFDbkJlLFVBQVUsQ0FBQ3BCLE9BQU9xQixNQUFNO3dCQUN4QmpCLFdBQVdyRixvRkFBMkI7d0JBQ3RDdUcsU0FBUyxDQUFDQyxJQUNSeEIsWUFBWXlCLFlBQVksQ0FDdEIxQixN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QkFDckM3SyxjQUFjLENBQUM0SztnQ0FDYixNQUFNQyxpQkFBaUI7b0NBQUUsR0FBR2hPLE9BQU9nTyxjQUFjO2dDQUFDO2dDQUNsREQsUUFBUUM7Z0NBQ1JoTyxPQUFPRCxNQUFNLENBQ1gsQ0FBQ0MsU0FBWUEsT0FBT2dPLGNBQWMsR0FBR0E7NEJBRXpDOzs7Ozs7Ozs7OztrQ0FHSiw4REFBQ3RYLDBDQUFJQTtrQ0FDSCw0RUFBQzBELHVEQUFhQTs0QkFDWjZULFdBQVdqTyxPQUFPaU8sU0FBUzs0QkFDM0I5SyxjQUFjLENBQUM0SztnQ0FDYixNQUFNRSxZQUFZO29DQUFFLEdBQUdqTyxPQUFPaU8sU0FBUztnQ0FBQztnQ0FDeENGLFFBQVFFO2dDQUNSak8sT0FBT0QsTUFBTSxDQUFDLENBQUNDLFNBQVlBLE9BQU9pTyxTQUFTLEdBQUdBOzRCQUNoRDs7Ozs7Ozs7Ozs7a0NBSUosOERBQUM5UDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJVDtJQTlxQ2dCcEQ7O1FBQ0duQiwwREFBV0E7UUFFYnBDLGlEQUFZQTtRQUdQRixtREFBY0E7UUFpQmRDLG1EQUFjQTtRQXFDZGtDLDBEQUFjQTs7O01BNURwQnNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9jb21wb25lbnRzL3NldHRpbmdzLnRzeD8wOTBmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vc2V0dGluZ3MubW9kdWxlLnNjc3NcIjtcclxuXHJcbmltcG9ydCBSZXNldEljb24gZnJvbSBcIi4uL2ljb25zL3JlbG9hZC5zdmdcIjtcclxuaW1wb3J0IEFkZEljb24gZnJvbSBcIi4uL2ljb25zL2FkZC5zdmdcIjtcclxuaW1wb3J0IENsb3NlSWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xvc2Uuc3ZnXCI7XHJcbmltcG9ydCBDb3B5SWNvbiBmcm9tIFwiLi4vaWNvbnMvY29weS5zdmdcIjtcclxuaW1wb3J0IENsZWFySWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xlYXIuc3ZnXCI7XHJcbmltcG9ydCBMb2FkaW5nSWNvbiBmcm9tIFwiLi4vaWNvbnMvdGhyZWUtZG90cy5zdmdcIjtcclxuaW1wb3J0IEVkaXRJY29uIGZyb20gXCIuLi9pY29ucy9lZGl0LnN2Z1wiO1xyXG5pbXBvcnQgRmlyZUljb24gZnJvbSBcIi4uL2ljb25zL2ZpcmUuc3ZnXCI7XHJcbmltcG9ydCBFeWVJY29uIGZyb20gXCIuLi9pY29ucy9leWUuc3ZnXCI7XHJcbmltcG9ydCBEb3dubG9hZEljb24gZnJvbSBcIi4uL2ljb25zL2Rvd25sb2FkLnN2Z1wiO1xyXG5pbXBvcnQgVXBsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvdXBsb2FkLnN2Z1wiO1xyXG5pbXBvcnQgQ29uZmlnSWNvbiBmcm9tIFwiLi4vaWNvbnMvY29uZmlnLnN2Z1wiO1xyXG5pbXBvcnQgQ29uZmlybUljb24gZnJvbSBcIi4uL2ljb25zL2NvbmZpcm0uc3ZnXCI7XHJcblxyXG5pbXBvcnQgQ29ubmVjdGlvbkljb24gZnJvbSBcIi4uL2ljb25zL2Nvbm5lY3Rpb24uc3ZnXCI7XHJcbmltcG9ydCBDbG91ZFN1Y2Nlc3NJY29uIGZyb20gXCIuLi9pY29ucy9jbG91ZC1zdWNjZXNzLnN2Z1wiO1xyXG5pbXBvcnQgQ2xvdWRGYWlsSWNvbiBmcm9tIFwiLi4vaWNvbnMvY2xvdWQtZmFpbC5zdmdcIjtcclxuaW1wb3J0IHsgdHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljayB9IGZyb20gXCIuLi91dGlscy9hdXRoLXNldHRpbmdzLWV2ZW50c1wiO1xyXG5pbXBvcnQge1xyXG4gIElucHV0LFxyXG4gIExpc3QsXHJcbiAgTGlzdEl0ZW0sXHJcbiAgTW9kYWwsXHJcbiAgUGFzc3dvcmRJbnB1dCxcclxuICBQb3BvdmVyLFxyXG4gIFNlbGVjdCxcclxuICBzaG93Q29uZmlybSxcclxuICBzaG93VG9hc3QsXHJcbn0gZnJvbSBcIi4vdWktbGliXCI7XHJcbmltcG9ydCB7IE1vZGVsQ29uZmlnTGlzdCB9IGZyb20gXCIuL21vZGVsLWNvbmZpZ1wiO1xyXG5cclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL2J1dHRvblwiO1xyXG5pbXBvcnQge1xyXG4gIFN1Ym1pdEtleSxcclxuICB1c2VDaGF0U3RvcmUsXHJcbiAgVGhlbWUsXHJcbiAgdXNlVXBkYXRlU3RvcmUsXHJcbiAgdXNlQWNjZXNzU3RvcmUsXHJcbiAgdXNlQXBwQ29uZmlnLFxyXG59IGZyb20gXCIuLi9zdG9yZVwiO1xyXG5cclxuaW1wb3J0IExvY2FsZSwge1xyXG4gIEFsbExhbmdzLFxyXG4gIEFMTF9MQU5HX09QVElPTlMsXHJcbiAgY2hhbmdlTGFuZyxcclxuICBnZXRMYW5nLFxyXG59IGZyb20gXCIuLi9sb2NhbGVzXCI7XHJcbmltcG9ydCB7IGNvcHlUb0NsaXBib2FyZCwgY2xpZW50VXBkYXRlLCBzZW12ZXJDb21wYXJlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcclxuaW1wb3J0IHtcclxuICBBbnRocm9waWMsXHJcbiAgQXp1cmUsXHJcbiAgQmFpZHUsXHJcbiAgVGVuY2VudCxcclxuICBCeXRlRGFuY2UsXHJcbiAgQWxpYmFiYSxcclxuICBNb29uc2hvdCxcclxuICBYQUksXHJcbiAgR29vZ2xlLFxyXG4gIEdvb2dsZVNhZmV0eVNldHRpbmdzVGhyZXNob2xkLFxyXG4gIE9QRU5BSV9CQVNFX1VSTCxcclxuICBQYXRoLFxyXG4gIFJFTEVBU0VfVVJMLFxyXG4gIFNUT1JBR0VfS0VZLFxyXG4gIFNlcnZpY2VQcm92aWRlcixcclxuICBTbG90SUQsXHJcbiAgVVBEQVRFX1VSTCxcclxuICBTdGFiaWxpdHksXHJcbiAgSWZseXRlayxcclxuICBTQUFTX0NIQVRfVVJMLFxyXG4gIENoYXRHTE0sXHJcbiAgRGVlcFNlZWssXHJcbiAgU2lsaWNvbkZsb3csXHJcbn0gZnJvbSBcIi4uL2NvbnN0YW50XCI7XHJcbmltcG9ydCB7IFByb21wdCwgU2VhcmNoU2VydmljZSwgdXNlUHJvbXB0U3RvcmUgfSBmcm9tIFwiLi4vc3RvcmUvcHJvbXB0XCI7XHJcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9lcnJvclwiO1xyXG5pbXBvcnQgeyBJbnB1dFJhbmdlIH0gZnJvbSBcIi4vaW5wdXQtcmFuZ2VcIjtcclxuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBBdmF0YXIsIEF2YXRhclBpY2tlciB9IGZyb20gXCIuL2Vtb2ppXCI7XHJcbmltcG9ydCB7IGdldENsaWVudENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvY2xpZW50XCI7XHJcbmltcG9ydCB7IHVzZVN5bmNTdG9yZSB9IGZyb20gXCIuLi9zdG9yZS9zeW5jXCI7XHJcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gXCJuYW5vaWRcIjtcclxuaW1wb3J0IHsgdXNlTWFza1N0b3JlIH0gZnJvbSBcIi4uL3N0b3JlL21hc2tcIjtcclxuaW1wb3J0IHsgUHJvdmlkZXJUeXBlIH0gZnJvbSBcIi4uL3V0aWxzL2Nsb3VkXCI7XHJcbmltcG9ydCB7IFRUU0NvbmZpZ0xpc3QgfSBmcm9tIFwiLi90dHMtY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlYWx0aW1lQ29uZmlnTGlzdCB9IGZyb20gXCIuL3JlYWx0aW1lLWNoYXQvcmVhbHRpbWUtY29uZmlnXCI7XHJcblxyXG5mdW5jdGlvbiBFZGl0UHJvbXB0TW9kYWwocHJvcHM6IHsgaWQ6IHN0cmluZzsgb25DbG9zZTogKCkgPT4gdm9pZCB9KSB7XHJcbiAgY29uc3QgcHJvbXB0U3RvcmUgPSB1c2VQcm9tcHRTdG9yZSgpO1xyXG4gIGNvbnN0IHByb21wdCA9IHByb21wdFN0b3JlLmdldChwcm9wcy5pZCk7XHJcblxyXG4gIHJldHVybiBwcm9tcHQgPyAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLW1hc2tcIj5cclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuRWRpdE1vZGFsLlRpdGxlfVxyXG4gICAgICAgIG9uQ2xvc2U9e3Byb3BzLm9uQ2xvc2V9XHJcbiAgICAgICAgYWN0aW9ucz17W1xyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAga2V5PVwiXCJcclxuICAgICAgICAgICAgb25DbGljaz17cHJvcHMub25DbG9zZX1cclxuICAgICAgICAgICAgdGV4dD17TG9jYWxlLlVJLkNvbmZpcm19XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAvPixcclxuICAgICAgICBdfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXQtcHJvbXB0LW1vZGFsXCJdfT5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIHZhbHVlPXtwcm9tcHQudGl0bGV9XHJcbiAgICAgICAgICAgIHJlYWRPbmx5PXshcHJvbXB0LmlzVXNlcn1cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJlZGl0LXByb21wdC10aXRsZVwiXX1cclxuICAgICAgICAgICAgb25JbnB1dD17KGUpID0+XHJcbiAgICAgICAgICAgICAgcHJvbXB0U3RvcmUudXBkYXRlUHJvbXB0KFxyXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXHJcbiAgICAgICAgICAgICAgICAocHJvbXB0KSA9PiAocHJvbXB0LnRpdGxlID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPElucHV0XHJcbiAgICAgICAgICAgIHZhbHVlPXtwcm9tcHQuY29udGVudH1cclxuICAgICAgICAgICAgcmVhZE9ubHk9eyFwcm9tcHQuaXNVc2VyfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXQtcHJvbXB0LWNvbnRlbnRcIl19XHJcbiAgICAgICAgICAgIHJvd3M9ezEwfVxyXG4gICAgICAgICAgICBvbklucHV0PXsoZSkgPT5cclxuICAgICAgICAgICAgICBwcm9tcHRTdG9yZS51cGRhdGVQcm9tcHQoXHJcbiAgICAgICAgICAgICAgICBwcm9wcy5pZCxcclxuICAgICAgICAgICAgICAgIChwcm9tcHQpID0+IChwcm9tcHQuY29udGVudCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA+PC9JbnB1dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Nb2RhbD5cclxuICAgIDwvZGl2PlxyXG4gICkgOiBudWxsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBVc2VyUHJvbXB0TW9kYWwocHJvcHM6IHsgb25DbG9zZT86ICgpID0+IHZvaWQgfSkge1xyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCB1c2VyUHJvbXB0cyA9IHByb21wdFN0b3JlLmdldFVzZXJQcm9tcHRzKCk7XHJcbiAgY29uc3QgYnVpbHRpblByb21wdHMgPSBTZWFyY2hTZXJ2aWNlLmJ1aWx0aW5Qcm9tcHRzO1xyXG4gIGNvbnN0IGFsbFByb21wdHMgPSB1c2VyUHJvbXB0cy5jb25jYXQoYnVpbHRpblByb21wdHMpO1xyXG4gIGNvbnN0IFtzZWFyY2hJbnB1dCwgc2V0U2VhcmNoSW5wdXRdID0gdXNlU3RhdGUoXCJcIik7XHJcbiAgY29uc3QgW3NlYXJjaFByb21wdHMsIHNldFNlYXJjaFByb21wdHNdID0gdXNlU3RhdGU8UHJvbXB0W10+KFtdKTtcclxuICBjb25zdCBwcm9tcHRzID0gc2VhcmNoSW5wdXQubGVuZ3RoID4gMCA/IHNlYXJjaFByb21wdHMgOiBhbGxQcm9tcHRzO1xyXG5cclxuICBjb25zdCBbZWRpdGluZ1Byb21wdElkLCBzZXRFZGl0aW5nUHJvbXB0SWRdID0gdXNlU3RhdGU8c3RyaW5nPigpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHNlYXJjaElucHV0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0ID0gU2VhcmNoU2VydmljZS5zZWFyY2goc2VhcmNoSW5wdXQpO1xyXG4gICAgICBzZXRTZWFyY2hQcm9tcHRzKHNlYXJjaFJlc3VsdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRTZWFyY2hQcm9tcHRzKFtdKTtcclxuICAgIH1cclxuICB9LCBbc2VhcmNoSW5wdXRdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtbWFza1wiPlxyXG4gICAgICA8TW9kYWxcclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlByb21wdC5Nb2RhbC5UaXRsZX1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBwcm9wcy5vbkNsb3NlPy4oKX1cclxuICAgICAgICBhY3Rpb25zPXtbXHJcbiAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICBrZXk9XCJhZGRcIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbXB0SWQgPSBwcm9tcHRTdG9yZS5hZGQoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IG5hbm9pZCgpLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiRW1wdHkgUHJvbXB0XCIsXHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIkVtcHR5IFByb21wdCBDb250ZW50XCIsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgc2V0RWRpdGluZ1Byb21wdElkKHByb21wdElkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEFkZEljb24gLz59XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTW9kYWwuQWRkfVxyXG4gICAgICAgICAgLz4sXHJcbiAgICAgICAgXX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1tb2RhbFwiXX0+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LXNlYXJjaFwiXX1cclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5Qcm9tcHQuTW9kYWwuU2VhcmNofVxyXG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoSW5wdXR9XHJcbiAgICAgICAgICAgIG9uSW5wdXQ9eyhlKSA9PiBzZXRTZWFyY2hJbnB1dChlLmN1cnJlbnRUYXJnZXQudmFsdWUpfVxyXG4gICAgICAgICAgPjwvaW5wdXQ+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWxpc3RcIl19PlxyXG4gICAgICAgICAgICB7cHJvbXB0cy5tYXAoKHYsIF8pID0+IChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtaXRlbVwiXX0ga2V5PXt2LmlkID8/IHYudGl0bGV9PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWhlYWRlclwiXX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC10aXRsZVwiXX0+e3YudGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ1c2VyLXByb21wdC1jb250ZW50XCJdICsgXCIgb25lLWxpbmVcIn0+XHJcbiAgICAgICAgICAgICAgICAgICAge3YuY29udGVudH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uc1wiXX0+XHJcbiAgICAgICAgICAgICAgICAgIHt2LmlzVXNlciAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxDbGVhckljb24gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHByb21wdFN0b3JlLnJlbW92ZSh2LmlkISl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3YuaXNVc2VyID8gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RWRpdEljb24gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInVzZXItcHJvbXB0LWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEVkaXRpbmdQcm9tcHRJZCh2LmlkKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RXllSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0RWRpdGluZ1Byb21wdElkKHYuaWQpfVxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj17PENvcHlJY29uIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1widXNlci1wcm9tcHQtYnV0dG9uXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNvcHlUb0NsaXBib2FyZCh2LmNvbnRlbnQpfVxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTW9kYWw+XHJcblxyXG4gICAgICB7ZWRpdGluZ1Byb21wdElkICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgIDxFZGl0UHJvbXB0TW9kYWxcclxuICAgICAgICAgIGlkPXtlZGl0aW5nUHJvbXB0SWQhfVxyXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0RWRpdGluZ1Byb21wdElkKHVuZGVmaW5lZCl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKX1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIERhbmdlckl0ZW1zKCkge1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG4gIGNvbnN0IGFwcENvbmZpZyA9IHVzZUFwcENvbmZpZygpO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPExpc3Q+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5EYW5nZXIuUmVzZXQuVGl0bGV9XHJcbiAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLlJlc2V0LkFjdGlvbn1cclxuICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5TZXR0aW5ncy5EYW5nZXIuUmVzZXQuQ29uZmlybSkpIHtcclxuICAgICAgICAgICAgICBhcHBDb25maWcucmVzZXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHR5cGU9XCJkYW5nZXJcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5EYW5nZXIuQ2xlYXIuVGl0bGV9XHJcbiAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuRGFuZ2VyLkNsZWFyLkFjdGlvbn1cclxuICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5TZXR0aW5ncy5EYW5nZXIuQ2xlYXIuQ29uZmlybSkpIHtcclxuICAgICAgICAgICAgICBjaGF0U3RvcmUuY2xlYXJBbGxEYXRhKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB0eXBlPVwiZGFuZ2VyXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC9MaXN0PlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIENoZWNrQnV0dG9uKCkge1xyXG4gIGNvbnN0IHN5bmNTdG9yZSA9IHVzZVN5bmNTdG9yZSgpO1xyXG5cclxuICBjb25zdCBjb3VsZENoZWNrID0gdXNlTWVtbygoKSA9PiB7XHJcbiAgICByZXR1cm4gc3luY1N0b3JlLmNsb3VkU3luYygpO1xyXG4gIH0sIFtzeW5jU3RvcmVdKTtcclxuXHJcbiAgY29uc3QgW2NoZWNrU3RhdGUsIHNldENoZWNrU3RhdGVdID0gdXNlU3RhdGU8XHJcbiAgICBcIm5vbmVcIiB8IFwiY2hlY2tpbmdcIiB8IFwic3VjY2Vzc1wiIHwgXCJmYWlsZWRcIlxyXG4gID4oXCJub25lXCIpO1xyXG5cclxuICBhc3luYyBmdW5jdGlvbiBjaGVjaygpIHtcclxuICAgIHNldENoZWNrU3RhdGUoXCJjaGVja2luZ1wiKTtcclxuICAgIGNvbnN0IHZhbGlkID0gYXdhaXQgc3luY1N0b3JlLmNoZWNrKCk7XHJcbiAgICBzZXRDaGVja1N0YXRlKHZhbGlkID8gXCJzdWNjZXNzXCIgOiBcImZhaWxlZFwiKTtcclxuICB9XHJcblxyXG4gIGlmICghY291bGRDaGVjaykgcmV0dXJuIG51bGw7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8SWNvbkJ1dHRvblxyXG4gICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuTW9kYWwuQ2hlY2t9XHJcbiAgICAgIGJvcmRlcmVkXHJcbiAgICAgIG9uQ2xpY2s9e2NoZWNrfVxyXG4gICAgICBpY29uPXtcclxuICAgICAgICBjaGVja1N0YXRlID09PSBcIm5vbmVcIiA/IChcclxuICAgICAgICAgIDxDb25uZWN0aW9uSWNvbiAvPlxyXG4gICAgICAgICkgOiBjaGVja1N0YXRlID09PSBcImNoZWNraW5nXCIgPyAoXHJcbiAgICAgICAgICA8TG9hZGluZ0ljb24gLz5cclxuICAgICAgICApIDogY2hlY2tTdGF0ZSA9PT0gXCJzdWNjZXNzXCIgPyAoXHJcbiAgICAgICAgICA8Q2xvdWRTdWNjZXNzSWNvbiAvPlxyXG4gICAgICAgICkgOiBjaGVja1N0YXRlID09PSBcImZhaWxlZFwiID8gKFxyXG4gICAgICAgICAgPENsb3VkRmFpbEljb24gLz5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPENvbm5lY3Rpb25JY29uIC8+XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICA+PC9JY29uQnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFN5bmNDb25maWdNb2RhbChwcm9wczogeyBvbkNsb3NlPzogKCkgPT4gdm9pZCB9KSB7XHJcbiAgY29uc3Qgc3luY1N0b3JlID0gdXNlU3luY1N0b3JlKCk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLW1hc2tcIj5cclxuICAgICAgPE1vZGFsXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5Nb2RhbC5UaXRsZX1cclxuICAgICAgICBvbkNsb3NlPXsoKSA9PiBwcm9wcy5vbkNsb3NlPy4oKX1cclxuICAgICAgICBhY3Rpb25zPXtbXHJcbiAgICAgICAgICA8Q2hlY2tCdXR0b24ga2V5PVwiY2hlY2tcIiAvPixcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIGtleT1cImNvbmZpcm1cIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXtwcm9wcy5vbkNsb3NlfVxyXG4gICAgICAgICAgICBpY29uPXs8Q29uZmlybUljb24gLz59XHJcbiAgICAgICAgICAgIGJvcmRlcmVkXHJcbiAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5Db25maXJtfVxyXG4gICAgICAgICAgLz4sXHJcbiAgICAgICAgXX1cclxuICAgICAgPlxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuU3luY1R5cGUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuU3luY1R5cGUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnByb3ZpZGVyfVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnLnByb3ZpZGVyID0gZS50YXJnZXQudmFsdWUgYXMgUHJvdmlkZXJUeXBlKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtPYmplY3QuZW50cmllcyhQcm92aWRlclR5cGUpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt2fSBrZXk9e2t9PlxyXG4gICAgICAgICAgICAgICAgICB7a31cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuUHJveHkuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuUHJveHkuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17c3luY1N0b3JlLnVzZVByb3h5fVxyXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy51c2VQcm94eSA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAge3N5bmNTdG9yZS51c2VQcm94eSA/IChcclxuICAgICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5Qcm94eVVybC5UaXRsZX1cclxuICAgICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLlByb3h5VXJsLlN1YlRpdGxlfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnByb3h5VXJsfVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHN5bmNTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy5wcm94eVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAgICB7c3luY1N0b3JlLnByb3ZpZGVyID09PSBQcm92aWRlclR5cGUuV2ViREFWICYmIChcclxuICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLldlYkRhdi5FbmRwb2ludH0+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLndlYmRhdi5lbmRwb2ludH1cclxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25maWcud2ViZGF2LmVuZHBvaW50ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuV2ViRGF2LlVzZXJOYW1lfT5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUud2ViZGF2LnVzZXJuYW1lfVxyXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzeW5jU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy53ZWJkYXYudXNlcm5hbWUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuQ29uZmlnLldlYkRhdi5QYXNzd29yZH0+XHJcbiAgICAgICAgICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLndlYmRhdi5wYXNzd29yZH1cclxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25maWcud2ViZGF2LnBhc3N3b3JkID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPjwvUGFzc3dvcmRJbnB1dD5cclxuICAgICAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgICAgICA8L0xpc3Q+XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICB7c3luY1N0b3JlLnByb3ZpZGVyID09PSBQcm92aWRlclR5cGUuVXBTdGFzaCAmJiAoXHJcbiAgICAgICAgICA8TGlzdD5cclxuICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuVXBTdGFzaC5FbmRwb2ludH0+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICB2YWx1ZT17c3luY1N0b3JlLnVwc3Rhc2guZW5kcG9pbnR9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy51cHN0YXNoLmVuZHBvaW50ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgICA8TGlzdEl0ZW0gdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkNvbmZpZy5VcFN0YXNoLlVzZXJOYW1lfT5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUudXBzdGFzaC51c2VybmFtZX1cclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtTVE9SQUdFX0tFWX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBzeW5jU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAoY29uZmlnLnVwc3Rhc2gudXNlcm5hbWUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5Db25maWcuVXBTdGFzaC5QYXNzd29yZH0+XHJcbiAgICAgICAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgICAgICAgIHZhbHVlPXtzeW5jU3RvcmUudXBzdGFzaC5hcGlLZXl9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgc3luY1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLnVwc3Rhc2guYXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPjwvUGFzc3dvcmRJbnB1dD5cclxuICAgICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICAgIDwvTGlzdD5cclxuICAgICAgICApfVxyXG4gICAgICA8L01vZGFsPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gU3luY0l0ZW1zKCkge1xyXG4gIGNvbnN0IHN5bmNTdG9yZSA9IHVzZVN5bmNTdG9yZSgpO1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG4gIGNvbnN0IHByb21wdFN0b3JlID0gdXNlUHJvbXB0U3RvcmUoKTtcclxuICBjb25zdCBtYXNrU3RvcmUgPSB1c2VNYXNrU3RvcmUoKTtcclxuICBjb25zdCBjb3VsZFN5bmMgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIHJldHVybiBzeW5jU3RvcmUuY2xvdWRTeW5jKCk7XHJcbiAgfSwgW3N5bmNTdG9yZV0pO1xyXG5cclxuICBjb25zdCBbc2hvd1N5bmNDb25maWdNb2RhbCwgc2V0U2hvd1N5bmNDb25maWdNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gIGNvbnN0IHN0YXRlT3ZlcnZpZXcgPSB1c2VNZW1vKCgpID0+IHtcclxuICAgIGNvbnN0IHNlc3Npb25zID0gY2hhdFN0b3JlLnNlc3Npb25zO1xyXG4gICAgY29uc3QgbWVzc2FnZUNvdW50ID0gc2Vzc2lvbnMucmVkdWNlKChwLCBjKSA9PiBwICsgYy5tZXNzYWdlcy5sZW5ndGgsIDApO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNoYXQ6IHNlc3Npb25zLmxlbmd0aCxcclxuICAgICAgbWVzc2FnZTogbWVzc2FnZUNvdW50LFxyXG4gICAgICBwcm9tcHQ6IE9iamVjdC5rZXlzKHByb21wdFN0b3JlLnByb21wdHMpLmxlbmd0aCxcclxuICAgICAgbWFzazogT2JqZWN0LmtleXMobWFza1N0b3JlLm1hc2tzKS5sZW5ndGgsXHJcbiAgICB9O1xyXG4gIH0sIFtjaGF0U3RvcmUuc2Vzc2lvbnMsIG1hc2tTdG9yZS5tYXNrcywgcHJvbXB0U3RvcmUucHJvbXB0c10pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPD5cclxuICAgICAgPExpc3Q+XHJcbiAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlN5bmMuTG9jYWxTdGF0ZX1cclxuICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU3luYy5PdmVydmlldyhzdGF0ZU92ZXJ2aWV3KX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5TeW5jLkxvY2FsU3RhdGUgKyBMb2NhbGUuVUkuRXhwb3J0fVxyXG4gICAgICAgICAgICAgIGljb249ezxVcGxvYWRJY29uIC8+fVxyXG4gICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5VSS5FeHBvcnR9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3luY1N0b3JlLmV4cG9ydCgpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlN5bmMuTG9jYWxTdGF0ZSArIExvY2FsZS5VSS5JbXBvcnR9XHJcbiAgICAgICAgICAgICAgaWNvbj17PERvd25sb2FkSWNvbiAvPn1cclxuICAgICAgICAgICAgICB0ZXh0PXtMb2NhbGUuVUkuSW1wb3J0fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHN5bmNTdG9yZS5pbXBvcnQoKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPC9MaXN0PlxyXG5cclxuICAgICAge3Nob3dTeW5jQ29uZmlnTW9kYWwgJiYgKFxyXG4gICAgICAgIDxTeW5jQ29uZmlnTW9kYWwgb25DbG9zZT17KCkgPT4gc2V0U2hvd1N5bmNDb25maWdNb2RhbChmYWxzZSl9IC8+XHJcbiAgICAgICl9XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2V0dGluZ3MoKSB7XHJcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xyXG4gIGNvbnN0IFtzaG93RW1vamlQaWNrZXIsIHNldFNob3dFbW9qaVBpY2tlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnKCk7XHJcbiAgY29uc3QgdXBkYXRlQ29uZmlnID0gY29uZmlnLnVwZGF0ZTtcclxuXHJcbiAgY29uc3QgdXBkYXRlU3RvcmUgPSB1c2VVcGRhdGVTdG9yZSgpO1xyXG4gIGNvbnN0IFtjaGVja2luZ1VwZGF0ZSwgc2V0Q2hlY2tpbmdVcGRhdGVdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gdXBkYXRlU3RvcmUuZm9ybWF0VmVyc2lvbih1cGRhdGVTdG9yZS52ZXJzaW9uKTtcclxuICBjb25zdCByZW1vdGVJZCA9IHVwZGF0ZVN0b3JlLmZvcm1hdFZlcnNpb24odXBkYXRlU3RvcmUucmVtb3RlVmVyc2lvbik7XHJcbiAgY29uc3QgaGFzTmV3VmVyc2lvbiA9IHNlbXZlckNvbXBhcmUoY3VycmVudFZlcnNpb24sIHJlbW90ZUlkKSA9PT0gLTE7XHJcbiAgY29uc3QgdXBkYXRlVXJsID0gZ2V0Q2xpZW50Q29uZmlnKCk/LmlzQXBwID8gUkVMRUFTRV9VUkwgOiBVUERBVEVfVVJMO1xyXG5cclxuICBmdW5jdGlvbiBjaGVja1VwZGF0ZShmb3JjZSA9IGZhbHNlKSB7XHJcbiAgICBzZXRDaGVja2luZ1VwZGF0ZSh0cnVlKTtcclxuICAgIHVwZGF0ZVN0b3JlLmdldExhdGVzdFZlcnNpb24oZm9yY2UpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBzZXRDaGVja2luZ1VwZGF0ZShmYWxzZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIltVcGRhdGVdIGxvY2FsIHZlcnNpb24gXCIsIHVwZGF0ZVN0b3JlLnZlcnNpb24pO1xyXG4gICAgY29uc29sZS5sb2coXCJbVXBkYXRlXSByZW1vdGUgdmVyc2lvbiBcIiwgdXBkYXRlU3RvcmUucmVtb3RlVmVyc2lvbik7XHJcbiAgfVxyXG5cclxuICBjb25zdCBhY2Nlc3NTdG9yZSA9IHVzZUFjY2Vzc1N0b3JlKCk7XHJcbiAgY29uc3Qgc2hvdWxkSGlkZUJhbGFuY2VRdWVyeSA9IHVzZU1lbW8oKCkgPT4ge1xyXG4gICAgY29uc3QgaXNPcGVuQWlVcmwgPSBhY2Nlc3NTdG9yZS5vcGVuYWlVcmwuaW5jbHVkZXMoT1BFTkFJX0JBU0VfVVJMKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBhY2Nlc3NTdG9yZS5oaWRlQmFsYW5jZVF1ZXJ5IHx8XHJcbiAgICAgIGlzT3BlbkFpVXJsIHx8XHJcbiAgICAgIGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PSBTZXJ2aWNlUHJvdmlkZXIuQXp1cmVcclxuICAgICk7XHJcbiAgfSwgW1xyXG4gICAgYWNjZXNzU3RvcmUuaGlkZUJhbGFuY2VRdWVyeSxcclxuICAgIGFjY2Vzc1N0b3JlLm9wZW5haVVybCxcclxuICAgIGFjY2Vzc1N0b3JlLnByb3ZpZGVyLFxyXG4gIF0pO1xyXG5cclxuICBjb25zdCB1c2FnZSA9IHtcclxuICAgIHVzZWQ6IHVwZGF0ZVN0b3JlLnVzZWQsXHJcbiAgICBzdWJzY3JpcHRpb246IHVwZGF0ZVN0b3JlLnN1YnNjcmlwdGlvbixcclxuICB9O1xyXG4gIGNvbnN0IFtsb2FkaW5nVXNhZ2UsIHNldExvYWRpbmdVc2FnZV0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgZnVuY3Rpb24gY2hlY2tVc2FnZShmb3JjZSA9IGZhbHNlKSB7XHJcbiAgICBpZiAoc2hvdWxkSGlkZUJhbGFuY2VRdWVyeSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9hZGluZ1VzYWdlKHRydWUpO1xyXG4gICAgdXBkYXRlU3RvcmUudXBkYXRlVXNhZ2UoZm9yY2UpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICBzZXRMb2FkaW5nVXNhZ2UoZmFsc2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBlbmFibGVkQWNjZXNzQ29udHJvbCA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PiBhY2Nlc3NTdG9yZS5lbmFibGVkQWNjZXNzQ29udHJvbCgpLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xyXG4gICAgW10sXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgcHJvbXB0U3RvcmUgPSB1c2VQcm9tcHRTdG9yZSgpO1xyXG4gIGNvbnN0IGJ1aWx0aW5Db3VudCA9IFNlYXJjaFNlcnZpY2UuY291bnQuYnVpbHRpbjtcclxuICBjb25zdCBjdXN0b21Db3VudCA9IHByb21wdFN0b3JlLmdldFVzZXJQcm9tcHRzKCkubGVuZ3RoID8/IDA7XHJcbiAgY29uc3QgW3Nob3VsZFNob3dQcm9tcHRNb2RhbCwgc2V0U2hvd1Byb21wdE1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgY29uc3Qgc2hvd1VzYWdlID0gYWNjZXNzU3RvcmUuaXNBdXRob3JpemVkKCk7XHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIGNoZWNrcyBwZXIgbWludXRlc1xyXG4gICAgY2hlY2tVcGRhdGUoKTtcclxuICAgIHNob3dVc2FnZSAmJiBjaGVja1VzYWdlKCk7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW10pO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qga2V5ZG93bkV2ZW50ID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XHJcbiAgICAgICAgbmF2aWdhdGUoUGF0aC5Ib21lKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmIChjbGllbnRDb25maWc/LmlzQXBwKSB7XHJcbiAgICAgIC8vIEZvcmNlIHRvIHNldCBjdXN0b20gZW5kcG9pbnQgdG8gdHJ1ZSBpZiBpdCdzIGFwcFxyXG4gICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgc3RhdGUudXNlQ3VzdG9tQ29uZmlnID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBrZXlkb3duRXZlbnQpO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwga2V5ZG93bkV2ZW50KTtcclxuICAgIH07XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXHJcbiAgfSwgW10pO1xyXG5cclxuICBjb25zdCBjbGllbnRDb25maWcgPSB1c2VNZW1vKCgpID0+IGdldENsaWVudENvbmZpZygpLCBbXSk7XHJcbiAgY29uc3Qgc2hvd0FjY2Vzc0NvZGUgPSBlbmFibGVkQWNjZXNzQ29udHJvbCAmJiAhY2xpZW50Q29uZmlnPy5pc0FwcDtcclxuXHJcbiAgY29uc3QgYWNjZXNzQ29kZUNvbXBvbmVudCA9IHNob3dBY2Nlc3NDb2RlICYmIChcclxuICAgIDxMaXN0SXRlbVxyXG4gICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlRpdGxlfVxyXG4gICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlN1YlRpdGxlfVxyXG4gICAgPlxyXG4gICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hY2Nlc3NDb2RlfVxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BY2Nlc3NDb2RlLlBsYWNlaG9sZGVyfVxyXG4gICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmFjY2Vzc0NvZGUgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9fVxyXG4gICAgICAvPlxyXG4gICAgPC9MaXN0SXRlbT5cclxuICApO1xyXG5cclxuICBjb25zdCBzYWFzU3RhcnRDb21wb25lbnQgPSAoXHJcbiAgICA8TGlzdEl0ZW1cclxuICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJzdWJ0aXRsZS1idXR0b25cIl19XHJcbiAgICAgIHRpdGxlPXtcclxuICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5UaXRsZSArXHJcbiAgICAgICAgYCR7TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TYWFzU3RhcnQuTGFiZWx9YFxyXG4gICAgICB9XHJcbiAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNhYXNTdGFydC5TdWJUaXRsZX1cclxuICAgID5cclxuICAgICAgPEljb25CdXR0b25cclxuICAgICAgICBhcmlhPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LlRpdGxlICtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkNoYXROb3dcclxuICAgICAgICB9XHJcbiAgICAgICAgaWNvbj17PEZpcmVJY29uIC8+fVxyXG4gICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2Fhc1N0YXJ0LkNoYXROb3d9XHJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgdHJhY2tTZXR0aW5nc1BhZ2VHdWlkZVRvQ1BheW1lbnRDbGljaygpO1xyXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBTQUFTX0NIQVRfVVJMO1xyXG4gICAgICAgIH19XHJcbiAgICAgIC8+XHJcbiAgICA8L0xpc3RJdGVtPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHVzZUN1c3RvbUNvbmZpZ0NvbXBvbmVudCA9IC8vIENvbmRpdGlvbmFsbHkgcmVuZGVyIHRoZSBmb2xsb3dpbmcgTGlzdEl0ZW0gYmFzZWQgb24gY2xpZW50Q29uZmlnLmlzQXBwXHJcbiAgICAhY2xpZW50Q29uZmlnPy5pc0FwcCAmJiAoIC8vIG9ubHkgc2hvdyBpZiBpc0FwcCBpcyBmYWxzZVxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DdXN0b21FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICBjaGVja2VkPXthY2Nlc3NTdG9yZS51c2VDdXN0b21Db25maWd9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnVzZUN1c3RvbUNvbmZpZyA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgKTtcclxuXHJcbiAgY29uc3Qgb3BlbkFJQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuT3BlbkFJICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuRW5kcG9pbnQuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLm9wZW5haVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtPUEVOQUlfQkFTRV9VUkx9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLm9wZW5haVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5PcGVuQUkuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5TaG93UGFzc3dvcmR9XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk9wZW5BSS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUub3BlbmFpQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuT3BlbkFJLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5vcGVuYWlBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYXp1cmVDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5BenVyZSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkVuZHBvaW50LlN1YlRpdGxlICsgQXp1cmUuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmF6dXJlVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0F6dXJlLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYXp1cmVVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYXp1cmVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYXp1cmVBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BenVyZS5BcGlWZXJpb24uVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQXp1cmUuQXBpVmVyaW9uLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkF6dXJlLkFwaVZlcmlvbi5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5henVyZUFwaVZlcnNpb259XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIjIwMjMtMDgtMDEtcHJldmlld1wiXHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmF6dXJlQXBpVmVyc2lvbiA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGdvb2dsZUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkdvb2dsZSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgR29vZ2xlLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZ29vZ2xlVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0dvb2dsZS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuR29vZ2xlLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5nb29nbGVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5BcGlWZXJzaW9uLlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmdvb2dsZUFwaVZlcnNpb259XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIjIwMjMtMDgtMDEtcHJldmlld1wiXHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmdvb2dsZUFwaVZlcnNpb24gPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5Hb29nbGVTYWZldHlTZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Hb29nbGUuR29vZ2xlU2FmZXR5U2V0dGluZ3MuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkdvb2dsZS5Hb29nbGVTYWZldHlTZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5nb29nbGVTYWZldHlTZXR0aW5nc31cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT5cclxuICAgICAgICAgICAgICAgIChhY2Nlc3MuZ29vZ2xlU2FmZXR5U2V0dGluZ3MgPSBlLnRhcmdldFxyXG4gICAgICAgICAgICAgICAgICAudmFsdWUgYXMgR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7T2JqZWN0LmVudHJpZXMoR29vZ2xlU2FmZXR5U2V0dGluZ3NUaHJlc2hvbGQpLm1hcCgoW2ssIHZdKSA9PiAoXHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3Z9IGtleT17a30+XHJcbiAgICAgICAgICAgICAge2t9XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgKSl9XHJcbiAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBhbnRocm9waWNDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5BbnRocm9waWMgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEFudGhyb3BpYy5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmFudGhyb3BpY1VybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtBbnRocm9waWMuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbnRocm9waWNVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYW50aHJvcGljQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbnRocm9waWNBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbnRocm9waWMuQXBpVmVyaW9uLlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFudGhyb3BpYy5BcGlWZXJpb24uU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQW50aHJvcGljLkFwaVZlcmlvbi5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbnRocm9waWNBcGlWZXJzaW9ufVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0FudGhyb3BpYy5WaXNpb259XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmFudGhyb3BpY0FwaVZlcnNpb24gPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBiYWlkdUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkJhaWR1ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJhaWR1VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0JhaWR1LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYmFpZHVVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJhaWR1LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYmFpZHVBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuYmFpZHVBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5CYWlkdS5TZWNyZXRLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJhaWR1U2VjcmV0S2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQmFpZHUuU2VjcmV0S2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmJhaWR1U2VjcmV0S2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IHRlbmNlbnRDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5UZW5jZW50ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5FbmRwb2ludC5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnRlbmNlbnRVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17VGVuY2VudC5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnRlbmNlbnRVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlRlbmNlbnQuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUudGVuY2VudFNlY3JldElkfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MudGVuY2VudFNlY3JldElkID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5UZW5jZW50LlNlY3JldEtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS50ZW5jZW50U2VjcmV0S2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuVGVuY2VudC5TZWNyZXRLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MudGVuY2VudFNlY3JldEtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBieXRlRGFuY2VDb25maWdDb21wb25lbnQgPSBhY2Nlc3NTdG9yZS5wcm92aWRlciA9PT1cclxuICAgIFNlcnZpY2VQcm92aWRlci5CeXRlRGFuY2UgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlN1YlRpdGxlICtcclxuICAgICAgICAgIEJ5dGVEYW5jZS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmJ5dGVkYW5jZVVybH1cclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtCeXRlRGFuY2UuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5ieXRlZGFuY2VVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkJ5dGVEYW5jZS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuYnl0ZWRhbmNlQXBpS2V5fVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQnl0ZURhbmNlLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5ieXRlZGFuY2VBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgYWxpYmFiYUNvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkFsaWJhYmEgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgQWxpYmFiYS5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQWxpYmFiYS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5hbGliYWJhVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0FsaWJhYmEuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbGliYWJhVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkFsaWJhYmEuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmFsaWJhYmFBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5BbGliYWJhLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5hbGliYWJhQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcblxyXG4gIGNvbnN0IG1vb25zaG90Q29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuTW9vbnNob3QgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgTG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5Nb29uc2hvdC5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBNb29uc2hvdC5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUubW9vbnNob3RVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TW9vbnNob3QuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5tb29uc2hvdFVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuTW9vbnNob3QuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5tb29uc2hvdEFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLk1vb25zaG90LkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5tb29uc2hvdEFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBkZWVwc2Vla0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLkRlZXBTZWVrICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuRGVlcFNlZWsuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgRGVlcFNlZWsuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmRlZXBzZWVrVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0RlZXBTZWVrLkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuZGVlcHNlZWtVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkRlZXBTZWVrLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuZGVlcHNlZWtBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5EZWVwU2Vlay5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3MuZGVlcHNlZWtBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3QgWEFJQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09IFNlcnZpY2VQcm92aWRlci5YQUkgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkVuZHBvaW50LlN1YlRpdGxlICsgWEFJLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuRW5kcG9pbnQuVGl0bGV9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUueGFpVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1hBSS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnhhaVVybCA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuWEFJLkFwaUtleS5UaXRsZX1cclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS54YWlBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5YQUkuQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLnhhaUFwaUtleSA9IGUuY3VycmVudFRhcmdldC52YWx1ZSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICA8Lz5cclxuICApO1xyXG5cclxuICBjb25zdCBjaGF0Z2xtQ29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuQ2hhdEdMTSAmJiAoXHJcbiAgICA8PlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBDaGF0R0xNLkV4YW1wbGVFbmRwb2ludFxyXG4gICAgICAgIH1cclxuICAgICAgPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5DaGF0R0xNLkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmNoYXRnbG1Vcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17Q2hhdEdMTS5FeGFtcGxlRW5kcG9pbnR9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmNoYXRnbG1VcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuQ2hhdEdMTS5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuY2hhdGdsbUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLkNoYXRHTE0uQXBpS2V5LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmNoYXRnbG1BcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuICBjb25zdCBzaWxpY29uZmxvd0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLlNpbGljb25GbG93ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtcclxuICAgICAgICAgIExvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuU2lsaWNvbkZsb3cuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgU2lsaWNvbkZsb3cuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkVuZHBvaW50LlRpdGxlfVxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnNpbGljb25mbG93VXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1NpbGljb25GbG93LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc2lsaWNvbmZsb3dVcmwgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlNpbGljb25GbG93LkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuc2lsaWNvbmZsb3dBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TaWxpY29uRmxvdy5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc2lsaWNvbmZsb3dBcGlLZXkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgY29uc3Qgc3RhYmlsaXR5Q29uZmlnQ29tcG9uZW50ID0gYWNjZXNzU3RvcmUucHJvdmlkZXIgPT09XHJcbiAgICBTZXJ2aWNlUHJvdmlkZXIuU3RhYmlsaXR5ICYmIChcclxuICAgIDw+XHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5TdWJUaXRsZSArXHJcbiAgICAgICAgICBTdGFiaWxpdHkuRXhhbXBsZUVuZHBvaW50XHJcbiAgICAgICAgfVxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5zdGFiaWxpdHlVcmx9XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17U3RhYmlsaXR5LkV4YW1wbGVFbmRwb2ludH1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT5cclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc3RhYmlsaXR5VXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5BcGlLZXkuU3ViVGl0bGV9XHJcbiAgICAgID5cclxuICAgICAgICA8UGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5TdGFiaWxpdHkuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLnN0YWJpbGl0eUFwaUtleX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLlN0YWJpbGl0eS5BcGlLZXkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcclxuICAgICAgICAgICAgYWNjZXNzU3RvcmUudXBkYXRlKFxyXG4gICAgICAgICAgICAgIChhY2Nlc3MpID0+IChhY2Nlc3Muc3RhYmlsaXR5QXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuICAgIDwvPlxyXG4gICk7XHJcbiAgY29uc3QgbGZseXRla0NvbmZpZ0NvbXBvbmVudCA9IGFjY2Vzc1N0b3JlLnByb3ZpZGVyID09PVxyXG4gICAgU2VydmljZVByb3ZpZGVyLklmbHl0ZWsgJiYgKFxyXG4gICAgPD5cclxuICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17XHJcbiAgICAgICAgICBMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuRW5kcG9pbnQuU3ViVGl0bGUgK1xyXG4gICAgICAgICAgSWZseXRlay5FeGFtcGxlRW5kcG9pbnRcclxuICAgICAgICB9XHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5FbmRwb2ludC5UaXRsZX1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHZhbHVlPXthY2Nlc3NTdG9yZS5pZmx5dGVrVXJsfVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e0lmbHl0ZWsuRXhhbXBsZUVuZHBvaW50fVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5pZmx5dGVrVXJsID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgID48L2lucHV0PlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICA8TGlzdEl0ZW1cclxuICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5UaXRsZX1cclxuICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5TdWJUaXRsZX1cclxuICAgICAgPlxyXG4gICAgICAgIDxQYXNzd29yZElucHV0XHJcbiAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpS2V5LlRpdGxlfVxyXG4gICAgICAgICAgdmFsdWU9e2FjY2Vzc1N0b3JlLmlmbHl0ZWtBcGlLZXl9XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkFjY2Vzcy5JZmx5dGVrLkFwaUtleS5QbGFjZWhvbGRlcn1cclxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xyXG4gICAgICAgICAgICBhY2Nlc3NTdG9yZS51cGRhdGUoXHJcbiAgICAgICAgICAgICAgKGFjY2VzcykgPT4gKGFjY2Vzcy5pZmx5dGVrQXBpS2V5ID0gZS5jdXJyZW50VGFyZ2V0LnZhbHVlKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlRpdGxlfVxyXG4gICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlN1YlRpdGxlfVxyXG4gICAgICA+XHJcbiAgICAgICAgPFBhc3N3b3JkSW5wdXRcclxuICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5BY2Nlc3MuSWZseXRlay5BcGlTZWNyZXQuVGl0bGV9XHJcbiAgICAgICAgICB2YWx1ZT17YWNjZXNzU3RvcmUuaWZseXRla0FwaVNlY3JldH1cclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtMb2NhbGUuU2V0dGluZ3MuQWNjZXNzLklmbHl0ZWsuQXBpU2VjcmV0LlBsYWNlaG9sZGVyfVxyXG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgIGFjY2Vzc1N0b3JlLnVwZGF0ZShcclxuICAgICAgICAgICAgICAoYWNjZXNzKSA9PiAoYWNjZXNzLmlmbHl0ZWtBcGlTZWNyZXQgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8L0xpc3RJdGVtPlxyXG4gICAgPC8+XHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxFcnJvckJvdW5kYXJ5PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIndpbmRvdy1oZWFkZXJcIiBkYXRhLXRhdXJpLWRyYWctcmVnaW9uPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwid2luZG93LWhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctaGVhZGVyLW1haW4tdGl0bGVcIj5cclxuICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctaGVhZGVyLXN1Yi10aXRsZVwiPlxyXG4gICAgICAgICAgICB7TG9jYWxlLlNldHRpbmdzLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3aW5kb3ctYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5VSS5DbG9zZX1cclxuICAgICAgICAgICAgICBpY29uPXs8Q2xvc2VJY29uIC8+fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKFBhdGguSG9tZSl9XHJcbiAgICAgICAgICAgICAgYm9yZGVyZWRcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNldHRpbmdzXCJdfT5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkF2YXRhcn0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U2hvd0Vtb2ppUGlja2VyKGZhbHNlKX1cclxuICAgICAgICAgICAgICBjb250ZW50PXtcclxuICAgICAgICAgICAgICAgIDxBdmF0YXJQaWNrZXJcclxuICAgICAgICAgICAgICAgICAgb25FbW9qaUNsaWNrPXsoYXZhdGFyOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoKGNvbmZpZykgPT4gKGNvbmZpZy5hdmF0YXIgPSBhdmF0YXIpKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRTaG93RW1vamlQaWNrZXIoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgb3Blbj17c2hvd0Vtb2ppUGlja2VyfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkF2YXRhcn1cclxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuYXZhdGFyfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBzZXRTaG93RW1vamlQaWNrZXIoIXNob3dFbW9qaVBpY2tlcik7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxBdmF0YXIgYXZhdGFyPXtjb25maWcuYXZhdGFyfSAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5WZXJzaW9uKGN1cnJlbnRWZXJzaW9uID8/IFwidW5rbm93blwiKX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e1xyXG4gICAgICAgICAgICAgIGNoZWNraW5nVXBkYXRlXHJcbiAgICAgICAgICAgICAgICA/IExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuSXNDaGVja2luZ1xyXG4gICAgICAgICAgICAgICAgOiBoYXNOZXdWZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IExvY2FsZS5TZXR0aW5ncy5VcGRhdGUuRm91bmRVcGRhdGUocmVtb3RlSWQgPz8gXCJFUlJPUlwiKVxyXG4gICAgICAgICAgICAgICAgOiBMb2NhbGUuU2V0dGluZ3MuVXBkYXRlLklzTGF0ZXN0XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge2NoZWNraW5nVXBkYXRlID8gKFxyXG4gICAgICAgICAgICAgIDxMb2FkaW5nSWNvbiAvPlxyXG4gICAgICAgICAgICApIDogaGFzTmV3VmVyc2lvbiA/IChcclxuICAgICAgICAgICAgICBjbGllbnRDb25maWc/LmlzQXBwID8gKFxyXG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PFJlc2V0SWNvbj48L1Jlc2V0SWNvbj59XHJcbiAgICAgICAgICAgICAgICAgIHRleHQ9e0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuR29Ub1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2xpZW50VXBkYXRlKCl9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICA8TGluayBocmVmPXt1cGRhdGVVcmx9IHRhcmdldD1cIl9ibGFua1wiIGNsYXNzTmFtZT1cImxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAge0xvY2FsZS5TZXR0aW5ncy5VcGRhdGUuR29Ub1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgICAgIGljb249ezxSZXNldEljb24+PC9SZXNldEljb24+fVxyXG4gICAgICAgICAgICAgICAgdGV4dD17TG9jYWxlLlNldHRpbmdzLlVwZGF0ZS5DaGVja1VwZGF0ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNoZWNrVXBkYXRlKHRydWUpfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlNlbmRLZXl9PlxyXG4gICAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLlNlbmRLZXl9XHJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5zdWJtaXRLZXl9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5zdWJtaXRLZXkgPSBlLnRhcmdldC52YWx1ZSBhcyBhbnkgYXMgU3VibWl0S2V5KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtPYmplY3QudmFsdWVzKFN1Ym1pdEtleSkubWFwKCh2KSA9PiAoXHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt2fSBrZXk9e3Z9PlxyXG4gICAgICAgICAgICAgICAgICB7dn1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICkpfVxyXG4gICAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuVGhlbWV9PlxyXG4gICAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLlRoZW1lfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcudGhlbWV9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+IChjb25maWcudGhlbWUgPSBlLnRhcmdldC52YWx1ZSBhcyBhbnkgYXMgVGhlbWUpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge09iamVjdC52YWx1ZXMoVGhlbWUpLm1hcCgodikgPT4gKFxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17dn0ga2V5PXt2fT5cclxuICAgICAgICAgICAgICAgICAge3Z9XHJcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICApKX1cclxuICAgICAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbSB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkxhbmcuTmFtZX0+XHJcbiAgICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuTGFuZy5OYW1lfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXtnZXRMYW5nKCl9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjaGFuZ2VMYW5nKGUudGFyZ2V0LnZhbHVlIGFzIGFueSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtBbGxMYW5ncy5tYXAoKGxhbmcpID0+IChcclxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e2xhbmd9IGtleT17bGFuZ30+XHJcbiAgICAgICAgICAgICAgICAgIHtBTExfTEFOR19PUFRJT05TW2xhbmddfVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Gb250U2l6ZS5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5TZXR0aW5ncy5Gb250U2l6ZS5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPElucHV0UmFuZ2VcclxuICAgICAgICAgICAgICBhcmlhPXtMb2NhbGUuU2V0dGluZ3MuRm9udFNpemUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdGl0bGU9e2Ake2NvbmZpZy5mb250U2l6ZSA/PyAxNH1weGB9XHJcbiAgICAgICAgICAgICAgdmFsdWU9e2NvbmZpZy5mb250U2l6ZX1cclxuICAgICAgICAgICAgICBtaW49XCIxMlwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiNDBcIlxyXG4gICAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5mb250U2l6ZSA9IE51bWJlci5wYXJzZUludChlLmN1cnJlbnRUYXJnZXQudmFsdWUpKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L0lucHV0UmFuZ2U+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuRm9udEZhbWlseS5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHZhbHVlPXtjb25maWcuZm9udEZhbWlseX1cclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17TG9jYWxlLlNldHRpbmdzLkZvbnRGYW1pbHkuUGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmZvbnRGYW1pbHkgPSBlLmN1cnJlbnRUYXJnZXQudmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLkF1dG9HZW5lcmF0ZVRpdGxlLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLkF1dG9HZW5lcmF0ZVRpdGxlLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuQXV0b0dlbmVyYXRlVGl0bGUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGV9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuZW5hYmxlQXV0b0dlbmVyYXRlVGl0bGUgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU2VuZFByZXZpZXdCdWJibGUuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuU2VuZFByZXZpZXdCdWJibGUuU3ViVGl0bGV9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e0xvY2FsZS5TZXR0aW5ncy5TZW5kUHJldmlld0J1YmJsZS5UaXRsZX1cclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5zZW5kUHJldmlld0J1YmJsZX1cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5zZW5kUHJldmlld0J1YmJsZSA9IGUuY3VycmVudFRhcmdldC5jaGVja2VkKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID48L2lucHV0PlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuXHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5BcnRpZmFjdHMuVGl0bGV9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuTWFzay5Db25maWcuQXJ0aWZhY3RzLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuTWFzay5Db25maWcuQXJ0aWZhY3RzLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUFydGlmYWN0c31cclxuICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XHJcbiAgICAgICAgICAgICAgICB1cGRhdGVDb25maWcoXHJcbiAgICAgICAgICAgICAgICAgIChjb25maWcpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZy5lbmFibGVBcnRpZmFjdHMgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcbiAgICAgICAgICA8TGlzdEl0ZW1cclxuICAgICAgICAgICAgdGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5Db2RlRm9sZC5UaXRsZX1cclxuICAgICAgICAgICAgc3ViVGl0bGU9e0xvY2FsZS5NYXNrLkNvbmZpZy5Db2RlRm9sZC5TdWJUaXRsZX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD17TG9jYWxlLk1hc2suQ29uZmlnLkNvZGVGb2xkLlRpdGxlfVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgY2hlY2tlZD17Y29uZmlnLmVuYWJsZUNvZGVGb2xkfVxyXG4gICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiZW5hYmxlLWNvZGUtZm9sZC1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PiAoY29uZmlnLmVuYWJsZUNvZGVGb2xkID0gZS5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPjwvaW5wdXQ+XHJcbiAgICAgICAgICA8L0xpc3RJdGVtPlxyXG4gICAgICAgIDwvTGlzdD5cclxuXHJcbiAgICAgICAgPFN5bmNJdGVtcyAvPlxyXG5cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxMaXN0SXRlbVxyXG4gICAgICAgICAgICB0aXRsZT17TG9jYWxlLlNldHRpbmdzLlByb21wdC5EaXNhYmxlLlRpdGxlfVxyXG4gICAgICAgICAgICBzdWJUaXRsZT17TG9jYWxlLlNldHRpbmdzLlByb21wdC5EaXNhYmxlLlN1YlRpdGxlfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0LkRpc2FibGUuVGl0bGV9XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZGlzYWJsZVByb21wdEhpbnR9XHJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PlxyXG4gICAgICAgICAgICAgICAgdXBkYXRlQ29uZmlnKFxyXG4gICAgICAgICAgICAgICAgICAoY29uZmlnKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIChjb25maWcuZGlzYWJsZVByb21wdEhpbnQgPSBlLmN1cnJlbnRUYXJnZXQuY2hlY2tlZCksXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+PC9pbnB1dD5cclxuICAgICAgICAgIDwvTGlzdEl0ZW0+XHJcblxyXG4gICAgICAgICAgPExpc3RJdGVtXHJcbiAgICAgICAgICAgIHRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0Lkxpc3R9XHJcbiAgICAgICAgICAgIHN1YlRpdGxlPXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0Lkxpc3RDb3VudChcclxuICAgICAgICAgICAgICBidWlsdGluQ291bnQsXHJcbiAgICAgICAgICAgICAgY3VzdG9tQ291bnQsXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgYXJpYT17TG9jYWxlLlNldHRpbmdzLlByb21wdC5MaXN0ICsgTG9jYWxlLlNldHRpbmdzLlByb21wdC5FZGl0fVxyXG4gICAgICAgICAgICAgIGljb249ezxFZGl0SWNvbiAvPn1cclxuICAgICAgICAgICAgICB0ZXh0PXtMb2NhbGUuU2V0dGluZ3MuUHJvbXB0LkVkaXR9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1Byb21wdE1vZGFsKHRydWUpfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9MaXN0SXRlbT5cclxuICAgICAgICA8L0xpc3Q+XHJcblxyXG4gICAgICAgIDxMaXN0PlxyXG4gICAgICAgICAgPE1vZGVsQ29uZmlnTGlzdFxyXG4gICAgICAgICAgICBtb2RlbENvbmZpZz17Y29uZmlnLm1vZGVsQ29uZmlnfVxyXG4gICAgICAgICAgICB1cGRhdGVDb25maWc9eyh1cGRhdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgbW9kZWxDb25maWcgPSB7IC4uLmNvbmZpZy5tb2RlbENvbmZpZyB9O1xyXG4gICAgICAgICAgICAgIHVwZGF0ZXIobW9kZWxDb25maWcpO1xyXG4gICAgICAgICAgICAgIGNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKGNvbmZpZy5tb2RlbENvbmZpZyA9IG1vZGVsQ29uZmlnKSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvTGlzdD5cclxuXHJcbiAgICAgICAge3Nob3VsZFNob3dQcm9tcHRNb2RhbCAmJiAoXHJcbiAgICAgICAgICA8VXNlclByb21wdE1vZGFsIG9uQ2xvc2U9eygpID0+IHNldFNob3dQcm9tcHRNb2RhbChmYWxzZSl9IC8+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8TGlzdD5cclxuICAgICAgICAgIDxSZWFsdGltZUNvbmZpZ0xpc3RcclxuICAgICAgICAgICAgcmVhbHRpbWVDb25maWc9e2NvbmZpZy5yZWFsdGltZUNvbmZpZ31cclxuICAgICAgICAgICAgdXBkYXRlQ29uZmlnPXsodXBkYXRlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlYWx0aW1lQ29uZmlnID0geyAuLi5jb25maWcucmVhbHRpbWVDb25maWcgfTtcclxuICAgICAgICAgICAgICB1cGRhdGVyKHJlYWx0aW1lQ29uZmlnKTtcclxuICAgICAgICAgICAgICBjb25maWcudXBkYXRlKFxyXG4gICAgICAgICAgICAgICAgKGNvbmZpZykgPT4gKGNvbmZpZy5yZWFsdGltZUNvbmZpZyA9IHJlYWx0aW1lQ29uZmlnKSxcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L0xpc3Q+XHJcbiAgICAgICAgPExpc3Q+XHJcbiAgICAgICAgICA8VFRTQ29uZmlnTGlzdFxyXG4gICAgICAgICAgICB0dHNDb25maWc9e2NvbmZpZy50dHNDb25maWd9XHJcbiAgICAgICAgICAgIHVwZGF0ZUNvbmZpZz17KHVwZGF0ZXIpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCB0dHNDb25maWcgPSB7IC4uLmNvbmZpZy50dHNDb25maWcgfTtcclxuICAgICAgICAgICAgICB1cGRhdGVyKHR0c0NvbmZpZyk7XHJcbiAgICAgICAgICAgICAgY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoY29uZmlnLnR0c0NvbmZpZyA9IHR0c0NvbmZpZykpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L0xpc3Q+XHJcblxyXG4gICAgICAgIDxEYW5nZXJJdGVtcyAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvRXJyb3JCb3VuZGFyeT5cclxuICApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJzdHlsZXMiLCJSZXNldEljb24iLCJBZGRJY29uIiwiQ2xvc2VJY29uIiwiQ29weUljb24iLCJDbGVhckljb24iLCJMb2FkaW5nSWNvbiIsIkVkaXRJY29uIiwiRmlyZUljb24iLCJFeWVJY29uIiwiRG93bmxvYWRJY29uIiwiVXBsb2FkSWNvbiIsIkNvbmZpcm1JY29uIiwiQ29ubmVjdGlvbkljb24iLCJDbG91ZFN1Y2Nlc3NJY29uIiwiQ2xvdWRGYWlsSWNvbiIsInRyYWNrU2V0dGluZ3NQYWdlR3VpZGVUb0NQYXltZW50Q2xpY2siLCJJbnB1dCIsIkxpc3QiLCJMaXN0SXRlbSIsIk1vZGFsIiwiUGFzc3dvcmRJbnB1dCIsIlBvcG92ZXIiLCJTZWxlY3QiLCJzaG93Q29uZmlybSIsIk1vZGVsQ29uZmlnTGlzdCIsIkljb25CdXR0b24iLCJTdWJtaXRLZXkiLCJ1c2VDaGF0U3RvcmUiLCJUaGVtZSIsInVzZVVwZGF0ZVN0b3JlIiwidXNlQWNjZXNzU3RvcmUiLCJ1c2VBcHBDb25maWciLCJMb2NhbGUiLCJBbGxMYW5ncyIsIkFMTF9MQU5HX09QVElPTlMiLCJjaGFuZ2VMYW5nIiwiZ2V0TGFuZyIsImNvcHlUb0NsaXBib2FyZCIsImNsaWVudFVwZGF0ZSIsInNlbXZlckNvbXBhcmUiLCJMaW5rIiwiQW50aHJvcGljIiwiQXp1cmUiLCJCYWlkdSIsIlRlbmNlbnQiLCJCeXRlRGFuY2UiLCJBbGliYWJhIiwiTW9vbnNob3QiLCJYQUkiLCJHb29nbGUiLCJHb29nbGVTYWZldHlTZXR0aW5nc1RocmVzaG9sZCIsIk9QRU5BSV9CQVNFX1VSTCIsIlBhdGgiLCJSRUxFQVNFX1VSTCIsIlNUT1JBR0VfS0VZIiwiU2VydmljZVByb3ZpZGVyIiwiVVBEQVRFX1VSTCIsIlN0YWJpbGl0eSIsIklmbHl0ZWsiLCJTQUFTX0NIQVRfVVJMIiwiQ2hhdEdMTSIsIkRlZXBTZWVrIiwiU2lsaWNvbkZsb3ciLCJTZWFyY2hTZXJ2aWNlIiwidXNlUHJvbXB0U3RvcmUiLCJFcnJvckJvdW5kYXJ5IiwiSW5wdXRSYW5nZSIsInVzZU5hdmlnYXRlIiwiQXZhdGFyIiwiQXZhdGFyUGlja2VyIiwiZ2V0Q2xpZW50Q29uZmlnIiwidXNlU3luY1N0b3JlIiwibmFub2lkIiwidXNlTWFza1N0b3JlIiwiUHJvdmlkZXJUeXBlIiwiVFRTQ29uZmlnTGlzdCIsIlJlYWx0aW1lQ29uZmlnTGlzdCIsIkVkaXRQcm9tcHRNb2RhbCIsInByb3BzIiwicHJvbXB0U3RvcmUiLCJwcm9tcHQiLCJnZXQiLCJpZCIsImRpdiIsImNsYXNzTmFtZSIsInRpdGxlIiwiU2V0dGluZ3MiLCJQcm9tcHQiLCJFZGl0TW9kYWwiLCJUaXRsZSIsIm9uQ2xvc2UiLCJhY3Rpb25zIiwib25DbGljayIsInRleHQiLCJVSSIsIkNvbmZpcm0iLCJib3JkZXJlZCIsImlucHV0IiwidHlwZSIsInZhbHVlIiwicmVhZE9ubHkiLCJpc1VzZXIiLCJvbklucHV0IiwiZSIsInVwZGF0ZVByb21wdCIsImN1cnJlbnRUYXJnZXQiLCJjb250ZW50Iiwicm93cyIsIlVzZXJQcm9tcHRNb2RhbCIsInVzZXJQcm9tcHRzIiwiZ2V0VXNlclByb21wdHMiLCJidWlsdGluUHJvbXB0cyIsImFsbFByb21wdHMiLCJjb25jYXQiLCJzZWFyY2hJbnB1dCIsInNldFNlYXJjaElucHV0Iiwic2VhcmNoUHJvbXB0cyIsInNldFNlYXJjaFByb21wdHMiLCJwcm9tcHRzIiwibGVuZ3RoIiwiZWRpdGluZ1Byb21wdElkIiwic2V0RWRpdGluZ1Byb21wdElkIiwic2VhcmNoUmVzdWx0Iiwic2VhcmNoIiwicHJvbXB0SWQiLCJhZGQiLCJjcmVhdGVkQXQiLCJEYXRlIiwibm93IiwiaWNvbiIsIkFkZCIsInBsYWNlaG9sZGVyIiwiU2VhcmNoIiwibWFwIiwidiIsIl8iLCJyZW1vdmUiLCJ1bmRlZmluZWQiLCJEYW5nZXJJdGVtcyIsImNoYXRTdG9yZSIsImFwcENvbmZpZyIsIkRhbmdlciIsIlJlc2V0Iiwic3ViVGl0bGUiLCJTdWJUaXRsZSIsImFyaWEiLCJBY3Rpb24iLCJyZXNldCIsIkNsZWFyIiwiY2xlYXJBbGxEYXRhIiwiQ2hlY2tCdXR0b24iLCJzeW5jU3RvcmUiLCJjb3VsZENoZWNrIiwiY2xvdWRTeW5jIiwiY2hlY2tTdGF0ZSIsInNldENoZWNrU3RhdGUiLCJjaGVjayIsInZhbGlkIiwiU3luYyIsIkNvbmZpZyIsIkNoZWNrIiwiU3luY0NvbmZpZ01vZGFsIiwiU3luY1R5cGUiLCJzZWxlY3QiLCJwcm92aWRlciIsIm9uQ2hhbmdlIiwidXBkYXRlIiwiY29uZmlnIiwidGFyZ2V0IiwiT2JqZWN0IiwiZW50cmllcyIsImsiLCJvcHRpb24iLCJQcm94eSIsImNoZWNrZWQiLCJ1c2VQcm94eSIsIlByb3h5VXJsIiwicHJveHlVcmwiLCJXZWJEQVYiLCJXZWJEYXYiLCJFbmRwb2ludCIsIndlYmRhdiIsImVuZHBvaW50IiwiVXNlck5hbWUiLCJ1c2VybmFtZSIsIlBhc3N3b3JkIiwicGFzc3dvcmQiLCJVcFN0YXNoIiwidXBzdGFzaCIsImFwaUtleSIsIlN5bmNJdGVtcyIsIm1hc2tTdG9yZSIsImNvdWxkU3luYyIsInNob3dTeW5jQ29uZmlnTW9kYWwiLCJzZXRTaG93U3luY0NvbmZpZ01vZGFsIiwic3RhdGVPdmVydmlldyIsInNlc3Npb25zIiwibWVzc2FnZUNvdW50IiwicmVkdWNlIiwicCIsImMiLCJtZXNzYWdlcyIsImNoYXQiLCJtZXNzYWdlIiwia2V5cyIsIm1hc2siLCJtYXNrcyIsIkxvY2FsU3RhdGUiLCJPdmVydmlldyIsInN0eWxlIiwiZGlzcGxheSIsIkV4cG9ydCIsImV4cG9ydCIsIkltcG9ydCIsImltcG9ydCIsIm5hdmlnYXRlIiwic2hvd0Vtb2ppUGlja2VyIiwic2V0U2hvd0Vtb2ppUGlja2VyIiwidXBkYXRlQ29uZmlnIiwidXBkYXRlU3RvcmUiLCJjaGVja2luZ1VwZGF0ZSIsInNldENoZWNraW5nVXBkYXRlIiwiY3VycmVudFZlcnNpb24iLCJmb3JtYXRWZXJzaW9uIiwidmVyc2lvbiIsInJlbW90ZUlkIiwicmVtb3RlVmVyc2lvbiIsImhhc05ld1ZlcnNpb24iLCJ1cGRhdGVVcmwiLCJpc0FwcCIsImNoZWNrVXBkYXRlIiwiZm9yY2UiLCJnZXRMYXRlc3RWZXJzaW9uIiwidGhlbiIsImNvbnNvbGUiLCJsb2ciLCJhY2Nlc3NTdG9yZSIsInNob3VsZEhpZGVCYWxhbmNlUXVlcnkiLCJpc09wZW5BaVVybCIsIm9wZW5haVVybCIsImluY2x1ZGVzIiwiaGlkZUJhbGFuY2VRdWVyeSIsInVzYWdlIiwidXNlZCIsInN1YnNjcmlwdGlvbiIsImxvYWRpbmdVc2FnZSIsInNldExvYWRpbmdVc2FnZSIsImNoZWNrVXNhZ2UiLCJ1cGRhdGVVc2FnZSIsImZpbmFsbHkiLCJlbmFibGVkQWNjZXNzQ29udHJvbCIsImJ1aWx0aW5Db3VudCIsImNvdW50IiwiYnVpbHRpbiIsImN1c3RvbUNvdW50Iiwic2hvdWxkU2hvd1Byb21wdE1vZGFsIiwic2V0U2hvd1Byb21wdE1vZGFsIiwic2hvd1VzYWdlIiwiaXNBdXRob3JpemVkIiwia2V5ZG93bkV2ZW50Iiwia2V5IiwiSG9tZSIsImNsaWVudENvbmZpZyIsInN0YXRlIiwidXNlQ3VzdG9tQ29uZmlnIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNob3dBY2Nlc3NDb2RlIiwiYWNjZXNzQ29kZUNvbXBvbmVudCIsIkFjY2VzcyIsIkFjY2Vzc0NvZGUiLCJhY2Nlc3NDb2RlIiwiUGxhY2Vob2xkZXIiLCJhY2Nlc3MiLCJzYWFzU3RhcnRDb21wb25lbnQiLCJTYWFzU3RhcnQiLCJMYWJlbCIsIkNoYXROb3ciLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJ1c2VDdXN0b21Db25maWdDb21wb25lbnQiLCJDdXN0b21FbmRwb2ludCIsImFyaWEtbGFiZWwiLCJvcGVuQUlDb25maWdDb21wb25lbnQiLCJPcGVuQUkiLCJBcGlLZXkiLCJTaG93UGFzc3dvcmQiLCJvcGVuYWlBcGlLZXkiLCJhenVyZUNvbmZpZ0NvbXBvbmVudCIsIkV4YW1wbGVFbmRwb2ludCIsImF6dXJlVXJsIiwiYXp1cmVBcGlLZXkiLCJBcGlWZXJpb24iLCJhenVyZUFwaVZlcnNpb24iLCJnb29nbGVDb25maWdDb21wb25lbnQiLCJnb29nbGVVcmwiLCJnb29nbGVBcGlLZXkiLCJBcGlWZXJzaW9uIiwiZ29vZ2xlQXBpVmVyc2lvbiIsIkdvb2dsZVNhZmV0eVNldHRpbmdzIiwiZ29vZ2xlU2FmZXR5U2V0dGluZ3MiLCJhbnRocm9waWNDb25maWdDb21wb25lbnQiLCJhbnRocm9waWNVcmwiLCJhbnRocm9waWNBcGlLZXkiLCJhbnRocm9waWNBcGlWZXJzaW9uIiwiVmlzaW9uIiwiYmFpZHVDb25maWdDb21wb25lbnQiLCJiYWlkdVVybCIsImJhaWR1QXBpS2V5IiwiU2VjcmV0S2V5IiwiYmFpZHVTZWNyZXRLZXkiLCJ0ZW5jZW50Q29uZmlnQ29tcG9uZW50IiwidGVuY2VudFVybCIsInRlbmNlbnRTZWNyZXRJZCIsInRlbmNlbnRTZWNyZXRLZXkiLCJieXRlRGFuY2VDb25maWdDb21wb25lbnQiLCJieXRlZGFuY2VVcmwiLCJieXRlZGFuY2VBcGlLZXkiLCJhbGliYWJhQ29uZmlnQ29tcG9uZW50IiwiYWxpYmFiYVVybCIsImFsaWJhYmFBcGlLZXkiLCJtb29uc2hvdENvbmZpZ0NvbXBvbmVudCIsIm1vb25zaG90VXJsIiwibW9vbnNob3RBcGlLZXkiLCJkZWVwc2Vla0NvbmZpZ0NvbXBvbmVudCIsImRlZXBzZWVrVXJsIiwiZGVlcHNlZWtBcGlLZXkiLCJYQUlDb25maWdDb21wb25lbnQiLCJ4YWlVcmwiLCJ4YWlBcGlLZXkiLCJjaGF0Z2xtQ29uZmlnQ29tcG9uZW50IiwiY2hhdGdsbVVybCIsImNoYXRnbG1BcGlLZXkiLCJzaWxpY29uZmxvd0NvbmZpZ0NvbXBvbmVudCIsInNpbGljb25mbG93VXJsIiwic2lsaWNvbmZsb3dBcGlLZXkiLCJzdGFiaWxpdHlDb25maWdDb21wb25lbnQiLCJzdGFiaWxpdHlVcmwiLCJzdGFiaWxpdHlBcGlLZXkiLCJsZmx5dGVrQ29uZmlnQ29tcG9uZW50IiwiaWZseXRla1VybCIsImlmbHl0ZWtBcGlLZXkiLCJBcGlTZWNyZXQiLCJpZmx5dGVrQXBpU2VjcmV0IiwiZGF0YS10YXVyaS1kcmFnLXJlZ2lvbiIsIkNsb3NlIiwib25FbW9qaUNsaWNrIiwiYXZhdGFyIiwib3BlbiIsInRhYkluZGV4IiwiVXBkYXRlIiwiVmVyc2lvbiIsIklzQ2hlY2tpbmciLCJGb3VuZFVwZGF0ZSIsIklzTGF0ZXN0IiwiR29Ub1VwZGF0ZSIsIkNoZWNrVXBkYXRlIiwiU2VuZEtleSIsInN1Ym1pdEtleSIsInZhbHVlcyIsInRoZW1lIiwiTGFuZyIsIk5hbWUiLCJsYW5nIiwiRm9udFNpemUiLCJmb250U2l6ZSIsIm1pbiIsIm1heCIsInN0ZXAiLCJOdW1iZXIiLCJwYXJzZUludCIsIkZvbnRGYW1pbHkiLCJmb250RmFtaWx5IiwiQXV0b0dlbmVyYXRlVGl0bGUiLCJlbmFibGVBdXRvR2VuZXJhdGVUaXRsZSIsIlNlbmRQcmV2aWV3QnViYmxlIiwic2VuZFByZXZpZXdCdWJibGUiLCJNYXNrIiwiQXJ0aWZhY3RzIiwiZW5hYmxlQXJ0aWZhY3RzIiwiQ29kZUZvbGQiLCJlbmFibGVDb2RlRm9sZCIsImRhdGEtdGVzdGlkIiwiRGlzYWJsZSIsImRpc2FibGVQcm9tcHRIaW50IiwiTGlzdENvdW50IiwiRWRpdCIsIm1vZGVsQ29uZmlnIiwidXBkYXRlciIsInJlYWx0aW1lQ29uZmlnIiwidHRzQ29uZmlnIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/components/settings.tsx\n"));
/***/ })
});