Files
Webklar.com/.next/static/webpack/app/layout.328f8d00e2aaeeb0.hot-update.js
ANDJ 76791391d8 Prototyp fur die Navigationsleiste
Kleine anpassuungen Handy Ansicht
2025-12-14 17:27:12 +01:00

32 lines
41 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/layout",{
/***/ "(app-pages-browser)/./app/globals.css":
/*!*************************!*\
!*** ./app/globals.css ***!
\*************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"482e5d28734b\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzP2E3YzgiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI0ODJlNWQyODczNGJcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
/***/ }),
/***/ "(app-pages-browser)/./components/HandyAnsicht.tsx":
/*!*************************************!*\
!*** ./components/HandyAnsicht.tsx ***!
\*************************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\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 _HandyAnsicht_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HandyAnsicht.css */ \"(app-pages-browser)/./components/HandyAnsicht.css\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$(), _s1 = $RefreshSig$();\n\n\nconst GooeyNav = (param)=>{\n let { items, animationTime = 600, particleCount = 15, particleDistances = [\n 90,\n 10\n ], particleR = 100, timeVariance = 300, colors = [\n 1,\n 2,\n 3,\n 1,\n 2,\n 3,\n 1,\n 4\n ], initialActiveIndex = 0 } = param;\n _s();\n const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const navRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const filterRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const textRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [activeIndex, setActiveIndex] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(initialActiveIndex);\n const noise = function() {\n let n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1;\n return n / 2 - Math.random() * n;\n };\n const getXY = (distance, pointIndex, totalPoints)=>{\n const angle = (360 + noise(8)) / totalPoints * pointIndex * (Math.PI / 180);\n return [\n distance * Math.cos(angle),\n distance * Math.sin(angle)\n ];\n };\n const createParticle = (i, t, d, r)=>{\n const rotate = noise(r / 10);\n return {\n start: getXY(d[0], particleCount - i, particleCount),\n end: getXY(d[1] + noise(7), particleCount - i, particleCount),\n time: t,\n scale: 1 + noise(0.2),\n color: colors[Math.floor(Math.random() * colors.length)],\n rotate: rotate > 0 ? (rotate + r / 20) * 10 : (rotate - r / 20) * 10\n };\n };\n const makeParticles = (element)=>{\n const d = particleDistances;\n const r = particleR;\n const bubbleTime = animationTime * 2 + timeVariance;\n element.style.setProperty(\"--time\", \"\".concat(bubbleTime, \"ms\"));\n for(let i = 0; i < particleCount; i += 1){\n const t = animationTime * 2 + noise(timeVariance * 2);\n const p = createParticle(i, t, d, r);\n element.classList.remove(\"active\");\n setTimeout(()=>{\n const particle = document.createElement(\"span\");\n const point = document.createElement(\"span\");\n particle.classList.add(\"particle\");\n particle.style.setProperty(\"--start-x\", \"\".concat(p.start[0], \"px\"));\n particle.style.setProperty(\"--start-y\", \"\".concat(p.start[1], \"px\"));\n particle.style.setProperty(\"--end-x\", \"\".concat(p.end[0], \"px\"));\n particle.style.setProperty(\"--end-y\", \"\".concat(p.end[1], \"px\"));\n particle.style.setProperty(\"--time\", \"\".concat(p.time, \"ms\"));\n particle.style.setProperty(\"--scale\", \"\".concat(p.scale));\n particle.style.setProperty(\"--color\", \"var(--color-\".concat(p.color, \", white)\"));\n particle.style.setProperty(\"--rotate\", \"\".concat(p.rotate, \"deg\"));\n point.classList.add(\"point\");\n particle.appendChild(point);\n element.appendChild(particle);\n requestAnimationFrame(()=>element.classList.add(\"active\"));\n setTimeout(()=>{\n try {\n element.removeChild(particle);\n } catch (e) {\n /* ignore removal errors */ }\n }, t);\n }, 30);\n }\n };\n const updateEffectPosition = (element)=>{\n if (!containerRef.current || !filterRef.current || !textRef.current) return;\n const containerRect = containerRef.current.getBoundingClientRect();\n const pos = element.getBoundingClientRect();\n const styles = {\n left: \"\".concat(pos.x - containerRect.x, \"px\"),\n top: \"\".concat(pos.y - containerRect.y, \"px\"),\n width: \"\".concat(pos.width, \"px\"),\n height: \"\".concat(pos.height, \"px\")\n };\n Object.assign(filterRef.current.style, styles);\n Object.assign(textRef.current.style, styles);\n textRef.current.innerText = element.innerText;\n };\n const handleClick = (e, index)=>{\n const liEl = e.currentTarget.parentElement;\n if (!liEl || activeIndex === index) return;\n setActiveIndex(index);\n updateEffectPosition(liEl);\n if (filterRef.current) {\n const particles = filterRef.current.querySelectorAll(\".particle\");\n particles.forEach((p)=>{\n var _filterRef_current;\n return (_filterRef_current = filterRef.current) === null || _filterRef_current === void 0 ? void 0 : _filterRef_current.removeChild(p);\n });\n }\n if (textRef.current) {\n textRef.current.classList.remove(\"active\");\n void textRef.current.offsetWidth; // force reflow\n textRef.current.classList.add(\"active\");\n }\n if (filterRef.current) {\n makeParticles(filterRef.current);\n }\n };\n const handleKeyDown = (e, index)=>{\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n const liEl = e.currentTarget.parentElement;\n if (liEl) {\n handleClick({\n currentTarget: e.currentTarget,\n preventDefault: ()=>{}\n }, index);\n }\n }\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!navRef.current || !containerRef.current) return;\n const activeLi = navRef.current.querySelectorAll(\"li\")[activeIndex];\n if (activeLi) {\n var _textRef_current;\n updateEffectPosition(activeLi);\n (_textRef_current = textRef.current) === null || _textRef_current === void 0 ? void 0 : _textRef_current.classList.add(\"active\");\n }\n const resizeObserver = new ResizeObserver(()=>{\n var _navRef_current;\n const currentActiveLi = (_navRef_current = navRef.current) === null || _navRef_current === void 0 ? void 0 : _navRef_current.querySelectorAll(\"li\")[activeIndex];\n if (currentActiveLi) {\n updateEffectPosition(currentActiveLi);\n }\n });\n resizeObserver.observe(containerRef.current);\n return ()=>resizeObserver.disconnect();\n }, [\n activeIndex\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"gooey-nav-container\",\n ref: containerRef,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n ref: navRef,\n children: items.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: activeIndex === index ? \"active\" : \"\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: item.href,\n onClick: (e)=>handleClick(e, index),\n onKeyDown: (e)=>handleKeyDown(e, index),\n children: item.label\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 173,\n columnNumber: 15\n }, undefined)\n }, item.href, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 172,\n columnNumber: 13\n }, undefined))\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 170,\n columnNumber: 9\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 169,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"effect filter\",\n ref: filterRef\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 184,\n columnNumber: 7\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"effect text\",\n ref: textRef\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 185,\n columnNumber: 7\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 168,\n columnNumber: 5\n }, undefined);\n};\n_s(GooeyNav, \"q8egYqNxX0HAskGPquyzqhCBCuo=\");\n_c = GooeyNav;\nconst gooeyItems = [\n {\n label: \"\\xdcber uns\",\n href: \"#about\"\n },\n {\n label: \"Leistungen\",\n href: \"#services\"\n },\n {\n label: \"Abl\\xe4ufe\",\n href: \"#process\"\n }\n];\nconst HandyAnsicht = (param)=>{\n let { children } = param;\n _s1();\n const [isMobile, setIsMobile] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isClient, setIsClient] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n setIsClient(true);\n const checkMobile = ()=>{\n setIsMobile(window.innerWidth < 768);\n };\n checkMobile();\n window.addEventListener(\"resize\", checkMobile);\n const mediaQuery = window.matchMedia(\"(max-width: 767px)\");\n const handleMediaChange = (e)=>{\n setIsMobile(e.matches);\n };\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener(\"change\", handleMediaChange);\n } else {\n mediaQuery.addListener(handleMediaChange);\n }\n handleMediaChange(mediaQuery);\n return ()=>{\n window.removeEventListener(\"resize\", checkMobile);\n if (mediaQuery.removeEventListener) {\n mediaQuery.removeEventListener(\"change\", handleMediaChange);\n } else {\n mediaQuery.removeListener(handleMediaChange);\n }\n };\n }, []);\n if (!isClient || !isMobile) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: children\n }, void 0, false);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"handy-ansicht\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"handy-ansicht__container\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"handy-ansicht__nav-wrapper\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(GooeyNav, {\n items: gooeyItems\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 242,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 241,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"handy-ansicht__content\",\n children: children\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 244,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 240,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\andre\\\\Documents\\\\GitHub\\\\Webklar.com\\\\components\\\\HandyAnsicht.tsx\",\n lineNumber: 239,\n columnNumber: 5\n }, undefined);\n};\n_s1(HandyAnsicht, \"rpQEp95HQTIg2fBwW6c48+sPO2Y=\");\n_c1 = HandyAnsicht;\n/* harmony default export */ __webpack_exports__[\"default\"] = (HandyAnsicht);\nvar _c, _c1;\n$RefreshReg$(_c, \"GooeyNav\");\n$RefreshReg$(_c1, \"HandyAnsicht\");\n\n\n;\r\n // Wrapped in an IIFE to avoid polluting the global scope\r\n ;\r\n (function () {\r\n var _a, _b;\r\n // Legacy CSS implementations will `eval` browser code in a Node.js context\r\n // to extract CSS. For backwards compatibility, we need to check we're in a\r\n // browser context before continuing.\r\n if (typeof self !== 'undefined' &&\r\n // AMP / No-JS mode does not inject these helpers:\r\n '$RefreshHelpers$' in self) {\r\n // @ts-ignore __webpack_module__ is global\r\n var currentExports = module.exports;\r\n // @ts-ignore __webpack_module__ is global\r\n var prevExports = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevExports) !== null && _b !== void 0 ? _b : null;\r\n // This cannot happen in MainTemplate because the exports mismatch between\r\n // templating and execution.\r\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\r\n // A module can be accepted automatically based on its exports, e.g. when\r\n // it is a Refresh Boundary.\r\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\r\n // Save the previous exports on update so we can compare the boundary\r\n // signatures.\r\n module.hot.dispose(function (data) {\r\n data.prevExports = currentExports;\r\n });\r\n // Unconditionally accept an update to this module, we'll check if it's\r\n // still a Refresh Boundary later.\r\n // @ts-ignore importMeta is replaced in the loader\r\n module.hot.accept();\r\n // This field is set when the previous version of this module was a\r\n // Refresh Boundary, letting us know we need to check for invalidation or\r\n // enqueue an update.\r\n if (prevExports !== null) {\r\n // A boundary can become ineligible if its exports are incompatible\r\n // with the previous exports.\r\n //\r\n // For example, if you add/remove/change exports, we'll want to\r\n // re-execute the importing modules, and force those components to\r\n // re-render. Similarly, if you convert a class component to a\r\n // function, we want to invalidate the boundary.\r\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevExports, currentExports)) {\r\n module.hot.invalidate();\r\n }\r\n else {\r\n self.$RefreshHelpers$.scheduleUpdate();\r\n }\r\n }\r\n }\r\n else {\r\n // Since we just executed the code for the module, it's possible that the\r\n // new exports made it ineligible for being a boundary.\r\n // We only care about the case when we were _previously_ a boundary,\r\n // because we already accepted this update (accidental side effect).\r\n var isNoLongerABoundary = prevExports !== null;\r\n if (isNoLongerABoundary) {\r\n module.hot.invalidate();\r\n }\r\n }\r\n }\r\n })();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvSGFuZHlBbnNpY2h0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRTJEO0FBQy9CO0FBc0I1QixNQUFNSSxXQUFvQztRQUFDLEVBQ3pDQyxLQUFLLEVBQ0xDLGdCQUFnQixHQUFHLEVBQ25CQyxnQkFBZ0IsRUFBRSxFQUNsQkMsb0JBQW9CO1FBQUM7UUFBSTtLQUFHLEVBQzVCQyxZQUFZLEdBQUcsRUFDZkMsZUFBZSxHQUFHLEVBQ2xCQyxTQUFTO1FBQUM7UUFBRztRQUFHO1FBQUc7UUFBRztRQUFHO1FBQUc7UUFBRztLQUFFLEVBQ2pDQyxxQkFBcUIsQ0FBQyxFQUN2Qjs7SUFDQyxNQUFNQyxlQUFlViw2Q0FBTUEsQ0FBd0I7SUFDbkQsTUFBTVcsU0FBU1gsNkNBQU1BLENBQTBCO0lBQy9DLE1BQU1ZLFlBQVlaLDZDQUFNQSxDQUF5QjtJQUNqRCxNQUFNYSxVQUFVYiw2Q0FBTUEsQ0FBeUI7SUFDL0MsTUFBTSxDQUFDYyxhQUFhQyxlQUFlLEdBQUdqQiwrQ0FBUUEsQ0FBQ1c7SUFFL0MsTUFBTU8sUUFBUTtZQUFDQyxxRUFBSTtlQUFNQSxJQUFJLElBQUlDLEtBQUtDLE1BQU0sS0FBS0Y7SUFBQUE7SUFFakQsTUFBTUcsUUFBUSxDQUFDQyxVQUFrQkMsWUFBb0JDO1FBQ25ELE1BQU1DLFFBQVEsQ0FBRSxNQUFNUixNQUFNLEVBQUMsSUFBS08sY0FBZUQsYUFBY0osQ0FBQUEsS0FBS08sRUFBRSxHQUFHLEdBQUU7UUFDM0UsT0FBTztZQUFDSixXQUFXSCxLQUFLUSxHQUFHLENBQUNGO1lBQVFILFdBQVdILEtBQUtTLEdBQUcsQ0FBQ0g7U0FBTztJQUNqRTtJQUVBLE1BQU1JLGlCQUFpQixDQUFDQyxHQUFXQyxHQUFXQyxHQUFxQkM7UUFDakUsTUFBTUMsU0FBU2pCLE1BQU1nQixJQUFJO1FBQ3pCLE9BQU87WUFDTEUsT0FBT2QsTUFBTVcsQ0FBQyxDQUFDLEVBQUUsRUFBRTNCLGdCQUFnQnlCLEdBQUd6QjtZQUN0QytCLEtBQUtmLE1BQU1XLENBQUMsQ0FBQyxFQUFFLEdBQUdmLE1BQU0sSUFBSVosZ0JBQWdCeUIsR0FBR3pCO1lBQy9DZ0MsTUFBTU47WUFDTk8sT0FBTyxJQUFJckIsTUFBTTtZQUNqQnNCLE9BQU85QixNQUFNLENBQUNVLEtBQUtxQixLQUFLLENBQUNyQixLQUFLQyxNQUFNLEtBQUtYLE9BQU9nQyxNQUFNLEVBQUU7WUFDeERQLFFBQVFBLFNBQVMsSUFBSSxDQUFDQSxTQUFTRCxJQUFJLEVBQUMsSUFBSyxLQUFLLENBQUNDLFNBQVNELElBQUksRUFBQyxJQUFLO1FBQ3BFO0lBQ0Y7SUFFQSxNQUFNUyxnQkFBZ0IsQ0FBQ0M7UUFDckIsTUFBTVgsSUFBSTFCO1FBQ1YsTUFBTTJCLElBQUkxQjtRQUNWLE1BQU1xQyxhQUFheEMsZ0JBQWdCLElBQUlJO1FBQ3ZDbUMsUUFBUUUsS0FBSyxDQUFDQyxXQUFXLENBQUMsVUFBVSxHQUFjLE9BQVhGLFlBQVc7UUFFbEQsSUFBSyxJQUFJZCxJQUFJLEdBQUdBLElBQUl6QixlQUFleUIsS0FBSyxFQUFHO1lBQ3pDLE1BQU1DLElBQUkzQixnQkFBZ0IsSUFBSWEsTUFBTVQsZUFBZTtZQUNuRCxNQUFNdUMsSUFBSWxCLGVBQWVDLEdBQUdDLEdBQUdDLEdBQUdDO1lBQ2xDVSxRQUFRSyxTQUFTLENBQUNDLE1BQU0sQ0FBQztZQUV6QkMsV0FBVztnQkFDVCxNQUFNQyxXQUFXQyxTQUFTQyxhQUFhLENBQUM7Z0JBQ3hDLE1BQU1DLFFBQVFGLFNBQVNDLGFBQWEsQ0FBQztnQkFDckNGLFNBQVNILFNBQVMsQ0FBQ08sR0FBRyxDQUFDO2dCQUN2QkosU0FBU04sS0FBSyxDQUFDQyxXQUFXLENBQUMsYUFBYSxHQUFjLE9BQVhDLEVBQUVaLEtBQUssQ0FBQyxFQUFFLEVBQUM7Z0JBQ3REZ0IsU0FBU04sS0FBSyxDQUFDQyxXQUFXLENBQUMsYUFBYSxHQUFjLE9BQVhDLEVBQUVaLEtBQUssQ0FBQyxFQUFFLEVBQUM7Z0JBQ3REZ0IsU0FBU04sS0FBSyxDQUFDQyxXQUFXLENBQUMsV0FBVyxHQUFZLE9BQVRDLEVBQUVYLEdBQUcsQ0FBQyxFQUFFLEVBQUM7Z0JBQ2xEZSxTQUFTTixLQUFLLENBQUNDLFdBQVcsQ0FBQyxXQUFXLEdBQVksT0FBVEMsRUFBRVgsR0FBRyxDQUFDLEVBQUUsRUFBQztnQkFDbERlLFNBQVNOLEtBQUssQ0FBQ0MsV0FBVyxDQUFDLFVBQVUsR0FBVSxPQUFQQyxFQUFFVixJQUFJLEVBQUM7Z0JBQy9DYyxTQUFTTixLQUFLLENBQUNDLFdBQVcsQ0FBQyxXQUFXLEdBQVcsT0FBUkMsRUFBRVQsS0FBSztnQkFDaERhLFNBQVNOLEtBQUssQ0FBQ0MsV0FBVyxDQUFDLFdBQVcsZUFBdUIsT0FBUkMsRUFBRVIsS0FBSyxFQUFDO2dCQUM3RFksU0FBU04sS0FBSyxDQUFDQyxXQUFXLENBQUMsWUFBWSxHQUFZLE9BQVRDLEVBQUViLE1BQU0sRUFBQztnQkFFbkRvQixNQUFNTixTQUFTLENBQUNPLEdBQUcsQ0FBQztnQkFDcEJKLFNBQVNLLFdBQVcsQ0FBQ0Y7Z0JBQ3JCWCxRQUFRYSxXQUFXLENBQUNMO2dCQUNwQk0sc0JBQXNCLElBQU1kLFFBQVFLLFNBQVMsQ0FBQ08sR0FBRyxDQUFDO2dCQUNsREwsV0FBVztvQkFDVCxJQUFJO3dCQUNGUCxRQUFRZSxXQUFXLENBQUNQO29CQUN0QixFQUFFLFVBQU07b0JBQ04seUJBQXlCLEdBQzNCO2dCQUNGLEdBQUdwQjtZQUNMLEdBQUc7UUFDTDtJQUNGO0lBRUEsTUFBTTRCLHVCQUF1QixDQUFDaEI7UUFDNUIsSUFBSSxDQUFDaEMsYUFBYWlELE9BQU8sSUFBSSxDQUFDL0MsVUFBVStDLE9BQU8sSUFBSSxDQUFDOUMsUUFBUThDLE9BQU8sRUFBRTtRQUNyRSxNQUFNQyxnQkFBZ0JsRCxhQUFhaUQsT0FBTyxDQUFDRSxxQkFBcUI7UUFDaEUsTUFBTUMsTUFBTXBCLFFBQVFtQixxQkFBcUI7UUFDekMsTUFBTUUsU0FBdUM7WUFDM0NDLE1BQU0sR0FBMkIsT0FBeEJGLElBQUlHLENBQUMsR0FBR0wsY0FBY0ssQ0FBQyxFQUFDO1lBQ2pDQyxLQUFLLEdBQTJCLE9BQXhCSixJQUFJSyxDQUFDLEdBQUdQLGNBQWNPLENBQUMsRUFBQztZQUNoQ0MsT0FBTyxHQUFhLE9BQVZOLElBQUlNLEtBQUssRUFBQztZQUNwQkMsUUFBUSxHQUFjLE9BQVhQLElBQUlPLE1BQU0sRUFBQztRQUN4QjtRQUNBQyxPQUFPQyxNQUFNLENBQUMzRCxVQUFVK0MsT0FBTyxDQUFDZixLQUFLLEVBQUVtQjtRQUN2Q08sT0FBT0MsTUFBTSxDQUFDMUQsUUFBUThDLE9BQU8sQ0FBQ2YsS0FBSyxFQUFFbUI7UUFDckNsRCxRQUFROEMsT0FBTyxDQUFDYSxTQUFTLEdBQUc5QixRQUFROEIsU0FBUztJQUMvQztJQUVBLE1BQU1DLGNBQWMsQ0FBQ0MsR0FBd0NDO1FBQzNELE1BQU1DLE9BQU9GLEVBQUVHLGFBQWEsQ0FBQ0MsYUFBYTtRQUMxQyxJQUFJLENBQUNGLFFBQVE5RCxnQkFBZ0I2RCxPQUFPO1FBRXBDNUQsZUFBZTREO1FBQ2ZqQixxQkFBcUJrQjtRQUVyQixJQUFJaEUsVUFBVStDLE9BQU8sRUFBRTtZQUNyQixNQUFNb0IsWUFBWW5FLFVBQVUrQyxPQUFPLENBQUNxQixnQkFBZ0IsQ0FBQztZQUNyREQsVUFBVUUsT0FBTyxDQUFDLENBQUNuQztvQkFBTWxDO3dCQUFBQSxxQkFBQUEsVUFBVStDLE9BQU8sY0FBakIvQyx5Q0FBQUEsbUJBQW1CNkMsV0FBVyxDQUFDWDs7UUFDMUQ7UUFFQSxJQUFJakMsUUFBUThDLE9BQU8sRUFBRTtZQUNuQjlDLFFBQVE4QyxPQUFPLENBQUNaLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDO1lBQ2pDLEtBQUtuQyxRQUFROEMsT0FBTyxDQUFDdUIsV0FBVyxFQUFFLGVBQWU7WUFDakRyRSxRQUFROEMsT0FBTyxDQUFDWixTQUFTLENBQUNPLEdBQUcsQ0FBQztRQUNoQztRQUVBLElBQUkxQyxVQUFVK0MsT0FBTyxFQUFFO1lBQ3JCbEIsY0FBYzdCLFVBQVUrQyxPQUFPO1FBQ2pDO0lBQ0Y7SUFFQSxNQUFNd0IsZ0JBQWdCLENBQUNULEdBQTJDQztRQUNoRSxJQUFJRCxFQUFFVSxHQUFHLEtBQUssV0FBV1YsRUFBRVUsR0FBRyxLQUFLLEtBQUs7WUFDdENWLEVBQUVXLGNBQWM7WUFDaEIsTUFBTVQsT0FBT0YsRUFBRUcsYUFBYSxDQUFDQyxhQUFhO1lBQzFDLElBQUlGLE1BQU07Z0JBQ1JILFlBQVk7b0JBQUVJLGVBQWVILEVBQUVHLGFBQWE7b0JBQUVRLGdCQUFnQixLQUFPO2dCQUFFLEdBQTBDVjtZQUNuSDtRQUNGO0lBQ0Y7SUFFQTVFLGdEQUFTQSxDQUFDO1FBQ1IsSUFBSSxDQUFDWSxPQUFPZ0QsT0FBTyxJQUFJLENBQUNqRCxhQUFhaUQsT0FBTyxFQUFFO1FBQzlDLE1BQU0yQixXQUFXM0UsT0FBT2dELE9BQU8sQ0FBQ3FCLGdCQUFnQixDQUFDLEtBQUssQ0FBQ2xFLFlBQVk7UUFDbkUsSUFBSXdFLFVBQVU7Z0JBRVp6RTtZQURBNkMscUJBQXFCNEI7YUFDckJ6RSxtQkFBQUEsUUFBUThDLE9BQU8sY0FBZjlDLHVDQUFBQSxpQkFBaUJrQyxTQUFTLENBQUNPLEdBQUcsQ0FBQztRQUNqQztRQUVBLE1BQU1pQyxpQkFBaUIsSUFBSUMsZUFBZTtnQkFDaEI3RTtZQUF4QixNQUFNOEUsbUJBQWtCOUUsa0JBQUFBLE9BQU9nRCxPQUFPLGNBQWRoRCxzQ0FBQUEsZ0JBQWdCcUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDbEUsWUFBWTtZQUMzRSxJQUFJMkUsaUJBQWlCO2dCQUNuQi9CLHFCQUFxQitCO1lBQ3ZCO1FBQ0Y7UUFFQUYsZUFBZUcsT0FBTyxDQUFDaEYsYUFBYWlELE9BQU87UUFDM0MsT0FBTyxJQUFNNEIsZUFBZUksVUFBVTtJQUN4QyxHQUFHO1FBQUM3RTtLQUFZO0lBRWhCLHFCQUNFLDhEQUFDOEU7UUFBSUMsV0FBVTtRQUFzQkMsS0FBS3BGOzswQkFDeEMsOERBQUNxRjswQkFDQyw0RUFBQ0M7b0JBQUdGLEtBQUtuRjs4QkFDTlQsTUFBTStGLEdBQUcsQ0FBQyxDQUFDQyxNQUFNdkIsc0JBQ2hCLDhEQUFDd0I7NEJBQW1CTixXQUFXL0UsZ0JBQWdCNkQsUUFBUSxXQUFXO3NDQUNoRSw0RUFBQ3lCO2dDQUNDQyxNQUFNSCxLQUFLRyxJQUFJO2dDQUNmQyxTQUFTLENBQUM1QixJQUFNRCxZQUFZQyxHQUFHQztnQ0FDL0I0QixXQUFXLENBQUM3QixJQUFNUyxjQUFjVCxHQUFHQzswQ0FFbEN1QixLQUFLTSxLQUFLOzs7Ozs7MkJBTk5OLEtBQUtHLElBQUk7Ozs7Ozs7Ozs7Ozs7OzswQkFZeEIsOERBQUNJO2dCQUFLWixXQUFVO2dCQUFnQkMsS0FBS2xGOzs7Ozs7MEJBQ3JDLDhEQUFDNkY7Z0JBQUtaLFdBQVU7Z0JBQWNDLEtBQUtqRjs7Ozs7Ozs7Ozs7O0FBR3pDO0dBbEtNWjtLQUFBQTtBQW9LTixNQUFNeUcsYUFBNkI7SUFDakM7UUFBRUYsT0FBTztRQUFZSCxNQUFNO0lBQVM7SUFDcEM7UUFBRUcsT0FBTztRQUFjSCxNQUFNO0lBQVk7SUFDekM7UUFBRUcsT0FBTztRQUFXSCxNQUFNO0lBQVc7Q0FDdEM7QUFFRCxNQUFNTSxlQUE0QztRQUFDLEVBQUVDLFFBQVEsRUFBRTs7SUFDN0QsTUFBTSxDQUFDQyxVQUFVQyxZQUFZLEdBQUdoSCwrQ0FBUUEsQ0FBQztJQUN6QyxNQUFNLENBQUNpSCxVQUFVQyxZQUFZLEdBQUdsSCwrQ0FBUUEsQ0FBQztJQUV6Q0MsZ0RBQVNBLENBQUM7UUFDUmlILFlBQVk7UUFFWixNQUFNQyxjQUFjO1lBQ2xCSCxZQUFZSSxPQUFPQyxVQUFVLEdBQUc7UUFDbEM7UUFFQUY7UUFFQUMsT0FBT0UsZ0JBQWdCLENBQUMsVUFBVUg7UUFFbEMsTUFBTUksYUFBYUgsT0FBT0ksVUFBVSxDQUFDO1FBQ3JDLE1BQU1DLG9CQUFvQixDQUFDN0M7WUFDekJvQyxZQUFZcEMsRUFBRThDLE9BQU87UUFDdkI7UUFFQSxJQUFJSCxXQUFXRCxnQkFBZ0IsRUFBRTtZQUMvQkMsV0FBV0QsZ0JBQWdCLENBQUMsVUFBVUc7UUFDeEMsT0FBTztZQUNMRixXQUFXSSxXQUFXLENBQUNGO1FBQ3pCO1FBRUFBLGtCQUFrQkY7UUFFbEIsT0FBTztZQUNMSCxPQUFPUSxtQkFBbUIsQ0FBQyxVQUFVVDtZQUNyQyxJQUFJSSxXQUFXSyxtQkFBbUIsRUFBRTtnQkFDbENMLFdBQVdLLG1CQUFtQixDQUFDLFVBQVVIO1lBQzNDLE9BQU87Z0JBQ0xGLFdBQVdNLGNBQWMsQ0FBQ0o7WUFDNUI7UUFDRjtJQUNGLEdBQUcsRUFBRTtJQUVMLElBQUksQ0FBQ1IsWUFBWSxDQUFDRixVQUFVO1FBQzFCLHFCQUFPO3NCQUFHRDs7SUFDWjtJQUVBLHFCQUNFLDhEQUFDaEI7UUFBSUMsV0FBVTtrQkFDYiw0RUFBQ0Q7WUFBSUMsV0FBVTs7OEJBQ2IsOERBQUNEO29CQUFJQyxXQUFVOzhCQUNiLDRFQUFDNUY7d0JBQVNDLE9BQU93Rzs7Ozs7Ozs7Ozs7OEJBRW5CLDhEQUFDZDtvQkFBSUMsV0FBVTs4QkFDWmU7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS1g7SUF0RE1EO01BQUFBO0FBd0ROLCtEQUFlQSxZQUFZQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvSGFuZHlBbnNpY2h0LnRzeD8xZmRkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xyXG5cclxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0ICcuL0hhbmR5QW5zaWNodC5jc3MnO1xyXG5cclxuaW50ZXJmYWNlIEhhbmR5QW5zaWNodFByb3BzIHtcclxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcclxufVxyXG5cclxudHlwZSBHb29leU5hdkl0ZW0gPSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBocmVmOiBzdHJpbmc7XHJcbn07XHJcblxyXG5pbnRlcmZhY2UgR29vZXlOYXZQcm9wcyB7XHJcbiAgaXRlbXM6IEdvb2V5TmF2SXRlbVtdO1xyXG4gIGFuaW1hdGlvblRpbWU/OiBudW1iZXI7XHJcbiAgcGFydGljbGVDb3VudD86IG51bWJlcjtcclxuICBwYXJ0aWNsZURpc3RhbmNlcz86IFtudW1iZXIsIG51bWJlcl07XHJcbiAgcGFydGljbGVSPzogbnVtYmVyO1xyXG4gIHRpbWVWYXJpYW5jZT86IG51bWJlcjtcclxuICBjb2xvcnM/OiBudW1iZXJbXTtcclxuICBpbml0aWFsQWN0aXZlSW5kZXg/OiBudW1iZXI7XHJcbn1cclxuXHJcbmNvbnN0IEdvb2V5TmF2OiBSZWFjdC5GQzxHb29leU5hdlByb3BzPiA9ICh7XHJcbiAgaXRlbXMsXHJcbiAgYW5pbWF0aW9uVGltZSA9IDYwMCxcclxuICBwYXJ0aWNsZUNvdW50ID0gMTUsXHJcbiAgcGFydGljbGVEaXN0YW5jZXMgPSBbOTAsIDEwXSxcclxuICBwYXJ0aWNsZVIgPSAxMDAsXHJcbiAgdGltZVZhcmlhbmNlID0gMzAwLFxyXG4gIGNvbG9ycyA9IFsxLCAyLCAzLCAxLCAyLCAzLCAxLCA0XSxcclxuICBpbml0aWFsQWN0aXZlSW5kZXggPSAwLFxyXG59KSA9PiB7XHJcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgY29uc3QgbmF2UmVmID0gdXNlUmVmPEhUTUxVTGlzdEVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuICBjb25zdCBmaWx0ZXJSZWYgPSB1c2VSZWY8SFRNTFNwYW5FbGVtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgY29uc3QgdGV4dFJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuICBjb25zdCBbYWN0aXZlSW5kZXgsIHNldEFjdGl2ZUluZGV4XSA9IHVzZVN0YXRlKGluaXRpYWxBY3RpdmVJbmRleCk7XHJcblxyXG4gIGNvbnN0IG5vaXNlID0gKG4gPSAxKSA9PiBuIC8gMiAtIE1hdGgucmFuZG9tKCkgKiBuO1xyXG5cclxuICBjb25zdCBnZXRYWSA9IChkaXN0YW5jZTogbnVtYmVyLCBwb2ludEluZGV4OiBudW1iZXIsIHRvdGFsUG9pbnRzOiBudW1iZXIpID0+IHtcclxuICAgIGNvbnN0IGFuZ2xlID0gKCgzNjAgKyBub2lzZSg4KSkgLyB0b3RhbFBvaW50cykgKiBwb2ludEluZGV4ICogKE1hdGguUEkgLyAxODApO1xyXG4gICAgcmV0dXJuIFtkaXN0YW5jZSAqIE1hdGguY29zKGFuZ2xlKSwgZGlzdGFuY2UgKiBNYXRoLnNpbihhbmdsZSldO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGNyZWF0ZVBhcnRpY2xlID0gKGk6IG51bWJlciwgdDogbnVtYmVyLCBkOiBbbnVtYmVyLCBudW1iZXJdLCByOiBudW1iZXIpID0+IHtcclxuICAgIGNvbnN0IHJvdGF0ZSA9IG5vaXNlKHIgLyAxMCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzdGFydDogZ2V0WFkoZFswXSwgcGFydGljbGVDb3VudCAtIGksIHBhcnRpY2xlQ291bnQpLFxyXG4gICAgICBlbmQ6IGdldFhZKGRbMV0gKyBub2lzZSg3KSwgcGFydGljbGVDb3VudCAtIGksIHBhcnRpY2xlQ291bnQpLFxyXG4gICAgICB0aW1lOiB0LFxyXG4gICAgICBzY2FsZTogMSArIG5vaXNlKDAuMiksXHJcbiAgICAgIGNvbG9yOiBjb2xvcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY29sb3JzLmxlbmd0aCldLFxyXG4gICAgICByb3RhdGU6IHJvdGF0ZSA+IDAgPyAocm90YXRlICsgciAvIDIwKSAqIDEwIDogKHJvdGF0ZSAtIHIgLyAyMCkgKiAxMCxcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgbWFrZVBhcnRpY2xlcyA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZCA9IHBhcnRpY2xlRGlzdGFuY2VzO1xyXG4gICAgY29uc3QgciA9IHBhcnRpY2xlUjtcclxuICAgIGNvbnN0IGJ1YmJsZVRpbWUgPSBhbmltYXRpb25UaW1lICogMiArIHRpbWVWYXJpYW5jZTtcclxuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tdGltZScsIGAke2J1YmJsZVRpbWV9bXNgKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRpY2xlQ291bnQ7IGkgKz0gMSkge1xyXG4gICAgICBjb25zdCB0ID0gYW5pbWF0aW9uVGltZSAqIDIgKyBub2lzZSh0aW1lVmFyaWFuY2UgKiAyKTtcclxuICAgICAgY29uc3QgcCA9IGNyZWF0ZVBhcnRpY2xlKGksIHQsIGQsIHIpO1xyXG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGFydGljbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgY29uc3QgcG9pbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgcGFydGljbGUuY2xhc3NMaXN0LmFkZCgncGFydGljbGUnKTtcclxuICAgICAgICBwYXJ0aWNsZS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zdGFydC14JywgYCR7cC5zdGFydFswXX1weGApO1xyXG4gICAgICAgIHBhcnRpY2xlLnN0eWxlLnNldFByb3BlcnR5KCctLXN0YXJ0LXknLCBgJHtwLnN0YXJ0WzFdfXB4YCk7XHJcbiAgICAgICAgcGFydGljbGUuc3R5bGUuc2V0UHJvcGVydHkoJy0tZW5kLXgnLCBgJHtwLmVuZFswXX1weGApO1xyXG4gICAgICAgIHBhcnRpY2xlLnN0eWxlLnNldFByb3BlcnR5KCctLWVuZC15JywgYCR7cC5lbmRbMV19cHhgKTtcclxuICAgICAgICBwYXJ0aWNsZS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS10aW1lJywgYCR7cC50aW1lfW1zYCk7XHJcbiAgICAgICAgcGFydGljbGUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2NhbGUnLCBgJHtwLnNjYWxlfWApO1xyXG4gICAgICAgIHBhcnRpY2xlLnN0eWxlLnNldFByb3BlcnR5KCctLWNvbG9yJywgYHZhcigtLWNvbG9yLSR7cC5jb2xvcn0sIHdoaXRlKWApO1xyXG4gICAgICAgIHBhcnRpY2xlLnN0eWxlLnNldFByb3BlcnR5KCctLXJvdGF0ZScsIGAke3Aucm90YXRlfWRlZ2ApO1xyXG5cclxuICAgICAgICBwb2ludC5jbGFzc0xpc3QuYWRkKCdwb2ludCcpO1xyXG4gICAgICAgIHBhcnRpY2xlLmFwcGVuZENoaWxkKHBvaW50KTtcclxuICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHBhcnRpY2xlKTtcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKHBhcnRpY2xlKTtcclxuICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAvKiBpZ25vcmUgcmVtb3ZhbCBlcnJvcnMgKi9cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB0KTtcclxuICAgICAgfSwgMzApO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IHVwZGF0ZUVmZmVjdFBvc2l0aW9uID0gKGVsZW1lbnQ6IEhUTUxMSUVsZW1lbnQpID0+IHtcclxuICAgIGlmICghY29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIWZpbHRlclJlZi5jdXJyZW50IHx8ICF0ZXh0UmVmLmN1cnJlbnQpIHJldHVybjtcclxuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHBvcyA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBzdHlsZXM6IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gPSB7XHJcbiAgICAgIGxlZnQ6IGAke3Bvcy54IC0gY29udGFpbmVyUmVjdC54fXB4YCxcclxuICAgICAgdG9wOiBgJHtwb3MueSAtIGNvbnRhaW5lclJlY3QueX1weGAsXHJcbiAgICAgIHdpZHRoOiBgJHtwb3Mud2lkdGh9cHhgLFxyXG4gICAgICBoZWlnaHQ6IGAke3Bvcy5oZWlnaHR9cHhgLFxyXG4gICAgfTtcclxuICAgIE9iamVjdC5hc3NpZ24oZmlsdGVyUmVmLmN1cnJlbnQuc3R5bGUsIHN0eWxlcyk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRleHRSZWYuY3VycmVudC5zdHlsZSwgc3R5bGVzKTtcclxuICAgIHRleHRSZWYuY3VycmVudC5pbm5lclRleHQgPSBlbGVtZW50LmlubmVyVGV4dDtcclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PiwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgbGlFbCA9IGUuY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50IGFzIEhUTUxMSUVsZW1lbnQgfCBudWxsO1xyXG4gICAgaWYgKCFsaUVsIHx8IGFjdGl2ZUluZGV4ID09PSBpbmRleCkgcmV0dXJuO1xyXG5cclxuICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcclxuICAgIHVwZGF0ZUVmZmVjdFBvc2l0aW9uKGxpRWwpO1xyXG5cclxuICAgIGlmIChmaWx0ZXJSZWYuY3VycmVudCkge1xyXG4gICAgICBjb25zdCBwYXJ0aWNsZXMgPSBmaWx0ZXJSZWYuY3VycmVudC5xdWVyeVNlbGVjdG9yQWxsKCcucGFydGljbGUnKTtcclxuICAgICAgcGFydGljbGVzLmZvckVhY2goKHApID0+IGZpbHRlclJlZi5jdXJyZW50Py5yZW1vdmVDaGlsZChwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRleHRSZWYuY3VycmVudCkge1xyXG4gICAgICB0ZXh0UmVmLmN1cnJlbnQuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XHJcbiAgICAgIHZvaWQgdGV4dFJlZi5jdXJyZW50Lm9mZnNldFdpZHRoOyAvLyBmb3JjZSByZWZsb3dcclxuICAgICAgdGV4dFJlZi5jdXJyZW50LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJSZWYuY3VycmVudCkge1xyXG4gICAgICBtYWtlUGFydGljbGVzKGZpbHRlclJlZi5jdXJyZW50KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGNvbnN0IGxpRWwgPSBlLmN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudCBhcyBIVE1MTElFbGVtZW50IHwgbnVsbDtcclxuICAgICAgaWYgKGxpRWwpIHtcclxuICAgICAgICBoYW5kbGVDbGljayh7IGN1cnJlbnRUYXJnZXQ6IGUuY3VycmVudFRhcmdldCwgcHJldmVudERlZmF1bHQ6ICgpID0+IHt9IH0gYXMgUmVhY3QuTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4sIGluZGV4KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAoIW5hdlJlZi5jdXJyZW50IHx8ICFjb250YWluZXJSZWYuY3VycmVudCkgcmV0dXJuO1xyXG4gICAgY29uc3QgYWN0aXZlTGkgPSBuYXZSZWYuY3VycmVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaScpW2FjdGl2ZUluZGV4XSBhcyBIVE1MTElFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gICAgaWYgKGFjdGl2ZUxpKSB7XHJcbiAgICAgIHVwZGF0ZUVmZmVjdFBvc2l0aW9uKGFjdGl2ZUxpKTtcclxuICAgICAgdGV4dFJlZi5jdXJyZW50Py5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRBY3RpdmVMaSA9IG5hdlJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKCdsaScpW2FjdGl2ZUluZGV4XSBhcyBIVE1MTElFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG4gICAgICBpZiAoY3VycmVudEFjdGl2ZUxpKSB7XHJcbiAgICAgICAgdXBkYXRlRWZmZWN0UG9zaXRpb24oY3VycmVudEFjdGl2ZUxpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXJSZWYuY3VycmVudCk7XHJcbiAgICByZXR1cm4gKCkgPT4gcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gIH0sIFthY3RpdmVJbmRleF0pO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJnb29leS1uYXYtY29udGFpbmVyXCIgcmVmPXtjb250YWluZXJSZWZ9PlxyXG4gICAgICA8bmF2PlxyXG4gICAgICAgIDx1bCByZWY9e25hdlJlZn0+XHJcbiAgICAgICAgICB7aXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxyXG4gICAgICAgICAgICA8bGkga2V5PXtpdGVtLmhyZWZ9IGNsYXNzTmFtZT17YWN0aXZlSW5kZXggPT09IGluZGV4ID8gJ2FjdGl2ZScgOiAnJ30+XHJcbiAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBoYW5kbGVDbGljayhlLCBpbmRleCl9XHJcbiAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBoYW5kbGVLZXlEb3duKGUsIGluZGV4KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICApKX1cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L25hdj5cclxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZWZmZWN0IGZpbHRlclwiIHJlZj17ZmlsdGVyUmVmfSAvPlxyXG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJlZmZlY3QgdGV4dFwiIHJlZj17dGV4dFJlZn0gLz5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5jb25zdCBnb29leUl0ZW1zOiBHb29leU5hdkl0ZW1bXSA9IFtcclxuICB7IGxhYmVsOiAnw5xiZXIgdW5zJywgaHJlZjogJyNhYm91dCcgfSxcclxuICB7IGxhYmVsOiAnTGVpc3R1bmdlbicsIGhyZWY6ICcjc2VydmljZXMnIH0sXHJcbiAgeyBsYWJlbDogJ0FibMOkdWZlJywgaHJlZjogJyNwcm9jZXNzJyB9LFxyXG5dO1xyXG5cclxuY29uc3QgSGFuZHlBbnNpY2h0OiBSZWFjdC5GQzxIYW5keUFuc2ljaHRQcm9wcz4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XHJcbiAgY29uc3QgW2lzTW9iaWxlLCBzZXRJc01vYmlsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgY29uc3QgW2lzQ2xpZW50LCBzZXRJc0NsaWVudF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBzZXRJc0NsaWVudCh0cnVlKTtcclxuXHJcbiAgICBjb25zdCBjaGVja01vYmlsZSA9ICgpID0+IHtcclxuICAgICAgc2V0SXNNb2JpbGUod2luZG93LmlubmVyV2lkdGggPCA3NjgpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjaGVja01vYmlsZSgpO1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjaGVja01vYmlsZSk7XHJcblxyXG4gICAgY29uc3QgbWVkaWFRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA3NjdweCknKTtcclxuICAgIGNvbnN0IGhhbmRsZU1lZGlhQ2hhbmdlID0gKGU6IE1lZGlhUXVlcnlMaXN0RXZlbnQgfCBNZWRpYVF1ZXJ5TGlzdCkgPT4ge1xyXG4gICAgICBzZXRJc01vYmlsZShlLm1hdGNoZXMpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAobWVkaWFRdWVyeS5hZGRFdmVudExpc3RlbmVyKSB7XHJcbiAgICAgIG1lZGlhUXVlcnkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgaGFuZGxlTWVkaWFDaGFuZ2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbWVkaWFRdWVyeS5hZGRMaXN0ZW5lcihoYW5kbGVNZWRpYUNoYW5nZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlTWVkaWFDaGFuZ2UobWVkaWFRdWVyeSk7XHJcblxyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGNoZWNrTW9iaWxlKTtcclxuICAgICAgaWYgKG1lZGlhUXVlcnkucmVtb3ZlRXZlbnRMaXN0ZW5lcikge1xyXG4gICAgICAgIG1lZGlhUXVlcnkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgaGFuZGxlTWVkaWFDaGFuZ2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1lZGlhUXVlcnkucmVtb3ZlTGlzdGVuZXIoaGFuZGxlTWVkaWFDaGFuZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgaWYgKCFpc0NsaWVudCB8fCAhaXNNb2JpbGUpIHtcclxuICAgIHJldHVybiA8PntjaGlsZHJlbn08Lz47XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9XCJoYW5keS1hbnNpY2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGFuZHktYW5zaWNodF9fY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoYW5keS1hbnNpY2h0X19uYXYtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPEdvb2V5TmF2IGl0ZW1zPXtnb29leUl0ZW1zfSAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGFuZHktYW5zaWNodF9fY29udGVudFwiPlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBIYW5keUFuc2ljaHQ7XHJcblxyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsIkdvb2V5TmF2IiwiaXRlbXMiLCJhbmltYXRpb25UaW1lIiwicGFydGljbGVDb3VudCIsInBhcnRpY2xlRGlzdGFuY2VzIiwicGFydGljbGVSIiwidGltZVZhcmlhbmNlIiwiY29sb3JzIiwiaW5pdGlhbEFjdGl2ZUluZGV4IiwiY29udGFpbmVyUmVmIiwibmF2UmVmIiwiZmlsdGVyUmVmIiwidGV4dFJlZiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub2lzZSIsIm4iLCJNYXRoIiwicmFuZG9tIiwiZ2V0WFkiLCJkaXN0YW5jZSIsInBvaW50SW5kZXgiLCJ0b3RhbFBvaW50cyIsImFuZ2xlIiwiUEkiLCJjb3MiLCJzaW4iLCJjcmVhdGVQYXJ0aWNsZSIsImkiLCJ0IiwiZCIsInIiLCJyb3RhdGUiLCJzdGFydCIsImVuZCIsInRpbWUiLCJzY2FsZSIsImNvbG9yIiwiZmxvb3IiLCJsZW5ndGgiLCJtYWtlUGFydGljbGVzIiwiZWxlbWVudCIsImJ1YmJsZVRpbWUiLCJzdHlsZSIsInNldFByb3BlcnR5IiwicCIsImNsYXNzTGlzdCIsInJlbW92ZSIsInNldFRpbWVvdXQiLCJwYXJ0aWNsZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInBvaW50IiwiYWRkIiwiYXBwZW5kQ2hpbGQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJyZW1vdmVDaGlsZCIsInVwZGF0ZUVmZmVjdFBvc2l0aW9uIiwiY3VycmVudCIsImNvbnRhaW5lclJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwb3MiLCJzdHlsZXMiLCJsZWZ0IiwieCIsInRvcCIsInkiLCJ3aWR0aCIsImhlaWdodCIsIk9iamVjdCIsImFzc2lnbiIsImlubmVyVGV4dCIsImhhbmRsZUNsaWNrIiwiZSIsImluZGV4IiwibGlFbCIsImN1cnJlbnRUYXJnZXQiLCJwYXJlbnRFbGVtZW50IiwicGFydGljbGVzIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJvZmZzZXRXaWR0aCIsImhhbmRsZUtleURvd24iLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsImFjdGl2ZUxpIiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImN1cnJlbnRBY3RpdmVMaSIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiZGl2IiwiY2xhc3NOYW1lIiwicmVmIiwibmF2IiwidWwiLCJtYXAiLCJpdGVtIiwibGkiLCJhIiwiaHJlZiIsIm9uQ2xpY2siLCJvbktleURvd24iLCJsYWJlbCIsInNwYW4iLCJnb29leUl0ZW1zIiwiSGFuZHlBbnNpY2h0IiwiY2hpbGRyZW4iLCJpc01vYmlsZSIsInNldElzTW9iaWxlIiwiaXNDbGllbnQiLCJzZXRJc0NsaWVudCIsImNoZWNrTW9iaWxlIiwid2luZG93IiwiaW5uZXJXaWR0aCIsImFkZEV2ZW50TGlzdGVuZXIiLCJtZWRpYVF1ZXJ5IiwibWF0Y2hNZWRpYSIsImhhbmRsZU1lZGlhQ2hhbmdlIiwibWF0Y2hlcyIsImFkZExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/HandyAnsicht.tsx\n"));
/***/ })
});