@uniweb/runtime 0.8.10 → 0.8.11

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BnewW1wW.js","sources":["../../../../theming/src/section-overrides.js","../../../../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js","../../../../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.js","../../../../../node_modules/.pnpm/react-dom@19.2.5_react@19.2.5/node_modules/react-dom/cjs/react-dom-client.production.js","../../../../../node_modules/.pnpm/react-dom@19.2.5_react@19.2.5/node_modules/react-dom/client.js","../../../src/default-fetcher.js","../../../../../node_modules/.pnpm/react-router@7.12.0_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/react-router/dist/development/chunk-EPOLDU6W.mjs","../../../src/prepare-props.js","../../../src/components/Background.jsx","../../../src/components/BlockRenderer.jsx","../../../src/components/Blocks.jsx","../../../src/components/Layout.jsx","../../../src/hooks/useHeadMeta.js","../../../src/default-404.js","../../../src/components/PageRenderer.jsx","../../../src/wire-foundation.js","../../../src/setup.js","../../../src/foundation-loader.js","../../../src/components/ThemeProvider.jsx","../../../src/hooks/useRememberScroll.js","../../../src/hooks/useLinkInterceptor.js","../../../src/components/WebsiteRenderer.jsx","../../../src/components/ErrorBoundary.jsx","../../../src/RuntimeProvider.jsx","../../../src/index.jsx","../../../src/shell/main.js"],"sourcesContent":["/**\n * Section Override CSS Builder\n *\n * Builds a single CSS string from all section-level overrides on a page.\n * Follows the same pattern as buildTheme() for global CSS:\n * all overrides are pre-built into a <style id=\"uniweb-page-overrides\"> tag.\n *\n * @module @uniweb/theming/section-overrides\n */\n\nimport { generatePalettes } from './shade-generator.js'\nimport { normalizeTokenValue } from './normalize.js'\n\n/**\n * Check if a block has any section-level overrides worth emitting.\n *\n * @param {Object} standardOptions - Block's standardOptions\n * @returns {boolean}\n */\nfunction hasOverrides(standardOptions) {\n if (!standardOptions) return false\n\n const { colors, foundationStyles } = standardOptions\n\n if (foundationStyles && Object.keys(foundationStyles).length > 0) return true\n if (!colors) return false\n\n const hasColors =\n colors.colors?.light && Object.keys(colors.colors.light).length > 0\n const hasElements =\n colors.elements &&\n Object.values(colors.elements).some(\n (ctx) => ctx && Object.keys(ctx).length > 0\n )\n return hasColors || hasElements\n}\n\n/**\n * Build CSS variable declarations for base palette overrides.\n * Base palette is context-independent — always stored under the 'light' key.\n *\n * @param {Object} baseColors - e.g. { primary: \"#3b82f6\", accent: \"#f59e0b\" }\n * @returns {string[]} CSS declaration lines\n */\nfunction buildPaletteVars(baseColors) {\n if (!baseColors || Object.keys(baseColors).length === 0) return []\n\n const vars = []\n const palettes = generatePalettes(baseColors)\n\n for (const [name, shades] of Object.entries(palettes)) {\n for (const [level, value] of Object.entries(shades)) {\n vars.push(` --${name}-${level}: ${value};`)\n }\n }\n\n return vars\n}\n\n/**\n * Build CSS variable declarations for semantic token overrides.\n *\n * @param {Object} elements - e.g. { heading: \"rgba(var(--primary-900) / 1.00)\", ... }\n * @returns {string[]} CSS declaration lines\n */\nfunction buildElementVars(elements) {\n if (!elements || Object.keys(elements).length === 0) return []\n\n const vars = []\n for (const [token, value] of Object.entries(elements)) {\n if (value === '' || value == null) continue\n vars.push(` --${token}: ${normalizeTokenValue(value)};`)\n }\n return vars\n}\n\n/**\n * Build CSS variable declarations for foundation style overrides.\n *\n * @param {Object} styles - e.g. { \"border-radius\": \"0.5rem\" }\n * @returns {string[]} CSS declaration lines\n */\nfunction buildFoundationVars(styles) {\n if (!styles || Object.keys(styles).length === 0) return []\n\n const vars = []\n for (const [name, value] of Object.entries(styles)) {\n if (value === '' || value == null || typeof value === 'object') continue\n vars.push(` --${name}: ${value};`)\n }\n return vars\n}\n\n/**\n * Split foundation styles into flat (context-independent) and\n * context-keyed (color/gradient) values.\n *\n * Flat values: { \"radius-xl\": \"1.5rem\" }\n * Context-keyed values: { \"colorful-bg\": { light: \"linear-gradient(...)\", dark: \"...\" } }\n *\n * @param {Object} styles - Foundation styles object\n * @returns {{ flat: Object, contexts: Object }} - flat styles + { light: {...}, dark: {...} }\n */\nfunction splitFoundationStyles(styles) {\n if (!styles || Object.keys(styles).length === 0) return { flat: {}, contexts: {} }\n\n const flat = {}\n const contexts = {}\n\n for (const [name, value] of Object.entries(styles)) {\n if (value == null) continue\n if (typeof value === 'object') {\n // Context-keyed: { light: \"...\", dark: \"...\" }\n for (const [ctx, ctxVal] of Object.entries(value)) {\n if (ctxVal === '' || ctxVal == null) continue\n if (!contexts[ctx]) contexts[ctx] = {}\n contexts[ctx][name] = ctxVal\n }\n } else {\n flat[name] = value\n }\n }\n\n return { flat, contexts }\n}\n\n/**\n * Build a CSS rule for a section with its overrides.\n *\n * @param {string} selector - CSS selector (e.g. \"#section-42\")\n * @param {string[]} vars - CSS declaration lines\n * @returns {string} CSS rule string (empty if no vars)\n */\nfunction buildRule(selector, vars) {\n if (vars.length === 0) return ''\n return `${selector} {\\n${vars.join('\\n')}\\n}\\n`\n}\n\n/**\n * Build section override CSS for all blocks on a page.\n *\n * Takes an array of block-like objects and appearance config,\n * returns a CSS string ready for injection into a <style> tag.\n *\n * Works with both Block instances and plain data objects — only reads:\n * - block.stableId || block.id — for CSS selector\n * - block.themeName — '' for Auto, 'light'/'medium'/'dark' for Pinned\n * - block.standardOptions — { colors, foundationStyles }\n * - block.componentVars — merged meta.js defaults + frontmatter overrides\n *\n * @param {Array<Object>} blocks - Block data objects\n * @param {Object} appearance - Theme appearance config\n * @param {boolean} appearance.allowToggle - Whether scheme toggle is enabled\n * @param {string} appearance.default - Default scheme ('light' or 'dark')\n * @returns {string} CSS string (empty if no overrides)\n */\nexport function buildSectionOverrides(blocks, appearance = {}) {\n if (!blocks || blocks.length === 0) return ''\n\n let css = ''\n\n for (const block of blocks) {\n const hasStandardOverrides = hasOverrides(block.standardOptions)\n const hasComponentVars = block.componentVars && Object.keys(block.componentVars).length > 0\n\n if (!hasStandardOverrides && !hasComponentVars) continue\n\n const { colors, foundationStyles } = block.standardOptions || {}\n const sectionId = block.stableId || block.id\n const selector = `#section-${sectionId}`\n\n const isAuto = !block.themeName\n const hasToggle = appearance.allowToggle\n\n // Base palette is context-independent (always under 'light' key)\n const paletteVars = buildPaletteVars(colors?.colors?.light)\n\n // Split foundation styles: flat (context-independent) + context-keyed (color/gradient)\n const { flat: flatFoundation, contexts: ctxFoundation } = splitFoundationStyles(foundationStyles)\n const foundationVars = buildFoundationVars(flatFoundation)\n\n // Component-level CSS vars are context-independent\n const compVars = buildFoundationVars(block.componentVars)\n\n if (isAuto && hasToggle) {\n // Dual rules: light-scoped elements + dark-scoped elements\n const lightElementVars = buildElementVars(colors?.elements?.light)\n const darkElementVars = buildElementVars(colors?.elements?.dark)\n\n // Context-aware foundation vars (color/gradient types)\n const lightFoundationCtx = buildFoundationVars(ctxFoundation.light)\n const darkFoundationCtx = buildFoundationVars(ctxFoundation.dark)\n\n // Context-independent rule: palette + flat foundation + component vars (apply in both schemes)\n const sharedVars = [...paletteVars, ...foundationVars, ...compVars]\n css += buildRule(selector, sharedVars)\n\n // Light-only overrides (elements + context-aware foundation vars)\n css += buildRule(`:root:not(.scheme-dark) ${selector}`, [...lightElementVars, ...lightFoundationCtx])\n\n // Dark-only overrides (elements + context-aware foundation vars)\n css += buildRule(`.scheme-dark ${selector}`, [...darkElementVars, ...darkFoundationCtx])\n } else {\n // Single context: when toggle is off, always use 'light' bucket\n // (overrides are context-independent); when toggle is on, use pinned context\n const ctx = hasToggle ? (block.themeName || 'light') : 'light'\n const elementVars = buildElementVars(colors?.elements?.[ctx])\n const ctxFoundationVars = buildFoundationVars(ctxFoundation[ctx])\n\n const allVars = [...paletteVars, ...elementVars, ...foundationVars, ...compVars, ...ctxFoundationVars]\n css += buildRule(selector, allVars)\n }\n }\n\n return css\n}\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"scheduler\"),\n React = require(\"react\"),\n ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$286;\n if (canUseDOM) {\n var isSupported$jscomp$inline_427 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_427) {\n var element$jscomp$inline_428 = document.createElement(\"div\");\n element$jscomp$inline_428.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_427 =\n \"function\" === typeof element$jscomp$inline_428.oninput;\n }\n JSCompiler_inline_result$jscomp$286 = isSupported$jscomp$inline_427;\n } else JSCompiler_inline_result$jscomp$286 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$286 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now();\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nfunction resolveLazy(lazyType) {\n try {\n var init = lazyType._init;\n return init(lazyType._payload);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw ((suspendedThenable = x), SuspenseException);\n throw x;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n createChild(returnFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (newChild = resolveLazy(newChild)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n}\nfunction updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if (0 !== (executionContext & 2)) throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n};\nContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n },\n useEffectEvent: function (callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if (0 !== (executionContext & 2))\n throw Error(formatProdErrorMessage(440));\n return ref.impl.apply(void 0, arguments);\n };\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nHooksDispatcherOnUpdate.useEffectEvent = updateEvent;\nvar HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n};\nHooksDispatcherOnRerender.useEffectEvent = updateEvent;\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" === current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var dehydrated = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((dehydrated = getBumpedLaneForHydration(nextProps, renderLanes)),\n 0 !== dehydrated && dehydrated !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = dehydrated),\n enqueueConcurrentRenderForLane(current, dehydrated),\n scheduleUpdateOnFiber(nextProps, current, dehydrated),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(dehydrated.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n current = createWorkInProgress(current.child, {\n mode: nextProps.mode,\n children: nextProps.children\n });\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(null, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(null, nextProps)));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n bailoutOffscreenComponent(null, nextProps),\n (nextProps = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((showFallback = nextPrimaryChildren.cachePool),\n null !== showFallback\n ? ((prevState = CacheContext._currentValue),\n (showFallback =\n showFallback.parent !== prevState\n ? { parent: prevState, pool: prevState }\n : showFallback))\n : (showFallback = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: showFallback\n })),\n (nextProps.memoizedState = nextPrimaryChildren),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(current.child, nextProps)\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$102 = workInProgress.memoizedState;\n if (null !== state$102) {\n if (null !== state$102.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$102 = 0 !== (renderLanes & workInProgress.childLanes);\n state$102 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$102 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$102)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$102) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n var props = workInProgress.pendingProps;\n current = resolveLazy(workInProgress.elementType);\n workInProgress.type = current;\n if (\"function\" === typeof current)\n shouldConstruct(current)\n ? ((props = resolveClassComponentProps(current, props)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current) {\n var $$typeof = current.$$typeof;\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n } else if ($$typeof === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n props,\n renderLanes\n );\n break a;\n }\n }\n workInProgress = getComponentNameFromType(current) || current;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (props = workInProgress.type),\n ($$typeof = resolveClassComponentProps(\n props,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n props,\n $$typeof,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n props = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n $$typeof = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, props, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n props = nextState.cache;\n pushProvider(workInProgress, CacheContext, props);\n props !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n props = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: props,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else if (props !== $$typeof) {\n $$typeof = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError($$typeof);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n props,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (props === $$typeof) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(current, workInProgress, props, renderLanes);\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (props = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (props[internalInstanceKey] = workInProgress),\n (props[internalPropsKey] = current),\n setInitialProperties(props, renderLanes, current),\n markNodeAsHoistable(props),\n (workInProgress.stateNode = props))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((props = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n ($$typeof = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = $$typeof),\n (nextHydratableInstance = getNextHydratable(props.firstChild)))\n : (nextHydratableInstance = $$typeof)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if (($$typeof = props = nextHydratableInstance))\n (props = canHydrateInstance(\n props,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== props\n ? ((workInProgress.stateNode = props),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(props.firstChild)),\n (rootOrSingletonContext = !1),\n ($$typeof = !0))\n : ($$typeof = !1);\n $$typeof || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n $$typeof = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n props = prevState.children;\n shouldSetTextContent($$typeof, prevState)\n ? (props = null)\n : null !== nextState &&\n shouldSetTextContent($$typeof, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n (($$typeof = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = $$typeof));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, props, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (props = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n props,\n renderLanes\n ))\n : reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (props = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, props.value),\n reconcileChildren(current, workInProgress, props.children, renderLanes),\n workInProgress.child\n );\n case 9:\n return (\n ($$typeof = workInProgress.type._context),\n (props = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n ($$typeof = readContext($$typeof)),\n (props = props($$typeof)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, props, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (props = readContext(CacheContext)),\n null === current\n ? (($$typeof = peekCacheFromPool()),\n null === $$typeof &&\n (($$typeof = workInProgressRoot),\n (prevState = createCache()),\n ($$typeof.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && ($$typeof.pooledCacheLanes |= renderLanes),\n ($$typeof = prevState)),\n (workInProgress.memoizedState = { parent: props, cache: $$typeof }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, $$typeof))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n ($$typeof = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n $$typeof.parent !== props\n ? (($$typeof = { parent: props, cache: props }),\n (workInProgress.memoizedState = $$typeof),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n $$typeof),\n pushProvider(workInProgress, CacheContext, props))\n : ((props = prevState.cache),\n pushProvider(workInProgress, CacheContext, props),\n props !== $$typeof.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$106 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$106 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$106\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$106.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags & 65011712),\n (subtreeFlags |= child$107.flags & 65011712),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n else\n for (child$107 = completedWork.child; null !== child$107; )\n (newChildLanes |= child$107.lanes | child$107.childLanes),\n (subtreeFlags |= child$107.subtreeFlags),\n (subtreeFlags |= child$107.flags),\n (child$107.return = completedWork),\n (child$107 = child$107.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$140) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$140);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n if (\n 0 !== (root & 4) &&\n ((root = firstChild.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$139) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$139\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$141 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$141, \"\"), (hostParentFiber.flags &= -33));\n var before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$142, parent$141);\n break;\n case 3:\n case 4:\n var parent$143 = hostParentFiber.stateNode.containerInfo,\n before$144 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$144,\n parent$143\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) || !1\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) || !1);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n \"Throttled\",\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n null,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n ) {\n suspendedCommitReason = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n };\n accumulateSuspenseyCommitOnFiber(\n finishedWork,\n lanes,\n suspendedCommitReason\n );\n var timeoutOffset =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now()\n : 0;\n timeoutOffset = waitForCommitToBeReady(\n suspendedCommitReason,\n timeoutOffset\n );\n if (null !== timeoutOffset) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = timeoutOffset(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedCommitReason,\n null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$167) {\n handleThrow(root, thrownValue$167);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 261930) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$170 = firstScheduledRoot; null !== root$170; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$170.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$170.suspendedLanes,\n pingedLanes = root$170.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$170,\n root$170 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$170.cancelPendingCommit ||\n -1 !== root$170.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$170, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$170, JSCompiler_inline_result));\n root$170 = root$170.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1577 = 0;\n i$jscomp$inline_1577 < simpleEventPluginEvents.length;\n i$jscomp$inline_1577++\n) {\n var eventName$jscomp$inline_1578 =\n simpleEventPluginEvents[i$jscomp$inline_1577],\n domEventName$jscomp$inline_1579 =\n eventName$jscomp$inline_1578.toLowerCase(),\n capitalizedEvent$jscomp$inline_1580 =\n eventName$jscomp$inline_1578[0].toUpperCase() +\n eventName$jscomp$inline_1578.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1579,\n \"on\" + capitalizedEvent$jscomp$inline_1580\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$184 = props[hasSrc];\n if (null != propValue$184)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$184;\n break;\n case \"type\":\n propValue = propValue$184;\n break;\n case \"checked\":\n checked = propValue$184;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$184;\n break;\n case \"value\":\n propKey = propValue$184;\n break;\n case \"defaultValue\":\n defaultValue = propValue$184;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$184)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$184, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$184 in props)\n props.hasOwnProperty(propValue$184) &&\n ((hasSrc = props[propValue$184]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$184,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$201 in nextProps) {\n var propKey = nextProps[propKey$201];\n lastProp = lastProps[propKey$201];\n if (\n nextProps.hasOwnProperty(propKey$201) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$201) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$201,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$201 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$201 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$201\n ? updateOptions(domElement, !!lastProps, propKey$201, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$201 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$201 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$201, propKey);\n return;\n case \"option\":\n for (var propKey$217 in lastProps)\n if (\n ((propKey$201 = lastProps[propKey$217]),\n lastProps.hasOwnProperty(propKey$217) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$217))\n )\n switch (propKey$217) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$217,\n null,\n nextProps,\n propKey$201\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$201 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$201 &&\n \"function\" !== typeof propKey$201 &&\n \"symbol\" !== typeof propKey$201;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$222 in lastProps)\n (propKey$201 = lastProps[propKey$222]),\n lastProps.hasOwnProperty(propKey$222) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$222) &&\n setProp(domElement, tag, propKey$222, null, nextProps, propKey$201);\n for (checked in nextProps)\n if (\n ((propKey$201 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$201 !== propKey &&\n (null != propKey$201 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$201)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$201,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$227 in lastProps)\n (propKey$201 = lastProps[propKey$227]),\n lastProps.hasOwnProperty(propKey$227) &&\n void 0 !== propKey$201 &&\n !nextProps.hasOwnProperty(propKey$227) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$227,\n void 0,\n nextProps,\n propKey$201\n );\n for (defaultChecked in nextProps)\n (propKey$201 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$201 === propKey ||\n (void 0 === propKey$201 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$201,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$232 in lastProps)\n (propKey$201 = lastProps[propKey$232]),\n lastProps.hasOwnProperty(propKey$232) &&\n null != propKey$201 &&\n !nextProps.hasOwnProperty(propKey$232) &&\n setProp(domElement, tag, propKey$232, null, nextProps, propKey$201);\n for (lastProp in nextProps)\n (propKey$201 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$201 === propKey ||\n (null == propKey$201 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$201, nextProps, propKey);\n}\nfunction isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n}\nfunction estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (transferSize && duration && isLikelyStaticResource(initiatorType)) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits += (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$243 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$244 = styles$243.get(type);\n resource$244 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$244 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$243.set(type, resource$244),\n (styles$243 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$243._p &&\n ((resource$244.instance = styles$243),\n (resource$244.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$243 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$244.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$244;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$249 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$249)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$249),\n markNodeAsHoistable(instance$249),\n instance$249\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$249 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$249);\n var linkInstance = instance$249;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$249, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$249, props.precedence, hoistableRoot);\n return (resource.instance = instance$249);\n case \"script\":\n instance$249 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$249)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$249)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nfunction suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nvar estimatedBytesWithinLimit = 0;\nfunction waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4 + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit = 62500 * estimateBandwidth());\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit ? 50 : 800) +\n timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;\nif (\n \"19.2.5\" !==\n isomorphicReactPackageVersion$jscomp$inline_1840\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1840,\n \"19.2.5\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2347 = {\n bundleType: 0,\n version: \"19.2.5\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.5\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2348 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2348.isDisabled &&\n hook$jscomp$inline_2348.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2348.inject(\n internals$jscomp$inline_2347\n )),\n (injectedHook = hook$jscomp$inline_2348);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.5\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","/**\n * Runtime default fetcher.\n *\n * Used as the FetcherDispatcher's terminal fallback when no foundation\n * route and no foundation fallback match. Sites that declare no fetcher\n * at all — starter/docs/marketing templates hitting /data/*.json — ride\n * on this path with zero config.\n *\n * The fetcher recognizes a general-purpose vocabulary under `site.yml fetcher:`\n * so sites with a real backend don't need a foundation just to add a base URL\n * or static headers:\n *\n * fetcher:\n * baseUrl: https://api.example.com\n * headers:\n * X-Tenant: acme\n * Accept: application/vnd.example+json\n * envelope:\n * collection: data.items\n * item: data.article\n * error: errors.0.message\n *\n * Per-fetch, the request may carry `method: 'POST'` + `body:` for backends\n * that take queries in a body (GraphQL, search endpoints). `{paramName}`\n * placeholders in body strings are substituted from `request.dynamicContext`\n * so template-page detail queries can reference route params.\n *\n * Every key is optional. When the config is empty, behavior is byte-for-byte\n * identical to a plain `fetch()` with JSON parsing.\n *\n * Exported from a subpath — `@uniweb/runtime/default-fetcher` — for\n * runtime-level callers (the editor's preview iframe, custom runtime\n * harnesses). **Foundations should not import this.** A foundation that\n * wants plain URL + JSON behavior simply omits its own fetcher; the\n * runtime installs this one automatically. A foundation that needs\n * auth / retry / response normalization declares a named transport\n * and composes `@uniweb/fetchers` middleware around its own `resolve()`.\n *\n * There is intentionally no \"reuse the default and wrap it\" path for\n * foundations — doing so would duplicate this code into every foundation\n * bundle. The subpath export exists specifically for preview-mode shells\n * that need to delegate *non-authenticated* requests to a default-fetcher\n * instance while intercepting authenticated ones via their own transport.\n *\n * Intentional omissions: credentials / secrets are NOT part of the vocabulary.\n * Any value the framework puts into the served HTML is public to the browser.\n * Sites needing private credentials use a deployment-layer proxy — the site\n * fetches a same-origin URL, and a layer in front (e.g. the Uniweb platform's\n * edge worker, or any custom backend) resolves the credential and forwards\n * upstream. Framework sees a plain URL; platform owns the secret.\n *\n * `headers:` IS supported because static per-site headers (tenant routing,\n * content-type negotiation, custom Accept values) aren't credentials and\n * aren't anything sites try to hide. Sites that accidentally put a secret\n * in `headers:` have the same problem they'd have hardcoding it in the URL:\n * it's public. That's not a framework feature gap; it's how browsers work.\n */\n\nimport {\n substitutePlaceholders,\n matchWhere,\n deriveCacheKey,\n resolveRequestStyle,\n} from '@uniweb/core'\n\n// Phase 2 of the request-styles landing will read `config.request.style`\n// and dispatch through the registry; in Phase 1 we hard-wire the ambient\n// default (json-body) via the same resolver. No behavior change — the\n// resolved style is json-body, which encodes today's conventions.\n\n// Operators the default fetcher knows how to handle. When listed in\n// `config.supports`, they're shipped to the source as part of the\n// request; when not listed, they're applied as a JS fallback after\n// fetch. The cache key reflects which operators get pushed down — same\n// query against different `supports:` produces different cache entries.\nconst KNOWN_OPERATORS = new Set(['where', 'limit', 'sort'])\n\n/**\n * @param {Object} [options]\n * @param {string} [options.basePath=''] - Prepended to local absolute paths\n * for subpath deployments. Remote URLs pass through unchanged.\n * @param {Object} [options.config={}] - Site-level fetcher config from\n * `site.yml fetcher:`. Vocabulary recognized by the default fetcher:\n * `baseUrl`, `headers`, `envelope`, `supports`, `request.style`,\n * `request.rename`. Unknown keys are ignored (foundations may use the\n * same block for their own keys). Default behavior (empty config)\n * matches today's plain GET + JSON.\n * @param {boolean} [options.dev=false] - Enable dev-mode warnings (unknown\n * style name, unknown rename operator).\n * @returns {{ resolve: (req: Object, ctx: Object) => Promise<{ data, error? }> }}\n */\nexport function createDefaultFetcher({ basePath = '', config = {}, dev = false } = {}) {\n const pathPrefix = basePath && basePath !== '/' ? basePath.replace(/\\/$/, '') : ''\n\n const baseUrl = typeof config?.baseUrl === 'string'\n ? config.baseUrl.replace(/\\/$/, '')\n : ''\n\n // Static headers merged into every remote request. Local `/data/*.json`\n // requests are never decorated — they're just file reads under public/.\n const staticHeaders = buildStaticHeaders(config?.headers)\n\n // `supports:` declares which query operators (where, limit, sort) the\n // backend evaluates at the source. Operators in this list are shipped\n // in the request; operators not in this list are applied as a JS\n // fallback after the response arrives. Default: empty — the framework\n // default fetcher serving static files supports nothing natively.\n const supports = normalizeSupports(config?.supports)\n\n // Request style — how operators get reshaped for the wire. Selected\n // by name via `site.yml fetcher.request.style`; `null`/absent resolves\n // to the ambient default (json-body).\n const requestConfig = (config?.request && typeof config.request === 'object') ? config.request : {}\n const styleName = typeof requestConfig.style === 'string' ? requestConfig.style : null\n const style = resolveRequestStyle(styleName, { dev })\n\n // Operator-name renames applied on top of the style's wire names.\n // Shallow: only the operator keys (where / limit / sort) are rewritten.\n // Field names inside a where-object are untouched.\n const rename = normalizeRename(requestConfig.rename, style, { dev })\n\n // `envelope:` extends today's `transform:` to cover detail responses and\n // errors. Three dot-paths, all optional:\n // - envelope.collection — applied on collection responses. Per-fetch\n // `transform:` on the request wins (per-fetch overrides site-level).\n // - envelope.item — applied when request.dynamicContext is set\n // (the request is for a template-page item).\n // - envelope.error — extract error text from non-2xx response body.\n //\n // Priority (highest wins): per-fetch request.envelope > site-level\n // config.envelope > style.defaultEnvelope. A style that defaults an\n // envelope (e.g. Strapi's `{ data }` wrapper) still defers to any\n // explicit site-level override.\n const siteEnvelope = (config?.envelope && typeof config.envelope === 'object')\n ? config.envelope\n : null\n const envelope = { ...(style.defaultEnvelope || {}), ...(siteEnvelope || {}) }\n\n return {\n /**\n * Cache-key function. The default-fetcher's cache key includes only\n * the operators it pushes down (because they affect what the source\n * sees). Operators applied as runtime fallback operate on a shared\n * cached value and therefore must NOT split the cache.\n *\n * Example: with `supports: []`, two pages declaring different\n * `where:` clauses against the same path share one cache entry —\n * the file is fetched once and each page filters its own copy. With\n * `supports: [where]`, the same two pages fire two requests because\n * the predicate travels in the request.\n */\n cacheKey(request) {\n // Build a request projection that includes only operators the active\n // style will actually push for this request. deriveCacheKey already\n // covers the always-keyed fields.\n //\n // The key also includes the style name — two sites with different\n // styles against the same URL produce different wire requests, so\n // their responses must not alias.\n const base = deriveCacheKey(request)\n const projected = {}\n for (const op of supports) {\n if (!style.canPush.has(op)) continue\n if (request[op] !== undefined) projected[op] = request[op]\n }\n if (Object.keys(projected).length === 0 && style.name === 'json-body') {\n // Keep back-compat key shape when the ambient default pushes nothing.\n return base\n }\n return base + '::style=' + style.name + '::' + JSON.stringify(projected)\n },\n\n async resolve(request, ctx = {}) {\n if (!request) return { data: null }\n const { path, url, transform, body: rawBody } = request\n\n // Normalize method. Only GET and POST are supported by the default\n // fetcher — mutations (PUT/PATCH/DELETE) are a different feature\n // (optimistic updates, action semantics) and don't belong here.\n let method = (request.method || 'GET').toUpperCase()\n if (method !== 'GET' && method !== 'POST') {\n console.warn(`[default-fetcher] method \"${request.method}\" is not supported — falling back to GET.`)\n method = 'GET'\n }\n\n let target\n let isRemote\n if (path) {\n // Local file under public/ — basePath applies for subpath deploys.\n target = pathPrefix && path.startsWith('/') && !path.startsWith('//')\n ? pathPrefix + path\n : path\n isRemote = false\n } else if (url) {\n // Remote URL — baseUrl applies when url is relative (no scheme,\n // not protocol-relative). Absolute or protocol-relative pass through.\n target = isAbsoluteUrl(url) ? url : joinUrl(baseUrl, url)\n isRemote = true\n } else {\n return { data: [], error: 'No path or url specified' }\n }\n\n const init = { signal: ctx.signal, method }\n const headers = {}\n\n // Static site-level headers go on remote requests only — we don't\n // decorate local file reads with tenant/content-type headers.\n if (isRemote && staticHeaders) Object.assign(headers, staticHeaders)\n\n // Push down supported query operators to the source via the active\n // request style. Pushdown only applies to remote URLs — local `path:`\n // reads are static files that can't filter or sort. Operators the\n // style didn't push get applied as a JS fallback after the response\n // (see the post-fetch block below).\n //\n // The style owns the wire format. Today's json-body style encodes\n // GET pushdown as `?_where=<JSON>&_limit=&_sort=` and POST pushdown\n // as top-level keys merged into an object body. Other styles\n // (flat-query, strapi) will ship in Phase 3.\n const pushCandidates = new Set()\n if (isRemote) {\n for (const op of KNOWN_OPERATORS) {\n if (\n supports.has(op) &&\n style.canPush.has(op) &&\n request[op] !== undefined &&\n request[op] !== null\n ) {\n pushCandidates.add(op)\n }\n }\n }\n\n const encoded = pushCandidates.size > 0\n ? style.encode(request, { method, pushCandidates, rename })\n : { queryParams: [], bodyMerge: null, pushed: new Set() }\n const pushedOperators = encoded.pushed\n\n if (encoded.queryParams.length > 0 && method === 'GET') {\n target = appendStyleQueryParams(target, encoded.queryParams)\n }\n\n if (method === 'POST') {\n // Substitute {paramName} placeholders in body strings using the\n // dynamic-route context. The helper expects a flat key→value map;\n // build it from dynamicContext's { paramName, paramValue } shape.\n // Strict-brace matcher: GraphQL selection sets pass through unchanged.\n const dc = request.dynamicContext\n const resolvedBody = (rawBody !== undefined && rawBody !== null && dc && dc.paramName)\n ? substitutePlaceholders(rawBody, { [dc.paramName]: dc.paramValue }, { encode: false })\n : rawBody\n\n // Compose the final body: author-supplied body merged with pushed\n // operators from the style. When no body and no pushdown, send\n // a body containing just the pushed operators if any exist.\n const finalBody = composePostBody(resolvedBody, encoded.bodyMerge)\n\n if (finalBody !== null) {\n // Default Content-Type to JSON unless the site's static headers\n // already set one (for application/graphql or form-urlencoded).\n if (!hasHeader(headers, 'Content-Type')) {\n headers['Content-Type'] = 'application/json'\n }\n init.body = typeof finalBody === 'string' ? finalBody : JSON.stringify(finalBody)\n }\n }\n\n if (Object.keys(headers).length) init.headers = headers\n\n try {\n const response = await fetch(target, init)\n\n // Per-request envelope (set by object-form `detail:`) wins over\n // site-level envelope. This lets a detail query declare its own\n // item/collection/error paths independently of the collection.\n const requestEnvelope = (request.envelope && typeof request.envelope === 'object')\n ? request.envelope\n : null\n const effectiveEnvelope = requestEnvelope ?? envelope\n\n if (!response.ok) {\n // If `envelope.error` is configured, try to extract a human message\n // from the parsed body; fall back to status text if the path is\n // missing or the body isn't JSON.\n let extracted\n if (effectiveEnvelope.error) {\n try {\n const text = await response.text()\n const body = safeParseJSON(text)\n if (body !== undefined) {\n const candidate = getNestedValue(body, effectiveEnvelope.error)\n if (typeof candidate === 'string' && candidate.length) {\n extracted = candidate\n }\n }\n } catch {\n // Body not readable — fall through to status-text fallback.\n }\n }\n return {\n data: [],\n error: extracted ?? `HTTP ${response.status}: ${response.statusText}`,\n }\n }\n\n const contentType = response.headers.get('content-type') || ''\n let data\n if (contentType.includes('application/json')) {\n data = await response.json()\n } else {\n const text = await response.text()\n try {\n data = JSON.parse(text)\n } catch {\n data = text\n }\n }\n\n // Unwrap response envelope. Priority order, highest wins:\n // 1. Per-fetch `transform:` (existing, documented knob).\n // 2. Per-request `envelope.item` (detail) or `envelope.collection`.\n // 3. Site-level `envelope.item` (detail) or `envelope.collection`.\n const isDetailRequest = !!request.dynamicContext\n const effectiveTransform =\n transform\n || (isDetailRequest ? effectiveEnvelope.item : effectiveEnvelope.collection)\n if (effectiveTransform && data !== null && data !== undefined) {\n data = getNestedValue(data, effectiveTransform)\n }\n\n // Apply runtime fallback for query operators not pushed down.\n // Only applies to array data (filtering/sorting/limiting a single\n // record doesn't make sense). For non-arrays, operators are\n // silently ignored — the source returned what it returned.\n data = applyFallbackOperators(data, request, pushedOperators)\n\n return { data: data ?? [] }\n } catch (error) {\n if (error?.name === 'AbortError') {\n return { data: [], error: 'aborted' }\n }\n return { data: [], error: error?.message || String(error) }\n }\n },\n }\n}\n\n/**\n * Normalize the `request.rename` map. Returns null if nothing valid.\n * Dev-mode warns on operator names that don't exist in the style's\n * `canPush` set — a rename that targets an operator the style doesn't\n * push is silently dead config, and the warning surfaces the mistake.\n */\nfunction normalizeRename(raw, style, { dev }) {\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return null\n const out = {}\n for (const [op, wireName] of Object.entries(raw)) {\n if (typeof wireName !== 'string' || wireName.length === 0) continue\n if (dev && !style.canPush.has(op) && !warnedRenameTargets.has(op)) {\n warnedRenameTargets.add(op)\n console.warn(\n `[default-fetcher] request.rename: operator \"${op}\" is not pushed by ` +\n `style \"${style.name}\" — rename has no effect. Known operators for ` +\n `this style: ${[...style.canPush].join(', ') || '(none)'}.`,\n )\n }\n out[op] = wireName\n }\n return Object.keys(out).length ? out : null\n}\nconst warnedRenameTargets = new Set()\n\n/**\n * Normalize the supports declaration to a Set of known operators. Unknown\n * operator names are ignored with a one-time dev warning.\n */\nfunction normalizeSupports(raw) {\n const out = new Set()\n if (!Array.isArray(raw)) return out\n for (const op of raw) {\n if (typeof op !== 'string') continue\n if (KNOWN_OPERATORS.has(op)) out.add(op)\n else if (!warnedUnknownOperators.has(op)) {\n warnedUnknownOperators.add(op)\n console.warn(`[default-fetcher] supports: unknown operator \"${op}\" — ignored.`)\n }\n }\n return out\n}\nconst warnedUnknownOperators = new Set()\n\n/**\n * Append [key, value] pairs emitted by a style to a URL as query\n * parameters. Existing query string is preserved; values are URL-encoded.\n */\nfunction appendStyleQueryParams(url, pairs) {\n if (!pairs || pairs.length === 0) return url\n const params = pairs.map(\n ([k, v]) => encodeURIComponent(k) + '=' + encodeURIComponent(v),\n )\n const sep = url.includes('?') ? '&' : '?'\n return url + sep + params.join('&')\n}\n\n/**\n * Compose a POST body that includes the style's bodyMerge alongside the\n * author-supplied body. When neither exists, returns null (no body sent).\n *\n * If the author supplied a string body (typically GraphQL), we can't\n * merge — the string is sent as-is and the style's bodyMerge is dropped.\n * Sites with string POST bodies needing pushdown should write the\n * operators into the body themselves.\n */\nfunction composePostBody(authorBody, bodyMerge) {\n if (!bodyMerge) {\n return authorBody === undefined ? null : authorBody\n }\n if (typeof authorBody === 'string') {\n return authorBody\n }\n const base = (authorBody && typeof authorBody === 'object') ? authorBody : {}\n return { ...base, ...bodyMerge }\n}\n\n/**\n * Apply query operators that weren't pushed down to the source. The\n * source returned `data` unfiltered/unlimited/unsorted for those\n * operators; the runtime applies them now in JS.\n */\nfunction applyFallbackOperators(data, request, pushedOperators) {\n if (!Array.isArray(data)) return data\n let result = data\n\n if (request.where && !pushedOperators.has('where')) {\n result = matchWhere(request.where, result)\n }\n if (request.sort && !pushedOperators.has('sort')) {\n result = applySortFallback(result, request.sort)\n }\n if (typeof request.limit === 'number' && request.limit > 0 && !pushedOperators.has('limit')) {\n result = result.slice(0, request.limit)\n }\n return result\n}\n\n/**\n * Stable sort by an expression like \"date desc\" or \"order asc, title asc\".\n * Mirrors the build-time applySort behavior.\n */\nfunction applySortFallback(items, sortExpr) {\n const sorts = String(sortExpr).split(',').map((s) => {\n const [field, dir = 'asc'] = s.trim().split(/\\s+/)\n return { field, desc: dir.toLowerCase() === 'desc' }\n })\n return [...items].sort((a, b) => {\n for (const { field, desc } of sorts) {\n const av = getNestedValue(a, field) ?? ''\n const bv = getNestedValue(b, field) ?? ''\n if (av < bv) return desc ? 1 : -1\n if (av > bv) return desc ? -1 : 1\n }\n return 0\n })\n}\n\n/**\n * Build the static headers object from `site.yml fetcher.headers:`. Returns\n * null when none are configured so the caller can skip adding an empty\n * `headers` init option.\n */\nfunction buildStaticHeaders(headers) {\n if (!headers || typeof headers !== 'object' || Array.isArray(headers)) return null\n const out = {}\n for (const [k, v] of Object.entries(headers)) {\n if (v === null || v === undefined) continue\n out[k] = String(v)\n }\n return Object.keys(out).length ? out : null\n}\n\n/**\n * Case-insensitive header-key check. Lets a site write `Content-Type` or\n * `content-type` and still override the POST default correctly.\n */\nfunction hasHeader(headers, name) {\n const lower = name.toLowerCase()\n return Object.keys(headers).some((k) => k.toLowerCase() === lower)\n}\n\n/**\n * Is this URL absolute (has a scheme) or protocol-relative? Those two pass\n * through the default fetcher unchanged. Everything else is considered\n * relative and resolves against `config.baseUrl` (if set).\n */\nfunction isAbsoluteUrl(url) {\n if (typeof url !== 'string') return false\n if (url.startsWith('//')) return true // protocol-relative\n return /^[a-z][a-z0-9+.-]*:\\/\\//i.test(url) // scheme://…\n}\n\n/**\n * Join `baseUrl` with a relative `url`, avoiding double slashes. If `baseUrl`\n * is empty, the url is returned unchanged — even if relative — so sites that\n * don't set `baseUrl` behave exactly like they did before this capability\n * was added.\n */\nfunction joinUrl(baseUrl, url) {\n if (!baseUrl) return url\n if (url.startsWith('/')) return baseUrl + url\n return baseUrl + '/' + url\n}\n\n/**\n * Walk a dotted path into an object. Missing segments short-circuit to\n * `undefined` so callers can distinguish \"present and empty\" from \"not there.\"\n */\nfunction getNestedValue(obj, path) {\n if (!obj || !path) return obj\n let current = obj\n for (const part of path.split('.')) {\n if (current === null || current === undefined) return undefined\n current = current[part]\n }\n return current\n}\n\n/**\n * JSON.parse that returns `undefined` on failure instead of throwing.\n * Used when we want to probe a response body for an error path but don't\n * want a non-JSON body to surface as a parser exception.\n */\nfunction safeParseJSON(text) {\n try {\n return JSON.parse(text)\n } catch {\n return undefined\n }\n}\n","/**\n * react-router v7.12.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n\n// lib/router/history.ts\nvar Action = /* @__PURE__ */ ((Action2) => {\n Action2[\"Pop\"] = \"POP\";\n Action2[\"Push\"] = \"PUSH\";\n Action2[\"Replace\"] = \"REPLACE\";\n return Action2;\n})(Action || {});\nvar PopStateEventType = \"popstate\";\nfunction createMemoryHistory(options = {}) {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries;\n entries = initialEntries.map(\n (entry, index2) => createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index2 === 0 ? \"default\" : void 0\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = \"POP\" /* Pop */;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state = null, key) {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n function createHref2(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref: createHref2,\n createURL(to) {\n return new URL(createHref2(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = \"PUSH\" /* Push */;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = \"REPLACE\" /* Replace */;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = \"POP\" /* Pop */;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\nfunction createBrowserHistory(options = {}) {\n function createBrowserLocation(window2, globalHistory) {\n let { pathname, search, hash } = window2.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null,\n globalHistory.state && globalHistory.state.key || \"default\"\n );\n }\n function createBrowserHref(window2, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\nfunction createHashHistory(options = {}) {\n function createHashLocation(window2, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window2.location.hash.substring(1));\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null,\n globalHistory.state && globalHistory.state.key || \"default\"\n );\n }\n function createHashHref(window2, to) {\n let base = window2.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window2.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n throw new Error(message);\n } catch (e) {\n }\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substring(2, 10);\n}\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\nfunction createLocation(current, to, state = null, key) {\n let location = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...typeof to === \"string\" ? parsePath(to) : to,\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n };\n return location;\n}\nfunction createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n}) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substring(hashIndex);\n path = path.substring(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substring(searchIndex);\n path = path.substring(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref2, validateLocation, options = {}) {\n let { window: window2 = document.defaultView, v5Compat = false } = options;\n let globalHistory = window2.history;\n let action = \"POP\" /* Pop */;\n let listener = null;\n let index = getIndex();\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n function getIndex() {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n function handlePop() {\n action = \"POP\" /* Pop */;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n function push(to, state) {\n action = \"PUSH\" /* Push */;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n window2.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n function replace2(to, state) {\n action = \"REPLACE\" /* Replace */;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n function createURL(to) {\n return createBrowserURLImpl(to);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window2, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window2.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window2.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref2(window2, to);\n },\n createURL,\n encodeLocation(to) {\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace: replace2,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\nfunction createBrowserURLImpl(to, isAbsolute = false) {\n let base = \"http://localhost\";\n if (typeof window !== \"undefined\") {\n base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n }\n invariant(base, \"No window.location.(origin|href) available to create URL\");\n let href = typeof to === \"string\" ? to : createPath(to);\n href = href.replace(/ $/, \"%20\");\n if (!isAbsolute && href.startsWith(\"//\")) {\n href = base + href;\n }\n return new URL(href, base);\n}\n\n// lib/router/utils.ts\nfunction createContext(defaultValue) {\n return { defaultValue };\n}\nvar _map;\nvar RouterContextProvider = class {\n /**\n * Create a new `RouterContextProvider` instance\n * @param init An optional initial context map to populate the provider with\n */\n constructor(init) {\n __privateAdd(this, _map, /* @__PURE__ */ new Map());\n if (init) {\n for (let [context, value] of init) {\n this.set(context, value);\n }\n }\n }\n /**\n * Access a value from the context. If no value has been set for the context,\n * it will return the context's `defaultValue` if provided, or throw an error\n * if no `defaultValue` was set.\n * @param context The context to get the value for\n * @returns The value for the context, or the context's `defaultValue` if no\n * value was set\n */\n get(context) {\n if (__privateGet(this, _map).has(context)) {\n return __privateGet(this, _map).get(context);\n }\n if (context.defaultValue !== void 0) {\n return context.defaultValue;\n }\n throw new Error(\"No value found for context\");\n }\n /**\n * Set a value for the context. If the context already has a value set, this\n * will overwrite it.\n *\n * @param context The context to set the value for\n * @param value The value to set for the context\n * @returns {void}\n */\n set(context, value) {\n __privateGet(this, _map).set(context, value);\n }\n};\n_map = new WeakMap();\nvar unsupportedLazyRouteObjectKeys = /* @__PURE__ */ new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\"\n]);\nfunction isUnsupportedLazyRouteObjectKey(key) {\n return unsupportedLazyRouteObjectKeys.has(\n key\n );\n}\nvar unsupportedLazyRouteFunctionKeys = /* @__PURE__ */ new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"middleware\",\n \"children\"\n]);\nfunction isUnsupportedLazyRouteFunctionKey(key) {\n return unsupportedLazyRouteFunctionKeys.has(\n key\n );\n}\nfunction isIndexRoute(route) {\n return route.index === true;\n}\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties2, parentPath = [], manifest = {}, allowInPlaceMutations = false) {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n allowInPlaceMutations || !manifest[id],\n `Found a route id collision on id \"${id}\". Route id's must be globally unique within Data Router usages`\n );\n if (isIndexRoute(route)) {\n let indexRoute = {\n ...route,\n id\n };\n manifest[id] = mergeRouteUpdates(\n indexRoute,\n mapRouteProperties2(indexRoute)\n );\n return indexRoute;\n } else {\n let pathOrLayoutRoute = {\n ...route,\n id,\n children: void 0\n };\n manifest[id] = mergeRouteUpdates(\n pathOrLayoutRoute,\n mapRouteProperties2(pathOrLayoutRoute)\n );\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties2,\n treePath,\n manifest,\n allowInPlaceMutations\n );\n }\n return pathOrLayoutRoute;\n }\n });\n}\nfunction mergeRouteUpdates(route, updates) {\n return Object.assign(route, {\n ...updates,\n ...typeof updates.lazy === \"object\" && updates.lazy != null ? {\n lazy: {\n ...route.lazy,\n ...updates.lazy\n }\n } : {}\n });\n}\nfunction matchRoutes(routes, locationArg, basename = \"/\") {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n loaderData: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches = [], parentsMeta = [], parentPath = \"\", _hasParentOptionalSegments = false) {\n let flattenRoute = (route, index, hasParentOptionalSegments = _hasParentOptionalSegments, relativePath) => {\n let meta = {\n relativePath: relativePath === void 0 ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n if (!meta.relativePath.startsWith(parentPath) && hasParentOptionalSegments) {\n return;\n }\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path \"${parentPath}\" is not valid. An absolute child route path must start with the combined path of all its parent routes.`\n );\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove all child routes from route path \"${path}\".`\n );\n flattenRoutes(\n route.children,\n branches,\n routesMeta,\n path,\n hasParentOptionalSegments\n );\n }\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, true, exploded);\n }\n }\n });\n return branches;\n}\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n let isOptional = first.endsWith(\"?\");\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n result.push(\n ...restExploded.map(\n (subpath) => subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n if (isOptional) {\n result.push(...restExploded);\n }\n return result.map(\n (exploded) => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\nfunction rankRouteBranches(branches) {\n branches.sort(\n (a, b) => a.score !== b.score ? b.score - a.score : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\nvar paramRe = /^:[\\w-]+$/;\nvar dynamicSegmentValue = 3;\nvar indexRouteValue = 2;\nvar emptySegmentValue = 1;\nvar staticSegmentValue = 10;\nvar splatPenalty = -2;\nvar isSplat = (s) => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter((s) => !isSplat(s)).reduce(\n (score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue),\n initialScore\n );\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? (\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n ) : (\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0\n );\n}\nfunction matchRouteBranch(branch, pathname, allowPartial = false) {\n let { routesMeta } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n },\n remainingPathname\n );\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\nfunction generatePath(originalPath, params = {}) {\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were \"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must always follow a \\`/\\` in the pattern. To get rid of this warning, please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\");\n }\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify2 = (p) => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n return stringify2(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)(.*)/);\n if (keyMatch) {\n const [, key, optional, suffix] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return encodeURIComponent(stringify2(param)) + suffix;\n }\n return segment.replace(/\\?$/g, \"\");\n }).filter((segment) => !!segment);\n return prefix + segments.join(\"/\");\n}\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce(\n (memo2, { paramName, isOptional }, index) => {\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo2[paramName] = void 0;\n } else {\n memo2[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo2;\n },\n {}\n );\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive = false, end = true) {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were \"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must always follow a \\`/\\` in the pattern. To get rid of this warning, please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\").replace(/^\\/*/, \"/\").replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\").replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_, paramName, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n ).replace(/\\/([\\w-]+)\\?(\\/|$)/g, \"(/$1)?$2\");\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" : \"(?:\\\\/(.+)|\\\\/*)$\";\n } else if (end) {\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n }\n let matcher = new RegExp(regexpSource, caseSensitive ? void 0 : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${error}).`\n );\n return value;\n }\n}\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\nfunction prependBasename({\n basename,\n pathname\n}) {\n return pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n}\nvar ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar isAbsoluteUrl = (url) => ABSOLUTE_URL_REGEX.test(url);\nfunction resolvePath(to, fromPathname = \"/\") {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname;\n if (toPathname) {\n if (isAbsoluteUrl(toPathname)) {\n pathname = toPathname;\n } else {\n if (toPathname.includes(\"//\")) {\n let oldPathname = toPathname;\n toPathname = toPathname.replace(/\\/\\/+/g, \"/\");\n warning(\n false,\n `Pathnames cannot have embedded double slashes - normalizing ${oldPathname} -> ${toPathname}`\n );\n }\n if (toPathname.startsWith(\"/\")) {\n pathname = resolvePathname(toPathname.substring(1), \"/\");\n } else {\n pathname = resolvePathname(toPathname, fromPathname);\n }\n }\n } else {\n pathname = fromPathname;\n }\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return `Cannot include a '${char}' character in a manually specified \\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the \\`to.${dest}\\` field. Alternatively you may provide the full path as a string in <Link to=\"...\"> and the router will parse it for you.`;\n}\nfunction getPathContributingMatches(matches) {\n return matches.filter(\n (match, index) => index === 0 || match.route.path && match.route.path.length > 0\n );\n}\nfunction getResolveToMatches(matches) {\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches.map(\n (match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n}\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative = false) {\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\nvar joinPaths = (paths) => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\nvar normalizePathname = (pathname) => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\nvar normalizeSearch = (search) => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\nvar normalizeHash = (hash) => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\nvar DataWithResponseInit = class {\n constructor(data2, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data2;\n this.init = init || null;\n }\n};\nfunction data(data2, init) {\n return new DataWithResponseInit(\n data2,\n typeof init === \"number\" ? { status: init } : init\n );\n}\nvar redirect = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, { ...responseInit, headers });\n};\nvar redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\nvar replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\nvar ErrorResponseImpl = class {\n constructor(status, statusText, data2, internal = false) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data2 instanceof Error) {\n this.data = data2.toString();\n this.error = data2;\n } else {\n this.data = data2;\n }\n }\n};\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\nfunction getRoutePattern(matches) {\n return matches.map((m) => m.route.path).filter(Boolean).join(\"/\").replace(/\\/\\/*/g, \"/\") || \"/\";\n}\nvar isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nfunction parseToInfo(_to, basename) {\n let to = _to;\n if (typeof to !== \"string\" || !ABSOLUTE_URL_REGEX.test(to)) {\n return {\n absoluteURL: void 0,\n isExternal: false,\n to\n };\n }\n let absoluteURL = to;\n let isExternal = false;\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n warning(\n false,\n `<Link to=\"${to}\"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`\n );\n }\n }\n return {\n absoluteURL,\n isExternal,\n to\n };\n}\n\n// lib/router/instrumentation.ts\nvar UninstrumentedSymbol = Symbol(\"Uninstrumented\");\nfunction getRouteInstrumentationUpdates(fns, route) {\n let aggregated = {\n lazy: [],\n \"lazy.loader\": [],\n \"lazy.action\": [],\n \"lazy.middleware\": [],\n middleware: [],\n loader: [],\n action: []\n };\n fns.forEach(\n (fn) => fn({\n id: route.id,\n index: route.index,\n path: route.path,\n instrument(i) {\n let keys = Object.keys(aggregated);\n for (let key of keys) {\n if (i[key]) {\n aggregated[key].push(i[key]);\n }\n }\n }\n })\n );\n let updates = {};\n if (typeof route.lazy === \"function\" && aggregated.lazy.length > 0) {\n let instrumented = wrapImpl(aggregated.lazy, route.lazy, () => void 0);\n if (instrumented) {\n updates.lazy = instrumented;\n }\n }\n if (typeof route.lazy === \"object\") {\n let lazyObject = route.lazy;\n [\"middleware\", \"loader\", \"action\"].forEach((key) => {\n let lazyFn = lazyObject[key];\n let instrumentations = aggregated[`lazy.${key}`];\n if (typeof lazyFn === \"function\" && instrumentations.length > 0) {\n let instrumented = wrapImpl(instrumentations, lazyFn, () => void 0);\n if (instrumented) {\n updates.lazy = Object.assign(updates.lazy || {}, {\n [key]: instrumented\n });\n }\n }\n });\n }\n [\"loader\", \"action\"].forEach((key) => {\n let handler = route[key];\n if (typeof handler === \"function\" && aggregated[key].length > 0) {\n let original = handler[UninstrumentedSymbol] ?? handler;\n let instrumented = wrapImpl(\n aggregated[key],\n original,\n (...args) => getHandlerInfo(args[0])\n );\n if (instrumented) {\n if (key === \"loader\" && original.hydrate === true) {\n instrumented.hydrate = true;\n }\n instrumented[UninstrumentedSymbol] = original;\n updates[key] = instrumented;\n }\n }\n });\n if (route.middleware && route.middleware.length > 0 && aggregated.middleware.length > 0) {\n updates.middleware = route.middleware.map((middleware) => {\n let original = middleware[UninstrumentedSymbol] ?? middleware;\n let instrumented = wrapImpl(\n aggregated.middleware,\n original,\n (...args) => getHandlerInfo(args[0])\n );\n if (instrumented) {\n instrumented[UninstrumentedSymbol] = original;\n return instrumented;\n }\n return middleware;\n });\n }\n return updates;\n}\nfunction instrumentClientSideRouter(router, fns) {\n let aggregated = {\n navigate: [],\n fetch: []\n };\n fns.forEach(\n (fn) => fn({\n instrument(i) {\n let keys = Object.keys(i);\n for (let key of keys) {\n if (i[key]) {\n aggregated[key].push(i[key]);\n }\n }\n }\n })\n );\n if (aggregated.navigate.length > 0) {\n let navigate = router.navigate[UninstrumentedSymbol] ?? router.navigate;\n let instrumentedNavigate = wrapImpl(\n aggregated.navigate,\n navigate,\n (...args) => {\n let [to, opts] = args;\n return {\n to: typeof to === \"number\" || typeof to === \"string\" ? to : to ? createPath(to) : \".\",\n ...getRouterInfo(router, opts ?? {})\n };\n }\n );\n if (instrumentedNavigate) {\n instrumentedNavigate[UninstrumentedSymbol] = navigate;\n router.navigate = instrumentedNavigate;\n }\n }\n if (aggregated.fetch.length > 0) {\n let fetch2 = router.fetch[UninstrumentedSymbol] ?? router.fetch;\n let instrumentedFetch = wrapImpl(aggregated.fetch, fetch2, (...args) => {\n let [key, , href, opts] = args;\n return {\n href: href ?? \".\",\n fetcherKey: key,\n ...getRouterInfo(router, opts ?? {})\n };\n });\n if (instrumentedFetch) {\n instrumentedFetch[UninstrumentedSymbol] = fetch2;\n router.fetch = instrumentedFetch;\n }\n }\n return router;\n}\nfunction instrumentHandler(handler, fns) {\n let aggregated = {\n request: []\n };\n fns.forEach(\n (fn) => fn({\n instrument(i) {\n let keys = Object.keys(i);\n for (let key of keys) {\n if (i[key]) {\n aggregated[key].push(i[key]);\n }\n }\n }\n })\n );\n let instrumentedHandler = handler;\n if (aggregated.request.length > 0) {\n instrumentedHandler = wrapImpl(aggregated.request, handler, (...args) => {\n let [request, context] = args;\n return {\n request: getReadonlyRequest(request),\n context: context != null ? getReadonlyContext(context) : context\n };\n });\n }\n return instrumentedHandler;\n}\nfunction wrapImpl(impls, handler, getInfo) {\n if (impls.length === 0) {\n return null;\n }\n return async (...args) => {\n let result = await recurseRight(\n impls,\n getInfo(...args),\n () => handler(...args),\n impls.length - 1\n );\n if (result.type === \"error\") {\n throw result.value;\n }\n return result.value;\n };\n}\nasync function recurseRight(impls, info, handler, index) {\n let impl = impls[index];\n let result;\n if (!impl) {\n try {\n let value = await handler();\n result = { type: \"success\", value };\n } catch (e) {\n result = { type: \"error\", value: e };\n }\n } else {\n let handlerPromise = void 0;\n let callHandler = async () => {\n if (handlerPromise) {\n console.error(\"You cannot call instrumented handlers more than once\");\n } else {\n handlerPromise = recurseRight(impls, info, handler, index - 1);\n }\n result = await handlerPromise;\n invariant(result, \"Expected a result\");\n if (result.type === \"error\" && result.value instanceof Error) {\n return { status: \"error\", error: result.value };\n }\n return { status: \"success\", error: void 0 };\n };\n try {\n await impl(callHandler, info);\n } catch (e) {\n console.error(\"An instrumentation function threw an error:\", e);\n }\n if (!handlerPromise) {\n await callHandler();\n }\n await handlerPromise;\n }\n if (result) {\n return result;\n }\n return {\n type: \"error\",\n value: new Error(\"No result assigned in instrumentation chain.\")\n };\n}\nfunction getHandlerInfo(args) {\n let { request, context, params, unstable_pattern } = args;\n return {\n request: getReadonlyRequest(request),\n params: { ...params },\n unstable_pattern,\n context: getReadonlyContext(context)\n };\n}\nfunction getRouterInfo(router, opts) {\n return {\n currentUrl: createPath(router.state.location),\n ...\"formMethod\" in opts ? { formMethod: opts.formMethod } : {},\n ...\"formEncType\" in opts ? { formEncType: opts.formEncType } : {},\n ...\"formData\" in opts ? { formData: opts.formData } : {},\n ...\"body\" in opts ? { body: opts.body } : {}\n };\n}\nfunction getReadonlyRequest(request) {\n return {\n method: request.method,\n url: request.url,\n headers: {\n get: (...args) => request.headers.get(...args)\n }\n };\n}\nfunction getReadonlyContext(context) {\n if (isPlainObject(context)) {\n let frozen = { ...context };\n Object.freeze(frozen);\n return frozen;\n } else {\n return {\n get: (ctx) => context.get(ctx)\n };\n }\n}\nvar objectProtoNames = Object.getOwnPropertyNames(Object.prototype).sort().join(\"\\0\");\nfunction isPlainObject(thing) {\n if (thing === null || typeof thing !== \"object\") {\n return false;\n }\n const proto = Object.getPrototypeOf(thing);\n return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join(\"\\0\") === objectProtoNames;\n}\n\n// lib/router/router.ts\nvar validMutationMethodsArr = [\n \"POST\",\n \"PUT\",\n \"PATCH\",\n \"DELETE\"\n];\nvar validMutationMethods = new Set(\n validMutationMethodsArr\n);\nvar validRequestMethodsArr = [\n \"GET\",\n ...validMutationMethodsArr\n];\nvar validRequestMethods = new Set(validRequestMethodsArr);\nvar redirectStatusCodes = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);\nvar redirectPreserveMethodStatusCodes = /* @__PURE__ */ new Set([307, 308]);\nvar IDLE_NAVIGATION = {\n state: \"idle\",\n location: void 0,\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0\n};\nvar IDLE_FETCHER = {\n state: \"idle\",\n data: void 0,\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0\n};\nvar IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: void 0,\n reset: void 0,\n location: void 0\n};\nvar defaultMapRouteProperties = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nvar TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\nvar ResetLoaderDataSymbol = Symbol(\"ResetLoaderData\");\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : void 0;\n const isBrowser3 = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n let hydrationRouteProperties2 = init.hydrationRouteProperties || [];\n let _mapRouteProperties = init.mapRouteProperties || defaultMapRouteProperties;\n let mapRouteProperties2 = _mapRouteProperties;\n if (init.unstable_instrumentations) {\n let instrumentations = init.unstable_instrumentations;\n mapRouteProperties2 = (route) => {\n return {\n ..._mapRouteProperties(route),\n ...getRouteInstrumentationUpdates(\n instrumentations.map((i) => i.route).filter(Boolean),\n route\n )\n };\n };\n }\n let manifest = {};\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties2,\n void 0,\n manifest\n );\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n if (!basename.startsWith(\"/\")) {\n basename = `/${basename}`;\n }\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategyWithMiddleware;\n let future = {\n ...init.future\n };\n let unlistenHistory = null;\n let subscribers = /* @__PURE__ */ new Set();\n let savedScrollPositions2 = null;\n let getScrollRestorationKey2 = null;\n let getScrollPosition = null;\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors = null;\n let initialized;\n if (initialMatches == null && !init.patchRoutesOnNavigation) {\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialized = true;\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n } else {\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n initialized = false;\n } else if (!initialMatches.some((m) => routeHasLoaderOrMiddleware(m.route))) {\n initialized = true;\n } else {\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors[m.route.id] !== void 0\n );\n initialized = initialMatches.slice(0, idx + 1).every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\n }\n }\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: /* @__PURE__ */ new Map(),\n blockers: /* @__PURE__ */ new Map()\n };\n let pendingAction = \"POP\" /* Pop */;\n let pendingPopstateNavigationDfd = null;\n let pendingPreventScrollReset = false;\n let pendingNavigationController;\n let pendingViewTransitionEnabled = false;\n let appliedViewTransitions = /* @__PURE__ */ new Map();\n let removePageHideEventListener = null;\n let isUninterruptedRevalidation = false;\n let isRevalidationRequired = false;\n let cancelledFetcherLoads = /* @__PURE__ */ new Set();\n let fetchControllers = /* @__PURE__ */ new Map();\n let incrementingLoadId = 0;\n let pendingNavigationLoadId = -1;\n let fetchReloadIds = /* @__PURE__ */ new Map();\n let fetchRedirectIds = /* @__PURE__ */ new Set();\n let fetchLoadMatches = /* @__PURE__ */ new Map();\n let activeFetchers = /* @__PURE__ */ new Map();\n let fetchersQueuedForDeletion = /* @__PURE__ */ new Set();\n let blockerFunctions = /* @__PURE__ */ new Map();\n let unblockBlockerHistoryUpdate = void 0;\n let pendingRevalidationDfd = null;\n function initialize() {\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = void 0;\n return;\n }\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.\"\n );\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: void 0,\n reset: void 0,\n location\n });\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({ blockers });\n }\n });\n pendingPopstateNavigationDfd?.resolve();\n pendingPopstateNavigationDfd = null;\n return;\n }\n return startNavigation(historyAction, location);\n }\n );\n if (isBrowser3) {\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n if (!state.initialized) {\n startNavigation(\"POP\" /* Pop */, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n function updateState(newState, opts = {}) {\n if (newState.matches) {\n newState.matches = newState.matches.map((m) => {\n let route = manifest[m.route.id];\n let matchRoute = m.route;\n if (matchRoute.element !== route.element || matchRoute.errorElement !== route.errorElement || matchRoute.hydrateFallbackElement !== route.hydrateFallbackElement) {\n return {\n ...m,\n route\n };\n }\n return m;\n });\n }\n state = {\n ...state,\n ...newState\n };\n let unmountedFetchers = [];\n let mountedFetchers = [];\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (fetchersQueuedForDeletion.has(key)) {\n unmountedFetchers.push(key);\n } else {\n mountedFetchers.push(key);\n }\n }\n });\n fetchersQueuedForDeletion.forEach((key) => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n unmountedFetchers.push(key);\n }\n });\n [...subscribers].forEach(\n (subscriber) => subscriber(state, {\n deletedFetchers: unmountedFetchers,\n newErrors: newState.errors ?? null,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n })\n );\n unmountedFetchers.forEach((key) => deleteFetcher(key));\n mountedFetchers.forEach((key) => state.fetchers.delete(key));\n }\n function completeNavigation(location, newState, { flushSync } = {}) {\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && location.state?._isRedirect !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n actionData = null;\n }\n } else if (isActionReload) {\n actionData = state.actionData;\n } else {\n actionData = null;\n }\n let loaderData = newState.loaderData ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n ) : state.loaderData;\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n let restoreScrollPosition = isUninterruptedRevalidation ? false : getSavedScrollPosition(location, newState.matches || state.matches);\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && location.state?._isRedirect !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = void 0;\n }\n if (isUninterruptedRevalidation) {\n } else if (pendingAction === \"POP\" /* Pop */) {\n } else if (pendingAction === \"PUSH\" /* Push */) {\n init.history.push(location, location.state);\n } else if (pendingAction === \"REPLACE\" /* Replace */) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n if (pendingAction === \"POP\" /* Pop */) {\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = /* @__PURE__ */ new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(\n {\n ...newState,\n // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition,\n preventScrollReset,\n blockers\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true\n }\n );\n pendingAction = \"POP\" /* Pop */;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n pendingPopstateNavigationDfd?.resolve();\n pendingPopstateNavigationDfd = null;\n pendingRevalidationDfd?.resolve();\n pendingRevalidationDfd = null;\n }\n async function navigate(to, opts) {\n pendingPopstateNavigationDfd?.resolve();\n pendingPopstateNavigationDfd = null;\n if (typeof to === \"number\") {\n if (!pendingPopstateNavigationDfd) {\n pendingPopstateNavigationDfd = createDeferred();\n }\n let promise = pendingPopstateNavigationDfd.promise;\n init.history.go(to);\n return promise;\n }\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n false,\n normalizedPath,\n opts\n );\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation)\n };\n let userReplace = opts && opts.replace != null ? opts.replace : void 0;\n let historyAction = \"PUSH\" /* Push */;\n if (userReplace === true) {\n historyAction = \"REPLACE\" /* Replace */;\n } else if (userReplace === false) {\n } else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n historyAction = \"REPLACE\" /* Replace */;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : void 0;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: void 0,\n reset: void 0,\n location: nextLocation\n });\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({ blockers });\n }\n });\n return;\n }\n await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync,\n callSiteDefaultShouldRevalidate: opts && opts.unstable_defaultShouldRevalidate\n });\n }\n function revalidate() {\n if (!pendingRevalidationDfd) {\n pendingRevalidationDfd = createDeferred();\n }\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n let promise = pendingRevalidationDfd.promise;\n if (state.navigation.state === \"submitting\") {\n return promise;\n }\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return promise;\n }\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n }\n );\n return promise;\n }\n async function startNavigation(historyAction, location, opts) {\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = opts?.initialHydration && state.matches && state.matches.length > 0 && !initialMatchesIsFOW ? (\n // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches\n ) : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n if (matches && state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n },\n { flushSync }\n );\n return;\n }\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let scopedContext = init.getContext ? await init.getContext() : new RouterContextProvider();\n let pendingActionResult;\n if (opts && opts.pendingError) {\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: \"error\" /* error */, error: opts.pendingError }\n ];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n scopedContext,\n fogOfWar.active,\n opts && opts.initialHydration === true,\n { replace: opts.replace, flushSync }\n );\n if (actionResult.shortCircuited) {\n return;\n }\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n fogOfWar.active = false;\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(\n request,\n location,\n matches,\n scopedContext,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult,\n opts && opts.callSiteDefaultShouldRevalidate\n );\n if (shortCircuited) {\n return;\n }\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors\n });\n }\n async function handleAction(request, location, submission, matches, scopedContext, isFogOfWar, initialHydration, opts = {}) {\n interruptActiveLoads();\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n if (discoverResult.partialMatches.length === 0) {\n let { matches: matches2, route } = getShortCircuitMatches(dataRoutes);\n return {\n matches: matches2,\n pendingActionResult: [\n route.id,\n {\n type: \"error\" /* error */,\n error: discoverResult.error\n }\n ]\n };\n }\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: \"error\" /* error */,\n error: discoverResult.error\n }\n ]\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: \"error\" /* error */,\n error\n }\n ]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: \"error\" /* error */,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n request,\n matches,\n actionMatch,\n initialHydration ? [] : hydrationRouteProperties2,\n scopedContext\n );\n let results = await callDataStrategy(\n request,\n dsMatches,\n scopedContext,\n null\n );\n result = results[actionMatch.route.id];\n if (!result) {\n for (let match of matches) {\n if (results[match.route.id]) {\n result = results[match.route.id];\n break;\n }\n }\n }\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n if (isRedirectResult(result)) {\n let replace2;\n if (opts && opts.replace != null) {\n replace2 = opts.replace;\n } else {\n let location2 = normalizeRedirectLocation(\n result.response.headers.get(\"Location\"),\n new URL(request.url),\n basename,\n init.history\n );\n replace2 = location2 === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace: replace2\n });\n return { shortCircuited: true };\n }\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n if ((opts && opts.replace) !== true) {\n pendingAction = \"PUSH\" /* Push */;\n }\n return {\n matches,\n pendingActionResult: [\n boundaryMatch.route.id,\n result,\n actionMatch.route.id\n ]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n async function handleLoaders(request, location, matches, scopedContext, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace2, initialHydration, flushSync, pendingActionResult, callSiteDefaultShouldRevalidate) {\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && !initialHydration;\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...actionData !== void 0 ? { actionData } : {}\n },\n {\n flushSync\n }\n );\n }\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n if (discoverResult.partialMatches.length === 0) {\n let { matches: matches2, route } = getShortCircuitMatches(dataRoutes);\n return {\n matches: matches2,\n loaderData: {},\n errors: {\n [route.id]: discoverResult.error\n }\n };\n }\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { dsMatches, revalidatingFetchers } = getMatchesToLoad(\n request,\n scopedContext,\n mapRouteProperties2,\n manifest,\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n initialHydration ? [] : hydrationRouteProperties2,\n initialHydration === true,\n isRevalidationRequired,\n cancelledFetcherLoads,\n fetchersQueuedForDeletion,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n init.patchRoutesOnNavigation != null,\n pendingActionResult,\n callSiteDefaultShouldRevalidate\n );\n pendingNavigationLoadId = ++incrementingLoadId;\n if (!init.dataStrategy && !dsMatches.some((m) => m.shouldLoad) && !dsMatches.some(\n (m) => m.route.middleware && m.route.middleware.length > 0\n ) && revalidatingFetchers.length === 0) {\n let updatedFetchers2 = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? { [pendingActionResult[0]]: pendingActionResult[1].error } : null,\n ...getActionDataForCommit(pendingActionResult),\n ...updatedFetchers2 ? { fetchers: new Map(state.fetchers) } : {}\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== void 0) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n revalidatingFetchers.forEach((rf) => {\n abortFetcher(rf.key);\n if (rf.controller) {\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n let { loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(\n dsMatches,\n revalidatingFetchers,\n request,\n scopedContext\n );\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n let redirect2 = findRedirect(loaderResults);\n if (redirect2) {\n await startRedirectNavigation(request, redirect2.result, true, {\n replace: replace2\n });\n return { shortCircuited: true };\n }\n redirect2 = findRedirect(fetcherResults);\n if (redirect2) {\n fetchRedirectIds.add(redirect2.key);\n await startRedirectNavigation(request, redirect2.result, true, {\n replace: replace2\n });\n return { shortCircuited: true };\n }\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults\n );\n if (initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return {\n matches,\n loaderData,\n errors,\n ...shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}\n };\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n void 0,\n fetcher ? fetcher.data : void 0\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n async function fetch2(key, routeId, href, opts) {\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n let { path, submission, error } = normalizeNavigateOptions(\n true,\n normalizedPath,\n opts\n );\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n let scopedContext = init.getContext ? await init.getContext() : new RouterContextProvider();\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n await handleFetcherAction(\n key,\n routeId,\n path,\n matches,\n scopedContext,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission,\n opts && opts.unstable_defaultShouldRevalidate\n );\n return;\n }\n fetchLoadMatches.set(key, { routeId, path });\n await handleFetcherLoader(\n key,\n routeId,\n path,\n matches,\n scopedContext,\n fogOfWar.active,\n flushSync,\n preventScrollReset,\n submission\n );\n }\n async function handleFetcherAction(key, routeId, path, requestMatches, scopedContext, isFogOfWar, flushSync, preventScrollReset, submission, callSiteDefaultShouldRevalidate) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n }\n }\n let match = getTargetMatch(requestMatches, path);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let fetchMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n requestMatches,\n match,\n hydrationRouteProperties2,\n scopedContext\n );\n let actionResults = await callDataStrategy(\n fetchRequest,\n fetchMatches,\n scopedContext,\n key\n );\n let actionResult = actionResults[match.route.id];\n if (!actionResult) {\n for (let match2 of fetchMatches) {\n if (actionResults[match2.route.id]) {\n actionResult = actionResults[match2.route.id];\n break;\n }\n }\n }\n if (fetchRequest.signal.aborted) {\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n if (fetchersQueuedForDeletion.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n }\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let { dsMatches, revalidatingFetchers } = getMatchesToLoad(\n revalidationRequest,\n scopedContext,\n mapRouteProperties2,\n manifest,\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n hydrationRouteProperties2,\n false,\n isRevalidationRequired,\n cancelledFetcherLoads,\n fetchersQueuedForDeletion,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n init.patchRoutesOnNavigation != null,\n [match.route.id, actionResult],\n callSiteDefaultShouldRevalidate\n );\n revalidatingFetchers.filter((rf) => rf.key !== key).forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher2 = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n void 0,\n existingFetcher2 ? existingFetcher2.data : void 0\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({ fetchers: new Map(state.fetchers) });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n let { loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(\n dsMatches,\n revalidatingFetchers,\n revalidationRequest,\n scopedContext\n );\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n let redirect2 = findRedirect(loaderResults);\n if (redirect2) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect2.result,\n false,\n { preventScrollReset }\n );\n }\n redirect2 = findRedirect(fetcherResults);\n if (redirect2) {\n fetchRedirectIds.add(redirect2.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect2.result,\n false,\n { preventScrollReset }\n );\n }\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n loaderResults,\n void 0,\n revalidatingFetchers,\n fetcherResults\n );\n abortStaleFetchLoads(loadId);\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n async function handleFetcherLoader(key, routeId, path, matches, scopedContext, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : void 0\n ),\n { flushSync }\n );\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n new URL(fetchRequest.url).pathname,\n fetchRequest.signal,\n key\n );\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n }\n }\n let match = getTargetMatch(matches, path);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n matches,\n match,\n hydrationRouteProperties2,\n scopedContext\n );\n let results = await callDataStrategy(\n fetchRequest,\n dsMatches,\n scopedContext,\n key\n );\n let result = results[match.route.id];\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n if (fetchersQueuedForDeletion.has(key)) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n }\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n updateFetcherState(key, getDoneFetcher(void 0));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n async function startRedirectNavigation(request, redirect2, isNavigation, {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace: replace2\n } = {}) {\n if (!isNavigation) {\n pendingPopstateNavigationDfd?.resolve();\n pendingPopstateNavigationDfd = null;\n }\n if (redirect2.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect2.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename,\n init.history\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser3) {\n let isDocumentReload = false;\n if (redirect2.response.headers.has(\"X-Remix-Reload-Document\")) {\n isDocumentReload = true;\n } else if (isAbsoluteUrl(location)) {\n const url = createBrowserURLImpl(location, true);\n isDocumentReload = // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin || // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace2) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n pendingNavigationController = null;\n let redirectNavigationType = replace2 === true || redirect2.response.headers.has(\"X-Remix-Replace\") ? \"REPLACE\" /* Replace */ : \"PUSH\" /* Push */;\n let { formMethod, formAction, formEncType } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect2.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectNavigationType, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location\n },\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : void 0\n });\n } else {\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectNavigationType, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : void 0\n });\n }\n }\n async function callDataStrategy(request, matches, scopedContext, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n request,\n matches,\n fetcherKey,\n scopedContext,\n false\n );\n } catch (e) {\n matches.filter((m) => m.shouldLoad).forEach((m) => {\n dataResults[m.route.id] = {\n type: \"error\" /* error */,\n error: e\n };\n });\n return dataResults;\n }\n if (request.signal.aborted) {\n return dataResults;\n }\n if (!isMutationMethod(request.method)) {\n for (let match of matches) {\n if (results[match.route.id]?.type === \"error\" /* error */) {\n break;\n }\n if (!results.hasOwnProperty(match.route.id) && !state.loaderData.hasOwnProperty(match.route.id) && (!state.errors || !state.errors.hasOwnProperty(match.route.id)) && match.shouldCallHandler()) {\n results[match.route.id] = {\n type: \"error\" /* error */,\n result: new Error(\n `No result returned from dataStrategy for route ${match.route.id}`\n )\n };\n }\n }\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: \"redirect\" /* redirect */,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename\n )\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(matches, fetchersToLoad, request, scopedContext) {\n let loaderResultsPromise = callDataStrategy(\n request,\n matches,\n scopedContext,\n null\n );\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.request && f.controller) {\n let results = await callDataStrategy(\n f.request,\n f.matches,\n scopedContext,\n f.key\n );\n let result = results[f.match.route.id];\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: \"error\" /* error */,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n })\n );\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n isRevalidationRequired = true;\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts = {}) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n function setFetcherError(key, routeId, error, opts = {}) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n function getFetcher(key) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n if (fetchersQueuedForDeletion.has(key)) {\n fetchersQueuedForDeletion.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function resetFetcher(key, opts) {\n abortFetcher(key, opts?.reason);\n updateFetcherState(key, getDoneFetcher(null));\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n fetchersQueuedForDeletion.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function queueFetcherForDeletion(key) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n fetchersQueuedForDeletion.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n function abortFetcher(key, reason) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort(reason);\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n invariant(\n blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\",\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n }) {\n if (blockerFunctions.size === 0) {\n return;\n }\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n return;\n }\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n return { notFoundMatches: matches, route, error };\n }\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions2 = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey2 = getKey || null;\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n return () => {\n savedScrollPositions2 = null;\n getScrollPosition = null;\n getScrollRestorationKey2 = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey2) {\n let key = getScrollRestorationKey2(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions2 && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions2[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions2) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions2[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (init.patchRoutesOnNavigation) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n return { active: false, matches: null };\n }\n async function discoverRoutes(matches, pathname, signal, fetcherKey) {\n if (!init.patchRoutesOnNavigation) {\n return { type: \"success\", matches };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await init.patchRoutesOnNavigation({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties2,\n false\n );\n }\n });\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let newPartialMatches = null;\n if (newMatches) {\n if (Object.keys(newMatches[0].params).length === 0) {\n return { type: \"success\", matches: newMatches };\n } else {\n newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n let matchedDeeper = newPartialMatches && partialMatches.length < newPartialMatches.length && compareMatches(\n partialMatches,\n newPartialMatches.slice(0, partialMatches.length)\n );\n if (!matchedDeeper) {\n return { type: \"success\", matches: newMatches };\n }\n }\n }\n if (!newPartialMatches) {\n newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n }\n if (!newPartialMatches || compareMatches(partialMatches, newPartialMatches)) {\n return { type: \"success\", matches: null };\n }\n partialMatches = newPartialMatches;\n }\n }\n function compareMatches(a, b) {\n return a.length === b.length && a.every((m, i) => m.route.id === b[i].route.id);\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties2,\n void 0,\n manifest\n );\n }\n function patchRoutes(routeId, children, unstable_allowElementMutations = false) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties2,\n unstable_allowElementMutations\n );\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch: fetch2,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to) => init.history.createHref(to),\n encodeLocation: (to) => init.history.encodeLocation(to),\n getFetcher,\n resetFetcher,\n deleteFetcher: queueFetcherForDeletion,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n _internalSetStateDoNotUseOrYouWillBreakYourApp(newState) {\n updateState(newState);\n }\n };\n if (init.unstable_instrumentations) {\n router = instrumentClientSideRouter(\n router,\n init.unstable_instrumentations.map((i) => i.router).filter(Boolean)\n );\n }\n return router;\n}\nfunction createStaticHandler(routes, opts) {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let _mapRouteProperties = opts?.mapRouteProperties || defaultMapRouteProperties;\n let mapRouteProperties2 = _mapRouteProperties;\n if (opts?.unstable_instrumentations) {\n let instrumentations = opts.unstable_instrumentations;\n mapRouteProperties2 = (route) => {\n return {\n ..._mapRouteProperties(route),\n ...getRouteInstrumentationUpdates(\n instrumentations.map((i) => i.route).filter(Boolean),\n route\n )\n };\n };\n }\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties2,\n void 0,\n manifest\n );\n async function query(request, {\n requestContext,\n filterMatchesToLoad,\n skipLoaderErrorBubbling,\n skipRevalidation,\n dataStrategy,\n generateMiddlewareResponse\n } = {}) {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n requestContext = requestContext != null ? requestContext : new RouterContextProvider();\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } = getShortCircuitMatches(dataRoutes);\n let staticContext = {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {}\n };\n return generateMiddlewareResponse ? generateMiddlewareResponse(() => Promise.resolve(staticContext)) : staticContext;\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } = getShortCircuitMatches(dataRoutes);\n let staticContext = {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {}\n };\n return generateMiddlewareResponse ? generateMiddlewareResponse(() => Promise.resolve(staticContext)) : staticContext;\n }\n if (generateMiddlewareResponse) {\n invariant(\n requestContext instanceof RouterContextProvider,\n \"When using middleware in `staticHandler.query()`, any provided `requestContext` must be an instance of `RouterContextProvider`\"\n );\n try {\n await loadLazyMiddlewareForMatches(\n matches,\n manifest,\n mapRouteProperties2\n );\n let renderedStaticContext;\n let response = await runServerMiddlewarePipeline(\n {\n request,\n unstable_pattern: getRoutePattern(matches),\n matches,\n params: matches[0].params,\n // If we're calling middleware then it must be enabled so we can cast\n // this to the proper type knowing it's not an `AppLoadContext`\n context: requestContext\n },\n async () => {\n let res = await generateMiddlewareResponse(\n async (revalidationRequest, opts2 = {}) => {\n let result2 = await queryImpl(\n revalidationRequest,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null,\n \"filterMatchesToLoad\" in opts2 ? opts2.filterMatchesToLoad ?? null : filterMatchesToLoad ?? null,\n skipRevalidation === true\n );\n if (isResponse(result2)) {\n return result2;\n }\n renderedStaticContext = { location, basename, ...result2 };\n return renderedStaticContext;\n }\n );\n return res;\n },\n async (error, routeId) => {\n if (isRedirectResponse(error)) {\n return error;\n }\n if (isResponse(error)) {\n try {\n error = new ErrorResponseImpl(\n error.status,\n error.statusText,\n await parseResponseBody(error)\n );\n } catch (e) {\n error = e;\n }\n }\n if (isDataWithResponseInit(error)) {\n error = dataWithResponseInitToErrorResponse(error);\n }\n if (renderedStaticContext) {\n if (routeId in renderedStaticContext.loaderData) {\n renderedStaticContext.loaderData[routeId] = void 0;\n }\n let staticContext = getStaticContextFromError(\n dataRoutes,\n renderedStaticContext,\n error,\n skipLoaderErrorBubbling ? routeId : findNearestBoundary(matches, routeId).route.id\n );\n return generateMiddlewareResponse(\n () => Promise.resolve(staticContext)\n );\n } else {\n let boundaryRouteId = skipLoaderErrorBubbling ? routeId : findNearestBoundary(\n matches,\n matches.find(\n (m) => m.route.id === routeId || m.route.loader\n )?.route.id || routeId\n ).route.id;\n let staticContext = {\n matches,\n location,\n basename,\n loaderData: {},\n actionData: null,\n errors: {\n [boundaryRouteId]: error\n },\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n actionHeaders: {},\n loaderHeaders: {}\n };\n return generateMiddlewareResponse(\n () => Promise.resolve(staticContext)\n );\n }\n }\n );\n invariant(isResponse(response), \"Expected a response in query()\");\n return response;\n } catch (e) {\n if (isResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null,\n filterMatchesToLoad || null,\n skipRevalidation === true\n );\n if (isResponse(result)) {\n return result;\n }\n return { location, basename, ...result };\n }\n async function queryRoute(request, {\n routeId,\n requestContext,\n dataStrategy,\n generateMiddlewareResponse\n } = {}) {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n requestContext = requestContext != null ? requestContext : new RouterContextProvider();\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n let match = routeId ? matches.find((m) => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n if (generateMiddlewareResponse) {\n invariant(\n requestContext instanceof RouterContextProvider,\n \"When using middleware in `staticHandler.queryRoute()`, any provided `requestContext` must be an instance of `RouterContextProvider`\"\n );\n await loadLazyMiddlewareForMatches(matches, manifest, mapRouteProperties2);\n let response = await runServerMiddlewarePipeline(\n {\n request,\n unstable_pattern: getRoutePattern(matches),\n matches,\n params: matches[0].params,\n // If we're calling middleware then it must be enabled so we can cast\n // this to the proper type knowing it's not an `AppLoadContext`\n context: requestContext\n },\n async () => {\n let res = await generateMiddlewareResponse(\n async (innerRequest) => {\n let result2 = await queryImpl(\n innerRequest,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match,\n null,\n false\n );\n let processed = handleQueryResult(result2);\n return isResponse(processed) ? processed : typeof processed === \"string\" ? new Response(processed) : Response.json(processed);\n }\n );\n return res;\n },\n (error) => {\n if (isDataWithResponseInit(error)) {\n return Promise.resolve(dataWithResponseInitToResponse(error));\n }\n if (isResponse(error)) {\n return Promise.resolve(error);\n }\n throw error;\n }\n );\n return response;\n }\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n dataStrategy || null,\n false,\n match,\n null,\n false\n );\n return handleQueryResult(result);\n function handleQueryResult(result2) {\n if (isResponse(result2)) {\n return result2;\n }\n let error = result2.errors ? Object.values(result2.errors)[0] : void 0;\n if (error !== void 0) {\n throw error;\n }\n if (result2.actionData) {\n return Object.values(result2.actionData)[0];\n }\n if (result2.loaderData) {\n return Object.values(result2.loaderData)[0];\n }\n return void 0;\n }\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, filterMatchesToLoad, skipRevalidation) {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n try {\n if (isMutationMethod(request.method)) {\n let result2 = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null,\n filterMatchesToLoad,\n skipRevalidation\n );\n return result2;\n }\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch,\n filterMatchesToLoad\n );\n return isResponse(result) ? result : {\n ...result,\n actionData: null,\n actionHeaders: {}\n };\n } catch (e) {\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === \"error\" /* error */) {\n throw e.result;\n }\n return e.result;\n }\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest, filterMatchesToLoad, skipRevalidation) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: \"error\" /* error */,\n error\n };\n } else {\n let dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n request,\n matches,\n actionMatch,\n [],\n requestContext\n );\n let results = await callDataStrategy(\n request,\n dsMatches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest);\n }\n }\n if (isRedirectResult(result)) {\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isRouteRequest) {\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {}\n };\n }\n if (skipRevalidation) {\n if (isErrorResult(result)) {\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n return {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: {\n ...result.headers ? { [actionMatch.route.id]: result.headers } : {}\n },\n matches,\n loaderData: {},\n errors: {\n [boundaryMatch.route.id]: result.error\n },\n loaderHeaders: {}\n };\n } else {\n return {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: result.headers ? { [actionMatch.route.id]: result.headers } : {},\n matches,\n loaderData: {},\n errors: null,\n statusCode: result.statusCode || 200,\n loaderHeaders: {}\n };\n }\n }\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let handlerContext2 = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n filterMatchesToLoad,\n [boundaryMatch.route.id, result]\n );\n return {\n ...handlerContext2,\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: {\n ...result.headers ? { [actionMatch.route.id]: result.headers } : {}\n }\n };\n }\n let handlerContext = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n dataStrategy,\n skipLoaderErrorBubbling,\n null,\n filterMatchesToLoad\n );\n return {\n ...handlerContext,\n actionData: {\n [actionMatch.route.id]: result.data\n },\n // action status codes take precedence over loader status codes\n ...result.statusCode ? { statusCode: result.statusCode } : {},\n actionHeaders: result.headers ? { [actionMatch.route.id]: result.headers } : {}\n };\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, filterMatchesToLoad, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n if (isRouteRequest && !routeMatch?.route.loader && !routeMatch?.route.lazy) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id\n });\n }\n let dsMatches;\n if (routeMatch) {\n dsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n request,\n matches,\n routeMatch,\n [],\n requestContext\n );\n } else {\n let maxIdx = pendingActionResult && isErrorResult(pendingActionResult[1]) ? (\n // Up to but not including the boundary\n matches.findIndex((m) => m.route.id === pendingActionResult[0]) - 1\n ) : void 0;\n let pattern = getRoutePattern(matches);\n dsMatches = matches.map((match, index) => {\n if (maxIdx != null && index > maxIdx) {\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n pattern,\n match,\n [],\n requestContext,\n false\n );\n }\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n pattern,\n match,\n [],\n requestContext,\n (match.route.loader || match.route.lazy) != null && (!filterMatchesToLoad || filterMatchesToLoad(match))\n );\n });\n }\n if (!dataStrategy && !dsMatches.some((m) => m.shouldLoad)) {\n return {\n matches,\n loaderData: {},\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {}\n };\n }\n let results = await callDataStrategy(\n request,\n dsMatches,\n isRouteRequest,\n requestContext,\n dataStrategy\n );\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest);\n }\n let handlerContext = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n true,\n skipLoaderErrorBubbling\n );\n return {\n ...handlerContext,\n matches\n };\n }\n async function callDataStrategy(request, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(\n dataStrategy || defaultDataStrategy,\n request,\n matches,\n null,\n requestContext,\n true\n );\n let dataResults = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResult(result)) {\n let response = result.result;\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename\n );\n }\n if (isRouteRequest) {\n if (isResponse(result.result)) {\n throw result;\n } else if (isDataWithResponseInit(result.result)) {\n throw dataWithResponseInitToResponse(result.result);\n }\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\nfunction getStaticContextFromError(routes, handlerContext, error, boundaryId) {\n let errorBoundaryId = boundaryId || handlerContext._deepestRenderedBoundaryId || routes[0].id;\n return {\n ...handlerContext,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [errorBoundaryId]: error\n }\n };\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest) {\n if (request.signal.reason !== void 0) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted without an \\`AbortSignal.reason\\`: ${request.method} ${request.url}`\n );\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== void 0);\n}\nfunction normalizeTo(location, matches, basename, to, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n if (basename !== \"/\") {\n path.pathname = prependBasename({ basename, pathname: path.pathname });\n }\n return createPath(path);\n}\nfunction normalizeNavigateOptions(isFetcher, path, opts) {\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" })\n });\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = rawFormMethod.toUpperCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== void 0) {\n if (opts.formEncType === \"text/plain\") {\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ? (\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\n`,\n \"\"\n )\n ) : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: void 0,\n json: void 0,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: void 0,\n json,\n text: void 0\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: void 0,\n text: void 0\n };\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n let parsedPath = parsePath(path);\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n return { path: createPath(parsedPath), submission };\n}\nfunction getMatchesToLoad(request, scopedContext, mapRouteProperties2, manifest, history, state, matches, submission, location, lazyRoutePropertiesToSkip, initialHydration, isRevalidationRequired, cancelledFetcherLoads, fetchersQueuedForDeletion, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, hasPatchRoutesOnNavigation, pendingActionResult, callSiteDefaultShouldRevalidate) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : void 0;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n let maxIdx;\n if (initialHydration && state.errors) {\n let boundaryId = Object.keys(state.errors)[0];\n maxIdx = matches.findIndex((m) => m.route.id === boundaryId);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n let boundaryId = pendingActionResult[0];\n maxIdx = matches.findIndex((m) => m.route.id === boundaryId) - 1;\n }\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : void 0;\n let shouldSkipRevalidation = actionStatus && actionStatus >= 400;\n let baseShouldRevalidateArgs = {\n currentUrl,\n currentParams: state.matches[0]?.params || {},\n nextUrl,\n nextParams: matches[0].params,\n ...submission,\n actionResult,\n actionStatus\n };\n let pattern = getRoutePattern(matches);\n let dsMatches = matches.map((match, index) => {\n let { route } = match;\n let forceShouldLoad = null;\n if (maxIdx != null && index > maxIdx) {\n forceShouldLoad = false;\n } else if (route.lazy) {\n forceShouldLoad = true;\n } else if (!routeHasLoaderOrMiddleware(route)) {\n forceShouldLoad = false;\n } else if (initialHydration) {\n forceShouldLoad = shouldLoadRouteOnHydration(\n route,\n state.loaderData,\n state.errors\n );\n } else if (isNewLoader(state.loaderData, state.matches[index], match)) {\n forceShouldLoad = true;\n }\n if (forceShouldLoad !== null) {\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n pattern,\n match,\n lazyRoutePropertiesToSkip,\n scopedContext,\n forceShouldLoad\n );\n }\n let defaultShouldRevalidate = false;\n if (typeof callSiteDefaultShouldRevalidate === \"boolean\") {\n defaultShouldRevalidate = callSiteDefaultShouldRevalidate;\n } else if (shouldSkipRevalidation) {\n defaultShouldRevalidate = false;\n } else if (isRevalidationRequired) {\n defaultShouldRevalidate = true;\n } else if (currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search) {\n defaultShouldRevalidate = true;\n } else if (currentUrl.search !== nextUrl.search) {\n defaultShouldRevalidate = true;\n } else if (isNewRouteInstance(state.matches[index], match)) {\n defaultShouldRevalidate = true;\n }\n let shouldRevalidateArgs = {\n ...baseShouldRevalidateArgs,\n defaultShouldRevalidate\n };\n let shouldLoad = shouldRevalidateLoader(match, shouldRevalidateArgs);\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n pattern,\n match,\n lazyRoutePropertiesToSkip,\n scopedContext,\n shouldLoad,\n shouldRevalidateArgs,\n callSiteDefaultShouldRevalidate\n );\n });\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n if (initialHydration || !matches.some((m) => m.route.id === f.routeId) || fetchersQueuedForDeletion.has(key)) {\n return;\n }\n let fetcher = state.fetchers.get(key);\n let isMidInitialLoad = fetcher && fetcher.state !== \"idle\" && fetcher.data === void 0;\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n if (!fetcherMatches) {\n if (hasPatchRoutesOnNavigation && isMidInitialLoad) {\n return;\n }\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n request: null,\n controller: null\n });\n return;\n }\n if (fetchRedirectIds.has(key)) {\n return;\n }\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let fetchController = new AbortController();\n let fetchRequest = createClientSideRequest(\n history,\n f.path,\n fetchController.signal\n );\n let fetcherDsMatches = null;\n if (cancelledFetcherLoads.has(key)) {\n cancelledFetcherLoads.delete(key);\n fetcherDsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n fetcherMatches,\n fetcherMatch,\n lazyRoutePropertiesToSkip,\n scopedContext\n );\n } else if (isMidInitialLoad) {\n if (isRevalidationRequired) {\n fetcherDsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n fetcherMatches,\n fetcherMatch,\n lazyRoutePropertiesToSkip,\n scopedContext\n );\n }\n } else {\n let defaultShouldRevalidate;\n if (typeof callSiteDefaultShouldRevalidate === \"boolean\") {\n defaultShouldRevalidate = callSiteDefaultShouldRevalidate;\n } else if (shouldSkipRevalidation) {\n defaultShouldRevalidate = false;\n } else {\n defaultShouldRevalidate = isRevalidationRequired;\n }\n let shouldRevalidateArgs = {\n ...baseShouldRevalidateArgs,\n defaultShouldRevalidate\n };\n if (shouldRevalidateLoader(fetcherMatch, shouldRevalidateArgs)) {\n fetcherDsMatches = getTargetedDataStrategyMatches(\n mapRouteProperties2,\n manifest,\n fetchRequest,\n fetcherMatches,\n fetcherMatch,\n lazyRoutePropertiesToSkip,\n scopedContext,\n shouldRevalidateArgs\n );\n }\n }\n if (fetcherDsMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherDsMatches,\n match: fetcherMatch,\n request: fetchRequest,\n controller: fetchController\n });\n }\n });\n return { dsMatches, revalidatingFetchers };\n}\nfunction routeHasLoaderOrMiddleware(route) {\n return route.loader != null || route.middleware != null && route.middleware.length > 0;\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n if (route.lazy) {\n return true;\n }\n if (!routeHasLoaderOrMiddleware(route)) {\n return false;\n }\n let hasData = loaderData != null && route.id in loaderData;\n let hasError = errors != null && errors[route.id] !== void 0;\n if (!hasData && hasError) {\n return false;\n }\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew = (\n // [a] -> [a, b]\n !currentMatch || // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id\n );\n let isMissingData = !currentLoaderData.hasOwnProperty(match.route.id);\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties2, allowElementMutations) {\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n let uniqueChildren = [];\n let existingChildren = [];\n children.forEach((newRoute) => {\n let existingRoute = childrenToPatch.find(\n (existingRoute2) => isSameRoute(newRoute, existingRoute2)\n );\n if (existingRoute) {\n existingChildren.push({ existingRoute, newRoute });\n } else {\n uniqueChildren.push(newRoute);\n }\n });\n if (uniqueChildren.length > 0) {\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties2,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n childrenToPatch.push(...newRoutes);\n }\n if (allowElementMutations && existingChildren.length > 0) {\n for (let i = 0; i < existingChildren.length; i++) {\n let { existingRoute, newRoute } = existingChildren[i];\n let existingRouteTyped = existingRoute;\n let [newRouteTyped] = convertRoutesToDataRoutes(\n [newRoute],\n mapRouteProperties2,\n [],\n // Doesn't matter for mutated routes since they already have an id\n {},\n // Don't touch the manifest here since we're updating in place\n true\n );\n Object.assign(existingRouteTyped, {\n element: newRouteTyped.element ? newRouteTyped.element : existingRouteTyped.element,\n errorElement: newRouteTyped.errorElement ? newRouteTyped.errorElement : existingRouteTyped.errorElement,\n hydrateFallbackElement: newRouteTyped.hydrateFallbackElement ? newRouteTyped.hydrateFallbackElement : existingRouteTyped.hydrateFallbackElement\n });\n }\n }\n}\nfunction isSameRoute(newRoute, existingRoute) {\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n return newRoute.children.every(\n (aChild, i) => existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n );\n}\nvar lazyRoutePropertyCache = /* @__PURE__ */ new WeakMap();\nvar loadLazyRouteProperty = ({\n key,\n route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n}) => {\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n if (!routeToUpdate.lazy || typeof routeToUpdate.lazy !== \"object\") {\n return;\n }\n let lazyFn = routeToUpdate.lazy[key];\n if (!lazyFn) {\n return;\n }\n let cache = lazyRoutePropertyCache.get(routeToUpdate);\n if (!cache) {\n cache = {};\n lazyRoutePropertyCache.set(routeToUpdate, cache);\n }\n let cachedPromise = cache[key];\n if (cachedPromise) {\n return cachedPromise;\n }\n let propertyPromise = (async () => {\n let isUnsupported = isUnsupportedLazyRouteObjectKey(key);\n let staticRouteValue = routeToUpdate[key];\n let isStaticallyDefined = staticRouteValue !== void 0 && key !== \"hasErrorBoundary\";\n if (isUnsupported) {\n warning(\n !isUnsupported,\n \"Route property \" + key + \" is not a supported lazy route property. This property will be ignored.\"\n );\n cache[key] = Promise.resolve();\n } else if (isStaticallyDefined) {\n warning(\n false,\n `Route \"${routeToUpdate.id}\" has a static property \"${key}\" defined. The lazy property will be ignored.`\n );\n } else {\n let value = await lazyFn();\n if (value != null) {\n Object.assign(routeToUpdate, { [key]: value });\n Object.assign(routeToUpdate, mapRouteProperties2(routeToUpdate));\n }\n }\n if (typeof routeToUpdate.lazy === \"object\") {\n routeToUpdate.lazy[key] = void 0;\n if (Object.values(routeToUpdate.lazy).every((value) => value === void 0)) {\n routeToUpdate.lazy = void 0;\n }\n }\n })();\n cache[key] = propertyPromise;\n return propertyPromise;\n};\nvar lazyRouteFunctionCache = /* @__PURE__ */ new WeakMap();\nfunction loadLazyRoute(route, type, manifest, mapRouteProperties2, lazyRoutePropertiesToSkip) {\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n if (!route.lazy) {\n return {\n lazyRoutePromise: void 0,\n lazyHandlerPromise: void 0\n };\n }\n if (typeof route.lazy === \"function\") {\n let cachedPromise = lazyRouteFunctionCache.get(routeToUpdate);\n if (cachedPromise) {\n return {\n lazyRoutePromise: cachedPromise,\n lazyHandlerPromise: cachedPromise\n };\n }\n let lazyRoutePromise2 = (async () => {\n invariant(\n typeof route.lazy === \"function\",\n \"No lazy route function found\"\n );\n let lazyRoute = await route.lazy();\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let lazyValue = lazyRoute[lazyRouteProperty];\n if (lazyValue === void 0) {\n continue;\n }\n let isUnsupported = isUnsupportedLazyRouteFunctionKey(lazyRouteProperty);\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isStaticallyDefined = staticRouteValue !== void 0 && // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n if (isUnsupported) {\n warning(\n !isUnsupported,\n \"Route property \" + lazyRouteProperty + \" is not a supported property to be returned from a lazy route function. This property will be ignored.\"\n );\n } else if (isStaticallyDefined) {\n warning(\n !isStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" defined but its lazy function is also returning a value for this property. The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n } else {\n routeUpdates[lazyRouteProperty] = lazyValue;\n }\n }\n Object.assign(routeToUpdate, routeUpdates);\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided `mapRouteProperties`\n // function to set the framework-aware properties (`element`/`hasErrorBoundary`)\n // since the logic will differ between frameworks.\n ...mapRouteProperties2(routeToUpdate),\n lazy: void 0\n });\n })();\n lazyRouteFunctionCache.set(routeToUpdate, lazyRoutePromise2);\n lazyRoutePromise2.catch(() => {\n });\n return {\n lazyRoutePromise: lazyRoutePromise2,\n lazyHandlerPromise: lazyRoutePromise2\n };\n }\n let lazyKeys = Object.keys(route.lazy);\n let lazyPropertyPromises = [];\n let lazyHandlerPromise = void 0;\n for (let key of lazyKeys) {\n if (lazyRoutePropertiesToSkip && lazyRoutePropertiesToSkip.includes(key)) {\n continue;\n }\n let promise = loadLazyRouteProperty({\n key,\n route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n });\n if (promise) {\n lazyPropertyPromises.push(promise);\n if (key === type) {\n lazyHandlerPromise = promise;\n }\n }\n }\n let lazyRoutePromise = lazyPropertyPromises.length > 0 ? Promise.all(lazyPropertyPromises).then(() => {\n }) : void 0;\n lazyRoutePromise?.catch(() => {\n });\n lazyHandlerPromise?.catch(() => {\n });\n return {\n lazyRoutePromise,\n lazyHandlerPromise\n };\n}\nfunction isNonNullable(value) {\n return value !== void 0;\n}\nfunction loadLazyMiddlewareForMatches(matches, manifest, mapRouteProperties2) {\n let promises = matches.map(({ route }) => {\n if (typeof route.lazy !== \"object\" || !route.lazy.middleware) {\n return void 0;\n }\n return loadLazyRouteProperty({\n key: \"middleware\",\n route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n });\n }).filter(isNonNullable);\n return promises.length > 0 ? Promise.all(promises) : void 0;\n}\nasync function defaultDataStrategy(args) {\n let matchesToLoad = args.matches.filter((m) => m.shouldLoad);\n let keyedResults = {};\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n results.forEach((result, i) => {\n keyedResults[matchesToLoad[i].route.id] = result;\n });\n return keyedResults;\n}\nasync function defaultDataStrategyWithMiddleware(args) {\n if (!args.matches.some((m) => m.route.middleware)) {\n return defaultDataStrategy(args);\n }\n return runClientMiddlewarePipeline(args, () => defaultDataStrategy(args));\n}\nfunction runServerMiddlewarePipeline(args, handler, errorHandler) {\n return runMiddlewarePipeline(\n args,\n handler,\n processResult,\n isResponse,\n errorHandler\n );\n function processResult(result) {\n return isDataWithResponseInit(result) ? dataWithResponseInitToResponse(result) : result;\n }\n}\nfunction runClientMiddlewarePipeline(args, handler) {\n return runMiddlewarePipeline(\n args,\n handler,\n (r) => {\n if (isRedirectResponse(r)) {\n throw r;\n }\n return r;\n },\n isDataStrategyResults,\n errorHandler\n );\n function errorHandler(error, routeId, nextResult) {\n if (nextResult) {\n return Promise.resolve(\n Object.assign(nextResult.value, {\n [routeId]: { type: \"error\", result: error }\n })\n );\n } else {\n let { matches } = args;\n let maxBoundaryIdx = Math.min(\n // Throwing route\n Math.max(\n matches.findIndex((m) => m.route.id === routeId),\n 0\n ),\n // or the shallowest route that needs to load data\n Math.max(\n matches.findIndex((m) => m.shouldCallHandler()),\n 0\n )\n );\n let boundaryRouteId = findNearestBoundary(\n matches,\n matches[maxBoundaryIdx].route.id\n ).route.id;\n return Promise.resolve({\n [boundaryRouteId]: { type: \"error\", result: error }\n });\n }\n }\n}\nasync function runMiddlewarePipeline(args, handler, processResult, isResult, errorHandler) {\n let { matches, request, params, context, unstable_pattern } = args;\n let tuples = matches.flatMap(\n (m) => m.route.middleware ? m.route.middleware.map((fn) => [m.route.id, fn]) : []\n );\n let result = await callRouteMiddleware(\n {\n request,\n params,\n context,\n unstable_pattern\n },\n tuples,\n handler,\n processResult,\n isResult,\n errorHandler\n );\n return result;\n}\nasync function callRouteMiddleware(args, middlewares, handler, processResult, isResult, errorHandler, idx = 0) {\n let { request } = args;\n if (request.signal.aborted) {\n throw request.signal.reason ?? new Error(`Request aborted: ${request.method} ${request.url}`);\n }\n let tuple = middlewares[idx];\n if (!tuple) {\n let result = await handler();\n return result;\n }\n let [routeId, middleware] = tuple;\n let nextResult;\n let next = async () => {\n if (nextResult) {\n throw new Error(\"You may only call `next()` once per middleware\");\n }\n try {\n let result = await callRouteMiddleware(\n args,\n middlewares,\n handler,\n processResult,\n isResult,\n errorHandler,\n idx + 1\n );\n nextResult = { value: result };\n return nextResult.value;\n } catch (error) {\n nextResult = { value: await errorHandler(error, routeId, nextResult) };\n return nextResult.value;\n }\n };\n try {\n let value = await middleware(args, next);\n let result = value != null ? processResult(value) : void 0;\n if (isResult(result)) {\n return result;\n } else if (nextResult) {\n return result ?? nextResult.value;\n } else {\n nextResult = { value: await next() };\n return nextResult.value;\n }\n } catch (error) {\n let response = await errorHandler(error, routeId, nextResult);\n return response;\n }\n}\nfunction getDataStrategyMatchLazyPromises(mapRouteProperties2, manifest, request, match, lazyRoutePropertiesToSkip) {\n let lazyMiddlewarePromise = loadLazyRouteProperty({\n key: \"middleware\",\n route: match.route,\n manifest,\n mapRouteProperties: mapRouteProperties2\n });\n let lazyRoutePromises = loadLazyRoute(\n match.route,\n isMutationMethod(request.method) ? \"action\" : \"loader\",\n manifest,\n mapRouteProperties2,\n lazyRoutePropertiesToSkip\n );\n return {\n middleware: lazyMiddlewarePromise,\n route: lazyRoutePromises.lazyRoutePromise,\n handler: lazyRoutePromises.lazyHandlerPromise\n };\n}\nfunction getDataStrategyMatch(mapRouteProperties2, manifest, request, unstable_pattern, match, lazyRoutePropertiesToSkip, scopedContext, shouldLoad, shouldRevalidateArgs = null, callSiteDefaultShouldRevalidate) {\n let isUsingNewApi = false;\n let _lazyPromises = getDataStrategyMatchLazyPromises(\n mapRouteProperties2,\n manifest,\n request,\n match,\n lazyRoutePropertiesToSkip\n );\n return {\n ...match,\n _lazyPromises,\n shouldLoad,\n shouldRevalidateArgs,\n shouldCallHandler(defaultShouldRevalidate) {\n isUsingNewApi = true;\n if (!shouldRevalidateArgs) {\n return shouldLoad;\n }\n if (typeof callSiteDefaultShouldRevalidate === \"boolean\") {\n return shouldRevalidateLoader(match, {\n ...shouldRevalidateArgs,\n defaultShouldRevalidate: callSiteDefaultShouldRevalidate\n });\n }\n if (typeof defaultShouldRevalidate === \"boolean\") {\n return shouldRevalidateLoader(match, {\n ...shouldRevalidateArgs,\n defaultShouldRevalidate\n });\n }\n return shouldRevalidateLoader(match, shouldRevalidateArgs);\n },\n resolve(handlerOverride) {\n let { lazy, loader, middleware } = match.route;\n let callHandler = isUsingNewApi || shouldLoad || handlerOverride && !isMutationMethod(request.method) && (lazy || loader);\n let isMiddlewareOnlyRoute = middleware && middleware.length > 0 && !loader && !lazy;\n if (callHandler && (isMutationMethod(request.method) || !isMiddlewareOnlyRoute)) {\n return callLoaderOrAction({\n request,\n unstable_pattern,\n match,\n lazyHandlerPromise: _lazyPromises?.handler,\n lazyRoutePromise: _lazyPromises?.route,\n handlerOverride,\n scopedContext\n });\n }\n return Promise.resolve({ type: \"data\" /* data */, result: void 0 });\n }\n };\n}\nfunction getTargetedDataStrategyMatches(mapRouteProperties2, manifest, request, matches, targetMatch, lazyRoutePropertiesToSkip, scopedContext, shouldRevalidateArgs = null) {\n return matches.map((match) => {\n if (match.route.id !== targetMatch.route.id) {\n return {\n ...match,\n shouldLoad: false,\n shouldRevalidateArgs,\n shouldCallHandler: () => false,\n _lazyPromises: getDataStrategyMatchLazyPromises(\n mapRouteProperties2,\n manifest,\n request,\n match,\n lazyRoutePropertiesToSkip\n ),\n resolve: () => Promise.resolve({ type: \"data\", result: void 0 })\n };\n }\n return getDataStrategyMatch(\n mapRouteProperties2,\n manifest,\n request,\n getRoutePattern(matches),\n match,\n lazyRoutePropertiesToSkip,\n scopedContext,\n true,\n shouldRevalidateArgs\n );\n });\n}\nasync function callDataStrategyImpl(dataStrategyImpl, request, matches, fetcherKey, scopedContext, isStaticHandler) {\n if (matches.some((m) => m._lazyPromises?.middleware)) {\n await Promise.all(matches.map((m) => m._lazyPromises?.middleware));\n }\n let dataStrategyArgs = {\n request,\n unstable_pattern: getRoutePattern(matches),\n params: matches[0].params,\n context: scopedContext,\n matches\n };\n let runClientMiddleware = isStaticHandler ? () => {\n throw new Error(\n \"You cannot call `runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`\"\n );\n } : (cb) => {\n let typedDataStrategyArgs = dataStrategyArgs;\n return runClientMiddlewarePipeline(typedDataStrategyArgs, () => {\n return cb({\n ...typedDataStrategyArgs,\n fetcherKey,\n runClientMiddleware: () => {\n throw new Error(\n \"Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler\"\n );\n }\n });\n });\n };\n let results = await dataStrategyImpl({\n ...dataStrategyArgs,\n fetcherKey,\n runClientMiddleware\n });\n try {\n await Promise.all(\n matches.flatMap((m) => [\n m._lazyPromises?.handler,\n m._lazyPromises?.route\n ])\n );\n } catch (e) {\n }\n return results;\n}\nasync function callLoaderOrAction({\n request,\n unstable_pattern,\n match,\n lazyHandlerPromise,\n lazyRoutePromise,\n handlerOverride,\n scopedContext\n}) {\n let result;\n let onReject;\n let isAction = isMutationMethod(request.method);\n let type = isAction ? \"action\" : \"loader\";\n let runHandler = (handler) => {\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = (ctx) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean \"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n unstable_pattern,\n params: match.params,\n context: scopedContext\n },\n ...ctx !== void 0 ? [ctx] : []\n );\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride((ctx) => actualHandler(ctx)) : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = isAction ? match.route.action : match.route.loader;\n if (lazyHandlerPromise || lazyRoutePromise) {\n if (handler) {\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n // Ensure all lazy route promises are resolved before continuing\n lazyHandlerPromise,\n lazyRoutePromise\n ]);\n if (handlerError !== void 0) {\n throw handlerError;\n }\n result = value;\n } else {\n await lazyHandlerPromise;\n let handler2 = isAction ? match.route.action : match.route.loader;\n if (handler2) {\n [result] = await Promise.all([runHandler(handler2), lazyRoutePromise]);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n return { type: \"data\" /* data */, result: void 0 };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n } catch (e) {\n return { type: \"error\" /* error */, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function parseResponseBody(response) {\n let contentType = response.headers.get(\"Content-Type\");\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n return response.body == null ? null : response.json();\n }\n return response.text();\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let { result, type } = dataStrategyResult;\n if (isResponse(result)) {\n let data2;\n try {\n data2 = await parseResponseBody(result);\n } catch (e) {\n return { type: \"error\" /* error */, error: e };\n }\n if (type === \"error\" /* error */) {\n return {\n type: \"error\" /* error */,\n error: new ErrorResponseImpl(result.status, result.statusText, data2),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: \"data\" /* data */,\n data: data2,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === \"error\" /* error */) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: \"error\" /* error */,\n error: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers ? new Headers(result.init.headers) : void 0\n };\n }\n return {\n type: \"error\" /* error */,\n error: dataWithResponseInitToErrorResponse(result),\n statusCode: isRouteErrorResponse(result) ? result.status : void 0,\n headers: result.init?.headers ? new Headers(result.init.headers) : void 0\n };\n }\n return {\n type: \"error\" /* error */,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : void 0\n };\n }\n if (isDataWithResponseInit(result)) {\n return {\n type: \"data\" /* data */,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers ? new Headers(result.init.headers) : void 0\n };\n }\n return { type: \"data\" /* data */, data: result };\n}\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n if (!isAbsoluteUrl(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n location\n );\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename, historyInstance) {\n let invalidProtocols = [\n \"about:\",\n \"blob:\",\n \"chrome:\",\n \"chrome-untrusted:\",\n \"content:\",\n \"data:\",\n \"devtools:\",\n \"file:\",\n \"filesystem:\",\n // eslint-disable-next-line no-script-url\n \"javascript:\"\n ];\n if (isAbsoluteUrl(location)) {\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n if (invalidProtocols.includes(url.protocol)) {\n throw new Error(\"Invalid redirect location\");\n }\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n try {\n let url = historyInstance.createURL(location);\n if (invalidProtocols.includes(url.protocol)) {\n throw new Error(\"Invalid redirect location\");\n }\n } catch (e) {\n }\n return location;\n}\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = { signal };\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, isStaticHandler = false, skipLoaderErrorBubbling = false) {\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : void 0;\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n if (pendingError !== void 0) {\n error = pendingError;\n pendingError = void 0;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n if (!isStaticHandler) {\n loaderData[id] = ResetLoaderDataSymbol;\n }\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n if (pendingError !== void 0 && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n if (pendingActionResult[2]) {\n loaderData[pendingActionResult[2]] = void 0;\n }\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults) {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult\n );\n revalidatingFetchers.filter((f) => !f.matches || f.matches.some((m) => m.shouldLoad)).forEach((rf) => {\n let { key, match, controller } = rf;\n if (controller && controller.signal.aborted) {\n return;\n }\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return { loaderData, errors };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = Object.entries(newLoaderData).filter(([, v]) => v !== ResetLoaderDataSymbol).reduce((merged, [k, v]) => {\n merged[k] = v;\n return merged;\n }, {});\n for (let match of matches) {\n let id = match.route.id;\n if (!newLoaderData.hasOwnProperty(id) && loaderData.hasOwnProperty(id) && match.route.loader) {\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n let route = routes.length === 1 ? routes[0] : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`\n };\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }\n ],\n route\n };\n}\nfunction getInternalRouterError(status, {\n pathname,\n routeId,\n method,\n type,\n message\n} = {}) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = `You made a ${method} request to \"${pathname}\" but did not provide a \\`loader\\` for route \"${routeId}\", so there is no way to handle the request.`;\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = `You made a ${method.toUpperCase()} request to \"${pathname}\" but did not provide an \\`action\\` for route \"${routeId}\", so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n return true;\n } else if (b.hash !== \"\") {\n return true;\n }\n return false;\n}\nfunction dataWithResponseInitToResponse(data2) {\n return Response.json(data2.data, data2.init ?? void 0);\n}\nfunction dataWithResponseInitToErrorResponse(data2) {\n return new ErrorResponseImpl(\n data2.init?.status ?? 500,\n data2.init?.statusText ?? \"Internal Server Error\",\n data2.data\n );\n}\nfunction isDataStrategyResults(result) {\n return result != null && typeof result === \"object\" && Object.entries(result).every(\n ([key, value]) => typeof key === \"string\" && isDataStrategyResult(value)\n );\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === \"data\" /* data */ || result.type === \"error\" /* error */);\n}\nfunction isRedirectDataStrategyResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isErrorResult(result) {\n return result.type === \"error\" /* error */;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === \"redirect\" /* redirect */;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectStatusCode(statusCode) {\n return redirectStatusCodes.has(statusCode);\n}\nfunction isRedirectResponse(result) {\n return isResponse(result) && isRedirectStatusCode(result.status) && result.headers.has(\"Location\");\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toUpperCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toUpperCase());\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n return matches[matches.length - 1];\n }\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let { formMethod, formAction, formEncType, text, formData, json } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: void 0,\n json: void 0,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: void 0,\n text: void 0\n };\n } else if (json !== void 0) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: void 0,\n json,\n text: void 0\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data2) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: data2\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0,\n data: data2\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : void 0\n };\n return fetcher;\n}\nfunction getDoneFetcher(data2) {\n let fetcher = {\n state: \"idle\",\n formMethod: void 0,\n formAction: void 0,\n formEncType: void 0,\n formData: void 0,\n json: void 0,\n text: void 0,\n data: data2\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\nfunction createDeferred() {\n let resolve;\n let reject;\n let promise = new Promise((res, rej) => {\n resolve = async (val) => {\n res(val);\n try {\n await promise;\n } catch (e) {\n }\n };\n reject = async (error) => {\n rej(error);\n try {\n await promise;\n } catch (e) {\n }\n };\n });\n return {\n promise,\n //@ts-ignore\n resolve,\n //@ts-ignore\n reject\n };\n}\n\n// lib/context.ts\nimport * as React from \"react\";\nvar DataRouterContext = React.createContext(null);\nDataRouterContext.displayName = \"DataRouter\";\nvar DataRouterStateContext = React.createContext(null);\nDataRouterStateContext.displayName = \"DataRouterState\";\nvar RSCRouterContext = React.createContext(false);\nfunction useIsRSCRouterContext() {\n return React.useContext(RSCRouterContext);\n}\nvar ViewTransitionContext = React.createContext({\n isTransitioning: false\n});\nViewTransitionContext.displayName = \"ViewTransition\";\nvar FetchersContext = React.createContext(\n /* @__PURE__ */ new Map()\n);\nFetchersContext.displayName = \"Fetchers\";\nvar AwaitContext = React.createContext(null);\nAwaitContext.displayName = \"Await\";\nvar AwaitContextProvider = (props) => React.createElement(AwaitContext.Provider, props);\nvar NavigationContext = React.createContext(\n null\n);\nNavigationContext.displayName = \"Navigation\";\nvar LocationContext = React.createContext(\n null\n);\nLocationContext.displayName = \"Location\";\nvar RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nRouteContext.displayName = \"Route\";\nvar RouteErrorContext = React.createContext(null);\nRouteErrorContext.displayName = \"RouteError\";\nvar ENABLE_DEV_WARNINGS = true;\n\n// lib/hooks.tsx\nimport * as React2 from \"react\";\n\n// lib/errors.ts\nvar ERROR_DIGEST_BASE = \"REACT_ROUTER_ERROR\";\nvar ERROR_DIGEST_REDIRECT = \"REDIRECT\";\nvar ERROR_DIGEST_ROUTE_ERROR_RESPONSE = \"ROUTE_ERROR_RESPONSE\";\nfunction decodeRedirectErrorDigest(digest) {\n if (digest.startsWith(`${ERROR_DIGEST_BASE}:${ERROR_DIGEST_REDIRECT}:{`)) {\n try {\n let parsed = JSON.parse(digest.slice(28));\n if (typeof parsed === \"object\" && parsed && typeof parsed.status === \"number\" && typeof parsed.statusText === \"string\" && typeof parsed.location === \"string\" && typeof parsed.reloadDocument === \"boolean\" && typeof parsed.replace === \"boolean\") {\n return parsed;\n }\n } catch {\n }\n }\n}\nfunction decodeRouteErrorResponseDigest(digest) {\n if (digest.startsWith(\n `${ERROR_DIGEST_BASE}:${ERROR_DIGEST_ROUTE_ERROR_RESPONSE}:{`\n )) {\n try {\n let parsed = JSON.parse(digest.slice(40));\n if (typeof parsed === \"object\" && parsed && typeof parsed.status === \"number\" && typeof parsed.statusText === \"string\") {\n return new ErrorResponseImpl(\n parsed.status,\n parsed.statusText,\n parsed.data\n );\n }\n } catch {\n }\n }\n}\n\n// lib/hooks.tsx\nfunction useHref(to, { relative } = {}) {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n let { basename, navigator } = React2.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\nfunction useInRouterContext() {\n return React2.useContext(LocationContext) != null;\n}\nfunction useLocation() {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n return React2.useContext(LocationContext).location;\n}\nfunction useNavigationType() {\n return React2.useContext(LocationContext).navigationType;\n}\nfunction useMatch(pattern) {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n let { pathname } = useLocation();\n return React2.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\nvar navigateEffectWarning = `You should call navigate() in a React.useEffect(), not when your component is first rendered.`;\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React2.useContext(NavigationContext).static;\n if (!isStatic) {\n React2.useLayoutEffect(cb);\n }\n}\nfunction useNavigate() {\n let { isDataRoute } = React2.useContext(RouteContext);\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n let dataRouterContext = React2.useContext(DataRouterContext);\n let { basename, navigator } = React2.useContext(NavigationContext);\n let { matches } = React2.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n let activeRef = React2.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React2.useCallback(\n (to, options = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext\n ]\n );\n return navigate;\n}\nvar OutletContext = React2.createContext(null);\nfunction useOutletContext() {\n return React2.useContext(OutletContext);\n}\nfunction useOutlet(context) {\n let outlet = React2.useContext(RouteContext).outlet;\n return React2.useMemo(\n () => outlet && /* @__PURE__ */ React2.createElement(OutletContext.Provider, { value: context }, outlet),\n [outlet, context]\n );\n}\nfunction useParams() {\n let { matches } = React2.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\nfunction useResolvedPath(to, { relative } = {}) {\n let { matches } = React2.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n return React2.useMemo(\n () => resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\nfunction useRoutesImpl(routes, locationArg, dataRouterState, onError, future) {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n let { navigator } = React2.useContext(NavigationContext);\n let { matches: parentMatches } = React2.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (ENABLE_DEV_WARNINGS) {\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\") || parentPath.endsWith(\"*?\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at \"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the parent route path has no trailing \"*\". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent <Route path=\"${parentPath}\"> to <Route path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n invariant(\n parentPathnameBase === \"/\" || parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n if (ENABLE_DEV_WARNINGS) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n warning(\n matches == null || matches[matches.length - 1].route.element !== void 0 || matches[matches.length - 1].route.Component !== void 0 || matches[matches.length - 1].route.lazy !== void 0,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an \"empty\" page.`\n );\n }\n let renderedMatches = _renderMatches(\n matches && matches.map(\n (match) => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes.\n // Pre-encode `?` and `#` ahead of `encodeLocation` because it uses\n // `new URL()` internally and we need to prevent it from treating\n // them as separators\n navigator.encodeLocation ? navigator.encodeLocation(\n match.pathname.replace(/\\?/g, \"%3F\").replace(/#/g, \"%23\")\n ).pathname : match.pathname\n ]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n // Pre-encode `?` and `#` ahead of `encodeLocation` because it uses\n // `new URL()` internally and we need to prevent it from treating\n // them as separators\n navigator.encodeLocation ? navigator.encodeLocation(\n match.pathnameBase.replace(/\\?/g, \"%3F\").replace(/#/g, \"%23\")\n ).pathname : match.pathnameBase\n ])\n })\n ),\n parentMatches,\n dataRouterState,\n onError,\n future\n );\n if (locationArg && renderedMatches) {\n return /* @__PURE__ */ React2.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location\n },\n navigationType: \"POP\" /* Pop */\n }\n },\n renderedMatches\n );\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? `${error.status} ${error.statusText}` : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n let devInfo = null;\n if (ENABLE_DEV_WARNINGS) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n devInfo = /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\"p\", null, \"\\u{1F4BF} Hey developer \\u{1F44B}\"), /* @__PURE__ */ React2.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /* @__PURE__ */ React2.createElement(\"code\", { style: codeStyles }, \"ErrorBoundary\"), \" or\", \" \", /* @__PURE__ */ React2.createElement(\"code\", { style: codeStyles }, \"errorElement\"), \" prop on your route.\"));\n }\n return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\"h2\", null, \"Unexpected Application Error!\"), /* @__PURE__ */ React2.createElement(\"h3\", { style: { fontStyle: \"italic\" } }, message), stack ? /* @__PURE__ */ React2.createElement(\"pre\", { style: preStyles }, stack) : null, devInfo);\n}\nvar defaultErrorElement = /* @__PURE__ */ React2.createElement(DefaultErrorComponent, null);\nvar RenderErrorBoundary = class extends React2.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n static getDerivedStateFromProps(props, state) {\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n return {\n error: props.error !== void 0 ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.onError) {\n this.props.onError(error, errorInfo);\n } else {\n console.error(\n \"React Router caught the following error during render\",\n error\n );\n }\n }\n render() {\n let error = this.state.error;\n if (this.context && typeof error === \"object\" && error && \"digest\" in error && typeof error.digest === \"string\") {\n const decoded = decodeRouteErrorResponseDigest(error.digest);\n if (decoded) error = decoded;\n }\n let result = error !== void 0 ? /* @__PURE__ */ React2.createElement(RouteContext.Provider, { value: this.props.routeContext }, /* @__PURE__ */ React2.createElement(\n RouteErrorContext.Provider,\n {\n value: error,\n children: this.props.component\n }\n )) : this.props.children;\n if (this.context) {\n return /* @__PURE__ */ React2.createElement(RSCErrorHandler, { error }, result);\n }\n return result;\n }\n};\nRenderErrorBoundary.contextType = RSCRouterContext;\nvar errorRedirectHandledMap = /* @__PURE__ */ new WeakMap();\nfunction RSCErrorHandler({\n children,\n error\n}) {\n let { basename } = React2.useContext(NavigationContext);\n if (typeof error === \"object\" && error && \"digest\" in error && typeof error.digest === \"string\") {\n let redirect2 = decodeRedirectErrorDigest(error.digest);\n if (redirect2) {\n let existingRedirect = errorRedirectHandledMap.get(error);\n if (existingRedirect) throw existingRedirect;\n let parsed = parseToInfo(redirect2.location, basename);\n if (isBrowser && !errorRedirectHandledMap.get(error)) {\n if (parsed.isExternal || redirect2.reloadDocument) {\n window.location.href = parsed.absoluteURL || parsed.to;\n } else {\n const redirectPromise = Promise.resolve().then(\n () => window.__reactRouterDataRouter.navigate(parsed.to, {\n replace: redirect2.replace\n })\n );\n errorRedirectHandledMap.set(error, redirectPromise);\n throw redirectPromise;\n }\n }\n return /* @__PURE__ */ React2.createElement(\n \"meta\",\n {\n httpEquiv: \"refresh\",\n content: `0;url=${parsed.absoluteURL || parsed.to}`\n }\n );\n }\n }\n return children;\n}\nfunction RenderedRoute({ routeContext, match, children }) {\n let dataRouterContext = React2.useContext(DataRouterContext);\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /* @__PURE__ */ React2.createElement(RouteContext.Provider, { value: routeContext }, children);\n}\nfunction _renderMatches(matches, parentMatches = [], dataRouterState = null, onErrorHandler = null, future = null) {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n matches = dataRouterState.matches;\n } else if (parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== void 0\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let { loaderData, errors: errors2 } = dataRouterState;\n let needsToRunLoader = match.route.loader && !loaderData.hasOwnProperty(match.route.id) && (!errors2 || errors2[match.route.id] === void 0);\n if (match.route.lazy || needsToRunLoader) {\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n let onError = dataRouterState && onErrorHandler ? (error, errorInfo) => {\n onErrorHandler(error, {\n location: dataRouterState.location,\n params: dataRouterState.matches?.[0]?.params ?? {},\n unstable_pattern: getRoutePattern(dataRouterState.matches),\n errorInfo\n });\n } : void 0;\n return renderedMatches.reduceRight(\n (outlet, match, index) => {\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : void 0;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches2 = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n children = /* @__PURE__ */ React2.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /* @__PURE__ */ React2.createElement(\n RenderedRoute,\n {\n match,\n routeContext: {\n outlet,\n matches: matches2,\n isDataRoute: dataRouterState != null\n },\n children\n }\n );\n };\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /* @__PURE__ */ React2.createElement(\n RenderErrorBoundary,\n {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error,\n children: getChildren(),\n routeContext: { outlet: null, matches: matches2, isDataRoute: true },\n onError\n }\n ) : getChildren();\n },\n null\n );\n}\nfunction getDataRouterConsoleError(hookName) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React2.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React2.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React2.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\nfunction useRouteId() {\n return useCurrentRouteId(\"useRouteId\" /* UseRouteId */);\n}\nfunction useNavigation() {\n let state = useDataRouterState(\"useNavigation\" /* UseNavigation */);\n return state.navigation;\n}\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(\"useRevalidator\" /* UseRevalidator */);\n let state = useDataRouterState(\"useRevalidator\" /* UseRevalidator */);\n let revalidate = React2.useCallback(async () => {\n await dataRouterContext.router.revalidate();\n }, [dataRouterContext.router]);\n return React2.useMemo(\n () => ({ revalidate, state: state.revalidation }),\n [revalidate, state.revalidation]\n );\n}\nfunction useMatches() {\n let { matches, loaderData } = useDataRouterState(\n \"useMatches\" /* UseMatches */\n );\n return React2.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\nfunction useLoaderData() {\n let state = useDataRouterState(\"useLoaderData\" /* UseLoaderData */);\n let routeId = useCurrentRouteId(\"useLoaderData\" /* UseLoaderData */);\n return state.loaderData[routeId];\n}\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(\"useRouteLoaderData\" /* UseRouteLoaderData */);\n return state.loaderData[routeId];\n}\nfunction useActionData() {\n let state = useDataRouterState(\"useActionData\" /* UseActionData */);\n let routeId = useCurrentRouteId(\"useLoaderData\" /* UseLoaderData */);\n return state.actionData ? state.actionData[routeId] : void 0;\n}\nfunction useRouteError() {\n let error = React2.useContext(RouteErrorContext);\n let state = useDataRouterState(\"useRouteError\" /* UseRouteError */);\n let routeId = useCurrentRouteId(\"useRouteError\" /* UseRouteError */);\n if (error !== void 0) {\n return error;\n }\n return state.errors?.[routeId];\n}\nfunction useAsyncValue() {\n let value = React2.useContext(AwaitContext);\n return value?._data;\n}\nfunction useAsyncError() {\n let value = React2.useContext(AwaitContext);\n return value?._error;\n}\nvar blockerId = 0;\nfunction useBlocker(shouldBlock) {\n let { router, basename } = useDataRouterContext(\"useBlocker\" /* UseBlocker */);\n let state = useDataRouterState(\"useBlocker\" /* UseBlocker */);\n let [blockerKey, setBlockerKey] = React2.useState(\"\");\n let blockerFunction = React2.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n },\n nextLocation: {\n ...nextLocation,\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n },\n historyAction\n });\n },\n [basename, shouldBlock]\n );\n React2.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n React2.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\nfunction useNavigateStable() {\n let { router } = useDataRouterContext(\"useNavigate\" /* UseNavigateStable */);\n let id = useCurrentRouteId(\"useNavigate\" /* UseNavigateStable */);\n let activeRef = React2.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React2.useCallback(\n async (to, options = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n await router.navigate(to);\n } else {\n await router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n return navigate;\n}\nvar alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\nfunction useRoute(...args) {\n const currentRouteId = useCurrentRouteId(\n \"useRoute\" /* UseRoute */\n );\n const id = args[0] ?? currentRouteId;\n const state = useDataRouterState(\"useRoute\" /* UseRoute */);\n const route = state.matches.find(({ route: route2 }) => route2.id === id);\n if (route === void 0) return void 0;\n return {\n handle: route.route.handle,\n loaderData: state.loaderData[id],\n actionData: state.actionData?.[id]\n };\n}\n\n// lib/components.tsx\nimport * as React3 from \"react\";\n\n// lib/server-runtime/warnings.ts\nvar alreadyWarned2 = {};\nfunction warnOnce(condition, message) {\n if (!condition && !alreadyWarned2[message]) {\n alreadyWarned2[message] = true;\n console.warn(message);\n }\n}\n\n// lib/components.tsx\nvar USE_OPTIMISTIC = \"useOptimistic\";\nvar useOptimisticImpl = React3[USE_OPTIMISTIC];\nvar stableUseOptimisticSetter = () => void 0;\nfunction useOptimisticSafe(val) {\n if (useOptimisticImpl) {\n return useOptimisticImpl(val);\n } else {\n return [val, stableUseOptimisticSetter];\n }\n}\nfunction mapRouteProperties(route) {\n let updates = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.hasErrorBoundary || route.ErrorBoundary != null || route.errorElement != null\n };\n if (route.Component) {\n if (ENABLE_DEV_WARNINGS) {\n if (route.element) {\n warning(\n false,\n \"You should not include both `Component` and `element` on your route - `Component` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n element: React3.createElement(route.Component),\n Component: void 0\n });\n }\n if (route.HydrateFallback) {\n if (ENABLE_DEV_WARNINGS) {\n if (route.hydrateFallbackElement) {\n warning(\n false,\n \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: React3.createElement(route.HydrateFallback),\n HydrateFallback: void 0\n });\n }\n if (route.ErrorBoundary) {\n if (ENABLE_DEV_WARNINGS) {\n if (route.errorElement) {\n warning(\n false,\n \"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n errorElement: React3.createElement(route.ErrorBoundary),\n ErrorBoundary: void 0\n });\n }\n return updates;\n}\nvar hydrationRouteProperties = [\n \"HydrateFallback\",\n \"hydrateFallbackElement\"\n];\nfunction createMemoryRouter(routes, opts) {\n return createRouter({\n basename: opts?.basename,\n getContext: opts?.getContext,\n future: opts?.future,\n history: createMemoryHistory({\n initialEntries: opts?.initialEntries,\n initialIndex: opts?.initialIndex\n }),\n hydrationData: opts?.hydrationData,\n routes,\n hydrationRouteProperties,\n mapRouteProperties,\n dataStrategy: opts?.dataStrategy,\n patchRoutesOnNavigation: opts?.patchRoutesOnNavigation,\n unstable_instrumentations: opts?.unstable_instrumentations\n }).initialize();\n}\nvar Deferred = class {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (value) => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = (reason) => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n};\nfunction RouterProvider({\n router,\n flushSync: reactDomFlushSyncImpl,\n onError,\n unstable_useTransitions\n}) {\n let unstable_rsc = useIsRSCRouterContext();\n unstable_useTransitions = unstable_rsc || unstable_useTransitions;\n let [_state, setStateImpl] = React3.useState(router.state);\n let [state, setOptimisticState] = useOptimisticSafe(_state);\n let [pendingState, setPendingState] = React3.useState();\n let [vtContext, setVtContext] = React3.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React3.useState();\n let [transition, setTransition] = React3.useState();\n let [interruption, setInterruption] = React3.useState();\n let fetcherData = React3.useRef(/* @__PURE__ */ new Map());\n let setState = React3.useCallback(\n (newState, { deletedFetchers, newErrors, flushSync, viewTransitionOpts }) => {\n if (newErrors && onError) {\n Object.values(newErrors).forEach(\n (error) => onError(error, {\n location: newState.location,\n params: newState.matches[0]?.params ?? {},\n unstable_pattern: getRoutePattern(newState.matches)\n })\n );\n }\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== void 0) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n deletedFetchers.forEach((key) => fetcherData.current.delete(key));\n warnOnce(\n flushSync === false || reactDomFlushSyncImpl != null,\n 'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from \"react-router/dom\"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.'\n );\n let isViewTransitionAvailable = router.window != null && router.window.document != null && typeof router.window.document.startViewTransition === \"function\";\n warnOnce(\n viewTransitionOpts == null || isViewTransitionAvailable,\n \"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available.\"\n );\n if (!viewTransitionOpts || !isViewTransitionAvailable) {\n if (reactDomFlushSyncImpl && flushSync) {\n reactDomFlushSyncImpl(() => setStateImpl(newState));\n } else if (unstable_useTransitions === false) {\n setStateImpl(newState);\n } else {\n React3.startTransition(() => {\n if (unstable_useTransitions === true) {\n setOptimisticState((s) => getOptimisticRouterState(s, newState));\n }\n setStateImpl(newState);\n });\n }\n return;\n }\n if (reactDomFlushSyncImpl && flushSync) {\n reactDomFlushSyncImpl(() => {\n if (transition) {\n renderDfd?.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n let t = router.window.document.startViewTransition(() => {\n reactDomFlushSyncImpl(() => setStateImpl(newState));\n });\n t.finished.finally(() => {\n reactDomFlushSyncImpl(() => {\n setRenderDfd(void 0);\n setTransition(void 0);\n setPendingState(void 0);\n setVtContext({ isTransitioning: false });\n });\n });\n reactDomFlushSyncImpl(() => setTransition(t));\n return;\n }\n if (transition) {\n renderDfd?.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n },\n [\n router.window,\n reactDomFlushSyncImpl,\n transition,\n renderDfd,\n unstable_useTransitions,\n setOptimisticState,\n onError\n ]\n );\n React3.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React3.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n React3.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition2 = router.window.document.startViewTransition(async () => {\n if (unstable_useTransitions === false) {\n setStateImpl(newState);\n } else {\n React3.startTransition(() => {\n if (unstable_useTransitions === true) {\n setOptimisticState((s) => getOptimisticRouterState(s, newState));\n }\n setStateImpl(newState);\n });\n }\n await renderPromise;\n });\n transition2.finished.finally(() => {\n setRenderDfd(void 0);\n setTransition(void 0);\n setPendingState(void 0);\n setVtContext({ isTransitioning: false });\n });\n setTransition(transition2);\n }\n }, [\n pendingState,\n renderDfd,\n router.window,\n unstable_useTransitions,\n setOptimisticState\n ]);\n React3.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n React3.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(void 0);\n }\n }, [vtContext.isTransitioning, interruption]);\n let navigator = React3.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state2, opts) => router.navigate(to, {\n state: state2,\n preventScrollReset: opts?.preventScrollReset\n }),\n replace: (to, state2, opts) => router.navigate(to, {\n replace: true,\n state: state2,\n preventScrollReset: opts?.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React3.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n onError\n }),\n [router, navigator, basename, onError]\n );\n return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(DataRouterContext.Provider, { value: dataRouterContext }, /* @__PURE__ */ React3.createElement(DataRouterStateContext.Provider, { value: state }, /* @__PURE__ */ React3.createElement(FetchersContext.Provider, { value: fetcherData.current }, /* @__PURE__ */ React3.createElement(ViewTransitionContext.Provider, { value: vtContext }, /* @__PURE__ */ React3.createElement(\n Router,\n {\n basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator,\n unstable_useTransitions\n },\n /* @__PURE__ */ React3.createElement(\n MemoizedDataRoutes,\n {\n routes: router.routes,\n future: router.future,\n state,\n onError\n }\n )\n ))))), null);\n}\nfunction getOptimisticRouterState(currentState, newState) {\n return {\n // Don't surface \"current location specific\" stuff mid-navigation\n // (historyAction, location, matches, loaderData, errors, initialized,\n // restoreScroll, preventScrollReset, blockers, etc.)\n ...currentState,\n // Only surface \"pending/in-flight stuff\"\n // (navigation, revalidation, actionData, fetchers, )\n navigation: newState.navigation.state !== \"idle\" ? newState.navigation : currentState.navigation,\n revalidation: newState.revalidation !== \"idle\" ? newState.revalidation : currentState.revalidation,\n actionData: newState.navigation.state !== \"submitting\" ? newState.actionData : currentState.actionData,\n fetchers: newState.fetchers\n };\n}\nvar MemoizedDataRoutes = React3.memo(DataRoutes);\nfunction DataRoutes({\n routes,\n future,\n state,\n onError\n}) {\n return useRoutesImpl(routes, void 0, state, onError, future);\n}\nfunction MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n unstable_useTransitions\n}) {\n let historyRef = React3.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React3.useState({\n action: history.action,\n location: history.location\n });\n let setState = React3.useCallback(\n (newState) => {\n if (unstable_useTransitions === false) {\n setStateImpl(newState);\n } else {\n React3.startTransition(() => setStateImpl(newState));\n }\n },\n [unstable_useTransitions]\n );\n React3.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React3.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n unstable_useTransitions\n }\n );\n}\nfunction Navigate({\n to,\n replace: replace2,\n state,\n relative\n}) {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n let { static: isStatic } = React3.useContext(NavigationContext);\n warning(\n !isStatic,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`\n );\n let { matches } = React3.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let navigate = useNavigate();\n let path = resolveTo(\n to,\n getResolveToMatches(matches),\n locationPathname,\n relative === \"path\"\n );\n let jsonPath = JSON.stringify(path);\n React3.useEffect(() => {\n navigate(JSON.parse(jsonPath), { replace: replace2, state, relative });\n }, [navigate, jsonPath, relative, replace2, state]);\n return null;\n}\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\nfunction Route(props) {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\nfunction Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = \"POP\" /* Pop */,\n navigator,\n static: staticProp = false,\n unstable_useTransitions\n}) {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`\n );\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React3.useMemo(\n () => ({\n basename,\n navigator,\n static: staticProp,\n unstable_useTransitions,\n future: {}\n }),\n [basename, navigator, staticProp, unstable_useTransitions]\n );\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let locationContext = React3.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n if (trailingPathname == null) {\n return null;\n }\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n },\n navigationType\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL \"${pathname}${search}${hash}\" because it does not start with the basename, so the <Router> won't render anything.`\n );\n if (locationContext == null) {\n return null;\n }\n return /* @__PURE__ */ React3.createElement(NavigationContext.Provider, { value: navigationContext }, /* @__PURE__ */ React3.createElement(LocationContext.Provider, { children, value: locationContext }));\n}\nfunction Routes({\n children,\n location\n}) {\n return useRoutes(createRoutesFromChildren(children), location);\n}\nfunction Await({\n children,\n errorElement,\n resolve\n}) {\n let dataRouterContext = React3.useContext(DataRouterContext);\n let dataRouterStateContext = React3.useContext(DataRouterStateContext);\n let onError = React3.useCallback(\n (error, errorInfo) => {\n if (dataRouterContext && dataRouterContext.onError && dataRouterStateContext) {\n dataRouterContext.onError(error, {\n location: dataRouterStateContext.location,\n params: dataRouterStateContext.matches[0]?.params || {},\n unstable_pattern: getRoutePattern(dataRouterStateContext.matches),\n errorInfo\n });\n }\n },\n [dataRouterContext, dataRouterStateContext]\n );\n return /* @__PURE__ */ React3.createElement(\n AwaitErrorBoundary,\n {\n resolve,\n errorElement,\n onError\n },\n /* @__PURE__ */ React3.createElement(ResolveAwait, null, children)\n );\n}\nvar AwaitErrorBoundary = class extends React3.Component {\n constructor(props) {\n super(props);\n this.state = { error: null };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.onError) {\n this.props.onError(error, errorInfo);\n } else {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n }\n render() {\n let { children, errorElement, resolve } = this.props;\n let promise = null;\n let status = 0 /* pending */;\n if (!(resolve instanceof Promise)) {\n status = 1 /* success */;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n status = 2 /* error */;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {\n });\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if (resolve._tracked) {\n promise = resolve;\n status = \"_error\" in promise ? 2 /* error */ : \"_data\" in promise ? 1 /* success */ : 0 /* pending */;\n } else {\n status = 0 /* pending */;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data2) => Object.defineProperty(resolve, \"_data\", { get: () => data2 }),\n (error) => {\n this.props.onError?.(error);\n Object.defineProperty(resolve, \"_error\", { get: () => error });\n }\n );\n }\n if (status === 2 /* error */ && !errorElement) {\n throw promise._error;\n }\n if (status === 2 /* error */) {\n return /* @__PURE__ */ React3.createElement(AwaitContext.Provider, { value: promise, children: errorElement });\n }\n if (status === 1 /* success */) {\n return /* @__PURE__ */ React3.createElement(AwaitContext.Provider, { value: promise, children });\n }\n throw promise;\n }\n};\nfunction ResolveAwait({\n children\n}) {\n let data2 = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data2) : children;\n return /* @__PURE__ */ React3.createElement(React3.Fragment, null, toRender);\n}\nfunction createRoutesFromChildren(children, parentPath = []) {\n let routes = [];\n React3.Children.forEach(children, (element, index) => {\n if (!React3.isValidElement(element)) {\n return;\n }\n let treePath = [...parentPath, index];\n if (element.type === React3.Fragment) {\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, treePath)\n );\n return;\n }\n invariant(\n element.type === Route,\n `[${typeof element.type === \"string\" ? element.type : element.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n let route = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n middleware: element.props.middleware,\n loader: element.props.loader,\n action: element.props.action,\n hydrateFallbackElement: element.props.hydrateFallbackElement,\n HydrateFallback: element.props.HydrateFallback,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary: element.props.hasErrorBoundary === true || element.props.ErrorBoundary != null || element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy\n };\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n routes.push(route);\n });\n return routes;\n}\nvar createRoutesFromElements = createRoutesFromChildren;\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\nfunction useRouteComponentProps() {\n return {\n params: useParams(),\n loaderData: useLoaderData(),\n actionData: useActionData(),\n matches: useMatches()\n };\n}\nfunction WithComponentProps({\n children\n}) {\n const props = useRouteComponentProps();\n return React3.cloneElement(children, props);\n}\nfunction withComponentProps(Component4) {\n return function WithComponentProps2() {\n const props = useRouteComponentProps();\n return React3.createElement(Component4, props);\n };\n}\nfunction useHydrateFallbackProps() {\n return {\n params: useParams(),\n loaderData: useLoaderData(),\n actionData: useActionData()\n };\n}\nfunction WithHydrateFallbackProps({\n children\n}) {\n const props = useHydrateFallbackProps();\n return React3.cloneElement(children, props);\n}\nfunction withHydrateFallbackProps(HydrateFallback) {\n return function WithHydrateFallbackProps2() {\n const props = useHydrateFallbackProps();\n return React3.createElement(HydrateFallback, props);\n };\n}\nfunction useErrorBoundaryProps() {\n return {\n params: useParams(),\n loaderData: useLoaderData(),\n actionData: useActionData(),\n error: useRouteError()\n };\n}\nfunction WithErrorBoundaryProps({\n children\n}) {\n const props = useErrorBoundaryProps();\n return React3.cloneElement(children, props);\n}\nfunction withErrorBoundaryProps(ErrorBoundary) {\n return function WithErrorBoundaryProps2() {\n const props = useErrorBoundaryProps();\n return React3.createElement(ErrorBoundary, props);\n };\n}\n\n// lib/dom/dom.ts\nvar defaultMethod = \"get\";\nvar defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return typeof HTMLElement !== \"undefined\" && object instanceof HTMLElement;\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event);\n}\nfunction createSearchParams(init = \"\") {\n return new URLSearchParams(\n typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo2, key) => {\n let value = init[key];\n return memo2.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [])\n );\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\nvar _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nvar supportedFormEncTypes = /* @__PURE__ */ new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\"\n]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` and will default to \"${defaultEncType}\"`\n );\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(form, target);\n if (!isFormDataSubmitterSupported()) {\n let { name, type, value } = target;\n if (type === \"image\") {\n let prefix = name ? `${name}.` : \"\";\n formData.append(`${prefix}x`, \"0\");\n formData.append(`${prefix}y`, \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or <input type=\"submit|image\">`\n );\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = void 0;\n }\n return { action, method: method.toLowerCase(), encType, formData, body };\n}\n\n// lib/dom/ssr/single-fetch.tsx\nimport * as React4 from \"react\";\n\n// vendor/turbo-stream-v2/utils.ts\nvar HOLE = -1;\nvar NAN = -2;\nvar NEGATIVE_INFINITY = -3;\nvar NEGATIVE_ZERO = -4;\nvar NULL = -5;\nvar POSITIVE_INFINITY = -6;\nvar UNDEFINED = -7;\nvar TYPE_BIGINT = \"B\";\nvar TYPE_DATE = \"D\";\nvar TYPE_ERROR = \"E\";\nvar TYPE_MAP = \"M\";\nvar TYPE_NULL_OBJECT = \"N\";\nvar TYPE_PROMISE = \"P\";\nvar TYPE_REGEXP = \"R\";\nvar TYPE_SET = \"S\";\nvar TYPE_SYMBOL = \"Y\";\nvar TYPE_URL = \"U\";\nvar TYPE_PREVIOUS_RESOLVED = \"Z\";\nvar Deferred2 = class {\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n};\nfunction createLineSplittingTransform() {\n const decoder = new TextDecoder();\n let leftover = \"\";\n return new TransformStream({\n transform(chunk, controller) {\n const str = decoder.decode(chunk, { stream: true });\n const parts = (leftover + str).split(\"\\n\");\n leftover = parts.pop() || \"\";\n for (const part of parts) {\n controller.enqueue(part);\n }\n },\n flush(controller) {\n if (leftover) {\n controller.enqueue(leftover);\n }\n }\n });\n}\n\n// vendor/turbo-stream-v2/flatten.ts\nfunction flatten(input) {\n const { indices } = this;\n const existing = indices.get(input);\n if (existing) return [existing];\n if (input === void 0) return UNDEFINED;\n if (input === null) return NULL;\n if (Number.isNaN(input)) return NAN;\n if (input === Number.POSITIVE_INFINITY) return POSITIVE_INFINITY;\n if (input === Number.NEGATIVE_INFINITY) return NEGATIVE_INFINITY;\n if (input === 0 && 1 / input < 0) return NEGATIVE_ZERO;\n const index = this.index++;\n indices.set(input, index);\n stringify.call(this, input, index);\n return index;\n}\nfunction stringify(input, index) {\n const { deferred, plugins, postPlugins } = this;\n const str = this.stringified;\n const stack = [[input, index]];\n while (stack.length > 0) {\n const [input2, index2] = stack.pop();\n const partsForObj = (obj) => Object.keys(obj).map((k) => `\"_${flatten.call(this, k)}\":${flatten.call(this, obj[k])}`).join(\",\");\n let error = null;\n switch (typeof input2) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n str[index2] = JSON.stringify(input2);\n break;\n case \"bigint\":\n str[index2] = `[\"${TYPE_BIGINT}\",\"${input2}\"]`;\n break;\n case \"symbol\": {\n const keyFor = Symbol.keyFor(input2);\n if (!keyFor) {\n error = new Error(\n \"Cannot encode symbol unless created with Symbol.for()\"\n );\n } else {\n str[index2] = `[\"${TYPE_SYMBOL}\",${JSON.stringify(keyFor)}]`;\n }\n break;\n }\n case \"object\": {\n if (!input2) {\n str[index2] = `${NULL}`;\n break;\n }\n const isArray = Array.isArray(input2);\n let pluginHandled = false;\n if (!isArray && plugins) {\n for (const plugin of plugins) {\n const pluginResult = plugin(input2);\n if (Array.isArray(pluginResult)) {\n pluginHandled = true;\n const [pluginIdentifier, ...rest] = pluginResult;\n str[index2] = `[${JSON.stringify(pluginIdentifier)}`;\n if (rest.length > 0) {\n str[index2] += `,${rest.map((v) => flatten.call(this, v)).join(\",\")}`;\n }\n str[index2] += \"]\";\n break;\n }\n }\n }\n if (!pluginHandled) {\n let result = isArray ? \"[\" : \"{\";\n if (isArray) {\n for (let i = 0; i < input2.length; i++)\n result += (i ? \",\" : \"\") + (i in input2 ? flatten.call(this, input2[i]) : HOLE);\n str[index2] = `${result}]`;\n } else if (input2 instanceof Date) {\n const dateTime = input2.getTime();\n str[index2] = `[\"${TYPE_DATE}\",${Number.isNaN(dateTime) ? JSON.stringify(\"invalid\") : dateTime}]`;\n } else if (input2 instanceof URL) {\n str[index2] = `[\"${TYPE_URL}\",${JSON.stringify(input2.href)}]`;\n } else if (input2 instanceof RegExp) {\n str[index2] = `[\"${TYPE_REGEXP}\",${JSON.stringify(\n input2.source\n )},${JSON.stringify(input2.flags)}]`;\n } else if (input2 instanceof Set) {\n if (input2.size > 0) {\n str[index2] = `[\"${TYPE_SET}\",${[...input2].map((val) => flatten.call(this, val)).join(\",\")}]`;\n } else {\n str[index2] = `[\"${TYPE_SET}\"]`;\n }\n } else if (input2 instanceof Map) {\n if (input2.size > 0) {\n str[index2] = `[\"${TYPE_MAP}\",${[...input2].flatMap(([k, v]) => [\n flatten.call(this, k),\n flatten.call(this, v)\n ]).join(\",\")}]`;\n } else {\n str[index2] = `[\"${TYPE_MAP}\"]`;\n }\n } else if (input2 instanceof Promise) {\n str[index2] = `[\"${TYPE_PROMISE}\",${index2}]`;\n deferred[index2] = input2;\n } else if (input2 instanceof Error) {\n str[index2] = `[\"${TYPE_ERROR}\",${JSON.stringify(input2.message)}`;\n if (input2.name !== \"Error\") {\n str[index2] += `,${JSON.stringify(input2.name)}`;\n }\n str[index2] += \"]\";\n } else if (Object.getPrototypeOf(input2) === null) {\n str[index2] = `[\"${TYPE_NULL_OBJECT}\",{${partsForObj(input2)}}]`;\n } else if (isPlainObject2(input2)) {\n str[index2] = `{${partsForObj(input2)}}`;\n } else {\n error = new Error(\"Cannot encode object with prototype\");\n }\n }\n break;\n }\n default: {\n const isArray = Array.isArray(input2);\n let pluginHandled = false;\n if (!isArray && plugins) {\n for (const plugin of plugins) {\n const pluginResult = plugin(input2);\n if (Array.isArray(pluginResult)) {\n pluginHandled = true;\n const [pluginIdentifier, ...rest] = pluginResult;\n str[index2] = `[${JSON.stringify(pluginIdentifier)}`;\n if (rest.length > 0) {\n str[index2] += `,${rest.map((v) => flatten.call(this, v)).join(\",\")}`;\n }\n str[index2] += \"]\";\n break;\n }\n }\n }\n if (!pluginHandled) {\n error = new Error(\"Cannot encode function or unexpected type\");\n }\n }\n }\n if (error) {\n let pluginHandled = false;\n if (postPlugins) {\n for (const plugin of postPlugins) {\n const pluginResult = plugin(input2);\n if (Array.isArray(pluginResult)) {\n pluginHandled = true;\n const [pluginIdentifier, ...rest] = pluginResult;\n str[index2] = `[${JSON.stringify(pluginIdentifier)}`;\n if (rest.length > 0) {\n str[index2] += `,${rest.map((v) => flatten.call(this, v)).join(\",\")}`;\n }\n str[index2] += \"]\";\n break;\n }\n }\n }\n if (!pluginHandled) {\n throw error;\n }\n }\n }\n}\nvar objectProtoNames2 = Object.getOwnPropertyNames(Object.prototype).sort().join(\"\\0\");\nfunction isPlainObject2(thing) {\n const proto = Object.getPrototypeOf(thing);\n return proto === Object.prototype || proto === null || Object.getOwnPropertyNames(proto).sort().join(\"\\0\") === objectProtoNames2;\n}\n\n// vendor/turbo-stream-v2/unflatten.ts\nvar globalObj = typeof window !== \"undefined\" ? window : typeof globalThis !== \"undefined\" ? globalThis : void 0;\nfunction unflatten(parsed) {\n const { hydrated, values } = this;\n if (typeof parsed === \"number\") return hydrate.call(this, parsed);\n if (!Array.isArray(parsed) || !parsed.length) throw new SyntaxError();\n const startIndex = values.length;\n for (const value of parsed) {\n values.push(value);\n }\n hydrated.length = values.length;\n return hydrate.call(this, startIndex);\n}\nfunction hydrate(index) {\n const { hydrated, values, deferred, plugins } = this;\n let result;\n const stack = [\n [\n index,\n (v) => {\n result = v;\n }\n ]\n ];\n let postRun = [];\n while (stack.length > 0) {\n const [index2, set] = stack.pop();\n switch (index2) {\n case UNDEFINED:\n set(void 0);\n continue;\n case NULL:\n set(null);\n continue;\n case NAN:\n set(NaN);\n continue;\n case POSITIVE_INFINITY:\n set(Infinity);\n continue;\n case NEGATIVE_INFINITY:\n set(-Infinity);\n continue;\n case NEGATIVE_ZERO:\n set(-0);\n continue;\n }\n if (hydrated[index2]) {\n set(hydrated[index2]);\n continue;\n }\n const value = values[index2];\n if (!value || typeof value !== \"object\") {\n hydrated[index2] = value;\n set(value);\n continue;\n }\n if (Array.isArray(value)) {\n if (typeof value[0] === \"string\") {\n const [type, b, c] = value;\n switch (type) {\n case TYPE_DATE:\n set(hydrated[index2] = new Date(b));\n continue;\n case TYPE_URL:\n set(hydrated[index2] = new URL(b));\n continue;\n case TYPE_BIGINT:\n set(hydrated[index2] = BigInt(b));\n continue;\n case TYPE_REGEXP:\n set(hydrated[index2] = new RegExp(b, c));\n continue;\n case TYPE_SYMBOL:\n set(hydrated[index2] = Symbol.for(b));\n continue;\n case TYPE_SET:\n const newSet = /* @__PURE__ */ new Set();\n hydrated[index2] = newSet;\n for (let i = value.length - 1; i > 0; i--)\n stack.push([\n value[i],\n (v) => {\n newSet.add(v);\n }\n ]);\n set(newSet);\n continue;\n case TYPE_MAP:\n const map = /* @__PURE__ */ new Map();\n hydrated[index2] = map;\n for (let i = value.length - 2; i > 0; i -= 2) {\n const r = [];\n stack.push([\n value[i + 1],\n (v) => {\n r[1] = v;\n }\n ]);\n stack.push([\n value[i],\n (k) => {\n r[0] = k;\n }\n ]);\n postRun.push(() => {\n map.set(r[0], r[1]);\n });\n }\n set(map);\n continue;\n case TYPE_NULL_OBJECT:\n const obj = /* @__PURE__ */ Object.create(null);\n hydrated[index2] = obj;\n for (const key of Object.keys(b).reverse()) {\n const r = [];\n stack.push([\n b[key],\n (v) => {\n r[1] = v;\n }\n ]);\n stack.push([\n Number(key.slice(1)),\n (k) => {\n r[0] = k;\n }\n ]);\n postRun.push(() => {\n obj[r[0]] = r[1];\n });\n }\n set(obj);\n continue;\n case TYPE_PROMISE:\n if (hydrated[b]) {\n set(hydrated[index2] = hydrated[b]);\n } else {\n const d = new Deferred2();\n deferred[b] = d;\n set(hydrated[index2] = d.promise);\n }\n continue;\n case TYPE_ERROR:\n const [, message, errorType] = value;\n let error = errorType && globalObj && globalObj[errorType] ? new globalObj[errorType](message) : new Error(message);\n hydrated[index2] = error;\n set(error);\n continue;\n case TYPE_PREVIOUS_RESOLVED:\n set(hydrated[index2] = hydrated[b]);\n continue;\n default:\n if (Array.isArray(plugins)) {\n const r = [];\n const vals = value.slice(1);\n for (let i = 0; i < vals.length; i++) {\n const v = vals[i];\n stack.push([\n v,\n (v2) => {\n r[i] = v2;\n }\n ]);\n }\n postRun.push(() => {\n for (const plugin of plugins) {\n const result2 = plugin(value[0], ...r);\n if (result2) {\n set(hydrated[index2] = result2.value);\n return;\n }\n }\n throw new SyntaxError();\n });\n continue;\n }\n throw new SyntaxError();\n }\n } else {\n const array = [];\n hydrated[index2] = array;\n for (let i = 0; i < value.length; i++) {\n const n = value[i];\n if (n !== HOLE) {\n stack.push([\n n,\n (v) => {\n array[i] = v;\n }\n ]);\n }\n }\n set(array);\n continue;\n }\n } else {\n const object = {};\n hydrated[index2] = object;\n for (const key of Object.keys(value).reverse()) {\n const r = [];\n stack.push([\n value[key],\n (v) => {\n r[1] = v;\n }\n ]);\n stack.push([\n Number(key.slice(1)),\n (k) => {\n r[0] = k;\n }\n ]);\n postRun.push(() => {\n object[r[0]] = r[1];\n });\n }\n set(object);\n continue;\n }\n }\n while (postRun.length > 0) {\n postRun.pop()();\n }\n return result;\n}\n\n// vendor/turbo-stream-v2/turbo-stream.ts\nasync function decode(readable, options) {\n const { plugins } = options ?? {};\n const done = new Deferred2();\n const reader = readable.pipeThrough(createLineSplittingTransform()).getReader();\n const decoder = {\n values: [],\n hydrated: [],\n deferred: {},\n plugins\n };\n const decoded = await decodeInitial.call(decoder, reader);\n let donePromise = done.promise;\n if (decoded.done) {\n done.resolve();\n } else {\n donePromise = decodeDeferred.call(decoder, reader).then(done.resolve).catch((reason) => {\n for (const deferred of Object.values(decoder.deferred)) {\n deferred.reject(reason);\n }\n done.reject(reason);\n });\n }\n return {\n done: donePromise.then(() => reader.closed),\n value: decoded.value\n };\n}\nasync function decodeInitial(reader) {\n const read = await reader.read();\n if (!read.value) {\n throw new SyntaxError();\n }\n let line;\n try {\n line = JSON.parse(read.value);\n } catch (reason) {\n throw new SyntaxError();\n }\n return {\n done: read.done,\n value: unflatten.call(this, line)\n };\n}\nasync function decodeDeferred(reader) {\n let read = await reader.read();\n while (!read.done) {\n if (!read.value) continue;\n const line = read.value;\n switch (line[0]) {\n case TYPE_PROMISE: {\n const colonIndex = line.indexOf(\":\");\n const deferredId = Number(line.slice(1, colonIndex));\n const deferred = this.deferred[deferredId];\n if (!deferred) {\n throw new Error(`Deferred ID ${deferredId} not found in stream`);\n }\n const lineData = line.slice(colonIndex + 1);\n let jsonLine;\n try {\n jsonLine = JSON.parse(lineData);\n } catch (reason) {\n throw new SyntaxError();\n }\n const value = unflatten.call(this, jsonLine);\n deferred.resolve(value);\n break;\n }\n case TYPE_ERROR: {\n const colonIndex = line.indexOf(\":\");\n const deferredId = Number(line.slice(1, colonIndex));\n const deferred = this.deferred[deferredId];\n if (!deferred) {\n throw new Error(`Deferred ID ${deferredId} not found in stream`);\n }\n const lineData = line.slice(colonIndex + 1);\n let jsonLine;\n try {\n jsonLine = JSON.parse(lineData);\n } catch (reason) {\n throw new SyntaxError();\n }\n const value = unflatten.call(this, jsonLine);\n deferred.reject(value);\n break;\n }\n default:\n throw new SyntaxError();\n }\n read = await reader.read();\n }\n}\nfunction encode(input, options) {\n const { plugins, postPlugins, signal } = options ?? {};\n const encoder = {\n deferred: {},\n index: 0,\n indices: /* @__PURE__ */ new Map(),\n stringified: [],\n plugins,\n postPlugins,\n signal\n };\n const textEncoder = new TextEncoder();\n let lastSentIndex = 0;\n const readable = new ReadableStream({\n async start(controller) {\n const id = flatten.call(encoder, input);\n if (Array.isArray(id)) {\n throw new Error(\"This should never happen\");\n }\n if (id < 0) {\n controller.enqueue(textEncoder.encode(`${id}\n`));\n } else {\n controller.enqueue(\n textEncoder.encode(`[${encoder.stringified.join(\",\")}]\n`)\n );\n lastSentIndex = encoder.stringified.length - 1;\n }\n const seenPromises = /* @__PURE__ */ new WeakSet();\n if (Object.keys(encoder.deferred).length) {\n let raceDone;\n const racePromise = new Promise((resolve, reject) => {\n raceDone = resolve;\n if (signal) {\n const rejectPromise = () => reject(signal.reason || new Error(\"Signal was aborted.\"));\n if (signal.aborted) {\n rejectPromise();\n } else {\n signal.addEventListener(\"abort\", (event) => {\n rejectPromise();\n });\n }\n }\n });\n while (Object.keys(encoder.deferred).length > 0) {\n for (const [deferredId, deferred] of Object.entries(\n encoder.deferred\n )) {\n if (seenPromises.has(deferred)) continue;\n seenPromises.add(\n // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>\n encoder.deferred[Number(deferredId)] = Promise.race([\n racePromise,\n deferred\n ]).then(\n (resolved) => {\n const id2 = flatten.call(encoder, resolved);\n if (Array.isArray(id2)) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_PROMISE}${deferredId}:[[\"${TYPE_PREVIOUS_RESOLVED}\",${id2[0]}]]\n`\n )\n );\n encoder.index++;\n lastSentIndex++;\n } else if (id2 < 0) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_PROMISE}${deferredId}:${id2}\n`\n )\n );\n } else {\n const values = encoder.stringified.slice(lastSentIndex + 1).join(\",\");\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_PROMISE}${deferredId}:[${values}]\n`\n )\n );\n lastSentIndex = encoder.stringified.length - 1;\n }\n },\n (reason) => {\n if (!reason || typeof reason !== \"object\" || !(reason instanceof Error)) {\n reason = new Error(\"An unknown error occurred\");\n }\n const id2 = flatten.call(encoder, reason);\n if (Array.isArray(id2)) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_ERROR}${deferredId}:[[\"${TYPE_PREVIOUS_RESOLVED}\",${id2[0]}]]\n`\n )\n );\n encoder.index++;\n lastSentIndex++;\n } else if (id2 < 0) {\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_ERROR}${deferredId}:${id2}\n`\n )\n );\n } else {\n const values = encoder.stringified.slice(lastSentIndex + 1).join(\",\");\n controller.enqueue(\n textEncoder.encode(\n `${TYPE_ERROR}${deferredId}:[${values}]\n`\n )\n );\n lastSentIndex = encoder.stringified.length - 1;\n }\n }\n ).finally(() => {\n delete encoder.deferred[Number(deferredId)];\n })\n );\n }\n await Promise.race(Object.values(encoder.deferred));\n }\n raceDone();\n }\n await Promise.all(Object.values(encoder.deferred));\n controller.close();\n }\n });\n return readable;\n}\n\n// lib/dom/ssr/data.ts\nasync function createRequestInit(request) {\n let init = { signal: request.signal };\n if (request.method !== \"GET\") {\n init.method = request.method;\n let contentType = request.headers.get(\"Content-Type\");\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n init.headers = { \"Content-Type\": contentType };\n init.body = JSON.stringify(await request.json());\n } else if (contentType && /\\btext\\/plain\\b/.test(contentType)) {\n init.headers = { \"Content-Type\": contentType };\n init.body = await request.text();\n } else if (contentType && /\\bapplication\\/x-www-form-urlencoded\\b/.test(contentType)) {\n init.body = new URLSearchParams(await request.text());\n } else {\n init.body = await request.formData();\n }\n }\n return init;\n}\n\n// lib/dom/ssr/markup.ts\nvar ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n return html.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);\n}\n\n// lib/dom/ssr/invariant.ts\nfunction invariant2(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\n// lib/dom/ssr/single-fetch.tsx\nvar SingleFetchRedirectSymbol = Symbol(\"SingleFetchRedirect\");\nvar SingleFetchNoResultError = class extends Error {\n};\nvar SINGLE_FETCH_REDIRECT_STATUS = 202;\nvar NO_BODY_STATUS_CODES = /* @__PURE__ */ new Set([100, 101, 204, 205]);\nfunction StreamTransfer({\n context,\n identifier,\n reader,\n textDecoder,\n nonce\n}) {\n if (!context.renderMeta || !context.renderMeta.didRenderScripts) {\n return null;\n }\n if (!context.renderMeta.streamCache) {\n context.renderMeta.streamCache = {};\n }\n let { streamCache } = context.renderMeta;\n let promise = streamCache[identifier];\n if (!promise) {\n promise = streamCache[identifier] = reader.read().then((result) => {\n streamCache[identifier].result = {\n done: result.done,\n value: textDecoder.decode(result.value, { stream: true })\n };\n }).catch((e) => {\n streamCache[identifier].error = e;\n });\n }\n if (promise.error) {\n throw promise.error;\n }\n if (promise.result === void 0) {\n throw promise;\n }\n let { done, value } = promise.result;\n let scriptTag = value ? /* @__PURE__ */ React4.createElement(\n \"script\",\n {\n nonce,\n dangerouslySetInnerHTML: {\n __html: `window.__reactRouterContext.streamController.enqueue(${escapeHtml(\n JSON.stringify(value)\n )});`\n }\n }\n ) : null;\n if (done) {\n return /* @__PURE__ */ React4.createElement(React4.Fragment, null, scriptTag, /* @__PURE__ */ React4.createElement(\n \"script\",\n {\n nonce,\n dangerouslySetInnerHTML: {\n __html: `window.__reactRouterContext.streamController.close();`\n }\n }\n ));\n } else {\n return /* @__PURE__ */ React4.createElement(React4.Fragment, null, scriptTag, /* @__PURE__ */ React4.createElement(React4.Suspense, null, /* @__PURE__ */ React4.createElement(\n StreamTransfer,\n {\n context,\n identifier: identifier + 1,\n reader,\n textDecoder,\n nonce\n }\n )));\n }\n}\nfunction getTurboStreamSingleFetchDataStrategy(getRouter, manifest, routeModules, ssr, basename, trailingSlashAware) {\n let dataStrategy = getSingleFetchDataStrategyImpl(\n getRouter,\n (match) => {\n let manifestRoute = manifest.routes[match.route.id];\n invariant2(manifestRoute, \"Route not found in manifest\");\n let routeModule = routeModules[match.route.id];\n return {\n hasLoader: manifestRoute.hasLoader,\n hasClientLoader: manifestRoute.hasClientLoader,\n hasShouldRevalidate: Boolean(routeModule?.shouldRevalidate)\n };\n },\n fetchAndDecodeViaTurboStream,\n ssr,\n basename,\n trailingSlashAware\n );\n return async (args) => args.runClientMiddleware(dataStrategy);\n}\nfunction getSingleFetchDataStrategyImpl(getRouter, getRouteInfo, fetchAndDecode, ssr, basename, trailingSlashAware, shouldAllowOptOut = () => true) {\n return async (args) => {\n let { request, matches, fetcherKey } = args;\n let router = getRouter();\n if (request.method !== \"GET\") {\n return singleFetchActionStrategy(\n args,\n fetchAndDecode,\n basename,\n trailingSlashAware\n );\n }\n let foundRevalidatingServerLoader = matches.some((m) => {\n let { hasLoader, hasClientLoader } = getRouteInfo(m);\n return m.shouldCallHandler() && hasLoader && !hasClientLoader;\n });\n if (!ssr && !foundRevalidatingServerLoader) {\n return nonSsrStrategy(\n args,\n getRouteInfo,\n fetchAndDecode,\n basename,\n trailingSlashAware\n );\n }\n if (fetcherKey) {\n return singleFetchLoaderFetcherStrategy(\n args,\n fetchAndDecode,\n basename,\n trailingSlashAware\n );\n }\n return singleFetchLoaderNavigationStrategy(\n args,\n router,\n getRouteInfo,\n fetchAndDecode,\n ssr,\n basename,\n trailingSlashAware,\n shouldAllowOptOut\n );\n };\n}\nasync function singleFetchActionStrategy(args, fetchAndDecode, basename, trailingSlashAware) {\n let actionMatch = args.matches.find((m) => m.shouldCallHandler());\n invariant2(actionMatch, \"No action match found\");\n let actionStatus = void 0;\n let result = await actionMatch.resolve(async (handler) => {\n let result2 = await handler(async () => {\n let { data: data2, status } = await fetchAndDecode(\n args,\n basename,\n trailingSlashAware,\n [actionMatch.route.id]\n );\n actionStatus = status;\n return unwrapSingleFetchResult(data2, actionMatch.route.id);\n });\n return result2;\n });\n if (isResponse(result.result) || isRouteErrorResponse(result.result) || isDataWithResponseInit(result.result)) {\n return { [actionMatch.route.id]: result };\n }\n return {\n [actionMatch.route.id]: {\n type: result.type,\n result: data(result.result, actionStatus)\n }\n };\n}\nasync function nonSsrStrategy(args, getRouteInfo, fetchAndDecode, basename, trailingSlashAware) {\n let matchesToLoad = args.matches.filter((m) => m.shouldCallHandler());\n let results = {};\n await Promise.all(\n matchesToLoad.map(\n (m) => m.resolve(async (handler) => {\n try {\n let { hasClientLoader } = getRouteInfo(m);\n let routeId = m.route.id;\n let result = hasClientLoader ? await handler(async () => {\n let { data: data2 } = await fetchAndDecode(\n args,\n basename,\n trailingSlashAware,\n [routeId]\n );\n return unwrapSingleFetchResult(data2, routeId);\n }) : await handler();\n results[m.route.id] = { type: \"data\", result };\n } catch (e) {\n results[m.route.id] = { type: \"error\", result: e };\n }\n })\n )\n );\n return results;\n}\nasync function singleFetchLoaderNavigationStrategy(args, router, getRouteInfo, fetchAndDecode, ssr, basename, trailingSlashAware, shouldAllowOptOut = () => true) {\n let routesParams = /* @__PURE__ */ new Set();\n let foundOptOutRoute = false;\n let routeDfds = args.matches.map(() => createDeferred2());\n let singleFetchDfd = createDeferred2();\n let results = {};\n let resolvePromise = Promise.all(\n args.matches.map(\n async (m, i) => m.resolve(async (handler) => {\n routeDfds[i].resolve();\n let routeId = m.route.id;\n let { hasLoader, hasClientLoader, hasShouldRevalidate } = getRouteInfo(m);\n let defaultShouldRevalidate = !m.shouldRevalidateArgs || m.shouldRevalidateArgs.actionStatus == null || m.shouldRevalidateArgs.actionStatus < 400;\n let shouldCall = m.shouldCallHandler(defaultShouldRevalidate);\n if (!shouldCall) {\n foundOptOutRoute || (foundOptOutRoute = m.shouldRevalidateArgs != null && // This is a revalidation,\n hasLoader && // for a route with a server loader,\n hasShouldRevalidate === true);\n return;\n }\n if (shouldAllowOptOut(m) && hasClientLoader) {\n if (hasLoader) {\n foundOptOutRoute = true;\n }\n try {\n let result = await handler(async () => {\n let { data: data2 } = await fetchAndDecode(\n args,\n basename,\n trailingSlashAware,\n [routeId]\n );\n return unwrapSingleFetchResult(data2, routeId);\n });\n results[routeId] = { type: \"data\", result };\n } catch (e) {\n results[routeId] = { type: \"error\", result: e };\n }\n return;\n }\n if (hasLoader) {\n routesParams.add(routeId);\n }\n try {\n let result = await handler(async () => {\n let data2 = await singleFetchDfd.promise;\n return unwrapSingleFetchResult(data2, routeId);\n });\n results[routeId] = { type: \"data\", result };\n } catch (e) {\n results[routeId] = { type: \"error\", result: e };\n }\n })\n )\n );\n await Promise.all(routeDfds.map((d) => d.promise));\n let isInitialLoad = !router.state.initialized && router.state.navigation.state === \"idle\";\n if ((isInitialLoad || routesParams.size === 0) && !window.__reactRouterHdrActive) {\n singleFetchDfd.resolve({ routes: {} });\n } else {\n let targetRoutes = ssr && foundOptOutRoute && routesParams.size > 0 ? [...routesParams.keys()] : void 0;\n try {\n let data2 = await fetchAndDecode(\n args,\n basename,\n trailingSlashAware,\n targetRoutes\n );\n singleFetchDfd.resolve(data2.data);\n } catch (e) {\n singleFetchDfd.reject(e);\n }\n }\n await resolvePromise;\n await bubbleMiddlewareErrors(\n singleFetchDfd.promise,\n args.matches,\n routesParams,\n results\n );\n return results;\n}\nasync function bubbleMiddlewareErrors(singleFetchPromise, matches, routesParams, results) {\n try {\n let middlewareError;\n let fetchedData = await singleFetchPromise;\n if (\"routes\" in fetchedData) {\n for (let match of matches) {\n if (match.route.id in fetchedData.routes) {\n let routeResult = fetchedData.routes[match.route.id];\n if (\"error\" in routeResult) {\n middlewareError = routeResult.error;\n if (results[match.route.id]?.result == null) {\n results[match.route.id] = {\n type: \"error\",\n result: middlewareError\n };\n }\n break;\n }\n }\n }\n }\n if (middlewareError !== void 0) {\n Array.from(routesParams.values()).forEach((routeId) => {\n if (results[routeId].result instanceof SingleFetchNoResultError) {\n results[routeId].result = middlewareError;\n }\n });\n }\n } catch (e) {\n }\n}\nasync function singleFetchLoaderFetcherStrategy(args, fetchAndDecode, basename, trailingSlashAware) {\n let fetcherMatch = args.matches.find((m) => m.shouldCallHandler());\n invariant2(fetcherMatch, \"No fetcher match found\");\n let routeId = fetcherMatch.route.id;\n let result = await fetcherMatch.resolve(\n async (handler) => handler(async () => {\n let { data: data2 } = await fetchAndDecode(args, basename, trailingSlashAware, [\n routeId\n ]);\n return unwrapSingleFetchResult(data2, routeId);\n })\n );\n return { [fetcherMatch.route.id]: result };\n}\nfunction stripIndexParam(url) {\n let indexValues = url.searchParams.getAll(\"index\");\n url.searchParams.delete(\"index\");\n let indexValuesToKeep = [];\n for (let indexValue of indexValues) {\n if (indexValue) {\n indexValuesToKeep.push(indexValue);\n }\n }\n for (let toKeep of indexValuesToKeep) {\n url.searchParams.append(\"index\", toKeep);\n }\n return url;\n}\nfunction singleFetchUrl(reqUrl, basename, trailingSlashAware, extension) {\n let url = typeof reqUrl === \"string\" ? new URL(\n reqUrl,\n // This can be called during the SSR flow via PrefetchPageLinksImpl so\n // don't assume window is available\n typeof window === \"undefined\" ? \"server://singlefetch/\" : window.location.origin\n ) : reqUrl;\n if (trailingSlashAware) {\n if (url.pathname.endsWith(\"/\")) {\n url.pathname = `${url.pathname}_.${extension}`;\n } else {\n url.pathname = `${url.pathname}.${extension}`;\n }\n } else {\n if (url.pathname === \"/\") {\n url.pathname = `_root.${extension}`;\n } else if (basename && stripBasename(url.pathname, basename) === \"/\") {\n url.pathname = `${basename.replace(/\\/$/, \"\")}/_root.${extension}`;\n } else {\n url.pathname = `${url.pathname.replace(/\\/$/, \"\")}.${extension}`;\n }\n }\n return url;\n}\nasync function fetchAndDecodeViaTurboStream(args, basename, trailingSlashAware, targetRoutes) {\n let { request } = args;\n let url = singleFetchUrl(request.url, basename, trailingSlashAware, \"data\");\n if (request.method === \"GET\") {\n url = stripIndexParam(url);\n if (targetRoutes) {\n url.searchParams.set(\"_routes\", targetRoutes.join(\",\"));\n }\n }\n let res = await fetch(url, await createRequestInit(request));\n if (res.status >= 400 && !res.headers.has(\"X-Remix-Response\")) {\n throw new ErrorResponseImpl(res.status, res.statusText, await res.text());\n }\n if (res.status === 204 && res.headers.has(\"X-Remix-Redirect\")) {\n return {\n status: SINGLE_FETCH_REDIRECT_STATUS,\n data: {\n redirect: {\n redirect: res.headers.get(\"X-Remix-Redirect\"),\n status: Number(res.headers.get(\"X-Remix-Status\") || \"302\"),\n revalidate: res.headers.get(\"X-Remix-Revalidate\") === \"true\",\n reload: res.headers.get(\"X-Remix-Reload-Document\") === \"true\",\n replace: res.headers.get(\"X-Remix-Replace\") === \"true\"\n }\n }\n };\n }\n if (NO_BODY_STATUS_CODES.has(res.status)) {\n let routes = {};\n if (targetRoutes && request.method !== \"GET\") {\n routes[targetRoutes[0]] = { data: void 0 };\n }\n return {\n status: res.status,\n data: { routes }\n };\n }\n invariant2(res.body, \"No response body to decode\");\n try {\n let decoded = await decodeViaTurboStream(res.body, window);\n let data2;\n if (request.method === \"GET\") {\n let typed = decoded.value;\n if (SingleFetchRedirectSymbol in typed) {\n data2 = { redirect: typed[SingleFetchRedirectSymbol] };\n } else {\n data2 = { routes: typed };\n }\n } else {\n let typed = decoded.value;\n let routeId = targetRoutes?.[0];\n invariant2(routeId, \"No routeId found for single fetch call decoding\");\n if (\"redirect\" in typed) {\n data2 = { redirect: typed };\n } else {\n data2 = { routes: { [routeId]: typed } };\n }\n }\n return { status: res.status, data: data2 };\n } catch (e) {\n throw new Error(\"Unable to decode turbo-stream response\");\n }\n}\nfunction decodeViaTurboStream(body, global) {\n return decode(body, {\n plugins: [\n (type, ...rest) => {\n if (type === \"SanitizedError\") {\n let [name, message, stack] = rest;\n let Constructor = Error;\n if (name && name in global && typeof global[name] === \"function\") {\n Constructor = global[name];\n }\n let error = new Constructor(message);\n error.stack = stack;\n return { value: error };\n }\n if (type === \"ErrorResponse\") {\n let [data2, status, statusText] = rest;\n return {\n value: new ErrorResponseImpl(status, statusText, data2)\n };\n }\n if (type === \"SingleFetchRedirect\") {\n return { value: { [SingleFetchRedirectSymbol]: rest[0] } };\n }\n if (type === \"SingleFetchClassInstance\") {\n return { value: rest[0] };\n }\n if (type === \"SingleFetchFallback\") {\n return { value: void 0 };\n }\n }\n ]\n });\n}\nfunction unwrapSingleFetchResult(result, routeId) {\n if (\"redirect\" in result) {\n let {\n redirect: location,\n revalidate,\n reload,\n replace: replace2,\n status\n } = result.redirect;\n throw redirect(location, {\n status,\n headers: {\n // Three R's of redirecting (lol Veep)\n ...revalidate ? { \"X-Remix-Revalidate\": \"yes\" } : null,\n ...reload ? { \"X-Remix-Reload-Document\": \"yes\" } : null,\n ...replace2 ? { \"X-Remix-Replace\": \"yes\" } : null\n }\n });\n }\n let routeResult = result.routes[routeId];\n if (routeResult == null) {\n throw new SingleFetchNoResultError(\n `No result found for routeId \"${routeId}\"`\n );\n } else if (\"error\" in routeResult) {\n throw routeResult.error;\n } else if (\"data\" in routeResult) {\n return routeResult.data;\n } else {\n throw new Error(`Invalid response found for routeId \"${routeId}\"`);\n }\n}\nfunction createDeferred2() {\n let resolve;\n let reject;\n let promise = new Promise((res, rej) => {\n resolve = async (val) => {\n res(val);\n try {\n await promise;\n } catch (e) {\n }\n };\n reject = async (error) => {\n rej(error);\n try {\n await promise;\n } catch (e) {\n }\n };\n });\n return {\n promise,\n //@ts-ignore\n resolve,\n //@ts-ignore\n reject\n };\n}\n\n// lib/dom/ssr/errorBoundaries.tsx\nimport * as React9 from \"react\";\n\n// lib/dom/ssr/components.tsx\nimport * as React8 from \"react\";\n\n// lib/dom/ssr/routeModules.ts\nasync function loadRouteModule(route, routeModulesCache) {\n if (route.id in routeModulesCache) {\n return routeModulesCache[route.id];\n }\n try {\n let routeModule = await import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.module\n );\n routeModulesCache[route.id] = routeModule;\n return routeModule;\n } catch (error) {\n console.error(\n `Error loading route module \\`${route.module}\\`, reloading page...`\n );\n console.error(error);\n if (window.__reactRouterContext && window.__reactRouterContext.isSpaMode && // @ts-expect-error\n import.meta.hot) {\n throw error;\n }\n window.location.reload();\n return new Promise(() => {\n });\n }\n}\n\n// lib/dom/ssr/links.ts\nfunction getKeyedLinksForMatches(matches, routeModules, manifest) {\n let descriptors = matches.map((match) => {\n let module = routeModules[match.route.id];\n let route = manifest.routes[match.route.id];\n return [\n route && route.css ? route.css.map((href) => ({ rel: \"stylesheet\", href })) : [],\n module?.links?.() || []\n ];\n }).flat(2);\n let preloads = getModuleLinkHrefs(matches, manifest);\n return dedupeLinkDescriptors(descriptors, preloads);\n}\nfunction getRouteCssDescriptors(route) {\n if (!route.css) return [];\n return route.css.map((href) => ({ rel: \"stylesheet\", href }));\n}\nasync function prefetchRouteCss(route) {\n if (!route.css) return;\n let descriptors = getRouteCssDescriptors(route);\n await Promise.all(descriptors.map(prefetchStyleLink));\n}\nasync function prefetchStyleLinks(route, routeModule) {\n if (!route.css && !routeModule.links || !isPreloadSupported()) return;\n let descriptors = [];\n if (route.css) {\n descriptors.push(...getRouteCssDescriptors(route));\n }\n if (routeModule.links) {\n descriptors.push(...routeModule.links());\n }\n if (descriptors.length === 0) return;\n let styleLinks = [];\n for (let descriptor of descriptors) {\n if (!isPageLinkDescriptor(descriptor) && descriptor.rel === \"stylesheet\") {\n styleLinks.push({\n ...descriptor,\n rel: \"preload\",\n as: \"style\"\n });\n }\n }\n await Promise.all(styleLinks.map(prefetchStyleLink));\n}\nasync function prefetchStyleLink(descriptor) {\n return new Promise((resolve) => {\n if (descriptor.media && !window.matchMedia(descriptor.media).matches || document.querySelector(\n `link[rel=\"stylesheet\"][href=\"${descriptor.href}\"]`\n )) {\n return resolve();\n }\n let link = document.createElement(\"link\");\n Object.assign(link, descriptor);\n function removeLink() {\n if (document.head.contains(link)) {\n document.head.removeChild(link);\n }\n }\n link.onload = () => {\n removeLink();\n resolve();\n };\n link.onerror = () => {\n removeLink();\n resolve();\n };\n document.head.appendChild(link);\n });\n}\nfunction isPageLinkDescriptor(object) {\n return object != null && typeof object.page === \"string\";\n}\nfunction isHtmlLinkDescriptor(object) {\n if (object == null) {\n return false;\n }\n if (object.href == null) {\n return object.rel === \"preload\" && typeof object.imageSrcSet === \"string\" && typeof object.imageSizes === \"string\";\n }\n return typeof object.rel === \"string\" && typeof object.href === \"string\";\n}\nasync function getKeyedPrefetchLinks(matches, manifest, routeModules) {\n let links = await Promise.all(\n matches.map(async (match) => {\n let route = manifest.routes[match.route.id];\n if (route) {\n let mod = await loadRouteModule(route, routeModules);\n return mod.links ? mod.links() : [];\n }\n return [];\n })\n );\n return dedupeLinkDescriptors(\n links.flat(1).filter(isHtmlLinkDescriptor).filter((link) => link.rel === \"stylesheet\" || link.rel === \"preload\").map(\n (link) => link.rel === \"stylesheet\" ? { ...link, rel: \"prefetch\", as: \"style\" } : { ...link, rel: \"prefetch\" }\n )\n );\n}\nfunction getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, location, mode) {\n let isNew = (match, index) => {\n if (!currentMatches[index]) return true;\n return match.route.id !== currentMatches[index].route.id;\n };\n let matchPathChanged = (match, index) => {\n return (\n // param change, /users/123 -> /users/456\n currentMatches[index].pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentMatches[index].route.path?.endsWith(\"*\") && currentMatches[index].params[\"*\"] !== match.params[\"*\"]\n );\n };\n if (mode === \"assets\") {\n return nextMatches.filter(\n (match, index) => isNew(match, index) || matchPathChanged(match, index)\n );\n }\n if (mode === \"data\") {\n return nextMatches.filter((match, index) => {\n let manifestRoute = manifest.routes[match.route.id];\n if (!manifestRoute || !manifestRoute.hasLoader) {\n return false;\n }\n if (isNew(match, index) || matchPathChanged(match, index)) {\n return true;\n }\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate({\n currentUrl: new URL(\n location.pathname + location.search + location.hash,\n window.origin\n ),\n currentParams: currentMatches[0]?.params || {},\n nextUrl: new URL(page, window.origin),\n nextParams: match.params,\n defaultShouldRevalidate: true\n });\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return true;\n });\n }\n return [];\n}\nfunction getModuleLinkHrefs(matches, manifest, { includeHydrateFallback } = {}) {\n return dedupeHrefs(\n matches.map((match) => {\n let route = manifest.routes[match.route.id];\n if (!route) return [];\n let hrefs = [route.module];\n if (route.clientActionModule) {\n hrefs = hrefs.concat(route.clientActionModule);\n }\n if (route.clientLoaderModule) {\n hrefs = hrefs.concat(route.clientLoaderModule);\n }\n if (includeHydrateFallback && route.hydrateFallbackModule) {\n hrefs = hrefs.concat(route.hydrateFallbackModule);\n }\n if (route.imports) {\n hrefs = hrefs.concat(route.imports);\n }\n return hrefs;\n }).flat(1)\n );\n}\nfunction dedupeHrefs(hrefs) {\n return [...new Set(hrefs)];\n}\nfunction sortKeys(obj) {\n let sorted = {};\n let keys = Object.keys(obj).sort();\n for (let key of keys) {\n sorted[key] = obj[key];\n }\n return sorted;\n}\nfunction dedupeLinkDescriptors(descriptors, preloads) {\n let set = /* @__PURE__ */ new Set();\n let preloadsSet = new Set(preloads);\n return descriptors.reduce((deduped, descriptor) => {\n let alreadyModulePreload = preloads && !isPageLinkDescriptor(descriptor) && descriptor.as === \"script\" && descriptor.href && preloadsSet.has(descriptor.href);\n if (alreadyModulePreload) {\n return deduped;\n }\n let key = JSON.stringify(sortKeys(descriptor));\n if (!set.has(key)) {\n set.add(key);\n deduped.push({ key, link: descriptor });\n }\n return deduped;\n }, []);\n}\nvar _isPreloadSupported;\nfunction isPreloadSupported() {\n if (_isPreloadSupported !== void 0) {\n return _isPreloadSupported;\n }\n let el = document.createElement(\"link\");\n _isPreloadSupported = el.relList.supports(\"preload\");\n el = null;\n return _isPreloadSupported;\n}\n\n// lib/dom/ssr/fog-of-war.ts\nimport * as React7 from \"react\";\n\n// lib/dom/ssr/routes.tsx\nimport * as React6 from \"react\";\n\n// lib/dom/ssr/fallback.tsx\nimport * as React5 from \"react\";\nfunction RemixRootDefaultHydrateFallback() {\n return /* @__PURE__ */ React5.createElement(BoundaryShell, { title: \"Loading...\", renderScripts: true }, ENABLE_DEV_WARNINGS ? /* @__PURE__ */ React5.createElement(\n \"script\",\n {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this \" +\n \"when your app is loading JS modules and/or running \\`clientLoader\\` \" +\n \"functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback \" +\n \"for more information.\"\n );\n `\n }\n }\n ) : null);\n}\n\n// lib/dom/ssr/routes.tsx\nfunction groupRoutesByParentId(manifest) {\n let routes = {};\n Object.values(manifest).forEach((route) => {\n if (route) {\n let parentId = route.parentId || \"\";\n if (!routes[parentId]) {\n routes[parentId] = [];\n }\n routes[parentId].push(route);\n }\n });\n return routes;\n}\nfunction getRouteComponents(route, routeModule, isSpaMode) {\n let Component4 = getRouteModuleComponent(routeModule);\n let HydrateFallback = routeModule.HydrateFallback && (!isSpaMode || route.id === \"root\") ? routeModule.HydrateFallback : route.id === \"root\" ? RemixRootDefaultHydrateFallback : void 0;\n let ErrorBoundary = routeModule.ErrorBoundary ? routeModule.ErrorBoundary : route.id === \"root\" ? () => /* @__PURE__ */ React6.createElement(RemixRootDefaultErrorBoundary, { error: useRouteError() }) : void 0;\n if (route.id === \"root\" && routeModule.Layout) {\n return {\n ...Component4 ? {\n element: /* @__PURE__ */ React6.createElement(routeModule.Layout, null, /* @__PURE__ */ React6.createElement(Component4, null))\n } : { Component: Component4 },\n ...ErrorBoundary ? {\n errorElement: /* @__PURE__ */ React6.createElement(routeModule.Layout, null, /* @__PURE__ */ React6.createElement(ErrorBoundary, null))\n } : { ErrorBoundary },\n ...HydrateFallback ? {\n hydrateFallbackElement: /* @__PURE__ */ React6.createElement(routeModule.Layout, null, /* @__PURE__ */ React6.createElement(HydrateFallback, null))\n } : { HydrateFallback }\n };\n }\n return { Component: Component4, ErrorBoundary, HydrateFallback };\n}\nfunction createServerRoutes(manifest, routeModules, future, isSpaMode, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest), spaModeLazyPromise = Promise.resolve({ Component: () => null })) {\n return (routesByParentId[parentId] || []).map((route) => {\n let routeModule = routeModules[route.id];\n invariant2(\n routeModule,\n \"No `routeModule` available to create server routes\"\n );\n let dataRoute = {\n ...getRouteComponents(route, routeModule, isSpaMode),\n caseSensitive: route.caseSensitive,\n id: route.id,\n index: route.index,\n path: route.path,\n handle: routeModule.handle,\n // For SPA Mode, all routes are lazy except root. However we tell the\n // router root is also lazy here too since we don't need a full\n // implementation - we just need a `lazy` prop to tell the RR rendering\n // where to stop which is always at the root route in SPA mode\n lazy: isSpaMode ? () => spaModeLazyPromise : void 0,\n // For partial hydration rendering, we need to indicate when the route\n // has a loader/clientLoader, but it won't ever be called during the static\n // render, so just give it a no-op function so we can render down to the\n // proper fallback\n loader: route.hasLoader || route.hasClientLoader ? () => null : void 0\n // We don't need middleware/action/shouldRevalidate on these routes since\n // they're for a static render\n };\n let children = createServerRoutes(\n manifest,\n routeModules,\n future,\n isSpaMode,\n route.id,\n routesByParentId,\n spaModeLazyPromise\n );\n if (children.length > 0) dataRoute.children = children;\n return dataRoute;\n });\n}\nfunction createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, manifest, routeModulesCache, initialState, ssr, isSpaMode) {\n return createClientRoutes(\n manifest,\n routeModulesCache,\n initialState,\n ssr,\n isSpaMode,\n \"\",\n groupRoutesByParentId(manifest),\n needsRevalidation\n );\n}\nfunction preventInvalidServerHandlerCall(type, route) {\n if (type === \"loader\" && !route.hasLoader || type === \"action\" && !route.hasAction) {\n let fn = type === \"action\" ? \"serverAction()\" : \"serverLoader()\";\n let msg = `You are trying to call ${fn} on a route that does not have a server ${type} (routeId: \"${route.id}\")`;\n console.error(msg);\n throw new ErrorResponseImpl(400, \"Bad Request\", new Error(msg), true);\n }\n}\nfunction noActionDefinedError(type, routeId) {\n let article = type === \"clientAction\" ? \"a\" : \"an\";\n let msg = `Route \"${routeId}\" does not have ${article} ${type}, but you are trying to submit to it. To fix this, please add ${article} \\`${type}\\` function to the route`;\n console.error(msg);\n throw new ErrorResponseImpl(405, \"Method Not Allowed\", new Error(msg), true);\n}\nfunction createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSpaMode, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest), needsRevalidation) {\n return (routesByParentId[parentId] || []).map((route) => {\n let routeModule = routeModulesCache[route.id];\n function fetchServerHandler(singleFetch) {\n invariant2(\n typeof singleFetch === \"function\",\n \"No single fetch function available for route handler\"\n );\n return singleFetch();\n }\n function fetchServerLoader(singleFetch) {\n if (!route.hasLoader) return Promise.resolve(null);\n return fetchServerHandler(singleFetch);\n }\n function fetchServerAction(singleFetch) {\n if (!route.hasAction) {\n throw noActionDefinedError(\"action\", route.id);\n }\n return fetchServerHandler(singleFetch);\n }\n function prefetchModule(modulePath) {\n import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n modulePath\n );\n }\n function prefetchRouteModuleChunks(route2) {\n if (route2.clientActionModule) {\n prefetchModule(route2.clientActionModule);\n }\n if (route2.clientLoaderModule) {\n prefetchModule(route2.clientLoaderModule);\n }\n }\n async function prefetchStylesAndCallHandler(handler) {\n let cachedModule = routeModulesCache[route.id];\n let linkPrefetchPromise = cachedModule ? prefetchStyleLinks(route, cachedModule) : Promise.resolve();\n try {\n return handler();\n } finally {\n await linkPrefetchPromise;\n }\n }\n let dataRoute = {\n id: route.id,\n index: route.index,\n path: route.path\n };\n if (routeModule) {\n Object.assign(dataRoute, {\n ...dataRoute,\n ...getRouteComponents(route, routeModule, isSpaMode),\n middleware: routeModule.clientMiddleware,\n handle: routeModule.handle,\n shouldRevalidate: getShouldRevalidateFunction(\n dataRoute.path,\n routeModule,\n route,\n ssr,\n needsRevalidation\n )\n });\n let hasInitialData = initialState && initialState.loaderData && route.id in initialState.loaderData;\n let initialData = hasInitialData ? initialState?.loaderData?.[route.id] : void 0;\n let hasInitialError = initialState && initialState.errors && route.id in initialState.errors;\n let initialError = hasInitialError ? initialState?.errors?.[route.id] : void 0;\n let isHydrationRequest = needsRevalidation == null && (routeModule.clientLoader?.hydrate === true || !route.hasLoader);\n dataRoute.loader = async ({ request, params, context, unstable_pattern }, singleFetch) => {\n try {\n let result = await prefetchStylesAndCallHandler(async () => {\n invariant2(\n routeModule,\n \"No `routeModule` available for critical-route loader\"\n );\n if (!routeModule.clientLoader) {\n return fetchServerLoader(singleFetch);\n }\n return routeModule.clientLoader({\n request,\n params,\n context,\n unstable_pattern,\n async serverLoader() {\n preventInvalidServerHandlerCall(\"loader\", route);\n if (isHydrationRequest) {\n if (hasInitialData) {\n return initialData;\n }\n if (hasInitialError) {\n throw initialError;\n }\n }\n return fetchServerLoader(singleFetch);\n }\n });\n });\n return result;\n } finally {\n isHydrationRequest = false;\n }\n };\n dataRoute.loader.hydrate = shouldHydrateRouteLoader(\n route.id,\n routeModule.clientLoader,\n route.hasLoader,\n isSpaMode\n );\n dataRoute.action = ({ request, params, context, unstable_pattern }, singleFetch) => {\n return prefetchStylesAndCallHandler(async () => {\n invariant2(\n routeModule,\n \"No `routeModule` available for critical-route action\"\n );\n if (!routeModule.clientAction) {\n if (isSpaMode) {\n throw noActionDefinedError(\"clientAction\", route.id);\n }\n return fetchServerAction(singleFetch);\n }\n return routeModule.clientAction({\n request,\n params,\n context,\n unstable_pattern,\n async serverAction() {\n preventInvalidServerHandlerCall(\"action\", route);\n return fetchServerAction(singleFetch);\n }\n });\n });\n };\n } else {\n if (!route.hasClientLoader) {\n dataRoute.loader = (_, singleFetch) => prefetchStylesAndCallHandler(() => {\n return fetchServerLoader(singleFetch);\n });\n }\n if (!route.hasClientAction) {\n dataRoute.action = (_, singleFetch) => prefetchStylesAndCallHandler(() => {\n if (isSpaMode) {\n throw noActionDefinedError(\"clientAction\", route.id);\n }\n return fetchServerAction(singleFetch);\n });\n }\n let lazyRoutePromise;\n async function getLazyRoute() {\n if (lazyRoutePromise) {\n return await lazyRoutePromise;\n }\n lazyRoutePromise = (async () => {\n if (route.clientLoaderModule || route.clientActionModule) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n }\n let routeModulePromise = loadRouteModuleWithBlockingLinks(\n route,\n routeModulesCache\n );\n prefetchRouteModuleChunks(route);\n return await routeModulePromise;\n })();\n return await lazyRoutePromise;\n }\n dataRoute.lazy = {\n loader: route.hasClientLoader ? async () => {\n let { clientLoader } = route.clientLoaderModule ? await import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.clientLoaderModule\n ) : await getLazyRoute();\n invariant2(clientLoader, \"No `clientLoader` export found\");\n return (args, singleFetch) => clientLoader({\n ...args,\n async serverLoader() {\n preventInvalidServerHandlerCall(\"loader\", route);\n return fetchServerLoader(singleFetch);\n }\n });\n } : void 0,\n action: route.hasClientAction ? async () => {\n let clientActionPromise = route.clientActionModule ? import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.clientActionModule\n ) : getLazyRoute();\n prefetchRouteModuleChunks(route);\n let { clientAction } = await clientActionPromise;\n invariant2(clientAction, \"No `clientAction` export found\");\n return (args, singleFetch) => clientAction({\n ...args,\n async serverAction() {\n preventInvalidServerHandlerCall(\"action\", route);\n return fetchServerAction(singleFetch);\n }\n });\n } : void 0,\n middleware: route.hasClientMiddleware ? async () => {\n let { clientMiddleware } = route.clientMiddlewareModule ? await import(\n /* @vite-ignore */\n /* webpackIgnore: true */\n route.clientMiddlewareModule\n ) : await getLazyRoute();\n invariant2(clientMiddleware, \"No `clientMiddleware` export found\");\n return clientMiddleware;\n } : void 0,\n shouldRevalidate: async () => {\n let lazyRoute = await getLazyRoute();\n return getShouldRevalidateFunction(\n dataRoute.path,\n lazyRoute,\n route,\n ssr,\n needsRevalidation\n );\n },\n handle: async () => (await getLazyRoute()).handle,\n // No need to wrap these in layout since the root route is never\n // loaded via route.lazy()\n Component: async () => (await getLazyRoute()).Component,\n ErrorBoundary: route.hasErrorBoundary ? async () => (await getLazyRoute()).ErrorBoundary : void 0\n };\n }\n let children = createClientRoutes(\n manifest,\n routeModulesCache,\n initialState,\n ssr,\n isSpaMode,\n route.id,\n routesByParentId,\n needsRevalidation\n );\n if (children.length > 0) dataRoute.children = children;\n return dataRoute;\n });\n}\nfunction getShouldRevalidateFunction(path, route, manifestRoute, ssr, needsRevalidation) {\n if (needsRevalidation) {\n return wrapShouldRevalidateForHdr(\n manifestRoute.id,\n route.shouldRevalidate,\n needsRevalidation\n );\n }\n if (!ssr && manifestRoute.hasLoader && !manifestRoute.hasClientLoader) {\n let myParams = path ? compilePath(path)[1].map((p) => p.paramName) : [];\n const didParamsChange = (opts) => myParams.some((p) => opts.currentParams[p] !== opts.nextParams[p]);\n if (route.shouldRevalidate) {\n let fn = route.shouldRevalidate;\n return (opts) => fn({\n ...opts,\n defaultShouldRevalidate: didParamsChange(opts)\n });\n } else {\n return (opts) => didParamsChange(opts);\n }\n }\n return route.shouldRevalidate;\n}\nfunction wrapShouldRevalidateForHdr(routeId, routeShouldRevalidate, needsRevalidation) {\n let handledRevalidation = false;\n return (arg) => {\n if (!handledRevalidation) {\n handledRevalidation = true;\n return needsRevalidation.has(routeId);\n }\n return routeShouldRevalidate ? routeShouldRevalidate(arg) : arg.defaultShouldRevalidate;\n };\n}\nasync function loadRouteModuleWithBlockingLinks(route, routeModules) {\n let routeModulePromise = loadRouteModule(route, routeModules);\n let prefetchRouteCssPromise = prefetchRouteCss(route);\n let routeModule = await routeModulePromise;\n await Promise.all([\n prefetchRouteCssPromise,\n prefetchStyleLinks(route, routeModule)\n ]);\n return {\n Component: getRouteModuleComponent(routeModule),\n ErrorBoundary: routeModule.ErrorBoundary,\n clientMiddleware: routeModule.clientMiddleware,\n clientAction: routeModule.clientAction,\n clientLoader: routeModule.clientLoader,\n handle: routeModule.handle,\n links: routeModule.links,\n meta: routeModule.meta,\n shouldRevalidate: routeModule.shouldRevalidate\n };\n}\nfunction getRouteModuleComponent(routeModule) {\n if (routeModule.default == null) return void 0;\n let isEmptyObject = typeof routeModule.default === \"object\" && Object.keys(routeModule.default).length === 0;\n if (!isEmptyObject) {\n return routeModule.default;\n }\n}\nfunction shouldHydrateRouteLoader(routeId, clientLoader, hasLoader, isSpaMode) {\n return isSpaMode && routeId !== \"root\" || clientLoader != null && (clientLoader.hydrate === true || hasLoader !== true);\n}\n\n// lib/dom/ssr/fog-of-war.ts\nvar nextPaths = /* @__PURE__ */ new Set();\nvar discoveredPathsMaxSize = 1e3;\nvar discoveredPaths = /* @__PURE__ */ new Set();\nvar URL_LIMIT = 7680;\nfunction isFogOfWarEnabled(routeDiscovery, ssr) {\n return routeDiscovery.mode === \"lazy\" && ssr === true;\n}\nfunction getPartialManifest({ sri, ...manifest }, router) {\n let routeIds = new Set(router.state.matches.map((m) => m.route.id));\n let segments = router.state.location.pathname.split(\"/\").filter(Boolean);\n let paths = [\"/\"];\n segments.pop();\n while (segments.length > 0) {\n paths.push(`/${segments.join(\"/\")}`);\n segments.pop();\n }\n paths.forEach((path) => {\n let matches = matchRoutes(router.routes, path, router.basename);\n if (matches) {\n matches.forEach((m) => routeIds.add(m.route.id));\n }\n });\n let initialRoutes = [...routeIds].reduce(\n (acc, id) => Object.assign(acc, { [id]: manifest.routes[id] }),\n {}\n );\n return {\n ...manifest,\n routes: initialRoutes,\n sri: sri ? true : void 0\n };\n}\nfunction getPatchRoutesOnNavigationFunction(manifest, routeModules, ssr, routeDiscovery, isSpaMode, basename) {\n if (!isFogOfWarEnabled(routeDiscovery, ssr)) {\n return void 0;\n }\n return async ({ path, patch, signal, fetcherKey }) => {\n if (discoveredPaths.has(path)) {\n return;\n }\n await fetchAndApplyManifestPatches(\n [path],\n fetcherKey ? window.location.href : path,\n manifest,\n routeModules,\n ssr,\n isSpaMode,\n basename,\n routeDiscovery.manifestPath,\n patch,\n signal\n );\n };\n}\nfunction useFogOFWarDiscovery(router, manifest, routeModules, ssr, routeDiscovery, isSpaMode) {\n React7.useEffect(() => {\n if (!isFogOfWarEnabled(routeDiscovery, ssr) || // @ts-expect-error - TS doesn't know about this yet\n window.navigator?.connection?.saveData === true) {\n return;\n }\n function registerElement(el) {\n let path = el.tagName === \"FORM\" ? el.getAttribute(\"action\") : el.getAttribute(\"href\");\n if (!path) {\n return;\n }\n let pathname = el.tagName === \"A\" ? el.pathname : new URL(path, window.location.origin).pathname;\n if (!discoveredPaths.has(pathname)) {\n nextPaths.add(pathname);\n }\n }\n async function fetchPatches() {\n document.querySelectorAll(\"a[data-discover], form[data-discover]\").forEach(registerElement);\n let lazyPaths = Array.from(nextPaths.keys()).filter((path) => {\n if (discoveredPaths.has(path)) {\n nextPaths.delete(path);\n return false;\n }\n return true;\n });\n if (lazyPaths.length === 0) {\n return;\n }\n try {\n await fetchAndApplyManifestPatches(\n lazyPaths,\n null,\n manifest,\n routeModules,\n ssr,\n isSpaMode,\n router.basename,\n routeDiscovery.manifestPath,\n router.patchRoutes\n );\n } catch (e) {\n console.error(\"Failed to fetch manifest patches\", e);\n }\n }\n let debouncedFetchPatches = debounce(fetchPatches, 100);\n fetchPatches();\n let observer = new MutationObserver(() => debouncedFetchPatches());\n observer.observe(document.documentElement, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"data-discover\", \"href\", \"action\"]\n });\n return () => observer.disconnect();\n }, [ssr, isSpaMode, manifest, routeModules, router, routeDiscovery]);\n}\nfunction getManifestPath(_manifestPath, basename) {\n let manifestPath = _manifestPath || \"/__manifest\";\n if (basename == null) {\n return manifestPath;\n }\n return `${basename}${manifestPath}`.replace(/\\/+/g, \"/\");\n}\nvar MANIFEST_VERSION_STORAGE_KEY = \"react-router-manifest-version\";\nasync function fetchAndApplyManifestPatches(paths, errorReloadPath, manifest, routeModules, ssr, isSpaMode, basename, manifestPath, patchRoutes, signal) {\n const searchParams = new URLSearchParams();\n searchParams.set(\"paths\", paths.sort().join(\",\"));\n searchParams.set(\"version\", manifest.version);\n let url = new URL(\n getManifestPath(manifestPath, basename),\n window.location.origin\n );\n url.search = searchParams.toString();\n if (url.toString().length > URL_LIMIT) {\n nextPaths.clear();\n return;\n }\n let serverPatches;\n try {\n let res = await fetch(url, { signal });\n if (!res.ok) {\n throw new Error(`${res.status} ${res.statusText}`);\n } else if (res.status === 204 && res.headers.has(\"X-Remix-Reload-Document\")) {\n if (!errorReloadPath) {\n console.warn(\n \"Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.\"\n );\n return;\n }\n try {\n if (sessionStorage.getItem(MANIFEST_VERSION_STORAGE_KEY) === manifest.version) {\n console.error(\n \"Unable to discover routes due to manifest version mismatch.\"\n );\n return;\n }\n sessionStorage.setItem(MANIFEST_VERSION_STORAGE_KEY, manifest.version);\n } catch {\n }\n window.location.href = errorReloadPath;\n console.warn(\"Detected manifest version mismatch, reloading...\");\n await new Promise(() => {\n });\n } else if (res.status >= 400) {\n throw new Error(await res.text());\n }\n try {\n sessionStorage.removeItem(MANIFEST_VERSION_STORAGE_KEY);\n } catch {\n }\n serverPatches = await res.json();\n } catch (e) {\n if (signal?.aborted) return;\n throw e;\n }\n let knownRoutes = new Set(Object.keys(manifest.routes));\n let patches = Object.values(serverPatches).reduce((acc, route) => {\n if (route && !knownRoutes.has(route.id)) {\n acc[route.id] = route;\n }\n return acc;\n }, {});\n Object.assign(manifest.routes, patches);\n paths.forEach((p) => addToFifoQueue(p, discoveredPaths));\n let parentIds = /* @__PURE__ */ new Set();\n Object.values(patches).forEach((patch) => {\n if (patch && (!patch.parentId || !patches[patch.parentId])) {\n parentIds.add(patch.parentId);\n }\n });\n parentIds.forEach(\n (parentId) => patchRoutes(\n parentId || null,\n createClientRoutes(patches, routeModules, null, ssr, isSpaMode, parentId)\n )\n );\n}\nfunction addToFifoQueue(path, queue) {\n if (queue.size >= discoveredPathsMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n}\nfunction debounce(callback, wait) {\n let timeoutId;\n return (...args) => {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(() => callback(...args), wait);\n };\n}\n\n// lib/dom/ssr/components.tsx\nfunction useDataRouterContext2() {\n let context = React8.useContext(DataRouterContext);\n invariant2(\n context,\n \"You must render this element inside a <DataRouterContext.Provider> element\"\n );\n return context;\n}\nfunction useDataRouterStateContext() {\n let context = React8.useContext(DataRouterStateContext);\n invariant2(\n context,\n \"You must render this element inside a <DataRouterStateContext.Provider> element\"\n );\n return context;\n}\nvar FrameworkContext = React8.createContext(void 0);\nFrameworkContext.displayName = \"FrameworkContext\";\nfunction useFrameworkContext() {\n let context = React8.useContext(FrameworkContext);\n invariant2(\n context,\n \"You must render this element inside a <HydratedRouter> element\"\n );\n return context;\n}\nfunction usePrefetchBehavior(prefetch, theirElementProps) {\n let frameworkContext = React8.useContext(FrameworkContext);\n let [maybePrefetch, setMaybePrefetch] = React8.useState(false);\n let [shouldPrefetch, setShouldPrefetch] = React8.useState(false);\n let { onFocus, onBlur, onMouseEnter, onMouseLeave, onTouchStart } = theirElementProps;\n let ref = React8.useRef(null);\n React8.useEffect(() => {\n if (prefetch === \"render\") {\n setShouldPrefetch(true);\n }\n if (prefetch === \"viewport\") {\n let callback = (entries) => {\n entries.forEach((entry) => {\n setShouldPrefetch(entry.isIntersecting);\n });\n };\n let observer = new IntersectionObserver(callback, { threshold: 0.5 });\n if (ref.current) observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }\n }, [prefetch]);\n React8.useEffect(() => {\n if (maybePrefetch) {\n let id = setTimeout(() => {\n setShouldPrefetch(true);\n }, 100);\n return () => {\n clearTimeout(id);\n };\n }\n }, [maybePrefetch]);\n let setIntent = () => {\n setMaybePrefetch(true);\n };\n let cancelIntent = () => {\n setMaybePrefetch(false);\n setShouldPrefetch(false);\n };\n if (!frameworkContext) {\n return [false, ref, {}];\n }\n if (prefetch !== \"intent\") {\n return [shouldPrefetch, ref, {}];\n }\n return [\n shouldPrefetch,\n ref,\n {\n onFocus: composeEventHandlers(onFocus, setIntent),\n onBlur: composeEventHandlers(onBlur, cancelIntent),\n onMouseEnter: composeEventHandlers(onMouseEnter, setIntent),\n onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),\n onTouchStart: composeEventHandlers(onTouchStart, setIntent)\n }\n ];\n}\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return (event) => {\n theirHandler && theirHandler(event);\n if (!event.defaultPrevented) {\n ourHandler(event);\n }\n };\n}\nfunction getActiveMatches(matches, errors, isSpaMode) {\n if (isSpaMode && !isHydrated) {\n return [matches[0]];\n }\n if (errors) {\n let errorIdx = matches.findIndex((m) => errors[m.route.id] !== void 0);\n return matches.slice(0, errorIdx + 1);\n }\n return matches;\n}\nvar CRITICAL_CSS_DATA_ATTRIBUTE = \"data-react-router-critical-css\";\nfunction Links({ nonce }) {\n let { isSpaMode, manifest, routeModules, criticalCss } = useFrameworkContext();\n let { errors, matches: routerMatches } = useDataRouterStateContext();\n let matches = getActiveMatches(routerMatches, errors, isSpaMode);\n let keyedLinks = React8.useMemo(\n () => getKeyedLinksForMatches(matches, routeModules, manifest),\n [matches, routeModules, manifest]\n );\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, typeof criticalCss === \"string\" ? /* @__PURE__ */ React8.createElement(\n \"style\",\n {\n ...{ [CRITICAL_CSS_DATA_ATTRIBUTE]: \"\" },\n dangerouslySetInnerHTML: { __html: criticalCss }\n }\n ) : null, typeof criticalCss === \"object\" ? /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n ...{ [CRITICAL_CSS_DATA_ATTRIBUTE]: \"\" },\n rel: \"stylesheet\",\n href: criticalCss.href,\n nonce\n }\n ) : null, keyedLinks.map(\n ({ key, link }) => isPageLinkDescriptor(link) ? /* @__PURE__ */ React8.createElement(PrefetchPageLinks, { key, nonce, ...link }) : /* @__PURE__ */ React8.createElement(\"link\", { key, nonce, ...link })\n ));\n}\nfunction PrefetchPageLinks({ page, ...linkProps }) {\n let { router } = useDataRouterContext2();\n let matches = React8.useMemo(\n () => matchRoutes(router.routes, page, router.basename),\n [router.routes, page, router.basename]\n );\n if (!matches) {\n return null;\n }\n return /* @__PURE__ */ React8.createElement(PrefetchPageLinksImpl, { page, matches, ...linkProps });\n}\nfunction useKeyedPrefetchLinks(matches) {\n let { manifest, routeModules } = useFrameworkContext();\n let [keyedPrefetchLinks, setKeyedPrefetchLinks] = React8.useState([]);\n React8.useEffect(() => {\n let interrupted = false;\n void getKeyedPrefetchLinks(matches, manifest, routeModules).then(\n (links) => {\n if (!interrupted) {\n setKeyedPrefetchLinks(links);\n }\n }\n );\n return () => {\n interrupted = true;\n };\n }, [matches, manifest, routeModules]);\n return keyedPrefetchLinks;\n}\nfunction PrefetchPageLinksImpl({\n page,\n matches: nextMatches,\n ...linkProps\n}) {\n let location = useLocation();\n let { future, manifest, routeModules } = useFrameworkContext();\n let { basename } = useDataRouterContext2();\n let { loaderData, matches } = useDataRouterStateContext();\n let newMatchesForData = React8.useMemo(\n () => getNewMatchesForLinks(\n page,\n nextMatches,\n matches,\n manifest,\n location,\n \"data\"\n ),\n [page, nextMatches, matches, manifest, location]\n );\n let newMatchesForAssets = React8.useMemo(\n () => getNewMatchesForLinks(\n page,\n nextMatches,\n matches,\n manifest,\n location,\n \"assets\"\n ),\n [page, nextMatches, matches, manifest, location]\n );\n let dataHrefs = React8.useMemo(() => {\n if (page === location.pathname + location.search + location.hash) {\n return [];\n }\n let routesParams = /* @__PURE__ */ new Set();\n let foundOptOutRoute = false;\n nextMatches.forEach((m) => {\n let manifestRoute = manifest.routes[m.route.id];\n if (!manifestRoute || !manifestRoute.hasLoader) {\n return;\n }\n if (!newMatchesForData.some((m2) => m2.route.id === m.route.id) && m.route.id in loaderData && routeModules[m.route.id]?.shouldRevalidate) {\n foundOptOutRoute = true;\n } else if (manifestRoute.hasClientLoader) {\n foundOptOutRoute = true;\n } else {\n routesParams.add(m.route.id);\n }\n });\n if (routesParams.size === 0) {\n return [];\n }\n let url = singleFetchUrl(\n page,\n basename,\n future.unstable_trailingSlashAwareDataRequests,\n \"data\"\n );\n if (foundOptOutRoute && routesParams.size > 0) {\n url.searchParams.set(\n \"_routes\",\n nextMatches.filter((m) => routesParams.has(m.route.id)).map((m) => m.route.id).join(\",\")\n );\n }\n return [url.pathname + url.search];\n }, [\n basename,\n future.unstable_trailingSlashAwareDataRequests,\n loaderData,\n location,\n manifest,\n newMatchesForData,\n nextMatches,\n page,\n routeModules\n ]);\n let moduleHrefs = React8.useMemo(\n () => getModuleLinkHrefs(newMatchesForAssets, manifest),\n [newMatchesForAssets, manifest]\n );\n let keyedPrefetchLinks = useKeyedPrefetchLinks(newMatchesForAssets);\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, dataHrefs.map((href) => /* @__PURE__ */ React8.createElement(\"link\", { key: href, rel: \"prefetch\", as: \"fetch\", href, ...linkProps })), moduleHrefs.map((href) => /* @__PURE__ */ React8.createElement(\"link\", { key: href, rel: \"modulepreload\", href, ...linkProps })), keyedPrefetchLinks.map(({ key, link }) => (\n // these don't spread `linkProps` because they are full link descriptors\n // already with their own props\n /* @__PURE__ */ React8.createElement(\"link\", { key, nonce: linkProps.nonce, ...link })\n )));\n}\nfunction Meta() {\n let { isSpaMode, routeModules } = useFrameworkContext();\n let {\n errors,\n matches: routerMatches,\n loaderData\n } = useDataRouterStateContext();\n let location = useLocation();\n let _matches = getActiveMatches(routerMatches, errors, isSpaMode);\n let error = null;\n if (errors) {\n error = errors[_matches[_matches.length - 1].route.id];\n }\n let meta = [];\n let leafMeta = null;\n let matches = [];\n for (let i = 0; i < _matches.length; i++) {\n let _match = _matches[i];\n let routeId = _match.route.id;\n let data2 = loaderData[routeId];\n let params = _match.params;\n let routeModule = routeModules[routeId];\n let routeMeta = [];\n let match = {\n id: routeId,\n data: data2,\n loaderData: data2,\n meta: [],\n params: _match.params,\n pathname: _match.pathname,\n handle: _match.route.handle,\n error\n };\n matches[i] = match;\n if (routeModule?.meta) {\n routeMeta = typeof routeModule.meta === \"function\" ? routeModule.meta({\n data: data2,\n loaderData: data2,\n params,\n location,\n matches,\n error\n }) : Array.isArray(routeModule.meta) ? [...routeModule.meta] : routeModule.meta;\n } else if (leafMeta) {\n routeMeta = [...leafMeta];\n }\n routeMeta = routeMeta || [];\n if (!Array.isArray(routeMeta)) {\n throw new Error(\n \"The route at \" + _match.route.path + \" returns an invalid value. All route meta functions must return an array of meta objects.\\n\\nTo reference the meta function API, see https://remix.run/route/meta\"\n );\n }\n match.meta = routeMeta;\n matches[i] = match;\n meta = [...routeMeta];\n leafMeta = meta;\n }\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, meta.flat().map((metaProps) => {\n if (!metaProps) {\n return null;\n }\n if (\"tagName\" in metaProps) {\n let { tagName, ...rest } = metaProps;\n if (!isValidMetaTag(tagName)) {\n console.warn(\n `A meta object uses an invalid tagName: ${tagName}. Expected either 'link' or 'meta'`\n );\n return null;\n }\n let Comp = tagName;\n return /* @__PURE__ */ React8.createElement(Comp, { key: JSON.stringify(rest), ...rest });\n }\n if (\"title\" in metaProps) {\n return /* @__PURE__ */ React8.createElement(\"title\", { key: \"title\" }, String(metaProps.title));\n }\n if (\"charset\" in metaProps) {\n metaProps.charSet ?? (metaProps.charSet = metaProps.charset);\n delete metaProps.charset;\n }\n if (\"charSet\" in metaProps && metaProps.charSet != null) {\n return typeof metaProps.charSet === \"string\" ? /* @__PURE__ */ React8.createElement(\"meta\", { key: \"charSet\", charSet: metaProps.charSet }) : null;\n }\n if (\"script:ld+json\" in metaProps) {\n try {\n let json = JSON.stringify(metaProps[\"script:ld+json\"]);\n return /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n key: `script:ld+json:${json}`,\n type: \"application/ld+json\",\n dangerouslySetInnerHTML: { __html: escapeHtml(json) }\n }\n );\n } catch (err) {\n return null;\n }\n }\n return /* @__PURE__ */ React8.createElement(\"meta\", { key: JSON.stringify(metaProps), ...metaProps });\n }));\n}\nfunction isValidMetaTag(tagName) {\n return typeof tagName === \"string\" && /^(meta|link)$/.test(tagName);\n}\nvar isHydrated = false;\nfunction setIsHydrated() {\n isHydrated = true;\n}\nfunction Scripts(scriptProps) {\n let {\n manifest,\n serverHandoffString,\n isSpaMode,\n renderMeta,\n routeDiscovery,\n ssr\n } = useFrameworkContext();\n let { router, static: isStatic, staticContext } = useDataRouterContext2();\n let { matches: routerMatches } = useDataRouterStateContext();\n let isRSCRouterContext = useIsRSCRouterContext();\n let enableFogOfWar = isFogOfWarEnabled(routeDiscovery, ssr);\n if (renderMeta) {\n renderMeta.didRenderScripts = true;\n }\n let matches = getActiveMatches(routerMatches, null, isSpaMode);\n React8.useEffect(() => {\n setIsHydrated();\n }, []);\n let initialScripts = React8.useMemo(() => {\n if (isRSCRouterContext) {\n return null;\n }\n let streamScript = \"window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());\";\n let contextScript = staticContext ? `window.__reactRouterContext = ${serverHandoffString};${streamScript}` : \" \";\n let routeModulesScript = !isStatic ? \" \" : `${manifest.hmr?.runtime ? `import ${JSON.stringify(manifest.hmr.runtime)};` : \"\"}${!enableFogOfWar ? `import ${JSON.stringify(manifest.url)}` : \"\"};\n${matches.map((match, routeIndex) => {\n let routeVarName = `route${routeIndex}`;\n let manifestEntry = manifest.routes[match.route.id];\n invariant2(manifestEntry, `Route ${match.route.id} not found in manifest`);\n let {\n clientActionModule,\n clientLoaderModule,\n clientMiddlewareModule,\n hydrateFallbackModule,\n module\n } = manifestEntry;\n let chunks = [\n ...clientActionModule ? [\n {\n module: clientActionModule,\n varName: `${routeVarName}_clientAction`\n }\n ] : [],\n ...clientLoaderModule ? [\n {\n module: clientLoaderModule,\n varName: `${routeVarName}_clientLoader`\n }\n ] : [],\n ...clientMiddlewareModule ? [\n {\n module: clientMiddlewareModule,\n varName: `${routeVarName}_clientMiddleware`\n }\n ] : [],\n ...hydrateFallbackModule ? [\n {\n module: hydrateFallbackModule,\n varName: `${routeVarName}_HydrateFallback`\n }\n ] : [],\n { module, varName: `${routeVarName}_main` }\n ];\n if (chunks.length === 1) {\n return `import * as ${routeVarName} from ${JSON.stringify(module)};`;\n }\n let chunkImportsSnippet = chunks.map((chunk) => `import * as ${chunk.varName} from \"${chunk.module}\";`).join(\"\\n\");\n let mergedChunksSnippet = `const ${routeVarName} = {${chunks.map((chunk) => `...${chunk.varName}`).join(\",\")}};`;\n return [chunkImportsSnippet, mergedChunksSnippet].join(\"\\n\");\n }).join(\"\\n\")}\n ${enableFogOfWar ? (\n // Inline a minimal manifest with the SSR matches\n `window.__reactRouterManifest = ${JSON.stringify(\n getPartialManifest(manifest, router),\n null,\n 2\n )};`\n ) : \"\"}\n window.__reactRouterRouteModules = {${matches.map((match, index) => `${JSON.stringify(match.route.id)}:route${index}`).join(\",\")}};\n\nimport(${JSON.stringify(manifest.entry.module)});`;\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n ...scriptProps,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: { __html: contextScript },\n type: void 0\n }\n ), /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n ...scriptProps,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: { __html: routeModulesScript },\n type: \"module\",\n async: true\n }\n ));\n }, []);\n let preloads = isHydrated || isRSCRouterContext ? [] : dedupe(\n manifest.entry.imports.concat(\n getModuleLinkHrefs(matches, manifest, {\n includeHydrateFallback: true\n })\n )\n );\n let sri = typeof manifest.sri === \"object\" ? manifest.sri : {};\n warnOnce(\n !isRSCRouterContext,\n \"The <Scripts /> element is a no-op when using RSC and can be safely removed.\"\n );\n return isHydrated || isRSCRouterContext ? null : /* @__PURE__ */ React8.createElement(React8.Fragment, null, typeof manifest.sri === \"object\" ? /* @__PURE__ */ React8.createElement(\n \"script\",\n {\n ...scriptProps,\n \"rr-importmap\": \"\",\n type: \"importmap\",\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: JSON.stringify({\n integrity: sri\n })\n }\n }\n ) : null, !enableFogOfWar ? /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n rel: \"modulepreload\",\n href: manifest.url,\n crossOrigin: scriptProps.crossOrigin,\n integrity: sri[manifest.url],\n suppressHydrationWarning: true\n }\n ) : null, /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n rel: \"modulepreload\",\n href: manifest.entry.module,\n crossOrigin: scriptProps.crossOrigin,\n integrity: sri[manifest.entry.module],\n suppressHydrationWarning: true\n }\n ), preloads.map((path) => /* @__PURE__ */ React8.createElement(\n \"link\",\n {\n key: path,\n rel: \"modulepreload\",\n href: path,\n crossOrigin: scriptProps.crossOrigin,\n integrity: sri[path],\n suppressHydrationWarning: true\n }\n )), initialScripts);\n}\nfunction dedupe(array) {\n return [...new Set(array)];\n}\nfunction mergeRefs(...refs) {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n}\n\n// lib/dom/ssr/errorBoundaries.tsx\nvar RemixErrorBoundary = class extends React9.Component {\n constructor(props) {\n super(props);\n this.state = { error: props.error || null, location: props.location };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n static getDerivedStateFromProps(props, state) {\n if (state.location !== props.location) {\n return { error: props.error || null, location: props.location };\n }\n return { error: props.error || state.error, location: state.location };\n }\n render() {\n if (this.state.error) {\n return /* @__PURE__ */ React9.createElement(\n RemixRootDefaultErrorBoundary,\n {\n error: this.state.error,\n isOutsideRemixApp: true\n }\n );\n } else {\n return this.props.children;\n }\n }\n};\nfunction RemixRootDefaultErrorBoundary({\n error,\n isOutsideRemixApp\n}) {\n console.error(error);\n let heyDeveloper = /* @__PURE__ */ React9.createElement(\n \"script\",\n {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information.\"\n );\n `\n }\n }\n );\n if (isRouteErrorResponse(error)) {\n return /* @__PURE__ */ React9.createElement(BoundaryShell, { title: \"Unhandled Thrown Response!\" }, /* @__PURE__ */ React9.createElement(\"h1\", { style: { fontSize: \"24px\" } }, error.status, \" \", error.statusText), ENABLE_DEV_WARNINGS ? heyDeveloper : null);\n }\n let errorInstance;\n if (error instanceof Error) {\n errorInstance = error;\n } else {\n let errorString = error == null ? \"Unknown Error\" : typeof error === \"object\" && \"toString\" in error ? error.toString() : JSON.stringify(error);\n errorInstance = new Error(errorString);\n }\n return /* @__PURE__ */ React9.createElement(\n BoundaryShell,\n {\n title: \"Application Error!\",\n isOutsideRemixApp\n },\n /* @__PURE__ */ React9.createElement(\"h1\", { style: { fontSize: \"24px\" } }, \"Application Error\"),\n /* @__PURE__ */ React9.createElement(\n \"pre\",\n {\n style: {\n padding: \"2rem\",\n background: \"hsla(10, 50%, 50%, 0.1)\",\n color: \"red\",\n overflow: \"auto\"\n }\n },\n errorInstance.stack\n ),\n heyDeveloper\n );\n}\nfunction BoundaryShell({\n title,\n renderScripts,\n isOutsideRemixApp,\n children\n}) {\n let { routeModules } = useFrameworkContext();\n if (routeModules.root?.Layout && !isOutsideRemixApp) {\n return children;\n }\n return /* @__PURE__ */ React9.createElement(\"html\", { lang: \"en\" }, /* @__PURE__ */ React9.createElement(\"head\", null, /* @__PURE__ */ React9.createElement(\"meta\", { charSet: \"utf-8\" }), /* @__PURE__ */ React9.createElement(\n \"meta\",\n {\n name: \"viewport\",\n content: \"width=device-width,initial-scale=1,viewport-fit=cover\"\n }\n ), /* @__PURE__ */ React9.createElement(\"title\", null, title)), /* @__PURE__ */ React9.createElement(\"body\", null, /* @__PURE__ */ React9.createElement(\"main\", { style: { fontFamily: \"system-ui, sans-serif\", padding: \"2rem\" } }, children, renderScripts ? /* @__PURE__ */ React9.createElement(Scripts, null) : null)));\n}\n\n// lib/dom/lib.tsx\nimport * as React10 from \"react\";\nvar isBrowser2 = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\ntry {\n if (isBrowser2) {\n window.__reactRouterVersion = // @ts-expect-error\n \"7.12.0\";\n }\n} catch (e) {\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts?.basename,\n getContext: opts?.getContext,\n future: opts?.future,\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n hydrationRouteProperties,\n dataStrategy: opts?.dataStrategy,\n patchRoutesOnNavigation: opts?.patchRoutesOnNavigation,\n window: opts?.window,\n unstable_instrumentations: opts?.unstable_instrumentations\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts?.basename,\n getContext: opts?.getContext,\n future: opts?.future,\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n hydrationRouteProperties,\n dataStrategy: opts?.dataStrategy,\n patchRoutesOnNavigation: opts?.patchRoutesOnNavigation,\n window: opts?.window,\n unstable_instrumentations: opts?.unstable_instrumentations\n }).initialize();\n}\nfunction parseHydrationData() {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors)\n };\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponseImpl(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n let error = new ErrorConstructor(val.message);\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nfunction BrowserRouter({\n basename,\n children,\n unstable_useTransitions,\n window: window2\n}) {\n let historyRef = React10.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window: window2, v5Compat: true });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React10.useState({\n action: history.action,\n location: history.location\n });\n let setState = React10.useCallback(\n (newState) => {\n if (unstable_useTransitions === false) {\n setStateImpl(newState);\n } else {\n React10.startTransition(() => setStateImpl(newState));\n }\n },\n [unstable_useTransitions]\n );\n React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React10.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n unstable_useTransitions\n }\n );\n}\nfunction HashRouter({\n basename,\n children,\n unstable_useTransitions,\n window: window2\n}) {\n let historyRef = React10.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window: window2, v5Compat: true });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React10.useState({\n action: history.action,\n location: history.location\n });\n let setState = React10.useCallback(\n (newState) => {\n if (unstable_useTransitions === false) {\n setStateImpl(newState);\n } else {\n React10.startTransition(() => setStateImpl(newState));\n }\n },\n [unstable_useTransitions]\n );\n React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React10.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n unstable_useTransitions\n }\n );\n}\nfunction HistoryRouter({\n basename,\n children,\n history,\n unstable_useTransitions\n}) {\n let [state, setStateImpl] = React10.useState({\n action: history.action,\n location: history.location\n });\n let setState = React10.useCallback(\n (newState) => {\n if (unstable_useTransitions === false) {\n setStateImpl(newState);\n } else {\n React10.startTransition(() => setStateImpl(newState));\n }\n },\n [unstable_useTransitions]\n );\n React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n return /* @__PURE__ */ React10.createElement(\n Router,\n {\n basename,\n children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n unstable_useTransitions\n }\n );\n}\nHistoryRouter.displayName = \"unstable_HistoryRouter\";\nvar ABSOLUTE_URL_REGEX2 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar Link = React10.forwardRef(\n function LinkWithRef({\n onClick,\n discover = \"render\",\n prefetch = \"none\",\n relative,\n reloadDocument,\n replace: replace2,\n state,\n target,\n to,\n preventScrollReset,\n viewTransition,\n unstable_defaultShouldRevalidate,\n ...rest\n }, forwardedRef) {\n let { basename, unstable_useTransitions } = React10.useContext(NavigationContext);\n let isAbsolute = typeof to === \"string\" && ABSOLUTE_URL_REGEX2.test(to);\n let parsed = parseToInfo(to, basename);\n to = parsed.to;\n let href = useHref(to, { relative });\n let [shouldPrefetch, prefetchRef, prefetchHandlers] = usePrefetchBehavior(\n prefetch,\n rest\n );\n let internalOnClick = useLinkClickHandler(to, {\n replace: replace2,\n state,\n target,\n preventScrollReset,\n relative,\n viewTransition,\n unstable_defaultShouldRevalidate,\n unstable_useTransitions\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n let link = (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n /* @__PURE__ */ React10.createElement(\n \"a\",\n {\n ...rest,\n ...prefetchHandlers,\n href: parsed.absoluteURL || href,\n onClick: parsed.isExternal || reloadDocument ? onClick : handleClick,\n ref: mergeRefs(forwardedRef, prefetchRef),\n target,\n \"data-discover\": !isAbsolute && discover === \"render\" ? \"true\" : void 0\n }\n )\n );\n return shouldPrefetch && !isAbsolute ? /* @__PURE__ */ React10.createElement(React10.Fragment, null, link, /* @__PURE__ */ React10.createElement(PrefetchPageLinks, { page: href })) : link;\n }\n);\nLink.displayName = \"Link\";\nvar NavLink = React10.forwardRef(\n function NavLinkWithRef({\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n viewTransition,\n children,\n ...rest\n }, ref) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React10.useContext(DataRouterStateContext);\n let { navigator, basename } = React10.useContext(NavigationContext);\n let isTransitioning = routerState != null && // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) && viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : void 0;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n isTransitioning ? \"transitioning\" : null\n ].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /* @__PURE__ */ React10.createElement(\n Link,\n {\n ...rest,\n \"aria-current\": ariaCurrent,\n className,\n ref,\n style,\n to,\n viewTransition\n },\n typeof children === \"function\" ? children(renderProps) : children\n );\n }\n);\nNavLink.displayName = \"NavLink\";\nvar Form = React10.forwardRef(\n ({\n discover = \"render\",\n fetcherKey,\n navigate,\n reloadDocument,\n replace: replace2,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n viewTransition,\n unstable_defaultShouldRevalidate,\n ...props\n }, forwardedRef) => {\n let { unstable_useTransitions } = React10.useContext(NavigationContext);\n let submit = useSubmit();\n let formAction = useFormAction(action, { relative });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let isAbsolute = typeof action === \"string\" && ABSOLUTE_URL_REGEX2.test(action);\n let submitHandler = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = submitter?.getAttribute(\"formmethod\") || method;\n let doSubmit = () => submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace: replace2,\n state,\n relative,\n preventScrollReset,\n viewTransition,\n unstable_defaultShouldRevalidate\n });\n if (unstable_useTransitions && navigate !== false) {\n React10.startTransition(() => doSubmit());\n } else {\n doSubmit();\n }\n };\n return /* @__PURE__ */ React10.createElement(\n \"form\",\n {\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler,\n ...props,\n \"data-discover\": !isAbsolute && discover === \"render\" ? \"true\" : void 0\n }\n );\n }\n);\nForm.displayName = \"Form\";\nfunction ScrollRestoration({\n getKey,\n storageKey,\n ...props\n}) {\n let remixContext = React10.useContext(FrameworkContext);\n let { basename } = React10.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n useScrollRestoration({ getKey, storageKey });\n let ssrKey = React10.useMemo(\n () => {\n if (!remixContext || !getKey) return null;\n let userKey = getScrollRestorationKey(\n location,\n matches,\n basename,\n getKey\n );\n return userKey !== location.key ? userKey : null;\n },\n // Nah, we only need this the first time for the SSR render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n if (!remixContext || remixContext.isSpaMode) {\n return null;\n }\n let restoreScroll = ((storageKey2, restoreKey) => {\n if (!window.history.state || !window.history.state.key) {\n let key = Math.random().toString(32).slice(2);\n window.history.replaceState({ key }, \"\");\n }\n try {\n let positions = JSON.parse(sessionStorage.getItem(storageKey2) || \"{}\");\n let storedY = positions[restoreKey || window.history.state.key];\n if (typeof storedY === \"number\") {\n window.scrollTo(0, storedY);\n }\n } catch (error) {\n console.error(error);\n sessionStorage.removeItem(storageKey2);\n }\n }).toString();\n return /* @__PURE__ */ React10.createElement(\n \"script\",\n {\n ...props,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${escapeHtml(\n JSON.stringify(storageKey || SCROLL_RESTORATION_STORAGE_KEY)\n )}, ${escapeHtml(JSON.stringify(ssrKey))})`\n }\n }\n );\n}\nScrollRestoration.displayName = \"ScrollRestoration\";\nfunction getDataRouterConsoleError2(hookName) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\nfunction useDataRouterContext3(hookName) {\n let ctx = React10.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError2(hookName));\n return ctx;\n}\nfunction useDataRouterState2(hookName) {\n let state = React10.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError2(hookName));\n return state;\n}\nfunction useLinkClickHandler(to, {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n viewTransition,\n unstable_defaultShouldRevalidate,\n unstable_useTransitions\n} = {}) {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n return React10.useCallback(\n (event) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n let replace2 = replaceProp !== void 0 ? replaceProp : createPath(location) === createPath(path);\n let doNavigate = () => navigate(to, {\n replace: replace2,\n state,\n preventScrollReset,\n relative,\n viewTransition,\n unstable_defaultShouldRevalidate\n });\n if (unstable_useTransitions) {\n React10.startTransition(() => doNavigate());\n } else {\n doNavigate();\n }\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n viewTransition,\n unstable_defaultShouldRevalidate,\n unstable_useTransitions\n ]\n );\n}\nfunction useSearchParams(defaultInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.`\n );\n let defaultSearchParamsRef = React10.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React10.useRef(false);\n let location = useLocation();\n let searchParams = React10.useMemo(\n () => (\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n )\n ),\n [location.search]\n );\n let navigate = useNavigate();\n let setSearchParams = React10.useCallback(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(new URLSearchParams(searchParams)) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n return [searchParams, setSearchParams];\n}\nvar fetcherId = 0;\nvar getUniqueFetcherId = () => `__${String(++fetcherId)}__`;\nfunction useSubmit() {\n let { router } = useDataRouterContext3(\"useSubmit\" /* UseSubmit */);\n let { basename } = React10.useContext(NavigationContext);\n let currentRouteId = useRouteId();\n let routerFetch = router.fetch;\n let routerNavigate = router.navigate;\n return React10.useCallback(\n async (target, options = {}) => {\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n await routerFetch(key, currentRouteId, options.action || action, {\n unstable_defaultShouldRevalidate: options.unstable_defaultShouldRevalidate,\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n flushSync: options.flushSync\n });\n } else {\n await routerNavigate(options.action || action, {\n unstable_defaultShouldRevalidate: options.unstable_defaultShouldRevalidate,\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n flushSync: options.flushSync,\n viewTransition: options.viewTransition\n });\n }\n },\n [routerFetch, routerNavigate, basename, currentRouteId]\n );\n}\nfunction useFormAction(action, { relative } = {}) {\n let { basename } = React10.useContext(NavigationContext);\n let routeContext = React10.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n let [match] = routeContext.matches.slice(-1);\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n let location = useLocation();\n if (action == null) {\n path.search = location.search;\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n let hasNakedIndexParam = indexValues.some((v) => v === \"\");\n if (hasNakedIndexParam) {\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\nfunction useFetcher({\n key\n} = {}) {\n let { router } = useDataRouterContext3(\"useFetcher\" /* UseFetcher */);\n let state = useDataRouterState2(\"useFetcher\" /* UseFetcher */);\n let fetcherData = React10.useContext(FetchersContext);\n let route = React10.useContext(RouteContext);\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n invariant(fetcherData, `useFetcher must be used inside a FetchersContext`);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n let defaultKey = React10.useId();\n let [fetcherKey, setFetcherKey] = React10.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n }\n let { deleteFetcher, getFetcher, resetFetcher, fetch: routerFetch } = router;\n React10.useEffect(() => {\n getFetcher(fetcherKey);\n return () => deleteFetcher(fetcherKey);\n }, [deleteFetcher, getFetcher, fetcherKey]);\n let load = React10.useCallback(\n async (href, opts) => {\n invariant(routeId, \"No routeId available for fetcher.load()\");\n await routerFetch(fetcherKey, routeId, href, opts);\n },\n [fetcherKey, routeId, routerFetch]\n );\n let submitImpl = useSubmit();\n let submit = React10.useCallback(\n async (target, opts) => {\n await submitImpl(target, {\n ...opts,\n navigate: false,\n fetcherKey\n });\n },\n [fetcherKey, submitImpl]\n );\n let reset = React10.useCallback(\n (opts) => resetFetcher(fetcherKey, opts),\n [resetFetcher, fetcherKey]\n );\n let FetcherForm = React10.useMemo(() => {\n let FetcherForm2 = React10.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ React10.createElement(Form, { ...props, navigate: false, fetcherKey, ref });\n }\n );\n FetcherForm2.displayName = \"fetcher.Form\";\n return FetcherForm2;\n }, [fetcherKey]);\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data2 = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React10.useMemo(\n () => ({\n Form: FetcherForm,\n submit,\n load,\n reset,\n ...fetcher,\n data: data2\n }),\n [FetcherForm, submit, load, reset, fetcher, data2]\n );\n return fetcherWithComponents;\n}\nfunction useFetchers() {\n let state = useDataRouterState2(\"useFetchers\" /* UseFetchers */);\n return Array.from(state.fetchers.entries()).map(([key, fetcher]) => ({\n ...fetcher,\n key\n }));\n}\nvar SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nvar savedScrollPositions = {};\nfunction getScrollRestorationKey(location, matches, basename, getKey) {\n let key = null;\n if (getKey) {\n if (basename !== \"/\") {\n key = getKey(\n {\n ...location,\n pathname: stripBasename(location.pathname, basename) || location.pathname\n },\n matches\n );\n } else {\n key = getKey(location, matches);\n }\n }\n if (key == null) {\n key = location.key;\n }\n return key;\n}\nfunction useScrollRestoration({\n getKey,\n storageKey\n} = {}) {\n let { router } = useDataRouterContext3(\"useScrollRestoration\" /* UseScrollRestoration */);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState2(\n \"useScrollRestoration\" /* UseScrollRestoration */\n );\n let { basename } = React10.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n React10.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n usePageHide(\n React10.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = getScrollRestorationKey(location, matches, basename, getKey);\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${error}).`\n );\n }\n window.history.scrollRestoration = \"auto\";\n }, [navigation.state, getKey, basename, location, matches, storageKey])\n );\n if (typeof document !== \"undefined\") {\n React10.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n }\n }, [storageKey]);\n React10.useLayoutEffect(() => {\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKey ? (location2, matches2) => getScrollRestorationKey(location2, matches2, basename, getKey) : void 0\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n React10.useLayoutEffect(() => {\n if (restoreScrollPosition === false) {\n return;\n }\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n try {\n if (location.hash) {\n let el = document.getElementById(\n decodeURIComponent(location.hash.slice(1))\n );\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n } catch {\n warning(\n false,\n `\"${location.hash.slice(\n 1\n )}\" is not a decodable element ID. The view will not scroll to it.`\n );\n }\n if (preventScrollReset === true) {\n return;\n }\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\nfunction useBeforeUnload(callback, options) {\n let { capture } = options || {};\n React10.useEffect(() => {\n let opts = capture != null ? { capture } : void 0;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\nfunction usePageHide(callback, options) {\n let { capture } = options || {};\n React10.useEffect(() => {\n let opts = capture != null ? { capture } : void 0;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\nfunction usePrompt({\n when,\n message\n}) {\n let blocker = useBlocker(when);\n React10.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React10.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\nfunction useViewTransitionState(to, { relative } = {}) {\n let vtContext = React10.useContext(ViewTransitionContext);\n invariant(\n vtContext != null,\n \"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?\"\n );\n let { basename } = useDataRouterContext3(\n \"useViewTransitionState\" /* useViewTransitionState */\n );\n let path = useResolvedPath(to, { relative });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n\n// lib/dom/server.tsx\nimport * as React11 from \"react\";\nfunction StaticRouter({\n basename,\n children,\n location: locationProp = \"/\"\n}) {\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let action = \"POP\" /* Pop */;\n let location = {\n pathname: locationProp.pathname || \"/\",\n search: locationProp.search || \"\",\n hash: locationProp.hash || \"\",\n state: locationProp.state != null ? locationProp.state : null,\n key: locationProp.key || \"default\"\n };\n let staticNavigator = getStatelessNavigator();\n return /* @__PURE__ */ React11.createElement(\n Router,\n {\n basename,\n children,\n location,\n navigationType: action,\n navigator: staticNavigator,\n static: true,\n unstable_useTransitions: false\n }\n );\n}\nfunction StaticRouterProvider({\n context,\n router,\n hydrate: hydrate2 = true,\n nonce\n}) {\n invariant(\n router && context,\n \"You must provide `router` and `context` to <StaticRouterProvider>\"\n );\n let dataRouterContext = {\n router,\n navigator: getStatelessNavigator(),\n static: true,\n staticContext: context,\n basename: context.basename || \"/\"\n };\n let fetchersContext = /* @__PURE__ */ new Map();\n let hydrateScript = \"\";\n if (hydrate2 !== false) {\n let data2 = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors)\n };\n let json = escapeHtml(JSON.stringify(JSON.stringify(data2)));\n hydrateScript = `window.__staticRouterHydrationData = JSON.parse(${json});`;\n }\n let { state } = dataRouterContext.router;\n return /* @__PURE__ */ React11.createElement(React11.Fragment, null, /* @__PURE__ */ React11.createElement(DataRouterContext.Provider, { value: dataRouterContext }, /* @__PURE__ */ React11.createElement(DataRouterStateContext.Provider, { value: state }, /* @__PURE__ */ React11.createElement(FetchersContext.Provider, { value: fetchersContext }, /* @__PURE__ */ React11.createElement(ViewTransitionContext.Provider, { value: { isTransitioning: false } }, /* @__PURE__ */ React11.createElement(\n Router,\n {\n basename: dataRouterContext.basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: dataRouterContext.navigator,\n static: dataRouterContext.static,\n unstable_useTransitions: false\n },\n /* @__PURE__ */ React11.createElement(\n DataRoutes2,\n {\n routes: router.routes,\n future: router.future,\n state\n }\n )\n ))))), hydrateScript ? /* @__PURE__ */ React11.createElement(\n \"script\",\n {\n suppressHydrationWarning: true,\n nonce,\n dangerouslySetInnerHTML: { __html: hydrateScript }\n }\n ) : null);\n}\nfunction DataRoutes2({\n routes,\n future,\n state\n}) {\n return useRoutesImpl(routes, void 0, state, void 0, future);\n}\nfunction serializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (isRouteErrorResponse(val)) {\n serialized[key] = { ...val, __type: \"RouteErrorResponse\" };\n } else if (val instanceof Error) {\n serialized[key] = {\n message: val.message,\n __type: \"Error\",\n // If this is a subclass (i.e., ReferenceError), send up the type so we\n // can re-create the same type during hydration.\n ...val.name !== \"Error\" ? {\n __subType: val.name\n } : {}\n };\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nfunction getStatelessNavigator() {\n return {\n createHref,\n encodeLocation,\n push(to) {\n throw new Error(\n `You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${JSON.stringify(to)})\\` somewhere in your app.`\n );\n },\n replace(to) {\n throw new Error(\n `You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${JSON.stringify(to)}, { replace: true })\\` somewhere in your app.`\n );\n },\n go(delta) {\n throw new Error(\n `You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${delta})\\` somewhere in your app.`\n );\n },\n back() {\n throw new Error(\n `You cannot use navigator.back() on the server because it is a stateless environment.`\n );\n },\n forward() {\n throw new Error(\n `You cannot use navigator.forward() on the server because it is a stateless environment.`\n );\n }\n };\n}\nfunction createStaticHandler2(routes, opts) {\n return createStaticHandler(routes, {\n ...opts,\n mapRouteProperties\n });\n}\nfunction createStaticRouter(routes, context, opts = {}) {\n let manifest = {};\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n void 0,\n manifest\n );\n let matches = context.matches.map((match) => {\n let route = manifest[match.route.id] || match.route;\n return {\n ...match,\n route\n };\n });\n let msg = (method) => `You cannot use router.${method}() on the server because it is a stateless environment`;\n return {\n get basename() {\n return context.basename;\n },\n get future() {\n return {\n v8_middleware: false,\n ...opts?.future\n };\n },\n get state() {\n return {\n historyAction: \"POP\" /* Pop */,\n location: context.location,\n matches,\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: context.errors,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n restoreScrollPosition: null,\n preventScrollReset: false,\n revalidation: \"idle\",\n fetchers: /* @__PURE__ */ new Map(),\n blockers: /* @__PURE__ */ new Map()\n };\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return void 0;\n },\n initialize() {\n throw msg(\"initialize\");\n },\n subscribe() {\n throw msg(\"subscribe\");\n },\n enableScrollRestoration() {\n throw msg(\"enableScrollRestoration\");\n },\n navigate() {\n throw msg(\"navigate\");\n },\n fetch() {\n throw msg(\"fetch\");\n },\n revalidate() {\n throw msg(\"revalidate\");\n },\n createHref,\n encodeLocation,\n getFetcher() {\n return IDLE_FETCHER;\n },\n deleteFetcher() {\n throw msg(\"deleteFetcher\");\n },\n resetFetcher() {\n throw msg(\"resetFetcher\");\n },\n dispose() {\n throw msg(\"dispose\");\n },\n getBlocker() {\n return IDLE_BLOCKER;\n },\n deleteBlocker() {\n throw msg(\"deleteBlocker\");\n },\n patchRoutes() {\n throw msg(\"patchRoutes\");\n },\n _internalFetchControllers: /* @__PURE__ */ new Map(),\n _internalSetRoutes() {\n throw msg(\"_internalSetRoutes\");\n },\n _internalSetStateDoNotUseOrYouWillBreakYourApp() {\n throw msg(\"_internalSetStateDoNotUseOrYouWillBreakYourApp\");\n }\n };\n}\nfunction createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n}\nfunction encodeLocation(to) {\n let href = typeof to === \"string\" ? to : createPath(to);\n href = href.replace(/ $/, \"%20\");\n let encoded = ABSOLUTE_URL_REGEX3.test(href) ? new URL(href) : new URL(href, \"http://localhost\");\n return {\n pathname: encoded.pathname,\n search: encoded.search,\n hash: encoded.hash\n };\n}\nvar ABSOLUTE_URL_REGEX3 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nexport {\n Action,\n createMemoryHistory,\n createBrowserHistory,\n createHashHistory,\n invariant,\n createPath,\n parsePath,\n createContext,\n RouterContextProvider,\n convertRoutesToDataRoutes,\n matchRoutes,\n generatePath,\n matchPath,\n stripBasename,\n resolvePath,\n data,\n redirect,\n redirectDocument,\n replace,\n ErrorResponseImpl,\n isRouteErrorResponse,\n instrumentHandler,\n IDLE_NAVIGATION,\n IDLE_FETCHER,\n IDLE_BLOCKER,\n createRouter,\n createStaticHandler,\n getStaticContextFromError,\n isDataWithResponseInit,\n isResponse,\n isRedirectStatusCode,\n isRedirectResponse,\n isMutationMethod,\n DataRouterContext,\n DataRouterStateContext,\n RSCRouterContext,\n ViewTransitionContext,\n FetchersContext,\n AwaitContextProvider,\n NavigationContext,\n LocationContext,\n RouteContext,\n ENABLE_DEV_WARNINGS,\n decodeRedirectErrorDigest,\n decodeRouteErrorResponseDigest,\n useHref,\n useInRouterContext,\n useLocation,\n useNavigationType,\n useMatch,\n useNavigate,\n useOutletContext,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useNavigation,\n useRevalidator,\n useMatches,\n useLoaderData,\n useRouteLoaderData,\n useActionData,\n useRouteError,\n useAsyncValue,\n useAsyncError,\n useBlocker,\n useRoute,\n warnOnce,\n mapRouteProperties,\n hydrationRouteProperties,\n createMemoryRouter,\n RouterProvider,\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n Await,\n createRoutesFromChildren,\n createRoutesFromElements,\n renderMatches,\n WithComponentProps,\n withComponentProps,\n WithHydrateFallbackProps,\n withHydrateFallbackProps,\n WithErrorBoundaryProps,\n withErrorBoundaryProps,\n createSearchParams,\n escapeHtml,\n encode,\n createRequestInit,\n SingleFetchRedirectSymbol,\n SINGLE_FETCH_REDIRECT_STATUS,\n NO_BODY_STATUS_CODES,\n StreamTransfer,\n getTurboStreamSingleFetchDataStrategy,\n getSingleFetchDataStrategyImpl,\n stripIndexParam,\n singleFetchUrl,\n decodeViaTurboStream,\n RemixErrorBoundary,\n createServerRoutes,\n createClientRoutesWithHMRRevalidationOptOut,\n noActionDefinedError,\n createClientRoutes,\n shouldHydrateRouteLoader,\n getPatchRoutesOnNavigationFunction,\n useFogOFWarDiscovery,\n getManifestPath,\n FrameworkContext,\n CRITICAL_CSS_DATA_ATTRIBUTE,\n Links,\n PrefetchPageLinks,\n Meta,\n setIsHydrated,\n Scripts,\n createBrowserRouter,\n createHashRouter,\n BrowserRouter,\n HashRouter,\n HistoryRouter,\n Link,\n NavLink,\n Form,\n ScrollRestoration,\n useLinkClickHandler,\n useSearchParams,\n useSubmit,\n useFormAction,\n useFetcher,\n useFetchers,\n useScrollRestoration,\n useBeforeUnload,\n usePrompt,\n useViewTransitionState,\n StaticRouter,\n StaticRouterProvider,\n createStaticHandler2,\n createStaticRouter\n};\n","/**\n * Props Preparation for Runtime Guarantees\n *\n * Prepares props for foundation components with:\n * - Param defaults from runtime schema\n * - Guaranteed content structure (no null checks needed)\n * - Entity-shape guarantees on `content.data` when `data.entity` is declared\n * and a cascade match exists (see applyEntityShape below)\n *\n * This enables simpler component code by ensuring predictable prop shapes.\n */\n\nimport { singularize, isRichSchema } from '@uniweb/core'\n\n/**\n * Guarantee item has flat content structure\n *\n * @param {Object} item - Raw item from parser\n * @returns {Object} Item with guaranteed flat structure\n */\nfunction guaranteeItemStructure(item) {\n return {\n title: item.title || '',\n pretitle: item.pretitle || '',\n subtitle: item.subtitle || '',\n paragraphs: item.paragraphs || [],\n links: item.links || [],\n images: item.images || [],\n lists: item.lists || [],\n icons: item.icons || [],\n videos: item.videos || [],\n snippets: item.snippets || [],\n buttons: item.buttons || [],\n data: item.data || {},\n cards: item.cards || [],\n documents: item.documents || [],\n forms: item.forms || [],\n quotes: item.quotes || [],\n headings: item.headings || [],\n ...(item.math && item.math.length ? { math: item.math } : {}),\n }\n}\n\n/**\n * Guarantee content structure exists\n * Returns a flat content object with all standard fields guaranteed to exist\n *\n * @param {Object} parsedContent - Raw parsed content from semantic parser (flat structure)\n * @returns {Object} Content with guaranteed flat structure\n */\nexport function guaranteeContentStructure(parsedContent) {\n const content = parsedContent || {}\n\n return {\n // Flat header fields\n title: content.title || '',\n pretitle: content.pretitle || '',\n subtitle: content.subtitle || '',\n alignment: content.alignment || null,\n\n // Flat body fields\n paragraphs: content.paragraphs || [],\n links: content.links || [],\n images: content.images || [],\n lists: content.lists || [],\n icons: content.icons || [],\n videos: content.videos || [],\n insets: content.insets || [],\n snippets: content.snippets || [],\n buttons: content.buttons || [],\n data: content.data || {},\n cards: content.cards || [],\n documents: content.documents || [],\n forms: content.forms || [],\n quotes: content.quotes || [],\n headings: content.headings || [],\n\n // Rare collections — surfaced only when present so pages that don't\n // use them don't pay the allocation cost. Foundations that need them\n // should check for presence (content.math?.length) or use\n // content.sequence for in-order rendering.\n ...(content.math && content.math.length ? { math: content.math } : {}),\n\n // Items with guaranteed structure\n items: (content.items || []).map(guaranteeItemStructure),\n\n // Sequence for ordered rendering\n sequence: content.sequence || [],\n\n // Preserve raw content if present\n raw: content.raw,\n }\n}\n\n/**\n * Apply a schema to a single object\n * Only processes fields defined in the schema, preserves unknown fields\n *\n * @param {Object} obj - The object to process\n * @param {Object} schema - Schema definition (fieldName -> fieldDef)\n * @returns {Object} Object with schema defaults applied\n */\nfunction applySchemaToObject(obj, schema) {\n if (!obj || typeof obj !== 'object' || Array.isArray(obj)) {\n return obj\n }\n\n const result = { ...obj }\n\n for (const [field, fieldDef] of Object.entries(schema)) {\n // Get the default value - handle both shorthand and full form\n const defaultValue = typeof fieldDef === 'object' ? fieldDef.default : undefined\n\n // Apply default if field is missing and default exists\n if (result[field] === undefined && defaultValue !== undefined) {\n result[field] = defaultValue\n }\n\n // For select fields with options, apply default if value is not among valid options\n if (typeof fieldDef === 'object' && fieldDef.options && Array.isArray(fieldDef.options)) {\n if (result[field] !== undefined && !fieldDef.options.includes(result[field])) {\n // Value exists but is not valid - apply default if available\n if (defaultValue !== undefined) {\n result[field] = defaultValue\n }\n }\n }\n\n // Handle nested object schema\n if (typeof fieldDef === 'object' && fieldDef.type === 'object' && fieldDef.schema && result[field]) {\n result[field] = applySchemaToObject(result[field], fieldDef.schema)\n }\n\n // Handle array with inline schema\n if (typeof fieldDef === 'object' && fieldDef.type === 'array' && fieldDef.of && result[field]) {\n if (typeof fieldDef.of === 'object') {\n result[field] = result[field].map(item => applySchemaToObject(item, fieldDef.of))\n }\n }\n }\n\n return result\n}\n\n/**\n * Apply a schema to a value (object or array of objects)\n *\n * @param {Object|Array} value - The value to process\n * @param {Object} schema - Schema definition\n * @returns {Object|Array} Value with schema defaults applied\n */\nfunction applySchemaToValue(value, schema) {\n if (Array.isArray(value)) {\n return value.map(item => applySchemaToObject(item, schema))\n }\n return applySchemaToObject(value, schema)\n}\n\n/**\n * Apply field defaults from a rich form `fields` array to an object.\n *\n * Recurses into `type: 'form'` (composite arrays with childSchema) and\n * `type: 'nestedObject'` / `type: 'object'` (single nested objects).\n *\n * Conditional visibility (`field.condition`) is not yet applied here —\n * components receive all fields the author filled plus defaults; hiding\n * is a later pass that requires the shared evaluateCondition util.\n *\n * @param {Object} obj - Row data (object keyed by field id)\n * @param {Array} fields - Rich field definitions\n * @returns {Object} - obj with defaults filled in\n */\nfunction applyRichFieldDefaults(obj, fields) {\n if (!obj || typeof obj !== 'object' || Array.isArray(obj)) return obj\n if (!Array.isArray(fields)) return obj\n\n const result = { ...obj }\n\n for (const field of fields) {\n if (!field || typeof field !== 'object' || !field.id) continue\n const id = field.id\n\n if (result[id] === undefined && field.default !== undefined) {\n result[id] = field.default\n }\n\n if (field.type === 'form' && field.childSchema && Array.isArray(result[id])) {\n result[id] = result[id].map(item =>\n applyRichFieldDefaults(item, field.childSchema.fields)\n )\n } else if (\n (field.type === 'nestedObject' || field.type === 'object') &&\n Array.isArray(field.fields) &&\n result[id] &&\n typeof result[id] === 'object'\n ) {\n result[id] = applyRichFieldDefaults(result[id], field.fields)\n }\n }\n\n return result\n}\n\n/**\n * Apply a rich form schema to its stored value.\n *\n * Shape rules:\n * - composite (isComposite=true) → value is array of childSchema rows\n * - when `childCollection` is set, value may be `{ [childCollection]: [...] }`\n * - non-composite → value is a single object keyed by field id\n */\nfunction applyRichSchemaToValue(value, schema) {\n if (value == null) return value\n\n if (schema.isComposite && schema.childSchema) {\n const childFields = schema.childSchema.fields\n const collectionKey = schema.childCollection\n\n if (collectionKey && value && typeof value === 'object' && !Array.isArray(value)) {\n const arr = Array.isArray(value[collectionKey]) ? value[collectionKey] : []\n return {\n ...value,\n [collectionKey]: arr.map(row => applyRichFieldDefaults(row, childFields)),\n }\n }\n\n if (Array.isArray(value)) {\n return value.map(row => applyRichFieldDefaults(row, childFields))\n }\n\n return value\n }\n\n if (Array.isArray(schema.fields)) {\n return applyRichFieldDefaults(value, schema.fields)\n }\n\n return value\n}\n\n/**\n * Apply schemas to content.data\n * Only processes tags that have a matching schema, leaves others untouched\n *\n * @param {Object} data - The data object from content\n * @param {Object} schemas - Schema definitions from runtime meta\n * @returns {Object} Data with schemas applied\n */\nexport function applySchemas(data, schemas) {\n if (!schemas || !data || typeof data !== 'object') {\n return data || {}\n }\n\n const result = { ...data }\n\n for (const [tag, rawValue] of Object.entries(data)) {\n const schema = schemas[tag]\n if (!schema) continue // No schema for this tag - leave as-is\n\n result[tag] = isRichSchema(schema)\n ? applyRichSchemaToValue(rawValue, schema)\n : applySchemaToValue(rawValue, schema)\n }\n\n return result\n}\n\n/**\n * Apply entity-shape guarantees based on `data.entity` declaration.\n *\n * When a component declares `data: { entity: 'articles' }` **and** the\n * cascade produced a match for that schema (`content.data.articles` is\n * present), normalize:\n * - `content.data.articles` to an array (missing → `[]` is *not* added;\n * absence is preserved as a signal of \"no source\"). This only shapes\n * when a cascade match exists — if the key is missing entirely, it\n * stays missing.\n * - On template pages, `content.data[singular(entity)]` is guaranteed\n * to exist (defaulting to `null`) so components can do\n * `if (!article) return <NotFound />` without a `?.` chain.\n *\n * The `undefined` vs `[]` vs `null` distinctions are load-bearing:\n * - `content.data.articles === undefined` → no query for this entity\n * - `content.data.articles === []` → query ran, returned empty\n * - `content.data.article === null` → on template page, item not found\n * - `content.data.article === {...}` → on template page, item resolved\n *\n * @param {Object} data - content.data (already merged with entity data)\n * @param {Object|null} entityMeta - runtime data meta (`{ type, limit }`)\n * @param {Object|null} dynamicContext - set when block is on a template page\n * @returns {Object} data with entity-shape guarantees applied\n */\nexport function applyEntityShape(data, entityMeta, dynamicContext) {\n if (!entityMeta?.type || !data) return data || {}\n\n const plural = entityMeta.type\n const result = { ...data }\n\n // Only shape the collection when it was delivered. Absence stays absence.\n if (plural in result && !Array.isArray(result[plural]) && result[plural] != null) {\n // Delivered but wrong shape — coerce to array (single item → [item]).\n result[plural] = [result[plural]]\n }\n\n // On template pages, guarantee the singular key exists (null = not found).\n if (dynamicContext) {\n const singular = singularize(plural) || plural\n if (singular !== plural && !(singular in result)) {\n result[singular] = null\n }\n }\n\n return result\n}\n\n/**\n * Apply param defaults from runtime schema\n *\n * @param {Object} params - Params from frontmatter\n * @param {Object} defaults - Default values from runtime schema\n * @returns {Object} Merged params with defaults applied\n */\nexport function applyDefaults(params, defaults) {\n if (!defaults || Object.keys(defaults).length === 0) {\n return params || {}\n }\n\n return {\n ...defaults,\n ...(params || {}),\n }\n}\n\n/**\n * Merge entity data onto a block's parsedContent.data.\n *\n * Section-level data already on the block (from prerender fetches via\n * blockData.parsedContent.data in the Block constructor) takes priority;\n * entity data only fills missing keys. Mutates `block.parsedContent.data`\n * in place so the vanilla JS layer holds the assembled data and\n * subsequent reads see the same shape.\n */\nfunction mergeEntityData(block, entityData) {\n if (!entityData) return\n const current = block.parsedContent.data || {}\n let changed = false\n const merged = { ...current }\n for (const key of Object.keys(entityData)) {\n if (merged[key] === undefined) {\n merged[key] = entityData[key]\n changed = true\n }\n }\n if (changed) {\n block.parsedContent.data = merged\n }\n}\n\n/**\n * Run the foundation-level data handler on a block, if one is\n * registered. Runs after entity data merge and before the content\n * handler — the handler sees the fully assembled data and can filter,\n * reshape, or augment it before Loom (or any content transform) runs.\n *\n * The handler receives `(data, block)` where data is\n * `block.parsedContent.data`. It returns a new data object, or\n * null/undefined for no change. The returned data replaces\n * `block.parsedContent.data` for all downstream processing — both\n * the content handler and the component see the transformed data.\n *\n * Skipped when the block is still waiting on async data\n * (`block.dataLoading`), or when no handler is registered.\n * Errors are logged and the original data is preserved.\n */\nfunction runDataHandler(block) {\n if (block.dataLoading) return\n const handler = globalThis.uniweb?.foundationConfig?.handlers?.data\n if (typeof handler !== 'function') return\n\n try {\n const result = handler(block.parsedContent.data, block)\n if (result != null && result !== block.parsedContent.data) {\n block.parsedContent.data = result\n }\n } catch (err) {\n console.error('Foundation data handler failed:', err)\n }\n}\n\n/**\n * Run the foundation-level content handler on a block, if one is\n * registered. Runs at prop-preparation time — after the data handler\n * has had a chance to filter/reshape the data — so the handler sees\n * the fully assembled (and possibly filtered) data. Replaces\n * `block.parsedContent` in place with the re-parsed, instantiated\n * form. The handler receives `(data, block)` and reads raw\n * ProseMirror from `block.rawContent`.\n *\n * Skipped when the block is still waiting on async data\n * (`block.dataLoading`), when no handler is registered, when the\n * block has no raw content, when the handler returns a no-change\n * signal (undefined, null, or the same reference as rawContent), or\n * when the handler throws. Errors are logged via `console.error`.\n */\nfunction runContentHandler(block) {\n if (block.dataLoading) return\n const handler = globalThis.uniweb?.foundationConfig?.handlers?.content\n if (typeof handler !== 'function') return\n if (!block.rawContent || Object.keys(block.rawContent).length === 0) return\n\n try {\n const transformed = handler(block.parsedContent.data, block)\n if (!transformed || transformed === block.rawContent) return\n const reparsed = block.parseContent(transformed)\n reparsed.data = block.parsedContent.data\n block.parsedContent = reparsed\n block.items = reparsed.items || []\n } catch (err) {\n console.error('Foundation content handler failed:', err)\n }\n}\n\n/**\n * Run the foundation-level props handler on the final { content, params }\n * before they reach the component. Runs after content parsing, param\n * defaults, content guarantees, and schema application — the handler\n * sees the exact shape the component would receive and can modify it.\n *\n * The handler receives `(content, params, block)` and returns a new\n * `{ content, params }` object, or null/undefined for no change.\n *\n * Use cases: post-parse content reshaping, computed fields derived\n * from both content and params, param-driven content reorganization.\n * Errors are logged and the original props are preserved.\n */\nfunction runPropsHandler(content, params, block) {\n const handler = globalThis.uniweb?.foundationConfig?.handlers?.props\n if (typeof handler !== 'function') return null\n\n try {\n const result = handler(content, params, block)\n if (result && typeof result === 'object') return result\n } catch (err) {\n console.error('Foundation props handler failed:', err)\n }\n return null\n}\n\n/**\n * Prepare props for a component with runtime guarantees.\n *\n * Does the full content-assembly pipeline in one place so both\n * renderers (`BlockRenderer.jsx` CSR and `ssr-renderer.js` SSG) share\n * the same code path:\n *\n * 1. Merge entity data (resolved by EntityStore) onto\n * `block.parsedContent.data`.\n * 2. Run the foundation data handler (if registered) to filter or\n * reshape the assembled data.\n * 3. Run the foundation content handler (if registered) on the\n * block. This may replace `block.parsedContent` with a re-parsed,\n * instantiated version.\n * 4. Apply param defaults from meta.\n * 5. Build the guaranteed content structure.\n * 6. Apply schemas to content.data.\n * 7. Run the foundation props handler (if registered) for\n * post-processing of the final { content, params }.\n *\n * Steps 1–3 mutate the block (vanilla JS layer). Steps 4–7 are\n * pure derivations of the block's now-assembled state.\n *\n * @param {Object} block - The block instance\n * @param {Object} meta - Runtime metadata for the component (from meta[componentName])\n * @param {Object|null} [entityData] - Entity data resolved by EntityStore (null if none)\n * @returns {Object} Prepared props: { content, params }\n */\nexport function prepareProps(block, meta, entityData = null) {\n mergeEntityData(block, entityData)\n runDataHandler(block)\n runContentHandler(block)\n\n // Apply param defaults\n const defaults = meta?.defaults || {}\n const params = applyDefaults(block.properties, defaults)\n\n // Guarantee content structure\n let content = guaranteeContentStructure(block.parsedContent)\n\n // Apply entity-shape guarantees when the component declared `data.entity`\n // and a cascade match exists. Preserves `undefined` vs `[]` vs `null`\n // distinctions so components can differentiate \"no source\" from\n // \"empty source\" from \"template item not found.\"\n const entityMeta = meta?.data || null\n if (entityMeta && content.data) {\n const dynamicContext = block.dynamicContext || block.page?.dynamicContext || null\n content.data = applyEntityShape(content.data, entityMeta, dynamicContext)\n }\n\n // Apply schemas to content.data\n const schemas = meta?.schemas || null\n if (schemas && content.data) {\n content.data = applySchemas(content.data, schemas)\n }\n\n // Post-process hook\n const adjusted = runPropsHandler(content, params, block)\n if (adjusted) {\n return {\n content: adjusted.content || content,\n params: adjusted.params || params,\n }\n }\n\n return { content, params }\n}\n\n/**\n * Get runtime metadata for a component from the global uniweb instance\n *\n * @param {string} componentName\n * @returns {Object|null}\n */\nexport function getComponentMeta(componentName) {\n return globalThis.uniweb?.getComponentMeta?.(componentName) || null\n}\n\n/**\n * Get default param values for a component\n *\n * @param {string} componentName\n * @returns {Object}\n */\nexport function getComponentDefaults(componentName) {\n return globalThis.uniweb?.getComponentDefaults?.(componentName) || {}\n}\n","/**\n * Background\n *\n * Renders section backgrounds (color, gradient, image, video) with optional overlay.\n * Positioned absolutely behind content with proper z-index stacking.\n *\n * @module @uniweb/runtime/components/Background\n */\n\nimport React from 'react'\n\n/**\n * Background modes\n */\nconst MODES = {\n COLOR: 'color',\n GRADIENT: 'gradient',\n IMAGE: 'image',\n VIDEO: 'video',\n}\n\n/**\n * Default overlay colors\n */\nconst OVERLAY_COLORS = {\n light: 'rgba(255, 255, 255, 0.5)',\n dark: 'rgba(0, 0, 0, 0.5)',\n}\n\n/**\n * Resolve a URL against the site's base path\n * Prepends basePath to absolute URLs (starting with /) so they work\n * under subdirectory deployments (e.g., /templates/international/)\n */\nfunction resolveUrl(url) {\n if (!url || !url.startsWith('/')) return url\n const basePath = globalThis.uniweb?.activeWebsite?.basePath || ''\n if (!basePath) return url\n // Avoid double-prepending\n if (url.startsWith(basePath + '/') || url === basePath) return url\n return basePath + url\n}\n\n/**\n * Render gradient overlay\n */\nfunction GradientOverlay({ gradient, opacity = 0.5 }) {\n const {\n start = 'rgba(0,0,0,0.7)',\n end = 'rgba(0,0,0,0)',\n angle = 180,\n startPosition = 0,\n endPosition = 100,\n } = gradient\n\n const style = {\n position: 'absolute',\n inset: 0,\n background: `linear-gradient(${angle}deg, ${start} ${startPosition}%, ${end} ${endPosition}%)`,\n opacity,\n pointerEvents: 'none',\n }\n\n return <div className=\"background-overlay background-overlay--gradient\" style={style} aria-hidden=\"true\" />\n}\n\n/**\n * Render solid overlay\n */\nfunction SolidOverlay({ type = 'dark', opacity = 0.5 }) {\n const baseColor = type === 'light' ? '255, 255, 255' : '0, 0, 0'\n\n const style = {\n position: 'absolute',\n inset: 0,\n backgroundColor: `rgba(${baseColor}, ${opacity})`,\n pointerEvents: 'none',\n }\n\n return <div className=\"background-overlay background-overlay--solid\" style={style} aria-hidden=\"true\" />\n}\n\n/**\n * Render overlay (gradient or solid)\n */\nfunction Overlay({ overlay }) {\n if (!overlay?.enabled) return null\n\n if (overlay.gradient) {\n return <GradientOverlay gradient={overlay.gradient} opacity={overlay.opacity} />\n }\n\n return <SolidOverlay type={overlay.type} opacity={overlay.opacity} />\n}\n\n/**\n * Color background\n */\nfunction ColorBackground({ color }) {\n if (!color) return null\n\n const style = {\n position: 'absolute',\n inset: 0,\n backgroundColor: color,\n }\n\n return <div className=\"background-color\" style={style} aria-hidden=\"true\" />\n}\n\n/**\n * Gradient background\n */\nfunction GradientBackground({ gradient }) {\n if (!gradient) return null\n\n // Raw CSS gradient string (e.g., \"linear-gradient(to bottom, #000, #333)\")\n if (typeof gradient === 'string') {\n const style = { position: 'absolute', inset: 0, background: gradient }\n return <div className=\"background-gradient\" style={style} aria-hidden=\"true\" />\n }\n\n const {\n start = 'transparent',\n end = 'transparent',\n angle = 0,\n startPosition = 0,\n endPosition = 100,\n startOpacity = 1,\n endOpacity = 1,\n } = gradient\n\n // Convert colors to rgba if opacity is specified\n const startColor = startOpacity < 1 ? withOpacity(start, startOpacity) : start\n const endColor = endOpacity < 1 ? withOpacity(end, endOpacity) : end\n\n const style = {\n position: 'absolute',\n inset: 0,\n background: `linear-gradient(${angle}deg, ${startColor} ${startPosition}%, ${endColor} ${endPosition}%)`,\n }\n\n return <div className=\"background-gradient\" style={style} aria-hidden=\"true\" />\n}\n\n/**\n * Convert hex color to rgba with opacity\n */\nfunction withOpacity(color, opacity) {\n // Handle hex colors\n if (color.startsWith('#')) {\n const r = parseInt(color.slice(1, 3), 16)\n const g = parseInt(color.slice(3, 5), 16)\n const b = parseInt(color.slice(5, 7), 16)\n return `rgba(${r}, ${g}, ${b}, ${opacity})`\n }\n // Handle rgb/rgba\n if (color.startsWith('rgb')) {\n const match = color.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/)\n if (match) {\n return `rgba(${match[1]}, ${match[2]}, ${match[3]}, ${opacity})`\n }\n }\n // Fallback - return as is\n return color\n}\n\n/**\n * Image background\n */\nfunction ImageBackground({ image }) {\n if (!image?.src) return null\n\n const {\n src,\n position = 'center',\n size = 'cover',\n lazy = true,\n } = image\n\n const style = {\n position: 'absolute',\n inset: 0,\n backgroundImage: `url(${resolveUrl(src)})`,\n backgroundPosition: position,\n backgroundSize: size,\n backgroundRepeat: 'no-repeat',\n }\n\n // For lazy loading, we could use an img tag with loading=\"lazy\"\n // But for backgrounds, CSS is more appropriate\n // The lazy prop could be used for future intersection observer optimization\n\n return <div className=\"background-image\" style={style} aria-hidden=\"true\" />\n}\n\n/**\n * Check if user prefers reduced motion\n */\nfunction prefersReducedMotion() {\n if (typeof window === 'undefined') return false\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches\n}\n\n/**\n * Video background\n *\n * Supports multiple source formats with automatic fallback.\n * Respects prefers-reduced-motion by showing poster image instead.\n */\nfunction VideoBackground({ video }) {\n if (!video?.src) return null\n\n const {\n src,\n sources, // Array of { src, type } for multiple formats\n poster,\n loop = true,\n muted = true,\n } = video\n\n // Respect reduced motion preference - show poster image instead\n if (prefersReducedMotion() && poster) {\n return <ImageBackground image={{ src: poster, size: 'cover', position: 'center' }} />\n }\n\n const style = {\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }\n\n // Build source list: explicit sources array, or infer from src\n const sourceList = (sources || inferSources(src)).map(s => ({\n ...s,\n src: resolveUrl(s.src)\n }))\n\n return (\n <video\n className=\"background-video\"\n style={style}\n autoPlay\n loop={loop}\n muted={muted}\n playsInline\n poster={resolveUrl(poster)}\n aria-hidden=\"true\"\n >\n {sourceList.map(({ src: sourceSrc, type }, index) => (\n <source key={index} src={sourceSrc} type={type} />\n ))}\n </video>\n )\n}\n\n/**\n * Infer multiple source formats from a single src\n *\n * If given \"video.mp4\", also tries \"video.webm\" (better compression)\n * Browser will use first supported format\n */\nfunction inferSources(src) {\n const sources = []\n const ext = src.split('.').pop()?.toLowerCase()\n const basePath = src.slice(0, src.lastIndexOf('.'))\n\n // Prefer webm (better compression), fall back to original\n if (ext === 'mp4') {\n sources.push({ src: `${basePath}.webm`, type: 'video/webm' })\n sources.push({ src, type: 'video/mp4' })\n } else if (ext === 'webm') {\n sources.push({ src, type: 'video/webm' })\n sources.push({ src: `${basePath}.mp4`, type: 'video/mp4' })\n } else {\n // Single source for other formats\n sources.push({ src, type: getVideoMimeType(src) })\n }\n\n return sources\n}\n\n/**\n * Get video MIME type from URL\n */\nfunction getVideoMimeType(src) {\n if (src.endsWith('.webm')) return 'video/webm'\n if (src.endsWith('.ogg') || src.endsWith('.ogv')) return 'video/ogg'\n return 'video/mp4'\n}\n\n/**\n * Background component\n *\n * @param {Object} props\n * @param {string} props.mode - Background mode: 'color', 'gradient', 'image', 'video'\n * @param {string} props.color - Color value (for color mode)\n * @param {Object} props.gradient - Gradient configuration\n * @param {Object} props.image - Image configuration\n * @param {Object} props.video - Video configuration\n * @param {Object} props.overlay - Overlay configuration\n * @param {string} props.className - Additional CSS class\n */\nexport default function Background({\n mode,\n color,\n gradient,\n image,\n video,\n overlay,\n className = '',\n}) {\n // No background to render\n if (!mode) return null\n\n const containerStyle = {\n position: 'absolute',\n inset: 0,\n overflow: 'hidden',\n zIndex: 0,\n }\n\n return (\n <div\n className={`background background--${mode} ${className}`.trim()}\n style={containerStyle}\n aria-hidden=\"true\"\n >\n {/* Render background based on mode */}\n {mode === MODES.COLOR && <ColorBackground color={color} />}\n {mode === MODES.GRADIENT && <GradientBackground gradient={gradient} />}\n {mode === MODES.IMAGE && <ImageBackground image={image} />}\n {mode === MODES.VIDEO && <VideoBackground video={video} />}\n\n {/* Overlay on top of background */}\n <Overlay overlay={overlay} />\n </div>\n )\n}\n\n/**\n * Export background modes for external use\n */\nexport { MODES as BackgroundModes }\n","/**\n * BlockRenderer\n *\n * Bridges Block data to foundation components.\n * Handles theming, wrapper props, and runtime guarantees.\n * Uses EntityStore for entity-aware data resolution.\n */\n\nimport React, { useState, useEffect } from 'react'\nimport { prepareProps, getComponentMeta } from '../prepare-props.js'\nimport Background from './Background.jsx'\n\n/**\n * Valid color contexts\n */\nconst VALID_CONTEXTS = ['light', 'medium', 'dark']\n\n/**\n * Build wrapper props from block configuration\n */\nconst getWrapperProps = (block) => {\n const theme = block.themeName\n const blockClassName = block.state?.className || ''\n\n // Build context class (context-light, context-medium, context-dark)\n // Empty themeName = Auto → no context class → inherits tokens from :root\n // Non-empty = Pinned → context class sets tokens directly on the element\n let contextClass = ''\n if (theme && VALID_CONTEXTS.includes(theme)) {\n contextClass = `context-${theme}`\n }\n\n let className = contextClass\n if (blockClassName) {\n className = className ? `${className} ${blockClassName}` : blockClassName\n }\n\n const { background = {} } = block.standardOptions\n const style = {}\n\n // If background has content, ensure relative positioning and a stacking context\n // so the background's z-index stays contained within this section.\n if (background.mode) {\n style.position = 'relative'\n style.isolation = 'isolate'\n }\n\n // Apply context overrides as inline CSS custom properties.\n // These override the context class tokens for this specific section.\n if (block.contextOverrides) {\n for (const [key, value] of Object.entries(block.contextOverrides)) {\n style[`--${key}`] = value\n }\n }\n\n // Use stableId for DOM ID if available (stable across reordering)\n // Falls back to positional id for backwards compatibility\n const sectionId = block.stableId || block.id\n\n return {\n id: `section-${sectionId}`,\n style,\n className,\n background\n }\n}\n\n/**\n * BlockRenderer component\n *\n * Two rendering modes:\n * - Bare (as=null/false): component only, no wrapper — used by ChildBlocks (default)\n * - Section (as='section'/'div'/etc.): full treatment with wrapper element, context\n * classes, background, section ID — used by page-level Blocks component\n *\n * @param {Object} props\n * @param {Block} props.block - Block instance to render\n * @param {string|null} props.as - Wrapper element tag for section mode, or null/false for bare mode\n */\nexport default function BlockRenderer({ block, as = 'section' }) {\n const Component = block.initComponent()\n\n // Entity-aware data resolution via EntityStore\n const entityStore = block.website.entityStore\n const meta = getComponentMeta(block.type)\n\n const resolved = entityStore.resolve(block, meta)\n\n // Async data for when resolve returns 'pending' (runtime fetches)\n const [asyncData, setAsyncData] = useState(null)\n\n // Reset async data when block changes (SPA navigation)\n useEffect(() => {\n setAsyncData(null)\n }, [block])\n\n // Fetch missing data asynchronously. The AbortController's signal flows\n // into ctx.signal so fetchers see the cancellation, and the FetcherDispatcher\n // attaches it to the shared in-flight entry — aborting this block's signal\n // doesn't cancel a fetch other blocks are still waiting on.\n useEffect(() => {\n if (resolved.status !== 'pending') return\n\n const controller = new AbortController()\n entityStore.fetch(block, meta, { signal: controller.signal }).then((result) => {\n if (controller.signal.aborted) return\n if (result.data) setAsyncData(result.data)\n })\n return () => controller.abort()\n }, [block])\n\n // Use sync resolved data when available, fall back to async\n const entityData = resolved.status === 'ready' ? resolved.data : asyncData\n\n // Signal to component that data is loading\n block.dataLoading = resolved.status === 'pending' && !entityData\n\n if (!Component) {\n return (\n <div className=\"block-error\" style={{ padding: '1rem', background: '#fef2f2', color: '#dc2626' }}>\n Component not found: {block.type}\n </div>\n )\n }\n\n // Build content and params with runtime guarantees.\n // prepareProps handles the full pipeline: entity data merge onto\n // block.parsedContent.data, foundation content handler invocation,\n // guaranteed content structure, schema application, and param defaults.\n // See prepare-props.js for the pipeline details.\n const prepared = prepareProps(block, meta, entityData)\n const params = prepared.params\n const content = {\n ...prepared.content,\n ...block.properties, // Frontmatter params overlay (legacy support)\n }\n\n const componentProps = {\n content,\n params,\n block\n }\n\n // Bare mode — component only, no wrapper or section chrome.\n // Used by ChildBlocks for grid cells, tab panels, inline children, insets.\n if (!as) {\n return <Component {...componentProps} />\n }\n\n // Section mode — full treatment with wrapper, context classes, background.\n const { background, ...wrapperProps } = getWrapperProps(block)\n\n // Merge Component.className (static classes declared on the component function)\n // Order: context-{theme} + block.state.className + Component.className\n const componentClassName = Component.className\n if (componentClassName) {\n wrapperProps.className = wrapperProps.className\n ? `${wrapperProps.className} ${componentClassName}`\n : componentClassName\n }\n\n // Check if component handles its own background (background: 'self' in meta.js)\n // Components that render their own background layer (solid colors, insets, effects)\n // opt out so the runtime doesn't render an occluded layer underneath.\n const hasBackground = background?.mode && meta?.background !== 'self'\n\n // Signal to the component that the engine is rendering a background.\n // Components check block.hasBackground to skip their own opaque bg\n // and let the engine background show through.\n block.hasBackground = hasBackground\n\n // Determine wrapper element:\n // - Explicit as prop (not 'section') → use as prop directly\n // - Component.as → use component's declared tag (e.g., Header.as = 'header')\n // - fallback → 'section'\n const Wrapper = as !== 'section' ? as : (Component.as || 'section')\n\n // Render with or without background\n if (hasBackground) {\n return (\n <Wrapper {...wrapperProps}>\n {/* Background layer (positioned absolutely) */}\n <Background\n mode={background.mode}\n color={background.color}\n gradient={background.gradient}\n image={background.image}\n video={background.video}\n overlay={background.overlay}\n />\n\n {/* Content layer (above background) */}\n <div style={{ position: 'relative', zIndex: 10 }}>\n <Component {...componentProps} />\n </div>\n </Wrapper>\n )\n }\n\n // No background - simpler render without extra wrapper\n return (\n <Wrapper {...wrapperProps}>\n <Component {...componentProps} />\n </Wrapper>\n )\n}\n","/**\n * Blocks\n *\n * Renders an array of blocks for a layout area (header, body, footer, panels).\n * Used by the Layout component to pre-render each area.\n */\n\nimport React from 'react'\nimport BlockRenderer from './BlockRenderer.jsx'\n\n/**\n * Render a list of blocks as top-level sections.\n * Used by Layout to pre-render each area (header, body, footer, panels).\n * Each block gets full section treatment (wrapper, context classes, background).\n *\n * @param {Object} props\n * @param {Block[]} props.blocks - Array of Block instances to render\n */\nexport default function Blocks({ blocks }) {\n if (!blocks || blocks.length === 0) return null\n\n return blocks.map((block, index) => (\n <React.Fragment key={block.id || index}>\n <BlockRenderer block={block} />\n </React.Fragment>\n ))\n}\n","/**\n * Layout\n *\n * Orchestrates page rendering by assembling layout areas (header, body, footer, and\n * any custom areas defined in the layout directory).\n * Supports foundation-provided custom Layout components via website.getRemoteLayout().\n *\n * Layout Areas:\n * Areas are general — any name works. Common conventions:\n * - header: Top navigation, branding (from layout/header.md)\n * - body: Main page content (from page sections)\n * - footer: Bottom navigation, copyright (from layout/footer.md)\n * - left: Left sidebar/panel (from layout/left.md)\n * - right: Right sidebar/panel (from layout/right.md)\n *\n * Custom Layouts:\n * Foundations provide custom layouts via src/layouts/:\n *\n * ```\n * src/layouts/\n * ├── DocsLayout/\n * │ ├── index.jsx\n * │ └── meta.js\n * └── MarketingLayout.jsx\n * ```\n *\n * The Layout component receives pre-rendered areas as props:\n * - page, website: Runtime context\n * - params: Layout params (merged with meta.js defaults)\n * - body: Pre-rendered body React element\n * - header, footer, left, right, ...: Pre-rendered area React elements\n */\n\nimport Blocks from './Blocks.jsx'\n\n/**\n * Default layout - renders header, body, footer in sequence\n * (no panels in default layout)\n */\nfunction DefaultLayout({ header, body, footer }) {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', minHeight: '100vh' }}>\n {header && <header>{header}</header>}\n {body && <main style={{ flex: 1 }}>{body}</main>}\n {footer && <footer>{footer}</footer>}\n </div>\n )\n}\n\n/**\n * Initialize all blocks to ensure cross-block communication works.\n * Must be called before rendering so getNextBlockInfo() can access sibling contexts.\n *\n * @param {Block[][]} blockGroups - Arrays of blocks from all layout areas\n */\nfunction initializeAllBlocks(...blockGroups) {\n for (const blocks of blockGroups) {\n if (!blocks) continue\n for (const block of blocks) {\n block.initComponent()\n }\n }\n}\n\n/**\n * Merge page-level layout params with meta.js defaults\n */\nfunction mergeParams(pageParams = {}, defaults = {}) {\n return { ...defaults, ...pageParams }\n}\n\n/**\n * Layout component\n *\n * @param {Object} props\n * @param {Page} props.page - Current page instance\n * @param {Website} props.website - Website instance\n */\nexport default function Layout({ page, website }) {\n const layoutName = page.getLayoutName()\n const RemoteLayout = website.getRemoteLayout(layoutName)\n const layoutMeta = website.getLayoutMeta(layoutName)\n\n const bodyBlocks = page.getBodyBlocks()\n const areas = page.getLayoutAreas()\n\n // Pre-initialize all blocks before rendering any.\n // This ensures cross-block communication (getNextBlockInfo, getPrevBlockInfo)\n // can access sibling block contexts that are set in initComponent().\n const allBlockGroups = [bodyBlocks, ...Object.values(areas)]\n initializeAllBlocks(...allBlockGroups)\n\n // Pre-render each area as React elements.\n // When the foundation enables view transitions, wrap areas in thin divs\n // with view-transition-name so the browser can animate them independently.\n const transitions = website.viewTransitions ? layoutMeta?.transitions : null\n\n const bodyElement = bodyBlocks ? (\n transitions?.body\n ? <div style={{ viewTransitionName: transitions.body }}><Blocks blocks={bodyBlocks} /></div>\n : <Blocks blocks={bodyBlocks} />\n ) : null\n\n const areaElements = {}\n for (const [name, blocks] of Object.entries(areas)) {\n const transitionName = transitions?.[name]\n areaElements[name] = transitionName\n ? <div style={{ viewTransitionName: transitionName }}><Blocks blocks={blocks} /></div>\n : <Blocks blocks={blocks} />\n }\n\n // Use foundation's custom Layout if provided\n if (RemoteLayout) {\n const params = mergeParams(page.getLayoutParams(), layoutMeta?.defaults)\n\n return (\n <RemoteLayout\n key={layoutName}\n page={page}\n website={website}\n params={params}\n body={bodyElement}\n {...areaElements}\n />\n )\n }\n\n // Default layout\n return (\n <DefaultLayout\n body={bodyElement}\n {...areaElements}\n />\n )\n}\n","/**\n * useHeadMeta Hook\n *\n * Manages document head meta tags for SEO and social sharing.\n * Updates meta tags when page changes in SPA navigation.\n */\n\nimport { useEffect, useRef } from 'react'\n\n/**\n * Meta tag definitions for easy management\n */\nconst META_TAGS = {\n description: { name: 'description' },\n keywords: { name: 'keywords' },\n robots: { name: 'robots' },\n 'og:title': { property: 'og:title' },\n 'og:description': { property: 'og:description' },\n 'og:image': { property: 'og:image' },\n 'og:url': { property: 'og:url' },\n 'og:type': { property: 'og:type' },\n 'twitter:card': { name: 'twitter:card' },\n 'twitter:title': { name: 'twitter:title' },\n 'twitter:description': { name: 'twitter:description' },\n 'twitter:image': { name: 'twitter:image' }\n}\n\n/**\n * Get or create a meta tag element\n * @param {string} key - Meta tag key (e.g., 'description', 'og:title')\n * @returns {HTMLMetaElement}\n */\nfunction getOrCreateMetaTag(key) {\n const config = META_TAGS[key]\n if (!config) return null\n\n const selector = config.property\n ? `meta[property=\"${config.property}\"]`\n : `meta[name=\"${config.name}\"]`\n\n let element = document.querySelector(selector)\n\n if (!element) {\n element = document.createElement('meta')\n if (config.property) {\n element.setAttribute('property', config.property)\n } else {\n element.setAttribute('name', config.name)\n }\n document.head.appendChild(element)\n }\n\n return element\n}\n\n/**\n * Get or create a link element (for canonical)\n * @param {string} rel - Link rel attribute\n * @returns {HTMLLinkElement}\n */\nfunction getOrCreateLinkTag(rel) {\n let element = document.querySelector(`link[rel=\"${rel}\"]`)\n\n if (!element) {\n element = document.createElement('link')\n element.setAttribute('rel', rel)\n document.head.appendChild(element)\n }\n\n return element\n}\n\n/**\n * Set or remove a meta tag's content\n * @param {string} key - Meta tag key\n * @param {string|null} content - Content value (null to remove)\n */\nfunction setMetaContent(key, content) {\n const element = getOrCreateMetaTag(key)\n if (!element) return\n\n if (content) {\n element.setAttribute('content', content)\n } else {\n // Remove the tag if no content\n element.remove()\n }\n}\n\n/**\n * useHeadMeta hook\n *\n * @param {Object} meta - Head metadata\n * @param {string} meta.title - Page title\n * @param {string} meta.description - Meta description\n * @param {string} meta.keywords - Meta keywords (string or array)\n * @param {string} meta.canonical - Canonical URL\n * @param {string} meta.robots - Robots directive (e.g., 'noindex, nofollow')\n * @param {Object} meta.og - Open Graph metadata\n * @param {string} meta.og.title - OG title\n * @param {string} meta.og.description - OG description\n * @param {string} meta.og.image - OG image URL\n * @param {string} meta.og.url - OG URL\n * @param {Object} options - Hook options\n * @param {string} options.siteName - Site name for title suffix\n * @param {string} options.titleSeparator - Separator between page title and site name\n */\nexport function useHeadMeta(meta, options = {}) {\n const {\n siteName = '',\n titleSeparator = ' | '\n } = options\n\n // Track created elements for cleanup\n const createdElements = useRef([])\n\n useEffect(() => {\n if (!meta) return\n\n // Update document title\n if (meta.title) {\n const fullTitle = siteName\n ? `${meta.title}${titleSeparator}${siteName}`\n : meta.title\n document.title = fullTitle\n }\n\n // Update meta description\n setMetaContent('description', meta.description || null)\n\n // Update meta keywords\n const keywords = Array.isArray(meta.keywords)\n ? meta.keywords.join(', ')\n : meta.keywords\n setMetaContent('keywords', keywords || null)\n\n // Update robots\n setMetaContent('robots', meta.robots || null)\n\n // Update Open Graph tags\n if (meta.og) {\n setMetaContent('og:title', meta.og.title || meta.title || null)\n setMetaContent('og:description', meta.og.description || meta.description || null)\n setMetaContent('og:image', meta.og.image || null)\n setMetaContent('og:url', meta.og.url || null)\n setMetaContent('og:type', 'website')\n\n // Twitter cards (fallback to OG values)\n setMetaContent('twitter:card', meta.og.image ? 'summary_large_image' : 'summary')\n setMetaContent('twitter:title', meta.og.title || meta.title || null)\n setMetaContent('twitter:description', meta.og.description || meta.description || null)\n setMetaContent('twitter:image', meta.og.image || null)\n }\n\n // Update canonical link\n if (meta.canonical) {\n const canonicalLink = getOrCreateLinkTag('canonical')\n canonicalLink.setAttribute('href', meta.canonical)\n } else {\n // Remove canonical if not set\n const existingCanonical = document.querySelector('link[rel=\"canonical\"]')\n if (existingCanonical) {\n existingCanonical.remove()\n }\n }\n\n // Cleanup function - reset to defaults on unmount\n return () => {\n // We don't remove tags on cleanup because another page will set them\n // Just reset title as a fallback\n document.title = siteName || 'Website'\n }\n }, [\n meta?.title,\n meta?.description,\n meta?.keywords,\n meta?.canonical,\n meta?.robots,\n meta?.og?.title,\n meta?.og?.description,\n meta?.og?.image,\n meta?.og?.url,\n siteName,\n titleSeparator\n ])\n}\n\nexport default useHeadMeta\n","/**\n * Default 404 Page Content\n *\n * Single source of truth for the fallback 404 page shown when a site\n * has no custom 404 page defined. Used by:\n * - PageRenderer.jsx (client-side, as React elements)\n * - ssr-renderer.js generate404Html (build-time, as HTML string)\n *\n * The wrapper uses min-height + flex centering so the 404 content\n * renders at the same position regardless of parent layout context.\n * This prevents a visible flash when React hydrates over the SSR content.\n */\n\nimport React from 'react'\n\nconst styles = {\n wrapper: {\n minHeight: '80vh',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '2rem',\n textAlign: 'center',\n },\n heading: { fontSize: '3rem', fontWeight: 'bold', color: '#1f2937', marginBottom: '1rem' },\n message: { color: '#64748b', marginBottom: '2rem' },\n link: { color: '#3b82f6', textDecoration: 'underline' },\n}\n\n/**\n * React element for client-side rendering (PageRenderer).\n * Reads basePath from the runtime so the homepage link works\n * in subdirectory deployments (e.g., /sites/testproject).\n */\nexport function Default404() {\n const basePath = globalThis.uniweb?.activeWebsite?.basePath || ''\n const homeHref = basePath ? `${basePath}/` : '/'\n return React.createElement('div', { className: 'page-not-found', style: styles.wrapper },\n React.createElement('h1', { style: styles.heading }, '404'),\n React.createElement('p', { style: styles.message }, 'Page not found'),\n React.createElement('a', { href: homeHref, style: styles.link }, 'Go to homepage')\n )\n}\n\n/**\n * Static HTML string for SSR injection (generate404Html).\n *\n * @param {string} [basePath] - Base path prefix for the homepage link (e.g., '/sites/testproject')\n */\nexport function default404Html(basePath = '') {\n const homeHref = basePath ? `${basePath}/` : '/'\n return (\n `<div class=\"page-not-found\" style=\"min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center\">` +\n `<h1 style=\"font-size:3rem;font-weight:bold;color:#1f2937;margin-bottom:1rem\">404</h1>` +\n `<p style=\"color:#64748b;margin-bottom:2rem\">Page not found</p>` +\n `<a href=\"${homeHref}\" style=\"color:#3b82f6;text-decoration:underline\">Go to homepage</a>` +\n `</div>`\n )\n}\n","/**\n * PageRenderer\n *\n * Renders a page using the Layout component for proper orchestration\n * of header, body, footer, and panel areas.\n * Manages head meta tags for SEO and social sharing.\n */\n\nimport React, { useMemo, useEffect, useReducer, useRef } from 'react'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport BlockRenderer from './BlockRenderer.jsx'\nimport Layout from './Layout.jsx'\nimport { useHeadMeta } from '../hooks/useHeadMeta.js'\nimport { buildSectionOverrides } from '@uniweb/theming'\nimport { Default404 } from '../default-404.js'\n\n/**\n * ChildBlocks - renders child blocks of a block\n * Exposed for use by foundation components via @uniweb/kit\n *\n * By default, renders each child as a bare component (no wrapper element,\n * no context classes, no background). This is the common case for grid cells,\n * tab panels, carousel slides, and inline children.\n *\n * Pass `wrapAs` to opt into full section treatment (wrapper element, context\n * classes, background, section ID) — rare, for independent nested sections.\n *\n * @param {Object} props\n * @param {Block[]} props.blocks - Explicit array of blocks to render\n * @param {Block} props.from - Parent block to extract childBlocks from (convenience shorthand)\n * @param {string} [props.wrapAs] - Wrapper element tag for section treatment ('div', 'article', etc.)\n *\n * @example\n * // Bare rendering (default) — grid cells, tabs, inline children\n * <ChildBlocks from={block} />\n *\n * @example\n * // Section treatment — each child gets its own wrapper, context, background\n * <ChildBlocks from={block} wrapAs=\"div\" />\n */\nexport function ChildBlocks({ blocks, from, wrapAs }) {\n const blockList = blocks || from?.childBlocks || []\n\n return blockList.map((childBlock, index) => (\n <React.Fragment key={childBlock.id || index}>\n <BlockRenderer block={childBlock} as={wrapAs || null} />\n </React.Fragment>\n ))\n}\n\n/**\n * Section override styles — pre-built CSS for all section-level overrides on the active page.\n * Injects a <style> tag into <head> (after uniweb-theme) so overrides\n * cascade correctly and don't live inside the React root.\n */\nfunction SectionOverrideStyles({ page, appearance }) {\n const styleRef = useRef(null)\n\n const css = useMemo(() => {\n if (!page) return ''\n const blocks = page.getPageBlocks()\n return buildSectionOverrides(blocks, appearance)\n }, [page, appearance])\n\n useEffect(() => {\n if (!css) {\n if (styleRef.current) {\n styleRef.current.remove()\n styleRef.current = null\n }\n return\n }\n\n if (!styleRef.current) {\n // Reuse the SSR-injected element if present to avoid duplicates\n styleRef.current = document.getElementById('uniweb-page-overrides') || document.createElement('style')\n styleRef.current.id = 'uniweb-page-overrides'\n if (!styleRef.current.parentNode) {\n // Not yet in the DOM — insert after uniweb-theme if it exists, otherwise append to head\n const themeStyle = document.getElementById('uniweb-theme')\n if (themeStyle && themeStyle.nextSibling) {\n themeStyle.parentNode.insertBefore(styleRef.current, themeStyle.nextSibling)\n } else if (themeStyle) {\n themeStyle.parentNode.appendChild(styleRef.current)\n } else {\n document.head.appendChild(styleRef.current)\n }\n }\n }\n\n styleRef.current.textContent = css\n\n return () => {\n if (styleRef.current) {\n styleRef.current.remove()\n styleRef.current = null\n }\n }\n }, [css])\n\n return null\n}\n\n/**\n * PageRenderer component\n *\n * Renders the current page using the Layout system which supports:\n * - Header, body, footer areas\n * - Left and right panels\n * - Foundation-provided custom layouts\n * - Per-page layout preferences\n */\nexport default function PageRenderer() {\n const location = useLocation()\n const uniweb = globalThis.uniweb\n const website = uniweb?.activeWebsite\n const siteName = website?.name || ''\n\n // Force re-render counter — incremented by DataStore listener below\n const [, forceUpdate] = useReducer((x) => x + 1, 0)\n\n // Resolve page from current URL and sync website.activePage immediately.\n // This must happen synchronously (not in an effect) so child components\n // like Header see the correct activePage during the same render cycle.\n const navigate = useNavigate()\n\n let page = website?.getPage(location.pathname)\n if (page && website) website.setActivePage(location.pathname)\n\n // ─── Content loading (split page content) ───\n // On first load, the current page's sections are pre-embedded → contentReady = true.\n // On SPA navigation to an unvisited page → contentReady = false → fetch → re-render.\n const contentReady = !page || !page.hasContent() || page.isContentLoaded()\n\n useEffect(() => {\n if (contentReady) return\n page.loadContent().then(() => forceUpdate())\n }, [page, contentReady])\n\n // ─── Compute navigation targets (before hooks, no early returns) ───\n\n // Explicit redirect: in page.yml\n const redirectTarget = page?.redirect || null\n\n // Auto-redirect for content-less pages (structural containers).\n // Folders with page.yml but no markdown keep their route in the hierarchy;\n // when visited directly, redirect to the first descendant with content.\n const autoRedirectRoute = page && !page.redirect && !page.hasContent()\n ? page.getNavigableRoute()\n : null\n const shouldAutoRedirect = !!(autoRedirectRoute && autoRedirectRoute !== page?.route)\n\n // If no page found, try the 404 page (do NOT fall back to activePage/homepage)\n const isNotFound = !page && !redirectTarget\n if (isNotFound) {\n page = website?.getNotFoundPage?.() || null\n }\n\n // Head metadata — compute for all cases (redirect pages get a fallback)\n const headMeta = page?.getHeadMeta?.() || {\n title: isNotFound ? 'Page Not Found' : (page?.title || 'Website'),\n description: page?.description || ''\n }\n\n // ─── All hooks called unconditionally (React rules of hooks) ───\n\n useEffect(() => {\n if (!redirectTarget) return\n if (redirectTarget.startsWith('http')) {\n window.location.replace(redirectTarget)\n } else {\n navigate(redirectTarget, { replace: true })\n }\n }, [redirectTarget, navigate])\n\n useEffect(() => {\n if (!shouldAutoRedirect) return\n navigate(autoRedirectRoute, { replace: true })\n }, [shouldAutoRedirect, autoRedirectRoute, navigate])\n\n useHeadMeta(headMeta, { siteName })\n\n // For dynamic pages created before collection data was available (hard reload),\n // the page title starts as the template name (e.g. '[id]'). Subscribe to\n // DataStore updates so we re-render once the collection loads — _createDynamicPage\n // then runs again with fresh data and sets the correct title/notFound state.\n const isDynamicPending = !!(page?.dynamicContext && !website?._dynamicPageCache?.has(location.pathname))\n useEffect(() => {\n if (!isDynamicPending || !website?.dataStore) return\n return website.dataStore.subscribe(forceUpdate)\n }, [isDynamicPending, website])\n\n // ─── Early returns (after all hooks) ───\n\n if (redirectTarget) return null\n if (shouldAutoRedirect) return null\n\n // Rewrite pages are served by an external site — the host handles routing.\n // In SPA mode this shouldn't be reached (host proxies before JS loads),\n // but if it is (e.g., dev mode), do a full page reload to let the host handle it.\n if (page?.rewrite) {\n window.location.reload()\n return null\n }\n\n if (!page) {\n // No page and no 404 page defined - show shared fallback + dev debug info\n const requestedPath = location.pathname\n const isDev = import.meta.env?.DEV\n return (\n <>\n <Default404 />\n {isDev && (\n <div style={{ marginTop: '0', padding: '1rem', background: '#f1f5f9', borderRadius: '0.5rem', textAlign: 'left', maxWidth: '32rem', margin: '0 auto' }}>\n <p style={{ fontWeight: '600', color: '#475569', marginBottom: '0.5rem' }}>Debug info</p>\n <p style={{ fontSize: '0.875rem', color: '#64748b' }}>Path: {requestedPath}</p>\n <p style={{ fontSize: '0.875rem', color: '#64748b' }}>Locale: {website?.getActiveLocale?.() || 'unknown'}</p>\n <p style={{ fontSize: '0.875rem', color: '#64748b' }}>Known routes: {website?.pageRoutes?.join(', ') || 'none'}</p>\n <p style={{ fontSize: '0.75rem', color: '#94a3b8', marginTop: '0.5rem' }}>Tip: Create a pages/404/ folder with a page.yml and content to customize this page.</p>\n </div>\n )}\n </>\n )\n }\n\n // Wait for content before rendering blocks (split page content).\n // The prerendered HTML is already visible while we load.\n if (!contentReady) return null\n\n const appearance = website?.themeData?.appearance\n\n // Use Layout component for proper orchestration\n return (\n <>\n <SectionOverrideStyles page={page} appearance={appearance} />\n <Layout page={page} website={website} />\n </>\n )\n}\n","/**\n * Layer-2 wiring helpers: runtime ↔ Uniweb singleton.\n *\n * After `createUniweb()` constructs the singleton, the runtime fills a\n * few declared slots on it before the first render — foundation\n * capabilities (`defaultInsets`, `xref.build()`), per-request data\n * hydration into `website.dataStore`, locale-scoped content slicing.\n * This step is identical in every environment (browser SPA, SSG\n * prerender, cloud SSR) because it's plain data manipulation on a JS\n * object: no React rendering happens here, no hooks are called, no DOM\n * is touched, no `react-dom/server` is needed.\n *\n * That's why these helpers live in one file imported by both\n * `setup.js` (browser boot) and `ssr-renderer.js` (SSG/cloud-SSR boot),\n * instead of being duplicated into each. Things that genuinely differ\n * between environments — routing components, icon-cache hydration from\n * the DOM, the per-page render loop — stay in the per-environment\n * entries; these helpers cover only the environment-agnostic L2 work.\n *\n * Keeping this file React-free matters for the SPA bundle: `setup.js`\n * pulls `wire-foundation.js` directly, but it must NOT transitively\n * pull `ssr-renderer.js` (which imports `react-dom/server`). The L2\n * helpers therefore live here, while the L3-composing\n * `initPrerenderForLocale` lives in `ssr-renderer.js`.\n *\n * Adding a new framework-level capability:\n * 1. Read the foundation declaration via `foundation.default.capabilities.<name>`.\n * 2. Apply it to the uniweb singleton (set a slot, call a build hook,\n * register something on `activeWebsite`).\n * 3. Provide a runtime fallback if the capability is one foundations\n * may legitimately not declare (see `FallbackRef`).\n *\n * Foundation export shape contract: the runtime always loads the\n * **built** foundation artifact (`dist/foundation.js`) via\n * `loadFoundation()` in `foundation-loader.js`, which does `import(url)`\n * and returns a module namespace. The build pipeline\n * (`framework/build/src/generate-entry.js`) wraps the foundation's\n * source default export under `default.capabilities.*`, so the runtime\n * sees a single canonical shape with no need for fallback chains. See\n * `framework/CLAUDE.md` \"Three-Layer Runtime Model\" for the rationale\n * and for how this differs from `@uniweb/press` / `@uniweb/unipress`,\n * which DO need to handle a second shape because they're sometimes\n * called from inside a foundation bundle (where the foundation imports\n * its own source as a bare default object).\n */\n\nimport React from 'react'\nimport { deriveCacheKey } from '@uniweb/core'\n\n/**\n * Renders unhandled `[#id]` cross-reference markers as plain text. Used\n * when the active foundation didn't declare its own `<Ref>` via\n * `defaultInsets`. Pure `React.createElement` — safe in every\n * environment, including the hook-free SSR pipeline.\n *\n * Foundations that support cross-references override this by exporting\n * `defaultInsets: { Ref }` (with kit's xref-aware Ref) from their\n * source — the build pipeline carries it through into\n * `default.capabilities.defaultInsets`.\n */\nexport function FallbackRef({ params }) {\n return React.createElement(\n 'span',\n { className: 'xref xref--unhandled' },\n `[${params?.key || '?'}]`,\n )\n}\n\n/**\n * Wire foundation-declared capabilities onto a freshly constructed\n * Uniweb singleton. Called once, after `createUniweb()`, before any\n * rendering. Identical for SPA, SSG, and cloud SSR.\n *\n * @param {import('@uniweb/core').default} uniweb - From createUniweb(...).\n * @param {object} foundation - Loaded foundation module (built shape).\n */\nexport function wireFoundationCapabilities(uniweb, foundation) {\n const caps = foundation?.default?.capabilities || {}\n\n // defaultInsets: framework provides FallbackRef as the floor;\n // foundation overrides win. `getComponent()` on the Uniweb singleton\n // (core/uniweb.js) falls back to defaultInsets[name] when no\n // foundation/extension component matches — that's how `<Ref>` becomes\n // available to every foundation without each one having to register\n // it explicitly.\n uniweb.defaultInsets = { Ref: FallbackRef, ...(caps.defaultInsets || {}) }\n\n // xref: foundations supporting cross-references export\n // `xref.build(website, { foundationKinds })`. The runtime can't\n // import kit directly (kit is bundled into each foundation, not into\n // runtime — see CLAUDE.md gotcha #9 on tree-shaking), so it\n // dispatches through the foundation's reference. Foundations without\n // xref skip this entirely; kit's xref module never enters their\n // bundle thanks to tree-shaking at foundation-build time.\n if (caps.xref?.build && uniweb.activeWebsite) {\n caps.xref.build(uniweb.activeWebsite, {\n foundationKinds: caps.xref.kinds || {},\n })\n }\n}\n\n/**\n * Slice a multi-locale site-content payload to one locale.\n *\n * Sites published through the editor ship a single payload that carries\n * all locales nested under `content.locales[locale]` — `pages`, optional\n * `layouts`, and a `config` overlay. The default locale lives at the\n * top level (no nesting). This helper extracts the requested locale's\n * view as a fresh content object the rest of the runtime can consume\n * unchanged.\n *\n * Returns `content` as-is when `locale` is the default, missing, or not\n * present in `content.locales` — callers that already hand us locale-\n * scoped content (e.g., the framework's per-locale SSG path that loads\n * each `dist/{locale}/site-content.json` separately) get pass-through\n * behavior.\n *\n * The shape comes from the editor's publish payload, which is the\n * production canonical for multi-locale content (the Cloudflare Worker\n * SSR path consumes it directly). Build-time SSG pre-flattens to one\n * file per locale and so falls into the pass-through case.\n *\n * @param {Object} content - Site content payload, possibly multi-locale.\n * @param {string} locale - Requested locale code.\n * @returns {Object} Content scoped to the requested locale.\n */\nexport function sliceContentForLocale(content, locale) {\n const defaultLang = content?.config?.defaultLanguage || 'en'\n const locData = content?.locales?.[locale]\n if (!locale || locale === defaultLang || !locData) return content\n return {\n pages: locData.pages,\n layouts: locData.layouts || content.layouts,\n config: {\n ...locData.config,\n i18n: content.config?.i18n,\n activeLocale: locale,\n },\n }\n}\n\n/**\n * Pre-populate a Website's DataStore from build-time / publish-time\n * fetched data so the dispatcher's first probe hits the cache instead\n * of refetching.\n *\n * The cache key MUST go through `deriveCacheKey(entry.config)` and the\n * value MUST be wrapped as `{ data }` — otherwise the dispatcher's\n * lookup at `_dataStore.get(deriveCacheKey(request))` misses every\n * time and `cached.data` reads `undefined`. Three call sites used to\n * inline this loop independently (browser SPA, Node SSG, Cloudflare\n * Worker SSR); the Cloudflare one was using the wrong shape, silently\n * killing prefetched-data reuse in production. This helper is the one\n * canonical implementation.\n *\n * @param {import('@uniweb/core').Website} website\n * @param {Array<{config: Object, data: any}>} fetchedData\n */\nexport function hydrateDataStore(website, fetchedData) {\n if (!website?.dataStore || !fetchedData?.length) return\n for (const entry of fetchedData) {\n website.dataStore.set(deriveCacheKey(entry.config), { data: entry.data })\n }\n}\n","/**\n * Runtime setup — build the Uniweb singleton + Website from a site-content\n * payload and a loaded foundation.\n *\n * Replaces the old `setupUniweb` + `registerFoundation` + `rebuildWebsite`\n * split. The Uniweb constructor now takes foundation + extensions directly,\n * so the runtime's boot sequence boils down to:\n *\n * decodeData() // pulls __DATA__ from the HTML shell\n * loadFoundation() // dynamic import of the primary foundation URL\n * loadExtensions() // parallel imports of extension URLs\n * initUniweb({ content, foundation, extensions, ... }) // this module\n * createRoot(...).render(<RuntimeProvider />)\n *\n * Editor live edits go through `website.rebuild({ content })` on the\n * already-constructed Website — no fetcher re-registration, state survives,\n * cache survives.\n */\n\nimport React from 'react'\nimport { createUniweb } from '@uniweb/core'\nimport { createDefaultFetcher } from './default-fetcher.js'\nimport {\n Link as RouterLink,\n useNavigate as useRouterNavigate,\n useParams,\n useLocation,\n} from 'react-router-dom'\n\nimport { ChildBlocks } from './components/PageRenderer.jsx'\nimport { wireFoundationCapabilities, hydrateDataStore } from './wire-foundation.js'\n\n// Re-export so existing consumers importing hydrateDataStore from\n// setup.js keep working. The implementation moved to wire-foundation.js\n// (the L2-helpers home, React-free) so the SSR renderer can also use it\n// without dragging react-dom/server into the SPA bundle.\nexport { hydrateDataStore }\n\n// ─── View Transition Wrappers ───────────────────────────────────────────────\n//\n// When the foundation enables viewTransitions, navigation is wrapped in\n// document.startViewTransition() to animate page changes. Split content\n// is prefetched inside the transition callback so the user never sees\n// a blank or loading state.\n\n/**\n * Prefetch split page content with a timeout.\n * Resolves when content is loaded or the timeout expires — whichever\n * comes first. This keeps the old-page screenshot from freezing too\n * long on slow connections. If the timeout wins, navigation proceeds\n * and the PageRenderer loading gate handles the rest.\n */\nconst CONTENT_PREFETCH_TIMEOUT = 1000\nexport const prefersReducedMotion =\n typeof window !== 'undefined'\n && window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\nexport function prefetchContent(route) {\n const website = globalThis.uniweb?.activeWebsite\n if (!route || !website) return\n\n const targetPage = website.getPage(route)\n if (!targetPage?.hasContent?.() || targetPage.isContentLoaded?.()) return\n\n return Promise.race([\n targetPage.loadContent(),\n new Promise((resolve) => setTimeout(resolve, CONTENT_PREFETCH_TIMEOUT)),\n ])\n}\n\n/**\n * Prefetch split content and navigate inside a view transition.\n * Falls back to plain navigation when transitions are not available.\n */\nfunction navigateWithTransition(navigate, to, options) {\n const vt = globalThis.uniweb?.foundationConfig?.viewTransitions\n if (vt && document.startViewTransition && !prefersReducedMotion) {\n document.startViewTransition(async () => {\n const route = typeof to === 'string' ? to : to?.pathname\n await prefetchContent(route)\n navigate(to, options)\n })\n } else {\n navigate(to, options)\n }\n}\n\nconst ViewTransitionLink = React.forwardRef(function ViewTransitionLink(\n { onClick, replace, state, preventScrollReset, ...props },\n ref,\n) {\n const navigate = useRouterNavigate()\n\n const handleClick = (e) => {\n if (onClick) onClick(e)\n if (e.defaultPrevented) return\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return\n if (e.button !== 0) return\n\n const vt = globalThis.uniweb?.foundationConfig?.viewTransitions\n if (!vt || !document.startViewTransition || prefersReducedMotion) return\n\n e.preventDefault()\n navigateWithTransition(navigate, props.to, { replace, state, preventScrollReset })\n }\n\n return React.createElement(RouterLink, {\n ref,\n ...props,\n onClick: handleClick,\n replace,\n state,\n preventScrollReset,\n })\n})\n\n/**\n * View-transition-aware useNavigate hook.\n * The returned function wraps navigation in startViewTransition() when enabled.\n */\nfunction useNavigate() {\n const navigate = useRouterNavigate()\n return (to, options) => navigateWithTransition(navigate, to, options)\n}\n\n/**\n * Default routing components for browser/SPA mode. The editor substitutes\n * its own when it wraps DynamicApp in a MemoryRouter.\n */\nconst DEFAULT_ROUTING_COMPONENTS = {\n Link: ViewTransitionLink,\n useNavigate,\n useParams,\n useLocation,\n}\n\n// ─── Icon resolution ────────────────────────────────────────────────────────\n\nconst ICON_FAMILY_MAP = {\n lucide: 'lu',\n heroicons: 'hi',\n heroicons2: 'hi2',\n phosphor: 'pi',\n tabler: 'tb',\n feather: 'fi',\n fa: 'fa',\n fa6: 'fa6',\n bootstrap: 'bs',\n 'material-design': 'md',\n 'ant-design': 'ai',\n remix: 'ri',\n 'simple-icons': 'si',\n ionicons: 'io5',\n boxicons: 'bi',\n vscode: 'vsc',\n weather: 'wi',\n game: 'gi',\n lu: 'lu',\n hi: 'hi',\n hi2: 'hi2',\n pi: 'pi',\n tb: 'tb',\n fi: 'fi',\n bs: 'bs',\n md: 'md',\n ai: 'ai',\n ri: 'ri',\n io5: 'io5',\n bi: 'bi',\n si: 'si',\n vsc: 'vsc',\n wi: 'wi',\n gi: 'gi',\n}\n\n/**\n * Create CDN-based icon resolver\n * @param {Object} iconConfig - From site.yml icons:\n * @returns {Function} Resolver: (library, name) => Promise<string|null>\n */\nfunction createIconResolver(iconConfig = {}) {\n const CDN_BASE = iconConfig.cdnUrl || 'https://uniweb.github.io/icons'\n const useCdn = iconConfig.cdn !== false\n const cache = new Map()\n\n return async function resolve(library, name) {\n const familyCode = ICON_FAMILY_MAP[library.toLowerCase()]\n if (!familyCode) {\n console.warn(`[icons] Unknown family \"${library}\"`)\n return null\n }\n\n const key = `${familyCode}:${name}`\n if (cache.has(key)) return cache.get(key)\n\n if (!useCdn) {\n cache.set(key, null)\n return null\n }\n\n try {\n const iconFileName = `${familyCode}-${name}`\n const url = `${CDN_BASE}/${familyCode}/${iconFileName}.svg`\n const response = await fetch(url)\n if (!response.ok) throw new Error(`HTTP ${response.status}`)\n const svg = await response.text()\n cache.set(key, svg)\n return svg\n } catch (err) {\n console.warn(`[icons] Failed to load ${library}:${name}`, err.message)\n cache.set(key, null)\n return null\n }\n }\n}\n\n// ─── Runtime default fetcher ────────────────────────────────────────────────\n\nfunction buildDefaultFetcher(content) {\n // BASE_URL is injected by Vite at build. For subpath deployments the default\n // fetcher prepends it to local absolute paths (remote URLs are never touched).\n const basePath = import.meta.env?.BASE_URL || ''\n // Per-site transport config from `site.yml fetcher:`. The default fetcher\n // recognizes `baseUrl` and `envelope`; foundations with their own fetchers\n // may read additional keys from the same block via ctx.website.config.fetcher.\n const config = content?.config?.fetcher ?? {}\n const dev = !!(import.meta.env && import.meta.env.DEV)\n return createDefaultFetcher({ basePath, config, dev })\n}\n\n/**\n * Build the Uniweb singleton from a site-content payload and loaded foundation\n * modules. Returns the constructed Uniweb instance; it is also assigned to\n * `globalThis.uniweb` by `createUniweb`.\n *\n * Pre-populates the DataStore from `content.fetchedData` (build-time prerender\n * results) so the first render hits the cache.\n *\n * @param {Object} options\n * @param {Object} options.content - Decoded site content (pages, config, ...).\n * @param {Object} options.foundation - Loaded primary foundation module.\n * @param {Array<Object>} [options.extensions] - Loaded extension modules.\n * @param {Object} [options.routingComponents] - Routing override (editor uses this).\n * @param {{ resolve: Function, cacheKey?: Function }} [options.transport] -\n * Runtime-level transport override. When set, every Layer-1 request is routed\n * through this transport, bypassing foundation routes and the framework\n * default. Used only by the editor's preview iframe — normal sites never\n * pass this option.\n * @returns {import('@uniweb/core').Uniweb}\n */\nexport function initUniweb({ content, foundation, extensions = [], routingComponents = DEFAULT_ROUTING_COMPONENTS, transport = null }) {\n const defaultFetcher = buildDefaultFetcher(content)\n const dev = !!(import.meta.env && import.meta.env.DEV)\n const uniweb = createUniweb(content, foundation, extensions, { defaultFetcher, transport, dev })\n\n // Pre-populate DataStore from build-time fetched data — each entry is\n // keyed by the framework's default cache key so runtime dispatches\n // hit the cache on first probe.\n if (content?.fetchedData?.length && uniweb.activeWebsite?.dataStore) {\n hydrateDataStore(uniweb.activeWebsite, content.fetchedData)\n }\n\n uniweb.childBlockRenderer = ChildBlocks\n\n // L2 (singleton wiring): defaultInsets, xref.build(), and any future\n // framework-level capability bridge — shared with ssr-renderer.js so\n // both boot paths apply the same foundation contract. See\n // wire-foundation.js for the contract and CLAUDE.md \"Three-Layer\n // Runtime Model\" for the rule about what belongs in this helper vs.\n // here vs. ssr-renderer.js.\n wireFoundationCapabilities(uniweb, foundation)\n\n uniweb.routingComponents = routingComponents\n uniweb.iconResolver = createIconResolver(content?.icons)\n\n // Populate icon cache from prerendered <script id=\"__ICON_CACHE__\">.\n if (typeof document !== 'undefined') {\n try {\n const cacheEl = document.getElementById('__ICON_CACHE__')\n if (cacheEl) {\n const cached = JSON.parse(cacheEl.textContent)\n for (const [key, svg] of Object.entries(cached)) {\n uniweb.iconCache.set(key, svg)\n }\n }\n } catch {\n // Ignore parse errors.\n }\n }\n\n return uniweb\n}\n\n/**\n * Decode combined data from the __DATA__ element. Encoding is signaled via\n * MIME type: application/json is plain JSON; application/gzip (or the legacy\n * application/octet-stream) is base64-encoded gzip.\n */\nexport async function decodeData() {\n const el = document.getElementById('__DATA__')\n if (!el?.textContent) return null\n\n const raw = el.textContent\n\n // Plain JSON (uncompressed)\n if (el.type === 'application/json') {\n try {\n return JSON.parse(raw)\n } catch {\n return null\n }\n }\n\n // Compressed (application/gzip or legacy application/octet-stream)\n if (typeof DecompressionStream !== 'undefined') {\n try {\n const bytes = Uint8Array.from(atob(raw), (c) => c.charCodeAt(0))\n const stream = new DecompressionStream('gzip')\n const writer = stream.writable.getWriter()\n writer.write(bytes)\n writer.close()\n const json = await new Response(stream.readable).text()\n return JSON.parse(json)\n } catch {\n return null\n }\n }\n\n // Fallback for old browsers: try plain JSON (server can detect User-Agent)\n try {\n return JSON.parse(raw)\n } catch {\n return null\n }\n}\n","/**\n * Foundation and extension loading\n *\n * Handles dynamic import of foundations (primary and extensions)\n * with CSS loading in parallel.\n */\n\n/**\n * Load foundation CSS from URL\n * @param {string} url - URL to foundation's CSS file\n */\nasync function loadFoundationCSS(url) {\n if (!url) return\n\n // Skip if already present (e.g., injected by SSR into the static HTML)\n if (document.querySelector(`link[rel=\"stylesheet\"][href=\"${url}\"]`)) return\n\n return new Promise((resolve) => {\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = url\n link.onload = () => {\n console.log('[Runtime] Foundation CSS loaded')\n resolve()\n }\n link.onerror = () => {\n console.warn('[Runtime] Could not load foundation CSS from:', url)\n resolve() // Don't fail for CSS\n }\n document.head.appendChild(link)\n })\n}\n\n/**\n * Load a foundation module via dynamic import\n * @param {string|Object} source - URL string or {url, cssUrl} object\n * @returns {Promise<Object>} The loaded foundation module\n */\nexport async function loadFoundation(source) {\n const url = typeof source === 'string' ? source : source.url\n // Auto-derive CSS URL from JS URL by convention: foundation.js → assets/foundation.css\n const cssUrl = typeof source === 'object' ? source.cssUrl\n : url.replace(/[^/]+\\.js$/, 'assets/foundation.css')\n\n console.log(`[Runtime] Loading foundation from: ${url}`)\n\n try {\n // Load CSS and JS in parallel\n const [, foundation] = await Promise.all([\n cssUrl ? loadFoundationCSS(cssUrl) : Promise.resolve(),\n import(/* @vite-ignore */ url)\n ])\n\n const componentNames = Object.keys(foundation).filter(k => k !== 'default')\n console.log('[Runtime] Foundation loaded. Available components:', componentNames)\n\n return foundation\n } catch (error) {\n console.error('[Runtime] Failed to load foundation:', error)\n throw error\n }\n}\n\n/**\n * Load extensions (secondary foundations) in parallel. Returns the loaded\n * modules so the caller can pass them into `new Uniweb(...)` / `initUniweb(...)`.\n * Extensions that fail to load are logged and omitted from the result.\n *\n * @param {Array<string|Object>} urls - Extension URLs or {url, cssUrl} objects\n * @returns {Promise<Array<Object>>} Loaded extension modules, in source order.\n */\nexport async function loadExtensions(urls) {\n if (!urls?.length) return []\n\n // Resolve extension URLs against base path for subdirectory deployments\n // e.g., /effects/foundation.js → /templates/extensions/effects/foundation.js\n const basePath = import.meta.env?.BASE_URL || '/'\n function resolveUrl(source) {\n if (basePath === '/') return source\n if (typeof source === 'string' && source.startsWith('/')) {\n return basePath + source.slice(1)\n }\n if (typeof source === 'object' && source.url?.startsWith('/')) {\n return { ...source, url: basePath + source.url.slice(1) }\n }\n return source\n }\n\n const results = await Promise.allSettled(\n urls.map((url) => loadFoundation(resolveUrl(url))),\n )\n\n const loaded = []\n for (let i = 0; i < results.length; i++) {\n if (results[i].status === 'fulfilled') {\n loaded.push(results[i].value)\n console.log(`[Runtime] Extension loaded: ${urls[i]}`)\n } else {\n console.warn(`[Runtime] Extension failed to load: ${urls[i]}`, results[i].reason)\n }\n }\n return loaded\n}\n","/**\n * ThemeProvider\n *\n * Injects theme CSS into the document head.\n * For SSG mode, CSS is pre-injected during build (checks for existing style tag).\n * For federated mode, injects CSS at runtime from theme data.\n */\n\nimport React, { useEffect, useRef } from 'react'\n\nconst THEME_STYLE_ID = 'uniweb-theme'\n\n/**\n * Check if theme CSS is already injected (SSG mode)\n */\nfunction isThemeCSSInjected() {\n if (typeof document === 'undefined') return false\n return document.getElementById(THEME_STYLE_ID) !== null\n}\n\n/**\n * ThemeProvider component\n *\n * @param {Object} props\n * @param {string} props.css - Theme CSS string\n * @param {React.ReactNode} props.children - Child components\n */\nexport default function ThemeProvider({ css, children }) {\n const styleRef = useRef(null)\n\n useEffect(() => {\n // Skip if CSS already exists (SSG mode) or no CSS provided\n if (!css || isThemeCSSInjected()) {\n return\n }\n\n // Create and inject style element\n const styleElement = document.createElement('style')\n styleElement.id = THEME_STYLE_ID\n styleElement.textContent = css\n document.head.appendChild(styleElement)\n styleRef.current = styleElement\n\n return () => {\n // Cleanup on unmount (for dynamic theme changes)\n if (styleRef.current && styleRef.current.parentNode) {\n styleRef.current.parentNode.removeChild(styleRef.current)\n styleRef.current = null\n }\n }\n }, [css])\n\n // Update CSS if it changes (for dynamic themes in federated mode)\n useEffect(() => {\n if (!css) return\n\n const existingStyle = document.getElementById(THEME_STYLE_ID)\n if (existingStyle && existingStyle.textContent !== css) {\n existingStyle.textContent = css\n }\n }, [css])\n\n return <>{children}</>\n}\n\n/**\n * Hook to access theme data\n * Returns the theme object from the active website\n */\nexport function useThemeData() {\n return globalThis.uniweb?.activeWebsite?.theme || null\n}\n","/**\n * useRememberScroll Hook\n *\n * Remembers scroll position per history entry and restores it on navigation.\n * Uses React Router's location.key to track positions per history entry\n * (not per page path), so back→forward navigations restore correctly.\n *\n * Behavior:\n * - Continuously saves scroll position via a passive scroll listener\n * - Restores scroll position on back/forward (POP) navigation with retry\n * - Scrolls to top on new navigation (PUSH/REPLACE)\n * - Skips when location.hash is present (defers to useLinkInterceptor)\n * - Optionally resets block states on scroll restoration\n *\n * Scroll container:\n * The scroll container is determined by the current page's layout metadata.\n * Layouts declare a `scroll` property in meta.js:\n * - Not set: runtime manages scroll on `window` (default)\n * - 'self': layout manages its own scrolling; runtime disables\n * - CSS selector (e.g. 'main'): runtime manages scroll on that element\n * A foundation-level `scroll` in foundation.js serves as the default for\n * all layouts that don't declare their own.\n *\n * Implementation note:\n * Uniweb scrolls `window` by default (not a fixed-size container). When\n * React swaps page content, the browser may clamp scrollY and fire scroll\n * events BEFORE useEffect runs. To prevent those events from corrupting\n * the saved position of the page we're leaving, useLayoutEffect captures\n * the target value and updates the location key ref synchronously — before\n * any scroll events.\n */\n\nimport { useEffect, useLayoutEffect, useRef, useCallback } from 'react'\nimport { useLocation, useNavigationType } from 'react-router-dom'\n\n/** In-memory scroll positions keyed by React Router's location.key. */\nconst scrollPositions = new Map()\n\n/** Read scroll position from window or element. */\nfunction getScrollY(container) {\n return container === window ? window.scrollY : container.scrollTop\n}\n\n/**\n * Resolve the scroll container for the current page's layout.\n *\n * @returns {Element|Window|null} - scroll target, or null if layout manages its own\n */\nfunction resolveScrollContainer() {\n const website = globalThis.uniweb.activeWebsite\n const layoutName = website.activePage.getLayoutName()\n const layoutMeta = layoutName ? website.getLayoutMeta(layoutName) : null\n\n const scroll = layoutMeta?.scroll\n ?? globalThis.uniweb.foundationConfig?.scroll\n ?? null\n\n if (scroll === 'self') return null\n if (scroll) return document.querySelector(scroll) || window\n return window\n}\n\n/**\n * useRememberScroll hook\n *\n * @param {Object} options\n * @param {boolean} options.enabled - Enable scroll memory (default: true)\n * @param {boolean} options.resetBlockStates - Reset block states on restore (default: true)\n */\nexport function useRememberScroll(options = {}) {\n const { enabled = true, resetBlockStates = true } = options\n\n const location = useLocation()\n const navigationType = useNavigationType()\n const locationKeyRef = useRef(location.key)\n const savedScrollRef = useRef(null)\n const containerRef = useRef(window)\n\n // Continuously save scroll position for the current location\n const handleScroll = useCallback(() => {\n const container = containerRef.current\n if (!container) return\n scrollPositions.set(locationKeyRef.current, getScrollY(container))\n }, [])\n\n // Attach scroll listener to the current container.\n // Re-attaches on navigation since the container may change per-layout.\n useEffect(() => {\n if (!enabled) return\n const container = containerRef.current\n if (!container) return\n\n container.addEventListener('scroll', handleScroll, { passive: true })\n return () => container.removeEventListener('scroll', handleScroll)\n }, [location.key, enabled, handleScroll])\n\n // Synchronously capture saved scroll, update key, and resolve container\n // BEFORE browser scroll events can fire and corrupt the departing page's value.\n useLayoutEffect(() => {\n if (navigationType === 'POP') {\n savedScrollRef.current = scrollPositions.get(location.key) ?? null\n } else {\n savedScrollRef.current = null\n }\n locationKeyRef.current = location.key\n containerRef.current = enabled ? resolveScrollContainer() : null\n }, [location.key, navigationType, enabled])\n\n // On navigation: restore on POP, scroll to top on PUSH/REPLACE\n useEffect(() => {\n if (!enabled) return\n const container = containerRef.current\n if (!container) return\n\n // Reset block states if requested (for animations, etc.)\n if (resetBlockStates) {\n const page = globalThis.uniweb.activeWebsite.activePage\n if (typeof page.resetBlockStates === 'function') {\n page.resetBlockStates()\n }\n }\n\n // When hash is present, let useLinkInterceptor handle scrolling\n if (location.hash) return\n\n if (navigationType === 'POP') {\n const saved = savedScrollRef.current\n if (saved == null) return\n\n // Retry scroll restoration as content may load asynchronously.\n // Each frame: scroll, check if it landed, retry if the page\n // wasn't tall enough yet (up to ~500ms at 60fps).\n let raf\n let attempts = 0\n const tryRestore = () => {\n container.scrollTo(0, saved)\n if (Math.abs(getScrollY(container) - saved) > 5 && attempts < 30) {\n attempts++\n raf = requestAnimationFrame(tryRestore)\n }\n }\n raf = requestAnimationFrame(tryRestore)\n\n return () => cancelAnimationFrame(raf)\n } else {\n container.scrollTo(0, 0)\n }\n }, [location.key, navigationType, enabled, resetBlockStates, location.hash])\n}\n\nexport default useRememberScroll\n","/**\n * useLinkInterceptor Hook\n *\n * Intercepts clicks on internal links rendered as plain <a> tags\n * (e.g., from markdown content) and uses React Router navigation\n * instead of full page reloads.\n *\n * This enables SPA-style navigation for links that were rendered\n * as raw HTML via dangerouslySetInnerHTML.\n *\n * Also handles cross-page hash scrolling (e.g., /page#section)\n * by scrolling to the target element after navigation completes.\n */\n\nimport { useEffect, useCallback } from 'react'\nimport { useNavigate, useLocation } from 'react-router-dom'\nimport { prefetchContent, prefersReducedMotion } from '../setup.js'\n\n/**\n * Check if a URL is internal (same origin, no external protocol)\n * @param {string} href - The href to check\n * @returns {boolean}\n */\nfunction isInternalLink(href) {\n if (!href) return false\n\n // Hash-only links are internal\n if (href.startsWith('#')) return true\n\n // Relative paths are internal\n if (href.startsWith('/') && !href.startsWith('//')) return true\n\n // Check if same origin\n try {\n const url = new URL(href, window.location.origin)\n return url.origin === window.location.origin\n } catch {\n // Invalid URL, treat as internal relative path\n return true\n }\n}\n\n/**\n * Check if the click should trigger navigation\n * @param {MouseEvent} event - The click event\n * @returns {boolean}\n */\nfunction shouldNavigate(event) {\n // Ignore if default was already prevented\n if (event.defaultPrevented) return false\n\n // Ignore modified clicks (new tab, etc.)\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) return false\n\n // Ignore right-clicks\n if (event.button !== 0) return false\n\n return true\n}\n\n/**\n * Find the closest anchor element from an event target\n * @param {EventTarget} target - The event target\n * @returns {HTMLAnchorElement|null}\n */\nfunction findAnchorElement(target) {\n let element = target\n while (element && element !== document.body) {\n if (element.tagName === 'A') {\n return element\n }\n element = element.parentElement\n }\n return null\n}\n\n/**\n * Scroll to element by ID with retry logic\n * Retries a few times to handle elements that render asynchronously\n *\n * @param {string} elementId - The element ID to scroll to\n * @param {number} retries - Number of retries remaining\n */\nfunction scrollToElement(elementId, retries = 5) {\n const element = document.getElementById(elementId)\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' })\n return\n }\n\n // Retry after a short delay if element not found yet\n if (retries > 0) {\n requestAnimationFrame(() => {\n setTimeout(() => scrollToElement(elementId, retries - 1), 50)\n })\n }\n}\n\n/**\n * useLinkInterceptor hook\n *\n * @param {Object} options\n * @param {boolean} options.enabled - Enable link interception (default: true)\n */\nexport function useLinkInterceptor(options = {}) {\n const { enabled = true } = options\n const navigate = useNavigate()\n const location = useLocation()\n\n // Handle hash scrolling after navigation\n // This effect runs when location changes and there's a hash\n useEffect(() => {\n if (!enabled) return\n if (!location.hash) return\n\n // Remove the # prefix\n const elementId = location.hash.slice(1)\n if (elementId) {\n // Use requestAnimationFrame to wait for render, then scroll\n requestAnimationFrame(() => {\n scrollToElement(elementId)\n })\n }\n }, [enabled, location.pathname, location.hash])\n\n useEffect(() => {\n if (!enabled) return\n\n function handleClick(event) {\n // Check if we should handle this click\n if (!shouldNavigate(event)) return\n\n // Find the anchor element\n const anchor = findAnchorElement(event.target)\n if (!anchor) return\n\n // Get the href\n const href = anchor.getAttribute('href')\n if (!href) return\n\n // Check if it's an internal link\n if (!isInternalLink(href)) return\n\n // Check for download attribute\n if (anchor.hasAttribute('download')) return\n\n // Check for target=\"_blank\" or other non-self targets\n const target = anchor.getAttribute('target')\n if (target && target !== '_self') return\n\n // Strip basePath from href for internal processing\n // Links from <Link reload> include the basePath, but React Router\n // and locale detection work with router-relative paths\n const website = globalThis.uniweb?.activeWebsite\n const basePath = website?.basePath || ''\n\n let routeHref = href\n if (basePath && href.startsWith(basePath)) {\n routeHref = href.slice(basePath.length) || '/'\n }\n\n // Check if this link switches locale (requires full page reload)\n if (website?.hasMultipleLocales()) {\n const activeLocale = website.getActiveLocale()\n const defaultLocale = website.getDefaultLocale()\n const localeCodes = website.getLocales().map(l => l.code)\n const hrefMatch = routeHref.match(/^\\/([a-z]{2,3}(?:-[A-Za-z]{2,4})?)(?:\\/|$)/)\n const hrefLocale = hrefMatch?.[1]\n\n let isLocaleSwitch = false\n if (hrefLocale && localeCodes.includes(hrefLocale)) {\n isLocaleSwitch = hrefLocale !== activeLocale\n } else {\n // No locale prefix = targets default locale\n isLocaleSwitch = activeLocale !== defaultLocale\n }\n if (isLocaleSwitch) return // Allow full page reload\n }\n\n // Prevent the default browser navigation\n event.preventDefault()\n\n // Handle hash-only links (same page scroll)\n if (routeHref.startsWith('#')) {\n const elementId = routeHref.slice(1)\n if (elementId) {\n scrollToElement(elementId)\n // Update URL hash without navigation\n window.history.pushState(null, '', href)\n }\n return\n }\n\n // Use React Router navigation (with router-relative path)\n // React Router will handle the path, and our useEffect above\n // will handle scrolling to hash after navigation completes\n const useTransition = website?.viewTransitions && document.startViewTransition\n && !prefersReducedMotion\n\n if (useTransition) {\n document.startViewTransition(async () => {\n await prefetchContent(routeHref)\n navigate(routeHref)\n })\n } else {\n navigate(routeHref)\n }\n }\n\n // Add click listener to document\n document.addEventListener('click', handleClick)\n\n return () => {\n document.removeEventListener('click', handleClick)\n }\n }, [enabled, navigate])\n}\n\nexport default useLinkInterceptor\n","/**\n * WebsiteRenderer\n *\n * Top-level renderer that sets up theme styles and renders pages.\n * Manages scroll memory for navigation and optional analytics.\n */\n\nimport React, { useEffect } from 'react'\nimport PageRenderer from './PageRenderer.jsx'\nimport ThemeProvider from './ThemeProvider.jsx'\nimport { useRememberScroll } from '../hooks/useRememberScroll.js'\nimport { useLinkInterceptor } from '../hooks/useLinkInterceptor.js'\n\n/**\n * WebsiteRenderer component\n */\nexport default function WebsiteRenderer() {\n const website = globalThis.uniweb.activeWebsite\n\n // Apply default appearance scheme (light/dark/system) on mount\n useEffect(() => {\n const appearance = website?.themeData?.appearance\n if (!appearance) return\n\n const defaultScheme = appearance.default || 'light'\n const root = document.documentElement\n if (defaultScheme === 'dark') {\n root.classList.add('scheme-dark')\n root.classList.remove('scheme-light')\n } else if (defaultScheme === 'system') {\n // No explicit class — CSS media query decides based on OS preference\n root.classList.remove('scheme-dark')\n root.classList.remove('scheme-light')\n } else {\n root.classList.remove('scheme-dark')\n }\n }, [website?.themeData?.appearance?.default])\n\n // Enable SPA navigation for links rendered as plain HTML\n useLinkInterceptor({ enabled: true })\n\n // Enable scroll memory for navigation\n useRememberScroll({ enabled: true })\n\n if (!website) {\n return (\n <div className=\"website-loading\" style={{ padding: '2rem', textAlign: 'center', color: '#64748b' }}>\n Loading website...\n </div>\n )\n }\n\n // Theme CSS (pre-generated during build).\n // Font <link> tags are injected into <head> by the build pipeline (assembler)\n // or by DynamicApp.jsx (editor preview) — not handled by React.\n const themeCSS = website.themeData?.css\n\n return (\n <ThemeProvider css={themeCSS}>\n <PageRenderer />\n </ThemeProvider>\n )\n}\n","/**\n * ErrorBoundary\n *\n * React error boundary to catch and display errors gracefully.\n */\n\nimport React from 'react'\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props)\n this.state = { hasError: false, error: null }\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true, error }\n }\n\n componentDidCatch(error, errorInfo) {\n console.error('[Runtime] Error caught by boundary:', error, errorInfo)\n }\n\n render() {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback\n }\n\n return (\n <div style={{\n padding: '2rem',\n margin: '1rem',\n background: '#fef2f2',\n border: '1px solid #fecaca',\n borderRadius: '0.5rem',\n color: '#dc2626'\n }}>\n <h2 style={{ margin: '0 0 1rem' }}>Something went wrong</h2>\n <p>{this.state.error?.message || 'An unexpected error occurred'}</p>\n {import.meta.env?.DEV && (\n <pre style={{ fontSize: '0.75rem', overflow: 'auto', marginTop: '1rem' }}>\n {this.state.error?.stack}\n </pre>\n )}\n </div>\n )\n }\n\n return this.props.children\n }\n}\n","/**\n * RuntimeProvider\n *\n * Encapsulates the full React rendering tree for a Uniweb site:\n * ErrorBoundary → Router → Routes → WebsiteRenderer.\n *\n * The Uniweb singleton (globalThis.uniweb) must be set up BEFORE rendering\n * this component. RuntimeProvider reads from the singleton — it does not\n * manage initialization. The singleton is imperative infrastructure that\n * sits underneath React; React is a rendering layer within it.\n *\n * @param {Object} props\n * @param {string} [props.basename] - Router basename for subdirectory deployments\n * @param {boolean} [props.development] - Enable React StrictMode\n * @param {boolean} [props.externalRouter] - Skip creating a BrowserRouter — the\n * consumer wraps RuntimeProvider in their own Router (e.g., MemoryRouter for\n * srcdoc iframes). RuntimeProvider still renders ErrorBoundary, Routes, and\n * WebsiteRenderer.\n */\n\nimport React from 'react'\nimport { BrowserRouter, Routes, Route } from 'react-router-dom'\nimport WebsiteRenderer from './components/WebsiteRenderer.jsx'\nimport ErrorBoundary from './components/ErrorBoundary.jsx'\n\nexport default function RuntimeProvider({ basename, development = false, externalRouter = false }) {\n const website = globalThis.uniweb?.activeWebsite\n if (!website) return null\n\n // Set basePath for subdirectory deployments\n if (website.setBasePath) {\n website.setBasePath(basename || '')\n }\n\n const routes = (\n <Routes>\n <Route path=\"/*\" element={<WebsiteRenderer />} />\n </Routes>\n )\n\n const app = externalRouter\n ? <ErrorBoundary>{routes}</ErrorBoundary>\n : (\n <ErrorBoundary>\n <BrowserRouter basename={basename}>\n {routes}\n </BrowserRouter>\n </ErrorBoundary>\n )\n\n return development ? <React.StrictMode>{app}</React.StrictMode> : app\n}\n","/**\n * @uniweb/runtime - Main Entry Point\n *\n * Minimal runtime for loading foundations and orchestrating rendering.\n * Foundations should import components from @uniweb/kit.\n */\n\nimport React from 'react'\nimport { createRoot } from 'react-dom/client'\n\nimport { initUniweb, decodeData } from './setup.js'\nimport { loadFoundation, loadExtensions } from './foundation-loader.js'\nimport RuntimeProvider from './RuntimeProvider.jsx'\n\n/**\n * Get the router basename from Vite's BASE_URL\n * Vite sets this based on the `base` config option\n * Returns undefined for root path ('/'), otherwise strips trailing slash\n */\nfunction getBasename() {\n const baseUrl = import.meta.env?.BASE_URL\n if (!baseUrl || baseUrl === '/') return undefined\n // Remove trailing slash for BrowserRouter compatibility\n return baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl\n}\n\n/**\n * Initialize the Runtime Environment\n *\n * @param {string|Object|Promise} foundationSource - One of:\n * - URL string to foundation module\n * - Object with {url, cssUrl}\n * - Promise that resolves to a foundation module (legacy federation support)\n * @param {Object} options\n * @param {boolean} options.development - Enable development mode\n * @param {Object} options.configData - Site configuration (or read from DOM)\n * @param {string} options.basename - Router basename\n */\nasync function initRuntime(foundationSource, options = {}) {\n const {\n development = import.meta.env?.DEV ?? false,\n configData: providedConfig = null,\n basename\n } = options\n\n // Get config data from options, DOM, or global\n const configData =\n providedConfig ??\n JSON.parse(document.getElementById('__SITE_CONTENT__')?.textContent || 'null') ??\n globalThis.__SITE_CONTENT__\n\n if (!configData) {\n console.error('[Runtime] No site configuration found')\n return\n }\n\n try {\n let foundation\n\n // Handle different foundation source types\n if (typeof foundationSource === 'string' || (foundationSource && typeof foundationSource.url === 'string')) {\n // ESM URL - load via dynamic import\n foundation = await loadFoundation(foundationSource)\n } else if (foundationSource && typeof foundationSource.then === 'function') {\n // Promise (legacy Module Federation support)\n const remoteModule = await foundationSource\n // Handle double default wrapping\n foundation = remoteModule?.default?.default ? remoteModule.default : remoteModule\n } else if (foundationSource && typeof foundationSource === 'object') {\n // Already a foundation module\n foundation = foundationSource\n }\n\n if (!foundation) {\n throw new Error('Failed to load foundation')\n }\n\n // Load extensions (secondary foundations) in parallel with foundation\n // processing. An extension that fails to load doesn't block the site.\n const extensionSources = configData?.config?.extensions || []\n const extensions = extensionSources.length > 0\n ? await loadExtensions(extensionSources)\n : []\n\n // Build the Uniweb singleton with foundation + extensions wired in upfront\n // (dispatcher is assembled inside the Website constructor).\n const uniwebInstance = initUniweb({ content: configData, foundation, extensions })\n\n // Derive basename\n const routerBasename = basename ?? getBasename()\n\n // Set initial active page from browser URL so getLocaleUrl() works on first render\n const website = uniwebInstance.activeWebsite\n if (website && typeof window !== 'undefined') {\n const rawPath = window.location.pathname\n const basePath = routerBasename || ''\n const routePath = basePath && rawPath.startsWith(basePath)\n ? rawPath.slice(basePath.length) || '/'\n : rawPath\n website.setActivePage(routePath)\n }\n\n // Render the app\n const container = document.getElementById('root')\n if (!container) {\n console.error('[Runtime] Root element not found')\n return\n }\n\n const app = <RuntimeProvider basename={routerBasename} development={development} />\n\n createRoot(container).render(app)\n\n // Log success\n if (!development) {\n console.log(\n '%c<%c>%c Uniweb Runtime',\n 'color: #FA8400; font-weight: bold; font-size: 18px;',\n 'color: #00ADFE; font-weight: bold; font-size: 18px;',\n 'color: #333; font-size: 18px; font-family: system-ui, sans-serif;'\n )\n }\n } catch (error) {\n console.error('[Runtime] Initialization failed:', error)\n\n // Render error state\n const container = document.getElementById('root')\n if (container) {\n const root = createRoot(container)\n root.render(\n <div\n style={{\n padding: '2rem',\n margin: '1rem',\n background: '#fef2f2',\n borderRadius: '0.5rem',\n color: '#dc2626'\n }}\n >\n <h2>Runtime Error</h2>\n <p>{error.message}</p>\n {development && <pre style={{ fontSize: '0.75rem', overflow: 'auto' }}>{error.stack}</pre>}\n </div>\n )\n }\n }\n}\n\n/**\n * Simplified entry point for sites\n *\n * Template main.js calls this with config + foundation/styles promises:\n *\n * start({\n * config: __FOUNDATION_CONFIG__,\n * styles: import('#foundation/styles'),\n * foundation: import('#foundation')\n * })\n *\n * In runtime mode, the foundation/styles promises resolve to noop modules\n * (configured by the site Vite plugin) and are ignored.\n *\n * @param {Object} options\n * @param {Object} options.config - Build-time config from __FOUNDATION_CONFIG__\n * @param {Promise} options.foundation - Promise from import('#foundation')\n * @param {Promise} options.styles - Promise from import('#foundation/styles')\n */\nasync function start({ config, foundation, styles } = {}) {\n // Try __DATA__ first (dynamic backends inject combined config + content)\n const data = await decodeData()\n\n if (data) {\n // Dynamic backend mode - foundation loaded from URL, content from data\n // The serving layer may inject config.base for subdirectory deployments\n const base = data.content?.config?.base\n const basename = base ? (base.endsWith('/') ? base.slice(0, -1) : base) : undefined\n return initRuntime(\n { url: data.foundation.url, cssUrl: data.foundation.cssUrl },\n { configData: data.content, basename }\n )\n }\n\n // Use provided config, or fall back to bundled mode\n const mode = config?.mode ?? 'bundled'\n\n if (mode === 'runtime') {\n // Runtime mode - foundation loaded from URL\n return initRuntime({ url: config.url, cssUrl: config.cssUrl })\n } else {\n // Bundled mode - use the provided foundation/styles promises\n const [foundationModule] = await Promise.all([foundation, styles])\n return initRuntime(foundationModule)\n }\n}\n\nexport { initRuntime, start }\nexport default initRuntime\n","/**\n * Runtime Shell Entry Point\n *\n * Standalone browser app that boots a Uniweb site from __DATA__ injected\n * by a dynamic backend (unicloud, PHP, etc.).\n *\n * This calls the same start() function that all sites use. When no\n * __FOUNDATION_CONFIG__ is embedded in the page, start() checks for\n * __DATA__ (the dynamic backend protocol) and boots from that.\n *\n * See: kb/plans/runtime-shell-and-cdn.md\n */\n\nimport { start } from '../index.jsx'\n\nstart({ config: null })\n"],"names":["hasOverrides","standardOptions","colors","foundationStyles","hasColors","hasElements","ctx","buildPaletteVars","baseColors","vars","palettes","generatePalettes","name","shades","level","value","buildElementVars","elements","token","normalizeTokenValue","buildFoundationVars","styles","splitFoundationStyles","flat","contexts","ctxVal","buildRule","selector","buildSectionOverrides","blocks","appearance","css","block","hasStandardOverrides","hasComponentVars","isAuto","hasToggle","paletteVars","flatFoundation","ctxFoundation","foundationVars","compVars","lightElementVars","darkElementVars","lightFoundationCtx","darkFoundationCtx","sharedVars","elementVars","ctxFoundationVars","allVars","push","heap","node","index","a","parentIndex","parent","compare","peek","pop","first","last","length","halfLength","leftIndex","left","rightIndex","right","b","diff","exports","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","needsPaint","localSetTimeout","localClearTimeout","localSetImmediate","advanceTimers","currentTime","timer","handleTimeout","isMessageLoopRunning","schedulePerformWorkUntilDeadline","firstTimer","requestHostTimeout","taskTimeoutID","frameInterval","startTime","shouldYieldToHost","performWorkUntilDeadline","hasMoreWork","previousPriorityLevel","callback","continuationCallback","channel","port","ms","task","fps","eventHandler","priorityLevel","options","timeout","parentPriorityLevel","schedulerModule","require$$0","Scheduler","React","require$$1","ReactDOM","require$$2","formatProdErrorMessage","code","url","i","isValidContainer","getNearestMountedFiber","fiber","nearestMounted","getSuspenseInstanceFromFiber","suspenseState","getActivityInstanceFromFiber","activityState","assertIsMounted","findCurrentFiberUsingSlowPath","alternate","parentA","parentB","didFindChild","child$0","findCurrentHostFiberImpl","tag","assign","REACT_LEGACY_ELEMENT_TYPE","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","REACT_MEMO_CACHE_SENTINEL","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","REACT_CLIENT_REFERENCE","getComponentNameFromType","type","innerType","isArrayImpl","ReactSharedInternals","ReactDOMSharedInternals","sharedNotPendingObject","valueStack","createCursor","defaultValue","cursor","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","getOwnHostContext","getChildHostContextProd","popHostContainer","pushHostContext","context","JSCompiler_inline_result","popHostContext","HostTransitionContext","prefix","suffix","describeBuiltInComponentFrame","x","match","reentry","describeNativeComponentFrame","fn","construct","previousPrepareStackTrace","RunInRootFrame","Fake","control","x$1","x$2","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","frame","describeFiber","childFiber","getStackByFiberInDevAndProd","workInProgress","info","previous","hasOwnProperty","scheduleCallback$3","cancelCallback$1","shouldYield","requestPaint","now","getCurrentPriorityLevel","ImmediatePriority","UserBlockingPriority","NormalPriority$1","LowPriority","IdlePriority","log$1","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","clz32","clz32Fallback","log","LN2","nextTransitionUpdateLane","nextTransitionDeferredLane","nextRetryLane","getHighestPriorityLanes","lanes","pendingSyncLanes","getNextLanes","root","wipLanes","rootHasPendingCommit","pendingLanes","nextLanes","suspendedLanes","pingedLanes","nonIdlePendingLanes","checkIfRootIsPrerendering","renderLanes","computeExpirationTime","lane","claimNextRetryLane","createLaneMap","initial","laneMap","markRootUpdated$1","updateLane","markRootFinished","finishedLanes","remainingLanes","spawnedLane","updatedLanes","suspendedRetryLanes","previouslyPendingLanes","entanglements","expirationTimes","hiddenUpdates","index$7","hiddenUpdatesForLane","update","markSpawnedDeferredLane","entangledLanes","spawnedLaneIndex","markRootEntangled","rootEntangledLanes","index$8","getBumpedLaneForHydration","renderLane","getBumpedLaneForHydrationByLane","lanesToEventPriority","resolveUpdatePriority","updatePriority","getEventPriority","runWithPriority","priority","previousPriority","randomKey","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","detachDeletedInstance","getClosestInstanceFromNode","targetNode","targetInst","parentNode","getParentHydrationBoundary","getInstanceFromNode","getNodeFromInstance","inst","getResourcesFromRoot","resources","markNodeAsHoistable","allNativeEvents","registrationNameDependencies","registerTwoPhaseEvent","registrationName","dependencies","registerDirectEvent","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","attributeName","setValueForAttribute","prefix$10","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","getToStringValue","isCheckable","elem","trackValueOnNode","valueField","currentValue","descriptor","get","set","track","updateValueIfChanged","tracker","lastValue","getActiveElement","doc","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","updateInput","element","lastDefaultValue","checked","defaultChecked","setDefaultValue","initInput","isHydrating","updateOptions","multiple","propValue","setDefaultSelected","updateTextarea","initTextarea","children","setTextContent","text","firstChild","unitlessNumbers","setValueForStyle","style","styleName","isCustomProperty","setValueForStyles","prevStyles","styleName$16","styleName$17","isCustomElement","tagName","aliases","isJavaScriptProtocol","sanitizeURL","noop$1","currentReplayingEvent","getEventTarget","nativeEvent","restoreTarget","restoreQueue","restoreStateOfTarget","target","internalInstance","props","otherNode","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","stateNode","canUseDOM","passiveBrowserEventsSupported","startText","fallbackText","getData","start","startValue","startLength","end","endValue","endLength","minEnd","getEventCharCode","keyCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","Interface","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","propName","event","EventInterface","SyntheticEvent","UIEventInterface","SyntheticUIEvent","lastMovementX","lastMovementY","lastMouseEvent","MouseEventInterface","getEventModifierState","SyntheticMouseEvent","DragEventInterface","SyntheticDragEvent","FocusEventInterface","SyntheticFocusEvent","AnimationEventInterface","SyntheticAnimationEvent","ClipboardEventInterface","SyntheticClipboardEvent","CompositionEventInterface","SyntheticCompositionEvent","normalizeKey","translateToKey","modifierKeyToProp","modifierStateGetter","keyArg","KeyboardEventInterface","key","SyntheticKeyboardEvent","PointerEventInterface","SyntheticPointerEvent","TouchEventInterface","SyntheticTouchEvent","TransitionEventInterface","SyntheticTransitionEvent","WheelEventInterface","SyntheticWheelEvent","ToggleEventInterface","SyntheticToggleEvent","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","getNativeBeforeInputChars","getFallbackBeforeInputChars","supportedInputTypes","isTextInputElement","nodeName","createAndAccumulateChangeEvent","dispatchQueue","accumulateTwoPhaseListeners","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$286","isSupported$jscomp$inline_427","element$jscomp$inline_428","stopWatchingForValueChange","handlePropertyChange","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","is","y","objectIs","shallowEqual","objA","objB","keysA","keysB","currentKey","getLeafNode","getNodeForCharacterOffset","offset","nodeEnd","containsNode","outerNode","innerNode","getActiveElementDeep","containerInfo","hasSelectionCapabilities","skipSelectionChangeEvent","activeElement","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","styleProp","eventName","prefixes","vendorPrefixes","prefixedEventNames","getVendorPrefixedEventName","prefixMap","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","reportGlobalError","error","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","queue","pending","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","nestedUpdateCount","rootWithNestedUpdates","emptyContextObject","FiberNode","pendingProps","mode","createFiberImplClass","shouldConstruct","Component","createWorkInProgress","current","resetWorkInProgress","createFiberFromTypeAndProps","owner","fiberTag","isHostHoistableType","createFiberFromFragment","createFiberFromText","content","createFiberFromDehydratedFragment","dehydratedNode","createFiberFromPortal","portal","CapturedStacks","createCapturedValueAtFiber","source","existing","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","restoreSuspendedTreeContext","suspendedContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","instance","listenToNonDelegatedEvent","mediaEventTypes","checkForUnmatchedText","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldSetTextContent","getNextHydratableInstanceAfterHydrationBoundary","isSingletonScope","previousHydratableOnEnteringScopedSingleton","getNextHydratable","resetHydrationState","upgradeHydrationErrorsToRecoverable","queuedErrors","workInProgressRootRecoverableErrors","valueCursor","currentlyRenderingFiber$1","lastContextDependency","pushProvider","providerFiber","nextValue","popProvider","scheduleContextWorkOnParentPath","propagationRoot","propagateContextChanges","forcePropagateEntireTree","list","nextFiber","dependency","propagateParentContextChanges","isInsidePropagationBailout","currentParent","checkIfContextChanged","currentDependencies","prepareToReadContext","readContext","readContextForConsumer","readContextDuringReconciliation","consumer","AbortControllerLocal","listeners","signal","listener","scheduleCallback$2","NormalPriority","CacheContext","createCache","releaseCache","cache","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","entangleAsyncAction","transition","thenable","entangledListeners","requestTransitionLane","resolve","pingEngtangledActionScope","chainThenableValue","result","thenableWithOverride","prevOnStartTransitionFinish","returnValue","globalMostRecentTransitionTime","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","workInProgressRoot","pushTransition","offscreenWorkInProgress","prevCachePool","getSuspendedCache","cacheFromPool","SuspenseException","SuspenseyCommitException","SuspenseActionException","noopSuspenseyCommitThenable","isThenableResolved","trackUsedThenable","thenableState","checkIfUseWrappedInAsyncCatch","fulfilledValue","fulfilledThenable","rejectedThenable","suspendedThenable","resolveLazy","lazyType","init","getSuspendedThenable","rejectedReason","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectTypeImpl","returnFiber","newChild","createChildReconciler","shouldTrackSideEffects","deleteChild","childToDelete","deletions","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","placeChild","newFiber","lastPlacedIndex","newIndex","placeSingleChild","updateTextNode","textContent","updateElement","elementType","updateFragment","updatePortal","fragment","createChild","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildrenArray","newChildren","resultingFirstChild","previousNewFiber","nextOldFiber","child","reconcileChildrenIterator","step","reconcileChildFibersImpl","firstChildFiber","reconcileChildFibers","mountChildFibers","hasForceUpdate","initializeUpdateQueue","cloneUpdateQueue","createUpdate","enqueueUpdate","updateQueue","executionContext","entangleTransitions","queueLanes","enqueueCapturedUpdate","capturedUpdate","newFirst","newLast","clone","didReadFromEntangledAsyncAction","suspendIfUpdateReadFromEntangledAsyncAction","entangledActionThenable","processUpdateQueue","workInProgress$jscomp$0","instance$jscomp$0","firstBaseUpdate","lastBaseUpdate","pendingQueue","lastPendingUpdate","firstPendingUpdate","newState","isHiddenUpdate","workInProgressRootRenderLanes","workInProgressRootSkippedLanes","callCallback","commitCallbacks","callbacks","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","handler","suspenseStackCursor","pushDehydratedActivitySuspenseHandler","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","findFirstSuspended","row","state","isSuspenseInstancePending","isSuspenseInstanceFallback","currentlyRenderingFiber","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","nextDeps","prevDeps","renderWithHooks","secondArg","nextRenderLanes","HooksDispatcherOnMount","HooksDispatcherOnUpdate","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","numberOfReRenders","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","createFunctionComponentUpdateQueue","use","usable","useMemoCache","size","memoCache","array","basicStateReducer","action","updateReducer","reducer","updateReducerImpl","baseQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$60","revertLane","rerenderReducer","dispatch","lastRenderPhaseUpdate","updateSyncExternalStore","subscribe","getSnapshot","getServerSnapshot","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushSimpleEffect","updateStoreInstance","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","scheduleUpdateOnFiber","mountStateImpl","initialState","initialStateInitializer","updateOptimisticImpl","passthrough","dispatchActionState","actionQueue","setPendingState","setState","payload","isRenderPhaseUpdate","actionNode","runActionStateAction","prevState","prevTransition","currentTransition","onStartTransitionFinish","handleActionReturnValue","onActionError","error$66","nextState","onActionSuccess","notifyActionListeners","actionStateReducer","oldState","mountActionState","initialStateProp","ssrFormState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","dispatchSetState","dispatchOptimisticSetState","updateActionState","stateHook","updateActionStateImpl","currentStateHook","actionStateActionEffect","rerenderActionState","create","deps","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","useEffectEventImpl","componentUpdateQueue","events","updateEvent","ref","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","nextCreate","mountDeferredValueImpl","initialValue","requestDeferredLane","updateDeferredValueImpl","prevValue","startTransition","pendingState","finishedState","thenableForFinishedState","dispatchSetStateInternal","requestUpdateLane","noop","startHostTransition","formFiber","formData","ensureFormComponentIsStateful","requestFormReset$1","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","provider","root$69","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","eagerState","throwIfDuringRender","initialArg","identifierPrefix","idWithLeadingBit","booleanOrThenable","applyDerivedStateFromProps","ctor","getDerivedStateFromProps","nextProps","classComponentUpdater","checkShouldComponentUpdate","oldProps","newProps","nextContext","callComponentWillReceiveProps","resolveClassComponentProps","baseProps","propName$73","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","errorInfo","onUncaughtError","e$74","logCaughtError","boundary","onCaughtError","e$75","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","getDerivedStateFromError","legacyErrorBoundariesThatAlreadyFailed","stack","throwException","rootRenderLanes","renderDidSuspendDelayIfPossible","workInProgressRootExitStatus","attachPingListener","wrapperError","workInProgressRootConcurrentErrors","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","bailoutOnAlreadyFinishedWork","updateMemoComponent","updateSimpleMemoComponent","checkScheduledUpdateOrContext","prevProps","updateFunctionComponent","updateOffscreenComponent","deferHiddenOffscreenComponent","bailoutOffscreenComponent","nextBaseLanes","remainingChildLanes","mountActivityChildren","mountWorkInProgressOffscreenFiber","retryActivityComponentWithoutHydrating","updateActivityComponent","didSuspend","canHydrateHydrationBoundary","dehydrated","markRef","replayFunctionComponent","updateClassComponent","contextType","unresolvedOldProps","oldContext","contextType$jscomp$0","mountHostRootWithoutHydrating","SUSPENDED_MARKER","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","nextPrimaryChildren","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","digest","primaryChildren","offscreenProps","scheduleSuspenseWorkOnFiber","initSuspenseListRenderState","isBackwards","tail","lastContentRow","tailMode","renderState","updateSuspenseListComponent","revealOrder","suspenseContext","shouldForceFallback","attemptEarlyBailoutIfNoScheduledUpdate","state$102","didSuspendBefore","beginWork","$$typeof","getResource","getOwnerDocumentFromRootContainer","setInitialProperties","resolveSingletonInstance","canHydrateInstance","canHydrateTextInstance","markUpdate","preloadInstanceAndSuspendIfNeeded","shouldRemainOnPreviousScreen","preloadResourceAndSuspendIfNeeded","resource","preloadResource","scheduleRetryEffect","retryQueue","workInProgressSuspendedRetryLanes","cutOffTailIfNeeded","hasRenderedATailFallback","lastTailNode","lastTailNode$106","bubbleProperties","completedWork","didBailout","newChildLanes","subtreeFlags","child$107","completeWork","nextResource","ownerDocument","listenToAllSupportedEvents","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","commitHookEffectListMount","flags","finishedWork","lastEffect","firstEffect","captureCommitPhaseError","commitHookEffectListUnmount","nearestMountedAncestor$jscomp$0","destroy","nearestMountedAncestor","destroy_","commitClassCallbacks","safelyCallComponentWillUnmount","safelyAttachRef","instanceToUse","safelyDetachRef","error$140","commitHostMount","commitHostUpdate","domElement","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","before","insertOrAppendPlacementNode","commitHostSingletonAcquisition","singleton","attributes","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","needsFormReset","PossiblyWeakSet","nextEffect","commitBeforeMutationEffects","eventsEnabled","_enabled","selection","anchorOffset","focusNode","indexWithinAnchor","indexWithinFocus","next","selectionInformation","resolvedPrevProps","clearContainerSparingly","commitLayoutEffectOnFiber","finishedRoot","recursivelyTraverseLayoutEffects","error$139","commitActivityHydrationCallbacks","commitSuspenseHydrationCallbacks","retryDehydratedSuspenseBoundary","registerSuspenseInstanceRetry","prevOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","prevHostParent","prevHostParentIsContainer","releaseSingletonInstance","clearHydrationBoundary","retryIfBlockedOn","getRetryCache","retryCache","attachSuspenseRetryListeners","wakeables","wakeable","retry","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","parentFiber","commitMutationEffectsOnFiber","currentHoistableRoot","commitReconciliationEffects","hoistableRoot","currentResource","maybeNodes","getHydratableHoistableCache","mountHoistable","acquireResource","tagCaches","getHoistableRoot","recursivelyResetForms","globalMostRecentFallbackTime","wasHidden","prevOffscreenSubtreeIsHidden","recursivelyTraverseDisappearLayoutEffects","display","hideOrUnhideDehydratedBoundary","hostParentFiber","parent$141","before$142","parent$143","before$144","finishedRoot$jscomp$0","includeWorkInProgressEffects","hiddenCallbacks","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","committedLanes","committedTransitions","commitPassiveMountOnFiber","_finishedWork$memoize2","id","onPostCommit","recursivelyTraverseAtomicPassiveEffects","recursivelyTraverseReconnectPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","suspendedState","accumulateSuspenseyCommitOnFiber","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","sibling","DefaultAsyncDispatcher","resourceType","cacheForType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressRootDidIncludeRecursiveRenderUpdate","workInProgressTransitions","pendingEffectsStatus","pendingEffectsRoot","pendingFinishedWork","pendingEffectsLanes","pendingEffectsRemainingLanes","pendingPassiveTransitions","pendingRecoverableErrors","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","forceSync","shouldTimeSlice","exitStatus","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","wasRootDehydrated","scheduleTimeout","commitRootWhenReady","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","didSkipSuspendedSiblings","suspendedCommitReason","completedRenderStartTime","completedRenderEndTime","timeoutOffset","waitForCommitToBeReady","commitRoot","check","didAttemptEntireTree","index$6","flushSyncWorkAcrossRoots_impl","resetWorkInProgressStack","timeoutHandle","cancelTimeout","allEntangledLanes","index$4","handleThrow","thrownValue","pushDispatcher","prevDispatcher","pushAsyncDispatcher","prevAsyncDispatcher","shouldYieldForPrerendering","prevExecutionContext","unitOfWork","reason","throwAndUnwindWorkLoop","workLoopSync","thrownValue$165","performUnitOfWork","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","workLoopConcurrentByScheduler","thrownValue$167","suspendedReason","unwindUnitOfWork","skipSiblings","flushPendingEffects","scheduleCallback$1","flushPassiveEffects","flushMutationEffects","flushLayoutEffects","flushSpawnedWork","rootMutationHasEffect","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","win","start$jscomp$0","end$jscomp$0","startMarker","endMarker","range","rootHasLayoutEffect","releaseRootPooledCache","onRecoverableError","recoverableError","renderPriority","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","boundaryFiber","retryLane","firstScheduledRoot","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","scheduleImmediateRootScheduleTask","syncTransitionLanes","onlyLegacy","didPerformSomeWork","root$170","performSyncWorkOnRoot","processRootScheduleInImmediateTask","processRootScheduleInMicrotask","shouldAttemptEagerTransition","prev","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","didTimeout","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","scheduleMicrotask","actionScopeLane","coerceFormActionProp","actionProp","createFormDataWithSubmitter","form","submitter","temp","extractEvents$1","maybeTargetInst","i$jscomp$inline_1577","eventName$jscomp$inline_1578","domEventName$jscomp$inline_1579","capitalizedEvent$jscomp$inline_1580","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","currentTarget","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","targetContainer","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","dispatchEvent","dispatchEventForPluginEventSystem","targetInst$jscomp$0","ancestorInst","nodeTag","container","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","getParent","tempB","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","targetFiber","captureName","_instance2","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","serverText","clientText","setProp","setPropOnCustomElement","hasSrc","hasSrcSet","propKey","propValue$184","lastProps","lastProp","propKey$201","propKey$217","propKey$222","propKey$227","propKey$232","isLikelyStaticResource","initiatorType","estimateBandwidth","count","bits","resourceEntries","entry","transferSize","duration","overlapEntry","overlapStartTime","overlapTransferSize","overlapInitiatorType","namespaceURI","parentNamespace","currentPopstateTransitionEvent","localPromise","handleErrorInNextTick","parentInstance","hydrationInstance","depth","nextNode","node$jscomp$0","nextNode$jscomp$0","suspenseInstance","anyProps","nodeType","data","targetInstance","rootContainerInstance","preloadPropsMap","preconnectsSet","previousDispatcher","flushSyncWork","requestFormReset","prefetchDNS","preconnect","preload","preloadModule","preinitScript","preinitStyle","preinitModuleScript","previousWasRendering","wasRendering","formInst","globalDocument","preconnectAs","rel","href","crossOrigin","limitedEscapedHref","as","preloadSelector","getStyleKey","getScriptKey","getStylesheetSelectorFromKey","getScriptSelectorFromKey","precedence","adoptPreloadPropsForStylesheet","link","reject","insertStylesheet","src","scripts","adoptPreloadPropsForScript","currentProps","styles$243","resource$244","preloadStylesheet","stylesheetPropsFromRawProps","rawProps","preloadProps","styleProps","instance$249","linkInstance","nodes","prior","stylesheetProps","scriptProps","keyAttribute","caches","nodeKey","hostContext","onUnsuspend","estimatedBytesWithinLimit","insertSuspendedStylesheets","commit","stylesheetTimer","unsuspend","imgTimer","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","hydrate","onDefaultTransitionIndicator","formState","createFiberRoot","initialChildren","hydrationCallbacks","isStrictMode","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","attemptHydrationAtCurrentPriority","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","hasScheduledReplayAttempt","queuedFocus","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queuedExplicitHydrationTargets","accumulateOrCreateContinuousQueuedReplayableEvent","existingQueuedEvent","pointerId","attemptExplicitHydrationTarget","queuedTarget","attemptReplayContinuousQueuedEvent","queuedEvent","targetContainers","nextBlockedOn","nativeEventClone","attemptReplayContinuousQueuedEventInMap","map","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","formProps","defaultOnDefaultTransitionIndicator","handleNavigate","pendingResolve","handleNavigateComplete","isCancelled","startFakeNavigation","currentEntry","ReactDOMRoot","internalRoot","ReactDOMHydrationRoot","isomorphicReactPackageVersion$jscomp$inline_1840","componentOrElement","internals$jscomp$inline_2347","hook$jscomp$inline_2348","reactDomClient_production","checkDCE","err","clientModule","KNOWN_OPERATORS","createDefaultFetcher","basePath","config","dev","pathPrefix","baseUrl","staticHeaders","buildStaticHeaders","supports","normalizeSupports","requestConfig","resolveRequestStyle","rename","normalizeRename","siteEnvelope","envelope","request","base","deriveCacheKey","projected","op","path","transform","rawBody","method","isRemote","isAbsoluteUrl","joinUrl","headers","pushCandidates","encoded","pushedOperators","appendStyleQueryParams","dc","resolvedBody","substitutePlaceholders","finalBody","composePostBody","hasHeader","response","effectiveEnvelope","extracted","body","safeParseJSON","candidate","getNestedValue","contentType","isDetailRequest","effectiveTransform","applyFallbackOperators","raw","out","wireName","warnedRenameTargets","warnedUnknownOperators","pairs","params","k","v","sep","authorBody","bodyMerge","matchWhere","applySortFallback","items","sortExpr","sorts","s","field","dir","desc","av","bv","lower","obj","part","PopStateEventType","createBrowserHistory","createBrowserLocation","window2","globalHistory","pathname","search","hash","createLocation","createBrowserHref","to","createPath","getUrlBasedHistory","invariant","message","warning","cond","createKey","getHistoryState","location","parsePath","parsedPath","hashIndex","searchIndex","getLocation","createHref2","validateLocation","v5Compat","getIndex","handlePop","nextIndex","delta","history","historyState","replace2","createURL","createBrowserURLImpl","n","isAbsolute","matchRoutes","routes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","rankRouteBranches","matches","decoded","decodePath","matchRouteBranch","parentsMeta","parentPath","_hasParentOptionalSegments","flattenRoute","route","hasParentOptionalSegments","relativePath","meta","joinPaths","routesMeta","computeScore","exploded","explodeOptionalSegments","segments","rest","isOptional","required","restExploded","subpath","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","score","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","normalizePathname","pattern","matcher","compiledParams","compilePath","pathnameBase","captureGroups","memo2","paramName","splatValue","caseSensitive","regexpSource","_","startIndex","nextChar","ABSOLUTE_URL_REGEX","resolvePath","fromPathname","toPathname","oldPathname","resolvePathname","normalizeSearch","normalizeHash","getInvalidPathError","char","dest","getPathContributingMatches","getResolveToMatches","pathMatches","idx","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","ErrorResponseImpl","status","statusText","data2","internal","isRouteErrorResponse","getRoutePattern","m","isBrowser","parseToInfo","_to","absoluteURL","isExternal","currentUrl","targetUrl","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","React.createContext","DataRouterStateContext","RSCRouterContext","ViewTransitionContext","FetchersContext","AwaitContext","NavigationContext","LocationContext","RouteContext","RouteErrorContext","ERROR_DIGEST_BASE","ERROR_DIGEST_REDIRECT","ERROR_DIGEST_ROUTE_ERROR_RESPONSE","decodeRedirectErrorDigest","parsed","decodeRouteErrorResponseDigest","useHref","relative","useInRouterContext","navigator","React2.useContext","useResolvedPath","joinedPathname","useLocation","useNavigationType","navigateEffectWarning","useIsomorphicLayoutEffect","cb","React2.useLayoutEffect","useNavigate","isDataRoute","useNavigateStable","useNavigateUnstable","dataRouterContext","routePathnamesJson","activeRef","React2.useRef","React2.useCallback","React2.createContext","useParams","routeMatch","React2.useMemo","useRoutes","useRoutesImpl","dataRouterState","onError","future","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","warningOnce","locationFromContext","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","React2.createElement","DefaultErrorComponent","useRouteError","lightgrey","preStyles","codeStyles","devInfo","React2.Fragment","defaultErrorElement","RenderErrorBoundary","React2.Component","RSCErrorHandler","errorRedirectHandledMap","redirect2","existingRedirect","redirectPromise","RenderedRoute","routeContext","onErrorHandler","errors","errorIndex","renderFallback","fallbackIndex","loaderData","errors2","needsToRunLoader","outlet","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","matches2","getChildren","getDataRouterConsoleError","hookName","useDataRouterContext","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","useRouteId","routeId","router","alreadyWarned","React3.memo","DataRoutes","Route","Router","basenameProp","locationProp","navigationType","staticProp","unstable_useTransitions","navigationContext","React3.useMemo","locationContext","trailingPathname","React3.createElement","Routes","createRoutesFromChildren","React3.Children","React3.isValidElement","treePath","React3.Fragment","defaultMethod","defaultEncType","isHtmlElement","object","isButtonElement","isFormElement","isInputElement","isModifiedEvent","shouldProcessLinkClick","_formDataSupportsSubmitter","isFormDataSubmitterSupported","supportedFormEncTypes","getFormEncType","encType","getFormSubmissionInfo","attr","invariant2","singleFetchUrl","reqUrl","trailingSlashAware","extension","loadRouteModule","routeModulesCache","routeModule","isHtmlLinkDescriptor","getKeyedPrefetchLinks","manifest","routeModules","links","mod","dedupeLinkDescriptors","getNewMatchesForLinks","page","nextMatches","currentMatches","isNew","matchPathChanged","manifestRoute","routeChoice","getModuleLinkHrefs","includeHydrateFallback","dedupeHrefs","hrefs","sortKeys","sorted","keys","descriptors","preloads","deduped","useDataRouterContext2","React8.useContext","useDataRouterStateContext","FrameworkContext","React8.createContext","useFrameworkContext","usePrefetchBehavior","prefetch","theirElementProps","frameworkContext","maybePrefetch","setMaybePrefetch","React8.useState","shouldPrefetch","setShouldPrefetch","onFocus","onBlur","onMouseEnter","onMouseLeave","onTouchStart","React8.useRef","React8.useEffect","entries","observer","setIntent","cancelIntent","composeEventHandlers","theirHandler","ourHandler","PrefetchPageLinks","linkProps","React8.useMemo","React8.createElement","PrefetchPageLinksImpl","useKeyedPrefetchLinks","keyedPrefetchLinks","setKeyedPrefetchLinks","interrupted","newMatchesForData","newMatchesForAssets","dataHrefs","routesParams","foundOptOutRoute","m2","moduleHrefs","React8.Fragment","mergeRefs","refs","isBrowser2","BrowserRouter","historyRef","React10.useRef","setStateImpl","React10.useState","React10.useCallback","React10.startTransition","React10.useLayoutEffect","React10.createElement","ABSOLUTE_URL_REGEX2","Link","React10.forwardRef","onClick","discover","reloadDocument","preventScrollReset","viewTransition","unstable_defaultShouldRevalidate","forwardedRef","React10.useContext","prefetchRef","prefetchHandlers","internalOnClick","useLinkClickHandler","handleClick","React10.Fragment","NavLink","ariaCurrentProp","classNameProp","routerState","isTransitioning","useViewTransitionState","nextLocationPathname","endSlashPosition","isActive","isPending","renderProps","ariaCurrent","className","Form","fetcherKey","navigate","onSubmit","submit","useSubmit","formAction","useFormAction","formMethod","submitHandler","submitMethod","doSubmit","getDataRouterConsoleError2","useDataRouterContext3","replaceProp","doNavigate","fetcherId","getUniqueFetcherId","currentRouteId","routerFetch","routerNavigate","indexValues","qs","vtContext","currentPath","nextPath","guaranteeItemStructure","item","guaranteeContentStructure","parsedContent","applySchemaToObject","schema","fieldDef","applySchemaToValue","applyRichFieldDefaults","fields","applyRichSchemaToValue","childFields","collectionKey","arr","applySchemas","schemas","rawValue","isRichSchema","applyEntityShape","entityMeta","dynamicContext","plural","singular","singularize","applyDefaults","defaults","mergeEntityData","entityData","changed","merged","runDataHandler","runContentHandler","transformed","reparsed","runPropsHandler","prepareProps","adjusted","getComponentMeta","componentName","MODES","resolveUrl","GradientOverlay","gradient","opacity","angle","startPosition","endPosition","SolidOverlay","Overlay","overlay","ColorBackground","color","GradientBackground","startOpacity","endOpacity","startColor","withOpacity","endColor","r","g","ImageBackground","image","position","lazy","prefersReducedMotion","VideoBackground","video","sources","poster","loop","muted","jsx","sourceList","inferSources","sourceSrc","ext","getVideoMimeType","Background","containerStyle","jsxs","VALID_CONTEXTS","getWrapperProps","theme","blockClassName","contextClass","background","BlockRenderer","entityStore","resolved","asyncData","setAsyncData","useState","useEffect","controller","prepared","componentProps","wrapperProps","componentClassName","hasBackground","Wrapper","Blocks","DefaultLayout","header","footer","initializeAllBlocks","blockGroups","mergeParams","pageParams","Layout","website","layoutName","RemoteLayout","layoutMeta","bodyBlocks","areas","allBlockGroups","bodyElement","areaElements","transitionName","META_TAGS","getOrCreateMetaTag","getOrCreateLinkTag","setMetaContent","useHeadMeta","siteName","titleSeparator","useRef","fullTitle","keywords","existingCanonical","Default404","homeHref","ChildBlocks","wrapAs","childBlock","SectionOverrideStyles","styleRef","useMemo","themeStyle","PageRenderer","forceUpdate","useReducer","contentReady","redirectTarget","autoRedirectRoute","shouldAutoRedirect","isNotFound","headMeta","isDynamicPending","Fragment","FallbackRef","wireFoundationCapabilities","uniweb","foundation","caps","hydrateDataStore","fetchedData","CONTENT_PREFETCH_TIMEOUT","prefetchContent","targetPage","navigateWithTransition","ViewTransitionLink","replace","useRouterNavigate","e","RouterLink","DEFAULT_ROUTING_COMPONENTS","ICON_FAMILY_MAP","createIconResolver","iconConfig","CDN_BASE","useCdn","library","familyCode","iconFileName","svg","buildDefaultFetcher","initUniweb","extensions","routingComponents","transport","defaultFetcher","createUniweb","cacheEl","cached","decodeData","el","bytes","c","stream","writer","json","loadFoundationCSS","loadFoundation","cssUrl","componentNames","loadExtensions","urls","results","loaded","THEME_STYLE_ID","isThemeCSSInjected","ThemeProvider","styleElement","existingStyle","scrollPositions","getScrollY","resolveScrollContainer","scroll","useRememberScroll","enabled","resetBlockStates","locationKeyRef","savedScrollRef","containerRef","handleScroll","useCallback","useLayoutEffect","saved","raf","attempts","tryRestore","isInternalLink","shouldNavigate","findAnchorElement","scrollToElement","elementId","retries","useLinkInterceptor","anchor","routeHref","activeLocale","defaultLocale","localeCodes","l","hrefLocale","isLocaleSwitch","WebsiteRenderer","defaultScheme","themeCSS","ErrorBoundary","RuntimeProvider","development","externalRouter","app","initRuntime","foundationSource","providedConfig","configData","remoteModule","extensionSources","uniwebInstance","routerBasename","rawPath","routePath","createRoot","foundationModule"],"mappings":"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+B,EACtBo/B,EAAgB,cAAgBO,GAC9BC,GAAoB,KAClB,KACAR,EACAD,EACAxnB,GACA4mB,GACAD,GACAt+B,EACA8xB,GACAsM,GACA/J,GACA4J,GACAuB,EACA,YACA,GACA,GAEFH,GAEF,MAAMhrC,CAChB,CACQurC,GACER,EACAD,EACAxnB,GACA4mB,GACAD,GACAt+B,EACA8xB,GACAsM,GACA/J,GACA4J,GACAuB,EACA,KACA,GACA,EAEV,CACA,CACI,KACJ,OAAW,IACTP,GAAsB9E,CAAa,CACrC,CACA,SAASyF,GACPz/B,EACAu1B,EACAmK,EACAC,EACAC,EACA//B,EACAwB,EACAC,EACAC,EACAs+B,EACAX,EACAY,EACAC,EACAC,EACA,CAGA,GAFAhgC,EAAK,cAAgB,GACrB8/B,EAAwBvK,EAAa,aAEnCuK,EAAwB,OACVA,EAAwB,YAAtC,SACA,CACAA,EAAwB,CACtB,YAAa,KACb,MAAO,EACP,SAAU,EACV,SAAU,EACV,gBAAiB,CAAA,EACjB,iBAAkB,GAClB,yBAA0B,GAC1B,UAAWx3B,IAEbu0B,GACEtH,EACA11B,EACAigC,GAEF,IAAIG,GACDpgC,EAAQ,YAAcA,EACnBi7B,GAA+Bt8B,GAAG,GACjCqB,EAAQ,WAAaA,EACpB8a,GAAiCnc,GAAG,EACpC,EAKR,GAJAyhC,EAAgBC,GACdJ,EACAG,GAEWA,IAAT,KAAwB,CAC1BzB,GAAsB3+B,EACtBG,EAAK,oBAAsBigC,EACzBE,GAAW,KACT,KACAngC,EACAu1B,EACA11B,EACA6/B,EACAC,EACAC,EACAv+B,EACAC,EACAC,EACA29B,EACAY,EACA,KACAC,EACAC,CACV,GAEMnB,GAAkB7+B,EAAMH,EAAOwB,EAAa,CAACw+B,CAAwB,EACrE,MACN,CACA,CACEM,GACEngC,EACAu1B,EACA11B,EACA6/B,EACAC,EACAC,EACAv+B,EACAC,EACAC,EAEJ,CACA,SAAS+9B,GAAqC/J,EAAc,CAC1D,QAASvhC,EAAOuhC,IAAkB,CAChC,IAAI/7B,EAAMxF,EAAK,IACf,IACSwF,IAAN,GAAoBA,IAAP,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Ac,aACjD,OAAaA,EAAe,MAArB,EACHA,EAAe,UAAU,cACzB,KACN+K,EAAa,IACrB,MAAa/K,IAAmB+K,IAAeA,EAAa,KAC5D,CACA,CACE,OAAAytC,GAAoBztC,EACb,IACT,CACA,SAASf,GAAiBkL,EAAc,CACtC,OAAQA,EAAY,CAClB,IAAK,eACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,OACL,IAAK,MACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,SACL,IAAK,kBACL,IAAK,YACL,IAAK,mBACL,IAAK,iBACL,IAAK,oBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,OACL,IAAK,mBACL,IAAK,QACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,cACH,MAAO,GACT,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACH,MAAO,GACT,IAAK,UACH,OAAQpP,GAAuB,EAAE,CAC/B,KAAKC,GACH,MAAO,GACT,KAAKC,GACH,MAAO,GACT,KAAKC,GACL,KAAKC,GACH,MAAO,IACT,KAAKC,GACH,MAAO,WACT,QACE,MAAO,GACjB,CACI,QACE,MAAO,GACb,CACA,CACA,IAAI0yC,GAA4B,GAC9BC,GAAc,KACdC,GAAa,KACbC,GAAc,KACdC,GAAiB,IAAI,IACrBC,GAAwB,IAAI,IAC5BC,GAAiC,CAAA,EACjCR,GACE,sPAAsP,MACpP,KAEN,SAASF,GAAuBvjC,EAAcpF,EAAa,CACzD,OAAQoF,EAAY,CAClB,IAAK,UACL,IAAK,WACH4jC,GAAc,KACd,MACF,IAAK,YACL,IAAK,YACHC,GAAa,KACb,MACF,IAAK,YACL,IAAK,WACHC,GAAc,KACd,MACF,IAAK,cACL,IAAK,aACHC,GAAe,OAAOnpC,EAAY,SAAS,EAC3C,MACF,IAAK,oBACL,IAAK,qBACHopC,GAAsB,OAAOppC,EAAY,SAAS,CACxD,CACA,CACA,SAASspC,GACPC,EACAf,EACApjC,EACA04B,EACAa,EACA3+B,EACA,CACA,OACWupC,IAAT,MACAA,EAAoB,cAAgBvpC,GAGjCupC,EAAsB,CACrB,UAAWf,EACX,aAAcpjC,EACd,iBAAkB04B,EAClB,YAAa99B,EACb,iBAAkB,CAAC2+B,CAAe,GAE3B6J,IAAT,OACIA,EAAYntC,GAAoBmtC,CAAS,EAClCA,IAAT,MAAsBF,GAA2BE,CAAS,GAC5De,IAEJA,EAAoB,kBAAoBzL,EACxC0K,EAAYe,EAAoB,iBACvB5K,IAAT,MACS6J,EAAU,QAAQ7J,CAAe,IAAxC,IACA6J,EAAU,KAAK7J,CAAe,EACzB4K,EACT,CACA,SAASX,GACPJ,EACApjC,EACA04B,EACAa,EACA3+B,EACA,CACA,OAAQoF,EAAY,CAClB,IAAK,UACH,OACG4jC,GAAcM,GACbN,GACAR,EACApjC,EACA04B,EACAa,EACA3+B,GAEF,GAEJ,IAAK,YACH,OACGipC,GAAaK,GACZL,GACAT,EACApjC,EACA04B,EACAa,EACA3+B,GAEF,GAEJ,IAAK,YACH,OACGkpC,GAAcI,GACbJ,GACAV,EACApjC,EACA04B,EACAa,EACA3+B,GAEF,GAEJ,IAAK,cACH,IAAIwpC,EAAYxpC,EAAY,UAC5B,OAAAmpC,GAAe,IACbK,EACAF,GACEH,GAAe,IAAIK,CAAS,GAAK,KACjChB,EACApjC,EACA04B,EACAa,EACA3+B,CACV,GAEa,GACT,IAAK,oBACH,OACGwpC,EAAYxpC,EAAY,UACzBopC,GAAsB,IACpBI,EACAF,G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","x_google_ignoreList":[1,2,3,4,6]}