@jiangxiaosheng/digital-agent-platform 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +310 -44
- package/.next/app-path-routes-manifest.json +1 -1
- package/.next/build-manifest.json +19 -6
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/edge-server-production/0.pack +0 -0
- package/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/server/app/[locale]/agents/[id]/chat/page.js +1 -516
- package/.next/server/app/[locale]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/[locale]/agents/[id]/edit/page_client-reference-manifest.js +1 -1
- package/.next/server/app/[locale]/agents/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/[locale]/agents/page_client-reference-manifest.js +1 -1
- package/.next/server/app/[locale]/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/[locale]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/[locale]/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/api/agents/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth-config/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/bash-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/builtin-providers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/chat/[agentId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env-vars/[key]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env-vars/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/env-vars/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/file-serve/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/knowledge/[id]/documents/[docId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/knowledge/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/knowledge/[id]/upload/route.js +1 -1
- package/.next/server/app/api/knowledge/[id]/upload/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/knowledge/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[agentId]/[sessionId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[agentId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[name]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tts/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/voice-provider/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace-files/route_client-reference-manifest.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +38 -0
- package/.next/server/middleware-build-manifest.js +1 -22
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/_error.js +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -5
- package/.next/server/webpack-runtime.js +1 -215
- package/.next/static/chunks/{3763-85d191447a96df85.js → 3763-ea55ce7682889cb6.js} +1 -1
- package/.next/static/chunks/{6009-821afbef93a9b2dc.js → 6009-c9f03c0151c7d932.js} +1 -1
- package/.next/static/chunks/{7200-c9c613d1b11207fb.js → 7200-3e2b5e981a747a6b.js} +1 -1
- package/.next/static/chunks/app/[locale]/agents/[id]/chat/{page-95dc12875cda0b9c.js → page-1138da7e5b6e4435.js} +1 -1
- package/.next/static/chunks/app/[locale]/{layout-bca0349ba5d79253.js → layout-5c05e64401a6d048.js} +1 -1
- package/.next/trace +35 -35
- package/package.json +1 -1
- package/.next/server/vendor-chunks/@radix-ui.js +0 -125
- package/.next/server/vendor-chunks/lucide-react.js +0 -445
- package/.next/server/vendor-chunks/next.js +0 -3211
- package/.next/server/vendor-chunks/uuid.js +0 -75
- package/.next/static/chunks/app/layout.js +0 -39
- package/.next/static/chunks/webpack.js +0 -1416
- package/.next/static/development/_buildManifest.js +0 -1
- package/.next/static/development/_ssgManifest.js +0 -1
- package/.next/static/webpack/29489ef42c5fbc7f.webpack.hot-update.json +0 -1
- package/.next/static/webpack/app/layout.29489ef42c5fbc7f.hot-update.js +0 -22
- package/.next/static/webpack/app/layout.be3d0f45e3439f26.hot-update.js +0 -22
- package/.next/static/webpack/be3d0f45e3439f26.webpack.hot-update.json +0 -1
- package/.next/static/webpack/webpack.29489ef42c5fbc7f.hot-update.js +0 -18
- package/.next/static/webpack/webpack.be3d0f45e3439f26.hot-update.js +0 -18
- package/.next/types/app/[locale]/layout.ts +0 -84
- /package/.next/static/{RTJ4_XTTnBpNxBIZhyBht → yXEysGzm6PP-vW5ptUZ-5}/_buildManifest.js +0 -0
- /package/.next/static/{RTJ4_XTTnBpNxBIZhyBht → yXEysGzm6PP-vW5ptUZ-5}/_ssgManifest.js +0 -0
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
4
|
-
* This devtool is neither made for production nor for readable output files.
|
|
5
|
-
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
6
|
-
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
7
|
-
* or disable the default devtool with "devtool: false".
|
|
8
|
-
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
9
|
-
*/
|
|
10
|
-
exports.id = "vendor-chunks/@radix-ui";
|
|
11
|
-
exports.ids = ["vendor-chunks/@radix-ui"];
|
|
12
|
-
exports.modules = {
|
|
13
|
-
|
|
14
|
-
/***/ "(ssr)/./node_modules/@radix-ui/number/dist/index.mjs":
|
|
15
|
-
/*!******************************************************!*\
|
|
16
|
-
!*** ./node_modules/@radix-ui/number/dist/index.mjs ***!
|
|
17
|
-
\******************************************************/
|
|
18
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
19
|
-
|
|
20
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clamp: () => (/* binding */ clamp)\n/* harmony export */ });\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n__name(clamp, \"clamp\");\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL251bWJlci9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSw0REFBNEQsMkJBQTJCOztBQUV2RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2R1YW4vZmlsZXMvcGktd2ViL2RpZ2l0YWwtYWdlbnQtcGxhdGZvcm0vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9udW1iZXIvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX25hbWUgPSAodGFyZ2V0LCB2YWx1ZSkgPT4gX19kZWZQcm9wKHRhcmdldCwgXCJuYW1lXCIsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcblxuLy8gc3JjL251bWJlci50c1xuZnVuY3Rpb24gY2xhbXAodmFsdWUsIFttaW4sIG1heF0pIHtcbiAgcmV0dXJuIE1hdGgubWluKG1heCwgTWF0aC5tYXgobWluLCB2YWx1ZSkpO1xufVxuX19uYW1lKGNsYW1wLCBcImNsYW1wXCIpO1xuZXhwb3J0IHtcbiAgY2xhbXBcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/number/dist/index.mjs\n");
|
|
21
|
-
|
|
22
|
-
/***/ }),
|
|
23
|
-
|
|
24
|
-
/***/ "(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs":
|
|
25
|
-
/*!*********************************************************!*\
|
|
26
|
-
!*** ./node_modules/@radix-ui/primitive/dist/index.mjs ***!
|
|
27
|
-
\*********************************************************/
|
|
28
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
29
|
-
|
|
30
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ canUseDOM: () => (/* binding */ canUseDOM),\n/* harmony export */ composeEventHandlers: () => (/* binding */ composeEventHandlers),\n/* harmony export */ getActiveElement: () => (/* binding */ getActiveElement),\n/* harmony export */ getOwnerDocument: () => (/* binding */ getOwnerDocument),\n/* harmony export */ getOwnerWindow: () => (/* binding */ getOwnerWindow),\n/* harmony export */ isFrame: () => (/* binding */ isFrame)\n/* harmony export */ });\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return /* @__PURE__ */ __name(function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n }, \"handleEvent\");\n}\n__name(composeEventHandlers, \"composeEventHandlers\");\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\n__name(getOwnerWindow, \"getOwnerWindow\");\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\n__name(getOwnerDocument, \"getOwnerDocument\");\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\n__name(getActiveElement, \"getActiveElement\");\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n__name(isFrame, \"isFrame\");\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3ByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBLDREQUE0RCwyQkFBMkI7O0FBRXZGO0FBQ0E7QUFDQSx1RUFBdUUsa0NBQWtDLElBQUk7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxnQkFBZ0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvZHVhbi9maWxlcy9waS13ZWIvZGlnaXRhbC1hZ2VudC1wbGF0Zm9ybS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3ByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fbmFtZSA9ICh0YXJnZXQsIHZhbHVlKSA9PiBfX2RlZlByb3AodGFyZ2V0LCBcIm5hbWVcIiwgeyB2YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuXG4vLyBzcmMvcHJpbWl0aXZlLnRzeFxudmFyIGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbmZ1bmN0aW9uIGNvbXBvc2VFdmVudEhhbmRsZXJzKG9yaWdpbmFsRXZlbnRIYW5kbGVyLCBvdXJFdmVudEhhbmRsZXIsIHsgY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkID0gdHJ1ZSB9ID0ge30pIHtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBfX25hbWUoZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQpIHtcbiAgICBvcmlnaW5hbEV2ZW50SGFuZGxlcj8uKGV2ZW50KTtcbiAgICBpZiAoY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkID09PSBmYWxzZSB8fCAhZXZlbnQgfHwgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVybiBvdXJFdmVudEhhbmRsZXI/LihldmVudCk7XG4gICAgfVxuICB9LCBcImhhbmRsZUV2ZW50XCIpO1xufVxuX19uYW1lKGNvbXBvc2VFdmVudEhhbmRsZXJzLCBcImNvbXBvc2VFdmVudEhhbmRsZXJzXCIpO1xuZnVuY3Rpb24gZ2V0T3duZXJXaW5kb3coZWxlbWVudCkge1xuICBpZiAoIWNhblVzZURPTSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBhY2Nlc3Mgd2luZG93IG91dHNpZGUgb2YgdGhlIERPTVwiKTtcbiAgfVxuICByZXR1cm4gZWxlbWVudD8ub3duZXJEb2N1bWVudD8uZGVmYXVsdFZpZXcgPz8gd2luZG93O1xufVxuX19uYW1lKGdldE93bmVyV2luZG93LCBcImdldE93bmVyV2luZG93XCIpO1xuZnVuY3Rpb24gZ2V0T3duZXJEb2N1bWVudChlbGVtZW50KSB7XG4gIGlmICghY2FuVXNlRE9NKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGFjY2VzcyBkb2N1bWVudCBvdXRzaWRlIG9mIHRoZSBET01cIik7XG4gIH1cbiAgcmV0dXJuIGVsZW1lbnQ/Lm93bmVyRG9jdW1lbnQgPz8gZG9jdW1lbnQ7XG59XG5fX25hbWUoZ2V0T3duZXJEb2N1bWVudCwgXCJnZXRPd25lckRvY3VtZW50XCIpO1xuZnVuY3Rpb24gZ2V0QWN0aXZlRWxlbWVudChub2RlLCBhY3RpdmVEZXNjZW5kYW50ID0gZmFsc2UpIHtcbiAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBnZXRPd25lckRvY3VtZW50KG5vZGUpO1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQ/Lm5vZGVOYW1lKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKGlzRnJhbWUoYWN0aXZlRWxlbWVudCkgJiYgYWN0aXZlRWxlbWVudC5jb250ZW50RG9jdW1lbnQpIHtcbiAgICByZXR1cm4gZ2V0QWN0aXZlRWxlbWVudChhY3RpdmVFbGVtZW50LmNvbnRlbnREb2N1bWVudC5ib2R5LCBhY3RpdmVEZXNjZW5kYW50KTtcbiAgfVxuICBpZiAoYWN0aXZlRGVzY2VuZGFudCkge1xuICAgIGNvbnN0IGlkID0gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIik7XG4gICAgaWYgKGlkKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZ2V0T3duZXJEb2N1bWVudChhY3RpdmVFbGVtZW50KS5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFjdGl2ZUVsZW1lbnQ7XG59XG5fX25hbWUoZ2V0QWN0aXZlRWxlbWVudCwgXCJnZXRBY3RpdmVFbGVtZW50XCIpO1xuZnVuY3Rpb24gaXNGcmFtZShlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50LnRhZ05hbWUgPT09IFwiSUZSQU1FXCI7XG59XG5fX25hbWUoaXNGcmFtZSwgXCJpc0ZyYW1lXCIpO1xuZXhwb3J0IHtcbiAgY2FuVXNlRE9NLFxuICBjb21wb3NlRXZlbnRIYW5kbGVycyxcbiAgZ2V0QWN0aXZlRWxlbWVudCxcbiAgZ2V0T3duZXJEb2N1bWVudCxcbiAgZ2V0T3duZXJXaW5kb3csXG4gIGlzRnJhbWVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\n");
|
|
31
|
-
|
|
32
|
-
/***/ }),
|
|
33
|
-
|
|
34
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs":
|
|
35
|
-
/*!******************************************************************!*\
|
|
36
|
-
!*** ./node_modules/@radix-ui/react-compose-refs/dist/index.mjs ***!
|
|
37
|
-
\******************************************************************/
|
|
38
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
39
|
-
|
|
40
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeRefs: () => (/* binding */ composeRefs),\n/* harmony export */ useComposedRefs: () => (/* binding */ useComposedRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/compose-refs.tsx\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\n__name(setRef, \"setRef\");\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n__name(composeRefs, \"composeRefs\");\nfunction useComposedRefs(...refs) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\n}\n__name(useComposedRefs, \"useComposedRefs\");\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBLDREQUE0RCwyQkFBMkI7O0FBRXZGO0FBQytCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0Esd0JBQXdCLHFCQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyw4Q0FBaUI7QUFDMUI7QUFDQTtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9kdWFuL2ZpbGVzL3BpLXdlYi9kaWdpdGFsLWFnZW50LXBsYXRmb3JtL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19uYW1lID0gKHRhcmdldCwgdmFsdWUpID0+IF9fZGVmUHJvcCh0YXJnZXQsIFwibmFtZVwiLCB7IHZhbHVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG5cbi8vIHNyYy9jb21wb3NlLXJlZnMudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIHNldFJlZihyZWYsIHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgcmVmID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gcmVmKHZhbHVlKTtcbiAgfSBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB2b2lkIDApIHtcbiAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICB9XG59XG5fX25hbWUoc2V0UmVmLCBcInNldFJlZlwiKTtcbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKC4uLnJlZnMpIHtcbiAgcmV0dXJuIChub2RlKSA9PiB7XG4gICAgbGV0IGhhc0NsZWFudXAgPSBmYWxzZTtcbiAgICBjb25zdCBjbGVhbnVwcyA9IHJlZnMubWFwKChyZWYpID0+IHtcbiAgICAgIGNvbnN0IGNsZWFudXAgPSBzZXRSZWYocmVmLCBub2RlKTtcbiAgICAgIGlmICghaGFzQ2xlYW51cCAmJiB0eXBlb2YgY2xlYW51cCA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgaGFzQ2xlYW51cCA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2xlYW51cDtcbiAgICB9KTtcbiAgICBpZiAoaGFzQ2xlYW51cCkge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGVhbnVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGNsZWFudXAgPSBjbGVhbnVwc1tpXTtcbiAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFJlZihyZWZzW2ldLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuX19uYW1lKGNvbXBvc2VSZWZzLCBcImNvbXBvc2VSZWZzXCIpO1xuZnVuY3Rpb24gdXNlQ29tcG9zZWRSZWZzKC4uLnJlZnMpIHtcbiAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKGNvbXBvc2VSZWZzKC4uLnJlZnMpLCByZWZzKTtcbn1cbl9fbmFtZSh1c2VDb21wb3NlZFJlZnMsIFwidXNlQ29tcG9zZWRSZWZzXCIpO1xuZXhwb3J0IHtcbiAgY29tcG9zZVJlZnMsXG4gIHVzZUNvbXBvc2VkUmVmc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\n");
|
|
41
|
-
|
|
42
|
-
/***/ }),
|
|
43
|
-
|
|
44
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs":
|
|
45
|
-
/*!*************************************************************!*\
|
|
46
|
-
!*** ./node_modules/@radix-ui/react-context/dist/index.mjs ***!
|
|
47
|
-
\*************************************************************/
|
|
48
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
49
|
-
|
|
50
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createContext: () => (/* binding */ createContext2),\n/* harmony export */ createContextScope: () => (/* binding */ createContextScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/create-context.tsx\n\n\n// @__NO_SIDE_EFFECTS__\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n Context.displayName = rootComponentName + \"Context\";\n const Provider = /* @__PURE__ */ __name((props) => {\n const { children, ...context } = props;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, options = {}) {\n const { optional = false } = options;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n}\n__name(createContext2, \"createContext\");\n// @__NO_SIDE_EFFECTS__\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n BaseContext.displayName = rootComponentName + \"Context\";\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = /* @__PURE__ */ __name((props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n }, \"Provider\");\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope, options = {}) {\n const { optional = false } = options;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n if (optional) return void 0;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n __name(useContext2, \"useContext\");\n return [Provider, useContext2];\n }\n __name(createContext3, \"createContext\");\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n });\n return /* @__PURE__ */ __name(function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n }, \"useScope\");\n }, \"createScope\");\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\n__name(createContextScope, \"createContextScope\");\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = /* @__PURE__ */ __name(() => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return /* @__PURE__ */ __name(function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n }, \"useComposedScopes\");\n }, \"createScope\");\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n__name(composeContextScopes, \"composeContextScopes\");\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0EsNERBQTRELDJCQUEyQjs7QUFFdkY7QUFDK0I7QUFDUztBQUN4QztBQUNBO0FBQ0Esa0JBQWtCLGdEQUFtQjtBQUNyQztBQUNBO0FBQ0EsWUFBWSx1QkFBdUI7QUFDbkMsa0JBQWtCLDBDQUFhO0FBQy9CLDJCQUEyQixzREFBRyxxQkFBcUIsaUJBQWlCO0FBQ3BFLEdBQUc7QUFDSDtBQUNBLGlEQUFpRDtBQUNqRCxZQUFZLG1CQUFtQjtBQUMvQixvQkFBb0IsNkNBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixhQUFhLDJCQUEyQixrQkFBa0I7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdEQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOEJBQThCO0FBQzVDO0FBQ0Esb0JBQW9CLDBDQUFhO0FBQ2pDLDZCQUE2QixzREFBRyxxQkFBcUIsaUJBQWlCO0FBQ3RFLEtBQUs7QUFDTDtBQUNBLDBEQUEwRDtBQUMxRCxjQUFjLG1CQUFtQjtBQUNqQztBQUNBLHNCQUFzQiw2Q0FBZ0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGFBQWEsMkJBQTJCLGtCQUFrQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsZ0RBQW1CO0FBQ2hDLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYSwwQ0FBYTtBQUMxQixpQkFBaUIsV0FBVyxVQUFVLE1BQU0sbUNBQW1DO0FBQy9FO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwyREFBMkQscUJBQXFCO0FBQ2hGO0FBQ0Esa0RBQWtELFVBQVU7QUFDNUQsaUJBQWlCO0FBQ2pCLE9BQU8sSUFBSTtBQUNYLGFBQWEsMENBQWEsVUFBVSxXQUFXLG9CQUFvQixnQkFBZ0I7QUFDbkYsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9kdWFuL2ZpbGVzL3BpLXdlYi9kaWdpdGFsLWFnZW50LXBsYXRmb3JtL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtY29udGV4dC9kaXN0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fbmFtZSA9ICh0YXJnZXQsIHZhbHVlKSA9PiBfX2RlZlByb3AodGFyZ2V0LCBcIm5hbWVcIiwgeyB2YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuXG4vLyBzcmMvY3JlYXRlLWNvbnRleHQudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuLy8gQF9fTk9fU0lERV9FRkZFQ1RTX19cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQyKHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xuICBjb25zdCBDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gIENvbnRleHQuZGlzcGxheU5hbWUgPSByb290Q29tcG9uZW50TmFtZSArIFwiQ29udGV4dFwiO1xuICBjb25zdCBQcm92aWRlciA9IC8qIEBfX1BVUkVfXyAqLyBfX25hbWUoKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XG4gICAgY29uc3QgdmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+IGNvbnRleHQsIE9iamVjdC52YWx1ZXMoY29udGV4dCkpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWUsIGNoaWxkcmVuIH0pO1xuICB9LCBcIlByb3ZpZGVyXCIpO1xuICBQcm92aWRlci5kaXNwbGF5TmFtZSA9IHJvb3RDb21wb25lbnROYW1lICsgXCJQcm92aWRlclwiO1xuICBmdW5jdGlvbiB1c2VDb250ZXh0Mihjb25zdW1lck5hbWUsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHsgb3B0aW9uYWwgPSBmYWxzZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0KTtcbiAgICBpZiAoY29udGV4dCkgcmV0dXJuIGNvbnRleHQ7XG4gICAgaWYgKGRlZmF1bHRDb250ZXh0ICE9PSB2b2lkIDApIHJldHVybiBkZWZhdWx0Q29udGV4dDtcbiAgICBpZiAob3B0aW9uYWwpIHJldHVybiB2b2lkIDA7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NvbnN1bWVyTmFtZX1cXGAgbXVzdCBiZSB1c2VkIHdpdGhpbiBcXGAke3Jvb3RDb21wb25lbnROYW1lfVxcYGApO1xuICB9XG4gIF9fbmFtZSh1c2VDb250ZXh0MiwgXCJ1c2VDb250ZXh0XCIpO1xuICByZXR1cm4gW1Byb3ZpZGVyLCB1c2VDb250ZXh0Ml07XG59XG5fX25hbWUoY3JlYXRlQ29udGV4dDIsIFwiY3JlYXRlQ29udGV4dFwiKTtcbi8vIEBfX05PX1NJREVfRUZGRUNUU19fXG5mdW5jdGlvbiBjcmVhdGVDb250ZXh0U2NvcGUoc2NvcGVOYW1lLCBjcmVhdGVDb250ZXh0U2NvcGVEZXBzID0gW10pIHtcbiAgbGV0IGRlZmF1bHRDb250ZXh0cyA9IFtdO1xuICBmdW5jdGlvbiBjcmVhdGVDb250ZXh0Myhyb290Q29tcG9uZW50TmFtZSwgZGVmYXVsdENvbnRleHQpIHtcbiAgICBjb25zdCBCYXNlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoZGVmYXVsdENvbnRleHQpO1xuICAgIEJhc2VDb250ZXh0LmRpc3BsYXlOYW1lID0gcm9vdENvbXBvbmVudE5hbWUgKyBcIkNvbnRleHRcIjtcbiAgICBjb25zdCBpbmRleCA9IGRlZmF1bHRDb250ZXh0cy5sZW5ndGg7XG4gICAgZGVmYXVsdENvbnRleHRzID0gWy4uLmRlZmF1bHRDb250ZXh0cywgZGVmYXVsdENvbnRleHRdO1xuICAgIGNvbnN0IFByb3ZpZGVyID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgocHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IHsgc2NvcGUsIGNoaWxkcmVuLCAuLi5jb250ZXh0IH0gPSBwcm9wcztcbiAgICAgIGNvbnN0IENvbnRleHQgPSBzY29wZT8uW3Njb3BlTmFtZV0/LltpbmRleF0gfHwgQmFzZUNvbnRleHQ7XG4gICAgICBjb25zdCB2YWx1ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gY29udGV4dCwgT2JqZWN0LnZhbHVlcyhjb250ZXh0KSk7XG4gICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlLCBjaGlsZHJlbiB9KTtcbiAgICB9LCBcIlByb3ZpZGVyXCIpO1xuICAgIFByb3ZpZGVyLmRpc3BsYXlOYW1lID0gcm9vdENvbXBvbmVudE5hbWUgKyBcIlByb3ZpZGVyXCI7XG4gICAgZnVuY3Rpb24gdXNlQ29udGV4dDIoY29uc3VtZXJOYW1lLCBzY29wZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICBjb25zdCB7IG9wdGlvbmFsID0gZmFsc2UgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBDb250ZXh0ID0gc2NvcGU/LltzY29wZU5hbWVdPy5baW5kZXhdIHx8IEJhc2VDb250ZXh0O1xuICAgICAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoQ29udGV4dCk7XG4gICAgICBpZiAoY29udGV4dCkgcmV0dXJuIGNvbnRleHQ7XG4gICAgICBpZiAoZGVmYXVsdENvbnRleHQgIT09IHZvaWQgMCkgcmV0dXJuIGRlZmF1bHRDb250ZXh0O1xuICAgICAgaWYgKG9wdGlvbmFsKSByZXR1cm4gdm9pZCAwO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBcXGAke2NvbnN1bWVyTmFtZX1cXGAgbXVzdCBiZSB1c2VkIHdpdGhpbiBcXGAke3Jvb3RDb21wb25lbnROYW1lfVxcYGApO1xuICAgIH1cbiAgICBfX25hbWUodXNlQ29udGV4dDIsIFwidXNlQ29udGV4dFwiKTtcbiAgICByZXR1cm4gW1Byb3ZpZGVyLCB1c2VDb250ZXh0Ml07XG4gIH1cbiAgX19uYW1lKGNyZWF0ZUNvbnRleHQzLCBcImNyZWF0ZUNvbnRleHRcIik7XG4gIGNvbnN0IGNyZWF0ZVNjb3BlID0gLyogQF9fUFVSRV9fICovIF9fbmFtZSgoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGVDb250ZXh0cyA9IGRlZmF1bHRDb250ZXh0cy5tYXAoKGRlZmF1bHRDb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBfX25hbWUoZnVuY3Rpb24gdXNlU2NvcGUoc2NvcGUpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRzID0gc2NvcGU/LltzY29wZU5hbWVdIHx8IHNjb3BlQ29udGV4dHM7XG4gICAgICByZXR1cm4gUmVhY3QudXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKHsgW2BfX3Njb3BlJHtzY29wZU5hbWV9YF06IHsgLi4uc2NvcGUsIFtzY29wZU5hbWVdOiBjb250ZXh0cyB9IH0pLFxuICAgICAgICBbc2NvcGUsIGNvbnRleHRzXVxuICAgICAgKTtcbiAgICB9LCBcInVzZVNjb3BlXCIpO1xuICB9LCBcImNyZWF0ZVNjb3BlXCIpO1xuICBjcmVhdGVTY29wZS5zY29wZU5hbWUgPSBzY29wZU5hbWU7XG4gIHJldHVybiBbY3JlYXRlQ29udGV4dDMsIGNvbXBvc2VDb250ZXh0U2NvcGVzKGNyZWF0ZVNjb3BlLCAuLi5jcmVhdGVDb250ZXh0U2NvcGVEZXBzKV07XG59XG5fX25hbWUoY3JlYXRlQ29udGV4dFNjb3BlLCBcImNyZWF0ZUNvbnRleHRTY29wZVwiKTtcbmZ1bmN0aW9uIGNvbXBvc2VDb250ZXh0U2NvcGVzKC4uLnNjb3Blcykge1xuICBjb25zdCBiYXNlU2NvcGUgPSBzY29wZXNbMF07XG4gIGlmIChzY29wZXMubGVuZ3RoID09PSAxKSByZXR1cm4gYmFzZVNjb3BlO1xuICBjb25zdCBjcmVhdGVTY29wZSA9IC8qIEBfX1BVUkVfXyAqLyBfX25hbWUoKCkgPT4ge1xuICAgIGNvbnN0IHNjb3BlSG9va3MgPSBzY29wZXMubWFwKChjcmVhdGVTY29wZTIpID0+ICh7XG4gICAgICB1c2VTY29wZTogY3JlYXRlU2NvcGUyKCksXG4gICAgICBzY29wZU5hbWU6IGNyZWF0ZVNjb3BlMi5zY29wZU5hbWVcbiAgICB9KSk7XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBfX25hbWUoZnVuY3Rpb24gdXNlQ29tcG9zZWRTY29wZXMob3ZlcnJpZGVTY29wZXMpIHtcbiAgICAgIGNvbnN0IG5leHRTY29wZXMgPSBzY29wZUhvb2tzLnJlZHVjZSgobmV4dFNjb3BlczIsIHsgdXNlU2NvcGUsIHNjb3BlTmFtZSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHNjb3BlUHJvcHMgPSB1c2VTY29wZShvdmVycmlkZVNjb3Blcyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY29wZSA9IHNjb3BlUHJvcHNbYF9fc2NvcGUke3Njb3BlTmFtZX1gXTtcbiAgICAgICAgcmV0dXJuIHsgLi4ubmV4dFNjb3BlczIsIC4uLmN1cnJlbnRTY29wZSB9O1xuICAgICAgfSwge30pO1xuICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgW2BfX3Njb3BlJHtiYXNlU2NvcGUuc2NvcGVOYW1lfWBdOiBuZXh0U2NvcGVzIH0pLCBbbmV4dFNjb3Blc10pO1xuICAgIH0sIFwidXNlQ29tcG9zZWRTY29wZXNcIik7XG4gIH0sIFwiY3JlYXRlU2NvcGVcIik7XG4gIGNyZWF0ZVNjb3BlLnNjb3BlTmFtZSA9IGJhc2VTY29wZS5zY29wZU5hbWU7XG4gIHJldHVybiBjcmVhdGVTY29wZTtcbn1cbl9fbmFtZShjb21wb3NlQ29udGV4dFNjb3BlcywgXCJjb21wb3NlQ29udGV4dFNjb3Blc1wiKTtcbmV4cG9ydCB7XG4gIGNyZWF0ZUNvbnRleHQyIGFzIGNyZWF0ZUNvbnRleHQsXG4gIGNyZWF0ZUNvbnRleHRTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\n");
|
|
51
|
-
|
|
52
|
-
/***/ }),
|
|
53
|
-
|
|
54
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs":
|
|
55
|
-
/*!***************************************************************!*\
|
|
56
|
-
!*** ./node_modules/@radix-ui/react-direction/dist/index.mjs ***!
|
|
57
|
-
\***************************************************************/
|
|
58
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
59
|
-
|
|
60
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DirectionProvider: () => (/* binding */ DirectionProvider),\n/* harmony export */ Provider: () => (/* binding */ Provider),\n/* harmony export */ useDirection: () => (/* binding */ useDirection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ DirectionProvider,Provider,useDirection auto */ var __defProp = Object.defineProperty;\nvar __name = (target, value)=>__defProp(target, \"name\", {\n value,\n configurable: true\n });\n// src/direction.tsx\n\n\nvar DirectionContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0);\nvar DirectionProvider = /* @__PURE__ */ __name((props)=>{\n const { dir, children } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DirectionContext.Provider, {\n value: dir,\n children\n });\n}, \"DirectionProvider\");\nfunction useDirection(localDir) {\n const globalDir = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\n__name(useDirection, \"useDirection\");\nvar Provider = DirectionProvider;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUF1QjtBQWVkO0FBWlQsSUFBTSxpQ0FBeUIsaURBQXFDLE1BQVM7QUFVN0UsSUFBTSxvQkFBc0Qsd0JBQUM7SUFDM0QsTUFBTSxFQUFFLEtBQUssU0FBUyxJQUFJO0lBQzFCLE9BQU8sdUVBQUMsaUJBQWlCLFVBQWpCO1FBQTBCLE9BQU87UUFBTTtJQUFBLENBQVM7QUFDMUQsR0FINEQ7QUFPNUQsU0FBUyxhQUFhLFVBQXNCO0lBQzFDLE1BQU0sWUFBa0IsOENBQVcsZ0JBQWdCO0lBQ25ELE9BQU8sWUFBWSxhQUFhO0FBQ2xDO0FBSFM7QUFLVCxJQUFNLFdBQVciLCJzb3VyY2VzIjpbIi9Vc2Vycy9kdWFuL2ZpbGVzL3BpLXdlYi9zcmMvZGlyZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbnR5cGUgRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcbmNvbnN0IERpcmVjdGlvbkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PERpcmVjdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlyZWN0aW9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmludGVyZmFjZSBEaXJlY3Rpb25Qcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGRpcjogRGlyZWN0aW9uO1xufVxuY29uc3QgRGlyZWN0aW9uUHJvdmlkZXI6IFJlYWN0LkZDPERpcmVjdGlvblByb3ZpZGVyUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZGlyLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIHJldHVybiA8RGlyZWN0aW9uQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17ZGlyfT57Y2hpbGRyZW59PC9EaXJlY3Rpb25Db250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gdXNlRGlyZWN0aW9uKGxvY2FsRGlyPzogRGlyZWN0aW9uKSB7XG4gIGNvbnN0IGdsb2JhbERpciA9IFJlYWN0LnVzZUNvbnRleHQoRGlyZWN0aW9uQ29udGV4dCk7XG4gIHJldHVybiBsb2NhbERpciB8fCBnbG9iYWxEaXIgfHwgJ2x0cic7XG59XG5cbmNvbnN0IFByb3ZpZGVyID0gRGlyZWN0aW9uUHJvdmlkZXI7XG5cbmV4cG9ydCB7XG4gIHVzZURpcmVjdGlvbixcbiAgLy9cbiAgUHJvdmlkZXIsXG4gIC8vXG4gIERpcmVjdGlvblByb3ZpZGVyLFxufTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs\n");
|
|
61
|
-
|
|
62
|
-
/***/ }),
|
|
63
|
-
|
|
64
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-presence/dist/index.mjs":
|
|
65
|
-
/*!**************************************************************!*\
|
|
66
|
-
!*** ./node_modules/@radix-ui/react-presence/dist/index.mjs ***!
|
|
67
|
-
\**************************************************************/
|
|
68
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
69
|
-
|
|
70
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Presence: () => (/* binding */ Presence),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ Presence,Root auto */ var __defProp = Object.defineProperty;\nvar __name = (target, value)=>__defProp(target, \"name\", {\n value,\n configurable: true\n });\n// src/presence.tsx\n\n\n// src/use-state-machine.tsx\n\nfunction useStateMachine(initialState, machine) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useReducer({\n \"useStateMachine.useReducer\": (state, event)=>{\n const nextState = machine[state][event];\n return nextState ?? state;\n }\n }[\"useStateMachine.useReducer\"], initialState);\n}\n__name(useStateMachine, \"useStateMachine\");\n// src/presence.tsx\nvar Presence = /* @__PURE__ */ __name((props)=>{\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({\n present: presence.isPresent\n }) : react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children);\n const ref = useStableComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n ref\n }) : null;\n}, \"Presence\");\nfunction usePresence(present) {\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const stylesRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const prevPresentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(present);\n const prevAnimationNameRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"none\");\n const mountAnimationNameRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0);\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"usePresence.useEffect\": ()=>{\n if (state === \"mounted\") {\n prevAnimationNameRef.current = mountAnimationNameRef.current ?? getAnimationName(stylesRef.current);\n mountAnimationNameRef.current = void 0;\n } else {\n prevAnimationNameRef.current = \"none\";\n }\n }\n }[\"usePresence.useEffect\"], [\n state\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)({\n \"usePresence.useLayoutEffect\": ()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n mountAnimationNameRef.current = currentAnimationName;\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }\n }[\"usePresence.useLayoutEffect\"], [\n present,\n send\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)({\n \"usePresence.useLayoutEffect\": ()=>{\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = /* @__PURE__ */ __name({\n \"usePresence.useLayoutEffect.handleAnimationEnd\": (event)=>{\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout({\n \"usePresence.useLayoutEffect.handleAnimationEnd\": ()=>{\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationEnd\"]);\n }\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationEnd\"], \"handleAnimationEnd\");\n const handleAnimationStart = /* @__PURE__ */ __name({\n \"usePresence.useLayoutEffect.handleAnimationStart\": (event)=>{\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n }\n }[\"usePresence.useLayoutEffect.handleAnimationStart\"], \"handleAnimationStart\");\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return ({\n \"usePresence.useLayoutEffect\": ()=>{\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n }\n })[\"usePresence.useLayoutEffect\"];\n } else {\n send(\"ANIMATION_END\");\n }\n }\n }[\"usePresence.useLayoutEffect\"], [\n node,\n send\n ]);\n return {\n isPresent: [\n \"mounted\",\n \"unmountSuspended\"\n ].includes(state),\n ref: react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"usePresence.useCallback\": (node2)=>{\n if (node2) {\n const styles = getComputedStyle(node2);\n stylesRef.current = styles;\n mountAnimationNameRef.current = getAnimationName(styles);\n } else {\n stylesRef.current = null;\n }\n setNode(node2);\n }\n }[\"usePresence.useCallback\"], [])\n };\n}\n__name(usePresence, \"usePresence\");\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\n__name(setRef, \"setRef\");\nfunction useStableComposedRefs(...refs) {\n const refsRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(refs);\n refsRef.current = refs;\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"useStableComposedRefs.useCallback\": (node)=>{\n const currentRefs = refsRef.current;\n let hasCleanup = false;\n const cleanups = currentRefs.map({\n \"useStableComposedRefs.useCallback.cleanups\": (ref)=>{\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n }\n }[\"useStableComposedRefs.useCallback.cleanups\"]);\n if (hasCleanup) {\n return ({\n \"useStableComposedRefs.useCallback\": ()=>{\n for(let i = 0; i < cleanups.length; i++){\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n } else {\n setRef(currentRefs[i], null);\n }\n }\n }\n })[\"useStableComposedRefs.useCallback\"];\n }\n }\n }[\"useStableComposedRefs.useCallback\"], []);\n}\n__name(useStableComposedRefs, \"useStableComposedRefs\");\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\n__name(getAnimationName, \"getAnimationName\");\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n__name(getElementRef, \"getElementRef\");\nvar Root = Presence;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDUzs7QUNEVDtBQVdoQixTQUFTLGdCQUNkLGNBQ0EsU0FDQTtJQUNBLE9BQWE7c0NBQVcsQ0FBQyxPQUF3QjtZQUMvQyxNQUFNLFlBQWEsUUFBUSxLQUFLLEVBQVUsS0FBSztZQUMvQyxPQUFPLGFBQWE7UUFDdEI7cUNBQUcsWUFBWTtBQUNqQjtBQVJnQjs7QURGaEIsSUFBTSxXQUFvQyx3QkFBQztJQUN6QyxNQUFNLEVBQUUsU0FBUyxTQUFTLElBQUk7SUFDOUIsTUFBTSxXQUFXLFlBQVksT0FBTztJQUVwQyxNQUFNLFFBQ0osT0FBTyxhQUFhLGFBQ2hCLFNBQVM7UUFBRSxTQUFTLFNBQVM7SUFBVSxDQUFDLElBQ2xDLDRDQUFTLEtBQUssUUFBUTtJQUdsQyxNQUFNLE1BQU0sc0JBQXNCLFNBQVMsS0FBSyxjQUFjLEtBQUssQ0FBQztJQUNwRSxNQUFNLGFBQWEsT0FBTyxhQUFhO0lBQ3ZDLE9BQU8sY0FBYyxTQUFTLDBCQUFrQixnREFBYSxPQUFPO1FBQUU7SUFBSSxDQUFDLElBQUk7QUFDakYsR0FiMEM7QUFtQjFDLFNBQVMsWUFBWSxTQUFrQjtJQUNyQyxNQUFNLENBQUMsTUFBTSxPQUFPLElBQVUsNENBQXNCO0lBQ3BELE1BQU0sWUFBa0IsMENBQW1DLElBQUk7SUFDL0QsTUFBTSxpQkFBdUIsMENBQU8sT0FBTztJQUMzQyxNQUFNLHVCQUE2QiwwQ0FBZSxNQUFNO0lBQ3hELE1BQU0sd0JBQThCLDBDQUEyQixNQUFTO0lBQ3hFLE1BQU0sZUFBZSxVQUFVLFlBQVk7SUFDM0MsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLGdCQUFnQixjQUFjO1FBQ2xELFNBQVM7WUFDUCxTQUFTO1lBQ1QsZUFBZTtRQUNqQjtRQUNBLGtCQUFrQjtZQUNoQixPQUFPO1lBQ1AsZUFBZTtRQUNqQjtRQUNBLFdB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QU07SUFDdkI7SUFHQSxPQUFPLFFBQVEsTUFBTSxPQUFRLFFBQWdCO0FBQy9DO0FBakJTO0FBbUJULElBQU0sT0FBTyIsInNvdXJjZXMiOlsiL1VzZXJzL2R1YW4vZmlsZXMvcGktd2ViL3NyYy9wcmVzZW5jZS50c3giLCIvVXNlcnMvZHVhbi9maWxlcy9waS13ZWIvc3JjL3VzZS1zdGF0ZS1tYWNoaW5lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlU3RhdGVNYWNoaW5lIH0gZnJvbSAnLi91c2Utc3RhdGUtbWFjaGluZSc7XG5cbmludGVyZmFjZSBQcmVzZW5jZVByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudCB8ICgocHJvcHM6IHsgcHJlc2VudDogYm9vbGVhbiB9KSA9PiBSZWFjdC5SZWFjdEVsZW1lbnQpO1xuICBwcmVzZW50OiBib29sZWFuO1xufVxuXG5jb25zdCBQcmVzZW5jZTogUmVhY3QuRkM8UHJlc2VuY2VQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBwcmVzZW50LCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IHByZXNlbmNlID0gdXNlUHJlc2VuY2UocHJlc2VudCk7XG5cbiAgY29uc3QgY2hpbGQgPSAoXG4gICAgdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGNoaWxkcmVuKHsgcHJlc2VudDogcHJlc2VuY2UuaXNQcmVzZW50IH0pXG4gICAgICA6IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICkgYXMgUmVhY3QuUmVhY3RFbGVtZW50PHsgcmVmPzogUmVhY3QuUmVmPEhUTUxFbGVtZW50PiB9PjtcblxuICBjb25zdCByZWYgPSB1c2VTdGFibGVDb21wb3NlZFJlZnMocHJlc2VuY2UucmVmLCBnZXRFbGVtZW50UmVmKGNoaWxkKSk7XG4gIGNvbnN0IGZvcmNlTW91bnQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbic7XG4gIHJldHVybiBmb3JjZU1vdW50IHx8IHByZXNlbmNlLmlzUHJlc2VudCA/IFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgeyByZWYgfSkgOiBudWxsO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogdXNlUHJlc2VuY2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gdXNlUHJlc2VuY2UocHJlc2VudDogYm9vbGVhbikge1xuICBjb25zdCBbbm9kZSwgc2V0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRWxlbWVudD4oKTtcbiAgY29uc3Qgc3R5bGVzUmVmID0gUmVhY3QudXNlUmVmPENTU1N0eWxlRGVjbGFyYXRpb24gfCBudWxsPihudWxsKTtcbiAgY29uc3QgcHJldlByZXNlbnRSZWYgPSBSZWFjdC51c2VSZWYocHJlc2VudCk7XG4gIGNvbnN0IHByZXZBbmltYXRpb25OYW1lUmVmID0gUmVhY3QudXNlUmVmPHN0cmluZz4oJ25vbmUnKTtcbiAgY29uc3QgbW91bnRBbmltYXRpb25OYW1lUmVmID0gUmVhY3QudXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgaW5pdGlhbFN0YXRlID0gcHJlc2VudCA/ICdtb3VudGVkJyA6ICd1bm1vdW50ZWQnO1xuICBjb25zdCBbc3RhdGUsIHNlbmRdID0gdXNlU3RhdGVNYWNoaW5lKGluaXRpYWxTdGF0ZSwge1xuICAgIG1vdW50ZWQ6IHtcbiAgICAgIFVOTU9VTlQ6ICd1bm1vdW50ZWQnLFxuICAgICAgQU5JTUFUSU9OX09VVDogJ3VubW91bnRTdXNwZW5kZWQnLFxuICAgIH0sXG4gICAgdW5tb3VudFN1c3BlbmRlZDoge1xuICAgICAgTU9VTlQ6ICdtb3VudGVkJyxcbiAgICAgIEFOSU1BVElPTl9FTkQ6ICd1bm1vdW50ZWQnLFxuICAgIH0sXG4gICAgdW5tb3VudGVkOiB7XG4gICAgICBNT1VOVDogJ21vdW50ZWQnLFxuICAgIH0sXG4gIH0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN0YXRlID09PSAnbW91bnRlZCcpIHtcbiAgICAgIC8vIFVzZSB0aGUgYW5pbWF0aW9uIG5hbWUgY2FwdHVyZWQgZHVyaW5nIHRoZSBsYXlvdXQgcGhhc2UgKG9yIHRoZSByZWZcbiAgICAgIC8vIGNhbGxiYWNrIG9uIGZpcnN0IG1vdW50KS4gQnkgdGhlIHRpbWUgdGhpcyBwYXNzaXZlIGVmZmVjdCBydW5zLFxuICAgICAgLy8gc2libGluZyBlZmZlY3RzIGxpa2UgcmVhY3QtcmVtb3ZlLXNjcm9sbCBhbmQgRGlzbWlzc2FibGVMYXllciBtYXkgaGF2ZVxuICAgICAgLy8gZGlydGllZCBib2R5IHN0eWxlcywgc28gcmUtcmVhZGluZyBmcm9tIHRoZSBsaXZlIENTU1N0eWxlRGVjbGFyYXRpb25cbiAgICAgIC8vIGhlcmUgd291bGQgZm9yY2UgYW4gZXhwZW5zaXZlIHN5bmNocm9ub3VzIHN0eWxlIHJlY2FsY3VsYXRpb24uXG4gICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8xNjM0XG4gICAgICBwcmV2QW5pbWF0aW9uTmFtZVJlZi5jdXJyZW50ID1cbiAgICAgICAgbW91bnRBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPz8gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgICBtb3VudEFuaW1hdGlvbk5hbWVSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudCA9ICdub25lJztcbiAgICB9XG4gIH0sIFtzdGF0ZV0pO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc3R5bGVzID0gc3R5bGVzUmVmLmN1cnJlbnQ7XG4gICAgY29uc3Qgd2FzUHJlc2VudCA9IHByZXZQcmVzZW50UmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgaGFzUHJlc2VudENoYW5nZWQgPSB3YXNQcmVzZW50ICE9PSBwcmVzZW50O1xuXG4gICAgaWYgKGhhc1ByZXNlbnRDaGFuZ2VkKSB7XG4gICAgICBjb25zdCBwcmV2QW5pbWF0aW9uTmFtZSA9IHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQ7XG4gICAgICBjb25zdCBjdXJyZW50QW5pbWF0aW9uTmFtZSA9IGdldEFuaW1hdGlvbk5hbWUoc3R5bGVzKTtcblxuICAgICAgaWYgKHByZXNlbnQpIHtcbiAgICAgICAgLy8gQ2FwdHVyZSB0aGUgYW5pbWF0aW9uIG5hbWUgbm93LCB3aGlsZSBzdHlsZXMgYXJlIHN0aWxsIFwiY2xlYW5cIlxuICAgICAgICAvLyAoYmVmb3JlIHNpYmxpbmcgcGFzc2l2ZSBlZmZlY3RzIGRpcnR5IHRoZSBib2R5KS4gVGhlIGxhdGVyIHBhc3NpdmVcbiAgICAgICAgLy8gZWZmZWN0IHdpbGwgcmVhZCBmcm9tIHRoaXMgcmVmIGluc3RlYWQgb2YgdGhlIGxpdmVcbiAgICAgICAgLy8gQ1NTU3R5bGVEZWNsYXJhdGlvbiwgYXZvaWRpbmcgYSBmb3JjZWQgc3R5bGUgcmVjYWxjdWxhdGlvbi5cbiAgICAgICAgbW91bnRBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBjdXJyZW50QW5pbWF0aW9uTmFtZTtcbiAgICAgICAgc2VuZCgnTU9VTlQnKTtcbiAgICAgIH0gZWxzZSBpZiAoY3VycmVudEFuaW1hdGlvbk5hbWUgPT09ICdub25lJyB8fCBzdHlsZXM/LmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBleGl0IGFuaW1hdGlvbiBvciB0aGUgZWxlbWVudCBpcyBoaWRkZW4sIGFuaW1hdGlvbnMgd29uJ3QgcnVuXG4gICAgICAgIC8vIHNvIHdlIHVubW91bnQgaW5zdGFudGx5XG4gICAgICAgIHNlbmQoJ1VOTU9VTlQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaGVuIGBwcmVzZW50YCBjaGFuZ2VzIHRvIGBmYWxzZWAsIHdlIGNoZWNrIGNoYW5nZXMgdG8gYW5pbWF0aW9uLW5hbWUgdG9cbiAgICAgICAgICogZGV0ZXJtaW5lIHdoZXRoZXIgYW4gYW5pbWF0aW9uIGhhcyBzdGFydGVkLiBXZSBjaG9zZSB0aGlzIGFwcHJvYWNoIChyZWFkaW5nXG4gICAgICAgICAqIGNvbXB1dGVkIHN0eWxlcykgYmVjYXVzZSB0aGVyZSBpcyBubyBgYW5pbWF0aW9ucnVuYCBldmVudCBhbmQgYGFuaW1hdGlvbnN0YXJ0YFxuICAgICAgICAgKiBmaXJlcyBhZnRlciBgYW5pbWF0aW9uLWRlbGF5YCBoYXMgZXhwaXJlZCB3aGljaCB3b3VsZCBiZSB0b28gbGF0ZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGlzQW5pbWF0aW5nID0gcHJldkFuaW1hdGlvbk5hbWUgIT09IGN1cnJlbnRBbmltYXRpb25OYW1lO1xuXG4gICAgICAgIGlmICh3YXNQcmVzZW50ICYmIGlzQW5pbWF0aW5nKSB7XG4gICAgICAgICAgc2VuZCgnQU5JTUFUSU9OX09VVCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbmQoJ1VOTU9VTlQnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwcmV2UHJlc2VudFJlZi5jdXJyZW50ID0gcHJlc2VudDtcbiAgICB9XG4gIH0sIFtwcmVzZW50LCBzZW5kXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAobm9kZSkge1xuICAgICAgbGV0IHRpbWVvdXRJZDogbnVtYmVyO1xuICAgICAgY29uc3Qgb3duZXJXaW5kb3cgPSBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPz8gd2luZG93O1xuICAgICAgLyoqXG4gICAgICAgKiBUcmlnZ2VyaW5nIGFuIEFOSU1BVElPTl9PVVQgZHVyaW5nIGFuIEFOSU1BVElPTl9JTiB3aWxsIGZpcmUgYW4gYGFuaW1hdGlvbmNhbmNlbGBcbiAgICAgICAqIGV2ZW50IGZvciBBTklNQVRJT05fSU4gYWZ0ZXIgd2UgaGF2ZSBlbnRlcmVkIGB1bm1vdW50U3VzcGVuZGVkYCBzdGF0ZS4gU28sIHdlXG4gICAgICAgKiBtYWtlIHN1cmUgd2Ugb25seSB0cmlnZ2VyIEFOSU1BVElPTl9FTkQgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIGFuaW1hdGlvbi5cbiAgICAgICAqL1xuICAgICAgY29uc3QgaGFuZGxlQW5pbWF0aW9uRW5kID0gKGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50QW5pbWF0aW9uTmFtZSA9IGdldEFuaW1hdGlvbk5hbWUoc3R5bGVzUmVmLmN1cnJlbnQpO1xuICAgICAgICAvLyBUaGUgZXZlbnQuYW5pbWF0aW9uTmFtZSBpcyB1bmVzY2FwZWQgZm9yIENTUyBzeW50YXgsXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gZXNjYXBlIGl0IHRvIGNvbXBhcmUgd2l0aCB0aGUgYW5pbWF0aW9uTmFtZSBjb21wdXRlZCBmcm9tIHRoZSBzdHlsZS5cbiAgICAgICAgY29uc3QgaXNDdXJyZW50QW5pbWF0aW9uID0gY3VycmVudEFuaW1hdGlvbk5hbWUuaW5jbHVkZXMoQ1NTLmVzY2FwZShldmVudC5hbmltYXRpb25OYW1lKSk7XG4gICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IG5vZGUgJiYgaXNDdXJyZW50QW5pbWF0aW9uKSB7XG4gICAgICAgICAgLy8gV2l0aCBSZWFjdCAxOCBjb25jdXJyZW5jeSB0aGlzIHVwZGF0ZSBpcyBhcHBsaWVkIGEgZnJhbWUgYWZ0ZXIgdGhlXG4gICAgICAgICAgLy8gYW5pbWF0aW9uIGVuZHMsIGNyZWF0aW5nIGEgZmxhc2ggb2YgdmlzaWJsZSBjb250ZW50LiBCeSBzZXR0aW5nIHRoZVxuICAgICAgICAgIC8vIGFuaW1hdGlvbiBmaWxsIG1vZGUgdG8gXCJmb3J3YXJkc1wiLCB3ZSBmb3JjZSB0aGUgbm9kZSB0byBrZWVwIHRoZVxuICAgICAgICAgIC8vIHN0eWxlcyBvZiB0aGUgbGFzdCBrZXlmcmFtZSwgcmVtb3ZpbmcgdGhlIGZsYXNoLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gUHJldmlvdXNseSB3ZSBmbHVzaGVkIHRoZSB1cGRhdGUgdmlhIFJlYWN0RG9tLmZsdXNoU3luYywgYnV0IHdpdGhcbiAgICAgICAgICAvLyBleGl0IGFuaW1hdGlvbnMgdGhpcyByZXN1bHRlZCBpbiB0aGUgbm9kZSBiZWluZyByZW1vdmVkIGZyb20gdGhlXG4gICAgICAgICAgLy8gRE9NIGJlZm9yZSB0aGUgc3ludGhldGljIGFuaW1hdGlvbkVuZCBldmVudCB3YXMgZGlzcGF0Y2hlZCwgbWVhbmluZ1xuICAgICAgICAgIC8vIHVzZXItcHJvdmlkZWQgZXZlbnQgaGFuZGxlcnMgd291bGQgbm90IGJlIGNhbGxlZC5cbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmFkaXgtdWkvcHJpbWl0aXZlcy9wdWxsLzE4NDlcbiAgICAgICAgICBzZW5kKCdBTklNQVRJT05fRU5EJyk7XG4gICAgICAgICAgaWYgKCFwcmV2UHJlc2VudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RmlsbE1vZGUgPSBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlO1xuICAgICAgICAgICAgbm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9ICdmb3J3YXJkcyc7XG4gICAgICAgICAgICAvLyBSZXNldCB0aGUgc3R5bGUgYWZ0ZXIgdGhlIG5vZGUgaGFkIHRpbWUgdG8gdW5tb3VudCAoZm9yIGNhc2VzXG4gICAgICAgICAgICAvLyB3aGVyZSB0aGUgY29tcG9uZW50IGNob29zZXMgbm90IHRvIHVubW91bnQpLiBEb2luZyB0aGlzIGFueVxuICAgICAgICAgICAgLy8gc29vbmVyIHRoYW4gYHNldFRpbWVvdXRgIChlLmcuIHdpdGggYHJlcXVlc3RBbmltYXRpb25GcmFtZWApXG4gICAgICAgICAgICAvLyBzdGlsbCBjYXVzZXMgYSBmbGFzaC5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IG93bmVyV2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAobm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZSA9PT0gJ2ZvcndhcmRzJykge1xuICAgICAgICAgICAgICAgIG5vZGUuc3R5bGUuYW5pbWF0aW9uRmlsbE1vZGUgPSBjdXJyZW50RmlsbE1vZGU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZUFuaW1hdGlvblN0YXJ0ID0gKGV2ZW50OiBBbmltYXRpb25FdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBub2RlKSB7XG4gICAgICAgICAgLy8gaWYgYW5pbWF0aW9uIG9jY3VycmVkLCBzdG9yZSBpdHMgbmFtZSBhcyB0aGUgcHJldmlvdXMgYW5pbWF0aW9uLlxuICAgICAgICAgIHByZXZBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlc1JlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uc3RhcnQnLCBoYW5kbGVBbmltYXRpb25TdGFydCk7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmNhbmNlbCcsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBvd25lcldpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25zdGFydCcsIGhhbmRsZUFuaW1hdGlvblN0YXJ0KTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25jYW5jZWwnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcmFuc2l0aW9uIHRvIHRoZSB1bm1vdW50ZWQgc3RhdGUgaWYgdGhlIG5vZGUgaXMgcmVtb3ZlZCBwcmVtYXR1cmVseS5cbiAgICAgIC8vIFdlIGF2b2lkIGRvaW5nIHNvIGR1cmluZyBjbGVhbnVwIGFzIHRoZSBub2RlIG1heSBjaGFuZ2UgYnV0IHN0aWxsIGV4aXN0LlxuICAgICAgc2VuZCgnQU5JTUFUSU9OX0VORCcpO1xuICAgIH1cbiAgfSwgW25vZGUsIHNlbmRdKTtcblxuICByZXR1cm4ge1xuICAgIGlzUHJlc2VudDogWydtb3VudGVkJywgJ3VubW91bnRTdXNwZW5kZWQnXS5pbmNsdWRlcyhzdGF0ZSksXG4gICAgcmVmOiBSZWFjdC51c2VDYWxsYmFjaygobm9kZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgICAgIHN0eWxlc1JlZi5jdXJyZW50ID0gc3R5bGVzO1xuICAgICAgICAvLyBFYWdlcmx5IHJlYWQgdGhlIGFuaW1hdGlvbiBuYW1lIHdoaWxlIHN0eWxlcyBhcmUgY2xlYW4uIFJlZlxuICAgICAgICAvLyBjYWxsYmFja3MgZmlyZSBkdXJpbmcgdGhlIGNvbW1pdCBwaGFzZSwgYmVmb3JlIGFueSBwYXNzaXZlIGVmZmVjdHNcbiAgICAgICAgLy8gY2FuIGRpcnR5IGJvZHkgc3R5bGVzLiBUaGlzIGNhY2hlZCB2YWx1ZSBpcyBjb25zdW1lZCBieSB0aGUgcGFzc2l2ZVxuICAgICAgICAvLyBlZmZlY3QgdGhhdCByZWNvcmRzIHByZXZBbmltYXRpb25OYW1lUmVmLCBsZXR0aW5nIGl0IHNraXAgYVxuICAgICAgICAvLyByZWR1bmRhbnQgKGFuZCBleHBlbnNpdmUpIGxpdmUtc3R5bGUgcmVhZC5cbiAgICAgICAgbW91bnRBbmltYXRpb25OYW1lUmVmLmN1cnJlbnQgPSBnZXRBbmltYXRpb25OYW1lKHN0eWxlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdHlsZXNSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB9XG4gICAgICBzZXROb2RlKG5vZGUpO1xuICAgIH0sIFtdKSxcbiAgfTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFBvc3NpYmxlUmVmPFQ+ID0gUmVhY3QuUmVmPFQ+IHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBzZXRSZWY8VD4ocmVmOiBQb3NzaWJsZVJlZjxUPiwgdmFsdWU6IFQgfCBudWxsKSB7XG4gIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHJlZih2YWx1ZSk7XG4gIH0gZWxzZSBpZiAocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFVubGlrZSBgdXNlQ29tcG9zZWRSZWZzYCwgdGhlIHJldHVybmVkIGNhbGxiYWNrIG5ldmVyIGNoYW5nZXMgaWRlbnRpdHksIGV2ZW5cbiAqIHdoZW4gdGhlIGNvbXBvc2VkIHJlZnMgZG8uIFRoaXMgbWF0dGVycyBpbiBSZWFjdCAxOTogd2hlbiBhIGNhbGxiYWNrIHJlZidzXG4gKiBpZGVudGl0eSBjaGFuZ2VzIGJldHdlZW4gcmVuZGVycywgUmVhY3QgZGV0YWNoZXMgdGhlIHByZXZpb3VzIHJlZiAoY2FsbHMgaXRcbiAqIHdpdGggYG51bGxgKSBhbmQgYXR0YWNoZXMgdGhlIG5ldyBvbmUgb24gZXZlcnkgY29tbWl0LiBCZWNhdXNlIGBQcmVzZW5jZWBcbiAqIGNhbGxzIGBzZXROb2RlYCBmcm9tIGl0cyBvd24gcmVmLCBhbiB1bnN0YWJsZSBjb25zdW1lciByZWYgd291bGQgb3RoZXJ3aXNlXG4gKiBjYXVzZSBSZWFjdCB0byByZS1ydW4gdGhhdCB1cGRhdGUgb24gZXZlcnkgY29tbWl0LCByZXN1bHRpbmcgaW4gYSBcIk1heGltdW1cbiAqIHVwZGF0ZSBkZXB0aCBleGNlZWRlZFwiIGxvb3AuXG4gKlxuICogVGhlIGxhdGVzdCByZWZzIGFyZSBhbHdheXMgcmVhZCBhdCBhdHRhY2gvZGV0YWNoIHRpbWUsIHNvIHRoZSBtb3N0IHJlY2VudFxuICogY29uc3VtZXIgcmVmIHN0aWxsIHJlY2VpdmVzIHRoZSBub2RlIHdoZW4gaXQgbW91bnRzIG9yIHVubW91bnRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3JhZGl4LXVpL3ByaW1pdGl2ZXMvaXNzdWVzLzM2NjRcbiAqL1xuZnVuY3Rpb24gdXNlU3RhYmxlQ29tcG9zZWRSZWZzPFQ+KC4uLnJlZnM6IFBvc3NpYmxlUmVmPFQ+W10pOiBSZWFjdC5SZWZDYWxsYmFjazxUPiB7XG4gIC8vIEtlZXAgdGhlIGxhdGVzdCByZWZzIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGNhbGxiYWNrIGlkZW50aXR5LiBBc3NpZ25pbmcgZHVyaW5nIHJlbmRlciBpc1xuICAvLyBzYWZlIGhlcmUgYmVjYXVzZSB3ZSBvbmx5IGV2ZXIgcmVhZCBgLmN1cnJlbnRgIGxhdGVyIChhdCBjb21taXQgdGltZSwgaW4gdGhlIHJlZiBjYWxsYmFjaykuXG4gIGNvbnN0IHJlZnNSZWYgPSBSZWFjdC51c2VSZWYocmVmcyk7XG4gIHJlZnNSZWYuY3VycmVudCA9IHJlZnM7XG5cbiAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKChub2RlOiBUIHwgbnVsbCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRSZWZzID0gcmVmc1JlZi5jdXJyZW50O1xuICAgIGxldCBoYXNDbGVhbnVwID0gZmFsc2U7XG4gICAgY29uc3QgY2xlYW51cHMgPSBjdXJyZW50UmVmcy5tYXAoKHJlZikgPT4ge1xuICAgICAgY29uc3QgY2xlYW51cCA9IHNldFJlZihyZWYsIG5vZGUpO1xuICAgICAgaWYgKCFoYXNDbGVhbnVwICYmIHR5cGVvZiBjbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGhhc0NsZWFudXAgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsZWFudXA7XG4gICAgfSk7XG5cbiAgICBpZiAoaGFzQ2xlYW51cCkge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGVhbnVwcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGNsZWFudXAgPSBjbGVhbnVwc1tpXTtcbiAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0UmVmKGN1cnJlbnRSZWZzW2ldLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9LCBbXSk7XG59XG5cbmZ1bmN0aW9uIGdldEFuaW1hdGlvbk5hbWUoc3R5bGVzOiBDU1NTdHlsZURlY2xhcmF0aW9uIHwgbnVsbCkge1xuICByZXR1cm4gc3R5bGVzPy5hbmltYXRpb25OYW1lIHx8ICdub25lJztcbn1cblxuLy8gQmVmb3JlIFJlYWN0IDE5IGFjY2Vzc2luZyBgZWxlbWVudC5wcm9wcy5yZWZgIHdpbGwgdGhyb3cgYSB3YXJuaW5nIGFuZCBzdWdnZXN0IHVzaW5nIGBlbGVtZW50LnJlZmBcbi8vIEFmdGVyIFJlYWN0IDE5IGFjY2Vzc2luZyBgZWxlbWVudC5yZWZgIGRvZXMgdGhlIG9wcG9zaXRlLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjgzNDhcbi8vXG4vLyBBY2Nlc3MgdGhlIHJlZiB1c2luZyB0aGUgbWV0aG9kIHRoYXQgZG9lc24ndCB5aWVsZCBhIHdhcm5pbmcuXG5mdW5jdGlvbiBnZXRFbGVtZW50UmVmKGVsZW1lbnQ6IFJlYWN0LlJlYWN0RWxlbWVudDx7IHJlZj86IFJlYWN0LlJlZjx1bmtub3duPiB9Pikge1xuICAvLyBSZWFjdCA8PTE4IGluIERFVlxuICBsZXQgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCAncmVmJyk/LmdldDtcbiAgbGV0IG1heVdhcm4gPSBnZXR0ZXIgJiYgJ2lzUmVhY3RXYXJuaW5nJyBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiAoZWxlbWVudCBhcyBhbnkpLnJlZjtcbiAgfVxuXG4gIC8vIFJlYWN0IDE5IGluIERFVlxuICBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsICdyZWYnKT8uZ2V0O1xuICBtYXlXYXJuID0gZ2V0dGVyICYmICdpc1JlYWN0V2FybmluZycgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWY7XG4gIH1cblxuICAvLyBOb3QgREVWXG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCAoZWxlbWVudCBhcyBhbnkpLnJlZjtcbn1cblxuY29uc3QgUm9vdCA9IFByZXNlbmNlO1xuXG5leHBvcnQge1xuICBQcmVzZW5jZSxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IFByZXNlbmNlUHJvcHMgfTtcbiIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxudHlwZSBNYWNoaW5lPFM+ID0geyBbazogc3RyaW5nXTogeyBbazogc3RyaW5nXTogUyB9IH07XG50eXBlIE1hY2hpbmVTdGF0ZTxUPiA9IGtleW9mIFQ7XG50eXBlIE1hY2hpbmVFdmVudDxUPiA9IGtleW9mIFVuaW9uVG9JbnRlcnNlY3Rpb248VFtrZXlvZiBUXT47XG5cbi8vIPCfpK8gaHR0cHM6Ly9mZXR0YmxvZy5ldS90eXBlc2NyaXB0LXVuaW9uLXRvLWludGVyc2VjdGlvbi9cbnR5cGUgVW5pb25Ub0ludGVyc2VjdGlvbjxUPiA9IChUIGV4dGVuZHMgYW55ID8gKHg6IFQpID0+IGFueSA6IG5ldmVyKSBleHRlbmRzICh4OiBpbmZlciBSKSA9PiBhbnlcbiAgPyBSXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdGF0ZU1hY2hpbmU8TT4oXG4gIGluaXRpYWxTdGF0ZTogTWFjaGluZVN0YXRlPE0+LFxuICBtYWNoaW5lOiBNICYgTWFjaGluZTxNYWNoaW5lU3RhdGU8TT4+LFxuKSB7XG4gIHJldHVybiBSZWFjdC51c2VSZWR1Y2VyKChzdGF0ZTogTWFjaGluZVN0YXRlPE0+LCBldmVudDogTWFjaGluZUV2ZW50PE0+KTogTWFjaGluZVN0YXRlPE0+ID0+IHtcbiAgICBjb25zdCBuZXh0U3RhdGUgPSAobWFjaGluZVtzdGF0ZV0gYXMgYW55KVtldmVudF07XG4gICAgcmV0dXJuIG5leHRTdGF0ZSA/PyBzdGF0ZTtcbiAgfSwgaW5pdGlhbFN0YXRlKTtcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIm5vZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-presence/dist/index.mjs\n");
|
|
71
|
-
|
|
72
|
-
/***/ }),
|
|
73
|
-
|
|
74
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs":
|
|
75
|
-
/*!***************************************************************!*\
|
|
76
|
-
!*** ./node_modules/@radix-ui/react-primitive/dist/index.mjs ***!
|
|
77
|
-
\***************************************************************/
|
|
78
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
79
|
-
|
|
80
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = (0,_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.createSlot)(`Primitive.${node}`);\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\n__name(dispatchDiscreteCustomEvent, \"dispatchDiscreteCustomEvent\");\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQSw0REFBNEQsMkJBQTJCOztBQUV2RjtBQUMrQjtBQUNPO0FBQ1k7QUFDVjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxnRUFBVSxjQUFjLEtBQUs7QUFDNUMsZUFBZSw2Q0FBZ0I7QUFDL0IsWUFBWSw2QkFBNkI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0RBQUcsU0FBUyxzQ0FBc0M7QUFDN0UsR0FBRztBQUNILGtDQUFrQyxLQUFLO0FBQ3ZDLFdBQVc7QUFDWCxDQUFDLElBQUk7QUFDTDtBQUNBLGNBQWMsZ0RBQWtCO0FBQ2hDO0FBQ0E7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9kdWFuL2ZpbGVzL3BpLXdlYi9kaWdpdGFsLWFnZW50LXBsYXRmb3JtL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19uYW1lID0gKHRhcmdldCwgdmFsdWUpID0+IF9fZGVmUHJvcCh0YXJnZXQsIFwibmFtZVwiLCB7IHZhbHVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG5cbi8vIHNyYy9wcmltaXRpdmUudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IGNyZWF0ZVNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIE5PREVTID0gW1xuICBcImFcIixcbiAgXCJidXR0b25cIixcbiAgXCJkaXZcIixcbiAgXCJmb3JtXCIsXG4gIFwiaDJcIixcbiAgXCJoM1wiLFxuICBcImltZ1wiLFxuICBcImlucHV0XCIsXG4gIFwibGFiZWxcIixcbiAgXCJsaVwiLFxuICBcIm5hdlwiLFxuICBcIm9sXCIsXG4gIFwicFwiLFxuICBcInNlbGVjdFwiLFxuICBcInNwYW5cIixcbiAgXCJzdmdcIixcbiAgXCJ1bFwiXG5dO1xudmFyIFByaW1pdGl2ZSA9IE5PREVTLnJlZHVjZSgocHJpbWl0aXZlLCBub2RlKSA9PiB7XG4gIGNvbnN0IFNsb3QgPSBjcmVhdGVTbG90KGBQcmltaXRpdmUuJHtub2RlfWApO1xuICBjb25zdCBOb2RlID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgYXNDaGlsZCwgLi4ucHJpbWl0aXZlUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IENvbXAgPSBhc0NoaWxkID8gU2xvdCA6IG5vZGU7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHdpbmRvd1tTeW1ib2wuZm9yKFwicmFkaXgtdWlcIildID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29tcCwgeyAuLi5wcmltaXRpdmVQcm9wcywgcmVmOiBmb3J3YXJkZWRSZWYgfSk7XG4gIH0pO1xuICBOb2RlLmRpc3BsYXlOYW1lID0gYFByaW1pdGl2ZS4ke25vZGV9YDtcbiAgcmV0dXJuIHsgLi4ucHJpbWl0aXZlLCBbbm9kZV06IE5vZGUgfTtcbn0sIHt9KTtcbmZ1bmN0aW9uIGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCh0YXJnZXQsIGV2ZW50KSB7XG4gIGlmICh0YXJnZXQpIFJlYWN0RE9NLmZsdXNoU3luYygoKSA9PiB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkpO1xufVxuX19uYW1lKGRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCwgXCJkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnRcIik7XG52YXIgUm9vdCA9IFByaW1pdGl2ZTtcbmV4cG9ydCB7XG4gIFByaW1pdGl2ZSxcbiAgUm9vdCxcbiAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\n");
|
|
81
|
-
|
|
82
|
-
/***/ }),
|
|
83
|
-
|
|
84
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-scroll-area/dist/index.mjs":
|
|
85
|
-
/*!*****************************************************************!*\
|
|
86
|
-
!*** ./node_modules/@radix-ui/react-scroll-area/dist/index.mjs ***!
|
|
87
|
-
\*****************************************************************/
|
|
88
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
89
|
-
|
|
90
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Corner: () => (/* binding */ Corner),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ ScrollArea: () => (/* binding */ ScrollArea),\n/* harmony export */ ScrollAreaCorner: () => (/* binding */ ScrollAreaCorner),\n/* harmony export */ ScrollAreaScrollbar: () => (/* binding */ ScrollAreaScrollbar),\n/* harmony export */ ScrollAreaThumb: () => (/* binding */ ScrollAreaThumb),\n/* harmony export */ ScrollAreaViewport: () => (/* binding */ ScrollAreaViewport),\n/* harmony export */ Scrollbar: () => (/* binding */ Scrollbar),\n/* harmony export */ Thumb: () => (/* binding */ Thumb),\n/* harmony export */ Viewport: () => (/* binding */ Viewport),\n/* harmony export */ createScrollAreaScope: () => (/* binding */ createScrollAreaScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(ssr)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_number__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/number */ \"(ssr)/./node_modules/@radix-ui/number/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/primitive */ \"(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Corner,Root,ScrollArea,ScrollAreaCorner,ScrollAreaScrollbar,ScrollAreaThumb,ScrollAreaViewport,Scrollbar,Thumb,Viewport,createScrollAreaScope auto */ var __defProp = Object.defineProperty;\nvar __name = (target, value)=>__defProp(target, \"name\", {\n value,\n configurable: true\n });\n// src/scroll-area.tsx\n\n\n\n\n\n\n\n\n\n\n// src/use-state-machine.ts\n\nfunction useStateMachine(initialState, machine) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useReducer({\n \"useStateMachine.useReducer\": (state, event)=>{\n const nextState = machine[state][event];\n return nextState ?? state;\n }\n }[\"useStateMachine.useReducer\"], initialState);\n}\n__name(useStateMachine, \"useStateMachine\");\n// src/scroll-area.tsx\n\nvar SCROLL_AREA_NAME = \"ScrollArea\";\nvar [createScrollAreaContext, createScrollAreaScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(SCROLL_AREA_NAME);\nvar [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);\nvar ScrollArea = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollArea2(props, forwardedRef) {\n const { __scopeScrollArea, type = \"hover\", dir, scrollHideDelay = 600, ...scrollAreaProps } = props;\n const [scrollArea, setScrollArea] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [viewport, setViewport] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [scrollbarX, setScrollbarX] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [scrollbarY, setScrollbarY] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [cornerWidth, setCornerWidth] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const [cornerHeight, setCornerHeight] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, setScrollArea);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection)(dir);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaProvider, {\n scope: __scopeScrollArea,\n type,\n dir: direction,\n scrollHideDelay,\n scrollArea,\n viewport,\n onViewportChange: setViewport,\n content,\n onContentChange: setContent,\n scrollbarX,\n onScrollbarXChange: setScrollbarX,\n scrollbarXEnabled,\n onScrollbarXEnabledChange: setScrollbarXEnabled,\n scrollbarY,\n onScrollbarYChange: setScrollbarY,\n scrollbarYEnabled,\n onScrollbarYEnabledChange: setScrollbarYEnabled,\n onCornerWidthChange: setCornerWidth,\n onCornerHeightChange: setCornerHeight,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n dir: direction,\n ...scrollAreaProps,\n ref: composedRefs,\n style: {\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n \"--radix-scroll-area-corner-width\": cornerWidth + \"px\",\n \"--radix-scroll-area-corner-height\": cornerHeight + \"px\",\n ...props.style\n }\n })\n });\n}, \"ScrollArea\"));\nvar VIEWPORT_NAME = \"ScrollAreaViewport\";\nvar ScrollAreaViewport = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(// blank line to reduce diff noise\n/* @__PURE__ */ __name(function ScrollAreaViewport2(props, forwardedRef) {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref, context.onViewportChange);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaViewportStyle, {\n nonce\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n \"data-radix-scroll-area-viewport\": \"\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */ overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"div\", {\n ref: context.onContentChange,\n style: {\n minWidth: \"100%\",\n display: \"table\"\n },\n children\n })\n })\n ]\n });\n}, \"ScrollAreaViewport\"));\nvar ScrollAreaViewportStyle = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.memo(/* @__PURE__ */ __name(function ScrollAreaViewportStyle2({ nonce }) {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n });\n}, \"ScrollAreaViewportStyle\"), (prevProps, nextProps)=>prevProps.nonce === nextProps.nonce);\nvar SCROLLBAR_NAME = \"ScrollAreaScrollbar\";\nvar ScrollAreaScrollbar = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(// blank line to reduce diff noise\n/* @__PURE__ */ __name(function ScrollAreaScrollbar2(props, forwardedRef) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === \"horizontal\";\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbar.ScrollAreaScrollbar2.useEffect\": ()=>{\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return ({\n \"ScrollAreaScrollbar.ScrollAreaScrollbar2.useEffect\": ()=>{\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n }\n })[\"ScrollAreaScrollbar.ScrollAreaScrollbar2.useEffect\"];\n }\n }[\"ScrollAreaScrollbar.ScrollAreaScrollbar2.useEffect\"], [\n isHorizontal,\n onScrollbarXEnabledChange,\n onScrollbarYEnabledChange\n ]);\n return context.type === \"hover\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarHover, {\n ...scrollbarProps,\n ref: forwardedRef,\n forceMount\n }) : context.type === \"scroll\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarScroll, {\n ...scrollbarProps,\n ref: forwardedRef,\n forceMount\n }) : context.type === \"auto\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarAuto, {\n ...scrollbarProps,\n ref: forwardedRef,\n forceMount\n }) : context.type === \"always\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarVisible, {\n ...scrollbarProps,\n ref: forwardedRef,\n \"data-state\": \"visible\"\n }) : null;\n}, \"ScrollAreaScrollbar\"));\nvar ScrollAreaScrollbarHover = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarHover2(props, forwardedRef) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect\": ()=>{\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = /* @__PURE__ */ __name({\n \"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect.handlePointerEnter\": ()=>{\n window.clearTimeout(hideTimer);\n setVisible(true);\n }\n }[\"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect.handlePointerEnter\"], \"handlePointerEnter\");\n const handlePointerLeave = /* @__PURE__ */ __name({\n \"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect.handlePointerLeave\": ()=>{\n hideTimer = window.setTimeout({\n \"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect.handlePointerLeave\": ()=>setVisible(false)\n }[\"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect.handlePointerLeave\"], context.scrollHideDelay);\n }\n }[\"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect.handlePointerLeave\"], \"handlePointerLeave\");\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return ({\n \"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect\": ()=>{\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n }\n })[\"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect\"];\n }\n }\n }[\"ScrollAreaScrollbarHover.ScrollAreaScrollbarHover2.useEffect\"], [\n context.scrollArea,\n context.scrollHideDelay\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || visible,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarAuto, {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n })\n });\n}, \"ScrollAreaScrollbarHover\"));\nvar ScrollAreaScrollbarScroll = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarScroll2(props, forwardedRef) {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback({\n \"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useDebounceCallback[debounceScrollEnd]\": ()=>send(\"SCROLL_END\")\n }[\"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useDebounceCallback[debounceScrollEnd]\"], 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\"\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\"\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\"\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\"\n }\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\": ()=>{\n if (state === \"idle\") {\n const hideTimer = window.setTimeout({\n \"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect.hideTimer\": ()=>send(\"HIDE\")\n }[\"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect.hideTimer\"], context.scrollHideDelay);\n return ({\n \"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\": ()=>window.clearTimeout(hideTimer)\n })[\"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\"];\n }\n }\n }[\"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\"], [\n state,\n context.scrollHideDelay,\n send\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\": ()=>{\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = /* @__PURE__ */ __name({\n \"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect.handleScroll\": ()=>{\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n }\n }[\"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect.handleScroll\"], \"handleScroll\");\n viewport.addEventListener(\"scroll\", handleScroll);\n return ({\n \"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\": ()=>viewport.removeEventListener(\"scroll\", handleScroll)\n })[\"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\"];\n }\n }\n }[\"ScrollAreaScrollbarScroll.ScrollAreaScrollbarScroll2.useEffect\"], [\n context.viewport,\n isHorizontal,\n send,\n debounceScrollEnd\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || state !== \"hidden\",\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarVisible, {\n \"data-state\": state === \"hidden\" ? \"hidden\" : \"visible\",\n ...scrollbarProps,\n ref: forwardedRef,\n onPointerEnter: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerEnter, ()=>send(\"POINTER_ENTER\")),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerLeave, ()=>send(\"POINTER_LEAVE\"))\n })\n });\n}, \"ScrollAreaScrollbarScroll\"));\nvar ScrollAreaScrollbarAuto = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarAuto2(props, forwardedRef) {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback({\n \"ScrollAreaScrollbarAuto.ScrollAreaScrollbarAuto2.useDebounceCallback[handleResize]\": ()=>{\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }\n }[\"ScrollAreaScrollbarAuto.ScrollAreaScrollbarAuto2.useDebounceCallback[handleResize]\"], 10);\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || visible,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarVisible, {\n \"data-state\": visible ? \"visible\" : \"hidden\",\n ...scrollbarProps,\n ref: forwardedRef\n })\n });\n}, \"ScrollAreaScrollbarAuto\"));\nvar ScrollAreaScrollbarVisible = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarVisible2(props, forwardedRef) {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const pointerOffsetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const [sizes, setSizes] = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n content: 0,\n viewport: 0,\n scrollbar: {\n size: 0,\n paddingStart: 0,\n paddingEnd: 0\n }\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n const commonProps = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: /* @__PURE__ */ __name((thumb)=>thumbRef.current = thumb, \"onThumbChange\"),\n onThumbPointerUp: /* @__PURE__ */ __name(()=>pointerOffsetRef.current = 0, \"onThumbPointerUp\"),\n onThumbPointerDown: /* @__PURE__ */ __name((pointerPos)=>pointerOffsetRef.current = pointerPos, \"onThumbPointerDown\")\n };\n function getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n __name(getScrollPosition, \"getScrollPosition\");\n if (orientation === \"horizontal\") {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarX, {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: ()=>{\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n },\n onWheelScroll: (scrollPos)=>{\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n },\n onDragScroll: (pointerPos)=>{\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }\n });\n }\n if (orientation === \"vertical\") {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarY, {\n ...commonProps,\n ref: forwardedRef,\n onThumbPositionChange: ()=>{\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n },\n onWheelScroll: (scrollPos)=>{\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n },\n onDragScroll: (pointerPos)=>{\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }\n });\n }\n return null;\n}, \"ScrollAreaScrollbarVisible\"));\nvar ScrollAreaScrollbarX = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarX2(props, forwardedRef) {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composeRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref, context.onScrollbarXChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarX.ScrollAreaScrollbarX2.useEffect\": ()=>{\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }\n }[\"ScrollAreaScrollbarX.ScrollAreaScrollbarX2.useEffect\"], [\n ref\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarImpl, {\n \"data-orientation\": \"horizontal\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n bottom: 0,\n left: context.dir === \"rtl\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n right: context.dir === \"ltr\" ? \"var(--radix-scroll-area-corner-width)\" : 0,\n \"--radix-scroll-area-thumb-width\": getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.x),\n onDragScroll: (pointerPos)=>props.onDragScroll(pointerPos.x),\n onWheelScroll: (event, maxScrollPos)=>{\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: ()=>{\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight)\n }\n });\n }\n }\n });\n}, \"ScrollAreaScrollbarX\"));\nvar ScrollAreaScrollbarY = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarY2(props, forwardedRef) {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composeRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref, context.onScrollbarYChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarY.ScrollAreaScrollbarY2.useEffect\": ()=>{\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }\n }[\"ScrollAreaScrollbarY.ScrollAreaScrollbarY2.useEffect\"], [\n ref\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaScrollbarImpl, {\n \"data-orientation\": \"vertical\",\n ...scrollbarProps,\n ref: composeRefs,\n sizes,\n style: {\n top: 0,\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: \"var(--radix-scroll-area-corner-height)\",\n \"--radix-scroll-area-thumb-height\": getThumbSize(sizes) + \"px\",\n ...props.style\n },\n onThumbPointerDown: (pointerPos)=>props.onThumbPointerDown(pointerPos.y),\n onDragScroll: (pointerPos)=>props.onDragScroll(pointerPos.y),\n onWheelScroll: (event, maxScrollPos)=>{\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n },\n onResize: ()=>{\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom)\n }\n });\n }\n }\n });\n}, \"ScrollAreaScrollbarY\"));\nvar [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);\nvar ScrollAreaScrollbarImpl = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarImpl2(props, forwardedRef) {\n const { __scopeScrollArea, sizes, hasThumb, onThumbChange, onThumbPointerUp, onThumbPointerDown, onThumbPositionChange, onDragScroll, onWheelScroll, onResize, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composeRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, setScrollbar);\n const rectRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const prevWebkitUserSelectRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onWheelScroll);\n const handleThumbPositionChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n function handleDragScroll(event) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({\n x,\n y\n });\n }\n }\n __name(handleDragScroll, \"handleDragScroll\");\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaScrollbarImpl.ScrollAreaScrollbarImpl2.useEffect\": ()=>{\n const handleWheel = /* @__PURE__ */ __name({\n \"ScrollAreaScrollbarImpl.ScrollAreaScrollbarImpl2.useEffect.handleWheel\": (event)=>{\n const element = event.target;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n }\n }[\"ScrollAreaScrollbarImpl.ScrollAreaScrollbarImpl2.useEffect.handleWheel\"], \"handleWheel\");\n document.addEventListener(\"wheel\", handleWheel, {\n passive: false\n });\n return ({\n \"ScrollAreaScrollbarImpl.ScrollAreaScrollbarImpl2.useEffect\": ()=>document.removeEventListener(\"wheel\", handleWheel, {\n passive: false\n })\n })[\"ScrollAreaScrollbarImpl.ScrollAreaScrollbarImpl2.useEffect\"];\n }\n }[\"ScrollAreaScrollbarImpl.ScrollAreaScrollbarImpl2.useEffect\"], [\n viewport,\n scrollbar,\n maxScrollPos,\n handleWheelScroll\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(handleThumbPositionChange, [\n sizes,\n handleThumbPositionChange\n ]);\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollbarProvider, {\n scope: __scopeScrollArea,\n scrollbar,\n hasThumb,\n onThumbChange: (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbChange),\n onThumbPointerUp: (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbPointerUp),\n onThumbPositionChange: handleThumbPositionChange,\n onThumbPointerDown: (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onThumbPointerDown),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n ...scrollbarProps,\n ref: composeRefs,\n style: {\n position: \"absolute\",\n ...scrollbarProps.style\n },\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDown, (event)=>{\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport) context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerMove, handleDragScroll),\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerUp, (event)=>{\n const element = event.target;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })\n })\n });\n}, \"ScrollAreaScrollbarImpl\"));\nvar THUMB_NAME = \"ScrollAreaThumb\";\nvar ScrollAreaThumb = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(// blank line to reduce diff noise\n/* @__PURE__ */ __name(function ScrollAreaThumb2(props, forwardedRef) {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_6__.Presence, {\n present: forceMount || scrollbarContext.hasThumb,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaThumbImpl, {\n ref: forwardedRef,\n ...thumbProps\n })\n });\n}, \"ScrollAreaThumb\"));\nvar ScrollAreaThumbImpl = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(// blank line to reduce diff noise\n/* @__PURE__ */ __name(function ScrollAreaThumbImpl2(props, forwardedRef) {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, scrollbarContext.onThumbChange);\n const removeUnlinkedScrollListenerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(void 0);\n const debounceScrollEnd = useDebounceCallback({\n \"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useDebounceCallback[debounceScrollEnd]\": ()=>{\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = void 0;\n }\n }\n }[\"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useDebounceCallback[debounceScrollEnd]\"], 100);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useEffect\": ()=>{\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n const handleScroll = /* @__PURE__ */ __name({\n \"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useEffect.handleScroll\": ()=>{\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n }\n }[\"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useEffect.handleScroll\"], \"handleScroll\");\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return ({\n \"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useEffect\": ()=>viewport.removeEventListener(\"scroll\", handleScroll)\n })[\"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useEffect\"];\n }\n }\n }[\"ScrollAreaThumbImpl.ScrollAreaThumbImpl2.useEffect\"], [\n scrollAreaContext.viewport,\n debounceScrollEnd,\n onThumbPositionChange\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n \"data-state\": scrollbarContext.hasThumb ? \"visible\" : \"hidden\",\n ...thumbProps,\n ref: composedRef,\n style: {\n width: \"var(--radix-scroll-area-thumb-width)\",\n height: \"var(--radix-scroll-area-thumb-height)\",\n ...style\n },\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDownCapture, (event)=>{\n const thumb = event.target;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({\n x,\n y\n });\n }),\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerUp, scrollbarContext.onThumbPointerUp)\n });\n}, \"ScrollAreaThumbImpl\"));\nvar CORNER_NAME = \"ScrollAreaCorner\";\nvar ScrollAreaCorner = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(// blank line to reduce diff noise\n/* @__PURE__ */ __name(function ScrollAreaCorner2(props, forwardedRef) {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ScrollAreaCornerImpl, {\n ...props,\n ref: forwardedRef\n }) : null;\n}, \"ScrollAreaCorner\"));\nvar ScrollAreaCornerImpl = /* @__PURE__ */ /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(/* @__PURE__ */ __name(function ScrollAreaCornerImpl2(props, forwardedRef) {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const [height, setHeight] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n const hasSize = Boolean(width && height);\n const { onCornerWidthChange, onCornerHeightChange } = context;\n useResizeObserver(context.scrollbarX, {\n \"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useResizeObserver\": ()=>{\n const height2 = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height2);\n setHeight(height2);\n }\n }[\"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useResizeObserver\"]);\n useResizeObserver(context.scrollbarY, {\n \"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useResizeObserver\": ()=>{\n const width2 = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width2);\n setWidth(width2);\n }\n }[\"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useResizeObserver\"]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useEffect\": ()=>{\n return ({\n \"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useEffect\": ()=>{\n onCornerWidthChange(0);\n onCornerHeightChange(0);\n }\n })[\"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useEffect\"];\n }\n }[\"ScrollAreaCornerImpl.ScrollAreaCornerImpl2.useEffect\"], [\n onCornerWidthChange,\n onCornerHeightChange\n ]);\n return hasSize ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_5__.Primitive.div, {\n ...cornerProps,\n ref: forwardedRef,\n style: {\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : void 0,\n left: context.dir === \"rtl\" ? 0 : void 0,\n bottom: 0,\n ...props.style\n }\n }) : null;\n}, \"ScrollAreaCornerImpl\"));\nfunction toInt(value) {\n return value ? parseInt(value, 10) : 0;\n}\n__name(toInt, \"toInt\");\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\n__name(getThumbRatio, \"getThumbRatio\");\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\n__name(getThumbSize, \"getThumbSize\");\nfunction getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [\n 0,\n maxScrollPos\n ] : [\n maxScrollPos * -1,\n 0\n ];\n const interpolate = linearScale([\n minPointerPos,\n maxPointerPos\n ], scrollRange);\n return interpolate(pointerPos);\n}\n__name(getScrollPositionFromPointer, \"getScrollPositionFromPointer\");\nfunction getThumbOffsetFromScroll(scrollPos, sizes, dir = \"ltr\") {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [\n 0,\n maxScrollPos\n ] : [\n maxScrollPos * -1,\n 0\n ];\n const scrollWithoutMomentum = (0,_radix_ui_number__WEBPACK_IMPORTED_MODULE_9__.clamp)(scrollPos, scrollClampRange);\n const interpolate = linearScale([\n 0,\n maxScrollPos\n ], [\n 0,\n maxThumbPos\n ]);\n return interpolate(scrollWithoutMomentum);\n}\n__name(getThumbOffsetFromScroll, \"getThumbOffsetFromScroll\");\nfunction linearScale(input, output) {\n return (value)=>{\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n__name(linearScale, \"linearScale\");\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n__name(isScrollingWithinScrollbarBounds, \"isScrollingWithinScrollbarBounds\");\nvar addUnlinkedScrollListener = /* @__PURE__ */ __name((node, handler = ()=>{})=>{\n let prevPosition = {\n left: node.scrollLeft,\n top: node.scrollTop\n };\n let rAF = 0;\n /* @__PURE__ */ __name(function loop() {\n const position = {\n left: node.scrollLeft,\n top: node.scrollTop\n };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n }, \"loop\")();\n return ()=>window.cancelAnimationFrame(rAF);\n}, \"addUnlinkedScrollListener\");\nfunction useDebounceCallback(callback, delay) {\n const handleCallback = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(callback);\n const debounceTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useDebounceCallback.useEffect\": ()=>({\n \"useDebounceCallback.useEffect\": ()=>window.clearTimeout(debounceTimerRef.current)\n })[\"useDebounceCallback.useEffect\"]\n }[\"useDebounceCallback.useEffect\"], []);\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback({\n \"useDebounceCallback.useCallback\": ()=>{\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }\n }[\"useDebounceCallback.useCallback\"], [\n handleCallback,\n delay\n ]);\n}\n__name(useDebounceCallback, \"useDebounceCallback\");\nfunction useResizeObserver(element, onResize) {\n const handleResize = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onResize);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_10__.useLayoutEffect)({\n \"useResizeObserver.useLayoutEffect\": ()=>{\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver({\n \"useResizeObserver.useLayoutEffect\": ()=>{\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n }\n }[\"useResizeObserver.useLayoutEffect\"]);\n resizeObserver.observe(element);\n return ({\n \"useResizeObserver.useLayoutEffect\": ()=>{\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n }\n })[\"useResizeObserver.useLayoutEffect\"];\n }\n }\n }[\"useResizeObserver.useLayoutEffect\"], [\n element,\n handleResize\n ]);\n}\n__name(useResizeObserver, \"useResizeObserver\");\nvar Root = ScrollArea;\nvar Viewport = ScrollAreaViewport;\nvar Scrollbar = ScrollAreaScrollbar;\nvar Thumb = ScrollAreaThumb;\nvar Corner = ScrollAreaCorner;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNjcm9sbC1hcmVhL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDRztBQUNEO0FBQ1U7QUFDSDtBQUNEO0FBQ0Y7QUFDRztBQUNWO0FBQ2U7O0FDVGQ7QUFXaEIsU0FBUyxnQkFDZCxjQUNBLFNBQ0E7SUFDQSxPQUFhO3NDQUFXLENBQUMsT0FBd0I7WUFDL0MsTUFBTSxZQUFhLFFBQVEsS0FBSyxFQUFVLEtBQUs7WUFDL0MsT0FBTyxhQUFhO1FBQ3RCO3FDQUFHLFlBQVk7QUFDakI7QUFSZ0I7O0FEa0dSO0FBaEZSLElBQU0sbUJBQW1CO0FBR3pCLElBQU0sQ0FBQyx5QkFBeUIscUJBQXFCLElBQUksMkVBQWtCLENBQUMsZ0JBQWdCO0FBdUI1RixJQUFNLENBQUMsb0JBQW9CLG9CQUFvQixJQUM3Qyx3QkFBZ0QsZ0JBQWdCO0FBVWxFLElBQU0sYUFBNkIsOEJBQU0sOENBQ3ZDLGdDQUFTQyxZQUFXLE9BQXFDLGNBQWM7SUFDckUsTUFBTSxFQUNKLG1CQUNBLE9BQU8sU0FDUCxLQUNBLGtCQUFrQixLQUNsQixHQUFHLGlCQUNMLEdBQUk7SUFDSixNQUFNLENBQUMsWUFBWSxhQUFhLElBQVUsNENBQW1DLElBQUk7SUFDakYsTUFBTSxDQUFDLFVBQVUsV0FBVyxJQUFVLDRDQUEyQyxJQUFJO0lBQ3JGLE1BQU0sQ0FBQyxTQUFTLFVBQVUsSUFBVSw0Q0FBZ0MsSUFBSTtJQUN4RSxNQUFNLENBQUMsWUFBWSxhQUFhLElBQVUsNENBQTRDLElBQUk7SUFDMUYsTUFBTSxDQUFDLFlBQVksYUFBYSxJQUFVLDRDQUE0QyxJQUFJO0lBQzFGLE1BQU0sQ0FBQyxhQUFhLGNBQWMsSUFBVSw0Q0FBUyxDQUFDO0lBQ3RELE1BQU0sQ0FBQyxjQUFjLGVBQWUsSUFBVSw0Q0FBUyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxtQkFBbUIsb0JBQW9CLElB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UUFBUTtJQUM1QyxtRkFBZTs2Q0FBQztZQUNkLElBQUksTUFBTTtZQUNWLElBQUksU0FBUztnQkFRWCxNQUFNLGlCQUFpQixJQUFJO3lEQUFlO3dCQUN4QyxxQkFBcUIsR0FBRzt3QkFDeEIsTUFBTSxPQUFPLHNCQUFzQixZQUFZO29CQUNqRCxDQUFDOztnQkFDRCxlQUFlLFFBQVEsT0FBTztnQkFDOUI7eURBQU87d0JBQ0wsT0FBTyxxQkFBcUIsR0FBRzt3QkFDL0IsZUFBZSxVQUFVLE9BQU87b0JBQ2xDOztZQUNGO1FBQ0Y7NENBQUc7UUFBQztRQUFTLFlBQVk7S0FBQztBQUM1QjtBQXZCUztBQTJCVCxJQUFNLE9BQU87QUFDYixJQUFNLFdBQVc7QUFDakIsSUFBTSxZQUFZO0FBQ2xCLElBQU0sUUFBUTtBQUNkLElBQU0sU0FBUyIsInNvdXJjZXMiOlsiL1VzZXJzL2R1YW4vZmlsZXMvcGktd2ViL3NyYy9zY3JvbGwtYXJlYS50c3giLCIvVXNlcnMvZHVhbi9maWxlcy9waS13ZWIvc3JjL3VzZS1zdGF0ZS1tYWNoaW5lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IHVzZURpcmVjdGlvbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1kaXJlY3Rpb24nO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0JztcbmltcG9ydCB7IGNsYW1wIH0gZnJvbSAnQHJhZGl4LXVpL251bWJlcic7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlU3RhdGVNYWNoaW5lIH0gZnJvbSAnLi91c2Utc3RhdGUtbWFjaGluZSc7XG5cbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5cbnR5cGUgRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcbnR5cGUgU2l6ZXMgPSB7XG4gIGNvbnRlbnQ6IG51bWJlcjtcbiAgdmlld3BvcnQ6IG51bWJlcjtcbiAgc2Nyb2xsYmFyOiB7XG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIHBhZGRpbmdTdGFydDogbnVtYmVyO1xuICAgIHBhZGRpbmdFbmQ6IG51bWJlcjtcbiAgfTtcbn07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNjcm9sbEFyZWFcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU0NST0xMX0FSRUFfTkFNRSA9ICdTY3JvbGxBcmVhJztcblxudHlwZSBTY29wZWRQcm9wczxQPiA9IFAgJiB7IF9fc2NvcGVTY3JvbGxBcmVhPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVTY3JvbGxBcmVhQ29udGV4dCwgY3JlYXRlU2Nyb2xsQXJlYVNjb3BlXSA9IGNyZWF0ZUNvbnRleHRTY29wZShTQ1JPTExfQVJFQV9OQU1FKTtcblxudHlwZSBTY3JvbGxBcmVhQ29udGV4dFZhbHVlID0ge1xuICB0eXBlOiAnYXV0bycgfCAnYWx3YXlzJyB8ICdzY3JvbGwnIHwgJ2hvdmVyJztcbiAgZGlyOiBEaXJlY3Rpb247XG4gIHNjcm9sbEhpZGVEZWxheTogbnVtYmVyO1xuICBzY3JvbGxBcmVhOiBTY3JvbGxBcmVhRWxlbWVudCB8IG51bGw7XG4gIHZpZXdwb3J0OiBTY3JvbGxBcmVhVmlld3BvcnRFbGVtZW50IHwgbnVsbDtcbiAgb25WaWV3cG9ydENoYW5nZSh2aWV3cG9ydDogU2Nyb2xsQXJlYVZpZXdwb3J0RWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBjb250ZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGw7XG4gIG9uQ29udGVudENoYW5nZShjb250ZW50OiBIVE1MRGl2RWxlbWVudCk6IHZvaWQ7XG4gIHNjcm9sbGJhclg6IFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50IHwgbnVsbDtcbiAgb25TY3JvbGxiYXJYQ2hhbmdlKHNjcm9sbGJhcjogU2Nyb2xsQXJlYVNjcm9sbGJhckVsZW1lbnQgfCBudWxsKTogdm9pZDtcbiAgc2Nyb2xsYmFyWEVuYWJsZWQ6IGJvb2xlYW47XG4gIG9uU2Nyb2xsYmFyWEVuYWJsZWRDaGFuZ2UocmVuZGVyZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICBzY3JvbGxiYXJZOiBTY3JvbGxBcmVhU2Nyb2xsYmFyRWxlbWVudCB8IG51bGw7XG4gIG9uU2Nyb2xsYmFyWUNoYW5nZShzY3JvbGxiYXI6IFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIHNjcm9sbGJhcllFbmFibGVkOiBib29sZWFuO1xuICBvblNjcm9sbGJhcllFbmFibGVkQ2hhbmdlKHJlbmRlcmVkOiBib29sZWFuKTogdm9pZDtcbiAgb25Db3JuZXJXaWR0aENoYW5nZSh3aWR0aDogbnVtYmVyKTogdm9pZDtcbiAgb25Db3JuZXJIZWlnaHRDaGFuZ2UoaGVpZ2h0OiBudW1iZXIpOiB2b2lkO1xufTtcblxuY29uc3QgW1Njcm9sbEFyZWFQcm92aWRlciwgdXNlU2Nyb2xsQXJlYUNvbnRleHRdID1cbiAgY3JlYXRlU2Nyb2xsQXJlYUNvbnRleHQ8U2Nyb2xsQXJlYUNvbnRleHRWYWx1ZT4oU0NST0xMX0FSRUFfTkFNRSk7XG5cbnR5cGUgU2Nyb2xsQXJlYUVsZW1lbnQgPSBSZWFjdC5Db21wb25lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICB0eXBlPzogU2Nyb2xsQXJlYUNvbnRleHRWYWx1ZVsndHlwZSddO1xuICBkaXI/OiBTY3JvbGxBcmVhQ29udGV4dFZhbHVlWydkaXInXTtcbiAgc2Nyb2xsSGlkZURlbGF5PzogbnVtYmVyO1xufVxuXG5jb25zdCBTY3JvbGxBcmVhID0gLyogQF9fUFVSRV9fICovIFJlYWN0LmZvcndhcmRSZWY8U2Nyb2xsQXJlYUVsZW1lbnQsIFNjcm9sbEFyZWFQcm9wcz4oXG4gIGZ1bmN0aW9uIFNjcm9sbEFyZWEocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFQcm9wcz4sIGZvcndhcmRlZFJlZikge1xuICAgIGNvbnN0IHtcbiAgICAgIF9fc2NvcGVTY3JvbGxBcmVhLFxuICAgICAgdHlwZSA9ICdob3ZlcicsXG4gICAgICBkaXIsXG4gICAgICBzY3JvbGxIaWRlRGVsYXkgPSA2MDAsXG4gICAgICAuLi5zY3JvbGxBcmVhUHJvcHNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgW3Njcm9sbEFyZWEsIHNldFNjcm9sbEFyZWFdID0gUmVhY3QudXNlU3RhdGU8U2Nyb2xsQXJlYUVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbdmlld3BvcnQsIHNldFZpZXdwb3J0XSA9IFJlYWN0LnVzZVN0YXRlPFNjcm9sbEFyZWFWaWV3cG9ydEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbY29udGVudCwgc2V0Q29udGVudF0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtzY3JvbGxiYXJYLCBzZXRTY3JvbGxiYXJYXSA9IFJlYWN0LnVzZVN0YXRlPFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW3Njcm9sbGJhclksIHNldFNjcm9sbGJhclldID0gUmVhY3QudXNlU3RhdGU8U2Nyb2xsQXJlYVNjcm9sbGJhckVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbY29ybmVyV2lkdGgsIHNldENvcm5lcldpZHRoXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtjb3JuZXJIZWlnaHQsIHNldENvcm5lckhlaWdodF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbc2Nyb2xsYmFyWEVuYWJsZWQsIHNldFNjcm9sbGJhclhFbmFibGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc2Nyb2xsYmFyWUVuYWJsZWQsIHNldFNjcm9sbGJhcllFbmFibGVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBzZXRTY3JvbGxBcmVhKTtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSB1c2VEaXJlY3Rpb24oZGlyKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2Nyb2xsQXJlYVByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlU2Nyb2xsQXJlYX1cbiAgICAgICAgdHlwZT17dHlwZX1cbiAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICAgIHNjcm9sbEhpZGVEZWxheT17c2Nyb2xsSGlkZURlbGF5fVxuICAgICAgICBzY3JvbGxBcmVhPXtzY3JvbGxBcmVhfVxuICAgICAgICB2aWV3cG9ydD17dmlld3BvcnR9XG4gICAgICAgIG9uVmlld3BvcnRDaGFuZ2U9e3NldFZpZXdwb3J0fVxuICAgICAgICBjb250ZW50PXtjb250ZW50fVxuICAgICAgICBvbkNvbnRlbnRDaGFuZ2U9e3NldENvbnRlbnR9XG4gICAgICAgIHNjcm9sbGJhclg9e3Njcm9sbGJhclh9XG4gICAgICAgIG9uU2Nyb2xsYmFyWENoYW5nZT17c2V0U2Nyb2xsYmFyWH1cbiAgICAgICAgc2Nyb2xsYmFyWEVuYWJsZWQ9e3Njcm9sbGJhclhFbmFibGVkfVxuICAgICAgICBvblNjcm9sbGJhclhFbmFibGVkQ2hhbmdlPXtzZXRTY3JvbGxiYXJYRW5hYmxlZH1cbiAgICAgICAgc2Nyb2xsYmFyWT17c2Nyb2xsYmFyWX1cbiAgICAgICAgb25TY3JvbGxiYXJZQ2hhbmdlPXtzZXRTY3JvbGxiYXJZfVxuICAgICAgICBzY3JvbGxiYXJZRW5hYmxlZD17c2Nyb2xsYmFyWUVuYWJsZWR9XG4gICAgICAgIG9uU2Nyb2xsYmFyWUVuYWJsZWRDaGFuZ2U9e3NldFNjcm9sbGJhcllFbmFibGVkfVxuICAgICAgICBvbkNvcm5lcldpZHRoQ2hhbmdlPXtzZXRDb3JuZXJXaWR0aH1cbiAgICAgICAgb25Db3JuZXJIZWlnaHRDaGFuZ2U9e3NldENvcm5lckhlaWdodH1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgICB7Li4uc2Nyb2xsQXJlYVByb3BzfVxuICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAgIC8vIFBhc3MgY29ybmVyIHNpemVzIGFzIENTUyB2YXJzIHRvIHJlZHVjZSByZS1yZW5kZXJzIG9mIGNvbnRleHQgY29uc3VtZXJzXG4gICAgICAgICAgICAnLS1yYWRpeC1zY3JvbGwtYXJlYS1jb3JuZXItd2lkdGgnOiBjb3JuZXJXaWR0aCArICdweCcsXG4gICAgICAgICAgICAnLS1yYWRpeC1zY3JvbGwtYXJlYS1jb3JuZXItaGVpZ2h0JzogY29ybmVySGVpZ2h0ICsgJ3B4JyxcbiAgICAgICAgICAgIC4uLnByb3BzLnN0eWxlLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1Njcm9sbEFyZWFQcm92aWRlcj5cbiAgICApO1xuICB9LFxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2Nyb2xsQXJlYVZpZXdwb3J0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFZJRVdQT1JUX05BTUUgPSAnU2Nyb2xsQXJlYVZpZXdwb3J0JztcblxudHlwZSBTY3JvbGxBcmVhVmlld3BvcnRFbGVtZW50ID0gUmVhY3QuQ29tcG9uZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBTY3JvbGxBcmVhVmlld3BvcnRQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgbm9uY2U/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNjcm9sbEFyZWFWaWV3cG9ydCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhVmlld3BvcnRFbGVtZW50LFxuICBTY3JvbGxBcmVhVmlld3BvcnRQcm9wc1xuPihcbiAgLy8gYmxhbmsgbGluZSB0byByZWR1Y2UgZGlmZiBub2lzZVxuICBmdW5jdGlvbiBTY3JvbGxBcmVhVmlld3BvcnQocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFWaWV3cG9ydFByb3BzPiwgZm9yd2FyZGVkUmVmKSB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2Nyb2xsQXJlYSwgY2hpbGRyZW4sIG5vbmNlLCAuLi52aWV3cG9ydFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoVklFV1BPUlRfTkFNRSwgX19zY29wZVNjcm9sbEFyZWEpO1xuICAgIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxTY3JvbGxBcmVhVmlld3BvcnRFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYsIGNvbnRleHQub25WaWV3cG9ydENoYW5nZSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxTY3JvbGxBcmVhVmlld3BvcnRTdHlsZSBub25jZT17bm9uY2V9IC8+XG4gICAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgICAgZGF0YS1yYWRpeC1zY3JvbGwtYXJlYS12aWV3cG9ydD1cIlwiXG4gICAgICAgICAgey4uLnZpZXdwb3J0UHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgZG9uJ3Qgc3VwcG9ydCBgdmlzaWJsZWAgYmVjYXVzZSB0aGUgaW50ZW50aW9uIGlzIHRvIGhhdmUgYXQgbGVhc3Qgb25lIHNjcm9sbGJhclxuICAgICAgICAgICAgICogaWYgdGhpcyBjb21wb25lbnQgaXMgdXNlZCBhbmQgYHZpc2libGVgIHdpbGwgYmVoYXZlIGxpa2UgYGF1dG9gIGluIHRoYXQgY2FzZVxuICAgICAgICAgICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL292ZXJmbG93I2Rlc2NyaXB0aW9uXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogV2UgZG9uJ3QgaGFuZGxlIGBhdXRvYCBiZWNhdXNlIHRoZSBpbnRlbnRpb24gaXMgZm9yIHRoZSBuYXRpdmUgaW1wbGVtZW50YXRpb25cbiAgICAgICAgICAgICAqIHRvIGJlIGhpZGRlbiBpZiB1c2luZyB0aGlzIGNvbXBvbmVudC4gV2UganVzdCB3YW50IHRvIGVuc3VyZSB0aGUgbm9kZSBpcyBzY3JvbGxhYmxlXG4gICAgICAgICAgICAgKiBzbyBjb3VsZCBoYXZlIHVzZWQgZWl0aGVyIGBzY3JvbGxgIG9yIGBhdXRvYCBoZXJlLiBXZSBwaWNrZWQgYHNjcm9sbGAgdG8gcHJldmVudFxuICAgICAgICAgICAgICogdGhlIGJyb3dzZXIgZnJvbSBoYXZpbmcgdG8gd29yayBvdXQgd2hldGhlciB0byByZW5kZXIgbmF0aXZlIHNjcm9sbGJhcnMgb3Igbm90LFxuICAgICAgICAgICAgICogd2UgdGVsbCBpdCB0byB3aXRoIHRoZSBpbnRlbnRpb24gb2YgaGlkaW5nIHRoZW0gaW4gQ1NTLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBvdmVyZmxvd1g6IGNvbnRleHQuc2Nyb2xsYmFyWEVuYWJsZWQgPyAnc2Nyb2xsJyA6ICdoaWRkZW4nLFxuICAgICAgICAgICAgb3ZlcmZsb3dZOiBjb250ZXh0LnNjcm9sbGJhcllFbmFibGVkID8gJ3Njcm9sbCcgOiAnaGlkZGVuJyxcbiAgICAgICAgICAgIC4uLnByb3BzLnN0eWxlLFxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7LyoqXG4gICAgICAgICAgICogYGRpc3BsYXk6IHRhYmxlYCBlbnN1cmVzIG91ciBjb250ZW50IGRpdiB3aWxsIG1hdGNoIHRoZSBzaXplIG9mIGl0cyBjaGlsZHJlbiBpbiBib3RoXG4gICAgICAgICAgICogaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgYXhpcyBzbyB3ZSBjYW4gZGV0ZXJtaW5lIGlmIHNjcm9sbCB3aWR0aC9oZWlnaHQgY2hhbmdlZCBhbmRcbiAgICAgICAgICAgKiByZWNhbGN1bGF0ZSB0aHVtYiBzaXplcy4gVGhpcyBkb2Vzbid0IGFjY291bnQgZm9yIGNoaWxkcmVuIHdpdGggKnBlcmNlbnRhZ2UqXG4gICAgICAgICAgICogd2lkdGhzIHRoYXQgY2hhbmdlLiBXZSdsbCB3YWl0IHRvIHNlZSB3aGF0IHVzZS1jYXNlcyBjb25zdW1lcnMgY29tZSB1cCB3aXRoIHRoZXJlXG4gICAgICAgICAgICogYmVmb3JlIHRyeWluZyB0byByZXNvbHZlIGl0LlxuICAgICAgICAgICAqL31cbiAgICAgICAgICA8ZGl2IHJlZj17Y29udGV4dC5vbkNvbnRlbnRDaGFuZ2V9IHN0eWxlPXt7IG1pbldpZHRoOiAnMTAwJScsIGRpc3BsYXk6ICd0YWJsZScgfX0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvUHJpbWl0aXZlLmRpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH0sXG4pO1xuXG5jb25zdCBTY3JvbGxBcmVhVmlld3BvcnRTdHlsZSA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5tZW1vKFxuICBmdW5jdGlvbiBTY3JvbGxBcmVhVmlld3BvcnRTdHlsZSh7IG5vbmNlIH06IHsgbm9uY2U/OiBzdHJpbmcgfSkge1xuICAgIHJldHVybiAoXG4gICAgICA8c3R5bGVcbiAgICAgICAgLy8gSGlkZSBzY3JvbGxiYXJzIGNyb3NzLWJyb3dzZXIgYW5kIGVuYWJsZSBtb21lbnR1bSBzY3JvbGwgZm9yIHRvdWNoIGRldmljZXNcbiAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICBfX2h0bWw6IGBbZGF0YS1yYWRpeC1zY3JvbGwtYXJlYS12aWV3cG9ydF17c2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7fVtkYXRhLXJhZGl4LXNjcm9sbC1hcmVhLXZpZXdwb3J0XTo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfWAsXG4gICAgICAgIH19XG4gICAgICAgIG5vbmNlPXtub25jZX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfSxcbiAgKHByZXZQcm9wcywgbmV4dFByb3BzKSA9PiBwcmV2UHJvcHMubm9uY2UgPT09IG5leHRQcm9wcy5ub25jZSxcbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNjcm9sbEFyZWFTY3JvbGxiYXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU0NST0xMQkFSX05BTUUgPSAnU2Nyb2xsQXJlYVNjcm9sbGJhcic7XG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhckVsZW1lbnQgPSBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZUVsZW1lbnQ7XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVNjcm9sbGJhclByb3BzIGV4dGVuZHMgU2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGVQcm9wcyB7XG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBTY3JvbGxBcmVhU2Nyb2xsYmFyID0gLyogQF9fUFVSRV9fICovIFJlYWN0LmZvcndhcmRSZWY8XG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJFbGVtZW50LFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyUHJvcHNcbj4oXG4gIC8vIGJsYW5rIGxpbmUgdG8gcmVkdWNlIGRpZmYgbm9pc2VcbiAgZnVuY3Rpb24gU2Nyb2xsQXJlYVNjcm9sbGJhcihwcm9wczogU2NvcGVkUHJvcHM8U2Nyb2xsQXJlYVNjcm9sbGJhclByb3BzPiwgZm9yd2FyZGVkUmVmKSB7XG4gICAgY29uc3QgeyBmb3JjZU1vdW50LCAuLi5zY3JvbGxiYXJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KFNDUk9MTEJBUl9OQU1FLCBwcm9wcy5fX3Njb3BlU2Nyb2xsQXJlYSk7XG4gICAgY29uc3QgeyBvblNjcm9sbGJhclhFbmFibGVkQ2hhbmdlLCBvblNjcm9sbGJhcllFbmFibGVkQ2hhbmdlIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IHByb3BzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCc7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaXNIb3Jpem9udGFsID8gb25TY3JvbGxiYXJYRW5hYmxlZENoYW5nZSh0cnVlKSA6IG9uU2Nyb2xsYmFyWUVuYWJsZWRDaGFuZ2UodHJ1ZSk7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpc0hvcml6b250YWwgPyBvblNjcm9sbGJhclhFbmFibGVkQ2hhbmdlKGZhbHNlKSA6IG9uU2Nyb2xsYmFyWUVuYWJsZWRDaGFuZ2UoZmFsc2UpO1xuICAgICAgfTtcbiAgICB9LCBbaXNIb3Jpem9udGFsLCBvblNjcm9sbGJhclhFbmFibGVkQ2hhbmdlLCBvblNjcm9sbGJhcllFbmFibGVkQ2hhbmdlXSk7XG5cbiAgICByZXR1cm4gY29udGV4dC50eXBlID09PSAnaG92ZXInID8gKFxuICAgICAgPFNjcm9sbEFyZWFTY3JvbGxiYXJIb3ZlciB7Li4uc2Nyb2xsYmFyUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSBmb3JjZU1vdW50PXtmb3JjZU1vdW50fSAvPlxuICAgICkgOiBjb250ZXh0LnR5cGUgPT09ICdzY3JvbGwnID8gKFxuICAgICAgPFNjcm9sbEFyZWFTY3JvbGxiYXJTY3JvbGwgey4uLnNjcm9sbGJhclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gZm9yY2VNb3VudD17Zm9yY2VNb3VudH0gLz5cbiAgICApIDogY29udGV4dC50eXBlID09PSAnYXV0bycgPyAoXG4gICAgICA8U2Nyb2xsQXJlYVNjcm9sbGJhckF1dG8gey4uLnNjcm9sbGJhclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gZm9yY2VNb3VudD17Zm9yY2VNb3VudH0gLz5cbiAgICApIDogY29udGV4dC50eXBlID09PSAnYWx3YXlzJyA/IChcbiAgICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZSB7Li4uc2Nyb2xsYmFyUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSBkYXRhLXN0YXRlPVwidmlzaWJsZVwiIC8+XG4gICAgKSA6IG51bGw7XG4gIH0sXG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhckhvdmVyRWxlbWVudCA9IFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvRWxlbWVudDtcbmludGVyZmFjZSBTY3JvbGxBcmVhU2Nyb2xsYmFySG92ZXJQcm9wcyBleHRlbmRzIFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvUHJvcHMge1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgU2Nyb2xsQXJlYVNjcm9sbGJhckhvdmVyID0gLyogQF9fUFVSRV9fICovIFJlYWN0LmZvcndhcmRSZWY8XG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJIb3ZlckVsZW1lbnQsXG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJIb3ZlclByb3BzXG4+KGZ1bmN0aW9uIFNjcm9sbEFyZWFTY3JvbGxiYXJIb3ZlcihcbiAgcHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFTY3JvbGxiYXJIb3ZlclByb3BzPixcbiAgZm9yd2FyZGVkUmVmLFxuKSB7XG4gIGNvbnN0IHsgZm9yY2VNb3VudCwgLi4uc2Nyb2xsYmFyUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoU0NST0xMQkFSX05BTUUsIHByb3BzLl9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsQXJlYSA9IGNvbnRleHQuc2Nyb2xsQXJlYTtcbiAgICBsZXQgaGlkZVRpbWVyID0gMDtcbiAgICBpZiAoc2Nyb2xsQXJlYSkge1xuICAgICAgY29uc3QgaGFuZGxlUG9pbnRlckVudGVyID0gKCkgPT4ge1xuICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KGhpZGVUaW1lcik7XG4gICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICB9O1xuICAgICAgY29uc3QgaGFuZGxlUG9pbnRlckxlYXZlID0gKCkgPT4ge1xuICAgICAgICBoaWRlVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiBzZXRWaXNpYmxlKGZhbHNlKSwgY29udGV4dC5zY3JvbGxIaWRlRGVsYXkpO1xuICAgICAgfTtcbiAgICAgIHNjcm9sbEFyZWEuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmVudGVyJywgaGFuZGxlUG9pbnRlckVudGVyKTtcbiAgICAgIHNjcm9sbEFyZWEuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywgaGFuZGxlUG9pbnRlckxlYXZlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoaGlkZVRpbWVyKTtcbiAgICAgICAgc2Nyb2xsQXJlYS5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZW50ZXInLCBoYW5kbGVQb2ludGVyRW50ZXIpO1xuICAgICAgICBzY3JvbGxBcmVhLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScsIGhhbmRsZVBvaW50ZXJMZWF2ZSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2NvbnRleHQuc2Nyb2xsQXJlYSwgY29udGV4dC5zY3JvbGxIaWRlRGVsYXldKTtcblxuICByZXR1cm4gKFxuICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IHZpc2libGV9PlxuICAgICAgPFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvXG4gICAgICAgIGRhdGEtc3RhdGU9e3Zpc2libGUgPyAndmlzaWJsZScgOiAnaGlkZGVuJ31cbiAgICAgICAgey4uLnNjcm9sbGJhclByb3BzfVxuICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgIC8+XG4gICAgPC9QcmVzZW5jZT5cbiAgKTtcbn0pO1xuXG50eXBlIFNjcm9sbEFyZWFTY3JvbGxiYXJTY3JvbGxFbGVtZW50ID0gU2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGVFbGVtZW50O1xuaW50ZXJmYWNlIFNjcm9sbEFyZWFTY3JvbGxiYXJTY3JvbGxQcm9wcyBleHRlbmRzIFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlUHJvcHMge1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgU2Nyb2xsQXJlYVNjcm9sbGJhclNjcm9sbCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyU2Nyb2xsRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhclNjcm9sbFByb3BzXG4+KGZ1bmN0aW9uIFNjcm9sbEFyZWFTY3JvbGxiYXJTY3JvbGwoXG4gIHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhU2Nyb2xsYmFyU2Nyb2xsUHJvcHM+LFxuICBmb3J3YXJkZWRSZWYsXG4pIHtcbiAgY29uc3QgeyBmb3JjZU1vdW50LCAuLi5zY3JvbGxiYXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChTQ1JPTExCQVJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICBjb25zdCBpc0hvcml6b250YWwgPSBwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnO1xuICBjb25zdCBkZWJvdW5jZVNjcm9sbEVuZCA9IHVzZURlYm91bmNlQ2FsbGJhY2soKCkgPT4gc2VuZCgnU0NST0xMX0VORCcpLCAxMDApO1xuICBjb25zdCBbc3RhdGUsIHNlbmRdID0gdXNlU3RhdGVNYWNoaW5lKCdoaWRkZW4nLCB7XG4gICAgaGlkZGVuOiB7XG4gICAgICBTQ1JPTEw6ICdzY3JvbGxpbmcnLFxuICAgIH0sXG4gICAgc2Nyb2xsaW5nOiB7XG4gICAgICBTQ1JPTExfRU5EOiAnaWRsZScsXG4gICAgICBQT0lOVEVSX0VOVEVSOiAnaW50ZXJhY3RpbmcnLFxuICAgIH0sXG4gICAgaW50ZXJhY3Rpbmc6IHtcbiAgICAgIFNDUk9MTDogJ2ludGVyYWN0aW5nJyxcbiAgICAgIFBPSU5URVJfTEVBVkU6ICdpZGxlJyxcbiAgICB9LFxuICAgIGlkbGU6IHtcbiAgICAgIEhJREU6ICdoaWRkZW4nLFxuICAgICAgU0NST0xMOiAnc2Nyb2xsaW5nJyxcbiAgICAgIFBPSU5URVJfRU5URVI6ICdpbnRlcmFjdGluZycsXG4gICAgfSxcbiAgfSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3RhdGUgPT09ICdpZGxlJykge1xuICAgICAgY29uc3QgaGlkZVRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2VuZCgnSElERScpLCBjb250ZXh0LnNjcm9sbEhpZGVEZWxheSk7XG4gICAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dChoaWRlVGltZXIpO1xuICAgIH1cbiAgfSwgW3N0YXRlLCBjb250ZXh0LnNjcm9sbEhpZGVEZWxheSwgc2VuZF0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgdmlld3BvcnQgPSBjb250ZXh0LnZpZXdwb3J0O1xuICAgIGNvbnN0IHNjcm9sbERpcmVjdGlvbiA9IGlzSG9yaXpvbnRhbCA/ICdzY3JvbGxMZWZ0JyA6ICdzY3JvbGxUb3AnO1xuXG4gICAgaWYgKHZpZXdwb3J0KSB7XG4gICAgICBsZXQgcHJldlNjcm9sbFBvcyA9IHZpZXdwb3J0W3Njcm9sbERpcmVjdGlvbl07XG4gICAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvcyA9IHZpZXdwb3J0W3Njcm9sbERpcmVjdGlvbl07XG4gICAgICAgIGNvbnN0IGhhc1Njcm9sbEluRGlyZWN0aW9uQ2hhbmdlZCA9IHByZXZTY3JvbGxQb3MgIT09IHNjcm9sbFBvcztcbiAgICAgICAgaWYgKGhhc1Njcm9sbEluRGlyZWN0aW9uQ2hhbmdlZCkge1xuICAgICAgICAgIHNlbmQoJ1NDUk9MTCcpO1xuICAgICAgICAgIGRlYm91bmNlU2Nyb2xsRW5kKCk7XG4gICAgICAgIH1cbiAgICAgICAgcHJldlNjcm9sbFBvcyA9IHNjcm9sbFBvcztcbiAgICAgIH07XG4gICAgICB2aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgICAgcmV0dXJuICgpID0+IHZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgfVxuICB9LCBbY29udGV4dC52aWV3cG9ydCwgaXNIb3Jpem9udGFsLCBzZW5kLCBkZWJvdW5jZVNjcm9sbEVuZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgc3RhdGUgIT09ICdoaWRkZW4nfT5cbiAgICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZVxuICAgICAgICBkYXRhLXN0YXRlPXtzdGF0ZSA9PT0gJ2hpZGRlbicgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ31cbiAgICAgICAgey4uLnNjcm9sbGJhclByb3BzfVxuICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgb25Qb2ludGVyRW50ZXI9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckVudGVyLCAoKSA9PiBzZW5kKCdQT0lOVEVSX0VOVEVSJykpfVxuICAgICAgICBvblBvaW50ZXJMZWF2ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Qb2ludGVyTGVhdmUsICgpID0+IHNlbmQoJ1BPSU5URVJfTEVBVkUnKSl9XG4gICAgICAvPlxuICAgIDwvUHJlc2VuY2U+XG4gICk7XG59KTtcblxudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFyQXV0b0VsZW1lbnQgPSBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZUVsZW1lbnQ7XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVNjcm9sbGJhckF1dG9Qcm9wcyBleHRlbmRzIFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlUHJvcHMge1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgU2Nyb2xsQXJlYVNjcm9sbGJhckF1dG8gPSAvKiBAX19QVVJFX18gKi8gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckF1dG9FbGVtZW50LFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyQXV0b1Byb3BzXG4+KGZ1bmN0aW9uIFNjcm9sbEFyZWFTY3JvbGxiYXJBdXRvKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhU2Nyb2xsYmFyQXV0b1Byb3BzPiwgZm9yd2FyZGVkUmVmKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChTQ1JPTExCQVJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICBjb25zdCB7IGZvcmNlTW91bnQsIC4uLnNjcm9sbGJhclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBpc0hvcml6b250YWwgPSBwcm9wcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnO1xuICBjb25zdCBoYW5kbGVSZXNpemUgPSB1c2VEZWJvdW5jZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoY29udGV4dC52aWV3cG9ydCkge1xuICAgICAgY29uc3QgaXNPdmVyZmxvd1ggPSBjb250ZXh0LnZpZXdwb3J0Lm9mZnNldFdpZHRoIDwgY29udGV4dC52aWV3cG9ydC5zY3JvbGxXaWR0aDtcbiAgICAgIGNvbnN0IGlzT3ZlcmZsb3dZID0gY29udGV4dC52aWV3cG9ydC5vZmZzZXRIZWlnaHQgPCBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbEhlaWdodDtcbiAgICAgIHNldFZpc2libGUoaXNIb3Jpem9udGFsID8gaXNPdmVyZmxvd1ggOiBpc092ZXJmbG93WSk7XG4gICAgfVxuICB9LCAxMCk7XG5cbiAgdXNlUmVzaXplT2JzZXJ2ZXIoY29udGV4dC52aWV3cG9ydCwgaGFuZGxlUmVzaXplKTtcbiAgdXNlUmVzaXplT2JzZXJ2ZXIoY29udGV4dC5jb250ZW50LCBoYW5kbGVSZXNpemUpO1xuXG4gIHJldHVybiAoXG4gICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgdmlzaWJsZX0+XG4gICAgICA8U2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGVcbiAgICAgICAgZGF0YS1zdGF0ZT17dmlzaWJsZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nfVxuICAgICAgICB7Li4uc2Nyb2xsYmFyUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgLz5cbiAgICA8L1ByZXNlbmNlPlxuICApO1xufSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZUVsZW1lbnQgPSBTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc0VsZW1lbnQ7XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGVQcm9wcyBleHRlbmRzIE9taXQ8XG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzUHJvcHMsXG4gIGtleW9mIFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzUHJpdmF0ZVByb3BzXG4+IHtcbiAgb3JpZW50YXRpb24/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnO1xufVxuXG5jb25zdCBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZSA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZUVsZW1lbnQsXG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlUHJvcHNcbj4oZnVuY3Rpb24gU2Nyb2xsQXJlYVNjcm9sbGJhclZpc2libGUoXG4gIHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhU2Nyb2xsYmFyVmlzaWJsZVByb3BzPixcbiAgZm9yd2FyZGVkUmVmLFxuKSB7XG4gIGNvbnN0IHsgb3JpZW50YXRpb24gPSAndmVydGljYWwnLCAuLi5zY3JvbGxiYXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChTQ1JPTExCQVJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICBjb25zdCB0aHVtYlJlZiA9IFJlYWN0LnVzZVJlZjxTY3JvbGxBcmVhVGh1bWJFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHBvaW50ZXJPZmZzZXRSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gIGNvbnN0IFtzaXplcywgc2V0U2l6ZXNdID0gUmVhY3QudXNlU3RhdGU8U2l6ZXM+KHtcbiAgICBjb250ZW50OiAwLFxuICAgIHZpZXdwb3J0OiAwLFxuICAgIHNjcm9sbGJhcjogeyBzaXplOiAwLCBwYWRkaW5nU3RhcnQ6IDAsIHBhZGRpbmdFbmQ6IDAgfSxcbiAgfSk7XG4gIGNvbnN0IHRodW1iUmF0aW8gPSBnZXRUaHVtYlJhdGlvKHNpemVzLnZpZXdwb3J0LCBzaXplcy5jb250ZW50KTtcblxuICB0eXBlIFVuY29tbW9uUHJvcHMgPSAnb25UaHVtYlBvc2l0aW9uQ2hhbmdlJyB8ICdvbkRyYWdTY3JvbGwnIHwgJ29uV2hlZWxTY3JvbGwnO1xuICBjb25zdCBjb21tb25Qcm9wczogT21pdDxTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc1ByaXZhdGVQcm9wcywgVW5jb21tb25Qcm9wcz4gPSB7XG4gICAgLi4uc2Nyb2xsYmFyUHJvcHMsXG4gICAgc2l6ZXMsXG4gICAgb25TaXplc0NoYW5nZTogc2V0U2l6ZXMsXG4gICAgaGFzVGh1bWI6IEJvb2xlYW4odGh1bWJSYXRpbyA+IDAgJiYgdGh1bWJSYXRpbyA8IDEpLFxuICAgIG9uVGh1bWJDaGFuZ2U6ICh0aHVtYikgPT4gKHRodW1iUmVmLmN1cnJlbnQgPSB0aHVtYiksXG4gICAgb25UaHVtYlBvaW50ZXJVcDogKCkgPT4gKHBvaW50ZXJPZmZzZXRSZWYuY3VycmVudCA9IDApLFxuICAgIG9uVGh1bWJQb2ludGVyRG93bjogKHBvaW50ZXJQb3MpID0+IChwb2ludGVyT2Zmc2V0UmVmLmN1cnJlbnQgPSBwb2ludGVyUG9zKSxcbiAgfTtcblxuICBmdW5jdGlvbiBnZXRTY3JvbGxQb3NpdGlvbihwb2ludGVyUG9zOiBudW1iZXIsIGRpcj86IERpcmVjdGlvbikge1xuICAgIHJldHVybiBnZXRTY3JvbGxQb3NpdGlvbkZyb21Qb2ludGVyKHBvaW50ZXJQb3MsIHBvaW50ZXJPZmZzZXRSZWYuY3VycmVudCwgc2l6ZXMsIGRpcik7XG4gIH1cblxuICBpZiAob3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgIHJldHVybiAoXG4gICAgICA8U2Nyb2xsQXJlYVNjcm9sbGJhclhcbiAgICAgICAgey4uLmNvbW1vblByb3BzfVxuICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgb25UaHVtYlBvc2l0aW9uQ2hhbmdlPXsoKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQgJiYgdGh1bWJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsUG9zID0gY29udGV4dC52aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gZ2V0VGh1bWJPZmZzZXRGcm9tU2Nyb2xsKHNjcm9sbFBvcywgc2l6ZXMsIGNvbnRleHQuZGlyKTtcbiAgICAgICAgICAgIHRodW1iUmVmLmN1cnJlbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7b2Zmc2V0fXB4LCAwLCAwKWA7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvbldoZWVsU2Nyb2xsPXsoc2Nyb2xsUG9zKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc2Nyb2xsTGVmdCA9IHNjcm9sbFBvcztcbiAgICAgICAgfX1cbiAgICAgICAgb25EcmFnU2Nyb2xsPXsocG9pbnRlclBvcykgPT4ge1xuICAgICAgICAgIGlmIChjb250ZXh0LnZpZXdwb3J0KSB7XG4gICAgICAgICAgICBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbExlZnQgPSBnZXRTY3JvbGxQb3NpdGlvbihwb2ludGVyUG9zLCBjb250ZXh0LmRpcik7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgaWYgKG9yaWVudGF0aW9uID09PSAndmVydGljYWwnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFyWVxuICAgICAgICB7Li4uY29tbW9uUHJvcHN9XG4gICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICBvblRodW1iUG9zaXRpb25DaGFuZ2U9eygpID0+IHtcbiAgICAgICAgICBpZiAoY29udGV4dC52aWV3cG9ydCAmJiB0aHVtYlJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IGdldFRodW1iT2Zmc2V0RnJvbVNjcm9sbChzY3JvbGxQb3MsIHNpemVzKTtcbiAgICAgICAgICAgIHRodW1iUmVmLmN1cnJlbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDAsICR7b2Zmc2V0fXB4LCAwKWA7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBvbldoZWVsU2Nyb2xsPXsoc2Nyb2xsUG9zKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc2Nyb2xsVG9wID0gc2Nyb2xsUG9zO1xuICAgICAgICB9fVxuICAgICAgICBvbkRyYWdTY3JvbGw9eyhwb2ludGVyUG9zKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc2Nyb2xsVG9wID0gZ2V0U2Nyb2xsUG9zaXRpb24ocG9pbnRlclBvcyk7XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcml2YXRlUHJvcHMgPSB7XG4gIGhhc1RodW1iOiBib29sZWFuO1xuICBzaXplczogU2l6ZXM7XG4gIG9uU2l6ZXNDaGFuZ2Uoc2l6ZXM6IFNpemVzKTogdm9pZDtcbiAgb25UaHVtYkNoYW5nZSh0aHVtYjogU2Nyb2xsQXJlYVRodW1iRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBvblRodW1iUG9pbnRlckRvd24ocG9pbnRlclBvczogbnVtYmVyKTogdm9pZDtcbiAgb25UaHVtYlBvaW50ZXJVcCgpOiB2b2lkO1xuICBvblRodW1iUG9zaXRpb25DaGFuZ2UoKTogdm9pZDtcbiAgb25XaGVlbFNjcm9sbChzY3JvbGxQb3M6IG51bWJlcik6IHZvaWQ7XG4gIG9uRHJhZ1Njcm9sbChwb2ludGVyUG9zOiBudW1iZXIpOiB2b2lkO1xufTtcblxudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc0VsZW1lbnQgPSBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcm9wc1xuICBleHRlbmRzXG4gICAgT21pdDxTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbFByb3BzLCBrZXlvZiBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbFByaXZhdGVQcm9wcz4sXG4gICAgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcml2YXRlUHJvcHMge31cblxuY29uc3QgU2Nyb2xsQXJlYVNjcm9sbGJhclggPSAvKiBAX19QVVJFX18gKi8gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNFbGVtZW50LFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc1Byb3BzXG4+KGZ1bmN0aW9uIFNjcm9sbEFyZWFTY3JvbGxiYXJYKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc1Byb3BzPiwgZm9yd2FyZGVkUmVmKSB7XG4gIGNvbnN0IHsgc2l6ZXMsIG9uU2l6ZXNDaGFuZ2UsIC4uLnNjcm9sbGJhclByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KFNDUk9MTEJBUl9OQU1FLCBwcm9wcy5fX3Njb3BlU2Nyb2xsQXJlYSk7XG4gIGNvbnN0IFtjb21wdXRlZFN0eWxlLCBzZXRDb21wdXRlZFN0eWxlXSA9IFJlYWN0LnVzZVN0YXRlPENTU1N0eWxlRGVjbGFyYXRpb24+KCk7XG4gIGNvbnN0IHJlZiA9IFJlYWN0LnVzZVJlZjxTY3JvbGxBcmVhU2Nyb2xsYmFyQXhpc0VsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjb21wb3NlUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZiwgY29udGV4dC5vblNjcm9sbGJhclhDaGFuZ2UpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZi5jdXJyZW50KSBzZXRDb21wdXRlZFN0eWxlKGdldENvbXB1dGVkU3R5bGUocmVmLmN1cnJlbnQpKTtcbiAgfSwgW3JlZl0pO1xuXG4gIHJldHVybiAoXG4gICAgPFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsXG4gICAgICBkYXRhLW9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICB7Li4uc2Nyb2xsYmFyUHJvcHN9XG4gICAgICByZWY9e2NvbXBvc2VSZWZzfVxuICAgICAgc2l6ZXM9e3NpemVzfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBsZWZ0OiBjb250ZXh0LmRpciA9PT0gJ3J0bCcgPyAndmFyKC0tcmFkaXgtc2Nyb2xsLWFyZWEtY29ybmVyLXdpZHRoKScgOiAwLFxuICAgICAgICByaWdodDogY29udGV4dC5kaXIgPT09ICdsdHInID8gJ3ZhcigtLXJhZGl4LXNjcm9sbC1hcmVhLWNvcm5lci13aWR0aCknIDogMCxcbiAgICAgICAgJy0tcmFkaXgtc2Nyb2xsLWFyZWEtdGh1bWItd2lkdGgnOiBnZXRUaHVtYlNpemUoc2l6ZXMpICsgJ3B4JyxcbiAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICB9fVxuICAgICAgb25UaHVtYlBvaW50ZXJEb3duPXsocG9pbnRlclBvcykgPT4gcHJvcHMub25UaHVtYlBvaW50ZXJEb3duKHBvaW50ZXJQb3MueCl9XG4gICAgICBvbkRyYWdTY3JvbGw9eyhwb2ludGVyUG9zKSA9PiBwcm9wcy5vbkRyYWdTY3JvbGwocG9pbnRlclBvcy54KX1cbiAgICAgIG9uV2hlZWxTY3JvbGw9eyhldmVudCwgbWF4U2Nyb2xsUG9zKSA9PiB7XG4gICAgICAgIGlmIChjb250ZXh0LnZpZXdwb3J0KSB7XG4gICAgICAgICAgY29uc3Qgc2Nyb2xsUG9zID0gY29udGV4dC52aWV3cG9ydC5zY3JvbGxMZWZ0ICsgZXZlbnQuZGVsdGFYO1xuICAgICAgICAgIHByb3BzLm9uV2hlZWxTY3JvbGwoc2Nyb2xsUG9zKTtcbiAgICAgICAgICAvLyBwcmV2ZW50IHdpbmRvdyBzY3JvbGwgd2hlbiB3aGVlbGluZyBvbiBzY3JvbGxiYXJcbiAgICAgICAgICBpZiAoaXNTY3JvbGxpbmdXaXRoaW5TY3JvbGxiYXJCb3VuZHMoc2Nyb2xsUG9zLCBtYXhTY3JvbGxQb3MpKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfX1cbiAgICAgIG9uUmVzaXplPXsoKSA9PiB7XG4gICAgICAgIGlmIChyZWYuY3VycmVudCAmJiBjb250ZXh0LnZpZXdwb3J0ICYmIGNvbXB1dGVkU3R5bGUpIHtcbiAgICAgICAgICBvblNpemVzQ2hhbmdlKHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRleHQudmlld3BvcnQuc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgICB2aWV3cG9ydDogY29udGV4dC52aWV3cG9ydC5vZmZzZXRXaWR0aCxcbiAgICAgICAgICAgIHNjcm9sbGJhcjoge1xuICAgICAgICAgICAgICBzaXplOiByZWYuY3VycmVudC5jbGllbnRXaWR0aCxcbiAgICAgICAgICAgICAgcGFkZGluZ1N0YXJ0OiB0b0ludChjb21wdXRlZFN0eWxlLnBhZGRpbmdMZWZ0KSxcbiAgICAgICAgICAgICAgcGFkZGluZ0VuZDogdG9JbnQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nUmlnaHQpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfX1cbiAgICAvPlxuICApO1xufSk7XG5cbmNvbnN0IFNjcm9sbEFyZWFTY3JvbGxiYXJZID0gLyogQF9fUFVSRV9fICovIFJlYWN0LmZvcndhcmRSZWY8XG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJBeGlzRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcm9wc1xuPihmdW5jdGlvbiBTY3JvbGxBcmVhU2Nyb2xsYmFyWShwcm9wczogU2NvcGVkUHJvcHM8U2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNQcm9wcz4sIGZvcndhcmRlZFJlZikge1xuICBjb25zdCB7IHNpemVzLCBvblNpemVzQ2hhbmdlLCAuLi5zY3JvbGxiYXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChTQ1JPTExCQVJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICBjb25zdCBbY29tcHV0ZWRTdHlsZSwgc2V0Q29tcHV0ZWRTdHlsZV0gPSBSZWFjdC51c2VTdGF0ZTxDU1NTdHlsZURlY2xhcmF0aW9uPigpO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8U2Nyb2xsQXJlYVNjcm9sbGJhckF4aXNFbGVtZW50PihudWxsKTtcbiAgY29uc3QgY29tcG9zZVJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYsIGNvbnRleHQub25TY3JvbGxiYXJZQ2hhbmdlKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWYuY3VycmVudCkgc2V0Q29tcHV0ZWRTdHlsZShnZXRDb21wdXRlZFN0eWxlKHJlZi5jdXJyZW50KSk7XG4gIH0sIFtyZWZdKTtcblxuICByZXR1cm4gKFxuICAgIDxTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbFxuICAgICAgZGF0YS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcbiAgICAgIHsuLi5zY3JvbGxiYXJQcm9wc31cbiAgICAgIHJlZj17Y29tcG9zZVJlZnN9XG4gICAgICBzaXplcz17c2l6ZXN9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB0b3A6IDAsXG4gICAgICAgIHJpZ2h0OiBjb250ZXh0LmRpciA9PT0gJ2x0cicgPyAwIDogdW5kZWZpbmVkLFxuICAgICAgICBsZWZ0OiBjb250ZXh0LmRpciA9PT0gJ3J0bCcgPyAwIDogdW5kZWZpbmVkLFxuICAgICAgICBib3R0b206ICd2YXIoLS1yYWRpeC1zY3JvbGwtYXJlYS1jb3JuZXItaGVpZ2h0KScsXG4gICAgICAgICctLXJhZGl4LXNjcm9sbC1hcmVhLXRodW1iLWhlaWdodCc6IGdldFRodW1iU2l6ZShzaXplcykgKyAncHgnLFxuICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgIH19XG4gICAgICBvblRodW1iUG9pbnRlckRvd249eyhwb2ludGVyUG9zKSA9PiBwcm9wcy5vblRodW1iUG9pbnRlckRvd24ocG9pbnRlclBvcy55KX1cbiAgICAgIG9uRHJhZ1Njcm9sbD17KHBvaW50ZXJQb3MpID0+IHByb3BzLm9uRHJhZ1Njcm9sbChwb2ludGVyUG9zLnkpfVxuICAgICAgb25XaGVlbFNjcm9sbD17KGV2ZW50LCBtYXhTY3JvbGxQb3MpID0+IHtcbiAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIHtcbiAgICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbFRvcCArIGV2ZW50LmRlbHRhWTtcbiAgICAgICAgICBwcm9wcy5vbldoZWVsU2Nyb2xsKHNjcm9sbFBvcyk7XG4gICAgICAgICAgLy8gcHJldmVudCB3aW5kb3cgc2Nyb2xsIHdoZW4gd2hlZWxpbmcgb24gc2Nyb2xsYmFyXG4gICAgICAgICAgaWYgKGlzU2Nyb2xsaW5nV2l0aGluU2Nyb2xsYmFyQm91bmRzKHNjcm9sbFBvcywgbWF4U2Nyb2xsUG9zKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgICBvblJlc2l6ZT17KCkgPT4ge1xuICAgICAgICBpZiAocmVmLmN1cnJlbnQgJiYgY29udGV4dC52aWV3cG9ydCAmJiBjb21wdXRlZFN0eWxlKSB7XG4gICAgICAgICAgb25TaXplc0NoYW5nZSh7XG4gICAgICAgICAgICBjb250ZW50OiBjb250ZXh0LnZpZXdwb3J0LnNjcm9sbEhlaWdodCxcbiAgICAgICAgICAgIHZpZXdwb3J0OiBjb250ZXh0LnZpZXdwb3J0Lm9mZnNldEhlaWdodCxcbiAgICAgICAgICAgIHNjcm9sbGJhcjoge1xuICAgICAgICAgICAgICBzaXplOiByZWYuY3VycmVudC5jbGllbnRIZWlnaHQsXG4gICAgICAgICAgICAgIHBhZGRpbmdTdGFydDogdG9JbnQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nVG9wKSxcbiAgICAgICAgICAgICAgcGFkZGluZ0VuZDogdG9JbnQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nQm90dG9tKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn0pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2Nyb2xsYmFyQ29udGV4dCA9IHtcbiAgaGFzVGh1bWI6IGJvb2xlYW47XG4gIHNjcm9sbGJhcjogU2Nyb2xsQXJlYVNjcm9sbGJhckVsZW1lbnQgfCBudWxsO1xuICBvblRodW1iQ2hhbmdlKHRodW1iOiBTY3JvbGxBcmVhVGh1bWJFbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIG9uVGh1bWJQb2ludGVyVXAoKTogdm9pZDtcbiAgb25UaHVtYlBvaW50ZXJEb3duKHBvaW50ZXJQb3M6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSk6IHZvaWQ7XG4gIG9uVGh1bWJQb3NpdGlvbkNoYW5nZSgpOiB2b2lkO1xufTtcblxuY29uc3QgW1Njcm9sbGJhclByb3ZpZGVyLCB1c2VTY3JvbGxiYXJDb250ZXh0XSA9XG4gIGNyZWF0ZVNjcm9sbEFyZWFDb250ZXh0PFNjcm9sbGJhckNvbnRleHQ+KFNDUk9MTEJBUl9OQU1FKTtcblxudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbEVsZW1lbnQgPSBSZWFjdC5Db21wb25lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbFByaXZhdGVQcm9wcyA9IHtcbiAgc2l6ZXM6IFNpemVzO1xuICBoYXNUaHVtYjogYm9vbGVhbjtcbiAgb25UaHVtYkNoYW5nZTogU2Nyb2xsYmFyQ29udGV4dFsnb25UaHVtYkNoYW5nZSddO1xuICBvblRodW1iUG9pbnRlclVwOiBTY3JvbGxiYXJDb250ZXh0WydvblRodW1iUG9pbnRlclVwJ107XG4gIG9uVGh1bWJQb2ludGVyRG93bjogU2Nyb2xsYmFyQ29udGV4dFsnb25UaHVtYlBvaW50ZXJEb3duJ107XG4gIG9uVGh1bWJQb3NpdGlvbkNoYW5nZTogU2Nyb2xsYmFyQ29udGV4dFsnb25UaHVtYlBvc2l0aW9uQ2hhbmdlJ107XG4gIG9uV2hlZWxTY3JvbGwoZXZlbnQ6IFdoZWVsRXZlbnQsIG1heFNjcm9sbFBvczogbnVtYmVyKTogdm9pZDtcbiAgb25EcmFnU2Nyb2xsKHBvaW50ZXJQb3M6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSk6IHZvaWQ7XG4gIG9uUmVzaXplKCk6IHZvaWQ7XG59O1xuaW50ZXJmYWNlIFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsUHJvcHNcbiAgZXh0ZW5kc1xuICAgIE9taXQ8UHJpbWl0aXZlRGl2UHJvcHMsIGtleW9mIFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsUHJpdmF0ZVByb3BzPixcbiAgICBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbFByaXZhdGVQcm9wcyB7fVxuXG5jb25zdCBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFySW1wbEVsZW1lbnQsXG4gIFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsUHJvcHNcbj4oZnVuY3Rpb24gU2Nyb2xsQXJlYVNjcm9sbGJhckltcGwocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpIHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVTY3JvbGxBcmVhLFxuICAgIHNpemVzLFxuICAgIGhhc1RodW1iLFxuICAgIG9uVGh1bWJDaGFuZ2UsXG4gICAgb25UaHVtYlBvaW50ZXJVcCxcbiAgICBvblRodW1iUG9pbnRlckRvd24sXG4gICAgb25UaHVtYlBvc2l0aW9uQ2hhbmdlLFxuICAgIG9uRHJhZ1Njcm9sbCxcbiAgICBvbldoZWVsU2Nyb2xsLFxuICAgIG9uUmVzaXplLFxuICAgIC4uLnNjcm9sbGJhclByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgY29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KFNDUk9MTEJBUl9OQU1FLCBfX3Njb3BlU2Nyb2xsQXJlYSk7XG4gIGNvbnN0IFtzY3JvbGxiYXIsIHNldFNjcm9sbGJhcl0gPSBSZWFjdC51c2VTdGF0ZTxTY3JvbGxBcmVhU2Nyb2xsYmFyRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBjb21wb3NlUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHNldFNjcm9sbGJhcik7XG4gIGNvbnN0IHJlY3RSZWYgPSBSZWFjdC51c2VSZWY8RE9NUmVjdCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBwcmV2V2Via2l0VXNlclNlbGVjdFJlZiA9IFJlYWN0LnVzZVJlZjxzdHJpbmc+KCcnKTtcbiAgY29uc3Qgdmlld3BvcnQgPSBjb250ZXh0LnZpZXdwb3J0O1xuICBjb25zdCBtYXhTY3JvbGxQb3MgPSBzaXplcy5jb250ZW50IC0gc2l6ZXMudmlld3BvcnQ7XG4gIGNvbnN0IGhhbmRsZVdoZWVsU2Nyb2xsID0gdXNlQ2FsbGJhY2tSZWYob25XaGVlbFNjcm9sbCk7XG4gIGNvbnN0IGhhbmRsZVRodW1iUG9zaXRpb25DaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvblRodW1iUG9zaXRpb25DaGFuZ2UpO1xuICBjb25zdCBoYW5kbGVSZXNpemUgPSB1c2VEZWJvdW5jZUNhbGxiYWNrKG9uUmVzaXplLCAxMCk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlRHJhZ1Njcm9sbChldmVudDogUmVhY3QuUG9pbnRlckV2ZW50PEhUTUxFbGVtZW50Pikge1xuICAgIGlmIChyZWN0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IHggPSBldmVudC5jbGllbnRYIC0gcmVjdFJlZi5jdXJyZW50LmxlZnQ7XG4gICAgICBjb25zdCB5ID0gZXZlbnQuY2xpZW50WSAtIHJlY3RSZWYuY3VycmVudC50b3A7XG4gICAgICBvbkRyYWdTY3JvbGwoeyB4LCB5IH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXZSBiaW5kIHdoZWVsIGV2ZW50IGltcGVyYXRpdmVseSBzbyB3ZSBjYW4gc3dpdGNoIG9mZiBwYXNzaXZlXG4gICAqIG1vZGUgZm9yIGRvY3VtZW50IHdoZWVsIGV2ZW50IHRvIGFsbG93IGl0IHRvIGJlIHByZXZlbnRlZFxuICAgKi9cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVXaGVlbCA9IChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNvbnN0IGlzU2Nyb2xsYmFyV2hlZWwgPSBzY3JvbGxiYXI/LmNvbnRhaW5zKGVsZW1lbnQpO1xuICAgICAgaWYgKGlzU2Nyb2xsYmFyV2hlZWwpIGhhbmRsZVdoZWVsU2Nyb2xsKGV2ZW50LCBtYXhTY3JvbGxQb3MpO1xuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBoYW5kbGVXaGVlbCwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBoYW5kbGVXaGVlbCwgeyBwYXNzaXZlOiBmYWxzZSB9IGFzIGFueSk7XG4gIH0sIFt2aWV3cG9ydCwgc2Nyb2xsYmFyLCBtYXhTY3JvbGxQb3MsIGhhbmRsZVdoZWVsU2Nyb2xsXSk7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aHVtYiBwb3NpdGlvbiBvbiBzaXplcyBjaGFuZ2VcbiAgICovXG4gIFJlYWN0LnVzZUVmZmVjdChoYW5kbGVUaHVtYlBvc2l0aW9uQ2hhbmdlLCBbc2l6ZXMsIGhhbmRsZVRodW1iUG9zaXRpb25DaGFuZ2VdKTtcblxuICB1c2VSZXNpemVPYnNlcnZlcihzY3JvbGxiYXIsIGhhbmRsZVJlc2l6ZSk7XG4gIHVzZVJlc2l6ZU9ic2VydmVyKGNvbnRleHQuY29udGVudCwgaGFuZGxlUmVzaXplKTtcblxuICByZXR1cm4gKFxuICAgIDxTY3JvbGxiYXJQcm92aWRlclxuICAgICAgc2NvcGU9e19fc2NvcGVTY3JvbGxBcmVhfVxuICAgICAgc2Nyb2xsYmFyPXtzY3JvbGxiYXJ9XG4gICAgICBoYXNUaHVtYj17aGFzVGh1bWJ9XG4gICAgICBvblRodW1iQ2hhbmdlPXt1c2VDYWxsYmFja1JlZihvblRodW1iQ2hhbmdlKX1cbiAgICAgIG9uVGh1bWJQb2ludGVyVXA9e3VzZUNhbGxiYWNrUmVmKG9uVGh1bWJQb2ludGVyVXApfVxuICAgICAgb25UaHVtYlBvc2l0aW9uQ2hhbmdlPXtoYW5kbGVUaHVtYlBvc2l0aW9uQ2hhbmdlfVxuICAgICAgb25UaHVtYlBvaW50ZXJEb3duPXt1c2VDYWxsYmFja1JlZihvblRodW1iUG9pbnRlckRvd24pfVxuICAgID5cbiAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgIHsuLi5zY3JvbGxiYXJQcm9wc31cbiAgICAgICAgcmVmPXtjb21wb3NlUmVmc31cbiAgICAgICAgc3R5bGU9e3sgcG9zaXRpb246ICdhYnNvbHV0ZScsIC4uLnNjcm9sbGJhclByb3BzLnN0eWxlIH19XG4gICAgICAgIG9uUG9pbnRlckRvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlckRvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1haW5Qb2ludGVyID0gMDtcbiAgICAgICAgICBpZiAoZXZlbnQuYnV0dG9uID09PSBtYWluUG9pbnRlcikge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0UG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKTtcbiAgICAgICAgICAgIHJlY3RSZWYuY3VycmVudCA9IHNjcm9sbGJhciEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAvLyBwb2ludGVyIGNhcHR1cmUgZG9lc24ndCBwcmV2ZW50IHRleHQgc2VsZWN0aW9uIGluIFNhZmFyaVxuICAgICAgICAgICAgLy8gc28gd2UgcmVtb3ZlIHRleHQgc2VsZWN0aW9uIG1hbnVhbGx5IHdoZW4gc2Nyb2xsaW5nXG4gICAgICAgICAgICBwcmV2V2Via2l0VXNlclNlbGVjdFJlZi5jdXJyZW50ID0gZG9jdW1lbnQuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0O1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0ID0gJ25vbmUnO1xuICAgICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSAnYXV0byc7XG4gICAgICAgICAgICBoYW5kbGVEcmFnU2Nyb2xsKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pfVxuICAgICAgICBvblBvaW50ZXJNb3ZlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJNb3ZlLCBoYW5kbGVEcmFnU2Nyb2xsKX1cbiAgICAgICAgb25Qb2ludGVyVXA9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlclVwLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGlmIChlbGVtZW50Lmhhc1BvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdCA9IHByZXZXZWJraXRVc2VyU2VsZWN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgaWYgKGNvbnRleHQudmlld3BvcnQpIGNvbnRleHQudmlld3BvcnQuc3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSAnJztcbiAgICAgICAgICByZWN0UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9KX1cbiAgICAgIC8+XG4gICAgPC9TY3JvbGxiYXJQcm92aWRlcj5cbiAgKTtcbn0pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTY3JvbGxBcmVhVGh1bWJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVEhVTUJfTkFNRSA9ICdTY3JvbGxBcmVhVGh1bWInO1xuXG50eXBlIFNjcm9sbEFyZWFUaHVtYkVsZW1lbnQgPSBTY3JvbGxBcmVhVGh1bWJJbXBsRWxlbWVudDtcbmludGVyZmFjZSBTY3JvbGxBcmVhVGh1bWJQcm9wcyBleHRlbmRzIFNjcm9sbEFyZWFUaHVtYkltcGxQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBTY3JvbGxBcmVhVGh1bWIgPSAvKiBAX19QVVJFX18gKi8gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2Nyb2xsQXJlYVRodW1iRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVRodW1iUHJvcHNcbj4oXG4gIC8vIGJsYW5rIGxpbmUgdG8gcmVkdWNlIGRpZmYgbm9pc2VcbiAgZnVuY3Rpb24gU2Nyb2xsQXJlYVRodW1iKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhVGh1bWJQcm9wcz4sIGZvcndhcmRlZFJlZikge1xuICAgIGNvbnN0IHsgZm9yY2VNb3VudCwgLi4udGh1bWJQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3Qgc2Nyb2xsYmFyQ29udGV4dCA9IHVzZVNjcm9sbGJhckNvbnRleHQoVEhVTUJfTkFNRSwgcHJvcHMuX19zY29wZVNjcm9sbEFyZWEpO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBzY3JvbGxiYXJDb250ZXh0Lmhhc1RodW1ifT5cbiAgICAgICAgPFNjcm9sbEFyZWFUaHVtYkltcGwgcmVmPXtmb3J3YXJkZWRSZWZ9IHsuLi50aHVtYlByb3BzfSAvPlxuICAgICAgPC9QcmVzZW5jZT5cbiAgICApO1xuICB9LFxuKTtcblxudHlwZSBTY3JvbGxBcmVhVGh1bWJJbXBsRWxlbWVudCA9IFJlYWN0LkNvbXBvbmVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYVRodW1iSW1wbFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgU2Nyb2xsQXJlYVRodW1iSW1wbCA9IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5mb3J3YXJkUmVmPFxuICBTY3JvbGxBcmVhVGh1bWJJbXBsRWxlbWVudCxcbiAgU2Nyb2xsQXJlYVRodW1iSW1wbFByb3BzXG4+KFxuICAvLyBibGFuayBsaW5lIHRvIHJlZHVjZSBkaWZmIG5vaXNlXG4gIGZ1bmN0aW9uIFNjcm9sbEFyZWFUaHVtYkltcGwocHJvcHM6IFNjb3BlZFByb3BzPFNjcm9sbEFyZWFUaHVtYkltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikge1xuICAgIGNvbnN0IHsgX19zY29wZVNjcm9sbEFyZWEsIHN0eWxlLCAuLi50aHVtYlByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBzY3JvbGxBcmVhQ29udGV4dCA9IHVzZVNjcm9sbEFyZWFDb250ZXh0KFRIVU1CX05BTUUsIF9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgICBjb25zdCBzY3JvbGxiYXJDb250ZXh0ID0gdXNlU2Nyb2xsYmFyQ29udGV4dChUSFVNQl9OQU1FLCBfX3Njb3BlU2Nyb2xsQXJlYSk7XG4gICAgY29uc3QgeyBvblRodW1iUG9zaXRpb25DaGFuZ2UgfSA9IHNjcm9sbGJhckNvbnRleHQ7XG4gICAgY29uc3QgY29tcG9zZWRSZWYgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBzY3JvbGxiYXJDb250ZXh0Lm9uVGh1bWJDaGFuZ2UpO1xuICAgIGNvbnN0IHJlbW92ZVVubGlua2VkU2Nyb2xsTGlzdGVuZXJSZWYgPSBSZWFjdC51c2VSZWY8KCkgPT4gdm9pZD4odW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZWJvdW5jZVNjcm9sbEVuZCA9IHVzZURlYm91bmNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHJlbW92ZVVubGlua2VkU2Nyb2xsTGlzdGVuZXJSZWYuY3VycmVudCkge1xuICAgICAgICByZW1vdmVVbmxpbmtlZFNjcm9sbExpc3RlbmVyUmVmLmN1cnJlbnQoKTtcbiAgICAgICAgcmVtb3ZlVW5saW5rZWRTY3JvbGxMaXN0ZW5lclJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgdmlld3BvcnQgPSBzY3JvbGxBcmVhQ29udGV4dC52aWV3cG9ydDtcbiAgICAgIGlmICh2aWV3cG9ydCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogV2Ugb25seSBiaW5kIHRvIG5hdGl2ZSBzY3JvbGwgZXZlbnQgc28gd2Uga25vdyB3aGVuIHNjcm9sbCBzdGFydHMgYW5kIGVuZHMuXG4gICAgICAgICAqIFdoZW4gc2Nyb2xsIHN0YXJ0cyB3ZSBzdGFydCBhIHJlcXVlc3RBbmltYXRpb25GcmFtZSBsb29wIHRoYXQgY2hlY2tzIGZvclxuICAgICAgICAgKiBjaGFuZ2VzIHRvIHNjcm9sbCBwb3NpdGlvbi4gVGhhdCByQUYgbG9vcCB0cmlnZ2VycyBvdXIgdGh1bWIgcG9zaXRpb24gY2hhbmdlXG4gICAgICAgICAqIHdoZW4gcmVsZXZhbnQgdG8gYXZvaWQgc2Nyb2xsLWxpbmtlZCBlZmZlY3RzLiBXZSBjYW5jZWwgdGhlIGxvb3Agd2hlbiBzY3JvbGwgZW5kcy5cbiAgICAgICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Nb3ppbGxhL1BlcmZvcm1hbmNlL1Njcm9sbC1saW5rZWRfZWZmZWN0c1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgICAgIGRlYm91bmNlU2Nyb2xsRW5kKCk7XG4gICAgICAgICAgaWYgKCFyZW1vdmVVbmxpbmtlZFNjcm9sbExpc3RlbmVyUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gYWRkVW5saW5rZWRTY3JvbGxMaXN0ZW5lcih2aWV3cG9ydCwgb25UaHVtYlBvc2l0aW9uQ2hhbmdlKTtcbiAgICAgICAgICAgIHJlbW92ZVVubGlua2VkU2Nyb2xsTGlzdGVuZXJSZWYuY3VycmVudCA9IGxpc3RlbmVyO1xuICAgICAgICAgICAgb25UaHVtYlBvc2l0aW9uQ2hhbmdlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBvblRodW1iUG9zaXRpb25DaGFuZ2UoKTtcbiAgICAgICAgdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICB9XG4gICAgfSwgW3Njcm9sbEFyZWFDb250ZXh0LnZpZXdwb3J0LCBkZWJvdW5jZVNjcm9sbEVuZCwgb25UaHVtYlBvc2l0aW9uQ2hhbmdlXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgZGF0YS1zdGF0ZT17c2Nyb2xsYmFyQ29udGV4dC5oYXNUaHVtYiA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nfVxuICAgICAgICB7Li4udGh1bWJQcm9wc31cbiAgICAgICAgcmVmPXtjb21wb3NlZFJlZn1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICB3aWR0aDogJ3ZhcigtLXJhZGl4LXNjcm9sbC1hcmVhLXRodW1iLXdpZHRoKScsXG4gICAgICAgICAgaGVpZ2h0OiAndmFyKC0tcmFkaXgtc2Nyb2xsLWFyZWEtdGh1bWItaGVpZ2h0KScsXG4gICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgIH19XG4gICAgICAgIG9uUG9pbnRlckRvd25DYXB0dXJlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJEb3duQ2FwdHVyZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgdGh1bWIgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgdGh1bWJSZWN0ID0gdGh1bWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFggLSB0aHVtYlJlY3QubGVmdDtcbiAgICAgICAgICBjb25zdCB5ID0gZXZlbnQuY2xpZW50WSAtIHRodW1iUmVjdC50b3A7XG4gICAgICAgICAgc2Nyb2xsYmFyQ29udGV4dC5vblRodW1iUG9pbnRlckRvd24oeyB4LCB5IH0pO1xuICAgICAgICB9KX1cbiAgICAgICAgb25Qb2ludGVyVXA9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uUG9pbnRlclVwLCBzY3JvbGxiYXJDb250ZXh0Lm9uVGh1bWJQb2ludGVyVXApfVxuICAgICAgLz5cbiAgICApO1xuICB9LFxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2Nyb2xsQXJlYUNvcm5lclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT1JORVJfTkFNRSA9ICdTY3JvbGxBcmVhQ29ybmVyJztcblxudHlwZSBTY3JvbGxBcmVhQ29ybmVyRWxlbWVudCA9IFNjcm9sbEFyZWFDb3JuZXJJbXBsRWxlbWVudDtcbmludGVyZmFjZSBTY3JvbGxBcmVhQ29ybmVyUHJvcHMgZXh0ZW5kcyBTY3JvbGxBcmVhQ29ybmVySW1wbFByb3BzIHt9XG5cbmNvbnN0IFNjcm9sbEFyZWFDb3JuZXIgPSAvKiBAX19QVVJFX18gKi8gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2Nyb2xsQXJlYUNvcm5lckVsZW1lbnQsXG4gIFNjcm9sbEFyZWFDb3JuZXJQcm9wc1xuPihcbiAgLy8gYmxhbmsgbGluZSB0byByZWR1Y2UgZGlmZiBub2lzZVxuICBmdW5jdGlvbiBTY3JvbGxBcmVhQ29ybmVyKHByb3BzOiBTY29wZWRQcm9wczxTY3JvbGxBcmVhQ29ybmVyUHJvcHM+LCBmb3J3YXJkZWRSZWYpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2Nyb2xsQXJlYUNvbnRleHQoQ09STkVSX05BTUUsIHByb3BzLl9fc2NvcGVTY3JvbGxBcmVhKTtcbiAgICBjb25zdCBoYXNCb3RoU2Nyb2xsYmFyc1Zpc2libGUgPSBCb29sZWFuKGNvbnRleHQuc2Nyb2xsYmFyWCAmJiBjb250ZXh0LnNjcm9sbGJhclkpO1xuICAgIGNvbnN0IGhhc0Nvcm5lciA9IGNvbnRleHQudHlwZSAhPT0gJ3Njcm9sbCcgJiYgaGFzQm90aFNjcm9sbGJhcnNWaXNpYmxlO1xuICAgIHJldHVybiBoYXNDb3JuZXIgPyA8U2Nyb2xsQXJlYUNvcm5lckltcGwgey4uLnByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz4gOiBudWxsO1xuICB9LFxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFNjcm9sbEFyZWFDb3JuZXJJbXBsRWxlbWVudCA9IFJlYWN0LkNvbXBvbmVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2Nyb2xsQXJlYUNvcm5lckltcGxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IFNjcm9sbEFyZWFDb3JuZXJJbXBsID0gLyogQF9fUFVSRV9fICovIFJlYWN0LmZvcndhcmRSZWY8XG4gIFNjcm9sbEFyZWFDb3JuZXJJbXBsRWxlbWVudCxcbiAgU2Nyb2xsQXJlYUNvcm5lckltcGxQcm9wc1xuPihmdW5jdGlvbiBTY3JvbGxBcmVhQ29ybmVySW1wbChwcm9wczogU2NvcGVkUHJvcHM8U2Nyb2xsQXJlYUNvcm5lckltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikge1xuICBjb25zdCB7IF9fc2NvcGVTY3JvbGxBcmVhLCAuLi5jb3JuZXJQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VTY3JvbGxBcmVhQ29udGV4dChDT1JORVJfTkFNRSwgX19zY29wZVNjcm9sbEFyZWEpO1xuICBjb25zdCBbd2lkdGgsIHNldFdpZHRoXSA9IFJlYWN0LnVzZVN0YXRlKDApO1xuICBjb25zdCBbaGVpZ2h0LCBzZXRIZWlnaHRdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gIGNvbnN0IGhhc1NpemUgPSBCb29sZWFuKHdpZHRoICYmIGhlaWdodCk7XG4gIGNvbnN0IHsgb25Db3JuZXJXaWR0aENoYW5nZSwgb25Db3JuZXJIZWlnaHRDaGFuZ2UgfSA9IGNvbnRleHQ7XG5cbiAgdXNlUmVzaXplT2JzZXJ2ZXIoY29udGV4dC5zY3JvbGxiYXJYLCAoKSA9PiB7XG4gICAgY29uc3QgaGVpZ2h0ID0gY29udGV4dC5zY3JvbGxiYXJYPy5vZmZzZXRIZWlnaHQgfHwgMDtcbiAgICBjb250ZXh0Lm9uQ29ybmVySGVpZ2h0Q2hhbmdlKGhlaWdodCk7XG4gICAgc2V0SGVpZ2h0KGhlaWdodCk7XG4gIH0pO1xuXG4gIHVzZVJlc2l6ZU9ic2VydmVyKGNvbnRleHQuc2Nyb2xsYmFyWSwgKCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gY29udGV4dC5zY3JvbGxiYXJZPy5vZmZzZXRXaWR0aCB8fCAwO1xuICAgIGNvbnRleHQub25Db3JuZXJXaWR0aENoYW5nZSh3aWR0aCk7XG4gICAgc2V0V2lkdGgod2lkdGgpO1xuICB9KTtcblxuICAvLyBSZXNldCB0aGUgY29ybmVyIHNpemVzIHdoZW4gdGhlIGNvcm5lciB1bm1vdW50cyAoZWcuIHdoZW4gb25lIG9mIHRoZVxuICAvLyBzY3JvbGxiYXJzIGlzIG5vIGxvbmdlciB2aXNpYmxlKSBzbyB0aGUgZXhwb3NlZCBDU1MgdmFyaWFibGVzIGRvbid0IHN0aWNrXG4gIC8vIGFyb3VuZCBhbmQgbGVhdmUgYSBnYXAgb24gdGhlIHJlbWFpbmluZyBzY3JvbGxiYXIuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMzgzXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIG9uQ29ybmVyV2lkdGhDaGFuZ2UoMCk7XG4gICAgICBvbkNvcm5lckhlaWdodENoYW5nZSgwKTtcbiAgICB9O1xuICB9LCBbb25Db3JuZXJXaWR0aENoYW5nZSwgb25Db3JuZXJIZWlnaHRDaGFuZ2VdKTtcblxuICByZXR1cm4gaGFzU2l6ZSA/IChcbiAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgey4uLmNvcm5lclByb3BzfVxuICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgcmlnaHQ6IGNvbnRleHQuZGlyID09PSAnbHRyJyA/IDAgOiB1bmRlZmluZWQsXG4gICAgICAgIGxlZnQ6IGNvbnRleHQuZGlyID09PSAncnRsJyA/IDAgOiB1bmRlZmluZWQsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICB9fVxuICAgIC8+XG4gICkgOiBudWxsO1xufSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gdG9JbnQodmFsdWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHZhbHVlID8gcGFyc2VJbnQodmFsdWUsIDEwKSA6IDA7XG59XG5cbmZ1bmN0aW9uIGdldFRodW1iUmF0aW8odmlld3BvcnRTaXplOiBudW1iZXIsIGNvbnRlbnRTaXplOiBudW1iZXIpIHtcbiAgY29uc3QgcmF0aW8gPSB2aWV3cG9ydFNpemUgLyBjb250ZW50U2l6ZTtcbiAgcmV0dXJuIGlzTmFOKHJhdGlvKSA/IDAgOiByYXRpbztcbn1cblxuZnVuY3Rpb24gZ2V0VGh1bWJTaXplKHNpemVzOiBTaXplcykge1xuICBjb25zdCByYXRpbyA9IGdldFRodW1iUmF0aW8oc2l6ZXMudmlld3BvcnQsIHNpemVzLmNvbnRlbnQpO1xuICBjb25zdCBzY3JvbGxiYXJQYWRkaW5nID0gc2l6ZXMuc2Nyb2xsYmFyLnBhZGRpbmdTdGFydCArIHNpemVzLnNjcm9sbGJhci5wYWRkaW5nRW5kO1xuICBjb25zdCB0aHVtYlNpemUgPSAoc2l6ZXMuc2Nyb2xsYmFyLnNpemUgLSBzY3JvbGxiYXJQYWRkaW5nKSAqIHJhdGlvO1xuICAvLyBtaW5pbXVtIG9mIDE4IG1hdGNoZXMgbWFjT1MgbWluaW11bVxuICByZXR1cm4gTWF0aC5tYXgodGh1bWJTaXplLCAxOCk7XG59XG5cbmZ1bmN0aW9uIGdldFNjcm9sbFBvc2l0aW9uRnJvbVBvaW50ZXIoXG4gIHBvaW50ZXJQb3M6IG51bWJlcixcbiAgcG9pbnRlck9mZnNldDogbnVtYmVyLFxuICBzaXplczogU2l6ZXMsXG4gIGRpcjogRGlyZWN0aW9uID0gJ2x0cicsXG4pIHtcbiAgY29uc3QgdGh1bWJTaXplUHggPSBnZXRUaHVtYlNpemUoc2l6ZXMpO1xuICBjb25zdCB0aHVtYkNlbnRlciA9IHRodW1iU2l6ZVB4IC8gMjtcbiAgY29uc3Qgb2Zmc2V0ID0gcG9pbnRlck9mZnNldCB8fCB0aHVtYkNlbnRlcjtcbiAgY29uc3QgdGh1bWJPZmZzZXRGcm9tRW5kID0gdGh1bWJTaXplUHggLSBvZmZzZXQ7XG4gIGNvbnN0IG1pblBvaW50ZXJQb3MgPSBzaXplcy5zY3JvbGxiYXIucGFkZGluZ1N0YXJ0ICsgb2Zmc2V0O1xuICBjb25zdCBtYXhQb2ludGVyUG9zID0gc2l6ZXMuc2Nyb2xsYmFyLnNpemUgLSBzaXplcy5zY3JvbGxiYXIucGFkZGluZ0VuZCAtIHRodW1iT2Zmc2V0RnJvbUVuZDtcbiAgY29uc3QgbWF4U2Nyb2xsUG9zID0gc2l6ZXMuY29udGVudCAtIHNpemVzLnZpZXdwb3J0O1xuICBjb25zdCBzY3JvbGxSYW5nZSA9IGRpciA9PT0gJ2x0cicgPyBbMCwgbWF4U2Nyb2xsUG9zXSA6IFttYXhTY3JvbGxQb3MgKiAtMSwgMF07XG4gIGNvbnN0IGludGVycG9sYXRlID0gbGluZWFyU2NhbGUoW21pblBvaW50ZXJQb3MsIG1heFBvaW50ZXJQb3NdLCBzY3JvbGxSYW5nZSBhcyBbbnVtYmVyLCBudW1iZXJdKTtcbiAgcmV0dXJuIGludGVycG9sYXRlKHBvaW50ZXJQb3MpO1xufVxuXG5mdW5jdGlvbiBnZXRUaHVtYk9mZnNldEZyb21TY3JvbGwoc2Nyb2xsUG9zOiBudW1iZXIsIHNpemVzOiBTaXplcywgZGlyOiBEaXJlY3Rpb24gPSAnbHRyJykge1xuICBjb25zdCB0aHVtYlNpemVQeCA9IGdldFRodW1iU2l6ZShzaXplcyk7XG4gIGNvbnN0IHNjcm9sbGJhclBhZGRpbmcgPSBzaXplcy5zY3JvbGxiYXIucGFkZGluZ1N0YXJ0ICsgc2l6ZXMuc2Nyb2xsYmFyLnBhZGRpbmdFbmQ7XG4gIGNvbnN0IHNjcm9sbGJhciA9IHNpemVzLnNjcm9sbGJhci5zaXplIC0gc2Nyb2xsYmFyUGFkZGluZztcbiAgY29uc3QgbWF4U2Nyb2xsUG9zID0gc2l6ZXMuY29udGVudCAtIHNpemVzLnZpZXdwb3J0O1xuICBjb25zdCBtYXhUaHVtYlBvcyA9IHNjcm9sbGJhciAtIHRodW1iU2l6ZVB4O1xuICBjb25zdCBzY3JvbGxDbGFtcFJhbmdlID0gZGlyID09PSAnbHRyJyA/IFswLCBtYXhTY3JvbGxQb3NdIDogW21heFNjcm9sbFBvcyAqIC0xLCAwXTtcbiAgY29uc3Qgc2Nyb2xsV2l0aG91dE1vbWVudHVtID0gY2xhbXAoc2Nyb2xsUG9zLCBzY3JvbGxDbGFtcFJhbmdlIGFzIFtudW1iZXIsIG51bWJlcl0pO1xuICBjb25zdCBpbnRlcnBvbGF0ZSA9IGxpbmVhclNjYWxlKFswLCBtYXhTY3JvbGxQb3NdLCBbMCwgbWF4VGh1bWJQb3NdKTtcbiAgcmV0dXJuIGludGVycG9sYXRlKHNjcm9sbFdpdGhvdXRNb21lbnR1bSk7XG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90bWN3LXVwLWZvci1hZG9wdGlvbi9zaW1wbGUtbGluZWFyLXNjYWxlL2Jsb2IvbWFzdGVyL2luZGV4LmpzXG5mdW5jdGlvbiBsaW5lYXJTY2FsZShpbnB1dDogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSwgb3V0cHV0OiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdKSB7XG4gIHJldHVybiAodmFsdWU6IG51bWJlcikgPT4ge1xuICAgIGlmIChpbnB1dFswXSA9PT0gaW5wdXRbMV0gfHwgb3V0cHV0WzBdID09PSBvdXRwdXRbMV0pIHJldHVybiBvdXRwdXRbMF07XG4gICAgY29uc3QgcmF0aW8gPSAob3V0cHV0WzFdIC0gb3V0cHV0WzBdKSAvIChpbnB1dFsxXSAtIGlucHV0WzBdKTtcbiAgICByZXR1cm4gb3V0cHV0WzBdICsgcmF0aW8gKiAodmFsdWUgLSBpbnB1dFswXSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzU2Nyb2xsaW5nV2l0aGluU2Nyb2xsYmFyQm91bmRzKHNjcm9sbFBvczogbnVtYmVyLCBtYXhTY3JvbGxQb3M6IG51bWJlcikge1xuICByZXR1cm4gc2Nyb2xsUG9zID4gMCAmJiBzY3JvbGxQb3MgPCBtYXhTY3JvbGxQb3M7XG59XG5cbi8vIEN1c3RvbSBzY3JvbGwgaGFuZGxlciB0byBhdm9pZCBzY3JvbGwtbGlua2VkIGVmZmVjdHNcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvTW96aWxsYS9QZXJmb3JtYW5jZS9TY3JvbGwtbGlua2VkX2VmZmVjdHNcbmNvbnN0IGFkZFVubGlua2VkU2Nyb2xsTGlzdGVuZXIgPSAobm9kZTogSFRNTEVsZW1lbnQsIGhhbmRsZXIgPSAoKSA9PiB7fSkgPT4ge1xuICBsZXQgcHJldlBvc2l0aW9uID0geyBsZWZ0OiBub2RlLnNjcm9sbExlZnQsIHRvcDogbm9kZS5zY3JvbGxUb3AgfTtcbiAgbGV0IHJBRiA9IDA7XG4gIChmdW5jdGlvbiBsb29wKCkge1xuICAgIGNvbnN0IHBvc2l0aW9uID0geyBsZWZ0OiBub2RlLnNjcm9sbExlZnQsIHRvcDogbm9kZS5zY3JvbGxUb3AgfTtcbiAgICBjb25zdCBpc0hvcml6b250YWxTY3JvbGwgPSBwcmV2UG9zaXRpb24ubGVmdCAhPT0gcG9zaXRpb24ubGVmdDtcbiAgICBjb25zdCBpc1ZlcnRpY2FsU2Nyb2xsID0gcHJldlBvc2l0aW9uLnRvcCAhPT0gcG9zaXRpb24udG9wO1xuICAgIGlmIChpc0hvcml6b250YWxTY3JvbGwgfHwgaXNWZXJ0aWNhbFNjcm9sbCkgaGFuZGxlcigpO1xuICAgIHByZXZQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHJBRiA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobG9vcCk7XG4gIH0pKCk7XG4gIHJldHVybiAoKSA9PiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUockFGKTtcbn07XG5cbmZ1bmN0aW9uIHVzZURlYm91bmNlQ2FsbGJhY2soY2FsbGJhY2s6ICgpID0+IHZvaWQsIGRlbGF5OiBudW1iZXIpIHtcbiAgY29uc3QgaGFuZGxlQ2FsbGJhY2sgPSB1c2VDYWxsYmFja1JlZihjYWxsYmFjayk7XG4gIGNvbnN0IGRlYm91bmNlVGltZXJSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiAoKSA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXJSZWYuY3VycmVudCksIFtdKTtcbiAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZXJSZWYuY3VycmVudCk7XG4gICAgZGVib3VuY2VUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoaGFuZGxlQ2FsbGJhY2ssIGRlbGF5KTtcbiAgfSwgW2hhbmRsZUNhbGxiYWNrLCBkZWxheV0pO1xufVxuXG5mdW5jdGlvbiB1c2VSZXNpemVPYnNlcnZlcihlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsIG9uUmVzaXplOiAoKSA9PiB2b2lkKSB7XG4gIGNvbnN0IGhhbmRsZVJlc2l6ZSA9IHVzZUNhbGxiYWNrUmVmKG9uUmVzaXplKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBsZXQgckFGID0gMDtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgLyoqXG4gICAgICAgKiBSZXNpemUgT2JzZXJ2ZXIgd2lsbCB0aHJvdyBhbiBvZnRlbiBiZW5pZ24gZXJyb3IgdGhhdCBzYXlzIGBSZXNpemVPYnNlcnZlciBsb29wXG4gICAgICAgKiBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zYC4gVGhpcyBtZWFucyB0aGF0IFJlc2l6ZU9ic2VydmVyIHdhcyBub3RcbiAgICAgICAqIGFibGUgdG8gZGVsaXZlciBhbGwgb2JzZXJ2YXRpb25zIHdpdGhpbiBhIHNpbmdsZSBhbmltYXRpb24gZnJhbWUsIHNvIHdlIHVzZVxuICAgICAgICogYHJlcXVlc3RBbmltYXRpb25GcmFtZWAgdG8gZW5zdXJlIHdlIGRvbid0IGRlbGl2ZXIgdW5uZWNlc3Nhcnkgb2JzZXJ2YXRpb25zLlxuICAgICAgICogRnVydGhlciByZWFkaW5nOiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzM4XG4gICAgICAgKi9cbiAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUockFGKTtcbiAgICAgICAgckFGID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShoYW5kbGVSZXNpemUpO1xuICAgICAgfSk7XG4gICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHJBRik7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgIH07XG4gICAgfVxuICB9LCBbZWxlbWVudCwgaGFuZGxlUmVzaXplXSk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUm9vdCA9IFNjcm9sbEFyZWE7XG5jb25zdCBWaWV3cG9ydCA9IFNjcm9sbEFyZWFWaWV3cG9ydDtcbmNvbnN0IFNjcm9sbGJhciA9IFNjcm9sbEFyZWFTY3JvbGxiYXI7XG5jb25zdCBUaHVtYiA9IFNjcm9sbEFyZWFUaHVtYjtcbmNvbnN0IENvcm5lciA9IFNjcm9sbEFyZWFDb3JuZXI7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZVNjcm9sbEFyZWFTY29wZSxcbiAgLy9cbiAgU2Nyb2xsQXJlYSxcbiAgU2Nyb2xsQXJlYVZpZXdwb3J0LFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyLFxuICBTY3JvbGxBcmVhVGh1bWIsXG4gIFNjcm9sbEFyZWFDb3JuZXIsXG4gIC8vXG4gIFJvb3QsXG4gIFZpZXdwb3J0LFxuICBTY3JvbGxiYXIsXG4gIFRodW1iLFxuICBDb3JuZXIsXG59O1xuZXhwb3J0IHR5cGUge1xuICBTY3JvbGxBcmVhUHJvcHMsXG4gIFNjcm9sbEFyZWFWaWV3cG9ydFByb3BzLFxuICBTY3JvbGxBcmVhU2Nyb2xsYmFyUHJvcHMsXG4gIFNjcm9sbEFyZWFUaHVtYlByb3BzLFxuICBTY3JvbGxBcmVhQ29ybmVyUHJvcHMsXG59O1xuIiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG50eXBlIE1hY2hpbmU8Uz4gPSB7IFtrOiBzdHJpbmddOiB7IFtrOiBzdHJpbmddOiBTIH0gfTtcbnR5cGUgTWFjaGluZVN0YXRlPFQ+ID0ga2V5b2YgVDtcbnR5cGUgTWFjaGluZUV2ZW50PFQ+ID0ga2V5b2YgVW5pb25Ub0ludGVyc2VjdGlvbjxUW2tleW9mIFRdPjtcblxuLy8g8J+kryBodHRwczovL2ZldHRibG9nLmV1L3R5cGVzY3JpcHQtdW5pb24tdG8taW50ZXJzZWN0aW9uL1xudHlwZSBVbmlvblRvSW50ZXJzZWN0aW9uPFQ+ID0gKFQgZXh0ZW5kcyBhbnkgPyAoeDogVCkgPT4gYW55IDogbmV2ZXIpIGV4dGVuZHMgKHg6IGluZmVyIFIpID0+IGFueVxuICA/IFJcbiAgOiBuZXZlcjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVN0YXRlTWFjaGluZTxNPihcbiAgaW5pdGlhbFN0YXRlOiBNYWNoaW5lU3RhdGU8TT4sXG4gIG1hY2hpbmU6IE0gJiBNYWNoaW5lPE1hY2hpbmVTdGF0ZTxNPj4sXG4pIHtcbiAgcmV0dXJuIFJlYWN0LnVzZVJlZHVjZXIoKHN0YXRlOiBNYWNoaW5lU3RhdGU8TT4sIGV2ZW50OiBNYWNoaW5lRXZlbnQ8TT4pOiBNYWNoaW5lU3RhdGU8TT4gPT4ge1xuICAgIGNvbnN0IG5leHRTdGF0ZSA9IChtYWNoaW5lW3N0YXRlXSBhcyBhbnkpW2V2ZW50XTtcbiAgICByZXR1cm4gbmV4dFN0YXRlID8/IHN0YXRlO1xuICB9LCBpbml0aWFsU3RhdGUpO1xufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU2Nyb2xsQXJlYSIsIlNjcm9sbEFyZWFWaWV3cG9ydCIsIlNjcm9sbEFyZWFWaWV3cG9ydFN0eWxlIiwiU2Nyb2xsQXJlYVNjcm9sbGJhciIsIlNjcm9sbEFyZWFTY3JvbGxiYXJIb3ZlciIsIlNjcm9sbEFyZWFTY3JvbGxiYXJTY3JvbGwiLCJTY3JvbGxBcmVhU2Nyb2xsYmFyQXV0byIsIlNjcm9sbEFyZWFTY3JvbGxiYXJWaXNpYmxlIiwiU2Nyb2xsQXJlYVNjcm9sbGJhclgiLCJTY3JvbGxBcmVhU2Nyb2xsYmFyWSIsIlNjcm9sbEFyZWFTY3JvbGxiYXJJbXBsIiwiU2Nyb2xsQXJlYVRodW1iIiwiU2Nyb2xsQXJlYVRodW1iSW1wbCIsIlNjcm9sbEFyZWFDb3JuZXIiLCJTY3JvbGxBcmVhQ29ybmVySW1wbCIsImhlaWdodCIsIndpZHRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-scroll-area/dist/index.mjs\n");
|
|
91
|
-
|
|
92
|
-
/***/ }),
|
|
93
|
-
|
|
94
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs":
|
|
95
|
-
/*!**********************************************************!*\
|
|
96
|
-
!*** ./node_modules/@radix-ui/react-slot/dist/index.mjs ***!
|
|
97
|
-
\**********************************************************/
|
|
98
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
99
|
-
|
|
100
|
-
eval("var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Slot),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable),\n/* harmony export */ createSlot: () => (/* binding */ createSlot),\n/* harmony export */ createSlottable: () => (/* binding */ createSlottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/slot.tsx\n\n\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const Slot2 = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement = null;\n let hasSlottable = false;\n const newChildren = [];\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n react__WEBPACK_IMPORTED_MODULE_0__.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = \"child\" in slottable.props ? slottable.props.child : slottable.props.children;\n if (isLazyComponent(child) && typeof use === \"function\") {\n child = use(child._payload);\n }\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push(slottableElement?.props?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n if (slottableElement) {\n slottableElement = react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(slottableElement, void 0, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target — throw a descriptive error below instead.\n !hasSlottable && react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) === 1 && react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)\n ) {\n slottableElement = children;\n }\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : void 0;\n const composedRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__.useComposedRefs)(forwardedRef, slottableElementRef);\n if (!slottableElement) {\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName)\n );\n }\n return children;\n }\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n if (slottableElement.type !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(slottableElement, mergedProps);\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\n__name(createSlot, \"createSlot\");\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\nvar SLOTTABLE_IDENTIFIER = Symbol.for(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = /* @__PURE__ */ __name((props) => \"child\" in props ? props.children(props.child) : props.children, \"Slottable\");\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\n__name(createSlottable, \"createSlottable\");\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nvar getSlottableElementFromSlottable = /* @__PURE__ */ __name((slottable, child) => {\n if (\"child\" in slottable.props) {\n const child2 = slottable.props.child;\n if (!react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child2)) return null;\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child2, void 0, slottable.props.children(child2.props.children));\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) ? child : null;\n}, \"getSlottableElementFromSlottable\");\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\n__name(mergeProps, \"mergeProps\");\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n__name(getElementRef, \"getElementRef\");\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\n__name(isSlottable, \"isSlottable\");\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n__name(isLazyComponent, \"isLazyComponent\");\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\n__name(isPromiseLike, \"isPromiseLike\");\nvar createSlotError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n}, \"createSlotError\");\nvar createSlottableError = /* @__PURE__ */ __name((ownerName) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n}, \"createSlottableError\");\nvar use = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))[\" use \".trim().toString()];\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBLDREQUE0RCwyQkFBMkI7O0FBRXZGO0FBQytCO0FBQ2dDO0FBQy9EO0FBQ0E7QUFDQSxnQkFBZ0IsNkNBQWdCO0FBQ2hDLFVBQVUseUJBQXlCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksMkNBQWM7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSx5QkFBeUIsK0NBQWtCO0FBQzNDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiwyQ0FBYywwQkFBMEIsaURBQW9CO0FBQ25GO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDZFQUFlO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwRUFBMEU7QUFDMUUsa0NBQWtDLDJDQUFjO0FBQ2hEO0FBQ0E7QUFDQSxXQUFXLCtDQUFrQjtBQUM3QixHQUFHO0FBQ0gseUJBQXlCLFVBQVU7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixVQUFVO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLGlEQUFvQjtBQUM3QixXQUFXLCtDQUFrQjtBQUM3QjtBQUNBLFNBQVMsaURBQW9CO0FBQzdCLENBQUM7QUFDRDtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0NBQWtDO0FBQ2xDLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsaURBQW9CO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksV0FBVztBQUN2QixDQUFDO0FBQ0Q7QUFDQSxZQUFZLFdBQVc7QUFDdkIsQ0FBQztBQUNELFVBQVUseUxBQUs7QUFPYjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvZHVhbi9maWxlcy9waS13ZWIvZGlnaXRhbC1hZ2VudC1wbGF0Zm9ybS9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX25hbWUgPSAodGFyZ2V0LCB2YWx1ZSkgPT4gX19kZWZQcm9wKHRhcmdldCwgXCJuYW1lXCIsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcblxuLy8gc3JjL3Nsb3QudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG4vLyBAX19OT19TSURFX0VGRkVDVFNfX1xuZnVuY3Rpb24gY3JlYXRlU2xvdChvd25lck5hbWUpIHtcbiAgY29uc3QgU2xvdDIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgbGV0IHsgY2hpbGRyZW4sIC4uLnNsb3RQcm9wcyB9ID0gcHJvcHM7XG4gICAgbGV0IHNsb3R0YWJsZUVsZW1lbnQgPSBudWxsO1xuICAgIGxldCBoYXNTbG90dGFibGUgPSBmYWxzZTtcbiAgICBjb25zdCBuZXdDaGlsZHJlbiA9IFtdO1xuICAgIGlmIChpc0xhenlDb21wb25lbnQoY2hpbGRyZW4pICYmIHR5cGVvZiB1c2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgY2hpbGRyZW4gPSB1c2UoY2hpbGRyZW4uX3BheWxvYWQpO1xuICAgIH1cbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAobWF5YmVTbG90dGFibGUpID0+IHtcbiAgICAgIGlmIChpc1Nsb3R0YWJsZShtYXliZVNsb3R0YWJsZSkpIHtcbiAgICAgICAgaGFzU2xvdHRhYmxlID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc2xvdHRhYmxlID0gbWF5YmVTbG90dGFibGU7XG4gICAgICAgIGxldCBjaGlsZCA9IFwiY2hpbGRcIiBpbiBzbG90dGFibGUucHJvcHMgPyBzbG90dGFibGUucHJvcHMuY2hpbGQgOiBzbG90dGFibGUucHJvcHMuY2hpbGRyZW47XG4gICAgICAgIGlmIChpc0xhenlDb21wb25lbnQoY2hpbGQpICYmIHR5cGVvZiB1c2UgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGNoaWxkID0gdXNlKGNoaWxkLl9wYXlsb2FkKTtcbiAgICAgICAgfVxuICAgICAgICBzbG90dGFibGVFbGVtZW50ID0gZ2V0U2xvdHRhYmxlRWxlbWVudEZyb21TbG90dGFibGUoc2xvdHRhYmxlLCBjaGlsZCk7XG4gICAgICAgIG5ld0NoaWxkcmVuLnB1c2goc2xvdHRhYmxlRWxlbWVudD8ucHJvcHM/LmNoaWxkcmVuKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0NoaWxkcmVuLnB1c2gobWF5YmVTbG90dGFibGUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChzbG90dGFibGVFbGVtZW50KSB7XG4gICAgICBzbG90dGFibGVFbGVtZW50ID0gUmVhY3QuY2xvbmVFbGVtZW50KHNsb3R0YWJsZUVsZW1lbnQsIHZvaWQgMCwgbmV3Q2hpbGRyZW4pO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyBBIGBTbG90dGFibGVgIHdhcyBmb3VuZCBidXQgaXQgZGlkbid0IHJlc29sdmUgdG8gYSBzaW5nbGUgZWxlbWVudCAoZS5nLlxuICAgICAgLy8gaXQgd3JhcHBlZCBtdWx0aXBsZSBlbGVtZW50cywgdGV4dCwgb3IgYSByZW5kZXItcHJvcCBgY2hpbGRgIHRoYXRcbiAgICAgIC8vIHdhc24ndCBhbiBlbGVtZW50KS4gRG9uJ3QgZmFsbCBiYWNrIHRvIHRyZWF0aW5nIHRoZSBgU2xvdHRhYmxlYCB3cmFwcGVyXG4gICAgICAvLyBpdHNlbGYgYXMgdGhlIHNsb3QgdGFyZ2V0IOKAlCB0aHJvdyBhIGRlc2NyaXB0aXZlIGVycm9yIGJlbG93IGluc3RlYWQuXG4gICAgICAhaGFzU2xvdHRhYmxlICYmIFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA9PT0gMSAmJiBSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbilcbiAgICApIHtcbiAgICAgIHNsb3R0YWJsZUVsZW1lbnQgPSBjaGlsZHJlbjtcbiAgICB9XG4gICAgY29uc3Qgc2xvdHRhYmxlRWxlbWVudFJlZiA9IHNsb3R0YWJsZUVsZW1lbnQgPyBnZXRFbGVtZW50UmVmKHNsb3R0YWJsZUVsZW1lbnQpIDogdm9pZCAwO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgc2xvdHRhYmxlRWxlbWVudFJlZik7XG4gICAgaWYgKCFzbG90dGFibGVFbGVtZW50KSB7XG4gICAgICBpZiAoY2hpbGRyZW4gfHwgY2hpbGRyZW4gPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGhhc1Nsb3R0YWJsZSA/IGNyZWF0ZVNsb3R0YWJsZUVycm9yKG93bmVyTmFtZSkgOiBjcmVhdGVTbG90RXJyb3Iob3duZXJOYW1lKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoc2xvdFByb3BzLCBzbG90dGFibGVFbGVtZW50LnByb3BzID8/IHt9KTtcbiAgICBpZiAoc2xvdHRhYmxlRWxlbWVudC50eXBlICE9PSBSZWFjdC5GcmFnbWVudCkge1xuICAgICAgbWVyZ2VkUHJvcHMucmVmID0gZm9yd2FyZGVkUmVmID8gY29tcG9zZWRSZWYgOiBzbG90dGFibGVFbGVtZW50UmVmO1xuICAgIH1cbiAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KHNsb3R0YWJsZUVsZW1lbnQsIG1lcmdlZFByb3BzKTtcbiAgfSk7XG4gIFNsb3QyLmRpc3BsYXlOYW1lID0gYCR7b3duZXJOYW1lfS5TbG90YDtcbiAgcmV0dXJuIFNsb3QyO1xufVxuX19uYW1lKGNyZWF0ZVNsb3QsIFwiY3JlYXRlU2xvdFwiKTtcbnZhciBTbG90ID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVNsb3QoXCJTbG90XCIpO1xudmFyIFNMT1RUQUJMRV9JREVOVElGSUVSID0gU3ltYm9sLmZvcihcInJhZGl4LnNsb3R0YWJsZVwiKTtcbi8vIEBfX05PX1NJREVfRUZGRUNUU19fXG5mdW5jdGlvbiBjcmVhdGVTbG90dGFibGUob3duZXJOYW1lKSB7XG4gIGNvbnN0IFNsb3R0YWJsZTIgPSAvKiBAX19QVVJFX18gKi8gX19uYW1lKChwcm9wcykgPT4gXCJjaGlsZFwiIGluIHByb3BzID8gcHJvcHMuY2hpbGRyZW4ocHJvcHMuY2hpbGQpIDogcHJvcHMuY2hpbGRyZW4sIFwiU2xvdHRhYmxlXCIpO1xuICBTbG90dGFibGUyLmRpc3BsYXlOYW1lID0gYCR7b3duZXJOYW1lfS5TbG90dGFibGVgO1xuICBTbG90dGFibGUyLl9fcmFkaXhJZCA9IFNMT1RUQUJMRV9JREVOVElGSUVSO1xuICByZXR1cm4gU2xvdHRhYmxlMjtcbn1cbl9fbmFtZShjcmVhdGVTbG90dGFibGUsIFwiY3JlYXRlU2xvdHRhYmxlXCIpO1xudmFyIFNsb3R0YWJsZSA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVTbG90dGFibGUoXCJTbG90dGFibGVcIik7XG52YXIgZ2V0U2xvdHRhYmxlRWxlbWVudEZyb21TbG90dGFibGUgPSAvKiBAX19QVVJFX18gKi8gX19uYW1lKChzbG90dGFibGUsIGNoaWxkKSA9PiB7XG4gIGlmIChcImNoaWxkXCIgaW4gc2xvdHRhYmxlLnByb3BzKSB7XG4gICAgY29uc3QgY2hpbGQyID0gc2xvdHRhYmxlLnByb3BzLmNoaWxkO1xuICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQyKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZDIsIHZvaWQgMCwgc2xvdHRhYmxlLnByb3BzLmNoaWxkcmVuKGNoaWxkMi5wcm9wcy5jaGlsZHJlbikpO1xuICB9XG4gIHJldHVybiBSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkgPyBjaGlsZCA6IG51bGw7XG59LCBcImdldFNsb3R0YWJsZUVsZW1lbnRGcm9tU2xvdHRhYmxlXCIpO1xuZnVuY3Rpb24gbWVyZ2VQcm9wcyhzbG90UHJvcHMsIGNoaWxkUHJvcHMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVQcm9wcyA9IHsgLi4uY2hpbGRQcm9wcyB9O1xuICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIGNoaWxkUHJvcHMpIHtcbiAgICBjb25zdCBzbG90UHJvcFZhbHVlID0gc2xvdFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBjaGlsZFByb3BWYWx1ZSA9IGNoaWxkUHJvcHNbcHJvcE5hbWVdO1xuICAgIGNvbnN0IGlzSGFuZGxlciA9IC9eb25bQS1aXS8udGVzdChwcm9wTmFtZSk7XG4gICAgaWYgKGlzSGFuZGxlcikge1xuICAgICAgaWYgKHNsb3RQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcbiAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSAoLi4uYXJncykgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGNoaWxkUHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICAgIHNsb3RQcm9wVmFsdWUoLi4uYXJncyk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAoc2xvdFByb3BWYWx1ZSkge1xuICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHNsb3RQcm9wVmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJzdHlsZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IHsgLi4uc2xvdFByb3BWYWx1ZSwgLi4uY2hpbGRQcm9wVmFsdWUgfTtcbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcImNsYXNzTmFtZVwiKSB7XG4gICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtzbG90UHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4geyAuLi5zbG90UHJvcHMsIC4uLm92ZXJyaWRlUHJvcHMgfTtcbn1cbl9fbmFtZShtZXJnZVByb3BzLCBcIm1lcmdlUHJvcHNcIik7XG5mdW5jdGlvbiBnZXRFbGVtZW50UmVmKGVsZW1lbnQpIHtcbiAgbGV0IGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudC5wcm9wcywgXCJyZWZcIik/LmdldDtcbiAgbGV0IG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucmVmO1xuICB9XG4gIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgXCJyZWZcIik/LmdldDtcbiAgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgaWYgKG1heVdhcm4pIHtcbiAgICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWY7XG4gIH1cbiAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmO1xufVxuX19uYW1lKGdldEVsZW1lbnRSZWYsIFwiZ2V0RWxlbWVudFJlZlwiKTtcbmZ1bmN0aW9uIGlzU2xvdHRhYmxlKGNoaWxkKSB7XG4gIHJldHVybiBSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkgJiYgdHlwZW9mIGNoaWxkLnR5cGUgPT09IFwiZnVuY3Rpb25cIiAmJiBcIl9fcmFkaXhJZFwiIGluIGNoaWxkLnR5cGUgJiYgY2hpbGQudHlwZS5fX3JhZGl4SWQgPT09IFNMT1RUQUJMRV9JREVOVElGSUVSO1xufVxuX19uYW1lKGlzU2xvdHRhYmxlLCBcImlzU2xvdHRhYmxlXCIpO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1xuZnVuY3Rpb24gaXNMYXp5Q29tcG9uZW50KGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnQgIT0gbnVsbCAmJiB0eXBlb2YgZWxlbWVudCA9PT0gXCJvYmplY3RcIiAmJiBcIiQkdHlwZW9mXCIgaW4gZWxlbWVudCAmJiBlbGVtZW50LiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgJiYgXCJfcGF5bG9hZFwiIGluIGVsZW1lbnQgJiYgaXNQcm9taXNlTGlrZShlbGVtZW50Ll9wYXlsb2FkKTtcbn1cbl9fbmFtZShpc0xhenlDb21wb25lbnQsIFwiaXNMYXp5Q29tcG9uZW50XCIpO1xuZnVuY3Rpb24gaXNQcm9taXNlTGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsICYmIFwidGhlblwiIGluIHZhbHVlO1xufVxuX19uYW1lKGlzUHJvbWlzZUxpa2UsIFwiaXNQcm9taXNlTGlrZVwiKTtcbnZhciBjcmVhdGVTbG90RXJyb3IgPSAvKiBAX19QVVJFX18gKi8gX19uYW1lKChvd25lck5hbWUpID0+IHtcbiAgcmV0dXJuIGAke293bmVyTmFtZX0gZmFpbGVkIHRvIHNsb3Qgb250byBpdHMgY2hpbGRyZW4uIEV4cGVjdGVkIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQgb3IgXFxgU2xvdHRhYmxlXFxgLmA7XG59LCBcImNyZWF0ZVNsb3RFcnJvclwiKTtcbnZhciBjcmVhdGVTbG90dGFibGVFcnJvciA9IC8qIEBfX1BVUkVfXyAqLyBfX25hbWUoKG93bmVyTmFtZSkgPT4ge1xuICByZXR1cm4gYCR7b3duZXJOYW1lfSBmYWlsZWQgdG8gc2xvdCBvbnRvIGl0cyBcXGBTbG90dGFibGVcXGAuIEV4cGVjdGVkIFxcYFNsb3R0YWJsZVxcYCB0byByZWNlaXZlIGEgc2luZ2xlIFJlYWN0IGVsZW1lbnQgY2hpbGQuYDtcbn0sIFwiY3JlYXRlU2xvdHRhYmxlRXJyb3JcIik7XG52YXIgdXNlID0gUmVhY3RbXCIgdXNlIFwiLnRyaW0oKS50b1N0cmluZygpXTtcbmV4cG9ydCB7XG4gIFNsb3QgYXMgUm9vdCxcbiAgU2xvdCxcbiAgU2xvdHRhYmxlLFxuICBjcmVhdGVTbG90LFxuICBjcmVhdGVTbG90dGFibGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\n");
|
|
101
|
-
|
|
102
|
-
/***/ }),
|
|
103
|
-
|
|
104
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs":
|
|
105
|
-
/*!**********************************************************************!*\
|
|
106
|
-
!*** ./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***!
|
|
107
|
-
\**********************************************************************/
|
|
108
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
109
|
-
|
|
110
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ useCallbackRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nvar __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-callback-ref.tsx\n\nfunction useCallbackRef(callback) {\n const callbackRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(callback);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n callbackRef.current = callback;\n });\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ((...args) => callbackRef.current?.(...args)), []);\n}\n__name(useCallbackRef, \"useCallbackRef\");\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBLDREQUE0RCwyQkFBMkI7O0FBRXZGO0FBQytCO0FBQy9CO0FBQ0Esc0JBQXNCLHlDQUFZO0FBQ2xDLEVBQUUsNENBQWU7QUFDakI7QUFDQSxHQUFHO0FBQ0gsU0FBUywwQ0FBYTtBQUN0QjtBQUNBO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2R1YW4vZmlsZXMvcGktd2ViL2RpZ2l0YWwtYWdlbnQtcGxhdGZvcm0vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19uYW1lID0gKHRhcmdldCwgdmFsdWUpID0+IF9fZGVmUHJvcCh0YXJnZXQsIFwibmFtZVwiLCB7IHZhbHVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG5cbi8vIHNyYy91c2UtY2FsbGJhY2stcmVmLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiB1c2VDYWxsYmFja1JlZihjYWxsYmFjaykge1xuICBjb25zdCBjYWxsYmFja1JlZiA9IFJlYWN0LnVzZVJlZihjYWxsYmFjayk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY2FsbGJhY2tSZWYuY3VycmVudCA9IGNhbGxiYWNrO1xuICB9KTtcbiAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKCguLi5hcmdzKSA9PiBjYWxsYmFja1JlZi5jdXJyZW50Py4oLi4uYXJncykpLCBbXSk7XG59XG5fX25hbWUodXNlQ2FsbGJhY2tSZWYsIFwidXNlQ2FsbGJhY2tSZWZcIik7XG5leHBvcnQge1xuICB1c2VDYWxsYmFja1JlZlxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n");
|
|
111
|
-
|
|
112
|
-
/***/ }),
|
|
113
|
-
|
|
114
|
-
/***/ "(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs":
|
|
115
|
-
/*!***********************************************************************!*\
|
|
116
|
-
!*** ./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs ***!
|
|
117
|
-
\***********************************************************************/
|
|
118
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
119
|
-
|
|
120
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLayoutEffect: () => (/* binding */ useLayoutEffect2)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n// src/use-layout-effect.tsx\n\nvar useLayoutEffect2 = globalThis?.document ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : () => {\n};\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0L2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDK0I7QUFDL0IsOENBQThDLGtEQUFxQjtBQUNuRTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9kdWFuL2ZpbGVzL3BpLXdlYi9kaWdpdGFsLWFnZW50LXBsYXRmb3JtL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QvZGlzdC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL3VzZS1sYXlvdXQtZWZmZWN0LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG52YXIgdXNlTGF5b3V0RWZmZWN0MiA9IGdsb2JhbFRoaXM/LmRvY3VtZW50ID8gUmVhY3QudXNlTGF5b3V0RWZmZWN0IDogKCkgPT4ge1xufTtcbmV4cG9ydCB7XG4gIHVzZUxheW91dEVmZmVjdDIgYXMgdXNlTGF5b3V0RWZmZWN0XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\n");
|
|
121
|
-
|
|
122
|
-
/***/ })
|
|
123
|
-
|
|
124
|
-
};
|
|
125
|
-
;
|