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/page.5bf19bfa3fee6150.hot-u...

22 lines
63 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/page",{
/***/ "(app-pages-browser)/./app/components/sidebar.tsx":
/*!************************************!*\
!*** ./app/components/sidebar.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 */ SideBar: function() { return /* binding */ SideBar; },\n/* harmony export */ SideBarBody: function() { return /* binding */ SideBarBody; },\n/* harmony export */ SideBarContainer: function() { return /* binding */ SideBarContainer; },\n/* harmony export */ SideBarHeader: function() { return /* binding */ SideBarHeader; },\n/* harmony export */ SideBarTail: function() { return /* binding */ SideBarTail; },\n/* harmony export */ useDragSideBar: function() { return /* binding */ useDragSideBar; },\n/* harmony export */ useHotKey: function() { return /* binding */ useHotKey; }\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 _home_module_scss__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./home.module.scss */ \"(app-pages-browser)/./app/components/home.module.scss\");\n/* harmony import */ var _home_module_scss__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_home_module_scss__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./button */ \"(app-pages-browser)/./app/components/button.tsx\");\n/* harmony import */ var _icons_settings_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../icons/settings.svg */ \"(app-pages-browser)/./app/icons/settings.svg\");\n/* harmony import */ var _icons_github_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/github.svg */ \"(app-pages-browser)/./app/icons/github.svg\");\n/* harmony import */ var _icons_chatgpt_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icons/chatgpt.svg */ \"(app-pages-browser)/./app/icons/chatgpt.svg\");\n/* harmony import */ var _icons_add_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../icons/add.svg */ \"(app-pages-browser)/./app/icons/add.svg\");\n/* harmony import */ var _icons_delete_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../icons/delete.svg */ \"(app-pages-browser)/./app/icons/delete.svg\");\n/* harmony import */ var _icons_mask_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../icons/mask.svg */ \"(app-pages-browser)/./app/icons/mask.svg\");\n/* harmony import */ var _icons_drag_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../icons/drag.svg */ \"(app-pages-browser)/./app/icons/drag.svg\");\n/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../locales */ \"(app-pages-browser)/./app/locales/index.ts\");\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../store */ \"(app-pages-browser)/./app/store/index.ts\");\n/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../constant */ \"(app-pages-browser)/./app/constant.ts\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router/dist/index.js\");\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! react-router-dom */ \"(app-pages-browser)/./node_modules/react-router-dom/dist/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils */ \"(app-pages-browser)/./app/utils.ts\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! next/dynamic */ \"(app-pages-browser)/./node_modules/next/dist/api/app-dynamic.js\");\n/* harmony import */ var _ui_lib__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./ui-lib */ \"(app-pages-browser)/./app/components/ui-lib.tsx\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! clsx */ \"(app-pages-browser)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var _mcp_actions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../mcp/actions */ \"(app-pages-browser)/./app/mcp/actions.ts\");\n\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$(), _s3 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst DISCOVERY = [\n {\n name: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Plugin.Name,\n path: _constant__WEBPACK_IMPORTED_MODULE_12__.Path.Plugins\n },\n {\n name: \"Stable Diffusion\",\n path: _constant__WEBPACK_IMPORTED_MODULE_12__.Path.Sd\n },\n {\n name: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].SearchChat.Page.Title,\n path: _constant__WEBPACK_IMPORTED_MODULE_12__.Path.SearchChat\n }\n];\nconst ChatList = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(async ()=>(await __webpack_require__.e(/*! import() */ \"_app-pages-browser_app_components_chat-list_tsx\").then(__webpack_require__.bind(__webpack_require__, /*! ./chat-list */ \"(app-pages-browser)/./app/components/chat-list.tsx\"))).ChatList, {\n loadableGenerated: {\n modules: [\n \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx -> \" + \"./chat-list\"\n ]\n },\n loading: ()=>null\n});\n_c = ChatList;\nfunction useHotKey() {\n _s();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_11__.useChatStore)();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const onKeyDown = (e)=>{\n if (e.altKey || e.ctrlKey) {\n if (e.key === \"ArrowUp\") {\n chatStore.nextSession(-1);\n } else if (e.key === \"ArrowDown\") {\n chatStore.nextSession(1);\n }\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return ()=>window.removeEventListener(\"keydown\", onKeyDown);\n });\n}\n_s(useHotKey, \"FzvLXhlKJxQuM4lHoDi2MSNJT+U=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_11__.useChatStore\n ];\n});\nfunction useDragSideBar() {\n _s1();\n const limit = (x)=>Math.min(_constant__WEBPACK_IMPORTED_MODULE_12__.MAX_SIDEBAR_WIDTH, x);\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_11__.useAppConfig)();\n const startX = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0);\n var _config_sidebarWidth;\n const startDragWidth = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)((_config_sidebarWidth = config.sidebarWidth) !== null && _config_sidebarWidth !== void 0 ? _config_sidebarWidth : _constant__WEBPACK_IMPORTED_MODULE_12__.DEFAULT_SIDEBAR_WIDTH);\n const lastUpdateTime = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(Date.now());\n const toggleSideBar = ()=>{\n config.update((config)=>{\n if (config.sidebarWidth < _constant__WEBPACK_IMPORTED_MODULE_12__.MIN_SIDEBAR_WIDTH) {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_12__.DEFAULT_SIDEBAR_WIDTH;\n } else {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_12__.NARROW_SIDEBAR_WIDTH;\n }\n });\n };\n const onDragStart = (e)=>{\n // Remembers the initial width each time the mouse is pressed\n startX.current = e.clientX;\n startDragWidth.current = config.sidebarWidth;\n const dragStartTime = Date.now();\n const handleDragMove = (e)=>{\n if (Date.now() < lastUpdateTime.current + 20) {\n return;\n }\n lastUpdateTime.current = Date.now();\n const d = e.clientX - startX.current;\n const nextWidth = limit(startDragWidth.current + d);\n config.update((config)=>{\n if (nextWidth < _constant__WEBPACK_IMPORTED_MODULE_12__.MIN_SIDEBAR_WIDTH) {\n config.sidebarWidth = _constant__WEBPACK_IMPORTED_MODULE_12__.NARROW_SIDEBAR_WIDTH;\n } else {\n config.sidebarWidth = nextWidth;\n }\n });\n };\n const handleDragEnd = ()=>{\n // In useRef the data is non-responsive, so `config.sidebarWidth` can't get the dynamic sidebarWidth\n window.removeEventListener(\"pointermove\", handleDragMove);\n window.removeEventListener(\"pointerup\", handleDragEnd);\n // if user click the drag icon, should toggle the sidebar\n const shouldFireClick = Date.now() - dragStartTime < 300;\n if (shouldFireClick) {\n toggleSideBar();\n }\n };\n window.addEventListener(\"pointermove\", handleDragMove);\n window.addEventListener(\"pointerup\", handleDragEnd);\n };\n const isMobileScreen = (0,_utils__WEBPACK_IMPORTED_MODULE_13__.useMobileScreen)();\n const shouldNarrow = !isMobileScreen && config.sidebarWidth < _constant__WEBPACK_IMPORTED_MODULE_12__.MIN_SIDEBAR_WIDTH;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n var _config_sidebarWidth;\n const barWidth = shouldNarrow ? _constant__WEBPACK_IMPORTED_MODULE_12__.NARROW_SIDEBAR_WIDTH : limit((_config_sidebarWidth = config.sidebarWidth) !== null && _config_sidebarWidth !== void 0 ? _config_sidebarWidth : _constant__WEBPACK_IMPORTED_MODULE_12__.DEFAULT_SIDEBAR_WIDTH);\n const sideBarWidth = isMobileScreen ? \"100vw\" : \"\".concat(barWidth, \"px\");\n document.documentElement.style.setProperty(\"--sidebar-width\", sideBarWidth);\n }, [\n config.sidebarWidth,\n isMobileScreen,\n shouldNarrow\n ]);\n return {\n onDragStart,\n shouldNarrow\n };\n}\n_s1(useDragSideBar, \"9sAuy9Iv7h5+fcBNiGeE2YvGON8=\", false, function() {\n return [\n _store__WEBPACK_IMPORTED_MODULE_11__.useAppConfig,\n _utils__WEBPACK_IMPORTED_MODULE_13__.useMobileScreen\n ];\n});\nfunction SideBarContainer(props) {\n _s2();\n const isMobileScreen = (0,_utils__WEBPACK_IMPORTED_MODULE_13__.useMobileScreen)();\n const isIOSMobile = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_utils__WEBPACK_IMPORTED_MODULE_13__.isIOS)() && isMobileScreen, [\n isMobileScreen\n ]);\n const { children, className, onDragStart, shouldNarrow } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_16__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default().sidebar), className, {\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"narrow-sidebar\"])]: shouldNarrow\n }),\n style: {\n // #3016 disable transition on ios mobile screen\n transition: isMobileScreen && isIOSMobile ? \"none\" : undefined\n },\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-drag\"]),\n onPointerDown: (e)=>onDragStart(e),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_drag_svg__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 164,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 160,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 150,\n columnNumber: 5\n }, this);\n}\n_s2(SideBarContainer, \"G8svrsL9du90jZRzgR3EOvl9Bcg=\", false, function() {\n return [\n _utils__WEBPACK_IMPORTED_MODULE_13__.useMobileScreen\n ];\n});\n_c1 = SideBarContainer;\nfunction SideBarHeader(props) {\n const { title, subTitle, logo, children, shouldNarrow } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_16__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-header\"]), {\n [(_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-header-narrow\"])]: shouldNarrow\n }),\n \"data-tauri-drag-region\": true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 180,\n columnNumber: 7\n }, this),\n children\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 179,\n columnNumber: 5\n }, this);\n}\n_c2 = SideBarHeader;\nfunction SideBarBody(props) {\n const { onClick, children } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-body\"]),\n onClick: onClick,\n children: children\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 198,\n columnNumber: 5\n }, this);\n}\n_c3 = SideBarBody;\nfunction SideBarTail(props) {\n const { primaryAction, secondaryAction } = props;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-tail\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-actions\"]),\n children: primaryAction\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 212,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-actions\"]),\n children: secondaryAction\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 213,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 211,\n columnNumber: 5\n }, this);\n}\n_c4 = SideBarTail;\nfunction SideBar(props) {\n _s3();\n useHotKey();\n const { onDragStart, shouldNarrow } = useDragSideBar();\n const [showDiscoverySelector, setshowDiscoverySelector] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_19__.useNavigate)();\n const config = (0,_store__WEBPACK_IMPORTED_MODULE_11__.useAppConfig)();\n const chatStore = (0,_store__WEBPACK_IMPORTED_MODULE_11__.useChatStore)();\n const [mcpEnabled, setMcpEnabled] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // 检查 MCP 是否启用\n const checkMcpStatus = async ()=>{\n const enabled = await (0,_mcp_actions__WEBPACK_IMPORTED_MODULE_17__.isMcpEnabled)();\n setMcpEnabled(enabled);\n console.log(\"[SideBar] MCP enabled:\", enabled);\n };\n checkMcpStatus();\n }, []);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarContainer, {\n onDragStart: onDragStart,\n shouldNarrow: shouldNarrow,\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarHeader, {\n title: \"NextChat\",\n subTitle: \"Build your own AI assistant.\",\n logo: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_chatgpt_svg__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 246,\n columnNumber: 15\n }, void 0),\n shouldNarrow: shouldNarrow,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-header-bar\"]),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_mask_svg__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 251,\n columnNumber: 19\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Mask.Name,\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-bar-button\"]),\n onClick: ()=>{\n if (config.dontShowMaskSplashScreen !== true) {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_12__.Path.NewChat, {\n state: {\n fromHome: true\n }\n });\n } else {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_12__.Path.Masks, {\n state: {\n fromHome: true\n }\n });\n }\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 250,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 265,\n columnNumber: 25\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Home.NewChat,\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-bar-button\"]),\n onClick: ()=>{\n if (config.dontShowMaskSplashScreen) {\n chatStore.newSession();\n navigate(_constant__WEBPACK_IMPORTED_MODULE_12__.Path.Chat);\n } else {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_12__.Path.NewChat);\n }\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 264,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 249,\n columnNumber: 9\n }, this),\n showDiscoverySelector && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_lib__WEBPACK_IMPORTED_MODULE_15__.Selector, {\n items: [\n ...DISCOVERY.map((item)=>{\n return {\n title: item.name,\n value: item.path\n };\n })\n ],\n onClose: ()=>setshowDiscoverySelector(false),\n onSelection: (s)=>{\n navigate(s[0], {\n state: {\n fromHome: true\n }\n });\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 281,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 243,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarBody, {\n onClick: (e)=>{\n if (e.target === e.currentTarget) {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_12__.Path.Home);\n }\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ChatList, {\n narrow: shouldNarrow\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 304,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 297,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SideBarTail, {\n primaryAction: /*#__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)(\"div\", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_16__[\"default\"])((_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-action\"]), (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default().mobile)),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_delete_svg__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 311,\n columnNumber: 23\n }, void 0),\n onClick: async ()=>{\n if (await (0,_ui_lib__WEBPACK_IMPORTED_MODULE_15__.showConfirm)(_locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Home.DeleteChat)) {\n chatStore.deleteSession(chatStore.currentSessionIndex);\n }\n }\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 310,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 309,\n columnNumber: 13\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-action\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_router_dom__WEBPACK_IMPORTED_MODULE_20__.Link, {\n to: _constant__WEBPACK_IMPORTED_MODULE_12__.Path.Settings,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Settings.Title,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_settings_svg__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 323,\n columnNumber: 25\n }, void 0),\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 321,\n columnNumber: 17\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 320,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 319,\n columnNumber: 13\n }, void 0),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (_home_module_scss__WEBPACK_IMPORTED_MODULE_18___default()[\"sidebar-action\"]),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: _constant__WEBPACK_IMPORTED_MODULE_12__.REPO_URL,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n aria: _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Export.MessageFromChatGPT,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_github_svg__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 332,\n columnNumber: 25\n }, void 0),\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 330,\n columnNumber: 17\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 329,\n columnNumber: 15\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 328,\n columnNumber: 13\n }, void 0)\n ]\n }, void 0, true),\n secondaryAction: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_button__WEBPACK_IMPORTED_MODULE_2__.IconButton, {\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_icons_add_svg__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 341,\n columnNumber: 19\n }, void 0),\n text: shouldNarrow ? undefined : _locales__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Home.NewChat,\n onClick: ()=>{\n if (config.dontShowMaskSplashScreen) {\n chatStore.newSession();\n navigate(_constant__WEBPACK_IMPORTED_MODULE_12__.Path.Chat);\n } else {\n navigate(_constant__WEBPACK_IMPORTED_MODULE_12__.Path.NewChat);\n }\n },\n shadow: true\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 340,\n columnNumber: 11\n }, void 0)\n }, void 0, false, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 306,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"D:\\\\NextChatCD\\\\app\\\\components\\\\sidebar.tsx\",\n lineNumber: 238,\n columnNumber: 5\n }, this);\n}\n_s3(SideBar, \"iSaWbHwCifIibzferT/kPvTq2Ek=\", false, function() {\n return [\n useHotKey,\n useDragSideBar,\n react_router_dom__WEBPACK_IMPORTED_MODULE_19__.useNavigate,\n _store__WEBPACK_IMPORTED_MODULE_11__.useAppConfig,\n _store__WEBPACK_IMPORTED_MODULE_11__.useChatStore\n ];\n});\n_c5 = SideBar;\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"ChatList\");\n$RefreshReg$(_c1, \"SideBarContainer\");\n$RefreshReg$(_c2, \"SideBarHeader\");\n$RefreshReg$(_c3, \"SideBarBody\");\n$RefreshReg$(_c4, \"SideBarTail\");\n$RefreshReg$(_c5, \"SideBar\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9jb21wb25lbnRzL3NpZGViYXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQThFO0FBRXRDO0FBRUY7QUFDVztBQUNKO0FBQ0U7QUFDUjtBQUNNO0FBQ0o7QUFDQTtBQUVUO0FBRXNCO0FBU2pDO0FBRWdDO0FBQ0g7QUFDZjtBQUNjO0FBQ3pCO0FBQ3NCO0FBRTlDLE1BQU1pQyxZQUFZO0lBQ2hCO1FBQUVDLE1BQU1uQixpREFBTUEsQ0FBQ29CLE1BQU0sQ0FBQ0MsSUFBSTtRQUFFQyxNQUFNZiw0Q0FBSUEsQ0FBQ2dCLE9BQU87SUFBQztJQUMvQztRQUFFSixNQUFNO1FBQW9CRyxNQUFNZiw0Q0FBSUEsQ0FBQ2lCLEVBQUU7SUFBQztJQUMxQztRQUFFTCxNQUFNbkIsaURBQU1BLENBQUN5QixVQUFVLENBQUNDLElBQUksQ0FBQ0MsS0FBSztRQUFFTCxNQUFNZiw0Q0FBSUEsQ0FBQ2tCLFVBQVU7SUFBQztDQUM3RDtBQUVELE1BQU1HLFdBQVdmLHlEQUFPQSxDQUFDLFVBQVksQ0FBQyxNQUFNLHFOQUFvQixFQUFHZSxRQUFROzs7Ozs7SUFDekVDLFNBQVMsSUFBTTs7S0FEWEQ7QUFJQyxTQUFTRTs7SUFDZCxNQUFNQyxZQUFZN0IscURBQVlBO0lBRTlCZixnREFBU0EsQ0FBQztRQUNSLE1BQU02QyxZQUFZLENBQUNDO1lBQ2pCLElBQUlBLEVBQUVDLE1BQU0sSUFBSUQsRUFBRUUsT0FBTyxFQUFFO2dCQUN6QixJQUFJRixFQUFFRyxHQUFHLEtBQUssV0FBVztvQkFDdkJMLFVBQVVNLFdBQVcsQ0FBQyxDQUFDO2dCQUN6QixPQUFPLElBQUlKLEVBQUVHLEdBQUcsS0FBSyxhQUFhO29CQUNoQ0wsVUFBVU0sV0FBVyxDQUFDO2dCQUN4QjtZQUNGO1FBQ0Y7UUFFQUMsT0FBT0MsZ0JBQWdCLENBQUMsV0FBV1A7UUFDbkMsT0FBTyxJQUFNTSxPQUFPRSxtQkFBbUIsQ0FB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QTs7Ozs7b0JBQ2QyRyxNQUFNdEMsZUFBZWUsWUFBWWhGLGlEQUFNQSxDQUFDK0csSUFBSSxDQUFDTCxPQUFPO29CQUNwRGxCLFNBQVM7d0JBQ1AsSUFBSTFDLE9BQU8yRCx3QkFBd0IsRUFBRTs0QkFDbkMxRSxVQUFVaUYsVUFBVTs0QkFDcEJqQixTQUFTeEYsNENBQUlBLENBQUMwRyxJQUFJO3dCQUNwQixPQUFPOzRCQUNMbEIsU0FBU3hGLDRDQUFJQSxDQUFDbUcsT0FBTzt3QkFDdkI7b0JBQ0Y7b0JBQ0FJLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWxCO0lBM0lnQmxCOztRQUNkOUQ7UUFDc0NXO1FBRXJCL0IsMERBQVdBO1FBQ2JULGlEQUFZQTtRQUNUQyxpREFBWUE7OztNQU5oQjBGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9jb21wb25lbnRzL3NpZGViYXIudHN4PzNjMTciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaG9tZS5tb2R1bGUuc2Nzc1wiO1xyXG5cclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gXCIuL2J1dHRvblwiO1xyXG5pbXBvcnQgU2V0dGluZ3NJY29uIGZyb20gXCIuLi9pY29ucy9zZXR0aW5ncy5zdmdcIjtcclxuaW1wb3J0IEdpdGh1Ykljb24gZnJvbSBcIi4uL2ljb25zL2dpdGh1Yi5zdmdcIjtcclxuaW1wb3J0IENoYXRHcHRJY29uIGZyb20gXCIuLi9pY29ucy9jaGF0Z3B0LnN2Z1wiO1xyXG5pbXBvcnQgQWRkSWNvbiBmcm9tIFwiLi4vaWNvbnMvYWRkLnN2Z1wiO1xyXG5pbXBvcnQgRGVsZXRlSWNvbiBmcm9tIFwiLi4vaWNvbnMvZGVsZXRlLnN2Z1wiO1xyXG5pbXBvcnQgTWFza0ljb24gZnJvbSBcIi4uL2ljb25zL21hc2suc3ZnXCI7XHJcbmltcG9ydCBEcmFnSWNvbiBmcm9tIFwiLi4vaWNvbnMvZHJhZy5zdmdcIjtcclxuXHJcbmltcG9ydCBMb2NhbGUgZnJvbSBcIi4uL2xvY2FsZXNcIjtcclxuXHJcbmltcG9ydCB7IHVzZUFwcENvbmZpZywgdXNlQ2hhdFN0b3JlIH0gZnJvbSBcIi4uL3N0b3JlXCI7XHJcblxyXG5pbXBvcnQge1xyXG4gIERFRkFVTFRfU0lERUJBUl9XSURUSCxcclxuICBNQVhfU0lERUJBUl9XSURUSCxcclxuICBNSU5fU0lERUJBUl9XSURUSCxcclxuICBOQVJST1dfU0lERUJBUl9XSURUSCxcclxuICBQYXRoLFxyXG4gIFJFUE9fVVJMLFxyXG59IGZyb20gXCIuLi9jb25zdGFudFwiO1xyXG5cclxuaW1wb3J0IHsgTGluaywgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xyXG5pbXBvcnQgeyBpc0lPUywgdXNlTW9iaWxlU2NyZWVuIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcbmltcG9ydCBkeW5hbWljIGZyb20gXCJuZXh0L2R5bmFtaWNcIjtcclxuaW1wb3J0IHsgU2VsZWN0b3IsIHNob3dDb25maXJtIH0gZnJvbSBcIi4vdWktbGliXCI7XHJcbmltcG9ydCBjbHN4IGZyb20gXCJjbHN4XCI7XHJcbmltcG9ydCB7IGlzTWNwRW5hYmxlZCB9IGZyb20gXCIuLi9tY3AvYWN0aW9uc1wiO1xyXG5cclxuY29uc3QgRElTQ09WRVJZID0gW1xyXG4gIHsgbmFtZTogTG9jYWxlLlBsdWdpbi5OYW1lLCBwYXRoOiBQYXRoLlBsdWdpbnMgfSxcclxuICB7IG5hbWU6IFwiU3RhYmxlIERpZmZ1c2lvblwiLCBwYXRoOiBQYXRoLlNkIH0sXHJcbiAgeyBuYW1lOiBMb2NhbGUuU2VhcmNoQ2hhdC5QYWdlLlRpdGxlLCBwYXRoOiBQYXRoLlNlYXJjaENoYXQgfSxcclxuXTtcclxuXHJcbmNvbnN0IENoYXRMaXN0ID0gZHluYW1pYyhhc3luYyAoKSA9PiAoYXdhaXQgaW1wb3J0KFwiLi9jaGF0LWxpc3RcIikpLkNoYXRMaXN0LCB7XHJcbiAgbG9hZGluZzogKCkgPT4gbnVsbCxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXNlSG90S2V5KCkge1xyXG4gIGNvbnN0IGNoYXRTdG9yZSA9IHVzZUNoYXRTdG9yZSgpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qgb25LZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGUuYWx0S2V5IHx8IGUuY3RybEtleSkge1xyXG4gICAgICAgIGlmIChlLmtleSA9PT0gXCJBcnJvd1VwXCIpIHtcclxuICAgICAgICAgIGNoYXRTdG9yZS5uZXh0U2Vzc2lvbigtMSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xyXG4gICAgICAgICAgY2hhdFN0b3JlLm5leHRTZXNzaW9uKDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgb25LZXlEb3duKTtcclxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgb25LZXlEb3duKTtcclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVzZURyYWdTaWRlQmFyKCkge1xyXG4gIGNvbnN0IGxpbWl0ID0gKHg6IG51bWJlcikgPT4gTWF0aC5taW4oTUFYX1NJREVCQVJfV0lEVEgsIHgpO1xyXG5cclxuICBjb25zdCBjb25maWcgPSB1c2VBcHBDb25maWcoKTtcclxuICBjb25zdCBzdGFydFggPSB1c2VSZWYoMCk7XHJcbiAgY29uc3Qgc3RhcnREcmFnV2lkdGggPSB1c2VSZWYoY29uZmlnLnNpZGViYXJXaWR0aCA/PyBERUZBVUxUX1NJREVCQVJfV0lEVEgpO1xyXG4gIGNvbnN0IGxhc3RVcGRhdGVUaW1lID0gdXNlUmVmKERhdGUubm93KCkpO1xyXG5cclxuICBjb25zdCB0b2dnbGVTaWRlQmFyID0gKCkgPT4ge1xyXG4gICAgY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiB7XHJcbiAgICAgIGlmIChjb25maWcuc2lkZWJhcldpZHRoIDwgTUlOX1NJREVCQVJfV0lEVEgpIHtcclxuICAgICAgICBjb25maWcuc2lkZWJhcldpZHRoID0gREVGQVVMVF9TSURFQkFSX1dJRFRIO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbmZpZy5zaWRlYmFyV2lkdGggPSBOQVJST1dfU0lERUJBUl9XSURUSDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgb25EcmFnU3RhcnQgPSAoZTogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgLy8gUmVtZW1iZXJzIHRoZSBpbml0aWFsIHdpZHRoIGVhY2ggdGltZSB0aGUgbW91c2UgaXMgcHJlc3NlZFxyXG4gICAgc3RhcnRYLmN1cnJlbnQgPSBlLmNsaWVudFg7XHJcbiAgICBzdGFydERyYWdXaWR0aC5jdXJyZW50ID0gY29uZmlnLnNpZGViYXJXaWR0aDtcclxuICAgIGNvbnN0IGRyYWdTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xyXG5cclxuICAgIGNvbnN0IGhhbmRsZURyYWdNb3ZlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgICAgaWYgKERhdGUubm93KCkgPCBsYXN0VXBkYXRlVGltZS5jdXJyZW50ICsgMjApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgbGFzdFVwZGF0ZVRpbWUuY3VycmVudCA9IERhdGUubm93KCk7XHJcbiAgICAgIGNvbnN0IGQgPSBlLmNsaWVudFggLSBzdGFydFguY3VycmVudDtcclxuICAgICAgY29uc3QgbmV4dFdpZHRoID0gbGltaXQoc3RhcnREcmFnV2lkdGguY3VycmVudCArIGQpO1xyXG4gICAgICBjb25maWcudXBkYXRlKChjb25maWcpID0+IHtcclxuICAgICAgICBpZiAobmV4dFdpZHRoIDwgTUlOX1NJREVCQVJfV0lEVEgpIHtcclxuICAgICAgICAgIGNvbmZpZy5zaWRlYmFyV2lkdGggPSBOQVJST1dfU0lERUJBUl9XSURUSDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uZmlnLnNpZGViYXJXaWR0aCA9IG5leHRXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBoYW5kbGVEcmFnRW5kID0gKCkgPT4ge1xyXG4gICAgICAvLyBJbiB1c2VSZWYgdGhlIGRhdGEgaXMgbm9uLXJlc3BvbnNpdmUsIHNvIGBjb25maWcuc2lkZWJhcldpZHRoYCBjYW4ndCBnZXQgdGhlIGR5bmFtaWMgc2lkZWJhcldpZHRoXHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIiwgaGFuZGxlRHJhZ01vdmUpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLCBoYW5kbGVEcmFnRW5kKTtcclxuXHJcbiAgICAgIC8vIGlmIHVzZXIgY2xpY2sgdGhlIGRyYWcgaWNvbiwgc2hvdWxkIHRvZ2dsZSB0aGUgc2lkZWJhclxyXG4gICAgICBjb25zdCBzaG91bGRGaXJlQ2xpY2sgPSBEYXRlLm5vdygpIC0gZHJhZ1N0YXJ0VGltZSA8IDMwMDtcclxuICAgICAgaWYgKHNob3VsZEZpcmVDbGljaykge1xyXG4gICAgICAgIHRvZ2dsZVNpZGVCYXIoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsIGhhbmRsZURyYWdNb3ZlKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsIGhhbmRsZURyYWdFbmQpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGlzTW9iaWxlU2NyZWVuID0gdXNlTW9iaWxlU2NyZWVuKCk7XHJcbiAgY29uc3Qgc2hvdWxkTmFycm93ID1cclxuICAgICFpc01vYmlsZVNjcmVlbiAmJiBjb25maWcuc2lkZWJhcldpZHRoIDwgTUlOX1NJREVCQVJfV0lEVEg7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBiYXJXaWR0aCA9IHNob3VsZE5hcnJvd1xyXG4gICAgICA/IE5BUlJPV19TSURFQkFSX1dJRFRIXHJcbiAgICAgIDogbGltaXQoY29uZmlnLnNpZGViYXJXaWR0aCA/PyBERUZBVUxUX1NJREVCQVJfV0lEVEgpO1xyXG4gICAgY29uc3Qgc2lkZUJhcldpZHRoID0gaXNNb2JpbGVTY3JlZW4gPyBcIjEwMHZ3XCIgOiBgJHtiYXJXaWR0aH1weGA7XHJcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCItLXNpZGViYXItd2lkdGhcIiwgc2lkZUJhcldpZHRoKTtcclxuICB9LCBbY29uZmlnLnNpZGViYXJXaWR0aCwgaXNNb2JpbGVTY3JlZW4sIHNob3VsZE5hcnJvd10pO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgb25EcmFnU3RhcnQsXHJcbiAgICBzaG91bGROYXJyb3csXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNpZGVCYXJDb250YWluZXIocHJvcHM6IHtcclxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uRHJhZ1N0YXJ0OiAoZTogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuICBzaG91bGROYXJyb3c6IGJvb2xlYW47XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG59KSB7XHJcbiAgY29uc3QgaXNNb2JpbGVTY3JlZW4gPSB1c2VNb2JpbGVTY3JlZW4oKTtcclxuICBjb25zdCBpc0lPU01vYmlsZSA9IHVzZU1lbW8oXHJcbiAgICAoKSA9PiBpc0lPUygpICYmIGlzTW9iaWxlU2NyZWVuLFxyXG4gICAgW2lzTW9iaWxlU2NyZWVuXSxcclxuICApO1xyXG4gIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgb25EcmFnU3RhcnQsIHNob3VsZE5hcnJvdyB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3NOYW1lPXtjbHN4KHN0eWxlcy5zaWRlYmFyLCBjbGFzc05hbWUsIHtcclxuICAgICAgICBbc3R5bGVzW1wibmFycm93LXNpZGViYXJcIl1dOiBzaG91bGROYXJyb3csXHJcbiAgICAgIH0pfVxyXG4gICAgICBzdHlsZT17e1xyXG4gICAgICAgIC8vICMzMDE2IGRpc2FibGUgdHJhbnNpdGlvbiBvbiBpb3MgbW9iaWxlIHNjcmVlblxyXG4gICAgICAgIHRyYW5zaXRpb246IGlzTW9iaWxlU2NyZWVuICYmIGlzSU9TTW9iaWxlID8gXCJub25lXCIgOiB1bmRlZmluZWQsXHJcbiAgICAgIH19XHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci1kcmFnXCJdfVxyXG4gICAgICAgIG9uUG9pbnRlckRvd249eyhlKSA9PiBvbkRyYWdTdGFydChlIGFzIGFueSl9XHJcbiAgICAgID5cclxuICAgICAgICA8RHJhZ0ljb24gLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2lkZUJhckhlYWRlcihwcm9wczoge1xyXG4gIHRpdGxlPzogc3RyaW5nIHwgUmVhY3QuUmVhY3ROb2RlO1xyXG4gIHN1YlRpdGxlPzogc3RyaW5nIHwgUmVhY3QuUmVhY3ROb2RlO1xyXG4gIGxvZ28/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgc2hvdWxkTmFycm93PzogYm9vbGVhbjtcclxufSkge1xyXG4gIGNvbnN0IHsgdGl0bGUsIHN1YlRpdGxlLCBsb2dvLCBjaGlsZHJlbiwgc2hvdWxkTmFycm93IH0gPSBwcm9wcztcclxuICByZXR1cm4gKFxyXG4gICAgPEZyYWdtZW50PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHN4KHN0eWxlc1tcInNpZGViYXItaGVhZGVyXCJdLCB7XHJcbiAgICAgICAgICBbc3R5bGVzW1wic2lkZWJhci1oZWFkZXItbmFycm93XCJdXTogc2hvdWxkTmFycm93LFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIGRhdGEtdGF1cmktZHJhZy1yZWdpb25cclxuICAgICAgPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9GcmFnbWVudD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2lkZUJhckJvZHkocHJvcHM6IHtcclxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uQ2xpY2s/OiAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudCwgTW91c2VFdmVudD4pID0+IHZvaWQ7XHJcbn0pIHtcclxuICBjb25zdCB7IG9uQ2xpY2ssIGNoaWxkcmVuIH0gPSBwcm9wcztcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYm9keVwiXX0gb25DbGljaz17b25DbGlja30+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTaWRlQmFyVGFpbChwcm9wczoge1xyXG4gIHByaW1hcnlBY3Rpb24/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgc2Vjb25kYXJ5QWN0aW9uPzogUmVhY3QuUmVhY3ROb2RlO1xyXG59KSB7XHJcbiAgY29uc3QgeyBwcmltYXJ5QWN0aW9uLCBzZWNvbmRhcnlBY3Rpb24gfSA9IHByb3BzO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItdGFpbFwiXX0+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWFjdGlvbnNcIl19PntwcmltYXJ5QWN0aW9ufTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci1hY3Rpb25zXCJdfT57c2Vjb25kYXJ5QWN0aW9ufTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNpZGVCYXIocHJvcHM6IHsgY2xhc3NOYW1lPzogc3RyaW5nIH0pIHtcclxuICB1c2VIb3RLZXkoKTtcclxuICBjb25zdCB7IG9uRHJhZ1N0YXJ0LCBzaG91bGROYXJyb3cgfSA9IHVzZURyYWdTaWRlQmFyKCk7XHJcbiAgY29uc3QgW3Nob3dEaXNjb3ZlcnlTZWxlY3Rvciwgc2V0c2hvd0Rpc2NvdmVyeVNlbGVjdG9yXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XHJcbiAgY29uc3QgY29uZmlnID0gdXNlQXBwQ29uZmlnKCk7XHJcbiAgY29uc3QgY2hhdFN0b3JlID0gdXNlQ2hhdFN0b3JlKCk7XHJcbiAgY29uc3QgW21jcEVuYWJsZWQsIHNldE1jcEVuYWJsZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgLy8g5qOA5p+lIE1DUCDmmK/lkKblkK/nlKhcclxuICAgIGNvbnN0IGNoZWNrTWNwU3RhdHVzID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCBlbmFibGVkID0gYXdhaXQgaXNNY3BFbmFibGVkKCk7XHJcbiAgICAgIHNldE1jcEVuYWJsZWQoZW5hYmxlZCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiW1NpZGVCYXJdIE1DUCBlbmFibGVkOlwiLCBlbmFibGVkKTtcclxuICAgIH07XHJcbiAgICBjaGVja01jcFN0YXR1cygpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxTaWRlQmFyQ29udGFpbmVyXHJcbiAgICAgIG9uRHJhZ1N0YXJ0PXtvbkRyYWdTdGFydH1cclxuICAgICAgc2hvdWxkTmFycm93PXtzaG91bGROYXJyb3d9XHJcbiAgICAgIHsuLi5wcm9wc31cclxuICAgID5cclxuICAgICAgPFNpZGVCYXJIZWFkZXJcclxuICAgICAgICB0aXRsZT1cIk5leHRDaGF0XCJcclxuICAgICAgICBzdWJUaXRsZT1cIkJ1aWxkIHlvdXIgb3duIEFJIGFzc2lzdGFudC5cIlxyXG4gICAgICAgIGxvZ289ezxDaGF0R3B0SWNvbiAvPn1cclxuICAgICAgICBzaG91bGROYXJyb3c9e3Nob3VsZE5hcnJvd31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWhlYWRlci1iYXJcIl19PlxyXG4gICAgICAgICAgPEljb25CdXR0b25cclxuICAgICAgICAgICAgaWNvbj17PE1hc2tJY29uIC8+fVxyXG4gICAgICAgICAgICB0ZXh0PXtzaG91bGROYXJyb3cgPyB1bmRlZmluZWQgOiBMb2NhbGUuTWFzay5OYW1lfVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcInNpZGViYXItYmFyLWJ1dHRvblwiXX1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChjb25maWcuZG9udFNob3dNYXNrU3BsYXNoU2NyZWVuICE9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZShQYXRoLk5ld0NoYXQsIHsgc3RhdGU6IHsgZnJvbUhvbWU6IHRydWUgfSB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbmF2aWdhdGUoUGF0aC5NYXNrcywgeyBzdGF0ZTogeyBmcm9tSG9tZTogdHJ1ZSB9IH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAgeyhcclxuICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8QWRkSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgdGV4dD17c2hvdWxkTmFycm93ID8gdW5kZWZpbmVkIDogTG9jYWxlLkhvbWUuTmV3Q2hhdH1cclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWJhci1idXR0b25cIl19XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmRvbnRTaG93TWFza1NwbGFzaFNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2hhdFN0b3JlLm5ld1Nlc3Npb24oKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlKFBhdGguQ2hhdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlKFBhdGguTmV3Q2hhdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICBzaGFkb3dcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7c2hvd0Rpc2NvdmVyeVNlbGVjdG9yICYmIChcclxuICAgICAgICAgIDxTZWxlY3RvclxyXG4gICAgICAgICAgICBpdGVtcz17W1xyXG4gICAgICAgICAgICAgIC4uLkRJU0NPVkVSWS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnBhdGgsXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBdfVxyXG4gICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRzaG93RGlzY292ZXJ5U2VsZWN0b3IoZmFsc2UpfVxyXG4gICAgICAgICAgICBvblNlbGVjdGlvbj17KHMpID0+IHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0ZShzWzBdLCB7IHN0YXRlOiB7IGZyb21Ib21lOiB0cnVlIH0gfSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvU2lkZUJhckhlYWRlcj5cclxuICAgICAgPFNpZGVCYXJCb2R5XHJcbiAgICAgICAgb25DbGljaz17KGUpID0+IHtcclxuICAgICAgICAgIGlmIChlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIG5hdmlnYXRlKFBhdGguSG9tZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxDaGF0TGlzdCBuYXJyb3c9e3Nob3VsZE5hcnJvd30gLz5cclxuICAgICAgPC9TaWRlQmFyQm9keT5cclxuICAgICAgPFNpZGVCYXJUYWlsXHJcbiAgICAgICAgcHJpbWFyeUFjdGlvbj17XHJcbiAgICAgICAgICA8PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzeChzdHlsZXNbXCJzaWRlYmFyLWFjdGlvblwiXSwgc3R5bGVzLm1vYmlsZSl9PlxyXG4gICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICBpY29uPXs8RGVsZXRlSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2FzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGF3YWl0IHNob3dDb25maXJtKExvY2FsZS5Ib21lLkRlbGV0ZUNoYXQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhdFN0b3JlLmRlbGV0ZVNlc3Npb24oY2hhdFN0b3JlLmN1cnJlbnRTZXNzaW9uSW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2lkZWJhci1hY3Rpb25cIl19PlxyXG4gICAgICAgICAgICAgIDxMaW5rIHRvPXtQYXRoLlNldHRpbmdzfT5cclxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5TZXR0aW5ncy5UaXRsZX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PFNldHRpbmdzSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvTGluaz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzaWRlYmFyLWFjdGlvblwiXX0+XHJcbiAgICAgICAgICAgICAgPGEgaHJlZj17UkVQT19VUkx9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cclxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGFyaWE9e0xvY2FsZS5FeHBvcnQuTWVzc2FnZUZyb21DaGF0R1BUfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8R2l0aHViSWNvbiAvPn1cclxuICAgICAgICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICB9XHJcbiAgICAgICAgc2Vjb25kYXJ5QWN0aW9uPXtcclxuICAgICAgICAgIDxJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIGljb249ezxBZGRJY29uIC8+fVxyXG4gICAgICAgICAgICB0ZXh0PXtzaG91bGROYXJyb3cgPyB1bmRlZmluZWQgOiBMb2NhbGUuSG9tZS5OZXdDaGF0fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGNvbmZpZy5kb250U2hvd01hc2tTcGxhc2hTY3JlZW4pIHtcclxuICAgICAgICAgICAgICAgIGNoYXRTdG9yZS5uZXdTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZShQYXRoLkNoYXQpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZShQYXRoLk5ld0NoYXQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgc2hhZG93XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgICAgLz5cclxuICAgIDwvU2lkZUJhckNvbnRhaW5lcj5cclxuICApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIkZyYWdtZW50IiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwic3R5bGVzIiwiSWNvbkJ1dHRvbiIsIlNldHRpbmdzSWNvbiIsIkdpdGh1Ykljb24iLCJDaGF0R3B0SWNvbiIsIkFkZEljb24iLCJEZWxldGVJY29uIiwiTWFza0ljb24iLCJEcmFnSWNvbiIsIkxvY2FsZSIsInVzZUFwcENvbmZpZyIsInVzZUNoYXRTdG9yZSIsIkRFRkFVTFRfU0lERUJBUl9XSURUSCIsIk1BWF9TSURFQkFSX1dJRFRIIiwiTUlOX1NJREVCQVJfV0lEVEgiLCJOQVJST1dfU0lERUJBUl9XSURUSCIsIlBhdGgiLCJSRVBPX1VSTCIsIkxpbmsiLCJ1c2VOYXZpZ2F0ZSIsImlzSU9TIiwidXNlTW9iaWxlU2NyZWVuIiwiZHluYW1pYyIsIlNlbGVjdG9yIiwic2hvd0NvbmZpcm0iLCJjbHN4IiwiaXNNY3BFbmFibGVkIiwiRElTQ09WRVJZIiwibmFtZSIsIlBsdWdpbiIsIk5hbWUiLCJwYXRoIiwiUGx1Z2lucyIsIlNkIiwiU2VhcmNoQ2hhdCIsIlBhZ2UiLCJUaXRsZSIsIkNoYXRMaXN0IiwibG9hZGluZyIsInVzZUhvdEtleSIsImNoYXRTdG9yZSIsIm9uS2V5RG93biIsImUiLCJhbHRLZXkiLCJjdHJsS2V5Iiwia2V5IiwibmV4dFNlc3Npb24iLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInVzZURyYWdTaWRlQmFyIiwibGltaXQiLCJ4IiwiTWF0aCIsIm1pbiIsImNvbmZpZyIsInN0YXJ0WCIsInN0YXJ0RHJhZ1dpZHRoIiwic2lkZWJhcldpZHRoIiwibGFzdFVwZGF0ZVRpbWUiLCJEYXRlIiwibm93IiwidG9nZ2xlU2lkZUJhciIsInVwZGF0ZSIsIm9uRHJhZ1N0YXJ0IiwiY3VycmVudCIsImNsaWVudFgiLCJkcmFnU3RhcnRUaW1lIiwiaGFuZGxlRHJhZ01vdmUiLCJkIiwibmV4dFdpZHRoIiwiaGFuZGxlRHJhZ0VuZCIsInNob3VsZEZpcmVDbGljayIsImlzTW9iaWxlU2NyZWVuIiwic2hvdWxkTmFycm93IiwiYmFyV2lkdGgiLCJzaWRlQmFyV2lkdGgiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInN0eWxlIiwic2V0UHJvcGVydHkiLCJTaWRlQmFyQ29udGFpbmVyIiwicHJvcHMiLCJpc0lPU01vYmlsZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGl2Iiwic2lkZWJhciIsInRyYW5zaXRpb24iLCJ1bmRlZmluZWQiLCJvblBvaW50ZXJEb3duIiwiU2lkZUJhckhlYWRlciIsInRpdGxlIiwic3ViVGl0bGUiLCJsb2dvIiwiZGF0YS10YXVyaS1kcmFnLXJlZ2lvbiIsIlNpZGVCYXJCb2R5Iiwib25DbGljayIsIlNpZGVCYXJUYWlsIiwicHJpbWFyeUFjdGlvbiIsInNlY29uZGFyeUFjdGlvbiIsIlNpZGVCYXIiLCJzaG93RGlzY292ZXJ5U2VsZWN0b3IiLCJzZXRzaG93RGlzY292ZXJ5U2VsZWN0b3IiLCJuYXZpZ2F0ZSIsIm1jcEVuYWJsZWQiLCJzZXRNY3BFbmFibGVkIiwiY2hlY2tNY3BTdGF0dXMiLCJlbmFibGVkIiwiY29uc29sZSIsImxvZyIsImljb24iLCJ0ZXh0IiwiTWFzayIsImRvbnRTaG93TWFza1NwbGFzaFNjcmVlbiIsIk5ld0NoYXQiLCJzdGF0ZSIsImZyb21Ib21lIiwiTWFza3MiLCJzaGFkb3ciLCJIb21lIiwibmV3U2Vzc2lvbiIsIkNoYXQiLCJpdGVtcyIsIm1hcCIsIml0ZW0iLCJ2YWx1ZSIsIm9uQ2xvc2UiLCJvblNlbGVjdGlvbiIsInMiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwibmFycm93IiwibW9iaWxlIiwiRGVsZXRlQ2hhdCIsImRlbGV0ZVNlc3Npb24iLCJjdXJyZW50U2Vzc2lvbkluZGV4IiwidG8iLCJTZXR0aW5ncyIsImFyaWEiLCJhIiwiaHJlZiIsInJlbCIsIkV4cG9ydCIsIk1lc3NhZ2VGcm9tQ2hhdEdQVCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/components/sidebar.tsx\n"));
/***/ })
});