@sanity/ui 2.0.0-beta.7 → 2.0.0-beta.8

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 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/core/_compat.ts","../node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/cjs/react-is.development.js","../node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/index.js","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/lib/globalScope.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/hooks/useIsomorphicEffect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useCustomValidity.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/helpers.ts","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/hooks/_internal/useUnique.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/hotkeys/hotkeys.tsx","../src/core/components/menu/menuContext.ts","../src/core/components/menu/helpers.ts","../src/core/components/menu/useMenuController.ts","../src/core/components/menu/menu.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {opacity: 0.5, scale: 0.97},\n animate: {opacity: 1, scale: 1},\n exit: {opacity: 0, scale: 0.97},\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n position: 'relative',\n fontFamily: family,\n fontWeight,\n padding: '1px 0',\n margin: 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n fontSize: rem(fontSize),\n lineHeight: `calc(${lineHeight} / ${fontSize})`,\n letterSpacing: rem(letterSpacing),\n transform: `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check\n const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__],\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","import {Context, createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> = globalScope[key]\n","import {\n RootTheme,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: rootTheme = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\nconst MEDIA_STORE_CACHE = new WeakMap<number[], _MediaStore>()\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n\n let store = MEDIA_STORE_CACHE.get(media)\n\n if (!store) {\n store = _createMediaStore(media)\n MEDIA_STORE_CACHE.set(media, store)\n }\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-color-scheme: dark)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-reduced-motion: reduce)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * Returns true if motion should be reduced\n * @public\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <Root\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n backgroundColor: 'var(--avatar-bg-color)',\n position: 'relative',\n boxSizing: 'border-box',\n userSelect: 'none',\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n WebkitFontSmoothing: 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n width: '100%',\n height: '100%',\n color: 'var(--avatar-fg-color)',\n alignItems: 'center',\n justifyContent: 'center',\n textTransform: 'uppercase',\n textAlign: 'center',\n borderRadius: '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst Root = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst Image = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <Image viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </Image>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode,\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string',\n ) as Array<React.ReactElement | string>\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string',\n ) as React.ReactElement[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <Root\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n backgroundColor: 'var(--card-bg-color)',\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'ghost',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <Root\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box flex={iconRight ? 1 : undefined}>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n margin: `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst Root = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </Root>\n )\n})\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Root {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media = theme.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef],\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {Context, createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const forwardedRef = useForwardedRef(ref)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = forwardedRef.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [forwardedRef, isTopLayer, onFocus],\n )\n\n return (\n <Root\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={forwardedRef}\n style={{...style, zIndex}}\n >\n {children}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/element')\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\nconst __BROWSER__ = typeof document !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const forwardedRef = useForwardedRef(ref)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n bottom: ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n left: ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n right: ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n ...style,\n }),\n [originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nPopoverCard.displayName = 'PopoverCard'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport {useForwardedRef, useArrayProp, useElementSize, useMediaIndex} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {\n ConditionalWrapper,\n LayerProps,\n LayerProvider,\n Portal,\n useBoundaryElement,\n} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = forwardedRef.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, forwardedRef, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n return (\n <>\n {/* the popover */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {open && (\n <ConditionalWrapper\n condition={!!portal}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {children}\n </Portal>\n )}\n >\n {popover}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Popover'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </Root>\n )\n})\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst Root = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon,\n iconRight,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n icon,\n iconRight,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <Root data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </Root>\n )\n})\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n bottom: ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n left: ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n right: ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))``\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n ...style,\n }),\n [originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'TooltipCard'\n","import {createContext} from 'react'\nimport {globalScope} from '../../../lib/globalScope'\nimport {TooltipDelayGroupContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tooltipDelayGroup')\n\nglobalScope[key] = globalScope[key] || createContext<TooltipDelayGroupContextValue | null>(null)\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: React.Context<TooltipDelayGroupContextValue | null> =\n globalScope[key]\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n ForwardedRef,\n useId,\n} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {Placement} from '../../types'\nimport {\n ConditionalWrapper,\n Layer,\n LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} from '../../utils'\nimport {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst Root = styled(Layer)<{$maxWidth: number}>`\n pointer-events: none;\n max-width: ${({$maxWidth}) => $maxWidth}px;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const tooltipWidth = useMemo(() => {\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n return Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2\n }, [boundaryElement, portalElement?.offsetWidth])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [showTooltip, referenceElement, handleIsOpenChange])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReference,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n setReference,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={floatingStyles}\n zOffset={zOffset}\n $maxWidth={tooltipWidth}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </Root>\n )\n\n return (\n <>\n {/* the tooltip */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {showTooltip && (\n <ConditionalWrapper\n condition={!!portalProp}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {children}\n </Portal>\n )}\n >\n {tooltip}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children],\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n background: color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutside(\n useCallback(\n (event: MouseEvent) => {\n if (!isTopLayer || !onClickOutside) return\n\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n },\n [boundaryElement, isTopLayer, onClickOutside, portalElement],\n ),\n [rootElement],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"center\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || layer.dialog.zOffset,\n animate = false,\n ...restProps\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n animate={animate}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElement, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElement?.focus()\n }, [setActiveIndex, rootElement])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\n if (_activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside],\n ),\n [rootElement],\n )\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Root>\n </MenuContext.Provider>\n )\n})\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref],\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n onMouseDown: handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open, setButtonRef],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n","import styled from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) onItemClick()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon,\n iconRight,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref],\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n id: string\n icon?: React.ElementType | React.ReactNode\n focused?: boolean\n fontSize?: number | number[]\n label?: React.ReactNode\n padding?: number | number[]\n selected?: boolean\n tone?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorToneKey} from '@sanity/ui/theme'\nimport styled from 'styled-components'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n}\n\nconst Root = styled(Card)`\n pointer-events: all;\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.ReactElement {\n const {closable, description, onClose, radius = 3, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {useEffect, useReducer} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n // Use useReducer instead of useState as it's more low-level and creates the least amount of functions for the garbage collector to clean up\n const [mounted, mount] = useReducer(() => true, false)\n\n useEffect(mount, [mount])\n\n return mounted\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState, startTransition} from 'react'\nimport styled from 'styled-components'\nimport {useMounted} from '../../hooks/useMounted'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n const mounted = useMounted()\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n animate={{opacity: 1, y: 0, scale: 1}}\n exit={{opacity: 0, scale: 0.5, transition: {duration: 0.2}}}\n initial={{opacity: 0, y: 32, scale: 0.25}}\n key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\n\nTree.displayName = 'Tree'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","process","env","NODE_ENV","REACT_ELEMENT_TYPE","Symbol","for","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_SERVER_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","$$typeof","getModuleId","undefined","typeOf","object","$$typeofType","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","hasWarnedAboutDeprecatedIsAsyncMode","hasWarnedAboutDeprecatedIsConcurrentMode","isAsyncMode","console","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","reactIs_development","b","c","d","e","f","g","h","k","l","m","n","p","q","t","u","v","a","r","reactIs_production_min","reactIsModule","exports","require$$1","require$$0","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","initial","opacity","scale","animate","exit","transition","duration","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","concat","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","arguments","length","Error","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size$1","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process$1","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_ref","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","getGlobalScope","globalThis","self","globalScope","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","themeContext","version","getScopedTheme","jsx","Provider","StyledThemeProvider","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","MEDIA_STORE_CACHE","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","matchMedia","getSnapshot","matches","onStoreChange","disposeFns","handleChange","disposeFn","getServerSnapshot","getServerSnapshot$2","useMediaIndex","store","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","getMatchMedia$1","getSnapshot$1","getServerSnapshot$1","usePrefersDark","usePrefersReducedMotion","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","s","styles","responsiveInputPaddingIconRightStyle","_c","ROOT_STYLE","css","__template","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","accent","childrenProp","muted","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","zIndex","$color","avatar","backgroundColor","userSelect","WebkitFontSmoothing","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","__unstable_hideInnerStroke","as","asProp","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","id","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","forwardedAs","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","childrenToElementArray","childrenArray","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","textBaseStyle","bold","Text","badgeStyle","cursor","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","primary","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","_len","boxShadows","_key","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","selected","spaceProp","boxProps","isValidElement","createElement","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","_ref2","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","_ref3","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","_ref4","$w","w","StrokePath","path","ShapePath","center","strokePath","fillPath","mask","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","_ref5","condition","wrapper","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","__publicField","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","state","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","parentLevel","level","maxMediaIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","becameTopLayer","handleFocus","rootElement","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","handleScroll2","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","PopoverCard","memo","PopoverCard2","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","strategy","xProp","yProp","rootStyle","arrowStyle","displayName","Popover","Popover2","_d","_e","_f","_g","_h","_j","layer","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_ref6","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","AnimatePresence","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","__unstable_disableFocusRing","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","useDelayedState","initialState","setState","delayedAction","onStateChange","delay","action","clearTimeout","setTimeout","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipCard2","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","_ref7","$maxWidth","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipWidth","availableWidths","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","minimumGroupDeactivateDelay","groupDeactivateDelay","standaloneDelay","handleBlur","onBlur","handleClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowMouseMove","isHoveringReference","handleWindowKeyDown","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","_ref8","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","_ref9","background","responsiveDialogPositionStyle","$position","animationDialogStyle","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","setRootElement","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","_ref10","$visible","_ref11","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","elementRef","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","TextBox","Toast","closable","description","cardTone","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","startTransition","dismiss","timeoutId","prevState","findIndex","toasts","_ref12","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","_findNextItemElement","_focusItemElement","TreeContext","Tree","Tree2","setFocusedElement","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":";;;;;;;;;AAiNO,MAAMA,gBAAmB,GAAAC,kBAAA;AAMzB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,UAAa,GAAAC,YAAA;AAMnB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,IAAO,GAAAC,MAAA;AAMb,MAAMC,MAAS,GAAAC,QAAA;AAMf,MAAMC,cAAcC,UAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;EC3PtC,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,CAAC,YAAW;MAGd;MACA;MACA;MACA;MACA,IAAIC,kBAAkB,GAAGC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;MACpD,IAAIC,iBAAiB,GAAGF,MAAM,CAACC,GAAG,CAAC,cAAc,CAAC;MAClD,IAAIE,mBAAmB,GAAGH,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIG,sBAAsB,GAAGJ,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;MAC5D,IAAII,mBAAmB,GAAGL,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIK,mBAAmB,GAAGN,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIM,kBAAkB,GAAGP,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;MACpD,IAAIO,yBAAyB,GAAGR,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;MAClE,IAAIQ,sBAAsB,GAAGT,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;MAC5D,IAAIS,mBAAmB,GAAGV,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIU,wBAAwB,GAAGX,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;MAChE,IAAIW,eAAe,GAAGZ,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;MAC9C,IAAIY,eAAe,GAAGb,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;MAC9C,IAAIa,oBAAoB,GAAGd,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;;MAExD;;MAEA,IAAIc,cAAc,GAAG,KAAK,CAAC,CAAA;MAC3B,IAAIC,kBAAkB,GAAG,KAAK;MAC9B,IAAIC,uBAAuB,GAAG,KAAK,CAAC,CAAA;;MAEpC,IAAIC,kBAAkB,GAAG,KAAK,CAAC,CAAA;MAC/B;MACA;;MAEA,IAAIC,kBAAkB,GAAG,KAAK,CAAC,CAAA;;MAE/B,IAAIC,sBAAsB;MAE1B;QACEA,sBAAsB,GAAGpB,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;MAC9D;MAED,SAASoB,kBAAkBA,CAACC,IAAI,EAAE;QAChC,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;UAC1D,OAAO,IAAI;QACZ,CAAA,CAAA;;QAGD,IAAIA,IAAI,KAAKnB,mBAAmB,IAAImB,IAAI,KAAKjB,mBAAmB,IAAIc,kBAAkB,IAAKG,IAAI,KAAKlB,sBAAsB,IAAIkB,IAAI,KAAKZ,mBAAmB,IAAIY,IAAI,KAAKX,wBAAwB,IAAIO,kBAAkB,IAAKI,IAAI,KAAKR,oBAAoB,IAAIC,cAAc,IAAKC,kBAAkB,IAAKC,uBAAuB,EAAG;UAC7T,OAAO,IAAI;QACZ;QAED,IAAI,OAAOK,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;UAC7C,IAAIA,IAAI,CAACC,QAAQ,KAAKV,eAAe,IAAIS,IAAI,CAACC,QAAQ,KAAKX,eAAe,IAAIU,IAAI,CAACC,QAAQ,KAAKjB,mBAAmB,IAAIgB,IAAI,CAACC,QAAQ,KAAKhB,kBAAkB,IAAIe,IAAI,CAACC,QAAQ,KAAKd,sBAAsB;UAAA;UAC3M;UACA;UACA;UACIa,IAAI,CAACC,QAAQ,KAAKH,sBAAsB,IAAIE,IAAI,CAACE,WAAW,KAAKC,SAAS,EAAE;YAC1E,OAAO,IAAI;UACZ;QACF;QAED,OAAO,KAAK;MACb;MAED,SAASC,MAAMA,CAACC,MAAM,EAAE;QACtB,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;UACjD,IAAIJ,QAAQ,GAAGI,MAAM,CAACJ,QAAQ;UAE9B,QAAQA,QAAQ;YACd,KAAKxB,kBAAkB;cACrB,IAAIuB,IAAI,GAAGK,MAAM,CAACL,IAAI;cAEtB,QAAQA,IAAI;gBACV,KAAKnB,mBAAmB;gBACxB,KAAKE,mBAAmB;gBACxB,KAAKD,sBAAsB;gBAC3B,KAAKM,mBAAmB;gBACxB,KAAKC,wBAAwB;kBAC3B,OAAOW,IAAI;gBAEb;kBACE,IAAIM,YAAY,GAAGN,IAAI,IAAIA,IAAI,CAACC,QAAQ;kBAExC,QAAQK,YAAY;oBAClB,KAAKpB,yBAAyB;oBAC9B,KAAKD,kBAAkB;oBACvB,KAAKE,sBAAsB;oBAC3B,KAAKI,eAAe;oBACpB,KAAKD,eAAe;oBACpB,KAAKN,mBAAmB;sBACtB,OAAOsB,YAAY;oBAErB;sBACE,OAAOL,QAAQ;kBAClB;cAEJ;YAEH,KAAKrB,iBAAiB;cACpB,OAAOqB,QAAQ;UAClB;QACF;QAED,OAAOE,SAAS;MACjB;MACD,IAAII,eAAe,GAAGtB,kBAAkB;MACxC,IAAIuB,eAAe,GAAGxB,mBAAmB;MACzC,IAAIyB,OAAO,GAAGhC,kBAAkB;MAChC,IAAIiC,UAAU,GAAGvB,sBAAsB;MACvC,IAAIwB,QAAQ,GAAG9B,mBAAmB;MAClC,IAAI+B,IAAI,GAAGrB,eAAe;MAC1B,IAAIsB,IAAI,GAAGvB,eAAe;MAC1B,IAAIwB,MAAM,GAAGlC,iBAAiB;MAC9B,IAAImC,QAAQ,GAAGhC,mBAAmB;MAClC,IAAIiC,UAAU,GAAGlC,sBAAsB;MACvC,IAAImC,QAAQ,GAAG7B,mBAAmB;MAClC,IAAI8B,YAAY,GAAG7B,wBAAwB;MAC3C,IAAI8B,mCAAmC,GAAG,KAAK;MAC/C,IAAIC,wCAAwC,GAAG,KAAK,CAAC,CAAA;;MAErD,SAASC,WAAWA,CAAChB,MAAM,EAAE;QAC3B;UACE,IAAI,CAACc,mCAAmC,EAAE;YACxCA,mCAAmC,GAAG,IAAI,CAAC,CAAA;;YAE3CG,OAAO,CAAC,MAAM,CAAC,CAAC,uDAAuD,GAAG,mCAAmC,CAAC;UAC/G;QACF;QAED,OAAO,KAAK;MACb;MACD,SAASC,gBAAgBA,CAAClB,MAAM,EAAE;QAChC;UACE,IAAI,CAACe,wCAAwC,EAAE;YAC7CA,wCAAwC,GAAG,IAAI,CAAC,CAAA;;YAEhDE,OAAO,CAAC,MAAM,CAAC,CAAC,4DAA4D,GAAG,mCAAmC,CAAC;UACpH;QACF;QAED,OAAO,KAAK;MACb;MACD,SAASE,iBAAiBA,CAACnB,MAAM,EAAE;QACjC,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKpB,kBAAkB;MAC7C;MACD,SAASwC,iBAAiBA,CAACpB,MAAM,EAAE;QACjC,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKrB,mBAAmB;MAC9C;MACD,SAAS0C,SAASA,CAACrB,MAAM,EAAE;QACzB,OAAO,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,IAAIA,MAAM,CAACJ,QAAQ,KAAKxB,kBAAkB;MAC/F;MACD,SAASkD,YAAYA,CAACtB,MAAM,EAAE;QAC5B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKlB,sBAAsB;MACjD;MACD,SAASyC,UAAUA,CAACvB,MAAM,EAAE;QAC1B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKxB,mBAAmB;MAC9C;MACD,SAASgD,MAAMA,CAACxB,MAAM,EAAE;QACtB,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKd,eAAe;MAC1C;MACD,SAASuC,MAAMA,CAACzB,MAAM,EAAE;QACtB,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKf,eAAe;MAC1C;MACD,SAASyC,QAAQA,CAAC1B,MAAM,EAAE;QACxB,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKzB,iBAAiB;MAC5C;MACD,SAASoD,UAAUA,CAAC3B,MAAM,EAAE;QAC1B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKtB,mBAAmB;MAC9C;MACD,SAASkD,YAAYA,CAAC5B,MAAM,EAAE;QAC5B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKvB,sBAAsB;MACjD;MACD,SAASoD,UAAUA,CAAC7B,MAAM,EAAE;QAC1B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKjB,mBAAmB;MAC9C;MACD,SAAS+C,cAAcA,CAAC9B,MAAM,EAAE;QAC9B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKhB,wBAAwB;MACnD;MAEsB+C,mBAAA,CAAA7B,eAAA,GAAGA,eAAe;MAClB6B,mBAAA,CAAA5B,eAAA,GAAGA,eAAe;MAC1B4B,mBAAA,CAAA3B,OAAA,GAAGA,OAAO;MACP2B,mBAAA,CAAA1B,UAAA,GAAGA,UAAU;MACf0B,mBAAA,CAAAzB,QAAA,GAAGA,QAAQ;MACfyB,mBAAA,CAAAxB,IAAA,GAAGA,IAAI;MACPwB,mBAAA,CAAAvB,IAAA,GAAGA,IAAI;MACLuB,mBAAA,CAAAtB,MAAA,GAAGA,MAAM;MACPsB,mBAAA,CAAArB,QAAA,GAAGA,QAAQ;MACTqB,mBAAA,CAAApB,UAAA,GAAGA,UAAU;MACfoB,mBAAA,CAAAnB,QAAA,GAAGA,QAAQ;MACPmB,mBAAA,CAAAlB,YAAA,GAAGA,YAAY;MAChBkB,mBAAA,CAAAf,WAAA,GAAGA,WAAW;MACTe,mBAAA,CAAAb,gBAAA,GAAGA,gBAAgB;MAClBa,mBAAA,CAAAZ,iBAAA,GAAGA,iBAAiB;MACpBY,mBAAA,CAAAX,iBAAA,GAAGA,iBAAiB;MAC5BW,mBAAA,CAAAV,SAAA,GAAGA,SAAS;MACTU,mBAAA,CAAAT,YAAA,GAAGA,YAAY;MACjBS,mBAAA,CAAAR,UAAA,GAAGA,UAAU;MACjBQ,mBAAA,CAAAP,MAAA,GAAGA,MAAM;MACTO,mBAAA,CAAAN,MAAA,GAAGA,MAAM;MACPM,mBAAA,CAAAL,QAAA,GAAGA,QAAQ;MACTK,mBAAA,CAAAJ,UAAA,GAAGA,UAAU;MACXI,mBAAA,CAAAH,YAAA,GAAGA,YAAY;MACjBG,mBAAA,CAAAF,UAAA,GAAGA,UAAU;MACTE,mBAAA,CAAAD,cAAA,GAAGA,cAAc;MACbC,mBAAA,CAAArC,kBAAA,GAAGA,kBAAkB;MACjCqC,mBAAA,CAAAhC,MAAA,GAAGA,MAAM;IACvB,CAAG,GAAG;EACN;;;;;;;;;;;;;;;;;;;ECnNa,IAAIiC,CAAC,GAAC3D,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;IAAC2D,CAAC,GAAC5D,MAAM,CAACC,GAAG,CAAC,cAAc,CAAC;IAAC4D,CAAC,GAAC7D,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAAC6D,CAAC,GAAC9D,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;IAAC8D,CAAC,GAAC/D,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAAC+D,CAAC,GAAChE,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAACgE,CAAC,GAACjE,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;IAACiE,CAAC,GAAClE,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;IAACkE,CAAC,GAACnE,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;IAACmE,CAAC,GAACpE,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAACoE,CAAC,GAACrE,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;IAACqE,CAAC,GAACtE,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;IAACsE,CAAC,GAACvE,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;IAACuE,CAAC,GAACxE,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;IAACwE,CAAC;EAACA,CAAC,GAACzE,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;EACjf,SAASyE,CAACA,CAACC,CAAC,EAAC;IAAC,IAAG,QAAQ,KAAG,OAAOA,CAAC,IAAE,IAAI,KAAGA,CAAC,EAAC;MAAC,IAAIC,CAAC,GAACD,CAAC,CAACpD,QAAQ;MAAC,QAAOqD,CAAC;QAAE,KAAKjB,CAAC;UAAC,QAAOgB,CAAC,GAACA,CAAC,CAACrD,IAAI,EAACqD,CAAC;YAAE,KAAKd,CAAC;YAAC,KAAKE,CAAC;YAAC,KAAKD,CAAC;YAAC,KAAKM,CAAC;YAAC,KAAKC,CAAC;cAAC,OAAOM,CAAC;YAAC;cAAQ,QAAOA,CAAC,GAACA,CAAC,IAAEA,CAAC,CAACpD,QAAQ,EAACoD,CAAC;gBAAE,KAAKT,CAAC;gBAAC,KAAKD,CAAC;gBAAC,KAAKE,CAAC;gBAAC,KAAKI,CAAC;gBAAC,KAAKD,CAAC;gBAAC,KAAKN,CAAC;kBAAC,OAAOW,CAAC;gBAAC;kBAAQ,OAAOC,CAAC;cAAA;UAAC;QAAC,KAAKhB,CAAC;UAAC,OAAOgB,CAAC;MAAA;IAAC;EAAC;EAACC,sBAAuB,CAAAhD,eAAA,GAACoC,CAAC;EAACY,sCAAuB,GAACb,CAAC;EAACa,sBAAA,CAAA9C,OAAe,GAAC4B,CAAC;EAACkB,sBAAA,CAAA7C,UAAkB,GAACmC,CAAC;EAACU,sBAAgB,CAAA5C,QAAA,GAAC4B,CAAC;EAACgB,sBAAA,CAAA3C,IAAY,GAACqC,CAAC;EAACM,sBAAY,CAAA1C,IAAA,GAACmC,CAAC;EAACO,sBAAc,CAAAzC,MAAA,GAACwB,CAAC;EAACiB,+BAAgB,GAACd,CAAC;EAACc,sBAAA,CAAAvC,UAAkB,GAACwB,CAAC;EAACe,sBAAgB,CAAAtC,QAAA,GAAC6B,CAAC;EACjeS,sBAAA,CAAArC,YAAoB,GAAC6B,CAAC;EAACQ,sBAAA,CAAAlC,WAAmB,GAAC,YAAU;IAAC,OAAM,CAAC,CAAC;EAAA,CAAC;EAACkC,uCAAwB,GAAC,YAAU;IAAC,OAAM,CAAC,CAAC;EAAA,CAAC;EAACA,sBAAyB,CAAA/B,iBAAA,GAAC,UAAS6B,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGV,CAAC;EAAA,CAAC;EAACY,sBAAyB,CAAA9B,iBAAA,GAAC,UAAS4B,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGX,CAAC;EAAA,CAAC;EAACa,sBAAiB,CAAA7B,SAAA,GAAC,UAAS2B,CAAC,EAAC;IAAC,OAAM,QAAQ,KAAG,OAAOA,CAAC,IAAE,IAAI,KAAGA,CAAC,IAAEA,CAAC,CAACpD,QAAQ,KAAGoC,CAAC;EAAA,CAAC;EAACkB,sBAAoB,CAAA5B,YAAA,GAAC,UAAS0B,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGR,CAAC;EAAA,CAAC;EAACU,sBAAkB,CAAA3B,UAAA,GAAC,UAASyB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGd,CAAC;EAAA,CAAC;EAACgB,sBAAc,CAAA1B,MAAA,GAAC,UAASwB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGJ,CAAC;EAAA,CAAC;EAACM,sBAAc,CAAAzB,MAAA,GAAC,UAASuB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGL,CAAC;EAAA,CAAC;EACxeO,sBAAA,CAAAxB,QAAgB,GAAC,UAASsB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGf,CAAC;EAAA,CAAC;EAACiB,iCAAkB,GAAC,UAASF,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGZ,CAAC;EAAA,CAAC;EAACc,sBAAoB,CAAAtB,YAAA,GAAC,UAASoB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGb,CAAC;EAAA,CAAC;EAACe,sBAAA,CAAArB,UAAkB,GAAC,UAASmB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGP,CAAC;EAAA,CAAC;EAACS,sBAAA,CAAApB,cAAsB,GAAC,UAASkB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGN,CAAC;EAAA,CAAC;EACzNQ,sBAAA,CAAAxD,kBAAA,GAAC,UAASsD,CAAC,EAAC;IAAC,OAAM,QAAQ,KAAG,OAAOA,CAAC,IAAE,UAAU,KAAG,OAAOA,CAAC,IAAEA,CAAC,KAAGd,CAAC,IAAEc,CAAC,KAAGZ,CAAC,IAAEY,CAAC,KAAGb,CAAC,IAAEa,CAAC,KAAGP,CAAC,IAAEO,CAAC,KAAGN,CAAC,IAAEM,CAAC,KAAGH,CAAC,IAAE,QAAQ,KAAG,OAAOG,CAAC,IAAE,IAAI,KAAGA,CAAC,KAAGA,CAAC,CAACpD,QAAQ,KAAGgD,CAAC,IAAEI,CAAC,CAACpD,QAAQ,KAAG+C,CAAC,IAAEK,CAAC,CAACpD,QAAQ,KAAGyC,CAAC,IAAEW,CAAC,CAACpD,QAAQ,KAAG0C,CAAC,IAAEU,CAAC,CAACpD,QAAQ,KAAG4C,CAAC,IAAEQ,CAAC,CAACpD,QAAQ,KAAGkD,CAAC,IAAE,KAAK,CAAC,KAAGE,CAAC,CAACnD,WAAW,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC;EAAA,CAAC;EAACqD,sBAAc,CAAAnD,MAAA,GAACgD,CAAC;;;ACXlT,IAAI9E,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;EACzCgF,OAAA,CAAAC,OAAc,GAAGC,6BAAA,EAA2C;AAC9D,CAAC,MAAM;EACLF,OAAA,CAAAC,OAAc,GAAGE,0BAAA,EAAwC;AAC3D;;;ACDO,MAAMC,cAAuB,EAAC;AAK9B,MAAMC,eAAsC,CAAA,CAAC;AAM7C,MAAMC,oBAKT,GAAA;EACFC,OAAS,EAAA;IAACC,OAAS,EAAA,GAAA;IAAKC,OAAO;EAAI,CAAA;EACnCC,OAAS,EAAA;IAACF,OAAS,EAAA,CAAA;IAAGC,OAAO;EAAC,CAAA;EAC9BE,IAAM,EAAA;IAACH,OAAS,EAAA,CAAA;IAAGC,OAAO;EAAI,CAAA;EAC9BG,UAAY,EAAA;IAACC,QAAU,EAAA,GAAA;IAAKrE,MAAM;EAAQ;AAC5C,CAAA;ACnBgB,SAAAsE,cAAAA,CAAeC,MAAgBC,KAA+C,EAAA;EAC5F,OAAOD,IAAK,CAAAE,MAAA,CAAkB,CAACC,KAAA,EAAOC,GAAQ,KAAA;IAC5CD,KAAA,CAAMC,GAAG,CAAI,GAAAH,KAAA;IAEN,OAAAE,KAAA;EACT,CAAA,EAAG,CAAE,CAAA,CAAA;AACP;AAKO,SAASE,IAAIC,UAAgC,EAAA;EAClD,IAAIA,UAAe,KAAA,CAAA,EAAU,OAAA,CAAA;EAEtB,OAAA,EAAA,CAAGC,oBAAa,EAAE,EAAA,KAAA,CAAA;AAC3B;AAKgB,SAAAC,WAAAA,CACdC,KACA,EAAAC,MAAA,EACAC,QACa,EAAA;EACb,MAAMC,UAAa,GAAA,CAAAF,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQG,GAAI,CAAAF,QAAA,CAAA,KAAa,EAAC;EAE7C,OAAOC,UAAW,CAAAC,GAAA,CAAI,CAACC,SAAA,EAAWC,UAAe,KAAA;IAC/C,IAAIA,UAAe,KAAA,CAAA,EAAU,OAAAD,SAAA;IAEtB,OAAA;MAAC,CAAC,gCAAiC,CAAAP,MAAA,CAAAE,KAAA,CAAMM,aAAa,CAAC,CAAA,EAAC,KAAK,CAAA,GAAGD;KAAS;EAAA,CACjF,CAAA;AACH;AAKgB,SAAAE,aAAAA,CAA0BC,KAA0BC,UAAuB,EAAA;EACzF,IAAID,GAAQ,KAAA,KAAA,CAAA,EAAW,OAAOC,UAAc,IAAA7B,WAAA;EAE5C,OAAO8B,MAAMC,OAAQ,CAAAH,GAAG,CAAI,GAAAA,GAAA,GAAM,CAACA,GAAG,CAAA;AACxC;AAKO,SAASI,mBACdA,CAAAC,KAAA,EACAC,KACA,EACoB;EAAA,IADpBC,YAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAyBpC,WACL;EACpB,IAAI,CAAC8B,KAAA,CAAMC,OAAQ,CAAAI,YAAY,CAAG,EAAA;IAC1B,MAAA,IAAIG,MAAM,uCAAuC,CAAA;EACzD;EAEI,IAAAH,YAAA,CAAaE,WAAW,CAAG,EAAA;IACtB,OAAA,IAAA;EACT;EAEA,MAAM;IAACjB,KAAA;IAAOmB;EAAK,CAAA,GAAIC,YAAYP,KAAK,CAAA;EAEjC,OAAAd,WAAA,CAAYC,KAAA,EAAOe,YAAA,EAAeM,cACvC/B,cAAe,CAAAwB,KAAA,EAAOlB,IAAIuB,KAAM,CAAAE,UAAU,CAAC,CAAC,CAAA,CAC9C;AACF;AC7DgB,SAAAC,cAAAA,CACdC,SACAT,KACa,EAAA;EACP,MAAA;IAACU,KAAO;IAAAC;EAAW,CAAA,GAAAX,KAAA;EACzB,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM;IAACc,MAAQ;IAAAC,KAAA;IAAOC;EAAO,CAAA,GAAIH,KAAKH,OAAO,CAAA;EAC7C,MAAMO,UAAc,GAAAL,OAAA,IAAWI,OAAQ,CAAAJ,OAAO,KAAMI,OAAQ,CAAAE,OAAA;EAGtD,MAAAC,WAAA,GAAcJ,MAAM,CAAC,CAAA;EAE3B,MAAMK,IAAkB,GAAA;IACtBC,QAAU,EAAA,UAAA;IACVC,UAAY,EAAAR,MAAA;IACZG,UAAA;IACAM,OAAS,EAAA,OAAA;IACTC,MAAQ,EAAA,CAAA;IAER,UAAY,EAAA;MACVC,OAAS,EAAA,IAAA;MACTC,OAAS,EAAA,OAAA;MACTC,MAAQ,EAAA;IACV,CAAA;IAEA,SAAW,EAAA;MACTF,OAAS,EAAA,IAAA;MACTC,OAAS,EAAA,OAAA;MACTC,MAAQ,EAAA;IACV,CAAA;IAEA,oBAAsB,EAAA;MACpBD,OAAS,EAAA;IACX,CAAA;IAEA,iBAAmB,EAAA;MACjBA,OAAS,EAAA;IACX;EAAA,CACF;EAGA,IAAI,CAACf,KAAO,EAAA;IAEN,IAAA,CAACF,eAAemB,MAAQ,EAAA;MAE1BnG,OAAA,CAAQoG,KAAK,uCAAyC,EAAA;QAACnB;QAASC,KAAO;QAAAV,KAAA;QAAOmB;OAAK,CAAA;MAEnFX,cAAA,CAAemB,MAAS,GAAA,IAAA;IAC1B;IAEA,OAAO,CAACR,IAAI,CAAA;EACd;EAEM,MAAAU,IAAA,GAAO5C,WAAY,CAAAC,KAAA,EAAOwB,KAAO,EAACoB,SAAc,IAAAC,QAAA,CAASjB,KAAM,CAAAgB,SAAS,CAAK,IAAAZ,WAAW,CAAC,CAAA;EAExF,OAAA,CAACC,IAAM,EAAA,GAAGU,IAAI,CAAA;AACvB;AAEO,SAASE,SAASC,IAAgC,EAAA;EACjD,MAAA;IAACC;IAAgBC,eAAiB;IAAAH,QAAA,EAAAA;IAAUI,QAAU;IAAAC,aAAA;IAAeC;EAAc,CAAA,GAAAL,IAAA;EACzF,MAAMM,YAAYL,cAAiB,GAAAC,eAAA;EACnC,MAAMK,YAAYF,UAAa,GAAAC,SAAA;EACzB,MAAAE,UAAA,GAAA,CAAcD,YAAYJ,QAAY,IAAA,CAAA;EAC5C,MAAMM,iBAAiBC,IAAK,CAAAC,KAAA,CAAOZ,YAAW,KAAS,GAAA,CAAC,IAAI,CAAI,GAAA,CAAA;EAC1D,MAAAa,gBAAA,GAAA,CAAoBL,YAAYE,cAAkB,IAAA,CAAA;EAEjD,OAAA;IACLV,QAAA,EAAUjD,IAAIiD,SAAQ,CAAA;IACtBM,UAAY,EAAA,OAAA,CAAQrD,MAAU,CAAAqD,UAAA,EAAA,KAAA,CAAA,CAAMrD,OAAA+C,SAAQ,EAAA,GAAA,CAAA;IAC5CK,aAAA,EAAetD,IAAIsD,aAAa,CAAA;IAChCS,SAAW,EAAA,aAAA,CAAc7D,MAAI,CAAAF,GAAA,CAAAoD,eAAe,CAAC,EAAA,GAAA,CAAA;IAE7C,UAAY,EAAA;MACVY,SAAW,EAAA,OAAA,CAAQ9D,MAAI,CAAAF,GAAA,CAAA,CAAA,GAAIwD,SAAS,CAAC,EAAA,SAAA;IACvC,CAAA;IAEA,SAAW,EAAA;MACTS,YAAc,EAAA;IAChB,CAAA;IAEA,+BAAiC,EAAA;MAC/BhB,QAAA,EAAU,QAAQ/C,MAAc,CAAAyD,cAAA,EAAA,eAAA,CAAA;MAChClB,MAAA,EAAQzC,IAAI8D,gBAAgB;IAC9B,CAAA;IAEA,sBAAwB,EAAA;MACtBb,QAAA,EAAU,QAAQ/C,MAAQ,CAAAmD,QAAA,EAAA,eAAA,CAAA;MAC1BZ,MAAA,EAAQzC,IAAI0D,UAAU;IACxB;EAAA,CACF;AACF;AC3FO,SAASQ,wBAAwBhD,KAA2D,EAAA;EAC1F,OAAAQ,cAAA,CAAe,QAAQR,KAAK,CAAA;AACrC;ACFO,SAASiD,sBAAsBjD,KAA2D,EAAA;EACxF,OAAAQ,cAAA,CAAe,WAAWR,KAAK,CAAA;AACxC;ACFO,SAASkD,oBAAoBlD,KAA2D,EAAA;EACtF,OAAAQ,cAAA,CAAe,SAASR,KAAK,CAAA;AACtC;ACFO,SAASmD,yBACdnD,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoD,MAAA,EAASC,SAAc,IAAA;IACrD,OAAO;MAACA;IAAS,CAAA;EAAA,CAClB,CAAA;AACH;ACRO,SAASC,mBAAmBtD,KAA2D,EAAA;EACrF,OAAAQ,cAAA,CAAe,QAAQR,KAAK,CAAA;AACrC;ACDgB,SAAAuD,YAAAA,CACd7D,KACAC,UACK,EAAA;EAEC,MAAA6D,aAAA,GAAgBC,OAAQ,CAAA,MAAMC,IAAK,CAAAC,SAAA,CAAUjE,GAAO,IAAA,IAAA,GAAAA,GAAA,GAAAC,UAAU,CAAG,EAAA,CAACA,UAAY,EAAAD,GAAG,CAAC,CAAA;EAEjF,OAAA+D,OAAA,CACL,MAAMhE,aAAc,CAAAC,GAAA,EAAKC,UAAU,CAAA;EAAA;EAAA;EAInC,CAAC6D,aAAa,CAAA,CAChB;AACF;AChBA,SAASI,YAAAA,CACPC,SACAC,WACe,EAAA;EACT,MAAAC,GAAA,GAAM,CAACF,OAAO,CAAA;EAEpB,KAAA,MAAWG,MAAMF,WAAa,EAAA;IACxB,IAAAlE,KAAA,CAAMC,OAAQ,CAAAmE,EAAE,CAAG,EAAA;MACjBD,GAAA,CAAAE,IAAA,CAAK,GAAGD,EAAE,CAAA;IAAA,CACT,MAAA;MACLD,GAAA,CAAIE,KAAKD,EAAE,CAAA;IACb;EACF;EAEO,OAAAD,GAAA,CAAIG,OAAOC,OAAO,CAAA;AAC3B;AAKO,SAASC,eACdA,CAAAC,QAAA,EAGkC;EAAA,IAFlCP,WAAyD,GAAA5D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAApC,WAAA;EAAA,IACzDwG,eACkC,GAAApE,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAA7F,SAAA;EAClC,MAAM,CAACwJ,OAAA,EAASU,UAAU,CAAA,GAAIC,SAA6B,IAAI,CAAA;EACzD,MAAA,CAACC,UAAUC,WAAW,CAAA,GAAIF,SAAS,MAAMZ,YAAA,CAAaC,OAAS,EAAAC,WAAW,CAAC,CAAA;EAC3E,MAAAa,WAAA,GAAcC,OAAOH,QAAQ,CAAA;EAEnCI,SAAA,CAAU,MAAM;IACd,MAAMC,eAAeH,WAAY,CAAAI,OAAA;IAC3B,MAAAC,YAAA,GAAepB,YAAa,CAAAC,OAAA,EAASC,WAAW,CAAA;IAElD,IAAAgB,YAAA,CAAa3E,MAAW,KAAA6E,YAAA,CAAa7E,MAAQ,EAAA;MAC/CuE,WAAA,CAAYM,YAAY,CAAA;MACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;MAEtB;IACF;IAEA,KAAA,MAAWhB,MAAMc,YAAc,EAAA;MAC7B,IAAI,CAACE,YAAA,CAAaC,QAAS,CAAAjB,EAAE,CAAG,EAAA;QAC9BU,WAAA,CAAYM,YAAY,CAAA;QACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;QAEtB;MACF;IACF;IAEA,KAAA,MAAWhB,MAAMgB,YAAc,EAAA;MAC7B,IAAI,CAACF,YAAA,CAAaG,QAAS,CAAAjB,EAAE,CAAG,EAAA;QAC9BU,WAAA,CAAYM,YAAY,CAAA;QACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;QAEtB;MACF;IACF;EAAA,CACC,EAAA,CAACnB,OAAS,EAAAC,WAAW,CAAC,CAAA;EAEzBe,SAAA,CAAU,MAAM;IACd,IAAI,CAACR,QAAA,EAAiB,OAAA,KAAA,CAAA;IAEhB,MAAAa,qBAAA,GAAyBC,GAAoB,IAAA;MACjD,MAAMC,SAASD,GAAI,CAAAC,MAAA;MAEf,IAAA,EAAEA,kBAAkBC,IAAO,CAAA,EAAA;QAC7B;MACF;MAEA,IAAIf,eAAmB,IAAA,CAACA,eAAgB,CAAAgB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxD;MACF;MAEA,KAAA,MAAWpB,MAAMS,QAAU,EAAA;QACzB,IAAIW,MAAW,KAAApB,EAAA,IAAMA,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;UACxC;QACF;MACF;MAEAf,QAAA,CAASc,GAAG,CAAA;IAAA,CACd;IAEOI,MAAA,CAAAC,gBAAA,CAAiB,aAAaN,qBAAqB,CAAA;IAE1D,OAAO,MAAM;MACJK,MAAA,CAAAE,mBAAA,CAAoB,aAAaP,qBAAqB,CAAA;IAAA,CAC/D;EACC,CAAA,EAAA,CAACZ,eAAiB,EAAAD,QAAA,EAAUI,QAAQ,CAAC,CAAA;EAEjC,OAAAF,UAAA;AACT;AClGA,IAAImB,eAAe,GAAG,EAAE;ACCxB,IAAIC,qBAAqB,GAAG,SAAAA,CAAA,EAAY;EACpC,OAAOD,eAAe,CAACE,IAAI,CAAC,UAAUC,EAAE,EAAE;IAAE,OAAOA,EAAE,CAACC,aAAa,CAAC3F,MAAM,GAAG,CAAC;EAAC,CAAE,CAAC;AACtF,CAAC;ACFD,IAAI4F,sBAAsB,GAAG,SAAAA,CAAA,EAAY;EACrC,OAAOL,eAAe,CAACE,IAAI,CAAC,UAAUC,EAAE,EAAE;IAAE,OAAOA,EAAE,CAACG,cAAc,CAAC7F,MAAM,GAAG,CAAC;EAAC,CAAE,CAAC;AACvF,CAAC;ACHD,IAAI8F,GAAG,GAAG,+DAA+D;AACzE,IAAIC,sBAAsB,GAAG,SAAAA,CAAA,EAAY;EACrC,IAAIC,KAAK;EACT,IAAI,OAAOC,UAAU,KAAK,UAAU,EAAE;IAClCD,KAAK,GAAG,IAAIC,UAAU,CAAC,OAAO,EAAE;MAC5BC,OAAO,EAAEJ;IACrB,CAAS,CAAC;EACL,CAAA,MACI;IACDE,KAAK,GAAGG,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;IACrCJ,KAAK,CAACK,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;IACtCL,KAAK,CAACE,OAAO,GAAGJ,GAAG;EACtB;EACDV,MAAM,CAACkB,aAAa,CAACN,KAAK,CAAC;AAC/B,CAAC;ACdD,IAAIO,wBAAwB;AAC5B,CAAC,UAAUA,wBAAwB,EAAE;EACjCA,wBAAwB,CAAC,YAAY,CAAC,GAAG,YAAY;EACrDA,wBAAwB,CAAC,aAAa,CAAC,GAAG,aAAa;EACvDA,wBAAwB,CAAC,0BAA0B,CAAC,GAAG,0BAA0B;AACrF,CAAC,EAAEA,wBAAwB,KAAKA,wBAAwB,GAAG,CAAA,CAAE,CAAC,CAAC;ACLxD,IAAIC,MAAM,GAAG,SAAAA,CAAUC,GAAG,EAAE;EAAE,OAAOC,MAAM,CAACF,MAAM,CAACC,GAAG,CAAC;AAAG,CAAA;ACCjE,IAAIE,kBAAkB,GAAI,YAAY;EAClC,SAASA,kBAAkBA,CAACC,UAAU,EAAEC,SAAS,EAAE;IAC/C,IAAI,CAACD,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1BL,MAAM,CAAC,IAAI,CAAC;EACf;EACD,OAAOG,kBAAkB;AAC7B,CAAC,EAAG;ACPJ,IAAIG,eAAe,GAAI,YAAY;EAC/B,SAASA,eAAeA,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAE1F,MAAM,EAAE;IAC1C,IAAI,CAACwF,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC1F,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC2F,GAAG,GAAG,IAAI,CAACF,CAAC;IACjB,IAAI,CAACG,IAAI,GAAG,IAAI,CAACJ,CAAC;IAClB,IAAI,CAACK,MAAM,GAAG,IAAI,CAACF,GAAG,GAAG,IAAI,CAAC3F,MAAM;IACpC,IAAI,CAAC8F,KAAK,GAAG,IAAI,CAACF,IAAI,GAAG,IAAI,CAACF,KAAK;IACnC,OAAOT,MAAM,CAAC,IAAI,CAAC;EACtB;EACDM,eAAe,CAACQ,SAAS,CAACC,MAAM,GAAG,YAAY;IAC3C,IAAIC,EAAE,GAAG,IAAI;MAAET,CAAC,GAAGS,EAAE,CAACT,CAAC;MAAEC,CAAC,GAAGQ,EAAE,CAACR,CAAC;MAAEE,GAAG,GAAGM,EAAE,CAACN,GAAG;MAAEG,KAAK,GAAGG,EAAE,CAACH,KAAK;MAAED,MAAM,GAAGI,EAAE,CAACJ,MAAM;MAAED,IAAI,GAAGK,EAAE,CAACL,IAAI;MAAEF,KAAK,GAAGO,EAAE,CAACP,KAAK;MAAE1F,MAAM,GAAGiG,EAAE,CAACjG,MAAM;IAC3I,OAAO;MAAEwF,CAAC,EAAEA,CAAC;MAAEC,CAAC,EAAEA,CAAC;MAAEE,GAAG,EAAEA,GAAG;MAAEG,KAAK,EAAEA,KAAK;MAAED,MAAM,EAAEA,MAAM;MAAED,IAAI,EAAEA,IAAI;MAAEF,KAAK,EAAEA,KAAK;MAAE1F,MAAM,EAAEA;KAAQ;EAC/G,CAAK;EACDuF,eAAe,CAACW,QAAQ,GAAG,UAAUC,SAAS,EAAE;IAC5C,OAAO,IAAIZ,eAAe,CAACY,SAAS,CAACX,CAAC,EAAEW,SAAS,CAACV,CAAC,EAAEU,SAAS,CAACT,KAAK,EAAES,SAAS,CAACnG,MAAM,CAAC;EAC/F,CAAK;EACD,OAAOuF,eAAe;AAC1B,CAAC,EAAG;ACrBJ,IAAIa,KAAK,GAAG,SAAAA,CAAU1C,MAAM,EAAE;EAAE,OAAOA,MAAM,YAAY2C,UAAU,IAAI,SAAS,IAAI3C,MAAM;CAAG;AAC7F,IAAI4C,QAAQ,GAAG,SAAAA,CAAU5C,MAAM,EAAE;EAC7B,IAAI0C,KAAK,CAAC1C,MAAM,CAAC,EAAE;IACf,IAAIuC,EAAE,GAAGvC,MAAM,CAAC6C,OAAO,EAAE;MAAEb,KAAK,GAAGO,EAAE,CAACP,KAAK;MAAE1F,MAAM,GAAGiG,EAAE,CAACjG,MAAM;IAC/D,OAAO,CAAC0F,KAAK,IAAI,CAAC1F,MAAM;EAC3B;EACD,IAAIwG,EAAE,GAAG9C,MAAM;IAAE+C,WAAW,GAAGD,EAAE,CAACC,WAAW;IAAEC,YAAY,GAAGF,EAAE,CAACE,YAAY;EAC7E,OAAO,EAAED,WAAW,IAAIC,YAAY,IAAIhD,MAAM,CAACiD,cAAc,CAAA,CAAE,CAAClI,MAAM,CAAC;AAC3E,CAAC;AACD,IAAIvE,SAAS,GAAG,SAAAA,CAAUgL,GAAG,EAAE;EAC3B,IAAIe,EAAE;EACN,IAAIf,GAAG,YAAYjM,OAAO,EAAE;IACxB,OAAO,IAAI;EACd;EACD,IAAI2N,KAAK,GAAG,CAACX,EAAE,GAAGf,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,GAAG,CAAC2B,aAAa,MAAM,IAAI,IAAIZ,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACa,WAAW;EAClI,OAAO,CAAC,EAAEF,KAAK,IAAI1B,GAAG,YAAY0B,KAAK,CAAC3N,OAAO,CAAC;AACpD,CAAC;AACD,IAAI8N,iBAAiB,GAAG,SAAAA,CAAUrD,MAAM,EAAE;EACtC,QAAQA,MAAM,CAACsD,OAAO;IAClB,KAAK,OAAO;MACR,IAAItD,MAAM,CAAClL,IAAI,KAAK,OAAO,EAAE;QACzB;MACH;IACL,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,KAAK;MACN,OAAO,IAAI;EAClB;EACD,OAAO,KAAK;AAChB,CAAC;ACjCM,IAAIyO,QAAM,GAAG,OAAOpD,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAG,CAAE,CAAA;ACM/D,IAAIqD,KAAK,GAAG,IAAIC,OAAO,EAAE;AACzB,IAAIC,YAAY,GAAG,aAAa;AAChC,IAAIC,cAAc,GAAG,cAAc;AACnC,IAAIC,EAAE,GAAI,eAAe,CAAEC,IAAI,CAACN,QAAM,CAACO,SAAS,IAAIP,QAAM,CAACO,SAAS,CAACC,SAAS,CAAC;AAC/E,IAAIC,cAAc,GAAG,SAAAA,CAAUC,KAAK,EAAE;EAAE,OAAOC,UAAU,CAACD,KAAK,IAAI,GAAG,CAAC;CAAG;AAC1E,IAAIrH,MAAI,GAAG,SAAAuH,CAAUxC,UAAU,EAAEC,SAAS,EAAEwC,WAAW,EAAE;EACrD,IAAIzC,UAAU,KAAK,KAAK,CAAC,EAAE;IAAEA,UAAU,GAAG,CAAC;EAAG;EAC9C,IAAIC,SAAS,KAAK,KAAK,CAAC,EAAE;IAAEA,SAAS,GAAG,CAAC;EAAG;EAC5C,IAAIwC,WAAW,KAAK,KAAK,CAAC,EAAE;IAAEA,WAAW,GAAG,KAAK;EAAG;EACpD,OAAO,IAAI1C,kBAAkB,CAAC,CAAC0C,WAAW,GAAGxC,SAAS,GAAGD,UAAU,KAAK,CAAC,EAAE,CAACyC,WAAW,GAAGzC,UAAU,GAAGC,SAAS,KAAK,CAAC,CAAC;AAC3H,CAAC;AACD,IAAIyC,SAAS,GAAG9C,MAAM,CAAC;EACnB+C,yBAAyB,EAAE1H,MAAI,CAAE,CAAA;EACjC2H,aAAa,EAAE3H,MAAI,CAAE,CAAA;EACrB4H,cAAc,EAAE5H,MAAI,CAAE,CAAA;EACtB6H,WAAW,EAAE,IAAI5C,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC,CAAC;AACF,IAAI6C,iBAAiB,GAAG,SAAAA,CAAU1E,MAAM,EAAE2E,kBAAkB,EAAE;EAC1D,IAAIA,kBAAkB,KAAK,KAAK,CAAC,EAAE;IAAEA,kBAAkB,GAAG,KAAK;EAAG;EAClE,IAAInB,KAAK,CAACoB,GAAG,CAAC5E,MAAM,CAAC,IAAI,CAAC2E,kBAAkB,EAAE;IAC1C,OAAOnB,KAAK,CAACqB,GAAG,CAAC7E,MAAM,CAAC;EAC3B;EACD,IAAI4C,QAAQ,CAAC5C,MAAM,CAAC,EAAE;IAClBwD,KAAK,CAACsB,GAAG,CAAC9E,MAAM,EAAEqE,SAAS,CAAC;IAC5B,OAAOA,SAAS;EACnB;EACD,IAAIU,EAAE,GAAGC,gBAAgB,CAAChF,MAAM,CAAC;EACjC,IAAIiF,GAAG,GAAGvC,KAAK,CAAC1C,MAAM,CAAC,IAAIA,MAAM,CAACkF,eAAe,IAAIlF,MAAM,CAAC6C,OAAO,EAAE;EACrE,IAAIsC,aAAa,GAAG,CAACvB,EAAE,IAAImB,EAAE,CAACK,SAAS,KAAK,YAAY;EACxD,IAAIhB,WAAW,GAAGT,cAAc,CAACE,IAAI,CAACkB,EAAE,CAACM,WAAW,IAAI,EAAE,CAAC;EAC3D,IAAIC,mBAAmB,GAAG,CAACL,GAAG,IAAIvB,YAAY,CAACG,IAAI,CAACkB,EAAE,CAACQ,SAAS,IAAI,EAAE,CAAC;EACvE,IAAIC,qBAAqB,GAAG,CAACP,GAAG,IAAIvB,YAAY,CAACG,IAAI,CAACkB,EAAE,CAACU,SAAS,IAAI,EAAE,CAAC;EACzE,IAAIC,UAAU,GAAGT,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACW,UAAU,CAAC;EACxD,IAAIC,YAAY,GAAGV,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACY,YAAY,CAAC;EAC5D,IAAIC,aAAa,GAAGX,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACa,aAAa,CAAC;EAC9D,IAAIC,WAAW,GAAGZ,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACc,WAAW,CAAC;EAC1D,IAAIC,SAAS,GAAGb,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACgB,cAAc,CAAC;EAC3D,IAAIC,WAAW,GAAGf,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACkB,gBAAgB,CAAC;EAC/D,IAAIC,YAAY,GAAGjB,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACoB,iBAAiB,CAAC;EACjE,IAAIC,UAAU,GAAGnB,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACsB,eAAe,CAAC;EAC7D,IAAIC,iBAAiB,GAAGT,WAAW,GAAGF,YAAY;EAClD,IAAIY,eAAe,GAAGb,UAAU,GAAGE,aAAa;EAChD,IAAIY,oBAAoB,GAAGJ,UAAU,GAAGJ,WAAW;EACnD,IAAIS,kBAAkB,GAAGX,SAAS,GAAGI,YAAY;EACjD,IAAIQ,4BAA4B,GAAG,CAAClB,qBAAqB,GAAG,CAAC,GAAGxF,MAAM,CAACgD,YAAY,GAAGyD,kBAAkB,GAAGzG,MAAM,CAAC2G,YAAY;EAC9H,IAAIC,0BAA0B,GAAG,CAACtB,mBAAmB,GAAG,CAAC,GAAGtF,MAAM,CAAC+C,WAAW,GAAGyD,oBAAoB,GAAGxG,MAAM,CAAC6G,WAAW;EAC1H,IAAIC,cAAc,GAAG3B,aAAa,GAAGmB,iBAAiB,GAAGE,oBAAoB,GAAG,CAAC;EACjF,IAAIO,eAAe,GAAG5B,aAAa,GAAGoB,eAAe,GAAGE,kBAAkB,GAAG,CAAC;EAC9E,IAAIO,YAAY,GAAG/B,GAAG,GAAGA,GAAG,CAACjD,KAAK,GAAGgC,cAAc,CAACe,EAAE,CAAC/C,KAAK,CAAC,GAAG8E,cAAc,GAAGF,0BAA0B;EAC3G,IAAIK,aAAa,GAAGhC,GAAG,GAAGA,GAAG,CAAC3I,MAAM,GAAG0H,cAAc,CAACe,EAAE,CAACzI,MAAM,CAAC,GAAGyK,eAAe,GAAGL,4BAA4B;EACjH,IAAIQ,cAAc,GAAGF,YAAY,GAAGV,iBAAiB,GAAGM,0BAA0B,GAAGJ,oBAAoB;EACzG,IAAIW,eAAe,GAAGF,aAAa,GAAGV,eAAe,GAAGG,4BAA4B,GAAGD,kBAAkB;EACzG,IAAIW,KAAK,GAAG7F,MAAM,CAAC;IACf+C,yBAAyB,EAAE1H,MAAI,CAACU,IAAI,CAAC+J,KAAK,CAACL,YAAY,GAAGM,gBAAgB,CAAC,EAAEhK,IAAI,CAAC+J,KAAK,CAACJ,aAAa,GAAGK,gBAAgB,CAAC,EAAElD,WAAW,CAAC;IACvIG,aAAa,EAAE3H,MAAI,CAACsK,cAAc,EAAEC,eAAe,EAAE/C,WAAW,CAAC;IACjEI,cAAc,EAAE5H,MAAI,CAACoK,YAAY,EAAEC,aAAa,EAAE7C,WAAW,CAAC;IAC9DK,WAAW,EAAE,IAAI5C,eAAe,CAACgE,WAAW,EAAEH,UAAU,EAAEsB,YAAY,EAAEC,aAAa;EAC7F,CAAK,CAAC;EACFzD,KAAK,CAACsB,GAAG,CAAC9E,MAAM,EAAEoH,KAAK,CAAC;EACxB,OAAOA,KAAK;AAChB,CAAC;AACD,IAAIG,gBAAgB,GAAG,SAAAA,CAAUvH,MAAM,EAAEwH,WAAW,EAAE7C,kBAAkB,EAAE;EACtE,IAAIpC,EAAE,GAAGmC,iBAAiB,CAAC1E,MAAM,EAAE2E,kBAAkB,CAAC;IAAEJ,aAAa,GAAGhC,EAAE,CAACgC,aAAa;IAAEC,cAAc,GAAGjC,EAAE,CAACiC,cAAc;IAAEF,yBAAyB,GAAG/B,EAAE,CAAC+B,yBAAyB;EACtL,QAAQkD,WAAW;IACf,KAAKlG,wBAAwB,CAACmG,wBAAwB;MAClD,OAAOnD,yBAAyB;IACpC,KAAKhD,wBAAwB,CAACoG,UAAU;MACpC,OAAOnD,aAAa;IACxB;MACI,OAAOC,cAAc;EAC5B;AACL,CAAC;AC3ED,IAAImD,mBAAmB,GAAI,YAAY;EACnC,SAASA,mBAAmBA,CAAC3H,MAAM,EAAE;IACjC,IAAIoH,KAAK,GAAG1C,iBAAiB,CAAC1E,MAAM,CAAC;IACrC,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACyE,WAAW,GAAG2C,KAAK,CAAC3C,WAAW;IACpC,IAAI,CAACF,aAAa,GAAGhD,MAAM,CAAC,CAAC6F,KAAK,CAAC7C,aAAa,CAAC,CAAC;IAClD,IAAI,CAACC,cAAc,GAAGjD,MAAM,CAAC,CAAC6F,KAAK,CAAC5C,cAAc,CAAC,CAAC;IACpD,IAAI,CAACF,yBAAyB,GAAG/C,MAAM,CAAC,CAAC6F,KAAK,CAAC9C,yBAAyB,CAAC,CAAC;EAC7E;EACD,OAAOqD,mBAAmB;AAC9B,CAAC,EAAG;ACXJ,IAAIC,qBAAqB,GAAG,SAAAA,CAAUC,IAAI,EAAE;EACxC,IAAIjF,QAAQ,CAACiF,IAAI,CAAC,EAAE;IAChB,OAAOC,QAAQ;EAClB;EACD,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,MAAM,GAAGH,IAAI,CAACI,UAAU;EAC5B,OAAOD,MAAM,EAAE;IACXD,KAAK,IAAI,CAAC;IACVC,MAAM,GAAGA,MAAM,CAACC,UAAU;EAC7B;EACD,OAAOF,KAAK;AAChB,CAAC;ACRD,IAAIG,2BAA2B,GAAG,SAAAA,CAAA,EAAY;EAC1C,IAAIC,eAAe,GAAGL,QAAQ;EAC9B,IAAIM,SAAS,GAAG,EAAE;EAClB9H,eAAe,CAAC+H,OAAO,CAAC,SAASC,eAAeA,CAAC7H,EAAE,EAAE;IACjD,IAAIA,EAAE,CAACC,aAAa,CAAC3F,MAAM,KAAK,CAAC,EAAE;MAC/B;IACH;IACD,IAAIwN,OAAO,GAAG,EAAE;IAChB9H,EAAE,CAACC,aAAa,CAAC2H,OAAO,CAAC,SAASG,aAAaA,CAACC,EAAE,EAAE;MAChD,IAAIC,KAAK,GAAG,IAAIf,mBAAmB,CAACc,EAAE,CAACzI,MAAM,CAAC;MAC9C,IAAI2I,WAAW,GAAGf,qBAAqB,CAACa,EAAE,CAACzI,MAAM,CAAC;MAClDuI,OAAO,CAAC1J,IAAI,CAAC6J,KAAK,CAAC;MACnBD,EAAE,CAACG,gBAAgB,GAAGrB,gBAAgB,CAACkB,EAAE,CAACzI,MAAM,EAAEyI,EAAE,CAACjB,WAAW,CAAC;MACjE,IAAImB,WAAW,GAAGR,eAAe,EAAE;QAC/BA,eAAe,GAAGQ,WAAW;MAChC;IACb,CAAS,CAAC;IACFP,SAAS,CAACvJ,IAAI,CAAC,SAASgK,sBAAsBA,CAAA,EAAG;MAC7CpI,EAAE,CAACzG,QAAQ,CAAC8O,IAAI,CAACrI,EAAE,CAACsI,QAAQ,EAAER,OAAO,EAAE9H,EAAE,CAACsI,QAAQ,CAAC;IAC/D,CAAS,CAAC;IACFtI,EAAE,CAACC,aAAa,CAACsI,MAAM,CAAC,CAAC,EAAEvI,EAAE,CAACC,aAAa,CAAC3F,MAAM,CAAC;EAC3D,CAAK,CAAC;EACF,KAAK,IAAIkO,EAAE,GAAG,CAAC,EAAEC,WAAW,GAAGd,SAAS,EAAEa,EAAE,GAAGC,WAAW,CAACnO,MAAM,EAAEkO,EAAE,EAAE,EAAE;IACrE,IAAIjP,QAAQ,GAAGkP,WAAW,CAACD,EAAE,CAAC;IAC9BjP,QAAQ,EAAE;EACb;EACD,OAAOmO,eAAe;AAC1B,CAAC;AC7BD,IAAIgB,+BAA+B,GAAG,SAAAA,CAAUpB,KAAK,EAAE;EACnDzH,eAAe,CAAC+H,OAAO,CAAC,SAASC,eAAeA,CAAC7H,EAAE,EAAE;IACjDA,EAAE,CAACC,aAAa,CAACsI,MAAM,CAAC,CAAC,EAAEvI,EAAE,CAACC,aAAa,CAAC3F,MAAM,CAAC;IACnD0F,EAAE,CAACG,cAAc,CAACoI,MAAM,CAAC,CAAC,EAAEvI,EAAE,CAACG,cAAc,CAAC7F,MAAM,CAAC;IACrD0F,EAAE,CAAC2I,kBAAkB,CAACf,OAAO,CAAC,SAASG,aAAaA,CAACC,EAAE,EAAE;MACrD,IAAIA,EAAE,CAACY,QAAQ,EAAE,EAAE;QACf,IAAIzB,qBAAqB,CAACa,EAAE,CAACzI,MAAM,CAAC,GAAG+H,KAAK,EAAE;UAC1CtH,EAAE,CAACC,aAAa,CAAC7B,IAAI,CAAC4J,EAAE,CAAC;QAC5B,CAAA,MACI;UACDhI,EAAE,CAACG,cAAc,CAAC/B,IAAI,CAAC4J,EAAE,CAAC;QAC7B;MACJ;IACb,CAAS,CAAC;EACV,CAAK,CAAC;AACN,CAAC;ACZD,IAAIrV,SAAO,GAAG,SAAAkW,CAAA,EAAY;EACtB,IAAIvB,KAAK,GAAG,CAAC;EACboB,+BAA+B,CAACpB,KAAK,CAAC;EACtC,OAAOxH,qBAAqB,CAAA,CAAE,EAAE;IAC5BwH,KAAK,GAAGG,2BAA2B,CAAA,CAAE;IACrCiB,+BAA+B,CAACpB,KAAK,CAAC;EACzC;EACD,IAAIpH,sBAAsB,CAAA,CAAE,EAAE;IAC1BG,sBAAsB,EAAE;EAC3B;EACD,OAAOiH,KAAK,GAAG,CAAC;AACpB,CAAC;AChBD,IAAIwB,OAAO;AACX,IAAInB,SAAS,GAAG,EAAE;AAClB,IAAIoB,MAAM,GAAG,SAAAA,CAAA,EAAY;EAAE,OAAOpB,SAAS,CAACY,MAAM,CAAC,CAAC,CAAC,CAACX,OAAO,CAAC,UAAUoB,EAAE,EAAE;IAAE,OAAOA,EAAE,CAAE,CAAA;EAAG,CAAA,CAAC;AAAC,CAAE;AAChG,IAAIC,cAAc,GAAG,SAAAA,CAAU1P,QAAQ,EAAE;EACrC,IAAI,CAACuP,OAAO,EAAE;IACV,IAAII,QAAQ,GAAG,CAAC;IAChB,IAAIC,IAAI,GAAG1I,QAAQ,CAAC2I,cAAc,CAAC,EAAE,CAAC;IACtC,IAAIC,MAAM,GAAG;MAAEC,aAAa,EAAE;KAAM;IACpC,IAAIC,gBAAgB,CAAC,YAAY;MAAE,OAAOR,MAAM,CAAE,CAAA;IAAG,CAAA,CAAC,CAACS,OAAO,CAACL,IAAI,EAAEE,MAAM,CAAC;IAC5EP,OAAO,GAAG,SAAAA,CAAA,EAAY;MAAEK,IAAI,CAACM,WAAW,GAAG,EAAE,CAACtQ,MAAM,CAAC+P,QAAQ,GAAGA,QAAQ,EAAE,GAAGA,QAAQ,EAAE,CAAC;IAAC,CAAE;EAC9F;EACDvB,SAAS,CAACvJ,IAAI,CAAC7E,QAAQ,CAAC;EACxBuP,OAAO,EAAE;AACb,CAAC;ACZD,IAAIY,mBAAmB,GAAG,SAAAA,CAAUV,EAAE,EAAE;EACpCC,cAAc,CAAC,SAASU,cAAcA,CAAA,EAAG;IACrCC,qBAAqB,CAACZ,EAAE,CAAC;EACjC,CAAK,CAAC;AACN,CAAC;ACFD,IAAIa,QAAQ,GAAG,CAAC;AAChB,IAAIC,UAAU,GAAG,SAAAA,CAAA,EAAY;EAAE,OAAO,CAAC,CAACD,QAAQ;AAAC,CAAE;AACnD,IAAIE,YAAY,GAAG,GAAG;AACtB,IAAIC,cAAc,GAAG;EAAEC,UAAU,EAAE,IAAI;EAAEX,aAAa,EAAE,IAAI;EAAEY,SAAS,EAAE,IAAI;EAAEC,OAAO,EAAE;CAAM;AAC9F,IAAIC,MAAM,GAAG,CACT,QAAQ,EACR,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,CACV;AACD,IAAIC,IAAI,GAAG,SAAAA,CAAUC,OAAO,EAAE;EAC1B,IAAIA,OAAO,KAAK,KAAK,CAAC,EAAE;IAAEA,OAAO,GAAG,CAAC;EAAG;EACxC,OAAOC,IAAI,CAACC,GAAG,CAAE,CAAA,GAAGF,OAAO;AAC/B,CAAC;AACD,IAAIG,SAAS,GAAG,KAAK;AACrB,IAAIC,SAAS,GAAI,YAAY;EACzB,SAASA,SAASA,CAAA,EAAG;IACjB,IAAIC,KAAK,GAAG,IAAI;IAChB,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACpM,QAAQ,GAAG,YAAY;MAAE,OAAOmM,KAAK,CAACE,QAAQ,CAAE,CAAA;KAAG;EAC3D;EACDH,SAAS,CAAC9I,SAAS,CAACkJ,GAAG,GAAG,UAAUR,OAAO,EAAE;IACzC,IAAIK,KAAK,GAAG,IAAI;IAChB,IAAIL,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAGP,YAAY;IAAG;IACnD,IAAIU,SAAS,EAAE;MACX;IACH;IACDA,SAAS,GAAG,IAAI;IAChB,IAAIM,KAAK,GAAGV,IAAI,CAACC,OAAO,CAAC;IACzBZ,mBAAmB,CAAC,YAAY;MAC5B,IAAIsB,mBAAmB,GAAG,KAAK;MAC/B,IAAI;QACAA,mBAAmB,GAAGrY,SAAO,CAAA,CAAE;MAClC,CAAA,SACO;QACJ8X,SAAS,GAAG,KAAK;QACjBH,OAAO,GAAGS,KAAK,GAAGV,IAAI,EAAE;QACxB,IAAI,CAACP,UAAU,CAAA,CAAE,EAAE;UACf;QACH;QACD,IAAIkB,mBAAmB,EAAE;UACrBL,KAAK,CAACG,GAAG,CAAC,IAAI,CAAC;QAClB,CAAA,MACI,IAAIR,OAAO,GAAG,CAAC,EAAE;UAClBK,KAAK,CAACG,GAAG,CAACR,OAAO,CAAC;QACrB,CAAA,MACI;UACDK,KAAK,CAACM,KAAK,CAAA,CAAE;QAChB;MACJ;IACb,CAAS,CAAC;EACV,CAAK;EACDP,SAAS,CAAC9I,SAAS,CAACiJ,QAAQ,GAAG,YAAY;IACvC,IAAI,CAACK,IAAI,CAAA,CAAE;IACX,IAAI,CAACJ,GAAG,CAAA,CAAE;EAClB,CAAK;EACDJ,SAAS,CAAC9I,SAAS,CAAC4H,OAAO,GAAG,YAAY;IACtC,IAAImB,KAAK,GAAG,IAAI;IAChB,IAAI3B,EAAE,GAAG,SAAAA,CAAA,EAAY;MAAE,OAAO2B,KAAK,CAACrC,QAAQ,IAAIqC,KAAK,CAACrC,QAAQ,CAACkB,OAAO,CAAC/I,QAAQ,CAAC0K,IAAI,EAAEnB,cAAc,CAAC;IAAC,CAAE;IACxGvJ,QAAQ,CAAC0K,IAAI,GAAGnC,EAAE,CAAE,CAAA,GAAGlG,QAAM,CAACnD,gBAAgB,CAAC,kBAAkB,EAAEqJ,EAAE,CAAC;EAC9E,CAAK;EACD0B,SAAS,CAAC9I,SAAS,CAACqJ,KAAK,GAAG,YAAY;IACpC,IAAIN,KAAK,GAAG,IAAI;IAChB,IAAI,IAAI,CAACC,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,GAAG,KAAK;MACpB,IAAI,CAACtC,QAAQ,GAAG,IAAIiB,gBAAgB,CAAC,IAAI,CAAC/K,QAAQ,CAAC;MACnD,IAAI,CAACgL,OAAO,CAAA,CAAE;MACdY,MAAM,CAACxC,OAAO,CAAC,UAAUwD,IAAI,EAAE;QAAE,OAAOtI,QAAM,CAACnD,gBAAgB,CAACyL,IAAI,EAAET,KAAK,CAACnM,QAAQ,EAAE,IAAI,CAAC;MAAG,CAAA,CAAC;IAClG;EACT,CAAK;EACDkM,SAAS,CAAC9I,SAAS,CAACsJ,IAAI,GAAG,YAAY;IACnC,IAAIP,KAAK,GAAG,IAAI;IAChB,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;MACf,IAAI,CAACtC,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAAC+C,UAAU,CAAA,CAAE;MAC3CjB,MAAM,CAACxC,OAAO,CAAC,UAAUwD,IAAI,EAAE;QAAE,OAAOtI,QAAM,CAAClD,mBAAmB,CAACwL,IAAI,EAAET,KAAK,CAACnM,QAAQ,EAAE,IAAI,CAAC;MAAG,CAAA,CAAC;MAClG,IAAI,CAACoM,OAAO,GAAG,IAAI;IACtB;EACT,CAAK;EACD,OAAOF,SAAS;AACpB,CAAC,CAAA,CAAG;AACJ,IAAIY,SAAS,GAAG,IAAIZ,SAAS,EAAE;AAC/B,IAAIa,WAAW,GAAG,SAAAA,CAAUnU,CAAC,EAAE;EAC3B,CAACyS,QAAQ,IAAIzS,CAAC,GAAG,CAAC,IAAIkU,SAAS,CAACL,KAAK,CAAA,CAAE;EACvCpB,QAAQ,IAAIzS,CAAC;EACb,CAACyS,QAAQ,IAAIyB,SAAS,CAACJ,IAAI,EAAE;AACjC,CAAC;AC/FD,IAAIM,mBAAmB,GAAG,SAAAA,CAAUjM,MAAM,EAAE;EACxC,OAAO,CAAC0C,KAAK,CAAC1C,MAAM,CAAC,IACd,CAACqD,iBAAiB,CAACrD,MAAM,CAAC,IAC1BgF,gBAAgB,CAAChF,MAAM,CAAC,CAAC3D,OAAO,KAAK,QAAQ;AACxD,CAAC;AACD,IAAI6P,iBAAiB,GAAI,YAAY;EACjC,SAASA,iBAAiBA,CAAClM,MAAM,EAAEwH,WAAW,EAAE;IAC5C,IAAI,CAACxH,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACwH,WAAW,GAAGA,WAAW,IAAIlG,wBAAwB,CAAC6K,WAAW;IACtE,IAAI,CAACvD,gBAAgB,GAAG;MACpBjH,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE;IACvB,CAAS;EACJ;EACDsK,iBAAiB,CAAC7J,SAAS,CAACgH,QAAQ,GAAG,YAAY;IAC/C,IAAIzM,IAAI,GAAG2K,gBAAgB,CAAC,IAAI,CAACvH,MAAM,EAAE,IAAI,CAACwH,WAAW,EAAE,IAAI,CAAC;IAChE,IAAIyE,mBAAmB,CAAC,IAAI,CAACjM,MAAM,CAAC,EAAE;MAClC,IAAI,CAAC4I,gBAAgB,GAAGhM,IAAI;IAC/B;IACD,IAAI,IAAI,CAACgM,gBAAgB,CAACjH,UAAU,KAAK/E,IAAI,CAAC+E,UAAU,IACjD,IAAI,CAACiH,gBAAgB,CAAChH,SAAS,KAAKhF,IAAI,CAACgF,SAAS,EAAE;MACvD,OAAO,IAAI;IACd;IACD,OAAO,KAAK;EACpB,CAAK;EACD,OAAOsK,iBAAiB;AAC5B,CAAC,EAAG;AC7BJ,IAAIE,oBAAoB,GAAI,YAAY;EACpC,SAASA,oBAAoBA,CAACC,cAAc,EAAErS,QAAQ,EAAE;IACpD,IAAI,CAAC0G,aAAa,GAAG,EAAE;IACvB,IAAI,CAACE,cAAc,GAAG,EAAE;IACxB,IAAI,CAACwI,kBAAkB,GAAG,EAAE;IAC5B,IAAI,CAACL,QAAQ,GAAGsD,cAAc;IAC9B,IAAI,CAACrS,QAAQ,GAAGA,QAAQ;EAC3B;EACD,OAAOoS,oBAAoB;AAC/B,CAAC,EAAG;ACLJ,IAAIE,WAAW,GAAG,IAAI7I,OAAO,EAAE;AAC/B,IAAI8I,mBAAmB,GAAG,SAAAA,CAAUnD,kBAAkB,EAAEpJ,MAAM,EAAE;EAC5D,KAAK,IAAIwM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpD,kBAAkB,CAACrO,MAAM,EAAEyR,CAAC,IAAI,CAAC,EAAE;IACnD,IAAIpD,kBAAkB,CAACoD,CAAC,CAAC,CAACxM,MAAM,KAAKA,MAAM,EAAE;MACzC,OAAOwM,CAAC;IACX;EACJ;EACD,OAAO,CAAC,CAAC;AACb,CAAC;AACD,IAAIC,wBAAwB,GAAI,YAAY;EACxC,SAASA,wBAAwBA,CAAA,EAAG,CACnC;EACDA,wBAAwB,CAACC,OAAO,GAAG,UAAUL,cAAc,EAAErS,QAAQ,EAAE;IACnE,IAAI2S,MAAM,GAAG,IAAIP,oBAAoB,CAACC,cAAc,EAAErS,QAAQ,CAAC;IAC/DsS,WAAW,CAACxH,GAAG,CAACuH,cAAc,EAAEM,MAAM,CAAC;EAC/C,CAAK;EACDF,wBAAwB,CAACxC,OAAO,GAAG,UAAUoC,cAAc,EAAErM,MAAM,EAAE4M,OAAO,EAAE;IAC1E,IAAID,MAAM,GAAGL,WAAW,CAACzH,GAAG,CAACwH,cAAc,CAAC;IAC5C,IAAIQ,gBAAgB,GAAGF,MAAM,CAACvD,kBAAkB,CAACrO,MAAM,KAAK,CAAC;IAC7D,IAAIwR,mBAAmB,CAACI,MAAM,CAACvD,kBAAkB,EAAEpJ,MAAM,CAAC,GAAG,CAAC,EAAE;MAC5D6M,gBAAgB,IAAIvM,eAAe,CAACzB,IAAI,CAAC8N,MAAM,CAAC;MAChDA,MAAM,CAACvD,kBAAkB,CAACvK,IAAI,CAAC,IAAIqN,iBAAiB,CAAClM,MAAM,EAAE4M,OAAO,IAAIA,OAAO,CAACE,GAAG,CAAC,CAAC;MACrFd,WAAW,CAAC,CAAC,CAAC;MACdD,SAAS,CAACT,QAAQ,CAAA,CAAE;IACvB;EACT,CAAK;EACDmB,wBAAwB,CAACM,SAAS,GAAG,UAAUV,cAAc,EAAErM,MAAM,EAAE;IACnE,IAAI2M,MAAM,GAAGL,WAAW,CAACzH,GAAG,CAACwH,cAAc,CAAC;IAC5C,IAAIW,KAAK,GAAGT,mBAAmB,CAACI,MAAM,CAACvD,kBAAkB,EAAEpJ,MAAM,CAAC;IAClE,IAAIiN,eAAe,GAAGN,MAAM,CAACvD,kBAAkB,CAACrO,MAAM,KAAK,CAAC;IAC5D,IAAIiS,KAAK,IAAI,CAAC,EAAE;MACZC,eAAe,IAAI3M,eAAe,CAAC0I,MAAM,CAAC1I,eAAe,CAAC4M,OAAO,CAACP,MAAM,CAAC,EAAE,CAAC,CAAC;MAC7EA,MAAM,CAACvD,kBAAkB,CAACJ,MAAM,CAACgE,KAAK,EAAE,CAAC,CAAC;MAC1ChB,WAAW,CAAC,CAAC,CAAC,CAAC;IAClB;EACT,CAAK;EACDS,wBAAwB,CAACX,UAAU,GAAG,UAAUO,cAAc,EAAE;IAC5D,IAAIjB,KAAK,GAAG,IAAI;IAChB,IAAIuB,MAAM,GAAGL,WAAW,CAACzH,GAAG,CAACwH,cAAc,CAAC;IAC5CM,MAAM,CAACvD,kBAAkB,CAAC+D,KAAK,CAAE,CAAA,CAAC9E,OAAO,CAAC,UAAUI,EAAE,EAAE;MAAE,OAAO2C,KAAK,CAAC2B,SAAS,CAACV,cAAc,EAAE5D,EAAE,CAACzI,MAAM,CAAC;IAAG,CAAA,CAAC;IAC/G2M,MAAM,CAACjM,aAAa,CAACsI,MAAM,CAAC,CAAC,EAAE2D,MAAM,CAACjM,aAAa,CAAC3F,MAAM,CAAC;EACnE,CAAK;EACD,OAAO0R,wBAAwB;AACnC,CAAC,EAAG;AC7CJ,IAAIrC,cAAc,GAAI,YAAY;EAC9B,SAASA,cAAcA,CAACpQ,QAAQ,EAAE;IAC9B,IAAIc,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIqS,SAAS,CAAC,gFAAgF,CAAC;IACxG;IACD,IAAI,OAAOpT,QAAQ,KAAK,UAAU,EAAE;MAChC,MAAM,IAAIoT,SAAS,CAAC,+FAA+F,CAAC;IACvH;IACDX,wBAAwB,CAACC,OAAO,CAAC,IAAI,EAAE1S,QAAQ,CAAC;EACnD;EACDoQ,cAAc,CAAC/H,SAAS,CAAC4H,OAAO,GAAG,UAAUjK,MAAM,EAAE4M,OAAO,EAAE;IAC1D,IAAI9R,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIqS,SAAS,CAAC,2FAA2F,CAAC;IACnH;IACD,IAAI,CAAC5W,SAAS,CAACwJ,MAAM,CAAC,EAAE;MACpB,MAAM,IAAIoN,SAAS,CAAC,sFAAsF,CAAC;IAC9G;IACDX,wBAAwB,CAACxC,OAAO,CAAC,IAAI,EAAEjK,MAAM,EAAE4M,OAAO,CAAC;EAC/D,CAAK;EACDxC,cAAc,CAAC/H,SAAS,CAAC0K,SAAS,GAAG,UAAU/M,MAAM,EAAE;IACnD,IAAIlF,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIqS,SAAS,CAAC,6FAA6F,CAAC;IACrH;IACD,IAAI,CAAC5W,SAAS,CAACwJ,MAAM,CAAC,EAAE;MACpB,MAAM,IAAIoN,SAAS,CAAC,wFAAwF,CAAC;IAChH;IACDX,wBAAwB,CAACM,SAAS,CAAC,IAAI,EAAE/M,MAAM,CAAC;EACxD,CAAK;EACDoK,cAAc,CAAC/H,SAAS,CAACyJ,UAAU,GAAG,YAAY;IAC9CW,wBAAwB,CAACX,UAAU,CAAC,IAAI,CAAC;EACjD,CAAK;EACD1B,cAAc,CAACiD,QAAQ,GAAG,YAAY;IAClC,OAAO,gDAAgD;EAC/D,CAAK;EACD,OAAOjD,cAAc;AACzB,CAAC,EAAG;AChCS,MAAAkD,eAAA,GACX,OAAOpM,QAAA,KAAa,WAAe,IAAA,OAAOf,WAAW,WAAe,IAAAA,MAAA,CAAOiK,cACvE,GAAAjK,MAAA,CAAOiK,cACP,GAAAmD,cAAAA;ACqCC,MAAMC,uBAAuBC,0BAA2B,CAAA,CAAA;AAE/D,SAASC,+BAAwDA,CAAA,EAAA;EACxD,OAAA;IACLC,SAAAA,CAAUlP,SAASmP,UAAY,EAAA;MAC7B,MAAMvB,iBAAiB,IAAIiB,eAAA,CAAgBO,IAAA,IAAa;QAAA,IAAZ,CAACnF,KAAK,CAAM,GAAAmF,IAAA;QAC3CD,UAAA,CAAA;UACTE,cAAcpF,KAAM,CAAAjE,WAAA;UACpBsJ,MAAQ,EAAA;YACN/L,KAAO,EAAA0G,KAAA,CAAMnE,aAAc,CAAA,CAAC,CAAE,CAAA5C,UAAA;YAC9BrF,MAAQ,EAAAoM,KAAA,CAAMnE,aAAc,CAAA,CAAC,CAAE,CAAA3C;UACjC,CAAA;UACAxF,OAAS,EAAA;YACP4F,KAAA,EAAO0G,MAAMjE,WAAY,CAAAzC,KAAA;YACzB1F,MAAA,EAAQoM,MAAMjE,WAAY,CAAAnI;UAC5B;QAAA,CACD,CAAA;MAAA,CACF,CAAA;MAED+P,cAAA,CAAepC,QAAQxL,OAAO,CAAA;MAE9B,OAAO,MAAM;QACX4N,cAAA,CAAeU,UAAUtO,OAAO,CAAA;QAChC4N,cAAA,CAAeP,UAAW,CAAA,CAAA;MAAA,CAC5B;IACF;EAAA,CACF;AACF;AAEA,SAAS2B,0BAAmDA,CAAA,EAAA;EACpD,MAAAO,YAAA,GAAA,mBAAmBvK,OAAiC,EAAA;EACpD,MAAAwK,gBAAA,GAAA,mBAAuBxK,OAA+C,EAAA;EAErE,OAAA;IACLkK,SAAAA,CAAUlP,SAASmP,UAAY,EAAA;MAC7B,MAAMM,WAAc,GAAAD,gBAAA,CAAiBpJ,GAAI,CAAApG,OAAO,KAAK,EAAC;MAElD,IAAA0P,OAAA,GAAUH,YAAa,CAAAnJ,GAAA,CAAIpG,OAAO,CAAA;MAEtC,IAAI,CAACwP,gBAAA,CAAiBrJ,GAAI,CAAAnG,OAAO,CAAG,EAAA;QACjBwP,gBAAA,CAAAnJ,GAAA,CAAIrG,SAASyP,WAAW,CAAA;QAEzC,MAAMjP,WAAWyO,+BAAgC,EAAA;QAGjDS,OAAA,GAAUlP,QAAS,CAAA0O,SAAA,CAAUlP,OAAS,EAAC2P,WAAgB,IAAA;UACrD,KAAA,MAAWC,OAAOH,WAAa,EAAA;YAC7BG,GAAA,CAAID,WAAW,CAAA;UACjB;QAAA,CACD,CAAA;MACH;MAEAF,WAAA,CAAYrP,KAAK+O,UAAU,CAAA;MAE3B,OAAO,MAAM;QAGL,MAAAU,GAAA,GAAMJ,WAAY,CAAAhB,OAAA,CAAQU,UAAU,CAAA;QAE1C,IAAIU,MAAM,CAAI,CAAA,EAAA;UACAJ,WAAA,CAAAlF,MAAA,CAAOsF,KAAK,CAAC,CAAA;QAC3B;QAEI,IAAAJ,WAAA,CAAYnT,WAAW,CAAG,EAAA;UAExB,IAAAoT,OAAA,EAAiBA,OAAA,EAAA;QACvB;MAAA,CACF;IACF;EAAA,CACF;AACF;AC5GO,SAASI,eAAe9P,OAAiD,EAAA;EAC9E,MAAM,CAAC7B,IAAA,EAAM4R,OAAO,CAAA,GAAIpP,SAA6B,IAAI,CAAA;EAEzDK,SAAA,CAAU,MAAM;IACd,IAAI,CAAChB,OAAA,EAAgB,OAAA,KAAA,CAAA;IAEd,OAAA+O,oBAAA,CAAqBG,SAAU,CAAAlP,OAAA,EAAS+P,OAAO,CAAA;EAAA,CACxD,EAAG,CAAC/P,OAAO,CAAC,CAAA;EAEL,OAAA7B,IAAA;AACT;ACTO,SAAS6R,eAAehQ,OAAqD,EAAA;EAC5E,MAAAiQ,WAAA,GAAcH,eAAe9P,OAAO,CAAA;EAE1C,OAAA,CAAOiQ,2CAAaZ,YAAgB,KAAA,IAAA;AACtC;ACPO,SAASa,iBAAiBC,SAAiD,EAAA;EAChF,OAAOnP,UAAU,MAAM;IACrBW,gBAAA,CAAiB,WAAWwO,SAAS,CAAA;IAE9B,OAAA,MAAMvO,mBAAoB,CAAA,SAAA,EAAWuO,SAAS,CAAA;EAAA,CACvD,EAAG,CAACA,SAAS,CAAC,CAAA;AAChB;ACDA,SAASC,cAAiBA,CAAA,EAAA;EACxB,IAAI,OAAOC,UAAe,KAAA,WAAA,EAAoB,OAAAA,UAAA;EAC9C,IAAI,OAAO3O,MAAW,KAAA,WAAA,EAAoB,OAAAA,MAAA;EAC1C,IAAI,OAAO4O,IAAS,KAAA,WAAA,EAAoB,OAAAA,IAAA;EACxC,IAAI,OAAOxL,MAAW,KAAA,WAAA,EAAoB,OAAAA,MAAA;EAEpC,MAAA,IAAIvI,MAAM,2CAA2C,CAAA;AAC7D;AAEO,MAAMgU,cAAcH,cAAe,CAAA,CAAA;ACf1C,MAAMpV,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAwC,IAAI,CAAA;AAKtE,MAAAC,YAAA,GAAkDF,YAAYvV,KAAG,CAAA;ACcvE,SAAS0V,cAAcvU,KAA+C,EAAA;EACrE,MAAAwU,WAAA,GAAcC,WAAWH,YAAY,CAAA;EACrC,MAAA;IACJI,QAAA;IACAC,MAAA,GAAA,CAASH,2CAAaG,MAAU,KAAA,OAAA;IAChC5U,KAAA,EAAO6U,SAAY,GAAA,CAAAJ,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAazU,KAAS,KAAA,IAAA;IACzC8U,IAAA,GAAA,CAAOL,2CAAaK,IAAQ,KAAA;EAC1B,CAAA,GAAA7U,KAAA;EAEE,MAAA8U,YAAA,GAAyCrR,QAAQ,MAAM;IAC3D,IAAI,CAACmR,SAAA,EAAkB,OAAA,IAAA;IAEhB,OAAA;MACLG,OAAS,EAAA,CAAA;MACThV,KAAO,EAAA6U,SAAA;MACPD,MAAA;MACAE;IAAA,CACF;EACC,CAAA,EAAA,CAACD,SAAW,EAAAD,MAAA,EAAQE,IAAI,CAAC,CAAA;EAEtB,MAAA9U,KAAA,GAAsB0D,QAAQ,MAAM;IACxC,IAAI,CAACmR,SAAA,EAAkB,OAAA,IAAA;IAEhB,OAAAI,cAAA,CAAeJ,SAAW,EAAAD,MAAA,EAAQE,IAAI,CAAA;EAC5C,CAAA,EAAA,CAACF,MAAQ,EAAAC,SAAA,EAAWC,IAAI,CAAC,CAAA;EAE5B,IAAI,CAAC9U,KAAO,EAAA;IACH,OAAA,eAAAkV,GAAA,CAAC;MAAIP,QAA2C,EAAA;IAAA,CAAA,CAAA;EACzD;EAGE,OAAA,eAAAO,GAAA,CAACX,YAAa,CAAAY,QAAA,EAAb;IAAsBxW,KAAA,EAAOoW;IAC5BJ,QAAC,iBAAAO,GAAA,CAAAE,eAAA,EAAA;MAAoBpV,KAAe;MAAA2U;IAAS,CAAA;EAC/C,CAAA,CAAA;AAEJ;ACrDO,SAASU,YAAkCA,CAAA,EAAA;EAC1C,MAAA1W,KAAA,GAAQ+V,WAAWH,YAAY,CAAA;EAErC,IAAI,CAAC5V,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,uCAAuC,CAAA;EACzD;EAEO,OAAA1B,KAAA;AACT;ACCO,SAAS2W,mBAAmBrV,KAAoD,EAAA;EACrF,MAAM;IAAC0U,QAAA;IAAUC,MAAQ;IAAAE;EAAA,CAAQ,GAAA7U,KAAA;EACjC,MAAMsV,OAAOF,YAAa,EAAA;EAGxB,OAAA,eAAAH,GAAA,CAACV,aAAc,EAAA;IAAAI,MAAA,EAAQA,MAAU,IAAAW,IAAA,CAAKX;IAAQ5U,KAAO,EAAAuV,IAAA,CAAKvV,KAAO;IAAA8U,IAAA;IAC9DH;EACH,CAAA,CAAA;AAEJ;ACnBO,SAASa,QAAkBA,CAAA,EAAA;EAChC,OAAOC,UAAe,CAAA,CAAA;AACxB;AAKO,SAASC,WAAwBA,CAAA,EAAA;EAC/B,OAAAnV,WAAA,CAAYkV,YAAyB,CAAA;AAC9C;ACJA,MAAME,iBAAA,GAAA,mBAAwB7M,OAA+B,EAAA;AAO7D,SAAS8M,cAAAA,CAAezW,OAAiBkT,KAA2B,EAAA;EAClE,IAAIA,UAAU,CAAG,EAAA;IACf,OAAO,yBAA0B,CAAApT,MAAA,CAAAE,KAAA,CAAMkT,KAAK,CAAA,GAAI,CAAC,EAAA,KAAA,CAAA;EACnD;EAEI,IAAAA,KAAA,KAAUlT,MAAMiB,MAAQ,EAAA;IAC1B,OAAO,yBAA0B,CAAAnB,MAAA,CAAAE,KAAA,CAAMkT,KAAQ,GAAA,CAAC,CAAC,EAAA,KAAA,CAAA;EACnD;EAEO,OAAA,yBAAA,CAA0BpT,aAAMoT,KAAQ,GAAA,CAAC,GAAC,sBAAuB,CAAA,CAAApT,MAAA,CAAAE,KAAA,CAAMkT,KAAK,CAAA,GAAI,CAAC,EAAA,KAAA,CAAA;AAC1F;AAEA,SAASwD,kBAAkB1W,KAA8B,EAAA;EACvD,MAAM2W,WAAW3W,KAAM,CAAAiB,MAAA;EACnB,IAAAW,KAAA;EAKJ,MAAMgV,WAAWA,CAAA,KAAM;IACrB,IAAI,CAAChV,KAAO,EAAA;MACVA,KAAA,GAAQ,EAAC;MAET,KAAA,IAASsR,KAAQ,GAAAyD,QAAA,EAAUzD,KAAQ,GAAA,CAAA,CAAA,EAAIA,SAAS,CAAG,EAAA;QAC3C,MAAA2D,UAAA,GAAaJ,cAAe,CAAAzW,KAAA,EAAOkT,KAAK,CAAA;QAExCtR,KAAA,CAAAmD,IAAA,CAAK;UAACmO,KAAO;UAAA4D,EAAA,EAAIzQ,OAAO0Q,UAAW,CAAAF,UAAU;SAAE,CAAA;MACvD;IACF;IAEO,OAAAjV,KAAA;EAAA,CACT;EAEA,MAAMoV,cAAcA,CAAA,KAAM;IACxB,KAAA,MAAW;MAAC9D,KAAA;MAAO4D;IAAE,CAAA,IAAKF,UAAY,EAAA;MACpC,IAAIE,EAAG,CAAAG,OAAA,EAAgB,OAAA/D,KAAA;IACzB;IAEO,OAAA,CAAA;EAAA,CACT;EAEM,MAAAW,SAAA,GAAaqD,aAA8B,IAAA;IAC/C,MAAMC,aAA6B,EAAC;IAEpC,KAAA,MAAW;MAACL;KAAO,IAAAF,QAAA,EAAY,EAAA;MAC7B,MAAMQ,eAAeA,CAAA,KAAM;QACzB,IAAIN,EAAG,CAAAG,OAAA,EAAuBC,aAAA,EAAA;MAAA,CAChC;MAEGJ,EAAA,CAAAxQ,gBAAA,CAAiB,UAAU8Q,YAAY,CAAA;MAE1CD,UAAA,CAAWpS,KAAK,MAAM+R,EAAA,CAAGvQ,mBAAoB,CAAA,QAAA,EAAU6Q,YAAY,CAAC,CAAA;IACtE;IAEA,OAAO,MAAM;MACX,KAAA,MAAWC,aAAaF,UAAY,EAAA;QACxBE,SAAA,EAAA;MACZ;IAAA,CACF;EAAA,CACF;EAEO,OAAA;IAACL;IAAanD;GAAS;AAChC;AASA,SAASyD,mBAAoBC,CAAA,EAAA;EACpB,OAAA,CAAA;AACT;AAMO,SAASC,aAAwBA,CAAA,EAAA;EAChC,MAAA;IAACxX;GAAK,GAAIuW,WAAY,EAAA;EAExB,IAAAkB,KAAA,GAAQjB,iBAAkB,CAAAzL,GAAA,CAAI/K,KAAK,CAAA;EAEvC,IAAI,CAACyX,KAAO,EAAA;IACVA,KAAA,GAAQf,kBAAkB1W,KAAK,CAAA;IACbwW,iBAAA,CAAAxL,GAAA,CAAIhL,OAAOyX,KAAK,CAAA;EACpC;EAEA,OAAOC,oBAAqB,CAAAD,KAAA,CAAM5D,SAAW,EAAA4D,KAAA,CAAMT,aAAaM,mBAAiB,CAAA;AACnF;AC1GA,IAAIK,mBAAA;AAKJ,SAASC,eAAgCC,CAAA,EAAA;EACvC,IAAI,CAACF,mBAAmB,EAAA;IAGFA,mBAAA,GAAAtR,MAAA,CAAO0Q,WAAW,8BAA8B,CAAA;EACtE;EAEO,OAAAY,mBAAA;AACT;AAYA,SAAS9D,YAAUqD,aAAuC,EAAA;EACxD,MAAMH,aAAaa,eAAc,EAAA;EAEtBb,UAAA,CAAAzQ,gBAAA,CAAiB,UAAU4Q,aAAa,CAAA;EAEnD,OAAO,MAAMH,UAAA,CAAWxQ,mBAAoB,CAAA,QAAA,EAAU2Q,aAAa,CAAA;AACrE;AAOA,SAASF,aAAcc,CAAA,EAAA;EACrB,OAAOF,gBAAgB,CAAA,CAAAX,OAAA;AACzB;AASA,SAASK,mBAAoBS,CAAA,EAAA;EACpB,OAAA,KAAA;AACT;AAKO,SAASC,cAA0BA,CAAA,EAAA;EACjC,OAAAN,oBAAA,CAAqB7D,WAAW,EAAAmD,aAAA,EAAaM,mBAAiB,CAAA;AACvE;AC1DA,IAAIK,iBAAA;AAKJ,SAASC,aAAgCA,CAAA,EAAA;EACvC,IAAI,CAACD,iBAAmB,EAAA;IAGFA,iBAAA,GAAAtR,MAAA,CAAO0Q,WAAW,kCAAkC,CAAA;EAC1E;EAEO,OAAAY,iBAAA;AACT;AAYA,SAAS9D,UAAUqD,aAAuC,EAAA;EACxD,MAAMH,aAAaa,aAAc,EAAA;EAEtBb,UAAA,CAAAzQ,gBAAA,CAAiB,UAAU4Q,aAAa,CAAA;EAEnD,OAAO,MAAMH,UAAA,CAAWxQ,mBAAoB,CAAA,QAAA,EAAU2Q,aAAa,CAAA;AACrE;AAOA,SAASF,WAAcA,CAAA,EAAA;EACrB,OAAOY,cAAgB,CAAA,CAAAX,OAAA;AACzB;AASA,SAASK,iBAAoBA,CAAA,EAAA;EACpB,OAAA,KAAA;AACT;AAMO,SAASW,uBAAmCA,CAAA,EAAA;EAC1C,OAAAP,oBAAA,CAAqB7D,SAAW,EAAAmD,WAAA,EAAaM,iBAAiB,CAAA;AACvE;ACxDO,MAAMY,mBAAsB,GAAA,OAAO7R,MAAW,KAAA,WAAA,GAAc8R,eAAkB,GAAAxS,SAAA;ACC9E,SAASyS,gBAAmBC,GAA8D,EAAA;EACzF,MAAAC,QAAA,GAAW5S,OAAiB,IAAI,CAAA;EAEtCwS,mBAAA,CAAoB,MAAM;IACxB,IAAI,CAACG,GAAA,EAAK;IAEN,IAAA,OAAOA,QAAQ,UAAY,EAAA;MAC7BA,GAAA,CAAIC,SAASzS,OAAO,CAAA;IAAA,CACf,MAAA;MACLwS,GAAA,CAAIxS,UAAUyS,QAAS,CAAAzS,OAAA;IACzB;EAAA,CACD,CAAA;EAEM,OAAAyS,QAAA;AACT;ACfgB,SAAAC,iBAAAA,CACdF,KACAG,cACM,EAAA;EACN7S,SAAA,CAAU,MAAM;IACd,IAAI0S,IAAIxS,OAAS,EAAA;MACXwS,GAAA,CAAAxS,OAAA,CAAQ4S,iBAAkB,CAAAD,cAAA,IAAkB,EAAE,CAAA;IACpD;EAAA,CACC,EAAA,CAACA,cAAgB,EAAAH,GAAG,CAAC,CAAA;AAC1B;ACTO,SAASK,qBAEdA,CAAA,EAAA;EACA,OAAO,CAACzE,MAAA,EAAQjI,SAAW,EAAAE,WAAA,EAAaE,cAAcE,UAAU,CAAA;AAClE;AAEA,SAAS2H,OAAOnT,KAAgD,EAAA;EAXhE,IAAA2H,EAAA,EAAAO,EAAA;EAYE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAA+X,OAAA,EAAUrZ,KAAA,IACxCA,KAAQ,GAAA;IAAC,MAAM;MAACyU,MAAA,EAAQ2E;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC3E,MAAA,EAAQ;;EAAE,CAAA,CAC5D;AACF;AAEA,SAASjI,UAAUlL,KAAgD,EAAA;EApBnE,IAAA2H,EAAA,EAAAO,EAAA;EAqBE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAgY,UAAA,EAAatZ,KAAA,IAC3CA,KAAQ,GAAA;IAAC,MAAM;MAACwM,SAAA,EAAW4M;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC5M,SAAA,EAAW;;EAAE,CAAA,CAClE;AACF;AAEA,SAASE,YAAYpL,KAAgD,EAAA;EA7BrE,IAAA2H,EAAA,EAAAO,EAAA;EA8BE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAiY,YAAA,EAAevZ,KAAA,IAC7CA,KAAQ,GAAA;IAAC,MAAM;MAAC0M,WAAA,EAAa0M;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC1M,WAAA,EAAa;;EAAE,CAAA,CACtE;AACF;AAEA,SAASE,aAAatL,KAAgD,EAAA;EAtCtE,IAAA2H,EAAA,EAAAO,EAAA;EAuCE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAkY,aAAA,EAAgBxZ,KAAA,IAC9CA,KAAQ,GAAA;IAAC,MAAM;MAAC4M,YAAA,EAAcwM;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAACxM,YAAA,EAAc;;EAAE,CAAA,CACxE;AACF;AAEA,SAASE,WAAWxL,KAAgD,EAAA;EA/CpE,IAAA2H,EAAA,EAAAO,EAAA;EAgDE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAmY,WAAA,EAAczZ,KAAA,IAC5CA,KAAQ,GAAA;IAAC,MAAM;MAAC8M,UAAA,EAAYsM;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAACtM,UAAA,EAAY;;EAAE,CAAA,CACpE;AACF;AChDA,MAAM4M,YAAwB,GAAA;EAC5B,iCAAmC,EAAA;IACjCC,SAAW,EAAA;EACb;AACF,CAAA;AAEA,MAAMC,UAAkD,GAAA;EACtD9W,OAAS,EAAA,aAAA;EACT2R,MAAQ,EAAA;AACV,CAAA;AAEA,MAAMoF,UAAa,GAAA;EACjBC,OAAS,EAAA,SAAA;EACTC,IAAM,EAAA;AACR,CAAA;AAEO,SAASC,QAAsBA,CAAA,EAAA;EAC7B,OAAAN,YAAA;AACT;AAEO,SAASO,kBAEdA,CAAA,EAAA;EACO,OAAA,CACLC,wBAAA,EACAC,wBAAA,EACAC,0BAAA,EACAC,yBAAA,CACF;AACF;AAEA,SAASA,0BAA0B/Y,KAA6C,EAAA;EAC9E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAgZ,QAAA,EAAWvX,OAAa,KAAA;IACtD,iBAAA,EAAmB;MAACA;IAAO;EAC3B,CAAA,CAAA,CAAA;AACJ;AAEA,SAASmX,yBAAyB5Y,KAA6C,EAAA;EAC7E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAiZ,OAAA,EAAUC,MAAY,KAAA;IACpD1O,SAAA,EAAW8N,WAAWY,MAAM;EAC5B,CAAA,CAAA,CAAA;AACJ;AAEA,SAASL,yBAAyB7Y,KAA6C,EAAA;EAC7E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmZ,OAAA,EAAUzX,MAAY,KAAA;IACpDA,MAAA,EAAQ6W,WAAW7W,MAAM;EACzB,CAAA,CAAA,CAAA;AACJ;AAEA,SAASoX,2BAA2B9Y,KAA6C,EAAA;EAC/E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoZ,SAAA,EAAYC,QAAc,KAAA;IACxDA;EACA,CAAA,CAAA,CAAA;AACJ;AC9DA,MAAMjB,YAAwB,GAAA;EAC5B,kBAAoB,EAAA;IAClB3W,OAAS,EAAA;EACX;AACF,CAAA;AAEO,SAAS6X,mBAEdA,CAAA,EAAA;EACO,OAAA,CACLlB,YAAA,EACAmB,wBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,0BAAA,EACAC,4BAAA,CACF;AACF;AAEO,SAASJ,yBACdvZ,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoD,MAAA,EAASwW,KAAU,IAAA;IAC1C,OAAA;MAACC,YAAYD;KAAK;EAAA,CAC1B,CAAA;AACH;AAEA,SAASJ,uBAAuBxZ,KAA8C,EAAA;EAC5E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA8Z,IAAA,EAAOC,GAAS,KAAA;IAC9CA,KAAKA,GAAM,GAAAjb,GAAA,CAAIuB,KAAM,CAAA0Z,GAAG,CAAC,CAAI,GAAA,KAAA;EAC7B,CAAA,CAAA,CAAA;AACJ;AAEO,SAASN,wBAAwBzZ,KAA2D,EAAA;EACjG,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAga,KAAA,EAAQC,IAAS,IAAA;IACxC,OAAA;MAACC,UAAUD;KAAI;EAAA,CACvB,CAAA;AACH;AAEO,SAASP,2BACd1Z,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAma,QAAA,EAAWC,OAAY,IAAA;IAC9C,OAAA;MAACC,gBAAgBD;KAAO;EAAA,CAChC,CAAA;AACH;AAEO,SAAST,6BACd3Z,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAsa,UAAA,EAAaC,SAAc,IAAA;IAClD,OAAA;MAACC,eAAeD;KAAS;EAAA,CACjC,CAAA;AACH;AC9DA,MAAMnC,YAAwB,GAAA;EAC5BqC,QAAU,EAAA,CAAA;EACVC,SAAW,EAAA;AACb,CAAA;AAEO,SAASC,aAEdA,CAAA,EAAA;EACO,OAAA,CAACvC,cAAYwC,uBAAuB,CAAA;AAC7C;AAEO,SAASA,wBACd5a,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,IAAI,CAACC,KAAM,CAAA6a,KAAA,EAAc,OAAA/c,WAAA;EAElB,OAAAmB,WAAA,CAAYC,OAAOc,KAAM,CAAA6a,KAAA,EAAQC,IAAU,KAAA;IAACA;EAAM,CAAA,CAAA,CAAA;AAC3D;ACvBO,SAASC,qBAAqB5H,MAAgD,EAAA;EACnF,OAAO,cAAe,CAAAnU,MAAA,CAAAmU,MAAA,CAAO/L,KAAK,EAAA,KAAA,CAAA,CAAMpI,MAAO,CAAAmU,MAAA,CAAA6H,KAAA,CAAA;AACjD;AAEO,SAASC,eAAeC,IAIpB,EAAA;EACT,MAAM;IAAC/Z,IAAA;IAAMgS,MAAQ;IAAAgI;EAAA,CAAa,GAAAD,IAAA;EAC5B,MAAAE,oBAAA,GAAuBD,SAAU,CAAAE,MAAA,GAASF,SAAU,CAAA/T,KAAA;EACpD,MAAAkU,mBAAA,GAAsB,IAAIH,SAAU,CAAAE,MAAA;EACpC,MAAAE,OAAA,GAAUpa,IAAO,GAAAA,IAAA,CAAKqa,EAAK,GAAA,sBAAA;EAE1B,OAAA,CACLF,mBAAA,GAAsB,CAAK,IAAA,cAAA,CAAetc,MAAmB,CAAAsc,mBAAA,EAAA,iCAAA,CAAA,EAC7DnI,MAAA,IAAU4H,qBAAqB5H,MAAM,CAAA,EACrCmI,mBAAsB,GAAA,CAAA,IAAK,QAAS,CAAAtc,MAAA,CAAA,CAAA,GAAIsc,qBAAmB,KAAM,CAAA,CAAAtc,MAAA,CAAAuc,OAAA,CAAA,EACjEH,oBAAA,GAAuB,CAAK,IAAA,QAAA,CAASpc,MAAoB,CAAAoc,oBAAA,EAAA,iCAAA,CAAA,CAExD,CAAAlX,MAAA,CAAOC,OAAO,CAAA,CACdsX,KAAK,GAAG,CAAA;AACb;ACnBA,MAAMC,QAAW,GAAA;EACf,kBAAoB,EAAA;IAClBja,OAAS,EAAA;EACX,CAAA;EACA,iCAAmC,EAAA;IACjC4W,SAAW,EAAA;EACb;AACF,CAAA;AAEA,MAAMsD,gBAAmB,GAAA;EACvBC,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,aAAA;EACLC,GAAK,EAAA,aAAA;EACLC,EAAI,EAAA;AACN,CAAA;AAEA,MAAMC,cAAiB,GAAA;EACrBJ,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,aAAA;EACLC,GAAK,EAAA,aAAA;EACLC,EAAI,EAAA;AACN,CAAA;AAEO,SAASE,mBAEdA,CAAA,EAAA;EACO,OAAA,CACLP,QAAA,EACAQ,2BAAA,EACAC,2BAAA,EACAC,2BAAA,EACAC,0BAAA,EACAC,uBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,uBAAA,CACF;AACF;AAEA,SAASP,4BAA4Blc,KAA8C,EAAA;EACjF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA0c,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAc,EAAAD;EACd,CAAA,CAAA,CAAA;AACJ;AAEA,SAASR,4BAA4Bnc,KAA8C,EAAA;EACjF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6c,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAA,EAAcD,QAAY,IAAAd,cAAA,CAAec,QAAQ;EACjD,CAAA,CAAA,CAAA;AACJ;AAEA,SAASV,4BAA4Bpc,KAA8C,EAAA;EACjF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAgd,SAAA,EAAYC,QAAc,KAAA;IACxDC,eAAA,EAAiBD,QAAY,IAAAtB,gBAAA,CAAiBsB,QAAQ;EACtD,CAAA,CAAA,CAAA;AACJ;AAEA,SAASZ,2BAA2Brc,KAA8C,EAAA;EAChF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmd,QAAA,EAAWC,OAAa,KAAA;IACtDC,mBAAA,EAAqBD,OAAW,IAAA,SAAA,CAAUpe,MAAO,CAAAoe,OAAA,EAAA,kBAAA;EACjD,CAAA,CAAA,CAAA;AACJ;AAEA,SAASd,wBAAwBtc,KAA8C,EAAA;EAC7E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAsd,KAAA,EAAQC,IAAU,KAAA;IAChDC,gBAAA,EAAkBD,IAAQ,IAAA,SAAA,CAAUve,MAAI,CAAAue,IAAA,EAAA,kBAAA;EACxC,CAAA,CAAA,CAAA;AACJ;AAEA,SAAShB,uBAAuBvc,KAA8C,EAAA;EAC5E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA8Z,IAAA,EAAOC,GAAS,KAAA;IAC9C0D,SAAS1D,GAAM,GAAAjb,GAAA,CAAIuB,KAAM,CAAA0Z,GAAG,CAAC,CAAI,GAAA,KAAA;EACjC,CAAA,CAAA,CAAA;AACJ;AAEA,SAASyC,wBAAwBxc,KAA8C,EAAA;EAC7E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA0d,KAAA,EAAQC,IAAU,KAAA;IAChDC,WAAWD,IAAO,GAAA7e,GAAA,CAAIuB,KAAM,CAAAsd,IAAI,CAAC,CAAI,GAAA,KAAA;EACrC,CAAA,CAAA,CAAA;AACJ;AAEA,SAASlB,wBAAwBzc,KAA8C,EAAA;EAC7E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6d,KAAA,EAAQC,IAAU,KAAA;IAChDC,QAAQD,IAAO,GAAAhf,GAAA,CAAIuB,KAAM,CAAAyd,IAAI,CAAC,CAAI,GAAA,KAAA;EAClC,CAAA,CAAA,CAAA;AACJ;ACrGO,SAASE,uBAEdA,CAAA,EAAA;EACO,OAAA,CACLC,0BAAA,EACAC,+BAAA,EACAC,6BAAA,EACAC,6BAAA,EACAC,kCAAA,EACAC,gCAAA,CACF;AACF;AAEA,MAAMC,aAAgB,GAAA;EACpB3C,IAAM,EAAA,MAAA;EACN4C,IAAM,EAAA;AACR,CAAA;AAEA,MAAMC,gBAAmB,GAAA;EACvB7C,IAAM,EAAA,MAAA;EACN4C,IAAM,EAAA;AACR,CAAA;AAEA,SAASP,2BAA2Bje,KAAkD,EAAA;EACpF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA0e,IAAA,EAAOC,GAAQ,IAAA;IACzC,IAAA,OAAOA,QAAQ,QAAU,EAAA;MAC3B,OAAO;QAACC,OAAA,EAAS,OAAQ,CAAA5f,MAAA,CAAA2f,GAAA,EAAG,YAAW3f,MAAK,CAAA2f,GAAA;OAAA;IAC9C;IAEA,OAAO;MAACC,OAAA,EAASL,aAAc,CAAAI,GAAG;IAAC,CAAA;EAAA,CACpC,CAAA;AACH;AAEA,SAAST,gCAAgCle,KAAkD,EAAA;EACzF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6e,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAc,EAAAD;EACd,CAAA,CAAA,CAAA;AACJ;AAEA,SAASX,8BAA8Bne,KAAkD,EAAA;EACvF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAAd,WAAA,CAAYC,OAAOc,KAAM,CAAAgf,OAAA,EAAUC,MAAY,KAAA;IAACC,UAAY,EAAAD;EAAQ,CAAA,CAAA,CAAA;AAC7E;AAEA,SAASb,8BAA8Bpe,KAAkD,EAAA;EACvF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmf,OAAA,EAAUC,MAAW,IAAA;IAC/C,IAAA,OAAOA,WAAW,QAAU,EAAA;MAC9B,OAAO;QAACC,UAAA,EAAY,OAAQ,CAAArgB,MAAA,CAAAogB,MAAA,EAAM,YAAWpgB,MAAQ,CAAAogB,MAAA;OAAA;IACvD;IAEA,OAAO;MAACC,UAAA,EAAYZ,gBAAiB,CAAAW,MAAM;IAAC,CAAA;EAAA,CAC7C,CAAA;AACH;AAEA,SAASf,mCAAmCre,KAAkD,EAAA;EAC5F,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAsf,YAAA,EAAeC,WAAiB,KAAA;IAC9DC,eAAiB,EAAAD;EACjB,CAAA,CAAA,CAAA;AACJ;AAEA,SAASjB,iCAAiCte,KAAkD,EAAA;EAC1F,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAyf,UAAA,EAAaC,SAAe,KAAA;IAC1DC,aAAe,EAAAD;EACf,CAAA,CAAA,CAAA;AACJ;ACpEO,SAASE,4BACd5f,KACa,EAAA;EACb,MAAM;IAAC6f,SAAW;IAAAC,SAAA;IAAWC,UAAY;IAAAC,QAAA;IAAUC;EAAU,CAAA,GAAAjgB,KAAA;EAC7D,MAAM;IAACY,IAAM;IAAA1B,KAAA;IAAOmB;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC9C,MAAAmgB,GAAA,GAAMxd,KAAKoZ,GAAI,CAAAkE,QAAA,CAAS7f,QAAQ8f,MAAO,CAAA9f,MAAA,EAAQ0f,UAAU1f,MAAM,CAAA;EACrE,MAAMggB,WAAqB,EAAC;EAC5B,MAAMC,SAAmB,EAAC;EAC1B,MAAMC,YAAsB,EAAC;EAE7B,KAAA,IAASzO,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;IACrByO,SAAA,CAAAzO,CAAC,CAAI,GAAAiO,SAAA,CAAUjO,CAAC,CAAA,KAAM,KAAY,CAAA,GAAAyO,SAAA,CAAUzO,CAAI,GAAA,CAAC,CAAI,GAAAiO,SAAA,CAAUjO,CAAC,CAAA;IACjEuO,QAAA,CAAAvO,CAAC,CAAI,GAAAoO,QAAA,CAASpO,CAAC,CAAA,KAAM,KAAY,CAAA,GAAAuO,QAAA,CAASvO,CAAI,GAAA,CAAC,CAAI,GAAAoO,QAAA,CAASpO,CAAC,CAAA;IAC/DwO,MAAA,CAAAxO,CAAC,CAAI,GAAAqO,MAAA,CAAOrO,CAAC,CAAA,KAAM,KAAY,CAAA,GAAAwO,MAAA,CAAOxO,CAAI,GAAA,CAAC,CAAI,GAAAqO,MAAA,CAAOrO,CAAC,CAAA;EAChE;EAEA,OAAO3S,WAAY,CAAAC,KAAA,EAAOihB,QAAU,EAAA,CAACG,GAAG1O,CAAM,KAAA;IACtC,MAAA5P,IAAA,GAAOpB,IAAK,CAAA2f,IAAA,CAAKzf,KAAM,CAAAuf,SAAA,CAAUzO,CAAC,CAAC,CAAK,IAAAhR,IAAA,CAAK2f,IAAK,CAAAzf,KAAA,CAAM,CAAC,CAAA;IAC/D,MAAM0f,MAAS,GAAAxe,IAAA,CAAKK,UAAa,GAAAL,IAAA,CAAKC,iBAAiBD,IAAK,CAAAE,eAAA;IAC5D,MAAMhF,CAAI,GAAAmD,KAAA,CAAM8f,QAAS,CAAAvO,CAAC,CAAC,CAAA;IAC3B,MAAM6O,CAAI,GAAApgB,KAAA,CAAM+f,MAAO,CAAAxO,CAAC,CAAC,CAAA;IAEzB,MAAM8O,MAAS,GAAA;MACb5V,UAAY,EAAAhM,GAAA,CAAI5B,CAAI,GAAA8E,IAAA,CAAKC,cAAc,CAAA;MACvC8I,YAAA,EAAcjM,IAAI5B,CAAC,CAAA;MACnB8N,aAAe,EAAAlM,GAAA,CAAI5B,CAAI,GAAA8E,IAAA,CAAKE,eAAe,CAAA;MAC3C+I,WAAA,EAAanM,IAAI5B,CAAC;IAAA,CACpB;IAEI,IAAA6iB,UAAA,EAAYW,MAAA,CAAO3V,YAAe,GAAAjM,GAAA,CAAI5B,CAAI,GAAAsjB,MAAA,GAASC,CAAC,CAAA;IACpD,IAAAX,SAAA,EAAWY,MAAA,CAAOzV,WAAc,GAAAnM,GAAA,CAAI5B,CAAI,GAAAsjB,MAAA,GAASC,CAAC,CAAA;IAE/C,OAAAC,MAAA;EAAA,CACR,CAAA;AACH;AAsBO,SAASC,qCACd3gB,KAKa,EAAA;EACb,OAAO4f,4BAA4B;IAAC,GAAG5f,KAAO;IAAA+f,UAAA,EAAY;EAAK,CAAA,CAAA;AACjE;;;;;;AC5EA,IAAApY,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AA6BA,MAAMC,aAAaC,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,4EAAA,CAAA,CAAA,CAAA,CAAA;AAQf,SAASC,kBAA6CA,CAAA,EAAA;EACpD,OAAAH,UAAA;AACT;AAEO,SAASI,mBACdjhB,KACwB,EAAA;EACxB,MAAM;IAACkhB,OAAA;IAASC,KAAO;IAAAxgB;EAAA,CAAW,GAAAX,KAAA;EAClC,MAAM;IAACgb,KAAO;IAAApa;EAAA,CAAQ,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE7C,OAAO+gB,oBAAGC,YAQuB,CAAA,CAAA,6KAAA,EAAA,sBAAA,EACoD,kpBA2B3D,EAAA,gBAAA,EAAsB,kCACM,sCACkB,EAAA,8GAAA,EAIhB,wCACkB,EAAA,kGAAA,EAKjB,0CACkB,kFAKnB,EAAA,wCAAA,EACkB,qFAKjB,EAAA,wCAAA,EACkB,4BArD1DngB,IAAK,CAAA2f,IAAA,CAAK1f,MACT,EAAAF,OAAA,IAAWC,KAAK2f,IAAK,CAAAxf,OAAA,CAAQJ,OAAO,CAAA,IAAMC,KAAK2f,IAAK,CAAAxf,OAAA,CAAQE,OA2B3D,EAAAigB,OAAA,EAAwBC,OACnBnG,KAAM,CAAAoG,KAAA,CAAMC,QAAQC,OAAQ,CAAAC,EAAA,EACnBvG,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAE,WAAA,EAInCxG,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA,EACnBvG,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAE,WAAA,EAKrCxG,MAAMoG,KAAM,CAAAC,OAAA,CAAQI,SAASF,EACpB,EAAAvG,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASD,WAKtC,EAAAxG,KAAA,CAAMoG,MAAMM,OAAQ,CAAAJ,OAAA,CAAQC,EACnB,EAAAvG,KAAA,CAAMoG,MAAMM,OAAQ,CAAAJ,OAAA,CAAQE,WAKrC,EAAAxG,KAAA,CAAMoG,MAAMC,OAAQ,CAAAM,QAAA,CAASJ,IACpBvG,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAH,WAAA,CAAA;AAIlE;AAEO,SAASI,uBAAuB5hB,KAA2D,EAAA;EAChG,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE7C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6f,SAAA,EAAY/d,SAAc,IAAA;IAClD,MAAAE,IAAA,GAAOpB,KAAK2f,IAAK,CAAAzf,KAAA,CAAMgB,SAAS,CAAK,IAAAlB,IAAA,CAAK2f,IAAK,CAAAzf,KAAA,CAAM,CAAC,CAAA;IAErD,OAAA;MACLiB,QAAA,EAAUjD,GAAI,CAAAkD,IAAA,CAAKD,QAAQ,CAAA;MAC3BM,UAAA,EAAYL,IAAK,CAAAK,UAAA,GAAaL,IAAK,CAAAD;IAAA,CACrC;EAAA,CACD,CAAA;AACH;AAEO,SAAS8f,6BACd7hB,KACwB,EAAA;EACxB,MAAM;IAAC8hB,UAAY;IAAAC,UAAA;IAAYb,OAAS;IAAAC,KAAA;IAAOa;EAA6B,CAAA,GAAAhiB,KAAA;EAC5E,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAA+gB,GAAA,CAAAF,IAAA,KAAAA,IAAA,GAAGG,gUAe4C,oCACG,EAAA,kCAAA,EACF,uCACG,0BAEhC,EAAA,gBAAA,EAAsB,+BACK,EAAA,4BAAA,EACA,mGAO7C,EAAA,oGAAA,EAK+C,gCACA,+DAM7C,EAAA,4IAAA,EAYI,kFAM+C,kGAML,EAAA,yCAAA,EACA,4EAM9C,mGAM8C,EAAA,yCAAA,EACA,8KAMC,EAAA,gCAAA,EACA,6IAO/C,EAAA,kCAAA,CAAA,CAAA,CAAA,EA9EkBe,aAAa,CAAI,GAAA,KAAA,CAAA,EACdA,aAAa,CAAI,GAAA,KAAA,CAAA,EACnBC,aAAa,CAAI,GAAA,KAAA,CAAA,EACdA,UAAa,GAAA,CAAA,GAAI,KAE9B,CAAA,EAAAb,OAAA,EAAwBC,OACpBnG,KAAM,CAAAoG,KAAA,CAAMC,QAAQC,OAAQ,CAAA9F,EAAA,EAC5BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA,EAIvBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKkB4T,KAAM,CAAAoG,KAAA,CAAMM,OAAQ,CAAAJ,OAAA,CAAQ9F,EAC5B,EAAAR,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,OAAQ,CAAAC,EAAA,EAGvBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAOqB4a,yBAClB,GAAA,KAAA,CAAA,GACA/G,cAAe,CAAA;IACb9H,MAAA,EAAQ;MAAC6H,KAAA,EAAOA,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO,MAAQ;MAAA/L,KAAA,EAAOga,KAAM,CAAAjO,MAAA,CAAO/L;IAAK,CAAA;IAC7E+T,SAAA,EAAWiG,MAAMb,IAAK,CAAApF;EAAA,CACvB,GAIiB6G,yBAClB,GAAA,KAAA,CAAA,GACA/G,eAAe;IAACE,SAAA,EAAWiG,KAAM,CAAAb,IAAA,CAAKpF;GAAU,GAMnCH,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAjG,EAAA,EAC7BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAF,EAAA,EAGxBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO,MAAA;IACpC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EAAA,CACrB,GAMgB4T,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAnG,EAAA,EAC7BR,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAM,QAAA,CAASJ,IAM3BvG,KAAM,CAAAoG,KAAA,CAAMC,QAAQY,OAAQ,CAAAzG,EAAA,EAC5BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAAV,EAAA,EAIzBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAA9O,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,CAAA;AAKX;AClOO,SAAS8a,sBACdliB,KACe,EAAA;EACT,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAET,OAAA,CACLF,oBAAoBC,KAAO,EAAA,CAAC,QAAQ,CAAA,EAAGC,MAAMmiB,OAAO,CAAA,EACpDriB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,aAAa,CAAA,EAAGC,MAAMoiB,QAAQ,CAAA,EACxEtiB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,cAAc,CAAA,EAAGC,MAAMqiB,QAAQ,CAAA,EACxEviB,oBAAoBC,KAAO,EAAA,CAAC,WAAW,CAAA,EAAGC,MAAMsiB,UAAU,CAAA,EAC1DxiB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,CAAA,EAAGC,MAAMuiB,YAAY,CAAA,EAC9DziB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,CAAA,EAAGC,MAAMwiB,aAAa,CAAA,EAChE1iB,oBAAoBC,KAAO,EAAA,CAAC,YAAY,CAAA,EAAGC,MAAMyiB,WAAW,CAAA,CAC9D,CAAEve,OAAOC,OAAO,CAAA;AAClB;ACdO,SAASue,uBACd1iB,KACe,EAAA;EACT,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAET,OAAA,CACLF,oBAAoBC,KAAO,EAAA,CAAC,SAAS,CAAA,EAAGC,MAAMggB,QAAQ,CAAA,EACtDlgB,oBAAoBC,KAAO,EAAA,CAAC,eAAe,cAAc,CAAA,EAAGC,MAAM2iB,SAAS,CAAA,EAC3E7iB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,eAAe,CAAA,EAAGC,MAAM4iB,SAAS,CAAA,EAC3E9iB,oBAAoBC,KAAO,EAAA,CAAC,YAAY,CAAA,EAAGC,MAAM6iB,WAAW,CAAA,EAC5D/iB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,CAAA,EAAGC,MAAM8iB,aAAa,CAAA,EAChEhjB,oBAAoBC,KAAO,EAAA,CAAC,eAAe,CAAA,EAAGC,MAAM+iB,cAAc,CAAA,EAClEjjB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,CAAA,EAAGC,MAAMgjB,YAAY,CAAA,CAChE,CAAE9e,OAAOC,OAAO,CAAA;AAClB;ACdO,SAAS8e,sBAAsBjjB,KAA6D,EAAA;EACjG,MAAM;IAACd,KAAO;IAAAgkB;EAAA,CAAU,GAAA5iB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmjB,OAAA,EAAUzkB,KAAU,IAAA;IAClD,IAAI0kB,YAA2B,GAAA,CAAA;IAE3B,IAAA,OAAO1kB,UAAU,QAAU,EAAA;MACd0kB,YAAA,GAAAtkB,GAAA,CAAIokB,MAAO,CAAAxkB,KAAK,CAAC,CAAA;IAClC;IAEA,IAAIA,UAAU,MAAQ,EAAA;MACL0kB,YAAA,GAAA,QAAA;IACjB;IAEA,OAAO;MAACA;IAAY,CAAA;EAAA,CACrB,CAAA;AACH;ACdA,SAASC,WAAAA,CAAYC,QAAwBtI,KAAe,EAAA;EACnD,OAAA,EAAA,CAAGhc,cAAOM,GAAI,CAAAR,GAAG,EAAE2c,IAAK,CAAA,GAAG,GAAC,GAAI,CAAA,CAAAzc,MAAA,CAAAgc,KAAA,CAAA;AACzC;AAEA,SAASuI,WAAAA,CAAYD,MAA4B,EAAqC;EAAA,IAArCE,YAAA,GAAAtjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAuB,CAAc;EACpF,IAAI,CAACojB,MAAA,EAAe,OAAAvlB,YAAA;EAEpB,MAAM0lB,OAAU,GAAA,QAAA,CAASzkB,MAAI,CAAAF,GAAA,CAAA0kB,YAAY,CAAC,EAAA,mCAAA,CAAA;EAC1C,MAAME,KAAQ,GAAAL,WAAA,CAAYC,MAAO,CAAAI,KAAA,EAAO,gCAAgC,CAAA;EACxE,MAAMC,QAAW,GAAAN,WAAA,CAAYC,MAAO,CAAAK,QAAA,EAAU,mCAAmC,CAAA;EACjF,MAAMC,OAAU,GAAAP,WAAA,CAAYC,MAAO,CAAAM,OAAA,EAAS,kCAAkC,CAAA;EAEvE,OAAA;IAACC,WAAW,EAAG,CAAA7kB,MAAA,CAAAykB,OAAA,EAAO,MAAKzkB,MAAK,CAAA0kB,KAAA,EAAA,IAAA,CAAA,CAAK1kB,MAAQ,CAAA2kB,QAAA,EAAA,IAAA,CAAA,CAAK3kB,MAAS,CAAA4kB,OAAA;GAAA;AACpE;AAEO,SAASE,sBAAsB9jB,KAA6D,EAAA;EACjG,MAAM;IAAC6X,IAAM;IAAA3Y,KAAA;IAAOokB;EAAU,CAAA,GAAAhjB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAAd,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAA+jB,OAAA,EAAU3R,SACxCmR,WAAY,CAAAD,MAAA,CAAOlR,KAAK,CAAG,EAAAyF,IAAA,CAAKyL,OAAOG,OAAO,CAAA,CAChD;AACF;;;;;;AC5BA,IAAA9b,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAIO,SAASoD,eACdhkB,KACwB,EAAA;EAClB,MAAA;IAACikB,OAAS;IAAAC;EAAU,CAAA,GAAAlkB,KAAA;EAC1B,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,0CAAA,EAMP,UAKA,EAAA,uCAAA,EAGgC,sXAX/B,CAAA,CAAA,CAAA,EAAAkD,OAAA,IACFnD,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA,EAIDmD,MACF,IAAApD,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,YAKc,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAKujB,IAAK,CAAAtjB,MAAA,CAAA;AAmB/B;;;;;;AC3CA,IAAA8G,IAAA;AA0BA,MAAMyc,MAAO,GAAAC,MAAA,CAAOC,GAKjB,CAAAphB,mBAAA,EAAqBC,0BAA0B6gB,cAAc,CAAA;AAEhE,MAAMO,sBAAA,GAAuBF,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mHAAA,CAAA,CAAA,CAAA,CAAA;AAajC,MAAM0D,KAAQ,GAAAC,UAAA,CAAW,SAASD,MAAAA,CACvCzkB,OACAuX,GACA,EAAA;EACM,MAAA;IACJoN,MAAA;IACA/K,KAAA;IACAlF,QAAU,EAAAkQ,YAAA;IACVC,KAAQ,GAAA,KAAA;IACR7iB,IAAO,GAAA,CAAA;IACP8iB,YAAA;IACAC,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEJ,IAAI0U,QAAW,GAAAkQ,YAAA;EAEf,IAAIE,iBAAiB,UAAY,EAAA;IACpBpQ,QAAA,GAAA,eAAAO,GAAA,CAACsP;MAAsB7P;IAAS,CAAA,CAAA;EAAA,CACtC,MAAA;IACMA,QAAA,GAAA,eAAAO,GAAA,CAAC;MAAMP;IAAS,CAAA,CAAA;EAC7B;EAGE,sBAAAO,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,OAAA;IACP,GAAGY,SAAA;IACJf,OAAS,EAAAU,MAAA;IACTvhB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BsK,MAAQ,EAAAW,KAAA;IACRnkB,KAAA,EAAO6C,aAAavB,IAAI,CAAA;IACxBrB,OAAS,EAAAokB,MAAA;IACTxN,GAAA;IAEC7C;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AC9EM,MAAMuQ,WAAc,GAAA;EACzB3P,IAAM,EAAA4P,eAAA;EACNC,KAAO,EAAAC,gBAAA;EACPC,QAAU,EAAAC,mBAAA;EACVC,MAAQ,EAAAC,iBAAA;EACRC,QAAU,EAAAC,mBAAA;EACVC,KAAO,EAAAC;AACT,CAAA;AAEA,SAASR,gBAA8BA,CAAA,EAAA;EAC9B,OAAA;IACLhkB,QAAU,EAAA,UAAA;IACVoJ,SAAW,EAAA,YAAA;IACXqb,MAAQ,EAAA,CAAA;IACR3nB,OAAS,EAAA,CAAA;IACTI,UAAY,EAAA,iBAAA;IACZuE,SAAW,EAAA,uCAAA;IACXyE,IAAM,EAAA,CAAA;IACNE,KAAO,EAAA,CAAA;IACPH,GAAK,EAAA,CAAA;IACLE,MAAQ,EAAA,CAAA;IAER,SAAW,EAAA;MACTH,KAAO,EAAA,MAAA;MACP1F,MAAQ,EAAA,KAAA;MACRN,QAAU,EAAA,UAAA;MACViG,GAAK,EAAA,MAAA;MACLC,IAAM,EAAA,KAAA;MACNzE,SAAW,EAAA,kBAAA;MAAA;MAGX,iBAAmB,EAAA;QACjBpB,OAAS,EAAA;MACX;IACF,CAAA;IAEA,oCAAsC,EAAA;MACpCoB,SAAW,EAAA,uCAAA;MACX3E,OAAS,EAAA;IACX,CAAA;IAEA,iCAAmC,EAAA;MACjCA,OAAS,EAAA,CAAA;MACT2E,SAAW,EAAA;IACb,CAAA;IAEA,oCAAsC,EAAA;MACpC3E,OAAS,EAAA,CAAA;MACT2E,SAAW,EAAA;IACb;EAAA,CACF;AACF;AAEO,SAASqiB,gBAAgBllB,KAAqD,EAAA;EAC7E,MAAA;IAAC8lB;EAAU,CAAA,GAAA9lB,KAAA;EACjB,MAAM;IAAC+lB;EAAU,CAAA,GAAAzlB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEjC,OAAA;IACL,mBAAA,EAAqB,qBAAqBf,MAAM,CAAA8mB,MAAA,EAAA,YAAA,CAAA;IAChD,mBAAA,EAAqB,qBAAqB9mB,MAAM,CAAA8mB,MAAA,EAAA,YAAA,CAAA;IAEhDE,eAAiB,EAAA,wBAAA;IACjB5kB,QAAU,EAAA,UAAA;IACVoJ,SAAW,EAAA,YAAA;IACXyb,UAAY,EAAA,MAAA;IACZpC,SAAW,EAAA,gCAAA;IAEX,2BAA6B,EAAA;MAC3B3lB,OAAS,EAAA;IACX,CAAA;IAEA,OAAS,EAAA;MAAA;MAEP,iBAAmB,EAAA;QACjBuD,OAAS,EAAA;MACX;IACF,CAAA;IAAA;IAGA,qBAAuB,EAAA;MACrBykB,mBAAqB,EAAA,SAAA;MACrBC,UAAY,EAAA,MAAA;MACZ5kB,MAAQ,EAAA,CAAA;MACRD,OAAS,EAAA,CAAA;MACT6R,MAAQ,EAAA,CAAA;MACRvS,IAAM,EAAA,SAAA;MACNoa,KAAO,EAAA,SAAA;MACPyI,OAAS,EAAA,MAAA;MAAA;MAGT,SAAW,EAAA;QACTI,WAAW5I,cAAe,CAAA;UAACE,SAAW,EAAA4K,MAAA,CAAO5K;SAAU;MACzD,CAAA;MAEA,6BAA+B,EAAA;QAC7B0I,SAAW,EAAA;MACb;IACF;EAAA,CACF;AACF;AAEO,SAASuC,0BACdpmB,KACa,EAAA;EACb,MAAM;IAAC+lB,MAAQ;IAAA7mB;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAU,KAAA,EAAQsB,IAAS,IAAA;IAC/C,MAAMqkB,aAAaN,MAAO,CAAAjlB,KAAA,CAAMkB,IAAI,CAAK,IAAA+jB,MAAA,CAAOjlB,MAAM,CAAC,CAAA;IAEhD,OAAA;MACLsG,KAAA,EAAOtI,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;MAC1BN,MAAA,EAAQ5C,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;MAC3BohB,YAAc,EAAAtkB,GAAA,CAAIunB,UAAW,CAAArkB,IAAA,GAAO,CAAC,CAAA;MAErC,OAAS,EAAA;QACPoF,KAAA,EAAOtI,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;QAC1BN,MAAA,EAAQ5C,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;QAC3BohB,YAAc,EAAAtkB,GAAA,CAAIunB,UAAW,CAAArkB,IAAA,GAAO,CAAC;MACvC;IAAA,CACF;EAAA,CACD,CAAA;AACH;AAEO,SAAS4jB,gBAA8BA,CAAA,EAAA;EACrC,OAAA;IACLxkB,QAAU,EAAA;EAAA,CACZ;AACF;AAEO,SAASskB,mBAAiCA,CAAA,EAAA;EACxC,OAAA;IACLte,KAAO,EAAA,MAAA;IACP1F,MAAQ,EAAA,MAAA;IACRsZ,KAAO,EAAA,wBAAA;IACPnB,UAAY,EAAA,QAAA;IACZQ,cAAgB,EAAA,QAAA;IAChBiM,aAAe,EAAA,WAAA;IACfjjB,SAAW,EAAA,QAAA;IACX+f,YAAc,EAAA,KAAA;IAEd,iBAAmB,EAAA;MACjB3hB,OAAS,EAAA;IACX;EAAA,CACF;AACF;AAEA,SAAS6jB,mBAAiCA,CAAA,EAAA;EACjC,OAAA;IACLiB,WAAa,EAAA,KAAA;IACbhB,MAAQ,EAAA;EAAA,CACV;AACF;AAEA,SAASC,iBAA+BA,CAAA,EAAA;EAC/B,OAAA;IACLe,WAAa,EAAA,KAAA;IACbhB,MAAQ,EAAA,wBAAA;IAER,2BAA6B,EAAA;MAC3BiB,eAAiB,EAAA,KAAA;MACjBC,aAAe,EAAA;IACjB;EAAA,CACF;AACF;ACxIA,MAAMrC,SAAOC,MAAO,CAAAC,GAAA,CAClB8B,yBAAA,EACAnB,WAAY,CAAA3P,IACd,CAAA;AAEA,MAAMoR,OAAQ,GAAArC,MAAA,CAAOC,GAAI,CAAAW,WAAA,CAAYE,KAAK,CAAA;AAE1C,MAAMwB,QAAW,GAAAtC,MAAA,CAAOuC,OAAQ,CAAA3B,WAAA,CAAYI,QAAQ,CAAA;AAEpD,MAAMwB,MAAS,GAAAxC,MAAA,CAAOuC,OAAQ,CAAA3B,WAAA,CAAYM,MAAM,CAAA;AAEhD,MAAMuB,QAAW,GAAAzC,MAAA,CAAOC,GAAI,CAAAW,WAAA,CAAYQ,QAAQ,CAAA;AAEhD,MAAMsB,aAAA,GAAgB1C,MAAO,CAAAI,KAAK,CAAE,CAAA;EAClCzJ,KAAO,EAAA;AACT,CAAC,CAAA;AAED,MAAMgM,KAAQ,GAAA3C,MAAA,CAAOha,GAAI,CAAA4a,WAAA,CAAYU,KAAK,CAAA;AAOnC,MAAMsB,MAAS,GAAAvC,UAAA,CAAW,SAASuC,OAAAA,CACxCjnB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ2P,0BAAA;IACAC,EAAI,EAAAC,MAAA;IACJpM,KAAQ,GAAA,MAAA;IACRqM,GAAA;IACAC,KAAA;IACA7B,QAAA;IACA8B,gBAAA;IACAC,aAAe,EAAAC,iBAAA;IACfC,gBAAA;IACAC,MAAS,GAAA,QAAA;IACT3lB,MAAM4lB,QAAW,GAAA,CAAA;IACjB,GAAG5C;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA;IAAC+lB;GAAM,GAAItQ,WAAY,EAAA;EAC7B,MAAM0R,EAAK,GAAAU,OAAA,CAAQ5tB,kBAAmB,CAAAmtB,MAAM,IAAIA,MAAS,GAAA,KAAA;EACnD,MAAAplB,IAAA,GAAOuB,aAAaqkB,QAAQ,CAAA;EAG5B,MAAAvB,UAAA,GAAaN,OAAOjlB,KAAM,CAAAkB,IAAA,CAAK,CAAC,CAAC,CAAA,IAAK+jB,MAAO,CAAAjlB,KAAA,CAAM,CAAC,CAAA;EAC1D,MAAMgnB,WAAWzB,UAAW,CAAArkB,IAAA;EAC5B,MAAM+lB,UAAUD,QAAW,GAAA,CAAA;EAE3B,MAAME,YAAYC,KAAM,EAAA;EAClB,MAAA,CAACT,aAAe,EAAAU,gBAAgB,CAAI,GAAA1jB,QAAA,CACxCkjB,oBAAoBD,iBAAqB,IAAA,QAAA,CAC3C;EAEA,MAAM,CAACU,WAAA,EAAaC,cAAc,CAAA,GAAI5jB,SAAkB,KAAK,CAAA;EAE7D,MAAM6jB,UAAU,eAAgB,CAAArpB,MAAA,CAAAgpB,SAAA,CAAA;EAEhCnjB,SAAA,CAAU,MAAM;IACd,IAAI2iB,aAAkB,KAAAC,iBAAA,EAA0B,OAAA,KAAA,CAAA;IAGhD,MAAMa,GAAM,GAAA7Y,qBAAA,CAAsB,MAAMyY,gBAAA,CAAiBT,iBAAiB,CAAC,CAAA;IAEpE,OAAA,MAAMc,qBAAqBD,GAAG,CAAA;EAAA,CACpC,EAAA,CAACd,aAAe,EAAAC,iBAAiB,CAAC,CAAA;EAErC5iB,SAAA,CAAU,MAAM;IACV,IAAAwiB,GAAA,EAAKe,cAAA,CAAe,KAAK,CAAA;EAAA,CAC/B,EAAG,CAACf,GAAG,CAAC,CAAA;EAEF,MAAAmB,gBAAA,GAAmBC,YAAY,MAAM;IACzCL,cAAA,CAAe,IAAI,CAAA;IAEnB,IAAIb,gBAAkB,EAAA;MACHA,gBAAA,CAAA,IAAInnB,KAAM,CAAA,kCAAkC,CAAC,CAAA;IAChE;EAAA,CACF,EAAG,CAACmnB,gBAAgB,CAAC,CAAA;EAErB,MAAMmB,YAAe,GAAAjlB,OAAA,CACnB,MACEzB,IAAA,CAAK1C,GAAI,CAACmhB,CAAM,IAAA;IACd,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEb,OAAA,CAAA;EAAA,CACR,CAAA,EACH,CAACze,IAAI,CAAA,CACP;EAGE,sBAAA2mB,IAAA,CAACvE,MAAA,EAAA;IACC+C,EAAA;IACA,SAAS,EAAA,OAAOA,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA,QAAA;IACP,GAAGnC,SAAA;IACJc,MAAQ,EAAA9K,KAAA;IACRta,KAAO,EAAAsB,IAAA;IACP,YAAY,EAAAslB,KAAA;IACZ,qBAAqB,EAAAE,aAAA;IACrB,aAAa,EAAAG,MAAA;IACbpQ,GAAA;IACA+P,KAAA;IAEA5S,QAAA,EAAA,CAAA,eAACO,GAAA,CAAAyR,OAAA,EAAA;MACChS,QAAC,EAAA,eAAAO,GAAA,CAAA,KAAA,EAAA;QAAI7N,KAAM,EAAA,IAAA;QAAK1F,QAAO,GAAI;QAAAknB,OAAA,EAAQ,UAAW;QAAAnQ,IAAA,EAAK,MACjD;QAAA/D,QAAA,iBAAAO,GAAA,CAAC,MAAA,EAAA;UACCxY,CAAE,EAAA,8FAAA;UACFgc,IAAM,EAAAuC;QAAA;OAEV;IACF,CAAA,CAAA,EAEC,CAACmN,WAAe,IAAAd,GAAA,IACd,eAAAsB,IAAA,CAAA3B,KAAA,EAAA;MAAM4B,OAAS,EAAA,MAAA,CAAO5pB,MAAQ,CAAA8oB,QAAA,EAAA,GAAA,CAAA,CAAI9oB,MAAY,CAAA8oB,QAAA,CAAA;MAAArP,IAAA,EAAK,MAClD;MAAA/D,QAAA,EAAA,CAAA,eAACO,GAAA,CAAA,MAAA,EAAA;QACCP,QAAC,EAAA,eAAAO,GAAA,CAAA,SAAA,EAAA;UAAQ4T,EAAI,EAAAR,OAAA;UAASS,qBAAoB,mBAAoB;UAAA1hB,KAAA,EAAM,GAAI;UAAA1F,MAAA,EAAO,GAC7E;UAAAgT,QAAA,iBAAAO,GAAA,CAAC,OAAA,EAAA;YACC8T,IAAM,EAAA1B,GAAA;YACNjgB,KAAM,EAAA,GAAA;YACN1F,MAAO,EAAA,GAAA;YAEPsnB,OAAS,EAAAR;UAAA;SAEb;MACF,CAAA,CAAA,EAAA,eAEAvT,GAAA,CAAC,QAAO,EAAA;QAAAgU,EAAA,EAAIlB,OAAS;QAAAmB,EAAA,EAAInB,OAAS;QAAAvqB,CAAA,EAAGuqB,OAAS;QAAAtP,IAAA,EAAM,OAAQ,CAAAzZ,MAAA,CAAAqpB,OAAA,EAAO,GAAK;MAAA,CAAA,CAAA,EAEvE,CAACnB,0BACA,IAAA,eAAAjS,GAAA,CAAC0R,QAAA,EAAA;QACCsC,EAAI,EAAAlB,OAAA;QACJmB,EAAI,EAAAnB,OAAA;QACJoB,EAAI,EAAApB,OAAA;QACJqB,EAAI,EAAArB,OAAA;QACJsB,YAAa,EAAA;MAAA,CACf,CAAA,EAAA,eAGFpU,GAAA,CAAC4R,MAAA,EAAA;QACCoC,EAAI,EAAAlB,OAAA;QACJmB,EAAI,EAAAnB,OAAA;QACJoB,EAAI,EAAApB,OAAA;QACJqB,EAAI,EAAArB,OAAA;QACJsB,YAAa,EAAA;MAAA,CACf,CAAA;KACF,CAAA,EAAA,CAGAlB,eAAe,CAACd,GAAA,KAAQ5B,QACxB,mBAAAxQ,GAAA,CAAApa,QAAA,EAAA;MACE6Z,6BAACoS,QACC,EAAA;QAAApS,QAAA,EAAA,eAAAO,GAAA,CAAC8R,aAAc,EAAA;UAAAuC,WAAA,EAAY;UAAOtnB,IAAM,EAAA0mB,YAAA;UAAc3D,QAAO,QAC1D;UAAArQ,QAAA,EAAA+Q;SACH;OACF;IACF,CAAA,CAAA;EAAA,CAAA,CAEJ;AAEJ,CAAC,CAAA;;;;;;ACnMD,IAAA9d,IAAA;AASA,SAAS4hB,kCAAkCvpB,KAA2C,EAAA;EACpF,MAAM;IAAC+lB,MAAQ;IAAA7mB;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAU,KAAA,EAAQsB,IAAS,IAAA;IACzC,MAAAqkB,UAAA,GAAaN,MAAO,CAAAjlB,KAAA,CAAMkB,IAAI,CAAA;IAEpC,IAAI,CAACqkB,UAAA,EAAmB,OAAAtoB,YAAA;IAEjB,OAAA;MACLqlB,YAAc,EAAAtkB,GAAA,CAAIunB,UAAW,CAAArkB,IAAA,GAAO,CAAC,CAAA;MACrCyY,QAAA,EAAU3b,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;MAC7BN,MAAA,EAAQ5C,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI;IAAA,CAC7B;EAAA,CACD,CAAA;AACH;AAEA,SAASwnB,wBAAwBxpB,KAAmB,EAAA;EAClD,MAAM;IAACK;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,oBAAGC,YAWkB,CAAA,CAAA,8UAAA,EAAA,6DAAA,CAAA,CAAA,CAAA,EAAbjiB,GAAI,CAAAuB,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAM7B;AAEA,MAAM+jB,SAAOC,MAAO,CAAAC,GAAA,CAClBiF,iCAAA,EACAC,uBACF,CAAA;AAeO,MAAMC,aAAgB,GAAA/E,UAAA,CAAW,SAAS+E,cAAAA,CAC/CzpB,OACAuX,GACA,EAAA;EACA,MAAM;IAACmS,KAAA;IAAO1nB,IAAM,EAAA4lB,QAAA,GAAW;GAAK,GAAA5nB,KAAA;EAC9B,MAAAgC,IAAA,GAAOuB,aAAaqkB,QAAQ,CAAA;EAElC,MAAM7lB,QAAW,GAAA0B,OAAA,CACf,MACEzB,IAAA,CAAK1C,GAAI,CAACmhB,CAAM,IAAA;IACd,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEb,OAAA,CAAA;EAAA,CACR,CAAA,EACH,CAACze,IAAI,CAAA,CACP;EAEA,0BACGoiB,MAAK,EAAA;IAAA1jB,KAAA,EAAOsB,IAAM;IAAA,SAAA,EAAQ;IAAgBuV,GACzC;IAAA7C,QAAA,EAAA,eAAAO,GAAA,CAACwP,KAAM,EAAA;MAAA0C,EAAA,EAAG;MAAOnlB,IAAM,EAAAD,QAAA;MAAUgjB,MAAO,EAAA,QAAA;MACrCrQ;KACH;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACzFM,SAASiV,uBACdjV,QACoC,EAAA;EACpC,MAAMkV,gBAAgBhqB,KAAM,CAAAC,OAAA,CAAQ6U,QAAQ,CAAI,GAAAA,QAAA,GAAW,CAACA,QAAQ,CAAA;EAEpE,OAAOkV,aAAc,CAAA1lB,MAAA,CAClB+I,QAASrR,cAAU,CAAAA,SAAA,CAAAqR,IAAI,KAAKnR,cAAW,CAAAA,UAAA,CAAAmR,IAAI,CAAK,IAAA,OAAOA,IAAS,KAAA,QAAA,CACnE;AACF;;;;;;ACVA,IAAAtF,IAAA;AAUA,MAAMkiB,cAAc/I,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wIAAA,CAAA,CAAA,CAAA,CAAA;AAYvB,SAAS+I,gBAAmBA,CAAA,EAAA;EACnB,OAAAD,WAAA;AACT;AAEA,SAASE,+BAA+B/pB,KAA2C,EAAA;EACjF,MAAM;IAAC+lB,MAAQ;IAAA7mB;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAU,KAAA,EAAQsB,IAAS,IAAA;IACzC,MAAAqkB,UAAA,GAAaN,MAAO,CAAAjlB,KAAA,CAAMkB,IAAI,CAAA;IAEpC,IAAI,CAACqkB,UAAA,EAAmB,OAAAtoB,YAAA;IAEjB,OAAA;MACL,eAAiB,EAAA;QACfisB,UAAA,EAAYlrB,GAAI,CAAAunB,UAAA,CAAW4D,QAAQ;MACrC;IAAA,CACF;EAAA,CACD,CAAA;AACH;AAEA,MAAM7F,MAAO,GAAAC,MAAA,CAAOC,GAA2B,CAAAyF,8BAAA,EAAgCD,gBAAgB,CAAA;AAgBxF,MAAMI,WAAc,GAAAxF,UAAA,CAAW,SAASwF,YAAAA,CAC7ClqB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAU,EAAAkQ,YAAA;IACVuF,WAAWC,aAAgB,GAAA,CAAA;IAC3BpoB,MAAM4lB,QAAW,GAAA,CAAA;IACjB,GAAG5C;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA0U,QAAA,GAAWiV,sBAAuB,CAAA/E,YAAY,CAAE,CAAA1gB,MAAA,CACnDmmB,KAAU,IAAA,OAAOA,KAAU,KAAA,QAAA,CAC9B;EACA,MAAMF,SAAY,GAAAznB,IAAA,CAAKoZ,GAAI,CAAAsO,aAAA,EAAe,CAAC,CAAA;EACrC,MAAApoB,IAAA,GAAOuB,aAAaqkB,QAAQ,CAAA;EAElC,MAAM1H,MAAMxL,QAAS,CAAAvU,MAAA;EACrB,MAAMmqB,eAAeH,SAAY,GAAA,CAAA;EACjC,MAAMI,aAAarK,GAAM,GAAAoK,YAAA;EACzB,MAAME,kBAAkBD,UAAa,GAAA,CAAA,GAAI7V,SAASnC,KAAM,CAAAgY,UAAA,EAAYrK,GAAG,CAAI,GAAAxL,QAAA;EAGzE,OAAA,eAAAiU,IAAA,CAACvE;IAAK,SAAQ,EAAA,aAAA;IAAe,GAAGY,SAAW;IAAAzN,GAAA;IAAU7W,OAAOsB,IACzD;IAAA0S,QAAA,EAAA,CAAQwL,GAAA,KAAA,CAAA,uBACN,KACC,EAAA;MAAAxL,QAAA,EAAA,eAAAO,GAAA,CAACwU;QAAcC,KAAO,EAAAxJ,GAAA;QAAKle;OAAY;IACzC,CAAA,CAAA,EAGDke,GAAA,KAAQ,CAAK,IAAAqK,UAAA,GAAa,CACzB,IAAA,eAAAtV,GAAA,CAAC,KACC,EAAA;MAAAP,QAAA,EAAA,eAAAO,GAAA,CAACwU,aAAc,EAAA;QAAAC,KAAA,EAAOa,UAAY;QAAAvoB;MAAA,CAAY;IAChD,CAAA,CAAA,EAGDwoB,gBAAgBlrB,GAAI,CAAA,CAAC+qB,KAAO,EAAAI,UAAA,wBAC1B,KAA8B,EAAA;MAAA/V,QAAA,EAAAgW,YAAA,CAAaL,KAAO,EAAA;QAACroB;MAAK,CAAA;IAAA,CAAA,EAA/C2oB,MAAO,CAAAF,UAAU,CAAgC,CAC5D,CAAA;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;AC7DD,MAAMrG,SAAOC,MAAO,CAAAC,GAAA,CAOlB5L,QAAA,EACAiC,aAAA,EACAhC,kBAAA,EACAqF,uBAAA,EACAkE,qBAAA,EACAQ,sBACF,CAAA;AAQO,MAAMkI,GAAM,GAAAlG,UAAA,CAAW,SAASkG,IAAAA,CACrC5qB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ4P,IAAIC,MAAS,GAAA,KAAA;IACbhI,MAAA;IACAG,WAAA;IACAG,SAAA;IACAje,OAAU,GAAA,OAAA;IACVqZ,IAAA;IACApZ,MAAA;IACAH,MAAS,GAAA,CAAA;IACTspB,OAAA;IACAC,OAAA;IACAhoB,SAAA;IACAioB,WAAA;IACAhoB,YAAA;IACAinB,UAAA;IACA3Q,QAAA;IACA/X,OAAU,GAAA,CAAA;IACV0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAC,YAAA;IACAC,aAAA;IACAC,WAAA;IACA0T,GAAA;IACAG,QAAA;IACAG,MAAA;IACA/F,MAAA;IACA,GAAG8L;EACD,CAAA,GAAAhlB,KAAA;EAGF,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAS,EAAA,OAAOgD,MAAW,KAAA,QAAA,GAAWA,MAAS,GAAA,KAAA,CAAA;IAC/C,SAAQ,EAAA,KAAA;IACP,GAAGpC,SAAA;IACJ7F,OAAA,EAAS5b,aAAa6b,MAAM,CAAA;IAC5BE,YAAA,EAAc/b,aAAagc,WAAW,CAAA;IACtCE,UAAA,EAAYlc,aAAamc,SAAS,CAAA;IAClC1G,QAAA,EAAUzV,aAAa9B,OAAO,CAAA;IAC9BoZ,KAAA,EAAOtX,aAAauX,IAAI,CAAA;IACxB3B,OAAA,EAAS5V,aAAa7B,MAAM,CAAA;IAC5BygB,OAAA,EAAS5e,aAAahC,MAAM,CAAA;IAC5B6gB,QAAA,EAAU7e,aAAasnB,OAAO,CAAA;IAC9BxI,QAAA,EAAU9e,aAAaunB,OAAO,CAAA;IAC9BxI,UAAA,EAAY/e,aAAaT,SAAS,CAAA;IAClCyf,YAAA,EAAchf,aAAawnB,WAAW,CAAA;IACtCvI,aAAA,EAAejf,aAAaR,YAAY,CAAA;IACxC0f,WAAA,EAAalf,aAAaymB,UAAU,CAAA;IACpC5Q,SAAA,EAAW7V,aAAa8V,QAAQ,CAAA;IAChC2G,QAAA,EAAUzc,aAAajC,OAAO,CAAA;IAC9BqhB,SAAA,EAAWpf,aAAaynB,QAAQ,CAAA;IAChCpI,SAAA,EAAWrf,aAAa0nB,QAAQ,CAAA;IAChCpI,WAAA,EAAatf,aAAauH,UAAU,CAAA;IACpCgY,aAAA,EAAevf,aAAawH,YAAY,CAAA;IACxCgY,cAAA,EAAgBxf,aAAayH,aAAa,CAAA;IAC1CgY,YAAA,EAAczf,aAAa0H,WAAW,CAAA;IACtCyT,IAAA,EAAMnb,aAAaob,GAAG,CAAA;IACtBE,SAAA,EAAWtb,aAAaub,QAAQ,CAAA;IAChCE,OAAA,EAASzb,aAAa0b,MAAM,CAAA;IAC5BhG,OAAA,EAAS1V,aAAa2V,MAAM,CAAA;IAC5BiO,EAAI,EAAAC,MAAA;IACJ7P,GAAA;IAEC7C,QAAM,EAAA1U,KAAA,CAAA0U;EAAA,CAAA,CACT;AAEJ,CAAC,CAAA;;;;;;AChID,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAIO,SAASsK,cACdlrB,KACwB,EAAA;EAClB,MAAA;IAACikB,OAAS;IAAAC;EAAU,CAAA,GAAAlkB,KAAA;EAC1B,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,oBAAGC,YAMP,CAAA,CAAA,4CAAA,EAAA,UAAA,EAKA,uCAGgC,EAAA,2nBAAA,EA8BM,2YAzCrCkD,OACF,IAAAnD,GAAA,CAAAnZ,IAAA,KAAAA,IAAA,GAAGoZ,YAID,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA,EAAAmD,MAAA,IACFpD,oBAAGC,YAKc,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAKujB,KAAKtjB,MA8BV,EAAAD,IAAA,CAAK2f,KAAKxf,OAAQ,CAAAoqB,IAAA,CAAA;AAkBvC;;;;;;ACxEA,IAAAxjB,IAAA;AA+BA,MAAMyc,SAAOC,MAAO,CAAAC,GAAA,CAClBhhB,kBAAA,EACAH,wBAAA,EACA+nB,aACF,CAAA;AAEA,MAAM3G,sBAAA,GAAuBF,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mHAAA,CAAA,CAAA,CAAA,CAAA;AAajC,MAAMqK,IAAO,GAAA1G,UAAA,CAAW,SAAS0G,KAAAA,CACtCprB,OACAuX,GACA,EAAA;EACM,MAAA;IACJoN,MAAS,GAAA,KAAA;IACT/K,KAAA;IACAlF,QAAU,EAAAkQ,YAAA;IACVC,KAAQ,GAAA,KAAA;IACR7iB,IAAO,GAAA,CAAA;IACP8iB,YAAA;IACAC,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEJ,IAAI0U,QAAW,GAAAkQ,YAAA;EAEf,IAAIE,iBAAiB,UAAY,EAAA;IACpBpQ,QAAA,GAAA,eAAAO,GAAA,CAACsP;MAAsB7P;IAAS,CAAA,CAAA;EAC7C;EAGE,sBAAAO,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,MAAA;IACP,GAAGY,SAAA;IACJf,OAAS,EAAAU,MAAA;IACTvhB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BsK,MAAQ,EAAAW,KAAA;IACRtN,GAAA;IACA7W,KAAA,EAAO6C,aAAavB,IAAI,CAAA;IACxBrB,OAAS,EAAAokB,MAAA;IAETrQ,QAAA,iBAAAO,GAAA,CAAC;MAAMP;IAAS,CAAA;EAAA,CAAA,CAClB;AAEJ,CAAC,CAAA;AClFM,SAAS2W,WAAWrrB,KAAmC,EAAA;EACtD,MAAA;IAACmhB;EAAS,CAAA,GAAAnhB,KAAA;EAET,OAAA;IACL,iBAAA,EAAmB,oBAAoBhB,MAAK,CAAAmiB,KAAA,EAAA,YAAA,CAAA;IAC5C,iBAAA,EAAmB,oBAAoBniB,MAAK,CAAAmiB,KAAA,EAAA,YAAA,CAAA;IAE5C6E,eAAiB,EAAA,sBAAA;IACjBsF,MAAQ,EAAA,SAAA;IAER,iBAAmB,EAAA;MACjB7pB,OAAS,EAAA,cAAA;MACT8pB,aAAe,EAAA;IACjB;EAAA,CACF;AACF;ACIA,MAAMnH,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrB3H,qBAAA,EACAoI,UACF,CAAA;AAOO,MAAMG,KAAQ,GAAA9G,UAAA,CAAW,SAAS8G,MAAAA,CACvCxrB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAA;IACA3S,QAAW,GAAA,CAAA;IAAA;IAEX0pB,IAAM,EAAAC,gBAAA;IACNpqB,OAAU,GAAA,CAAA;IACV4hB,MAAS,GAAA,MAAA;IACTrO,IAAO,GAAA,SAAA;IACP,GAAGmQ;EACD,CAAA,GAAAhlB,KAAA;EAGF,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,OAAA;IACP,GAAGY,SAAA;IACJ7D,KAAO,EAAAtM,IAAA;IACPsO,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;IAC5B5hB,OAAA,EAASiC,aAAajC,OAAO,CAAA;IAC7BiW,GAAA;IAEA7C,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;MAAKppB,IAAM,EAAAD,QAAA;MAAW2S;KAAS;EAAA,CAAA,CAClC;AAEJ,CAAC,CAAA;ACrCD,MAAM0P,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrBjQ,aAAA,EACArB,mBACF,CAAA;AAOO,MAAMqS,IAAO,GAAAjH,UAAA,CAAW,SAASiH,KAAAA,CACtC3rB,OACAuX,GACA,EAAA;EACM,MAAA;IAACqC,KAAO;IAAAuN,EAAA;IAAI5M,SAAY,GAAA,KAAA;IAAOR;IAAKK,OAAS;IAAAH,IAAA;IAAM,GAAG+K;EAAA,CAAa,GAAAhlB,KAAA;EAGvE,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,MAAA;IACP,GAAGY,SAAA;IACJ5hB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BU,UAAA,EAAY/W,aAAagX,SAAS,CAAA;IAClCT,IAAA,EAAMvW,aAAawW,GAAG,CAAA;IACtBI,QAAA,EAAU5W,aAAa6W,OAAO,CAAA;IAC9BJ,KAAA,EAAOzW,aAAa0W,IAAI,CAAA;IACxBqP,WAAa,EAAAnC,EAAA;IACb5P;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;;;;;;ACnDD,IAAA5P,IAAA,EAAAO,IAAA;AAaA,MAAM0jB,WAASC,SAAS,CAAAlkB,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gGAAA,CAAA,CAAA,CAAA,CAAA;AAUxB,MAAMqD,SAAOC,MAAO,CAAA+G,IAAI,CAAX,CAAAljB,IAAA,KAAAA,IAAA,GAAY6Y,uDAEF,gCAAN,CAAA,CAAA,CAAA,EAAA6K,QAAA,CAAA;AASV,MAAME,OAAU,GAAApH,UAAA,CAAW,SAASoH,QAAAA,CACzC9rB,OACAuX,GACA,EAAA;EAEE,OAAA,eAAAtC,GAAA,CAACmP;IAAK,SAAQ,EAAA,SAAA;IAAW,GAAGpkB,KAAO;IAAAuX,GAAA;IACjC7C,QAAC,EAAA,eAAAO,GAAA,CAAA8W,WAAA,EAAA,CAAY,CAAA;EACf,CAAA,CAAA;AAEJ,CAAC,CAAA;ACrCM,SAASC,eACdA,CAAA7qB,IAAA,EACA6Z,KACA,EACW;EAAA,IADXiR,SAAA,GAAA/rB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAY,KACD;EACJ,OAAA;IAAA;IAGL,yBAAyBiB,IAAK,CAAA+qB,QAAA;IAE9B,2BAA2B/qB,IAAK,CAAAga,SAAA;IAEhC,6BAAA,EAA+Bha,KAAKmiB,MAAO,CAAAG,OAAA;IAC3C,2BAAA,EAA6BtiB,KAAKmiB,MAAO,CAAAI,KAAA;IACzC,8BAAA,EAAgCviB,KAAKmiB,MAAO,CAAAK,QAAA;IAC5C,6BAAA,EAA+BxiB,KAAKmiB,MAAO,CAAAM,OAAA;IAAA;IAI3C,wBAAA,EAA0B5I,MAAM2J,MAAO,CAAApD,EAAA;IAEvC,6BAAA,EAA+BvG,KAAM,CAAA+K,MAAA,CAAOoG,IAAK,CAAA3Q,EAAA;IACjD,6BAAA,EAA+BR,KAAM,CAAA+K,MAAA,CAAOoG,IAAK,CAAA5K,EAAA;IACjD,6BAAA,EAA+BvG,KAAM,CAAA+K,MAAA,CAAOqG,IAAK,CAAA5Q,EAAA;IACjD,6BAAA,EAA+BR,KAAM,CAAA+K,MAAA,CAAOqG,IAAK,CAAA7K,EAAA;IACjD,+BAAA,EAAiCvG,KAAM,CAAA+K,MAAA,CAAOsG,MAAO,CAAA7Q,EAAA;IACrD,+BAAA,EAAiCR,KAAM,CAAA+K,MAAA,CAAOsG,MAAO,CAAA9K,EAAA;IACrD,gCAAA,EAAkCvG,KAAM,CAAA+K,MAAA,CAAOuG,OAAQ,CAAA9Q,EAAA;IACvD,gCAAA,EAAkCR,KAAM,CAAA+K,MAAA,CAAOuG,OAAQ,CAAA/K,EAAA;IACvD,4BAAA,EAA8BvG,KAAM,CAAA+K,MAAA,CAAOwG,GAAI,CAAA/Q,EAAA;IAC/C,4BAAA,EAA8BR,KAAM,CAAA+K,MAAA,CAAOwG,GAAI,CAAAhL,EAAA;IAC/C,+BAAA,EAAiCvG,KAAM,CAAA+K,MAAA,CAAOyG,MAAO,CAAAhR,EAAA;IACrD,+BAAA,EAAiCR,KAAM,CAAA+K,MAAA,CAAOyG,MAAO,CAAAjL,EAAA;IACrD,+BAAA,EAAiCvG,KAAM,CAAA+K,MAAA,CAAO0G,MAAO,CAAAjR,EAAA;IACrD,+BAAA,EAAiCR,KAAM,CAAA+K,MAAA,CAAO0G,MAAO,CAAAlL,EAAA;IACrD,8BAAA,EAAgCvG,KAAM,CAAA+K,MAAA,CAAO2G,KAAM,CAAAlR,EAAA;IACnD,8BAAA,EAAgCR,KAAM,CAAA+K,MAAA,CAAO2G,KAAM,CAAAnL,EAAA;IACnD,6BAAA,EAA+BvG,KAAM,CAAA+K,MAAA,CAAO4G,IAAK,CAAAnR,EAAA;IACjD,6BAAA,EAA+BR,KAAM,CAAA+K,MAAA,CAAO4G,IAAK,CAAApL,EAAA;IAEjD,mBAAmBvG,KAAM,CAAAQ,EAAA;IACzB,iBAAA,EAAmByQ,YACf,2BAA4B,CAAAjtB,MAAA,CAAAgc,KAAA,CAAMQ,IAAE,WAAY,CAAA,CAAAxc,MAAA,CAAAgc,KAAA,CAAM6J,KAAM,CAAArJ,EAAA,EAAE,UAC9D,CAAA,GAAA,KAAA,CAAA;IAEJ,uBAAuBR,KAAM,CAAA7H,MAAA;IAE7B,+BAAA,EAAiC6H,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAA7F,EAAA;IACrD,gCAAA,EAAkCR,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAAwL,GAAA;IACtD,+BAAA,EAAiC7R,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAAE,EAAA;IACrD,iCAAA,EAAmCvG,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAAyL,IAAA;IACvD,+BAAA,EAAiC9R,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAvR,EAAA;IACrD,gCAAA,EAAkCR,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAF,GAAA;IACtD,+BAAA,EAAiC7R,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAxL,EAAA;IACrD,iCAAA,EAAmCvG,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAD,IAAA;IACvD,gCAAA,EAAkC9R,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAxR,EAAA;IACvD,iCAAA,EAAmCR,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAH,GAAA;IACxD,gCAAA,EAAkC7R,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAzL,EAAA;IACvD,kCAAA,EAAoCvG,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAF,IAAA;IACzD,+BAAA,EAAiC9R,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAAzR,EAAA;IACrD,gCAAA,EAAkCR,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAAJ,GAAA;IACtD,+BAAA,EAAiC7R,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAA1L,EAAA;IACrD,iCAAA,EAAmCvG,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAAH,IAAA;IACvD,gCAAA,EAAkC9R,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAA1R,EAAA;IACvD,iCAAA,EAAmCR,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAAL,GAAA;IACxD,gCAAA,EAAkC7R,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAA3L,EAAA;IACvD,kCAAA,EAAoCvG,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAAJ,IAAA;IAEzD,sBAAA,EAAwB9R,MAAMmJ,IAAK,CAAA3I,EAAA;IACnC,sBAAA,EAAwBR,MAAMmJ,IAAK,CAAA5C,EAAA;IAEnC,mBAAmBvG,KAAM,CAAAuG,EAAA;IAEzB,qBAAqBvG,KAAM,CAAA8R,IAAA;IAE3B,qBAAA,EAAuB9R,MAAMmS,GAAI,CAAA3R,EAAA;IACjC,yBAAA,EAA2BR,MAAMmS,GAAI,CAAAha,MAAA;IACrC,qBAAA,EAAuB6H,MAAMmS,GAAI,CAAA5L,EAAA;IAEjC,sBAAA,EAAwBvG,MAAMoS,IAAK,CAAA7L,EAAA;IAEnC,uBAAA,EAAyBvG,MAAM6J,KAAM,CAAArJ,EAAA;IACrC,uBAAA,EAAyBR,MAAM6J,KAAM,CAAAtD,EAAA;IAErC,4BAAA,EAA8BvG,MAAMqS,QAAS,CAAAC,IAAA;IAC7C,0BAAA,EAA4BtS,MAAMqS,QAAS,CAAAE,EAAA;IAAA;IAI3C,kBAAA,EAAoBvS,MAAM6J,KAAM,CAAArJ,EAAA;IAChC,mBAAA,EAAqBR,MAAMoS,IAAK,CAAA7L,EAAA;IAChC,8BAA8BvG,KAAM,CAAA7H,MAAA;IACpC,8BAA8B6H,KAAM,CAAA7H;EAAA,CACtC;AACF;;;;;;ACpGA,IAAAxL,IAAA,EAAAO,IAAA;AAUO,SAASslB,iBACdxtB,KACwB,EAAA;EAClB,MAAA;IAACytB;EAAU,CAAA,GAAAztB,KAAA;EACjB,MAAM;IAACpB;EAAS,CAAA,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAA+gB,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,wBACO,6ZAyBd,EAAA,mMAAA,CAAA,CAAA,CAAA,EAzBCniB,+BAAO8uB,MAoBP,EAAAD,MAAA,KAAW,UACb3M,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mGAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAkBP;AAEA,SAAS4M,mBAAgE;EAAA,SAAAC,IAAA,GAAA1tB,SAAA,CAAAC,MAAA,EAA5C0tB,UAA4C,OAAAjuB,KAAA,CAAAguB,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;IAA5CD,UAA4C,CAAAC,IAAA,IAAA5tB,SAAA,CAAA4tB,IAAA;EAAA;EACvE,OAAOD,UAAW,CAAA3pB,MAAA,CAAOC,OAAO,CAAA,CAAEsX,KAAK,GAAG,CAAA;AAC5C;AAKO,SAASsS,kBACd/tB,KACa,EAAA;EAnEf2H,IAAAA,GAAAA;EAoEQ,MAAA;IAACqmB;EAAS,CAAA,GAAAhuB,KAAA;EACV,MAAA;IAAC0tB;IAAQ1S,KAAO,EAAAiT,SAAA;IAAWrvB;GAAS,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC3D,MAAAujB,MAAA,GAAStjB,MAAMguB,KAAU,KAAA,OAAA;EAC/B,MAAMvC,OAAOwC,SAAU,CAAAP,MAAA,CAAOM,KAAK,CAAA,IAAKC,UAAUP,MAAO,CAAArM,OAAA;EACzD,MAAMrG,KAAQ,GAAAyQ,IAAA,CAAKzrB,KAAM,CAAAmhB,KAAK,KAAKsK,IAAK,CAAApK,OAAA;EACxC,MAAMlO,MAAS,GAAA;IACb/L,KAAA,EAAOsmB,OAAOva,MAAO,CAAA/L,KAAA;IACrB4T,KAAO,EAAA;EAAA,CACT;EAEA,MAAMkT,gBAAmB,GAAA,KAAA,CAAA;EAElB,OAAA,CACLlC,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMsG,OAAO,CAAA,EACxC;IACE0E,eAAiB,EAAA,sBAAA;IACjBhL,KAAO,EAAA,sBAAA;IACP6I,SAAA,EAAW9I,qBAAqB5H,MAAM,CAAA;IACtC,qCAAuC,EAAA6Y,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMyG,QAAQ,CAAA;IAChF,+BAAiC,EAAA;MAC/BoC,SAAW,EAAA8J,gBAAA,CACT5S,qBAAqB5H,MAAM,CAAA,EAC3BmQ,SAAS4K,gBAAmB,GAAA,KAAA,CAC9B,CAAA;MACA,SAAW,EAAA;QACTrK,WAAW5I,cAAe,CAAA;UACxB9Z,IAAM,EAAA8sB,SAAA;UACN9a,QAAQ;YAAC/L,KAAA,EAAO,CAAG;YAAA4T,KAAA,EAAOiT,UAAUzS;UAAE,CAAA;UACtCL,WAAWuS,MAAO,CAAAvS;QAAA,CACnB;MACH,CAAA;MACA,6BAA+B,EAAA;QAC7B0I,SAAW,EAAA8J,gBAAA,CACT5S,qBAAqB5H,MAAM,CAAA,EAC3BmQ,SAAS4K,gBAAmB,GAAA,KAAA,CAC9B;MACF,CAAA;MACA,uBAAyB,EAAA;QACvB,SAAW,EAAAlC,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMiH,OAAO,CAAA;QACnD,UAAY,EAAA+J,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMmT,OAAO,CAAA;QACpD,iBAAmB,EAAAnC,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMiH,OAAO;MAC7D,CAAA;MACA,kBAAoB,EAAA+J,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMmT,OAAO;IAC9D;EACF,CAAA,EAAA,CACAxmB,GAAA,GAAA/I,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAO8uB,MAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA/lB,GAAe,CAAA2N,IAAA,CACjB,CAAEpR,OAAOC,OAAO,CAAA;AAClB;;;;;;ACnHA,IAAAwD,IAAA;AAuCA,MAAMyc,MAAO,GAAAC,MAAA,CAAOqJ,MAGlB,CAAAzK,qBAAA,EAAuBuK,kBAAkBO,iBAAiB,CAAA;AAE5D,MAAMK,UAAA,GAAa/J,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gQAAA,CAAA,CAAA,CAAA,CAAA;AAkBtB,MAAMsN,MAAS,GAAA3J,UAAA,CAAW,SAAS2J,OAAAA,CACxCruB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAA;IACA+M,QAAA;IACA1f,QAAW,GAAA,CAAA;IACX+qB,IAAA;IACAwB,SAAA;IACAlU,SAASmU,WAAc,GAAA,QAAA;IACvBC,OAAA;IACA/C,IAAO,GAAA,OAAA;IACPnqB,SAASmtB,WAAc,GAAA,CAAA;IACvBzD,QAAU,EAAA0D,YAAA;IACVzD,QAAU,EAAA0D,YAAA;IACV7jB,UAAY,EAAA8jB,cAAA;IACZ5jB,aAAe,EAAA6jB,iBAAA;IACf5jB,WAAa,EAAA6jB,eAAA;IACb/jB,YAAc,EAAAgkB,gBAAA;IACd7L,QAAQ8L,UAAa,GAAA,CAAA;IACrBC,QAAA;IACA5uB,OAAO6uB,SAAY,GAAA,CAAA;IACnB3O,IAAA;IACAld,SAAA;IACAwR,IAAO,GAAA,SAAA;IACP3a,IAAO,GAAA,QAAA;IACP2qB,KAAQ,GAAA,KAAA;IACRzd,KAAA;IACA,GAAG4d;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA;IAAC0tB;GAAM,GAAIjY,WAAY,EAAA;EAEvB,MAAA2E,OAAA,GAAU7W,aAAagrB,WAAW,CAAA;EAClC,MAAAjtB,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAAzD,QAAA,GAAWznB,aAAamrB,YAAY,CAAA;EACpC,MAAAzD,QAAA,GAAW1nB,aAAaorB,YAAY,CAAA;EACpC,MAAA7jB,UAAA,GAAavH,aAAaqrB,cAAc,CAAA;EACxC,MAAA5jB,aAAA,GAAgBzH,aAAasrB,iBAAiB,CAAA;EAC9C,MAAA5jB,WAAA,GAAc1H,aAAaurB,eAAe,CAAA;EAC1C,MAAA/jB,YAAA,GAAexH,aAAawrB,gBAAgB,CAAA;EAC5C,MAAA7L,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA3uB,KAAA,GAAQkD,aAAa2rB,SAAS,CAAA;EAEpC,MAAMC,QAAW,GAAA1rB,OAAA,CACf,OAAO;IAAA;IAELnC,OAAA;IACA0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAE,aAAA;IACAC,WAAA;IACAF;EAAA,CACF,CAAA,EACA,CAACzJ,OAAS,EAAA0pB,QAAA,EAAUC,UAAUngB,UAAY,EAAAE,aAAA,EAAeC,aAAaF,YAAY,CAAA,CACpF;EAGE,sBAAA4d,IAAA,CAACvE,MAAA,EAAA;IACC,SAAQ,EAAA,QAAA;IACP,GAAGY,SAAA;IACJgJ,KAAO,EAAAvC,IAAA;IACPtI,OAAS,EAAAD,MAAA;IACT/B,KAAO,EAAAtM,IAAA;IACP,eAAA,EAAe1Q,OAAQ,CAAAqqB,OAAA,IAAW/M,QAAQ,CAAA;IAC1C,eAAA,EAAewN,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/BxN,QAAA,EAAUtd,OAAQ,CAAAqqB,OAAA,IAAW/M,QAAQ,CAAA;IACrClK,GAAA;IACArd,IAAA;IACAuzB,MAAQ,EAAArmB,KAAA;IAEPsN,QAAA,EAAA,CAAAvQ,OAAA,CAAQqqB,OAAO,CACd,IAAA,eAAAvZ,GAAA,CAACmZ,UACC,EAAA;MAAA1Z,QAAA,EAAA,eAAAO,GAAA,CAAC6W,UAAQ,CAAA;KACX,CAAA,EAAA,CAGAgB,IAAQ,IAAAvM,IAAA,IAAQ+N,SAChB,KAAA,eAAArZ,GAAA,CAAC2V;MAAIzD,EAAG,EAAA,MAAA;MAAQ,GAAGgI,QAAA;MACjBza,8BAACiX,IAAK,EAAA;QAAAxE,EAAA,EAAG,MAAO;QAAA/M,OAAA;QAAkBL,KAAK1Z,KACpC;QAAAqU,QAAA,EAAA,CACCoY,IAAA,IAAA,eAAAnE,IAAA,CAACyC,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACT;UAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;SACjD,CAAA,EAGDvM,QACE,eAAAtL,GAAA,CAAA2V,GAAA,EAAA;UAAI9P,IAAM,EAAAwT,SAAA,GAAY,IAAI,KACzB,CAAA;UAAA5Z,QAAA,iBAAAO,GAAA,CAACmW,IAAA,EAAA;YACCvG,KAAA;YACAjL,KAAO,EAAAvW,SAAA;YACPrB,IAAM,EAAAD,QAAA;YACN+iB,YAAa,EAAA,UAAA;YACbC,QAAQ2I,MAAO,CAAA4B,UAAA;YAEd5a,QAAA,EAAA6L;UAAA,CAAA;SAEL,CAAA,EAGD+N,SACC,IAAA,eAAA3F,IAAA,CAACyC,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACT;UAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAed,SAAS,CAAK,IAAAA,SAAA,EAC7Br0B,cAAAA,CAAAA,kBAAmB,CAAAq0B,SAAS,CAAK,IAAAe,aAAA,CAAcf,SAAS,CAAA;SAC3D,CAAA;MAAA,CAEJ;IACF,CAAA,CAAA,EAGD5Z,YACE,eAAAO,GAAA,CAAA2V,GAAA,EAAA;MAAIzD,IAAG,MAAQ;MAAA,GAAGgI;MAChBza;KACH,CAAA;EAAA,CAAA,CAEJ;AAEJ,CAAC,CAAA;;;;;;ACrLD,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAOO,SAAS2O,UACdvvB,KACgE,EAAA;EAChE,OAAO,CAACwvB,aAAc,CAAAxvB,KAAK,CAAG,EAAAyvB,cAAA,CAAezvB,KAAK,CAAC,CAAA;AACrD;AAEO,SAASwvB,cAAcxvB,KAA4D,EAAA;EAClF,MAAA;IAAC0vB;EAAc,CAAA,GAAA1vB,KAAA;EACrB,MAAM;IAACK;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,QAAA,EAMP,kdALC,CAAA,CAAA,CAAA,EAAA2O,UAAA,IACF5O,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2BAAA,EAC0B,KAAc,EAAA,+FAAA,CAAA,CAAA,CAAA,EAAtB1gB,KAAM,CAAA,CAAC,CAAO,EAAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAA;AA4B9C;AAEO,SAASovB,eAAezvB,KAA4D,EAAA;EAlD3F2H,IAAAA,GAAAA;EAmDQ,MAAA;IAAC+nB,UAAY;IAAAC;EAAc,CAAA,GAAA3vB,KAAA;EACjC,MAAM;IAAC6X,IAAM;IAAAmD,KAAA;IAAOpc;EAAS,CAAA,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACpD,MAAMoT,SAAS;IAAC/L,KAAA,EAAOyQ,KAAK1E,MAAO,CAAA/L,KAAA;IAAO4T,OAAO;GAA0B;EAE3E,OAAO8F,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,sBAAA,EACsC,WAEH,EAAA,mSAAA,EAagC,8EAKC,EAAA,uDAAA,EAIC,6KAOG,EAAA,2DAAA,EAIA,gHAQ7D,EAAA,6LAAA,EAWwD,oFAKC,EAAA,uDAAA,EAIC,+KAOG,2DAIA,EAAA,gHAAA,EAQ7D,sCAKA,EAAA,MAAA,CAAA,CAAA,CAAA,EAvFH/F,KAAM,CAAA4U,KAAA,GAAQ,MAAS,GAAA,OAAA,EAErC5D,eAAgB,CAAAhR,KAAA,EAAOA,KAAO,EAAA0U,UAAU,CAapC,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,WAAWxO,OAAQ,CAAAI,QAAA,EAAUiO,UAAU,CAAA,EAKlE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,OAAQ,CAAA8M,OAAA,EAASuB,UAAU,CAAA,EAInE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,QAAQ4N,QAAU,EAAAS,UAAU,CAOhE,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,UAAW,CAAAxO,OAAA,CAAQY,SAASyN,UAAU,CAAA,EAInE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,OAAQ,CAAA8M,OAAA,EAASuB,UAAU,CAMzC,EAAAC,UAAA,GAC5B1U,cAAe,CAAA;IAAC9Z,IAAM,EAAA6Z,KAAA;IAAO7H,MAAQ;IAAAgI,SAAA,EAAWtD,IAAK,CAAAsD;GAAU,CAAA,GAC/D,KAWJ,CAAA,EAAA6Q,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,WAAWxO,OAAQ,CAAAI,QAAA,EAAUiO,UAAU,CAAA,EAKlE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,OAAQ,CAAA8M,OAAA,EAASuB,UAAU,CAAA,EAInE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,QAAQ4N,QAAU,EAAAS,UAAU,CAOhE,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,UAAW,CAAAxO,OAAA,CAAQY,OAAS,EAAAyN,UAAU,CAInE,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,UAAW,CAAAxO,OAAA,CAAQ8M,SAASuB,UAAU,CAAA,EAMzCC,UAC5B,GAAA1U,cAAA,CAAe;IAAC9Z,IAAA,EAAM6Z,KAAO;IAAA7H,MAAA;IAAQgI,WAAWtD,IAAK,CAAAsD;EAAA,CAAU,CAAA,GAC/D,KAKRxT,CAAAA,EAAAA,CAAAA,GAAAA,GAAA/I,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAiZ,IAAA,KAAP,gBAAAlQ,GAAa,CAAA2N,IAAA,CAAA;AAEnB;ACtGA,MAAM8O,SAAOC,MAAO,CAAAuG,GAAG,EAKrBhT,qBAAuB,EAAAqL,qBAAA,EAAuBa,uBAAuByL,SAAS,CAAA;AAQzE,MAAMO,IAAO,GAAApL,UAAA,CAAW,SAASoL,KAAAA,CACtC9vB,OACAuX,GACA,EAAA;EACM,MAAA;IACJwY,sBAAsB9D,SAAY,GAAA,KAAA;IAClC+D,sBAAsB7U,SAAY,GAAA,KAAA;IAClCgM,EAAI,EAAAC,MAAA;IACJjU,MAAA;IACAjI,SAAA;IACAE,WAAA;IACAE,YAAA;IACAE,UAAA;IACA2iB,OAAA;IACAjL,MAAS,GAAA,CAAA;IACTvO,MAAA;IACAsa,QAAA;IACA3L,MAAA;IACAzO,MAAMob,QAAW,GAAA,SAAA;IACjB,GAAGjL;EACD,CAAA,GAAAhlB,KAAA;EAEJ,MAAMmnB,EAAK,GAAAltB,cAAA,CAAAA,kBAAA,CAAmBmtB,MAAM,CAAA,GAAIA,MAAS,GAAA,KAAA;EACjD,MAAMxS,YAAYQ,YAAa,EAAA;EAC/B,MAAMP,IAAO,GAAAob,QAAA,KAAa,SAAY,GAAArb,SAAA,CAAUC,IAAO,GAAAob,QAAA;EAIrD,OAAA,eAAAhb,GAAA,CAACI,kBAAmB,EAAA;IAAAV,MAAA;IAAgBE,IAClC;IAAAH,QAAA,EAAA,eAAAO,GAAA,CAACmP,MAAA,EAAA;MACC,SAAS,EAAA,OAAO+C,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;MACvC,eAAavS,SAAU,CAAAD,MAAA;MACvB,SAAQ,EAAA,MAAA;MACR,WAAW,EAAAE,IAAA;MACV,GAAGmQ,SAAA;MACJjN,OAAA,EAASxU,aAAa4P,MAAM,CAAA;MAC5B6E,UAAA,EAAYzU,aAAa2H,SAAS,CAAA;MAClC+M,YAAA,EAAc1U,aAAa6H,WAAW,CAAA;MACtC8M,aAAA,EAAe3U,aAAa+H,YAAY,CAAA;MACxC6M,WAAA,EAAa5U,aAAaiI,UAAU,CAAA;MACpCkkB,UAAY,EAAAzD,SAAA;MACZ0D,UAAY,EAAAxU,SAAA;MACZgI,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;MAC5Ba,OAAA,EAASxgB,aAAa+f,MAAM,CAAA;MAC5BnC,KAAO,EAAAtM,IAAA;MACP,gBAAA,EAAgBoX,YAAY,EAAK,GAAA,KAAA,CAAA;MACjC,cAAA,EAAckC,UAAU,EAAK,GAAA,KAAA,CAAA;MAC7B,eAAA,EAAec,WAAW,EAAK,GAAA,KAAA,CAAA;MAC/B3F,WAAa,EAAAnC,EAAA;MACb5P,GAAA;MACA0X;IAAA,CAEJ;EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC9GD,IAAAtnB,IAAA,EAAAO,IAAA;AAKO,SAASgoB,kBAA6CA,CAAA,EAAA;EAC3D,OAAOpP,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2DAAA,CAAA,CAAA,CAAA,CAAA;AAIZ;AAEO,SAASoP,mBAAmBnwB,KAA2C,EAAA;EAC5E,MAAM;IAACgb,KAAO;IAAAoG,KAAA;IAAO8B;EAAU,CAAA,GAAA5iB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAChD,MAAA;IAACob;EAAS,CAAA,GAAIiG,KAAM,CAAAgP,QAAA;EAE1B,OAAOtP,oBAAGC,YAe4B,CAAA,CAAA,sQAAA,EAAA,kBAAA,EACD,sDAK/B,EAAA,0BAAA,EAC6B,sDAEmB,sUAiBN,EAAA,uBAAA,EAI1C,kBACqC,EAAA,oGAAA,EAKE,sJAKuB,kEAIV,EAAA,uBAAA,EAIpD,kBACsC,EAAA,yEAAA,EAGgB,oBACjB,uGAMrC,EAAA,+DAAA,EAIiD,uBAIjD,EAAA,kBAAA,EACsC,wEAGiB,sEAIN,EAAA,uBAAA,EAIjD,kBACsC,EAAA,+EAAA,EAIiB,kKArF/CjiB,GAAI,CAAAsiB,KAAA,CAAMgP,QAAS,CAAApuB,IAAI,GACxBlD,GAAI,CAAAsiB,KAAA,CAAMgP,QAAS,CAAApuB,IAAI,GAElB+Y,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EAAA,CACrB,CACgB,EAAAtI,GAAA,CAAIokB,MAAO,CAAA,CAAC,CAAC,CAEV,EAAAlI,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,QAAQ9F,EAiBlC,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAC5BxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA;IACnCna,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EACQ4T,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,EAKvB,EAAAP,cAAA,CAAe;IAACE;GAAU,CAAA,EAK1BF,cAAe,CAAA;IAACE,SAAW,EAAA;MAAC/T,KAAO,EAAA,CAAA;MAAGiU,MAAQ,EAAA;IAAE;EAAA,CAAC,CAI3C,EAAAL,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,OAAQ,CAAAnO,MAAA,EAClC4H,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,QAAQuD,KAAM,CAAArJ;EAAA,CAC1C,CACQ,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASF,IAGlBvG,KAAM,CAAAoG,KAAA,CAAMM,OAAQ,CAAAJ,OAAA,CAAQuD,MAAMrJ,EAC7C,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,IAGvBP,cAAe,CAAA;IAC3B9H,MAAQ,EAAA;MAAC/L,KAAO,EAAAga,KAAA,CAAMjO,MAAO,CAAA/L,KAAA;MAAO4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQC,QAAS,CAAAkD,KAAA,CAAMrJ;IAAE,CAAA;IAChFL,SAAW,EAAA;MAAC/T,KAAO,EAAA,CAAA;MAAGiU,QAAQ;IAAC;EAAA,CAChC,CAImB,EAAAL,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASjG,IACnCT,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO;EAAA,CACrC,CACQ,EAAA6H,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASF,IAGlBvG,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAI,QAAA,CAASoD,MAAMrJ,EAInC,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAM,QAAA,CAASnG,IACnCT,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAxO;EACrC,CAAA,CACQ,EAAA6H,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAJ,EAAA,EAIlBvG,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAM,QAAA,CAASkD,KAAM,CAAArJ,EAAA,CAAA;AAU7D;AChHA,MAAM4I,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAI4L,kBAAkB,CAAA;AAC1C,MAAMG,OAAA,GAAQhM,MAAO,CAAAjD,KAAA,CAAM+O,kBAAkB,CAAA;AAOtC,MAAMG,QAAW,GAAA5L,UAAA,CAAW,SAAS4L,SAAAA,CAC1CtwB,OACAuwB,YACA,EAAA;EACM,MAAA;IACJC,OAAA;IACAC,SAAA;IACAhP,QAAA;IACAiP,aAAA;IACAhZ,cAAA;IACAiK,QAAA;IACA/iB,KAAA;IACA,GAAGomB;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC9Y,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC7S,SAAA,CAAU,MAAM;IACd,IAAI0S,IAAIxS,OAAS,EAAA;MAEXwS,GAAA,CAAAxS,OAAA,CAAQ2rB,gBAAgBA,aAAiB,IAAA,KAAA;IAC/C;EAAA,CACC,EAAA,CAACA,aAAe,EAAAnZ,GAAG,CAAC,CAAA;EAEvB,OACG,eAAAoR,IAAA,CAAAvE,MAAA,EAAA;IAAKqM,SAAsB;IAAA,SAAA,EAAQ;IAAW7xB,KAC7C;IAAA8V,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC7C,YAAA,EAAYjK,iBAAiB,EAAK,GAAA,KAAA,CAAA;MACjC,GAAGsN,SAAA;MACJwL,OAAA;MACA/O,UAAUA,QAAY,IAAAE,QAAA;MACtBznB,IAAK,EAAA,UAAA;MACLynB,QAAA;MACApK;IAAA,CACF,CAAA,EAAA,oBACC,MACC,EAAA;MAAA7C,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC0b,aAAc,EAAA,EAAA,CAAA,EAAA,mBACdC,UAAW,EAAA,EAAA,CAAA;KACd,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;ACjED,IAAAjpB,IAAA;AAGA,SAASkpB,2BAAAA,CAAAC,KAAA,EAAuD;EAAA,IAA3B;IAAC/wB;GAA0B,GAAA+wB,KAAA;EACxD,MAAA;IACJ9V,KAAA,EAAO;MAAC+V,MAAA,EAAQ/V;IAAK;EAAA,CACvB,GAAI1a,YAAYP,KAAK,CAAA;EAEd,OAAA;IACL,UAAY,EAAA;MAACib,KAAO,EAAAA,KAAA,CAAMgW;IAAM,CAAA;IAChC,aAAe,EAAA;MAAChW,KAAO,EAAAA,KAAA,CAAMiW;IAAQ,CAAA;IACrC,cAAgB,EAAA;MAACjW,KAAO,EAAAA,KAAA,CAAMkW;IAAS,CAAA;IACvC,aAAe,EAAA;MAAClW,KAAO,EAAAA,KAAA,CAAMmW;IAAS,CAAA;IACtC,WAAa,EAAA;MAACnW,KAAO,EAAAA,KAAA,CAAMoW;IAAO,CAAA;IAClC,WAAa,EAAA;MAACpW,KAAO,EAAAA,KAAA,CAAMqW;IAAO,CAAA;IAClC,SAAW,EAAA;MAACrW,KAAO,EAAAA,KAAA,CAAMsW;IAAK,CAAA;IAC9B,QAAU,EAAA;MAACtW,KAAO,EAAAA,KAAA,CAAMuW;IAAI,CAAA;IAC5B,SAAW,EAAA;MAACvW,KAAO,EAAAA,KAAA,CAAMwW;IAAK,CAAA;IAC9B,cAAgB,EAAA;MAACxW,KAAO,EAAAA,KAAA,CAAMyV;IAAS,CAAA;IACvC,WAAa,EAAA;MAACzV,KAAO,EAAAA,KAAA,CAAMyW;IAAO,CAAA;IAClC,YAAc,EAAA;MAACzW,KAAO,EAAAA,KAAA,CAAM0W;IAAQ,CAAA;IACpC,WAAa,EAAA;MAAC1W,KAAO,EAAAA,KAAA,CAAM2W;IAAO,CAAA;IAClC,WAAa,EAAA;MAAC3W,KAAO,EAAAA,KAAA,CAAM4W;IAAO,CAAA;IAClC,UAAY,EAAA;MAAC5W,KAAO,EAAAA,KAAA,CAAM6W;IAAM,CAAA;IAChC,YAAc,EAAA;MAAC7W,KAAO,EAAAA,KAAA,CAAM8W;IAAQ,CAAA;IACpC,WAAa,EAAA;MAAC9W,KAAO,EAAAA,KAAA,CAAM+W;IAAO,CAAA;IAClC,MAAQ,EAAA;MAAC/W,KAAO,EAAAA,KAAA,CAAM6N;IAAE,CAAA;IACxB,aAAe,EAAA;MAAC7N,KAAO,EAAAA,KAAA,CAAMgX;IAAS,CAAA;IACtC,YAAc,EAAA;MAAChX,KAAO,EAAAA,KAAA,CAAMiX;IAAQ,CAAA;IACpC,WAAa,EAAA;MAACjX,KAAO,EAAAA,KAAA,CAAMkX;IAAO,CAAA;IAClC,UAAY,EAAA;MAAClX,KAAO,EAAAA,KAAA,CAAMmX;IAAM,CAAA;IAChC,YAAc,EAAA;MAACnX,KAAO,EAAAA,KAAA,CAAMoX;IAAQ,CAAA;IACpC,UAAY,EAAA;MAACpX,KAAO,EAAAA,KAAA,CAAMqX;IAAM,CAAA;IAChC,YAAc,EAAA;MAACrX,KAAO,EAAAA,KAAA,CAAMsX;IAAQ,CAAA;IACpC,gBAAkB,EAAA;MAACtX,KAAO,EAAAA,KAAA,CAAMuX;IAAW,CAAA;IAC3C,kBAAoB,EAAA;MAACvX,KAAO,EAAAA,KAAA,CAAMwX;IAAa,CAAA;IAC/C,eAAiB,EAAA;MAACxX,KAAO,EAAAA,KAAA,CAAMyX;IAAW,CAAA;IAC1C,SAAW,EAAA;MAACzX,KAAO,EAAAA,KAAA,CAAM0X;IAAK,CAAA;IAC9B,YAAc,EAAA;MAAC1X,KAAO,EAAAA,KAAA,CAAM2X;IAAQ,CAAA;IACpC,UAAY,EAAA;MAAC3X,KAAO,EAAAA,KAAA,CAAM4X;IAAM,CAAA;IAChC,UAAY,EAAA;MAAC5X,KAAO,EAAAA,KAAA,CAAM6X;IAAM,CAAA;IAChC,OAAS,EAAA;MAAC7X,KAAO,EAAAA,KAAA,CAAM8X;IAAG,CAAA;IAC1B,QAAU,EAAA;MAAC9X,KAAO,EAAAA,KAAA,CAAM+X;IAAI,CAAA;IAC5B,OAAS,EAAA;MAAC/X,KAAO,EAAAA,KAAA,CAAMgY;IAAG,CAAA;IAC1B,YAAc,EAAA;MAAChY,KAAO,EAAAA,KAAA,CAAMiY;IAAQ;EAAA,CACtC;AACF;AAEO,SAASC,aAAwCA,CAAA,EAAA;EAC/C,OAAApS,GAAA,CAAAnZ,IAAA,KAAAA,IAAA,GAAGoZ,8IAOyB,+XAA3B,CAAA,CAAA,CAAA,EAAA8P,2BAAA,CAAA;AAoBV;ACzDA,MAAMzM,MAAO,GAAAC,MAAA,CAAO8O,GAA8B,CAAAD,aAAA,EAAelwB,uBAAuB,CAAA;AAKjF,MAAMowB,IAAO,GAAA1O,UAAA,CAAW,SAAS0O,KAAAA,CACtCpzB,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C;IAAU2e,QAAU,EAAAC,YAAA;IAActxB,OAAO,CAAG;IAAA+iB,MAAA;IAAQ,GAAGC;EAAa,CAAA,GAAAhlB,KAAA;EAC3E,MAAMqzB,QAAW,GAAA,OAAOC,YAAiB,KAAA,QAAA,GAAWA,YAAe,GAAA,KAAA,CAAA;EACnE,MAAMC,UAAa,GAAAF,QAAA,GAAWG,SAAU,CAAAC,WAAA,CAAYJ,QAAe,CAAI,GAAA,KAAA;EAEvE,OAAA,eACG1K,IAAA,CAAAvE,MAAA,EAAA;IAAK,SAAQ,EAAA,MAAA;IAAQ,GAAGY,SAAA;IAAWtkB,KAAO,EAAA6C,YAAA,CAAavB,IAAI,CAAA;IAAGrB,OAAS,EAAAokB,MAAA;IAAQxN,GAC7E;IAAA7C,QAAA,EAAA,CAAA,EAAE2e,QAAY,IAAAE,UAAA,CAAA,IAAA,eAAgBte,GAAA,CAAA,MAAA,EAAA;MAAMP;KAAS,CAAA,EAC7C2e,QAAA,IAAYE,UAAc,IAAA,eAAAte,GAAA,CAACue,SAAU,EAAA;MAAAE,MAAA,EAAM;MAACL,QAAoB;MAAA30B,KAAA,EAAOisB,MAAO,CAAAjW,QAAQ;IAAG,CAAA,CAAA;EAC5F,CAAA,CAAA;AAEJ,CAAC,CAAA;AClCD,MAAM0D,YAAwB,GAAA;EAC5BhR,KAAO,EAAA,MAAA;EACP7F,MAAQ,EAAA;AACV,CAAA;AAEO,SAASoyB,kBAAgCA,CAAA,EAAA;EACvC,OAAAvb,YAAA;AACT;AAEO,SAASwb,8BACd5zB,KACa,EAAA;EACb,MAAM;IAAC6zB,SAAW;IAAA30B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAElD,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAytB,MAAA,EAAS/tB,GAAS,KAAA;IAChDo0B,UAAUp0B,GAAQ,KAAA,MAAA,GAAS,SAASZ,GAAI,CAAA+0B,SAAA,CAAUn0B,GAAG,CAAC;EACtD,CAAA,CAAA,CAAA;AACJ;ACRA,MAAM0kB,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrB+I,kBAAA,EACAC,6BACF,CAAA;AAOO,MAAMG,SAAY,GAAArP,UAAA,CAAW,SAASqP,UAAAA,CAC3C/zB,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAI;IAAA/f,KAAA,GAAQ,CAAG;IAAA,GAAG4d;EAAa,CAAA,GAAAhlB,KAAA;EAGpC,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,WAAA;IACP,GAAGY,SAAA;IACJyI,MAAA,EAAQlqB,aAAa6D,KAAK,CAAA;IAC1BkiB,WAAa,EAAAnC,EAAA;IACb5P;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;AC1BD,MAAM6M,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAA4B3O,mBAAmB,CAAA;AAO/D,MAAM+X,IAAO,GAAAtP,UAAA,CAAW,SAASsP,KAAAA,CACtCh0B,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAA;IAAIrK,QAAU;IAAAG,QAAA;IAAUN,QAAU;IAAAS,OAAA;IAASrD,GAAK;IAAA4D,IAAA;IAAMG,IAAM;IAAAP,IAAA;IAAM7I,QAAU;IAAA,GAAGsQ;GACpF,GAAAhlB,KAAA;EAGA,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAS,EAAA,OAAO+C,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA,MAAA;IACP,GAAGnC,SAAA;IACJnI,SAAA,EAAWtZ,aAAauZ,QAAQ,CAAA;IAChCE,SAAA,EAAWzZ,aAAa0Z,QAAQ,CAAA;IAChCP,SAAA,EAAWnZ,aAAaoZ,QAAQ,CAAA;IAChCQ,QAAA,EAAU5Z,aAAa6Z,OAAO,CAAA;IAC9BtD,IAAA,EAAMvW,aAAawW,GAAG,CAAA;IACtB2D,KAAA,EAAOna,aAAaoa,IAAI,CAAA;IACxBE,KAAA,EAAOta,aAAaua,IAAI,CAAA;IACxBR,KAAA,EAAO/Z,aAAaga,IAAI,CAAA;IACxB+L,WAAa,EAAAnC,EAAA;IACb5P,GAAA;IAEC7C;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;AC7CD,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAKO,SAASqT,iBAAiBj0B,KAA+D,EAAA;EACxF,MAAA;IAACikB,OAAS;IAAAC;EAAU,CAAA,GAAAlkB,KAAA;EAC1B,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,QAAA,EAIP,UAKA,EAAA,uCAAA,EAGgC,2vBAX/B,CAAA,CAAA,CAAA,EAAAkD,OAAA,IACFnD,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA,EAIDmD,MACF,IAAApD,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,YAKc,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAKujB,IAAK,CAAAtjB,MAAA,CAAA;AAqC/B;;;;;;AC1DA,IAAA8G,IAAA;AAgCA,MAAMyc,MAAO,GAAAC,MAAA,CAAOC,GAElB,CAAA2P,gBAAA,EAAkB9wB,0BAA0BF,qBAAqB,CAAA;AAEnE,MAAMshB,oBAAA,GAAuBF,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mHAAA,CAAA,CAAA,CAAA,CAAA;AAajC,MAAMmT,OAAU,GAAAxP,UAAA,CAAW,SAASwP,QAAAA,CACzCl0B,OACAuX,GACA,EAAA;EACM,MAAA;IACJoN,MAAS,GAAA,KAAA;IACT/K,KAAA;IACAlF,QAAU,EAAAkQ,YAAA;IACVC,KAAQ,GAAA,KAAA;IACR7iB,IAAO,GAAA,CAAA;IACP8iB,YAAA;IACAC,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEJ,IAAI0U,QAAW,GAAAkQ,YAAA;EAEf,IAAIE,iBAAiB,UAAY,EAAA;IACpBpQ,QAAA,GAAA,eAAAO,GAAA,CAACsP;MAAsB7P;IAAS,CAAA,CAAA;EAC7C;EAGE,sBAAAO,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAGY,SAAA;IACJf,OAAS,EAAAU,MAAA;IACTvhB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BsK,MAAQ,EAAAW,KAAA;IACRnkB,KAAA,EAAO6C,aAAavB,IAAI,CAAA;IACxBrB,OAAS,EAAAokB,MAAA;IACTxN,GAAA;IAEA7C,QAAA,iBAAAO,GAAA,CAAC;MAAMP;IAAS,CAAA;EAAA,CAAA,CAClB;AAEJ,CAAC,CAAA;AChFM,SAASyf,eAA6BA,CAAA,EAAA;EACpC,OAAA;IACL9xB,UAAY,EAAA,CAAA;IAEZ,kBAAoB,EAAA;MAClBZ,OAAS,EAAA;IACX,CAAA;IAEA,SAAW,EAAA;MACTA,OAAS,EAAA,cAAA;MACT8pB,aAAe,EAAA;IACjB;EAAA,CACF;AACF;AAEO,SAAS6I,iBAAiBp0B,KAAkE,EAAA;EACjG,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAigB,MAAA,EAAS1f,UAAe,IAAA;IAChD,MAAA6f,MAAA,GAASthB,GAAI,CAAAyB,UAAA,KAAe,GAAM,GAAAF,KAAA,CAAM,CAAC,CAAI,GAAA,CAAA,GAAIA,KAAM,CAAAE,UAAU,CAAC,CAAA;IAEjE,OAAA;MACLgB,MAAA,EAAQ,GAAI,CAAAvC,MAAA,CAAAohB,MAAA,EAAM,QAAS,CAAA,CAAAphB,MAAA,CAAAohB,MAAA,CAAA;MAC3B,WAAW;QAAC9e,OAAA,EAAS,EAAG,CAAAtC,MAAA,CAAAohB,MAAA,EAAM,SAAQphB,MAAQ,CAAAohB,MAAA;MAAA;IAAA,CAChD;EAAA,CACD,CAAA;AACH;ACdA,MAAMgE,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAAmCuJ,iBAAiBC,gBAAgB,CAAA;AAOpF,MAAMC,MAAS,GAAA3P,UAAA,CAAW,SAAS2P,OAAAA,CACxCr0B,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAI;IAAAzS,QAAA,EAAUkQ;IAAcvkB,KAAO;IAAA,GAAG2kB;EAAa,CAAA,GAAAhlB,KAAA;EAE1D,MAAM0U,QAAW,GAAAjR,OAAA,CACf,MACEkmB,sBAAA,CAAuB/E,YAAY,CAAA,CAChC1gB,OAAOC,OAAO,CAAA,CACd7E,GAAI,CAAA,CAAC+qB,OAAO3W,GAAQ,KAAA,eAAAuB,GAAA,CAAC,KAAe,EAAA;IAAAP,QAAA,EAAA2V;EAAA,CAAA,EAAN3W,GAAY,CAAM,CAAA,EACrD,CAACkR,YAAY,CAAA,CACf;EAGE,sBAAA3P,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,QAAA;IACP,GAAGY,SAAA;IACJ/E,MAAA,EAAQ1c,aAAalD,KAAK,CAAA;IAC1BipB,WAAa,EAAAnC,EAAA;IAEb5P,GAAA;IAEC7C;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;ACjDD,IAAA/M,IAAA;AAkBA,SAAS2sB,QAAWA,CAAA,EAAA;EAClB,OAAOxT,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gXAAA,CAAA,CAAA,CAAA,CAAA;AAeZ;AAEA,MAAMqD,MAAO,GAAAC,MAAA,CAAO8I,GAAgC,CAAAlK,qBAAA,EAAuBqR,QAAQ,CAAA;AAO5E,MAAMC,GAAM,GAAA7P,UAAA,CAAW,SAAS6P,IAAAA,CACrCv0B,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C,QAAU;IAAA3S,QAAA,GAAW,CAAG;IAAAT,OAAA,GAAU;IAAG4hB,MAAS,GAAA,CAAA;IAAG,GAAG8B;EAAA,CAAa,GAAAhlB,KAAA;EAGtE,OAAA,eAAAiV,GAAA,CAACmP,MAAK,EAAA;IAAA,SAAA,EAAQ,KAAO;IAAA,GAAGY,SAAW;IAAA7B,OAAA,EAAS5f,YAAa,CAAA2f,MAAM,CAAG;IAAA3L,GAAA;IAChE7C,QAAC,EAAA,eAAAO,GAAA,CAAA2V,GAAA,EAAA;MAAIzD,IAAG,MAAO;MAAA7lB,OAAA;MACboT,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;QAAKjE,EAAG,EAAA,MAAA;QAAOnlB,IAAM,EAAAD,QAAA;QAAUgjB,MAAO,EAAA,UAAA;QACpCrQ;MACH,CAAA;IAAA,CACF;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;AC/CM,MAAM8f,MAAqB,GAAA;EAChCvjB,IAAM,EAAA,mBAAA;EACNwjB,EAAGA,CAAAC,KAAA,EAAoC;IAAA,IAApC;MAACC,cAAgB;MAAAC,SAAA;MAAWC;KAAQ,GAAAH,KAAA;IAbzC,IAAA/sB,EAAA,EAAAO,EAAA;IAcI,MAAM,CAAC4sB,IAAI,CAAI,GAAAF,SAAA,CAAUG,MAAM,GAAG,CAAA;IAE5B,MAAAC,aAAA,GAAgBH,MAAMI,QAAS,CAAA7tB,KAAA;IAC/B,MAAA8tB,cAAA,GAAiBL,MAAMI,QAAS,CAAAvzB,MAAA;IAEtC,MAAMyzB,MAAS,GAAA,CAAA,CAAAxtB,EAAA,GAAAgtB,cAAA,CAAeS,KAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAztB,EAAA,CAAsBT,CAAK,KAAA,CAAA;IAC1C,MAAMmuB,MAAS,GAAA,CAAA,CAAAntB,EAAA,GAAAysB,cAAA,CAAeS,KAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAltB,EAAA,CAAsBf,CAAK,KAAA,CAAA;IAEtC,IAAA6tB,aAAA,IAAiB,CAAK,IAAAE,cAAA,IAAkB,CAAG,EAAA;MAC7C,OAAO,EAAC;IACV;IAEA,MAAMI,sBAAsB,CAAC,QAAA,EAAU,KAAK,CAAA,CAAErwB,SAAS6vB,IAAI,CAAA;IAE3D,MAAM;MAACS,OAAA;MAASC;IAAO,CAAA,GAAwCF,mBAC3D,GAAA;MACEC,SAASE,KAAM,CAAA,GAAA,GAAMN,MAAS,GAAAH,aAAA,EAAe,GAAG,CAAC,CAAA;MACjDQ,OAAA,EAASV,IAAS,KAAA,QAAA,GAAW,CAAI,GAAA;IAAA,CAEnC,GAAA;MACES,OAAA,EAAST,IAAS,KAAA,MAAA,GAAS,CAAI,GAAA,CAAA;MAC/BU,SAASC,KAAM,CAAA,GAAA,GAAMJ,MAAS,GAAAH,cAAA,EAAgB,GAAG,CAAC;IAAA,CACpD;IAEG,OAAA;MACLQ,IAAA,EAAM;QAACH,OAAA;QAASC;MAAO;IAAA,CACzB;EACF;AACF,CAAA;AAEA,SAASC,KAAAA,CAAME,GAAa,EAAA9Z,GAAA,EAAaC,GAAa,EAAA;EACpD,OAAOpZ,KAAKmZ,GAAI,CAAAnZ,IAAA,CAAKoZ,IAAI6Z,GAAK,EAAA9Z,GAAG,GAAGC,GAAG,CAAA;AACzC;ACxBA,SAAS8Z,iBAAAA,CAAkBC,WAAoB,EAAAC,WAAA,EAAoBC,MAAgB,EAAA;EAC3E,MAAA3uB,KAAA,GAAQ0uB,WAAY,CAAA5uB,CAAA,GAAI2uB,WAAY,CAAA3uB,CAAA;EACpC,MAAAxF,MAAA,GAASo0B,WAAY,CAAA3uB,CAAA,GAAI0uB,WAAY,CAAA1uB,CAAA;EAE3C,MAAM8iB,WAAWvnB,IAAK,CAAAszB,IAAA,CAAK5uB,KAAQ,GAAAA,KAAA,GAAQ1F,SAASA,MAAM,CAAA;EAEnD,OAAAu0B,qBAAA,CAAsBJ,aAAaC,WAAa,EAAApzB,IAAA,CAAKmZ,IAAI,CAAG,EAAAka,MAAA,GAAS9L,QAAQ,CAAC,CAAA;AACvF;AAEA,SAASgM,qBAAAA,CAAsBJ,WAAoB,EAAAC,WAAA,EAAoBI,QAAyB,EAAA;EACvF,OAAA;IACLhvB,GAAG2uB,WAAY,CAAA3uB,CAAA,GAAA,CAAK4uB,WAAY,CAAA5uB,CAAA,GAAI2uB,YAAY3uB,CAAK,IAAAgvB,QAAA;IACrD/uB,GAAG0uB,WAAY,CAAA1uB,CAAA,GAAA,CAAK2uB,WAAY,CAAA3uB,CAAA,GAAI0uB,YAAY1uB,CAAK,IAAA+uB;EAAA,CACvD;AACF;AAEO,SAASC,mBAAmBC,MAAwB,EAAA;EACzD,MAAMlW,MAAMkW,MAAO,CAAAj2B,MAAA;EAEnB,MAAMk2B,OAAc,EAAC;EAErB,KAAA,IAASzkB,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;IACzB,MAAA0kB,KAAA,GAAQF,OAAOxkB,CAAC,CAAA;IAChB,MAAA2kB,SAAA,GAAYH,MAAO,CAAAxkB,CAAA,GAAI,CAAC,CAAA;IACxB,MAAA4kB,SAAA,GAAYJ,MAAO,CAAAxkB,CAAA,GAAI,CAAC,CAAA;IAE1B,IAAA2kB,SAAA,IAAaD,MAAMpT,MAAQ,EAAA;MAC7B,MAAMuT,UAAa,GAAAb,iBAAA,CAAkBU,KAAO,EAAAC,SAAA,EAAWD,MAAMpT,MAAM,CAAA;MACnE,MAAMwT,QAAW,GAAAd,iBAAA,CAAkBU,KAAO,EAAAE,SAAA,EAAWF,MAAMpT,MAAM,CAAA;MACjE,MAAMyT,YAAe,GAAAV,qBAAA,CAAsBQ,UAAY,EAAAH,KAAA,EAAO,GAAG,CAAA;MACjE,MAAMM,UAAa,GAAAX,qBAAA,CAAsBK,KAAO,EAAAI,QAAA,EAAU,GAAG,CAAA;MAE7DL,IAAA,CAAKpyB,IAAK,CAAA;QACR/J,IAAM,EAAA,OAAA;QACN,GAAGu8B;MAAA,CACJ,CAAA;MAEDJ,IAAA,CAAKpyB,IAAK,CAAA;QACR/J,IAAM,EAAA,OAAA;QACNw8B,QAAA;QACAC,YAAA;QACAC;MAAA,CACD,CAAA;IAAA,CACI,MAAA;MACLP,IAAA,CAAKpyB,IAAK,CAAA;QACR/J,IAAM,EAAA,OAAA;QACN,GAAGo8B;MAAA,CACJ,CAAA;IACH;EACF;EAEO,OAAAD,IAAA;AACT;AAEO,SAASQ,gBAAgBR,IAAqB,EAAA;EACnD,OAAOA,IACJ,CAAA/2B,GAAA,CAAI,CAACrC,CAAA,EAAGyW,GAAQ,KAAA;IACX,IAAAzW,CAAA,CAAE/C,SAAS,OAAS,EAAA;MACf,OAAA,EAAA,CAAG8E,eAAQ,CAAI,GAAA,GAAA,GAAM,KAAG,GAAI,CAAA,CAAAA,MAAA,CAAA/B,CAAA,CAAEiK,CAAC,EAAA,GAAA,CAAA,CAAIlI,MAAE,CAAA/B,CAAA,CAAAkK,CAAA,CAAA;IAC9C;IAEI,IAAAlK,CAAA,CAAE/C,SAAS,OAAS,EAAA;MACf,OAAA,IAAA,CAAK8E,SAAE23B,YAAa,CAAAzvB,CAAA,EAAC,KAAIlI,MAAE,CAAA/B,CAAA,CAAA05B,YAAA,CAAaxvB,CAAC,EAAA,GAAA,CAAA,CAAInI,MAAE,CAAA/B,CAAA,CAAA25B,UAAA,CAAW1vB,GAAC,GAAI,CAAA,CAAAlI,MAAA,CAAA/B,CAAA,CAAE25B,WAAWzvB,CAAC,EAAA,GAAA,CAAA,CAAInI,SAAE03B,QAAS,CAAAxvB,CAAA,EAAC,GAAI,CAAA,CAAAlI,MAAA,CAAA/B,CAAA,CAAEy5B,QAAS,CAAAvvB,CAAA,CAAA;IACrH;IAEO,OAAA,EAAA;EAAA,CACR,CACA,CAAAsU,IAAA,CAAK,GAAG,CAAA;AACb;;;;;;AC1FA,IAAA9T,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAKA,MAAMwD,SAAOC,MAAO,CAAAC,GAAA,CAClBwS,KAAA;EAAA,IAAC;IAACC,EAAI,EAAAC;;SAAOlW,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wCAAA,EAEJ,mBACC,EAAA,+IAAA,EASgB,KAAW,EAAA,kEAAA,EAIxB,+HAQF,iIAQC,EAAA,kIAAA,EAQF,gFAtCF,CAAA,CAAA,CAAA,EAAAiW,CAAA,EACCA,CASY,EAAAA,CAAA,GAAI,GAAOA,CAAI,GAAA,CAAA,EAIxBA,CAQF,EAAAA,CAAA,EAQCA,CAQF,EAAAA,CAAA,CAAA;AAAA,CAOd,CAAA;AAEA,MAAMC,UAAA,GAAa5S,MAAO,CAAA6S,IAAA,CAAPhvB,IAAW,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,iDAAA,CAAA,CAAA,CAAA,CAAA;AAI9B,MAAMoW,SAAA,GAAY9S,MAAO,CAAA6S,IAAA,CAAPtW,IAAW,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,mCAAA,CAAA,CAAA,CAAA,CAAA;AAKtB,MAAM2F,KAAQ,GAAAhC,UAAA,CAAW,SAASgC,MAAAA,CACvC1mB,OAIAuX,GACc,EAAA;EACR,MAAA;IAACnQ,OAAO4vB,CAAG;IAAAt1B,MAAA,EAAQ7E;IAAGqmB,MAAS,GAAA,CAAA;IAAG,GAAG8B;EAAa,CAAA,GAAAhlB,KAAA;EAClD,MAAA;IAAC6X;GAAI,GAAIpC,WAAY,EAAA;EACrB,MAAA8Q,WAAA,GAAc1O,KAAKyL,MAAO,CAAAG,OAAA;EAEhC,MAAM2T,SAASJ,CAAI,GAAA,CAAA;EAEnB,MAAMZ,MAAkB,GAAA,CACtB;IACElvB,CAAG,EAAA,CAAA;IACHC,CAAG,EAAA;EACL,CAAA,EACA;IACED,CAAG,EAAAgc,MAAA;IACH/b,CAAG,EAAA,CAAA;IACH+b;EACF,CAAA,EACA;IACEhc,CAAG,EAAAkwB,MAAA;IACHjwB,GAAGtK,CAAI,GAAA,CAAA;IACPqmB;EACF,CAAA,EACA;IACEhc,GAAG8vB,CAAI,GAAA9T,MAAA;IACP/b,CAAG,EAAA,CAAA;IACH+b;EACF,CAAA,EACA;IACEhc,CAAG,EAAA8vB,CAAA;IACH7vB,CAAG,EAAA;EACL,CAAA,CACF;EAEM,MAAAkvB,IAAA,GAAOF,mBAAmBC,MAAM,CAAA;EAChC,MAAAc,IAAA,GAAOL,gBAAgBR,IAAI,CAAA;EAEjC,MAAMgB,aAAa,EAAG,CAAAr4B,MAAA,CAAAk4B,IAAA,CAAA;EACtB,MAAMI,QAAW,GAAA,EAAA,CAAGt4B,MAAI,CAAAk4B,IAAA,EAAA,KAAA,CAAA,CAAMl4B,MAAC,CAAAg4B,CAAA,EAAA,cAAA,CAAA;EAE/B,OAAA,mBACG5S,MAAM,EAAA;IAAA,GAAGY,SAAW;IAAA+R,EAAA,EAAIC;IAAGzf,GAC1B;IAAA7C,QAAA,iBAAAiU,IAAA,CAAC,KAAI,EAAA;MAAAvhB,KAAA,EAAO4vB;MAAGt1B,MAAQ,EAAAs1B,CAAA;MAAGpO,SAAS,MAAO,CAAA5pB,MAAA,CAAAg4B,CAAA,EAAC,KAAIh4B,MAC7C,CAAAg4B,CAAA,CAAA;MAAAtiB,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC,MAAK,EAAA;QAAA4T,EAAA,EAAG,aACP;QAAAnU,QAAA,iBAAAO,GAAA,CAAC;UAAK/N,CAAG,EAAA,CAAA;UAAGC,CAAG,EAAAof,WAAA;UAAanf,OAAO4vB,CAAG;UAAAt1B,MAAA,EAAQs1B,CAAG;UAAAve,IAAA,EAAK;QAAQ,CAAA;OAChE,CAAA,EAAA,eACAxD,GAAA,CAACgiB;QAAWx6B,CAAG,EAAA46B,UAAA;QAAYE,MAAK,mBAAoB;QAAAhR,WAAA,EAAaA,cAAc;OAAG,CAAA,EAClF,eAAAtR,GAAA,CAACkiB,SAAU,EAAA;QAAA16B,CAAA,EAAG66B;MAAU,CAAA,CAAA;IAC1B,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACpHD,MAAMz4B,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,oCAAoC,CAAA;AAE3Dub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAkD,IAAI,CAAA;AAEhF,MAAAmjB,sBAAA,GACXpjB,YAAYvV,KAAG,CAAA;ACMV,SAAS44B,wBAAwBz3B,KAAyD,EAAA;EACzF,MAAA;IAAC0U,QAAU;IAAA7Q;EAAW,CAAA,GAAA7D,KAAA;EACtB,MAAAtB,KAAA,GAAqC+E,OAAQ,CAAA,OAAO;IAACsR,OAAA,EAAS;IAAKlR;GAAO,CAAA,EAAI,CAACA,OAAO,CAAC,CAAA;EAE7F,OAAQ,eAAAoR,GAAA,CAAAuiB,sBAAA,CAAuBtiB,QAAvB,EAAA;IAAgCxW;IAAegW;EAAS,CAAA,CAAA;AAClE;ACpBO,SAASgjB,SAASh5B,KAAkD,EAAA;EAClE,OAAAyF,OAAA,CAAQzF,SAAS,OAAOA,KAAA,KAAU,YAAY,CAACkB,KAAA,CAAMC,OAAQ,CAAAnB,KAAK,CAAC,CAAA;AAC5E;ACGA,MAAMi5B,aAA6C,GAAA;EACjD5iB,OAAS,EAAA,CAAA;EACTlR,OAAS,EAAA;AACX,CAAA;AAKO,SAAS+zB,kBAAkDA,CAAA,EAAA;EAC1D,MAAAl5B,KAAA,GAAQ+V,WAAW+iB,sBAAsB,CAAA;EAK/C,IAAI94B,UAAU,CAACg5B,QAAA,CAASh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAM,CAAA,EAAA;IAClD,MAAA,IAAI3U,MAAM,2DAA2D,CAAA;EAC7E;EAEA,OAAO1B,KAAS,IAAAi5B,aAAA;AAClB;ACrBO,SAASE,kBAAmBA,CAAAC,KAAA,EAQf;EAAA,IARe;IACjCpjB,QAAA;IACAqjB,SAAA;IACAC;EACF,CAIoB,GAAAF,KAAA;EAClB,IAAI,CAACC,SAAW,EAAA;IACP,OAAArjB,QAAA;EACT;EAEA,OAAOsjB,QAAQtjB,QAAQ,CAAA;AACzB;ACjBgB,SAAAujB,kBAAAA,CAAmB/4B,OAAiBkI,KAAyB,EAAA;EAC3E,MAAMrD,MAAgB,EAAC;EAEvB,KAAA,IAAS6N,IAAI,CAAG,EAAAA,CAAA,GAAI1S,KAAM,CAAAiB,MAAA,EAAQyR,KAAK,CAAG,EAAA;IAClC,MAAAsmB,EAAA,GAAKh5B,MAAM0S,CAAC,CAAA;IAElB,IAAIsmB,KAAK9wB,KAAO,EAAA;MACdrD,GAAA,CAAIE,KAAK2N,CAAC,CAAA;IACZ;EACF;EAEO,OAAA7N,GAAA;AACT;AAEgB,SAAAo0B,kBAAAA,CAAmBj5B,OAAiBkI,KAAyB,EAAA;EAC3E,MAAMrD,MAAgB,EAAC;EAEvB,KAAA,IAAS6N,IAAI,CAAG,EAAAA,CAAA,GAAI1S,KAAM,CAAAiB,MAAA,EAAQyR,KAAK,CAAG,EAAA;IAClC,MAAAsmB,EAAA,GAAKh5B,MAAM0S,CAAC,CAAA;IAElB,IAAIsmB,MAAM9wB,KAAO,EAAA;MACfrD,GAAA,CAAIE,KAAK2N,CAAC,CAAA;IACZ;EACF;EAEO,OAAA7N,GAAA;AACT;ACRO,MAAMq0B,YAAe,GAAA1T,UAAA,CAAW,SAAS0T,aAAAA,CAC9Cp4B,OACAuX,GACA,EAAA;EACA,MAAMxX,QAAQ0V,WAAY,EAAA;EAC1B,MAAM;IAACf,QAAU;IAAAxV,KAAA,GAAQa,MAAMb,KAAO;IAAA,GAAG8lB;EAAa,CAAA,GAAAhlB,KAAA;EAEhD,MAAAuwB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC1T,OAAA,EAASU,UAAU,CAAA,GAAIC,SAAgC,IAAI,CAAA;EAC5D,MAAAsP,WAAA,GAAcH,eAAe9P,OAAO,CAAA;EACpC,MAAAuD,KAAA,GAAQ3D,QAAQ,MAAG;IA5B3B,IAAAkE,EAAA;IA4B2C,OAAA,CAAAA,EAAA,GAAAmM,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAAX,MAAA,CAAO/L,KAApB,KAAA,IAAA,GAAAO,EAAA,GAA6BpC,MAAO,CAAA8yB,UAAA;EAAA,CAAY,EAAA,CAACvkB,WAAW,CAAC,CAAA;EAEnF,MAAAgI,GAAA,GAAMrY,OAAQ,CAAA,MAAMw0B,kBAAmB,CAAA/4B,KAAA,EAAOkI,KAAK,CAAG,EAAA,CAAClI,KAAO,EAAAkI,KAAK,CAAC,CAAA;EACpE,MAAAyU,GAAA,GAAMpY,OAAQ,CAAA,MAAM00B,kBAAmB,CAAAj5B,KAAA,EAAOkI,KAAK,CAAG,EAAA,CAAClI,KAAO,EAAAkI,KAAK,CAAC,CAAA;EAE1E,MAAMkxB,MAAS,GAAA7P,WAAA,CACZzkB,EAA8B,IAAA;IAC7BusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;IACvBO,UAAA,CAAWP,EAAE,CAAA;EACf,CAAA,EACA,CAACusB,YAAY,CAAA,CACf;EAGE,sBAAAtb,GAAA,CAAC,KAAA,EAAA;IACC,SAAQ,EAAA,cAAA;IACP,GAAG+P,SAAA;IACJ,eAAalJ,GAAI,CAAA3b,MAAA,GAAS2b,GAAI,CAAAL,IAAA,CAAK,GAAG,CAAI,GAAA,KAAA,CAAA;IAC1C,eAAaI,GAAI,CAAA1b,MAAA,GAAS0b,GAAI,CAAAJ,IAAA,CAAK,GAAG,CAAI,GAAA,KAAA,CAAA;IAC1ClE,GAAK,EAAA+gB,MAAA;IAEJ5jB;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;;;;;;;AC7BM,MAAM6jB,sBAAsBC,SAAkD,CAAA;EAA9EC,WAAAA,CAAA,EAAA;IAAA,KAAA,CAAA,GAAAv4B,SAAA,CAAA;IACuBw4B,aAAA,CAAA,IAAA,EAAA,OAAA,EAAA;MAACC,OAAO;IAAI,CAAA,CAAA;EAAA;EAExC,OAAOC,yBAAyBD,KAAkC,EAAA;IAEhE,OAAO;MAACA;IAAK,CAAA;EACf;EAEAE,iBAAAA,CAAkBF,OAAcG,IAA6B,EAAA;IAC3D,IAAA,CAAK94B,KAAM,CAAA+4B,OAAA,CAAQ;MAACJ,KAAA;MAAOG;IAAK,CAAA,CAAA;EAClC;EAEAE,MAA0BA,CAAA,EAAA;IAClB,MAAA;MAACL;IAAK,CAAA,GAAI,IAAK,CAAAM,KAAA;IAErB,IAAIN,KAAO,EAAA;MACT,MAAMtyB,UAAU,QAAOsyB,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAOtyB,OAAY,CAAA,KAAA,QAAA,GAAWsyB,MAAMtyB,OAAU,GAAA,OAAA;MAE9D,OAAA,eAAA4O,GAAA,CAACme;QAAM1e,QAAQ,EAAArO;MAAA,CAAA,CAAA;IACxB;IAEA,OAAO,KAAKrG,KAAM,CAAA0U,QAAA;EACpB;AACF;AC3CO,SAASwkB,gBAAgBC,YAAoD,EAAA;EAIlF,IAAI,CAACzB,QAAS,CAAAyB,YAAY,CAAK,IAAAA,YAAA,CAAapkB,YAAY,CAAK,EAAA;IACrD,MAAA,IAAI3U,MAAM,qCAAqC,CAAA;EACvD;EAEA,IAAI,CAAC+4B,YAAc,EAAA;IACX,MAAA,IAAI/4B,MAAM,uEAAuE,CAAA;EACzF;EAEI,IAAA+4B,YAAA,CAAapkB,YAAY,CAAK,EAAA;IACzB,OAAAokB,YAAA;EACT;EAEM,MAAA,IAAI/4B,MAAM,6BAA6B,CAAA;AAC/C;AChBA,MAAMvB,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAwC,IAAI,CAAA;AAEtE,MAAA+kB,YAAA,GAAkDhlB,YAAYvV,KAAG,CAAA;ACAvE,SAASw6B,QAA8BA,CAAA,EAAA;EACtC,MAAA36B,KAAA,GAAQ+V,WAAW2kB,YAAY,CAAA;EAErC,IAAI,CAAC16B,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,mCAAmC,CAAA;EACrD;EAEI,IAAA;IACF,OAAO84B,gBAAgBx6B,KAAK,CAAA;WACrB46B,GAAK,EAAA;IACZ,IAAIA,eAAel5B,KAAO,EAAA;MACxB,MAAM,IAAIA,KAAA,CAAM,cAAe,CAAApB,MAAA,CAAAs6B,GAAA,CAAIjzB,OAAS,CAAA,CAAA;IAAA,CACvC,MAAA;MACC,MAAA,IAAIjG,KAAM,CAAA,cAAA,CAAepB,MAAK,CAAAs6B,GAAA,CAAA,CAAA;IACtC;EACF;AACF;ACrBO,SAASC,KAAK9E,EAA4B,EAAA;EACzC,MAAA+E,OAAA,GAAU/pB,sBAAsBglB,EAAE,CAAA;EAExC,OAAO,MAAM;IACXlM,oBAAA,CAAqBiR,OAAO,CAAA;EAAA,CAC9B;AACF;AAKO,SAASC,MAAMhF,EAA4B,EAAA;EAChD,IAAIiF,YAAoC,GAAA,IAAA;EAElC,MAAAC,YAAA,GAAeJ,KAAK,MAAM;IAC9BG,YAAA,GAAeH,KAAK9E,EAAE,CAAA;EAAA,CACvB,CAAA;EAED,OAAO,MAAM;IACP,IAAAiF,YAAA,EAA2BA,YAAA,EAAA;IAElBC,YAAA,EAAA;EAAA,CACf;AACF;ACvBO,SAASC,uBAAuB/1B,OAA+B,EAAA;EACpE,OAAOg2B,mBAAoB,CAAAh2B,OAAO,CAAK,IAAAi2B,mBAAA,CAAoBj2B,OAAO,CAAA;AACpE;AAKO,SAASk2B,cAAc9sB,IAAoC,EAAA;EAChE,OAAOA,IAAgB,YAAA5H,IAAA,IAAQ4H,IAAK,CAAA+sB,QAAA,KAAa30B,IAAK,CAAA40B,YAAA;AACxD;AAKO,SAASJ,oBAAoBh2B,OAAgD,EAAA;EAClF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,GAAA;AACxD;AAKO,SAASC,mBAAmBt2B,OAA+C,EAAA;EAChF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,OAAA;AACxD;AAKO,SAASJ,oBAAoBj2B,OAAgD,EAAA;EAClF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,QAAA;AACxD;AAKO,SAASE,oBAAoBv2B,OAAgD,EAAA;EAClF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,QAAA;AACxD;AAKO,SAASG,sBAAsBx2B,OAAkD,EAAA;EACtF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,UAAA;AACxD;AAKgB,SAAAI,uBAAAA,CAAwBz2B,SAAsBoJ,IAAqB,EAAA;EACjF,OAAOpJ,OAAQ,CAAAyB,QAAA,CAAS2H,IAAI,CAAA,IAAKpJ,OAAY,KAAAoJ,IAAA;AAC/C;ACtCO,SAASstB,UAAU12B,OAA+B,EAAA;EACvD,OAAOM,QAAQmC,QAAS,CAAAk0B,aAAa,KAAK32B,OAAQ,CAAAyB,QAAA,CAASgB,SAASk0B,aAAa,CAAA;AACnF;AAKO,SAASC,YAAY52B,OAA+B,EAAA;EAEvD,IAAAA,OAAA,CAAQ62B,QAAW,GAAA,CAAA,IAClB72B,OAAQ,CAAA62B,QAAA,KAAa,KAAK72B,OAAQ,CAAA82B,YAAA,CAAa,UAAU,CAAA,KAAM,IAChE,EAAA;IACO,OAAA,IAAA;EACT;EAEI,IAAAd,mBAAA,CAAoBh2B,OAAO,CAAG,EAAA;IAChC,OAAOM,OAAQ,CAAAN,OAAA,CAAQklB,IAAI,CAAA,IAAKllB,QAAQ+2B,GAAQ,KAAA,QAAA;EAClD;EAEI,IAAAT,kBAAA,CAAmBt2B,OAAO,CAAG,EAAA;IAC/B,OAAOA,QAAQ3J,IAAS,KAAA,QAAA,IAAY2J,QAAQ3J,IAAS,KAAA,MAAA,IAAU,CAAC2J,OAAQ,CAAA4d,QAAA;EAC1E;EAGE,IAAAqY,mBAAA,CAAoBj2B,OAAO,CAC3B,IAAAu2B,mBAAA,CAAoBv2B,OAAO,CAC3B,IAAAw2B,qBAAA,CAAsBx2B,OAAO,CAC7B,EAAA;IACA,OAAO,CAACA,OAAQ,CAAA4d,QAAA;EAClB;EAEO,OAAA,KAAA;AACT;AAKO,SAASoZ,aAAah3B,OAA+B,EAAA;EACtD,IAAA,CAAC42B,WAAY,CAAA52B,OAAO,CAAG,EAAA;IAClB,OAAA,KAAA;EACT;EAII,IAAA;IACFA,OAAA,CAAQi3B,KAAM,CAAA,CAAA;WACPxa,CAAG,EAAA,CAEZ;EAIA,OAAOha,SAASk0B,aAAkB,KAAA32B,OAAA;AACpC;AAKO,SAASk3B,qBAAqBl3B,OAA+B,EAAA;EAClE,KAAA,IAAS+N,IAAI,CAAG,EAAAA,CAAA,GAAI/N,OAAQ,CAAAm3B,UAAA,CAAW76B,QAAQyR,CAAK,EAAA,EAAA;IAC5C,MAAAyY,KAAA,GAAQxmB,OAAQ,CAAAm3B,UAAA,CAAWppB,CAAC,CAAA;IAE9B,IAAAmoB,aAAA,CAAc1P,KAAK,CAAM,KAAAwQ,YAAA,CAAaxQ,KAAK,CAAK,IAAA0Q,oBAAA,CAAqB1Q,KAAK,CAAI,CAAA,EAAA;MACzE,OAAA,IAAA;IACT;EACF;EAEO,OAAA,KAAA;AACT;AAKO,SAAS4Q,oBAAoBp3B,OAA+B,EAAA;EACjE,KAAA,IAAS+N,IAAI/N,OAAQ,CAAAm3B,UAAA,CAAW76B,SAAS,CAAG,EAAAyR,CAAA,IAAK,GAAGA,CAAK,EAAA,EAAA;IACjD,MAAAyY,KAAA,GAAQxmB,OAAQ,CAAAm3B,UAAA,CAAWppB,CAAC,CAAA;IAE9B,IAAAmoB,aAAA,CAAc1P,KAAK,CAAM,KAAAwQ,YAAA,CAAaxQ,KAAK,CAAK,IAAA4Q,mBAAA,CAAoB5Q,KAAK,CAAI,CAAA,EAAA;MACxE,OAAA,IAAA;IACT;EACF;EAEO,OAAA,KAAA;AACT;AChGO,SAAS6Q,cAAcl3B,EAAmB,EAAA;EAC/C,IAAI,EAAEA,EAAc,YAAArJ,OAAA,CAAA,EAAiB,OAAA,KAAA;EAE/B,MAAAiE,KAAA,GAAQ2G,MAAO,CAAA6E,gBAAA,CAAiBpG,EAAE,CAAA;EAExC,OACEpF,MAAMiM,SAAU,CAAA5F,QAAA,CAAS,MAAM,CAC/B,IAAArG,KAAA,CAAMiM,UAAU5F,QAAS,CAAA,QAAQ,CACjC,IAAArG,KAAA,CAAM+L,UAAU1F,QAAS,CAAA,MAAM,KAC/BrG,KAAM,CAAA+L,SAAA,CAAU1F,SAAS,QAAQ,CAAA;AAErC;ACGO,SAASk2B,cAAcn7B,KAA+C,EAAA;EAjB7E,IAAA2H,EAAA;EAkBE,MAAM;IAAC+M,QAAA;IAAU0mB,OAAS,EAAAC,WAAA,GAAc;GAAK,GAAAr7B,KAAA;EAGvC,MAAAs7B,kBAAA,GAAqB7mB,WAAW2kB,YAAY,CAAA;EAC5C,MAAAhsB,MAAA,GAASkuB,kBAAsB,IAAApC,eAAA,CAAgBoC,kBAAkB,CAAA;EACvE,MAAMC,sBAAsBnuB,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAouB,aAAA;EAC9B,MAAAC,WAAA,GAAA,CAAc9zB,EAAQ,GAAAyF,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAsuB,KAAA,KAAR,IAAiB,GAAA/zB,EAAA,GAAA,CAAA;EAGrC,MAAM+zB,QAAQD,WAAc,GAAA,CAAA;EAGtB,MAAAL,OAAA,GAAU73B,aAAa83B,WAAW,CAAA;EAGlC,MAAAM,aAAA,GAAgBP,QAAQj7B,MAAS,GAAA,CAAA;EACvC,MAAMX,UAAa,GAAAkD,IAAA,CAAKmZ,GAAI,CAAAnF,aAAA,IAAiBilB,aAAa,CAAA;EACpD,MAAA9V,MAAA,GAASzY,SAASA,MAAO,CAAAyY,MAAA,GAASuV,QAAQ57B,UAAU,CAAA,GAAI47B,QAAQ57B,UAAU,CAAA;EAGhF,MAAM,GAAGo8B,cAAc,CAAI,GAAAp3B,QAAA,CAAiC,CAAE,CAAA,CAAA;EAG9D,MAAM,CAACxC,IAAA,EAAM4R,OAAO,CAAA,GAAIpP,SAAS,CAAC,CAAA;EAElC,MAAMq3B,aAAa75B,IAAS,KAAA,CAAA;EAE5B,MAAMw5B,aAAgB,GAAA/S,WAAA,CACnBqT,UAAwB,IAAA;IAEvB,MAAMC,gBAAgBR,mBAAsB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,mBAAA,CAAAO,UAAA,CAAA;IAE5C,IAAIA,eAAe,KAAW,CAAA,EAAA;MAC5BF,cAAA,CAAgB3C,KAAU,IAAA;QAnDlCtxB,IAAAA,GAAAA;QAoDU,MAAMq0B,WAAUr0B,GAAA,GAAAsxB,KAAA,CAAM6C,UAAU,CAAA,KAAhB,OAAAn0B,GAAqB,GAAA,CAAA;QAC/B,MAAAs0B,SAAA,GAAY;UAAC,GAAGhD,KAAA;UAAO,CAAC6C,UAAU,GAAGE,UAAU;SAAC;QAEtDpoB,OAAA,CAAQ/M,MAAO,CAAApI,IAAA,CAAKw9B,SAAS,CAAA,CAAE97B,MAAM,CAAA;QAE9B,OAAA87B,SAAA;MAAA,CACR,CAAA;IAAA,CACI,MAAA;MAEGroB,OAAA,CAACtW,CAAM,IAAAA,CAAA,GAAI,CAAC,CAAA;IACtB;IAEA,OAAO,MAAM;MACX,IAAIw+B,eAAe,KAAW,CAAA,EAAA;QAC5BF,cAAA,CAAgB3C,KAAU,IAAA;UAClB,MAAAgD,SAAA,GAAY;YAAC,GAAGhD;WAAK;UAEvB,IAAAgD,SAAA,CAAUH,UAAU,CAAA,KAAM,CAAG,EAAA;YAC/B,OAAOG,UAAUH,UAAU,CAAA;YAE3BloB,OAAA,CAAQ/M,MAAO,CAAApI,IAAA,CAAKw9B,SAAS,CAAA,CAAE97B,MAAM,CAAA;UAAA,CAChC,MAAA;YACL87B,SAAA,CAAUH,UAAU,CAAK,IAAA,CAAA;UAC3B;UAEO,OAAAG,SAAA;QAAA,CACR,CAAA;MAAA,CACI,MAAA;QAEGroB,OAAA,CAACtW,CAAM,IAAAA,CAAA,GAAI,CAAC,CAAA;MACtB;MAEAy+B,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAA,CAAA;IAAA,CACF;EACF,CAAA,EACA,CAACR,mBAAmB,CAAA,CACtB;EAGA12B,SAAA,CAAU,MAAM02B,mBAAsB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,mBAAA,CAAAG,KAAA,CAAA,EAAQ,CAACA,KAAA,EAAOH,mBAAmB,CAAC,CAAA;EAE1E,MAAM78B,KAA2B,GAAA+E,OAAA,CAC/B,OAAO;IACLsR,OAAS,EAAA,CAAA;IACT8mB,UAAA;IACAH,KAAA;IACAF,aAAA;IACAx5B,IAAA;IACA6jB;EAAA,CACF,CAAA,EACA,CAACgW,UAAA,EAAYH,KAAO,EAAAF,aAAA,EAAex5B,MAAM6jB,MAAM,CAAA,CACjD;EAEA,OAAQ,eAAA5Q,GAAA,CAAAmkB,YAAA,CAAalkB,QAAb,EAAA;IAAsBxW;IAAegW;EAAS,CAAA,CAAA;AACxD;ACnFA,MAAM0P,SAAOC,MAAO,CAAAC,GAAA,CAAI;EAACljB,QAAA,EAAU;AAAW,CAAA,CAAA;AAE9C,MAAM86B,aAAgB,GAAAxX,UAAA,CAAW,SAASwX,cAAAA,CACxCl8B,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C;IAAUynB,UAAY;IAAAC,OAAA;IAASx9B,QAAQb,YAAc;IAAA,GAAGinB;EAAa,CAAA,GAAAhlB,KAAA;EAC5E,MAAM;IAAC6lB,MAAA;IAAQgW;EAAU,CAAA,GAAIxC,QAAS,CAAA,CAAA;EAChC,MAAAgD,cAAA,GAAiBz3B,OAA2B,IAAI,CAAA;EAChD,MAAA2rB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAClC,MAAA+kB,aAAA,GAAgB13B,OAAgBi3B,UAAU,CAAA;EAKhDh3B,SAAA,CAAU,MAAM;IACR,MAAA03B,cAAA,GAAiBD,aAAc,CAAAv3B,OAAA,KAAY82B,UAAc,IAAAA,UAAA;IAE/D,IAAIU,cAAgB,EAAA;MACLJ,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,UAAA,CAAA;QAAC3B,aAAe,EAAA6B,cAAA,CAAet3B;MAAO,CAAA,CAAA;IACrD;IAEAu3B,aAAA,CAAcv3B,OAAU,GAAA82B,UAAA;EAAA,CACvB,EAAA,CAACA,UAAY,EAAAM,UAAU,CAAC,CAAA;EAE3B,MAAMK,WAAc,GAAA/T,WAAA,CACjBtiB,KAA+C,IAAA;IAEpCi2B,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAj2B,KAAA,CAAA;IAEV,MAAMs2B,cAAclM,YAAa,CAAAxrB,OAAA;IACjC,MAAMK,SAASkB,QAAS,CAAAk0B,aAAA;IAExB,IAAI,CAACqB,UAAA,IAAc,CAACY,WAAA,IAAe,CAACr3B,MAAA,EAAQ;IAE5C,IAAI20B,cAAc30B,MAAM,CAAA,IAAKk1B,uBAAwB,CAAAmC,WAAA,EAAar3B,MAAM,CAAG,EAAA;MACzEi3B,cAAA,CAAet3B,OAAU,GAAAK,MAAA;IAC3B;EACF,CAAA,EACA,CAACmrB,YAAc,EAAAsL,UAAA,EAAYO,OAAO,CAAA,CACpC;EAGE,sBAAAnnB,GAAA,CAACmP,MAAA,EAAA;IACE,GAAGY,SAAA;IACJ,SAAQ,EAAA,OAAA;IACRoX,OAAS,EAAAI,WAAA;IACTjlB,GAAK,EAAAgZ,YAAA;IACL3xB,KAAO,EAAA;MAAC,GAAGA,KAAA;MAAOinB;IAAM,CAAA;IAEvBnR;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AAKM,MAAMgoB,KAAQ,GAAAhY,UAAA,CAAW,SAASgY,MAAAA,CACvC18B,OACAuX,GACA,EAAA;EACA,MAAM;IAAC7C,QAAU;IAAA0mB,OAAA,GAAU,CAAG;IAAA,GAAGpW;EAAa,CAAA,GAAAhlB,KAAA;EAG5C,OAAA,eAAAiV,GAAA,CAACkmB;IAAcC,OACb;IAAA1mB,QAAA,EAAA,eAAAO,GAAA,CAACinB;MAAe,GAAGlX,SAAA;MAAWzN,GAC3B;MAAA7C;IACH,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;AC1FD,MAAM7V,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,2BAA2B,CAAA;AAClD,MAAM8jC,UAAA,GAAa/jC,MAAO,CAAAC,GAAA,CAAI,mCAAmC,CAAA;AAEjEub,WAAA,CAAYuoB,UAAU,CAAI,GAAA,IAAA;AAEnB,MAAMC,mBAA0C,GAAA;EACrD7nB,OAAS,EAAA,CAAA;EACTzQ,eAAiB,EAAA,IAAA;EACjB,IAAIT,OAAUA,CAAA,EAAA;IACR,IAAA,OAAOyC,aAAa,WAAa,EAAA;MAC5B,OAAA,IAAA;IACT;IAEI,IAAA8N,WAAA,CAAYuoB,UAAU,CAAG,EAAA;MAC3B,OAAOvoB,YAAYuoB,UAAU,CAAA;IAC/B;IAEAvoB,WAAA,CAAYuoB,UAAU,CAAA,GAAIr2B,QAAS,CAAA+oB,aAAA,CAAc,KAAK,CAAA;IACtDjb,WAAA,CAAYuoB,UAAU,CAAA,CAAEE,YAAa,CAAA,aAAA,EAAe,EAAE,CAAA;IAEtDv2B,QAAA,CAAS0K,IAAK,CAAA8rB,WAAA,CAAY1oB,WAAY,CAAAuoB,UAAU,CAAC,CAAA;IAEjD,OAAOvoB,YAAYuoB,UAAU,CAAA;EAC/B;AACF,CAAA;AAEAvoB,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAkCuoB,mBAAmB,CAAA;AAE/E,MAAAG,aAAA,GAAmD3oB,YAAYvV,KAAG,CAAA;ACxBxE,SAASm+B,SAAgCA,CAAA,EAAA;EACxC,MAAAt+B,KAAA,GAAQ+V,WAAWsoB,aAAa,CAAA;EAEtC,IAAI,CAACr+B,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,oCAAoC,CAAA;EACtD;EAKA,IAAI,CAACs3B,QAAS,CAAAh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAK,EAAA;IACvC,MAAA,IAAI3U,MAAM,kDAAkD,CAAA;EACpE;EAEO,OAAA1B,KAAA;AACT;ACNO,SAAS1D,OAAOgF,KAA8C,EAAA;EAjBrE,IAAA2H,EAAA;EAkBE,MAAM;IAAC+M,QAAA;IAAUuoB,eAAiB,EAAAhsB;EAAA,CAAQ,GAAAjR,KAAA;EAC1C,MAAMk9B,SAASF,SAAU,EAAA;EACzB,MAAMG,aACH,GAAA,CAAAlsB,IAAA,GAAOisB,MAAO,CAAAz4B,QAAA,IAAYy4B,MAAO,CAAAz4B,QAAA,CAASwM,IAAI,CAAA,GAAIisB,MAAO,CAAAr5B,OAAA,MAAA,CAAY8D,EAAO,GAAAu1B,MAAA,CAAAz4B,QAAA,KAAP,IAAiB,GAAA,KAAA,CAAA,GAAAkD,EAAA,CAAA0Z,OAAA,CAAA;EAEzF,IAAI,CAAC8b,aAAe,EAAA;IACX,OAAA,IAAA;EACT;EAEO,OAAAC,YAAA,CAAa1oB,UAAUyoB,aAAa,CAAA;AAC7C;AClBO,SAASE,UAAqD3+B,KAA6B,EAAA;EAC1F,MAAA4+B,QAAA,GAAW14B,OAAkBlG,KAAK,CAAA;EAExC,IAAI,CAAC6+B,QAAA,CAASD,QAAS,CAAAv4B,OAAA,EAASrG,KAAK,CAAG,EAAA;IACtC4+B,QAAA,CAASv4B,OAAU,GAAArG,KAAA;EACrB;EAEA,OAAO4+B,QAAS,CAAAv4B,OAAA;AAClB;AAEA,SAASw4B,QAAAA,CAASC,MAAkBC,IAA2B,EAAA;EACzD,IAAA,CAACD,IAAQ,IAAA,CAACC,IAAM,EAAA;IAClB,OAAOD,IAAS,KAAAC,IAAA;EAClB;EAEM,MAAAC,KAAA,GAAQ72B,MAAO,CAAApI,IAAA,CAAK++B,IAAI,CAAA;EACxB,MAAAG,KAAA,GAAQ92B,MAAO,CAAApI,IAAA,CAAKg/B,IAAI,CAAA;EAE1B,IAAAC,KAAA,CAAMv9B,MAAW,KAAAw9B,KAAA,CAAMx9B,MAAQ,EAAA;IAC1B,OAAA,KAAA;EACT;EAEO,OAAAu9B,KAAA,CAAME,MAAO/+B,GAAA,IAAQ2+B,KAAK3+B,GAAG,CAAA,KAAM4+B,IAAK,CAAA5+B,GAAG,CAAC,CAAA;AACrD;ACZA,MAAMg/B,WAAA,GAAc,OAAOv3B,QAAa,KAAA,WAAA;AAKjC,SAASw3B,eAAe99B,KAAgD,EAAA;EAC7E,MAAM;IAACsE,eAAiB;IAAAoQ,QAAA;IAAU7Q,OAAS;IAAAk6B,mBAAA,EAAqBC;EAAgB,CAAA,GAAAh+B,KAAA;EAC1E,MAAAyE,QAAA,GAAW44B,UAAUW,YAAY,CAAA;EAEjC,MAAAt/B,KAAA,GAA4B+E,QAAQ,MAAM;IACvC,OAAA;MACLsR,OAAS,EAAA,CAAA;MACTzQ,iBAAiBA,eAAmB,IAAA,IAAA;MACpCT,OAAS,EAAAA,OAAA,IAAYg6B,WAAe,IAAAv3B,QAAA,CAAS0K,IAAS,IAAA,IAAA;MACtDvM;IAAA,CACF;EACC,CAAA,EAAA,CAACH,eAAiB,EAAAT,OAAA,EAASY,QAAQ,CAAC,CAAA;EAEvC,OAAQ,eAAAwQ,GAAA,CAAA8nB,aAAA,CAAc7nB,QAAd,EAAA;IAAuBxW;IAAegW;EAAS,CAAA,CAAA;AACzD;;;;;;ACxCA,IAAA/M,IAAA;AAWA,MAAMyc,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,iHAAA,CAAA,CAAA,CAAA,CAAA;AAYhB,MAAMkd,MAAS,GAAAvZ,UAAA,CAAW,SAASuZ,OAAAA,CACxCj+B,OACAuX,GACA,EAAA;EACM,MAAA;IAAC4P,EAAI;IAAAzS;EAAY,CAAA,GAAA1U,KAAA;EAGrB,OAAA,eAAAiV,GAAA,CAACmP;IAAK,aAAW,EAAA,IAAA;IAAC+C;IAAQ,SAAQ,EAAA,QAAA;IAAS5P;IACxC7C;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AClCD,IAAA/M,IAAA,EAAAO,IAAA;AAiCA,MAAMkc,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,CAAA;AAIvB,MAAMmd,WAAA,GAAc7Z,MAAO,CAAAC,GAAA,CAAPpc,IAAU,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,oDAAA,CAAA,CAAA,CAAA,CAAA;AASvB,MAAMod,WAAc,GAAAzZ,UAAA,CAAW,SAASyZ,YAAAA,CAC7Cn+B,OAGAuX,GACoB,EAAA;EACpB,MAAM;IAAC4P,EAAA,GAAK,KAAO;IAAApN,GAAA,GAAM,CAAG;IAAAqkB,UAAA;IAAYC,KAAQ,GAAA,EAAI;IAAAC,QAAA;IAAUC,UAAY;IAAA,GAAGvZ;GAAa,GAAAhlB,KAAA;EACpF,MAAA;IAACK;GAAK,GAAIoV,WAAY,EAAA;EACtB,MAAA8a,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAClC,MAAAinB,UAAA,GAAa55B,OAA8B,IAAI,CAAA;EACrD,MAAM,CAAC65B,SAAA,EAAWC,YAAY,CAAA,GAAIl6B,SAAS,CAAC,CAAA;EAC5C,MAAM,CAACm6B,YAAA,EAAcC,eAAe,CAAA,GAAIp6B,SAAS,CAAC,CAAA;EAClD,MAAM,CAACq6B,UAAA,EAAYC,aAAa,CAAA,GAAIt6B,SAAS,CAAE,CAAA,CAAA;EAE/CK,SAAA,CAAU,MAAM;IACd,IAAI,CAAC25B,UAAW,CAAAz5B,OAAA,EAAS;IAEnB,MAAAg6B,YAAA,GAAeP,WAAWz5B,OAAQ,CAAAi6B,UAAA;IAExC,IAAID,wBAAwBE,WAAa,EAAA;MACvCH,aAAA,CAAcC,aAAa32B,YAAY,CAAA;IACzC;EAAA,CACF,EAAG,CAACm2B,UAAU,CAAC,CAAA;EAEf15B,SAAA,CAAU,MAAM;IACd,IAAI,CAAC0rB,YAAa,CAAAxrB,OAAA,EAAS;IAEvB,IAAAm6B,SAAA,GAAY3O,aAAaxrB,OAAQ,CAAAsI,UAAA;IAErC,OAAO6xB,SAAa,IAAA,CAAChE,aAAc,CAAAgE,SAAS,CAAG,EAAA;MAC7CA,SAAA,GAAYA,SAAU,CAAA7xB,UAAA;IACxB;IAEA,IAAI6xB,SAAW,EAAA;MACb,MAAMC,QAAW,GAAAD,SAAA;MAEjB,IAAI,EAAEC,QAAoB,YAAAF,WAAA,CAAA,EAAc;MAExC,MAAMG,gBAAeC,CAAA,KAAM;QACzBX,YAAA,CAAaS,SAASV,SAAS,CAAA;MAAA,CACjC;MAEAU,QAAA,CAAS35B,iBAAiB,QAAU45B,EAAAA,aAAAA,EAAc;QAACE,OAAA,EAAS;OAAK,CAAA;MAEjE,MAAMz5B,EAAK,GAAA,IAAI6M,eAAgB,CAAC/E,OAAY,IAAA;QAC1CixB,eAAA,CAAgBjxB,OAAQ,CAAA,CAAC,CAAE,CAAA9D,WAAA,CAAYnI,MAAM,CAAA;MAAA,CAC9C,CAAA;MAEDmE,EAAA,CAAGwJ,QAAQ8vB,QAAQ,CAAA;MAEnBC,aAAa,EAAA;MAEb,OAAO,MAAM;QACFD,QAAA,CAAA15B,mBAAA,CAAoB,UAAU25B,aAAY,CAAA;QAEnDv5B,EAAA,CAAGsM,UAAUgtB,QAAQ,CAAA;QACrBt5B,EAAA,CAAGqL,UAAW,CAAA,CAAA;MAAA,CAChB;IACF;IAEA,MAAMkuB,eAAeA,CAAA,KAAM;MACzBV,YAAA,CAAan5B,OAAOg6B,OAAO,CAAA;IAAA,CAC7B;IAEA,MAAMC,eAAeA,CAAA,KAAM;MACzBZ,eAAA,CAAgBr5B,OAAOk6B,WAAW,CAAA;IAAA,CACpC;IAEAl6B,MAAA,CAAOC,iBAAiB,QAAU,EAAA45B,YAAA,EAAc;MAACE,OAAA,EAAS;KAAK,CAAA;IACxD/5B,MAAA,CAAAC,gBAAA,CAAiB,UAAUg6B,YAAY,CAAA;IAE9CZ,eAAA,CAAgBr5B,OAAOk6B,WAAW,CAAA;IAErBL,YAAA,EAAA;IAEb,OAAO,MAAM;MACJ75B,MAAA,CAAAE,mBAAA,CAAoB,UAAU25B,YAAY,CAAA;MAC1C75B,MAAA,CAAAE,mBAAA,CAAoB,UAAU+5B,YAAY,CAAA;IAAA,CACnD;EAAA,CACF,EAAG,CAACjP,YAAY,CAAC,CAAA;EAEjB,MAAMrQ,MAAMme,KAAM,CAAAl+B,MAAA;EACZ,MAAAuB,MAAA,GAASm9B,aAAa3e,GAAO,IAAA2e,UAAA,GAAax+B,MAAM0Z,GAAG,CAAA,CAAA,GAAK1Z,KAAM,CAAA0Z,GAAG,CAAI,GAAA,CAAA;EAC3E,MAAM2lB,SAAY,GAAAh+B,MAAA,GAASgB,IAAK,CAAAoZ,GAAA,CAAIpZ,IAAK,CAAAC,KAAA,CAAO87B,SAAY,GAAA/8B,MAAA,GAAUwe,GAAG,CAAA,GAAI,CAAG,EAAA,CAAC,CAAI,GAAA,CAAA;EAC/E,MAAAyf,OAAA,GAAUj+B,SAASgB,IAAK,CAAAk9B,IAAA,CAAA,CAAOnB,YAAYE,YAAgB,IAAAj9B,MAAA,GAAUwe,GAAG,CAAA,GAAI,CAAI,GAAA,CAAA;EAEtFrb,SAAA,CAAU,MAAM;IACd,IAAI,CAACy5B,QAAA,EAAU;IACNA,QAAA,CAAA;MAACoB,SAAW;MAAA3lB,GAAA,EAAK1Z,KAAM,CAAA0Z,GAAG;MAAG8kB,UAAY;MAAAF,YAAA;MAAcF,SAAW;MAAAkB;IAAQ,CAAA,CAAA;EAAA,CACrF,EAAG,CAACD,SAAA,EAAW3lB,GAAK,EAAA8kB,UAAA,EAAYP,UAAUK,YAAc,EAAAF,SAAA,EAAWp+B,KAAO,EAAAs/B,OAAO,CAAC,CAAA;EAE5E,MAAAjrB,QAAA,GAAWjR,QAAQ,MAAM;IACzB,IAAA,CAAC86B,UAAc,IAAAF,KAAA,CAAMl+B,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA;IAE9C,IAAI0+B,eAAe,CAAI,CAAA,EAAA;MACd,OAAA,oBAAEX,WAAqB,EAAA;QAAAxpB,QAAA,EAAA6pB,UAAA,CAAWF,MAAM,CAAC,CAAC;OAAvB,EAAA,CAAyB,CAAc,CAAA;IACnE;IAEO,OAAAA,KAAA,CAAM9rB,MAAMmtB,SAAW,EAAAC,OAAO,EAAErgC,GAAI,CAAA,CAACugC,MAAMC,UAAe,KAAA;MAC/D,MAAMC,YAAYL,SAAY,GAAAI,UAAA;MACxB,MAAA7yB,IAAA,GAAOsxB,WAAWsB,IAAI,CAAA;MAC5B,MAAMhhC,GAAM,GAAAu/B,UAAA,GAAaA,UAAW,CAAAyB,IAAA,EAAME,SAAS,CAAI,GAAAA,SAAA;MAEvD,OACG,eAAA9qB,GAAA,CAAAipB,WAAA,EAAA;QAAsBt/B,KAAO,EAAA;UAACyI,GAAK,EAAA04B,SAAA,IAAalB,UAAa,GAAAx+B,KAAA,CAAM0Z,GAAG,CAAA;QACpE,CAAA;QAAArF,QAAA,EAAAzH;MAAA,CAAA,EADepO,GAElB,CAAA;IAAA,CAEH,CAAA;EAAA,CACH,EAAG,CAAC6gC,SAAA,EAAW3lB,GAAK,EAAAqkB,UAAA,EAAYS,YAAYR,KAAO,EAAAE,UAAA,EAAYl+B,KAAO,EAAAs/B,OAAO,CAAC,CAAA;EAExE,MAAAK,YAAA,GAAev8B,QAAQ,OAAO;IAAC/B;GAAU,CAAA,EAAA,CAACA,MAAM,CAAC,CAAA;EAEvD,0BACG0iB,MAAK,EAAA;IAAA+C,EAAA;IAAQ,SAAQ,EAAA,aAAA;IAAe,GAAGnC,SAAW;IAAAzN,GAAA,EAAKgZ,YACtD;IAAA7b,QAAA,EAAA,eAAAO,GAAA,CAAC;MAAIsC,GAAK,EAAAinB,UAAA;MAAY5/B,KAAO,EAAAohC,YAAA;MAC1BtrB;KACH;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACpKM,MAAMurB,wBAA2B,GAAA,CAAA;AACjC,MAAMC,uBAA0B,GAAA,CAAA;AAChC,MAAMC,2BAA8B,GAAA,EAAA;AACpC,MAAMC,4BAA+B,GAAA,CAAA;AACrC,MAAMC,4BAA+B,GAAA,CAAA;AACrC,MAAMC,uBAA0C,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA;AAC3D,MAAMC,6BAA8D,GAAA;EACzEl5B,GAAK,EAAA,CAAC,QAAU,EAAA,MAAA,EAAQ,OAAO,CAAA;EAC/B,WAAa,EAAA,CAAC,cAAgB,EAAA,YAAA,EAAc,aAAa,CAAA;EACzD,SAAW,EAAA,CAAC,YAAc,EAAA,UAAA,EAAY,WAAW,CAAA;EACjDE,MAAQ,EAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,OAAO,CAAA;EAC/B,cAAgB,EAAA,CAAC,WAAa,EAAA,YAAA,EAAc,aAAa,CAAA;EACzD,YAAc,EAAA,CAAC,SAAW,EAAA,UAAA,EAAY,WAAW,CAAA;EACjDD,IAAM,EAAA,CAAC,OAAS,EAAA,KAAA,EAAO,QAAQ,CAAA;EAC/B,YAAc,EAAA,CAAC,aAAe,EAAA,WAAA,EAAa,cAAc,CAAA;EACzD,UAAY,EAAA,CAAC,WAAa,EAAA,SAAA,EAAW,YAAY,CAAA;EACjDE,KAAO,EAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,QAAQ,CAAA;EAC/B,aAAe,EAAA,CAAC,YAAc,EAAA,WAAA,EAAa,cAAc,CAAA;EACzD,WAAa,EAAA,CAAC,UAAY,EAAA,SAAA,EAAW,YAAY;AACnD,CAAA;ACXO,SAASxF,KAAKgQ,OAON,EAAA;EACb,MAAM;IAACwuB,KAAA;IAAOC,OAAS;IAAAn/B,OAAA,GAAU;GAAK,GAAA0Q,OAAA;EAE/B,OAAA;IACLf,IAAM,EAAA,iBAAA;IACN,MAAMwjB,GAAGiM,IAAM,EAAA;MACb,MAAM;QAACj8B,QAAA;QAAUmwB,SAAW;QAAA+L,QAAA;QAAU9L;OAAS,GAAA6L,IAAA;MACzC,MAAA;QAACzL,QAAU;QAAA2L;MAAa,CAAA,GAAA/L,KAAA;MAExB,MAAAxb,QAAA,GAAW,MAAMwnB,cAAA,CAAeH,IAAM,EAAA;QAC1CI,WAAa,EAAA,IAAA;QACbC,QAAA,EAAU/uB,QAAQ1N,eAAmB,IAAA,KAAA,CAAA;QACrC08B,cAAgB,EAAA,UAAA;QAChB1/B,OAAA;QACA2/B,YAAc,EAAA;MAAA,CACf,CAAA;MAED,IAAInN,QAAW,GAAA5mB,QAAA;MACf,IAAIg0B,SAAY,GAAAh0B,QAAA;MAEhB,MAAMi0B,YAAYlM,QAAS,CAAA7tB,KAAA;MAC3B,MAAMg6B,YAAYnM,QAAS,CAAAvzB,MAAA;MAEvB,IAAAkzB,SAAA,CAAU3vB,QAAS,CAAA,KAAK,CAAG,EAAA;QAClB6uB,QAAA,GAAAqN,SAAA,IAAa9nB,QAAS,CAAA/R,IAAA,GAAO+R,QAAS,CAAA7R,KAAA,CAAA;QACjD05B,SAAA,GAAYE,YAAY/nB,QAAS,CAAAhS,GAAA;MACnC;MAEI,IAAAutB,SAAA,CAAU3vB,QAAS,CAAA,OAAO,CAAG,EAAA;QAC/B6uB,QAAA,GAAWqN,YAAY9nB,QAAS,CAAA7R,KAAA;QACpB05B,SAAA,GAAAE,SAAA,IAAa/nB,QAAS,CAAAhS,GAAA,GAAMgS,QAAS,CAAA9R,MAAA,CAAA;MACnD;MAEI,IAAAqtB,SAAA,CAAU3vB,QAAS,CAAA,QAAQ,CAAG,EAAA;QACrB6uB,QAAA,GAAAqN,SAAA,IAAa9nB,QAAS,CAAA/R,IAAA,GAAO+R,QAAS,CAAA7R,KAAA,CAAA;QACjD05B,SAAA,GAAYE,YAAY/nB,QAAS,CAAA9R,MAAA;MACnC;MAEI,IAAAqtB,SAAA,CAAU3vB,QAAS,CAAA,MAAM,CAAG,EAAA;QAC9B6uB,QAAA,GAAWqN,YAAY9nB,QAAS,CAAA/R,IAAA;QACpB45B,SAAA,GAAAE,SAAA,IAAa/nB,QAAS,CAAAhS,GAAA,GAAMgS,QAAS,CAAA9R,MAAA,CAAA;MACnD;MAIMi5B,KAAA,CAAA;QACJa,gBAAgBvN,QAAW,GAAA2M,OAAA,CAAQ,CAAC,CAAA,GAAIA,QAAQ,CAAC,CAAA;QACjDa,iBAAiBJ,SAAY,GAAAT,OAAA,CAAQ,CAAC,CAAA,GAAIA,QAAQ,CAAC,CAAA;QACnDh8B,QAAA;QACA88B,gBAAgBX,SAAU,CAAAx5B,KAAA,GAAQq5B,QAAQ,CAAC,CAAA,GAAIA,QAAQ,CAAC;MAAA,CACzD,CAAA;MAED,MAAMe,cAAiB,GAAA,MAAMb,QAAS,CAAAc,aAAA,CAAch9B,SAASwwB,QAAQ,CAAA;MAErE,MAAMyM,UAAUF,cAAe,CAAA9/B,MAAA;MAC/B,MAAMigC,UAAUH,cAAe,CAAAp6B,KAAA;MAE3B,IAAA+5B,SAAA,KAAcQ,OAAW,IAAAP,SAAA,KAAcM,OAAS,EAAA;QAClD,OAAO;UAACE,KAAA,EAAO;YAAC/M,KAAA,EAAO;UAAK;QAAA,CAAA;MAC9B;MAEA,OAAO,EAAC;IACV;EAAA,CACF;AACF;AC9EO,SAASgN,iBAAiBC,MAIV,EAAA;EACrB,MAAM;IAACjO,SAAA;IAAWr0B,UAAY;IAAA4H;EAAA,CAAS,GAAA06B,MAAA;EAEjC,MAAA9K,CAAA,GAAI5vB,MAAM5H,UAAU,CAAA;EAC1B,MAAMuiC,eAAyC/K,CAAM,KAAA,KAAA,CAAA,GAAY5vB,MAAMA,KAAM,CAAAjH,MAAA,GAAS,CAAC,CAAI,GAAA62B,CAAA;EAE3F,OAAO,OAAO+K,YAAA,KAAiB,QAAW,GAAAlO,SAAA,CAAUkO,YAAY,CAAI,GAAA,KAAA,CAAA;AACtE;AAEO,SAASC,aAAaF,MAGN,EAAA;EACf,MAAA;IAACG,aAAe;IAAAF;EAAgB,CAAA,GAAAD,MAAA;EAElC,IAAAC,YAAA,KAAiB,KAAa,CAAA,IAAAE,aAAA,KAAkB,KAAW,CAAA,EAAA;IACtD,OAAA,KAAA,CAAA;EACT;EAEA,OAAOv/B,IAAK,CAAAmZ,GAAA,CACVkmB,YAAgB,IAAA,IAAA,GAAAA,YAAA,GAAA70B,QAAA,EACf,CAAA+0B,aAAA,IAAiB/0B,YAAYgzB,uBAA0B,GAAA,CAAA,CAC1D;AACF;;;;;;AC9BA,IAAAv4B,IAAA;AAiBA,MAAMu6B,eAAa7d,MAAO,CAAA8d,MAAA,CAAOrS,IAAI,CAAC,EAAnBnoB,IAAoB,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,+HAAA,CAAA,CAAA,CAAA,CAAA;AAYhC,MAAMqhB,WAAc,GAAAC,IAAA,CACzB3d,UAAW,CAAA,SAAS0d,YAClBE,CAAAtiC,KAAA,EAsBAuX,GACA,EAAA;EACM,MAAA;IACJgrB,kBAAoB,EAAAC,WAAA;IACpBpkC,OAAA;IACA+mB,KAAA;IACAsd,QAAA;IACAC,MAAA;IACAC,MAAA;IACAjuB,QAAA;IACApT,OAAA;IACAszB,SAAA;IACAW,OAAA;IACAC,OAAA;IACAnc,QAAA;IACA6J,MAAA;IACAvO,MAAA;IACA2O,MAAA;IACAsf,QAAA;IACAhkC,KAAA;IACAiW,IAAA;IACAzN,KAAA;IACAF,CAAG,EAAA27B,KAAA;IACH17B,CAAG,EAAA27B,KAAA;IACH,GAAG9d;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAA;IAAC6lB;GAAM,GAAIwT,QAAS,EAAA;EAG1B,MAAMoH,OAA0B,GAAAh9B,OAAA,CAC9B,MAAM++B,WAAe,IAAAlC,uBAAA,EACrB,CAACkC,WAAW,CAAA,CACd;EAGA,MAAMt7B,CAAK,GAAA,CAAA27B,KAAA,IAAA,IAAA,GAAAA,KAAA,GAAS,CAAK,IAAApC,OAAA,CAAQ,CAAC,CAAA;EAClC,MAAMt5B,CAAK,GAAA,CAAA27B,KAAA,IAAA,IAAA,GAAAA,KAAA,GAAS,CAAK,IAAArC,OAAA,CAAQ,CAAC,CAAA;EAElC,MAAMsC,SAA2B,GAAAt/B,OAAA,CAC/B,OAAO;IACL6D,IAAM,EAAAJ,CAAA;IACNquB,OAAA;IACAC,OAAA;IACAp0B,QAAU,EAAAwhC,QAAA;IACVv7B,GAAK,EAAAF,CAAA;IACLC,KAAA;IACAye,MAAA;IACA,GAAGjnB;EAAA,CACL,CAAA,EACA,CAAC22B,SAASC,OAAS,EAAAoN,QAAA,EAAUhkC,OAAOwI,KAAO,EAAAF,CAAA,EAAGC,GAAG0e,MAAM,CAAA,CACzD;EAEA,MAAMmd,UAA4B,GAAAv/B,OAAA,CAChC,OAAO;IACL6D,IAAA,EAAMo7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IACjCr7B,GAAA,EAAKs7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IAChCn7B,KAAO,EAAA,KAAA,CAAA;IACPD,MAAQ,EAAA,KAAA;EAAA,CACV,CAAA,EACA,CAACm7B,QAAQC,MAAM,CAAA,CACjB;EAGE,sBAAAha,IAAA,CAACuZ,YAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAIld,SAAA;IACL,gBAAgB,EAAA4P,SAAA;IAChB1R,MAAA;IACA3L,GAAA;IACA5C,MAAA;IACA2O,MAAA;IACApK,MAAO,EAAA,QAAA;IACPta,KAAO,EAAAmkC,SAAA;IACPluB,IAAA;IACC,IAAIzW,OAAU,GAAAJ,oBAAA,GAAuB,CAAC,CAAA;IAEvC0W,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC0W;MAAK,SAAQ,EAAA,kBAAA;MAAmBpR,SAAU,EAAA,QAAA;MAASO,MAAM,CAAG;MAAAzB,QAAA;MAC3D3E,QAAC,EAAA,eAAAO,GAAA,CAAA0W,IAAA,EAAA;QAAKpR,WAAU,QAAS;QAAAO,IAAA,EAAM,CAAG;QAAAxZ,OAAA;QAC/BoT;MACH,CAAA;KACF,CAAA,EAECyQ,KACC,mBAAAlQ,GAAA,CAACyR,KAAA,EAAA;MACCnP,GAAK,EAAAkrB,QAAA;MACL7jC,KAAO,EAAAokC,UAAA;MACP57B,KAAO,EAAA+4B,2BAAA;MACPz+B,MAAQ,EAAA0+B,4BAAA;MACRld,MAAQ,EAAAmd;IAAA,CACV,CAAA;EAAA,CAAA,CAEJ;AAAA,CAEH,CACH,CAAA;AAEA+B,WAAA,CAAYa,WAAc,GAAA,aAAA;ACnCnB,MAAMC,OAAU,GAAAb,IAAA,CACrB3d,UAAW,CAAA,SAASwe,QAClBC,CAAAnjC,KAAA,EAEAuX,GACoB,EAAA;EAxHxB,IAAA5P,EAAA,EAAAO,EAAA,EAAA0Y,EAAA,EAAAwiB,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAn1B,EAAA,EAAAo1B,EAAA;EAyHI,MAAM;IAAC5P,SAAA;IAAW6P;EAAK,CAAA,GAAIjuB,WAAY,CAAA,CAAA;EACvC,MAAMkuB,yBAAyB/L,kBAAmB,EAAA;EAE5C,MAAA;IACJ2K,oBAAoB9B,OAAU,GAAAH,uBAAA;IAC9BliC,OAAU,GAAA,KAAA;IACV+mB,OAAOye,SAAY,GAAA,KAAA;IACnBt/B,kBAAkBq/B,sBAAuB,CAAA9/B,OAAA;IACzC6Q,QAAU,EAAAmvB,SAAA;IACVC,aAAgB,GAAA,KAAA;IAChBtiC,OAAA;IACAigB,QAAA;IACAsiB,kBAAA,GAAA,CAAqB77B,WAAM67B,kBAAN,KAAA,IAAA,GAAA77B,EAAA,GACnBq4B,+BAA4B54B,EAAM,GAAA3H,KAAA,CAAA40B,SAAA,KAAN,YAAmB,QAAQ,CAAA;IACzDoP,mBAAA;IACAC,gBAAmB,GAAA,CAAArjB,EAAA,GAAA5gB,KAAA,CAAMsE,eAAN,KAAA,IAAA,GAAAsc,EAAA,GAAyB+iB,sBAAuB,CAAA9/B,OAAA;IAAA;IAEnEs4B,UAAA;IACA+H,IAAA;IACA7qB,QAAW,GAAA,QAAA;IACX/X,OAAS,EAAAmtB,WAAA;IACTmG,WAAWuP,aAAgB,GAAA,QAAA;IAC3BjH,MAAA;IACAkH,eAAkB,GAAA,IAAA;IAClBlhB,QAAQ8L,UAAa,GAAA,CAAA;IACrBqV,iBAAoB,GAAA,CAAAjB,EAAA,GAAApjC,KAAA,CAAMsE,eAAN,KAAA,IAAA,GAAA8+B,EAAA,GAAyBO,sBAAuB,CAAA9/B,OAAA;IACpEygC,gBAAA;IACA3vB,MAAA;IACA2O,QAAQihB,UAAa,GAAA,CAAA;IACrB1vB,IAAO,GAAA,SAAA;IACPzN,OAAOo9B,SAAY,GAAA,MAAA;IACnBpJ,OAAA,EAASC,WAAc,GAAAqI,KAAA,CAAMe,OAAQ,CAAArJ,OAAA;IACrCsJ,SAAA;IACA,GAAG1f;EACD,CAAA,GAAAhlB,KAAA;EACJ,MAAM2kC,YAAe,GAAA,CAAAtB,EAAA,GAAA1vB,cAAA,CAAerP,eAAe,CAAA,KAA9B,IAAiC,GAAA,KAAA,CAAA,GAAA++B,EAAA,CAAAlwB,MAAA;EAChD,MAAA7R,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAAvL,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA1L,MAAA,GAAS/f,aAAaghC,UAAU,CAAA;EAChC,MAAAK,cAAA,GAAiBrhC,aAAaihC,SAAS,CAAA;EACvC,MAAApJ,OAAA,GAAU73B,aAAa83B,WAAW,CAAA;EAClC,MAAA9K,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAClC,MAAAkrB,QAAA,GAAW79B,OAA8B,IAAI,CAAA;EACnD,MAAMq8B,YAA6B,GAAA,UAAA;EAEnC,MAAMzhC,aAAakX,aAAc,EAAA;EACjC,MAAMurB,aAAgB,GAAA6B,aAAA,IAAiBM,eAAkB,GAAAO,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,YAAA,CAAcv9B,KAAQ,GAAA,KAAA,CAAA;EAK/E,MAAMA,QAAQy6B,gBAAiB,CAAA;IAC7BhO,SAAA;IACAr0B,UAAA;IACA4H,KAAO,EAAAw9B;EAAA,CACR,CAAA;EACK,MAAAC,QAAA,GAAWjgC,OAAOwC,KAAK,CAAA;EAE7BvC,SAAA,CAAU,MAAM;IACdggC,QAAA,CAAS9/B,OAAU,GAAAqC,KAAA;EAAA,CACrB,EAAG,CAACA,KAAK,CAAC,CAAA;EAKV,MAAM0sB,WAAWkO,YAAa,CAAA;IAACC,aAAe;IAAAF,YAAA,EAAc36B;GAAM,CAAA;EAC5D,MAAA09B,WAAA,GAAclgC,OAAOkvB,QAAQ,CAAA;EAEnCjvB,SAAA,CAAU,MAAM;IACdigC,WAAA,CAAY//B,OAAU,GAAA+uB,QAAA;EAAA,CACxB,EAAG,CAACA,QAAQ,CAAC,CAAA;EAGb,MAAMiR,oBAAoBngC,MAAe,EAAA;EAGzCC,SAAA,CAAU,MAAM;IACd,MAAMmgC,kBAAkBzU,YAAa,CAAAxrB,OAAA;IAEjC,IAAA,CAACm/B,QAAQ,CAACc,eAAA,EAAiB;IAE/B,MAAMzD,iBAAiBwD,iBAAkB,CAAAhgC,OAAA;IAEzC,IAAIi/B,mBAAqB,EAAA;MACvB,IAAIzC,mBAAmB,KAAW,CAAA,EAAA;QAChByD,eAAA,CAAApmC,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAc,CAAAuiC,cAAA,EAAA,IAAA,CAAA;MACjD;IAAA,CACF,MAAA,IAAWn6B,UAAU,KAAW,CAAA,EAAA;MACd49B,eAAA,CAAApmC,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAK,CAAAoI,KAAA,EAAA,IAAA,CAAA;IACxC;IAEI,IAAA,OAAO0sB,aAAa,QAAU,EAAA;MAChBkR,eAAA,CAAApmC,KAAA,CAAMk1B,QAAW,GAAA,EAAA,CAAG90B,MAAQ,CAAA80B,QAAA,EAAA,IAAA,CAAA;IAC9C;EAAA,GACC,CAAC1sB,KAAA,EAAOmpB,cAAcyT,mBAAqB,EAAAlQ,QAAA,EAAUoQ,IAAI,CAAC,CAAA;EAEvD,MAAAe,UAAA,GAAaxhC,QAAQ,MAAM;IAC/B,MAAMM,MAAoB,EAAC;IAG3B,IAAI+/B,iBAAiBM,eAAiB,EAAA;MAChCrgC,GAAA,CAAAE,IAAA,CACFihC,IAAK,CAAA;QACHnE,UAAUkD,gBAAoB,IAAA,KAAA,CAAA;QAC9BF,kBAAA;QACAziC,OAAS,EAAA4+B,uBAAA;QACTe;MAAA,CACD,CAAA,CACH;IACF;IAGAl9B,GAAA,CAAIE,KAAKoX,MAAO,CAAA;MAAC8pB,QAAU,EAAAlF;IAAyB,CAAA,CAAC,CAAA;IAGrD,IAAI6D,iBAAiBE,mBAAqB,EAAA;MACpCjgC,GAAA,CAAAE,IAAA,CACFjC,IAAK,CAAA;QACHw+B,aAAmE;UAAA,IAA7D;YAACa,cAAA;YAAgBC,eAAiB;YAAA78B,QAAA;YAAU88B;WAAiB,GAAA6D,KAAA;UAGjEL,iBAAA,CAAkBhgC,OAAU,GAAAw8B,cAAA;UAE5B,MAAM8D,gBAAgBR,QAAS,CAAA9/B,OAAA;UAC/B,MAAMugC,YAAYR,WAAY,CAAA//B,OAAA;UAE9B,IAAIi/B,mBAAqB,EAAA;YACvBv/B,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAc,CAAAuiC,cAAA,EAAA,IAAA,CAAA;UAAA,CACnD,MAAA,IAAW8D,kBAAkB,KAAW,CAAA,EAAA;YACtC5gC,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAa,CAAAqmC,aAAA,EAAA,IAAA,CAAA;UAClD;UAEA,IAAIvB,aAAe,EAAA;YACjBr/B,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMk1B,QAAW,GAAA,EAAA,CAAG90B,MAAK,CAAA0D,IAAA,CAAAmZ,GAAA,CACzCwlB,cAAA,EACAiE,SAAa,IAAA,IAAA,GAAAA,SAAA,GAAAp4B,QACd,CAAA,EAAA,IAAA,CAAA;YAEDzI,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMsiC,SAAY,GAAA,EAAA,CAAGliC,MAAe,CAAAsiC,eAAA,EAAA,IAAA,CAAA;UACxD;QACF,CAAA;QACAh9B,iBAAiB2/B,gBAAoB,IAAA,KAAA,CAAA;QACrCH,aAAA;QACArD,OAAA;QACAuD,mBAAA;QACA1iC,OAAS,EAAA4+B;MAAA,CACV,CAAA,CACH;IACF;IAGA,IAAIkE,eAAiB,EAAA;MACfrgC,GAAA,CAAAE,IAAA,CACFmxB,KAAM,CAAA;QACJ2L,UAAUkD,gBAAoB,IAAA,KAAA,CAAA;QAC9BhD,YAAA;QACA3/B,OAAS,EAAA4+B;MAAA,CACV,CAAA,CACH;IACF;IAGA,IAAI0D,SAAW,EAAA;MACT7/B,GAAA,CAAAE,IAAA,CACFkhB,KAAM,CAAA;QACJthB,OAAS,EAAA4+B,QAAA;QACTnhC,OAAS,EAAA4+B;MAAA,CACV,CAAA,CACH;IACF;IAIA,IAAI9hC,OAAS,EAAA;MACX2F,GAAA,CAAIE,KAAKuwB,MAAM,CAAA;IACjB;IAEIzwB,GAAA,CAAAE,IAAA,CACFshC,IAAK,CAAA;MACHxE,UAAUsD,iBAAqB,IAAA,KAAA,CAAA;MAC/B/iC,OAAS,EAAA4+B,uBAAA;MACT0C,QAAU,EAAA;IAAA,CACX,CAAA,CACH;IAEO,OAAA7+B,GAAA;EAAA,CACN,EAAA,CACD3F,OAAA,EACAwlC,SAAA,EACAE,aAAA,EACAC,kBAAA,EACAE,gBAAA,EACAxD,OAAA,EACAuD,mBAAA,EACAI,eAAA,EACAC,iBAAA,CACD,CAAA;EAEK,MAAA;IAACn9B;IAAGC,CAAG;IAAAwtB,cAAA;IAAgBC;IAAW4Q,IAAM;IAAA5C,QAAA;IAAU6C;EAAM,CAAA,GAAIC,WAAY,CAAA;IAC5ET,UAAA;IACArQ,SAAW,EAAAuP,aAAA;IACXwB,oBAAsB,EAAAC;EAAA,CACvB,CAAA;EAEK,MAAAC,eAAA,GAAA,CAAkBvC,EAAe,GAAA3O,cAAA,CAAA4Q,IAAA,KAAf,IAAqB,GAAA,KAAA,CAAA,GAAAjC,EAAA,CAAAuC,eAAA;EAEvC,MAAAnD,MAAA,GAAA,CAASa,EAAe,GAAA5O,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAoe,EAAA,CAAAr8B,CAAA;EAC/B,MAAAy7B,MAAA,GAAA,CAASa,EAAe,GAAA7O,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAqe,EAAA,CAAAr8B,CAAA;EAErC,MAAMouB,OAAU,GAAA,CAAAlnB,EAAA,GAAAsmB,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAAtmB,EAAA,CAAAknB,OAAA;EACrD,MAAMC,OAAU,GAAA,CAAAiO,EAAA,GAAA9O,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAA8O,EAAA,CAAAjO,OAAA;EAE/C,MAAAsQ,QAAA,GAAWrd,WAAY,CAACsd,OAAmC,IAAA;IAC/DtD,QAAA,CAAS19B,OAAU,GAAAghC,OAAA;EACrB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,WAAc,GAAAvd,WAAA,CACjBxb,IAAgC,IAAA;IAC/BsjB,YAAA,CAAaxrB,OAAU,GAAAkI,IAAA;IACvBu4B,IAAA,CAAKQ,YAAY/4B,IAAI,CAAA;EACvB,CAAA,EACA,CAACsjB,cAAciV,IAAI,CAAA,CACrB;EAEA,MAAMS,YAAe,GAAAxd,WAAA,CAClBxb,IAA6B,IAAA;IAC5Bu4B,IAAA,CAAKS,aAAah5B,IAAI,CAAA;IAGtB,MAAMi5B,WAAYrC,SAAmB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAtsB,GAAA;IAEjC,IAAA,OAAO2uB,aAAa,UAAY,EAAA;MAClCA,QAAA,CAASj5B,IAAI,CAAA;eACJi5B,QAAU,EAAA;MACnBA,QAAA,CAASnhC,OAAU,GAAAkI,IAAA;IACrB;EACF,CAAA,EACA,CAAC42B,WAAW2B,IAAI,CAAA,CAClB;EAEM,MAAAnb,KAAA,GAAQ5mB,QAAQ,MAAM;IAC1B,IAAI,CAACogC,SAAa,IAAAS,gBAAA,EAAyB,OAAA,IAAA;IAE3C,OAAO5Z,YAAa,CAAAmZ,SAAA,EAAW;MAACtsB,GAAA,EAAK0uB;IAAa,CAAA,CAAA;EACjD,CAAA,EAAA,CAACpC,SAAW,EAAAS,gBAAA,EAAkB2B,YAAY,CAAC,CAAA;EAE9CphC,SAAA,CAAU,MAAM;IACd,IAAI6/B,SAAW,EAAA;MACT,IAAA,OAAOA,cAAc,UAAY,EAAA;QACnCA,SAAA,CAAUe,MAAM,CAAA;iBACPf,SAAW,EAAA;QACpBA,SAAA,CAAU3/B,OAAU,GAAA0gC,MAAA;MACtB;IACF;EAAA,CACC,EAAA,CAACA,MAAQ,EAAAf,SAAS,CAAC,CAAA;EAEtB7/B,SAAA,CAAU,MAAM;IACT2gC,IAAA,CAAAS,YAAA,CAAa3B,oBAAoB,IAAI,CAAA;EAAA,CACzC,EAAA,CAACA,gBAAkB,EAAAkB,IAAI,CAAC,CAAA;EAE3B,IAAI/jB,QAAU,EAAA;IACZ,OAAOoiB,aAAe,eAAA5uB,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAA,CAAA;EACxB;EAEM,MAAA4pC,OAAA,GACH,eAAAxvB,GAAA,CAAAkmB,aAAA,EAAA;IAAcC,OACb;IAAA1mB,QAAA,EAAA,eAAAO,GAAA,CAACmtB,WAAA,EAAA;MACE,GAAGpd,SAAA;MACJud,kBAAoB,EAAA9B,OAAA;MACpBriC,OAAA;MACA+mB,KAAO,EAAAye,SAAA;MACPnB,QAAU,EAAAqD,QAAA;MACVpD,MAAA;MACAC,MAAA;MACAwD,MAAQ,EAAAN,eAAA;MACRxsB,QAAA;MACA/X,OAAA;MACAszB,SAAA;MACA1R,MAAA;MACA3L,GAAK,EAAAyuB,WAAA;MACLrxB,MAAA;MACA2O,MAAA;MACAiS,OAAA;MACAC,OAAA;MACAoN,QAAA;MACA/tB,IAAA;MACAzN,KAAA,EAAO48B,mBAAsB,GAAAe,iBAAA,CAAkBhgC,OAAU,GAAAqC,KAAA;MACzDF,CAAA;MACAC,CAAA;MAECuN,QAAA,EAAAlT;IAAA,CAEL;EAAA,CAAA,CAAA;EAGF,sBAGImnB,IAAA,CAAA9tB,QAAA,EAAA;IAAA6Z,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC4iB,kBAAA,EAAA;MACCE,SAAW,EAAA35B,OAAA;MACX45B,OAAS,EAACtjB,QAAa,IAAA,eAAAO,GAAA,CAACmxB;QAAiB1xB;MAAS,CAAA,CAAA;MAEjDA,QACC,EAAAwvB,IAAA,IAAA,eAAAjvB,GAAA,CAAC4iB,kBAAA,EAAA;QACCE,SAAA,EAAW,CAAC,CAACmF,MAAA;QACblF,OAAA,EAAUtjB,QAAA,IAAA,eACPO,GAAA,CAAAja,MAAA,EAAA;UAAOiiC,eAAiB,EAAA,OAAOC,MAAW,KAAA,QAAA,GAAWA,MAAS,GAAA,KAAA,CAAA;UAC5DxoB;QACH,CAAA,CAAA;QAGDA,QAAA,EAAA+vB;MAAA,CACH;IAAA,CAEJ,CAAA,EAGCpa,KAAA;EACH,CAAA,CAAA;AAAA,CAEH,CACH,CAAA;AAEA6Y,OAAA,CAAQD,WAAc,GAAA,SAAA;;;;;;AC5btB,IAAAt7B,IAAA,EAAAO,IAAA;AAKO,SAASm+B,cAAyCA,CAAA,EAAA;EACvD,OAAOvlB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,8JAAA,CAAA,CAAA,CAAA,CAAA;AAWZ;AAEO,SAASulB,kBAAkBtmC,KAA2C,EAAA;EAC3E,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC9C,MAAMwmC,QAAQnlB,KAAM,CAAAolB,KAAA,CAAMxkC,IAAO,GAAAof,KAAA,CAAMolB,MAAMC,QAAY,IAAA,CAAA;EAElD,OAAA3lB,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,YAYkC,CAAA,CAAA,8NAAA,EAAA,6HAAA,EAOT,kBACD,EAAA,0BAAA,EACY,yBACE,uBAI1C,EAAA,yFAAA,EAKgB,mBACC,EAAA,qBAAA,EACkB,oBACD,EAAA,4BAAA,EACY,2BACF,sHAU5C,EAAA,yFAAA,EAOA,uJASoD,EAAA,uBAAA,EAIpD,2CAEkD,EAAA,wGAAA,EAMO,yBACd,6CAGM,EAAA,sHAAA,EAMQ,uBACd,EAAA,6CAAA,EAGM,uBA5EpC,CAAA,CAAA,CAAA,EAAAjiB,GAAA,CAAIsiB,MAAMolB,KAAM,CAAAxkC,IAAA,GAAO,CAAC,CAAA,EAO7BlD,GAAI,CAAAsiB,KAAA,CAAMolB,MAAMxkC,IAAI,CAAA,EACrBlD,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAxkC,IAAI,GACZlD,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAxkC,IAAA,GAAO,CAAC,CAAA,EAC3BgZ,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAA9F,EAAA,EAC5BT,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKQtI,GAAI,CAAAynC,IAAI,CACP,EAAAznC,GAAA,CAAIynC,IAAI,CAAA,EACNznC,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAC,QAAQ,CACzB,EAAA3nC,GAAA,CAAIsiB,KAAM,CAAAolB,KAAA,CAAMC,QAAQ,CAAA,EAChB3nC,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAC,QAAA,GAAW,CAAC,CAAA,EAC/BzrB,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAO9BtG,cAAe,CAAA;IAC3B9H,MAAA,EAAQ;MAAC/L,KAAA,EAAOga,KAAM,CAAAjO,MAAA,CAAO/L,KAAO;MAAA4T,KAAA,EAAOA,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO;IAAM,CAAA;IAC7EgI,SAAA,EAAWiG,MAAMolB,KAAM,CAAArrB;EACxB,CAAA,GAIaJ,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EAAA,CACrB,CASmB,EAAA4T,KAAA,CAAMoG,MAAMM,OAAQ,CAAAJ,OAAA,CAAQnO,QAClC4H,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,QAAQuD,KAAM,CAAArJ;EAAA,CAC1C,CAEe,EAAAR,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,QAAQuD,KAAM,CAAArJ,EAAA,EAM1BR,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAxO,MAAA,EACvC6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAnG,EAAA,EAG3BR,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAxO,MAAA,EAMrB6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAtO,MAAA,EACvC6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAjG,EAAA,EAG3BR,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAtO,MAAA,CAAA;AAInD;ACvGA,MAAMiR,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAI+hB,cAAc,CAAA;AACtC,MAAMhW,OAAA,GAAQhM,MAAO,CAAAjD,KAAA,CAAMklB,iBAAiB,CAAA;AAOrC,MAAMI,KAAQ,GAAAhiB,UAAA,CAAW,SAASgiB,MAAAA,CACvC1mC,OACAuwB,YACA,EAAA;EACM,MAAA;IAACE;IAAWhP,QAAU;IAAA7iB,KAAA;IAAO8Y;IAAgBiK,QAAU;IAAA,GAAGqD;EAAa,CAAA,GAAAhlB,KAAA;EACvE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC9Y,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC,OACG,eAAAiR,IAAA,CAAAvE,MAAA,EAAA;IAAKqM,SAAsB;IAAA,SAAA,EAAQ;IAAQ7xB,KAC1C;IAAA8V,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC7C,YAAA,EAAYjK,iBAAiB,EAAK,GAAA,KAAA,CAAA;MACjC,GAAGsN,SAAA;MACJvD,UAAUA,QAAY,IAAAE,QAAA;MACtBA,QAAA;MACApK,GAAA;MACArd,IAAK,EAAA;IAAA,CACP,CAAA,EAAA,mBACC,MAAK,EAAA,EAAA,CAAA;EACR,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC3CD,IAAAyN,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA;AAYA,SAASL,SAAoCA,CAAA,EAAA;EAC3C,OAAOjiB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,kLAAA,CAAA,CAAA,CAAA,CAAA;AAUZ;AAEA,SAAS4lB,eAAe3mC,KAA2C,EAAA;EACjE,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,sGAAA,EAIuB,gIAAhB,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAK2f,IAAK,CAAA1f,MAAA,CAAA;AAU7B;AAEA,SAAS+lC,gBAAgB5mC,KAAmB,EAAA;EAC1C,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAA+gB,GAAA,CAAAF,IAAA,KAAAA,IAAA,GAAGG,YAE0C,CAAA,CAAA,6CAAA,EAAA,gBAAA,EACX,qBAIrC,EAAA,iHAAA,EAKoD,sBACX,yBAIrC,EAAA,0FAAA,EASF,oFAKiD,EAAA,kBAAA,EACX,uBAItC,EAAA,kGAAA,EAKiD,oBACX,uBAItC,EAAA,cAAA,CAAA,CAAA,CAAA,EA5CgB/F,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,EACvC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA,EACvBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKuB4T,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAY,OAAA,CAAQzG,EACvC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAAV,EAAA,EACvBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAA9O,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,GAMW6T,cAAe,CAAA;IAC3B9H,MAAA,EAAQ;MAAC/L,KAAA,EAAOga,KAAM,CAAAjO,MAAA,CAAO/L,KAAO;MAAA4T,KAAA,EAAOA,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO;IAAM,CAAA;IAC7EgI,SAAA,EAAWiG,MAAMylB,MAAO,CAAA1rB;EACzB,CAAA,CAAA,EAKmBH,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAM,QAAA,CAASnG,EACxC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAJ,EAAA,EACxBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAxO,MAAA;IACpC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKmB4T,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAI,QAAA,CAASjG,EACxC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAF,EAAA,EACxBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO,MAAA;IACpC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,CAAA;AAGP;AAEA,SAAS0/B,SAAS9kC,IAAqB,EAAA;EAC9B,OAAA;IAACD,QAAU,EAAAjD,GAAA,CAAIkD,IAAK,CAAAD,QAAQ;IAAGM,UAAY,EAAAvD,GAAA,CAAIkD,IAAK,CAAAK,UAAU;GAAC;AACxE;AAEA,SAAS0kC,mBAAmB/mC,KAA2C,EAAA;EAC/D,MAAA;IAAC6f;EAAa,CAAA,GAAA7f,KAAA;EACpB,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAAd,WAAA,CAAYC,KAAA,EAAO2gB,SAAA,EAAY/d,SAAA,IACpCglC,QAAS,CAAAlmC,IAAA,CAAK2f,IAAK,CAAAzf,KAAA,CAAMgB,SAAS,CAAA,IAAKlB,IAAK,CAAA2f,IAAA,CAAKzf,KAAM,CAAA,CAAC,CAAC,CAAA,CAC3D;AACF;AAEA,SAASkmC,UASPA,CAAA,EAAA;EACO,OAAA,CACL/jB,qBAAA,EACA0jB,cAAA,EACAC,eAAA,EACAG,kBAAA,EACApmB,oCAAA,CACF;AACF;AAEA,SAASsmB,aAAajnC,KAA2C,EAAA;EAC/D,MAAM;IAACgb;EAAS,CAAA,GAAA1a,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAA+gB,GAAA,CAAAsiB,IAAA,KAAAA,IAAA,GAAGriB,YAOyC,CAAA,CAAA,8HAAA,EAAA,uIAAA,EAKI,8FAMD,EAAA,6FAAA,EAKA,mBAhBjC/F,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQC,EAKxB,EAAAvG,KAAA,CAAMoG,MAAMC,OAAQ,CAAAY,OAAA,CAAQV,EAM9B,EAAAvG,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,SAASF,EAK7B,EAAAvG,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAJ,EAAA,CAAA;AAGtD;AAEO,MAAM2lB,WAAc,GAAA;EACzB5xB,IAAM,EAAAytB,SAAA;EACN3hB,KAAO,EAAA4lB,UAAA;EACPG,OAAS,EAAAF;AACX,CAAA;ACjJA,MAAM7iB,MAAO,GAAAC,MAAA,CAAOC,GAAI,CAAA4iB,WAAA,CAAY5xB,IAAI,CAAA;AAExC,MAAM+a,OAAQ,GAAAhM,MAAA,CAAOwiB,MAKlB,CAAAK,WAAA,CAAY9lB,KAAK,CAAA;AAEpB,MAAMgmB,OAAU,GAAA/iB,MAAA,CAAOuG,GAAG,CAAA,CAAEsc,YAAYC,OAAO,CAAA;AAOxC,MAAME,MAAS,GAAA3iB,UAAA,CAAW,SAAS2iB,OAAAA,CACxCrnC,OACAuwB,YACA,EAAA;EACM,MAAA;IACJ7b,QAAA;IACAgD,cAAA;IACA+J,QAAA;IACA1f,QAAW,GAAA,CAAA;IACXT,OAAU,GAAA,CAAA;IACV4hB,MAAS,GAAA,CAAA;IACTvB,QAAA;IACAthB,KAAQ,GAAA,CAAA;IACR,GAAG2kB;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC9Y,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAGnC,OAAA,eAAAiR,IAAA,CAACvE,MAAK,EAAA;IAAA,SAAA,EAAQ,QACZ;IAAA1P,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC7C,SAAQ,EAAA,QAAA;MACP,GAAGqD,SAAA;MACJnF,SAAA,EAAWtc,aAAaxB,QAAQ,CAAA;MAChCie,QAAA,EAAUzc,aAAajC,OAAO,CAAA;MAC9B6hB,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;MAC5BjD,MAAA,EAAQ1c,aAAalD,KAAK,CAAA;MAC1BohB,UAAUA,QAAY,IAAAE,QAAA;MACtBpK,GAAA;MAEC7C;IAAA,CACH,CAAA,EAAA,eAEAO,GAAA,CAACmyB,OAAQ,EAAA;MAAA9lC,OAAA;MACPoT,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;QAAKppB,MAAMD,QACV;QAAA2S,QAAA,EAAA,eAAAO,GAAA,CAACqyB,eAAgB,EAAA,CAAA,CAAA;MACnB,CAAA;KACF,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACxED,MAAMlvB,UAAwB,GAAA;EAC5B,kBAAoB,EAAA;IAClB3W,OAAS,EAAA;EACX,CAAA;EACA,iCAAmC,EAAA;IACjC4W,SAAW,EAAA;EACb,CAAA;EACAgF,mBAAqB,EAAA,gBAAA;EACrBN,YAAc,EAAA;AAChB,CAAA;AAEO,SAASwqB,cAA4BA,CAAA,EAAA;EACnC,OAAAnvB,UAAA;AACT;AAEO,SAASovB,0BACdxnC,KACa,EAAA;EACb,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAigB,MAAA,EAAS1f,UAAgB,KAAA;IACvDkd,OAAS,EAAA3e,GAAA,CAAIuB,KAAM,CAAAE,UAAU,CAAC;EAC9B,CAAA,CAAA,CAAA;AACJ;AChBA,MAAM6jB,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAAkC2c,gBAAgBC,yBAAyB,CAAA;AAO3F,MAAMC,KAAQ,GAAA/iB,UAAA,CAAW,SAAS+iB,MAAAA,CACvCznC,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAA;IAAI9mB,KAAO;IAAA,GAAG2kB;GAAa,GAAAhlB,KAAA;EAGhC,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAS,EAAA,OAAO+C,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA,OAAA;IACP,GAAGnC,SAAA;IACJ/E,MAAA,EAAQ1c,aAAalD,KAAK,CAAA;IAC1BipB,WAAa,EAAAnC,EAAA;IACb5P;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;;;;;;ACrCD,IAAA5P,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,EAAA;AAMO,SAASmE,gBAA2CA,CAAA,EAAA;EACzD,OAAO5mB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2FAAA,CAAA,CAAA,CAAA,CAAA;AAMZ;AAGO,SAAS4mB,iBAA4CA,CAAA,EAAA;EAE1D,OAAO7mB,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,2RAAA,CAAA,CAAA,CAAA,CAAA;AAgBZ;AAGO,SAAS6mB,2BAA2B5nC,KAA2C,EAAA;EACpF,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAA+gB,GAAA,CAAAF,IAAA,KAAAA,IAAA,GAAGG,2CAC+C,4BACJ,EAAA,gIAAA,EAOnB,mBACE,wBACW,EAAA,+bAAA,EAoB+B,wJAQvB,EAAA,8BAAA,EACA,+GAKM,EAAA,gCAAA,EACJ,8FAIA,gCACA,EAAA,iGAAA,EAKG,gCACJ,kFAII,EAAA,8BAAA,EACJ,mBA7DjC/F,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO,MAC5B,EAAA6H,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,IAOxC1c,GAAI,CAAAsiB,KAAA,CAAMymB,OAAOzgC,KAAK,CAAA,EACrBtI,GAAI,CAAAsiB,KAAA,CAAMymB,MAAO,CAAAnmC,MAAM,GAChB5C,GAAI,CAAAsiB,KAAA,CAAMymB,OAAOnmC,MAAS,GAAA,CAAC,GAoBnBuZ,cAAe,CAAA;IAACE,SAAW,EAAAiG,KAAA,CAAMymB,MAAO,CAAA1sB;EAAA,CAAU,CAQpD,EAAAH,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAC5BvG,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,EAK1B,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAY,OAAA,CAAQ9O,QAC5B6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQY,OAAQ,CAAAzG,EAAA,EAI5BR,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAC5BvG,KAAM,CAAAoG,KAAA,CAAMC,QAAQC,OAAQ,CAAA9F,EAAA,EAK9BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO,MAAA,EAC7B6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAjG,EAAA,EAI7BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQM,SAASxO,MAC7B,EAAA6H,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAnG,EAAA,CAAA;AAGxD;AAGO,SAASssB,kBAAkB9nC,KAA2C,EAAA;EAC3E,MAAM;IAACohB;EAAS,CAAA,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,oBAAGC,YAQwB,CAAA,CAAA,uKAAA,EAAA,iBAAA,EACE,0BACW,OAFpC,CAAA,CAAA,CAAA,EAAAjiB,GAAA,CAAIsiB,MAAMymB,MAAO,CAAAzgC,KAAK,GACrBtI,GAAI,CAAAsiB,KAAA,CAAMymB,OAAOnmC,MAAM,CAAA,EAChB5C,IAAIsiB,KAAM,CAAAymB,MAAA,CAAOnmC,SAAS,CAAC,CAAA,CAAA;AAEhD;AAGO,SAASqmC,kBACd/nC,KACwB,EAAA;EAClB,MAAA;IAACgoC;EAAkB,CAAA,GAAAhoC,KAAA;EACzB,MAAM;IAACohB;EAAS,CAAA,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACjC,MAAAkoC,UAAA,GAAa7mB,MAAMymB,MAAO,CAAAzgC,KAAA;EAC1B,MAAA8gC,WAAA,GAAc9mB,MAAMymB,MAAO,CAAAnmC,MAAA;EAC3B,MAAAymC,YAAA,GAAe/mB,MAAMymB,MAAO,CAAAvmC,OAAA;EAClC,MAAMU,IAAO,GAAAkmC,WAAA,GAAc9mB,KAAM,CAAAymB,MAAA,CAAOvmC,OAAU,GAAA,CAAA;EAC5C,MAAA8mC,aAAA,GAAgBH,UAAa,GAAAE,YAAA,GAAe,CAAI,GAAAnmC,IAAA;EACtD,MAAMqmC,mBAAsB,GAAAJ,UAAA,GAAa,CAAI,GAAAjmC,IAAA,GAAO,CAAI,GAAAmmC,YAAA;EACxD,MAAM3X,OAAU,GAAAwX,cAAA,KAAmB,IAAQ,IAAAhoC,KAAA,CAAMsoC,QAAa,KAAA,IAAA;EAE9D,OAAOxnB,gBAAGC,YAKiB,CAAA,CAAA,4FAAA,EAAA,cAAA,EACD,mBACL,gBACD,EAAA,wBAAA,EACY,qEAE0B,uCACW,EAAA,+IAAA,EAQlE,UAKA,EAAA,MAAA,CAAA,CAAA,CAAA,EApBOjiB,IAAIqpC,YAAY,CAAA,EACjBrpC,IAAIqpC,YAAY,CAAA,EACbrpC,IAAIkD,IAAI,CAAA,EACTlD,GAAI,CAAAkD,IAAI,GACAlD,GAAI,CAAAkD,IAAA,GAAO,CAAC,CAEN,EAAAof,KAAA,CAAMymB,OAAOU,oBACN,EAAAnnB,KAAA,CAAMymB,OAAOW,wBAKzC,EAAAhY,OAAA,IACF1P,oBAAGC,YACqC,CAAA,CAAA,iCAAA,EAAA,kBAAA,CAAA,CAAA,CAAA,EAAbqnB,gBAGzBJ,cACF,IAAAlnB,GAAA,CAAAwiB,IAAA,KAAAA,IAAA,GAAGviB,iDAC2C,kBAAnB,CAAA,CAAA,CAAA,EAAAsnB,mBAAA,CAAA,CAAA;AAG/B;ACpJA,MAAMjkB,MAAA,GAAOC,MAAO,CAAAG,IAAA,CAAKkjB,gBAAgB,CAAA;AACzC,MAAMrX,OAAA,GAAQhM,MAAO,CAAAjD,KAAA,CAAMumB,iBAAiB,CAAA;AAC5C,MAAMc,cAAA,GAAiBpkB,MAAO,CAAAG,IAAA,CAAKojB,0BAA0B,CAAA;AAC7D,MAAMc,KAAA,GAAQrkB,MAAO,CAAAG,IAAA,CAAKsjB,iBAAiB,CAAA;AAC3C,MAAMa,KAAA,GAAQtkB,MAAO,CAAAG,IAAA,CAAqDujB,iBAAiB,CAAA;AASpF,MAAMa,MAAS,GAAAlkB,UAAA,CAAW,SAASkkB,OAAAA,CACxC5oC,OACAuwB,YACA,EAAA;EACM,MAAA;IAACC;IAASC,SAAW;IAAAhP,QAAA;IAAUiP;IAAe/O,QAAU;IAAA/iB,KAAA;IAAO,GAAGomB;EAAa,CAAA,GAAAhlB,KAAA;EAC/E,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC1rB,SAAA,CAAU,MAAM;IACd,IAAI0S,IAAIxS,OAAS,EAAA;MAEXwS,GAAA,CAAAxS,OAAA,CAAQ2rB,gBAAgBA,aAAiB,IAAA,KAAA;IAC/C;EAAA,CACC,EAAA,CAACA,aAAe,EAAAnZ,GAAG,CAAC,CAAA;EAEvB,OACG,eAAAoR,IAAA,CAAAvE,MAAA,EAAA;IAAKqM,SAAsB;IAAA,SAAA,EAAQ;IAAS7xB,KAC3C;IAAA8V,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC5C,GAAGqD,SAAA;MACJwL,OAAA,EAASE,kBAAkB,IAAQ,IAAAF,OAAA;MACnC/O,UAAUA,QAAY,IAAAE,QAAA;MACtBznB,IAAK,EAAA,UAAA;MACLqd;IAAA,CACF,CAAA,EAAA,eACCoR,IAAA,CAAA8f,cAAA,EAAA;MAAe,aAAW,EAAA,IAAA;MAAC,aAAU,gBACpC;MAAA/zB,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACyzB,KAAM,EAAA,EAAA,CAAA,EAAA,eACNzzB,GAAA,CAAA0zB,KAAA,EAAA;QAAML,QAAU,EAAA9X,OAAA;QAASwX,gBAAgBtX;OAAe,CAAA;KAC3D,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC7DD,IAAA/oB,IAAA;AA8BA,MAAMyc,MAAA,GAAOC,MAAO,CAAAG,IAAA,CAAKxD,kBAAkB,CAAA;AAE3C,MAAM6nB,WAAA,GAAYxkB,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2EAAA,CAAA,CAAA,CAAA,CAAA;AAO7B,MAAMsP,UAAQhM,MAAO,CAAAykB,QAAA,CACnBlpB,2BAAA,EACAqB,kBAAA,EACAW,sBACF,CAAA;AAEA,MAAMmnB,iBAAe1kB,MAAO,CAAAC,GAAA,CAC1BrB,qBAAA,EACApB,4BACF,CAAA;AAQO,MAAMmnB,QAAW,GAAAtkB,UAAA,CAAW,SAASskB,SAAAA,CAC1ChpC,OACAuwB,YACA,EAAA;EACM,MAAA;IACJpd,MAAS,GAAA,IAAA;IACTuE,cAAA;IACA+J,QAAW,GAAA,KAAA;IACX1f,QAAW,GAAA,CAAA;IACXT,OAAU,GAAA,CAAA;IACV4hB,MAAS,GAAA,CAAA;IACT6B,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC,MAAM3b,YAAYQ,YAAa,EAAA;EAE/BqC,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC,sBACGzC,GAAA,CAAAmP,MAAA,EAAA;IAAK,SAAQ,EAAA,UAAA;IACZ1P,8BAACm0B,WACC,EAAA;MAAAn0B,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;QACC,SAAQ,EAAA,UAAA;QACR,eAAazb,SAAU,CAAAD,MAAA;QACvB,aAAWC,SAAU,CAAAC,IAAA;QACpB,GAAGmQ,SAAA;QACJnF,SAAA,EAAWtc,aAAaxB,QAAQ,CAAA;QAChCie,QAAA,EAAUzc,aAAajC,OAAO,CAAA;QAC9B4f,SAAStM,SAAU,CAAAD,MAAA;QACnBsL,MAAA,EAAQ1c,aAAa,CAAC,CAAA;QACtB4d,OAAOvM,SAAU,CAAAC,IAAA;QACjBlU,OAAS,EAAAokB,MAAA;QACTtD,QAAA;QACAlK;MAAA,CACF,CAAA,EAAA,eACAtC,GAAA,CAAC8zB,cAAA,EAAA;QACC5lB,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;QAC5BhC,SAAStM,SAAU,CAAAD,MAAA;QACnBwM,OAAOvM,SAAU,CAAAC,IAAA;QACjB,aAAA,EAAa1B,SAAS,EAAK,GAAA,KAAA,CAAA;QAC3B,eAAayB,SAAU,CAAAD,MAAA;QACvB,aAAWC,SAAU,CAAAC;MAAA,CACvB,CAAA;IACF,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;ACzGD,IAAAlN,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA,EAAAC,IAAA,EAAAC,IAAA;AA+EA,MAAM2F,sBAAA,GAA8C;EAACpjB,MAAA,EAAQ;CAAC;AAE9D,MAAMzB,MAAA,GAAOC,MAAO,CAAAyL,IAAI,CAAE,CAAAoZ,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAO,CAAA,CAAEtI,kBAAkB,CAAA;AAEzE,MAAM6nB,SAAA,GAAYxkB,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2EAAA,CAAA,CAAA,CAAA,CAAA;AAO7B,MAAMooB,MAAA,GAAS9kB,MAAO,CAAAyL,IAAI,CAAE,CAAAoZ,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAO,CAAA,CAAxCphB,IAAyC,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,kIAAA,CAAA,CAAA,CAAA,CAAA;AAUxD,MAAMqoB,MAAA,GAAS/kB,MAAO,CAAAyL,IAAI,CAAE,CAAAoZ,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAO,CAAA,CAAxC1I,IAAyC,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,gIAAA,CAAA,CAAA,CAAA,CAAA;AAUxD,MAAMsP,QAAQhM,MAAO,CAAAjD,KAAA,CACnBxB,2BAAA,EACAqB,kBAAA,EACAW,sBACF,CAAA;AAEA,MAAMmnB,eAAe1kB,MAAO,CAAAG,IAAA,CAC1BvB,qBAAA,EACApB,4BACF,CAAA;AAEA,MAAMwnB,OAAU,GAAAhlB,MAAA,CAAOuG,GAAG,CAAA,CAAVwY,IAAW,KAAAA,IAAA,GAAAriB,YAAA,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA;AAM3B,MAAMuoB,QAAW,GAAAjlB,MAAA,CAAOuG,GAAG,CAAA,CAAVyY,IAAW,KAAAA,IAAA,GAAAtiB,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA;AAM5B,MAAMwoB,SAAY,GAAAllB,MAAA,CAAOyL,IAAI,CAAA,CAAXwT,IAAY,KAAAA,IAAA,GAAAviB,YAAA,CAAA,CAAA,qFAAA,CAAA,CAAA,CAAA,CAAA;AAO9B,MAAMyoB,oBAAA,GAAuBnlB,MAAO,CAAAgK,MAAM,CAAE,CAAA;EAC1C,iBAAmB,EAAA;IACjB5sB,OAAS,EAAA;EACX;AACF,CAAC,CAAA;AAOM,MAAMgoC,SAAY,GAAA/kB,UAAA,CAAW,SAAS+kB,UAAAA,CAC3CzpC,OACAuwB,YACA,EAAA;EACM,MAAA;IACJmZ,2BAAA;IACAv2B,MAAS,GAAA,IAAA;IACTw2B,WAAA;IACAloB,QAAW,GAAA,KAAA;IACX1f,UAAU6nC,YAAe,GAAA,CAAA;IACzB9c,IAAA;IACAwB,SAAA;IACAub,OAAA;IACAvoC,SAASmtB,WAAc,GAAA,CAAA;IACvBqb,MAAA;IACA5mB,QAAQ8L,UAAa,GAAA,CAAA;IACrBrN,QAAA;IACAthB,OAAO6uB,SAAY,GAAA,CAAA;IACnB6a,MAAA;IACAryB,cAAA;IACAxd,IAAO,GAAA,MAAA;IACP6qB,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC,MAAM3b,YAAYQ,YAAa,EAAA;EAEzB,MAAArT,QAAA,GAAWwB,aAAaqmC,YAAY,CAAA;EACpC,MAAAtoC,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAAvL,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA3uB,KAAA,GAAQkD,aAAa2rB,SAAS,CAAA;EAG9B,MAAA8a,eAAA,GAAkB7lC,QAAQwlC,WAAW,CAAA;EACrC,MAAAM,QAAA,GAAW9lC,QAAQ2oB,IAAI,CAAA;EACvB,MAAAod,aAAA,GAAgB/lC,QAAQmqB,SAAS,CAAA;EACjC,MAAAvM,UAAA,GAAa5d,QAAQ4lC,MAAM,CAAA;EAC3B,MAAAjoB,UAAA,GAAa3d,QAAQ2lC,MAAM,CAAA;EAEjCryB,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAG/B,MAAAyyB,oBAAA,GAAuB1hB,WAAY,CAACtiB,KAA+C,IAAA;IACvFA,KAAA,CAAMikC,cAAe,CAAA,CAAA;IACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;EACxB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,gBAAmB,GAAA7hB,WAAA,CACtBtiB,KAA+C,IAAA;IAzMpDwB,IAAAA,GAAAA;IA0MMxB,KAAA,CAAMikC,cAAe,CAAA,CAAA;IACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;IAElB,IAAAR,OAAA,EAAiBA,OAAA,EAAA;IAGrB,CAAAliC,GAAA,GAAA4P,GAAA,CAAIxS,OAAJ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA4C,GAAa,CAAAmzB,KAAA,EAAA;EACf,CAAA,EACA,CAAC+O,SAAStyB,GAAG,CAAA,CACf;EAGA,MAAMgzB,UAAa,GAAA9mC,OAAA,CACjB,MACEqmC,MACE,IAAA,eAAA70B,GAAA,CAACk0B;IAAOj+B,SAAS,EAAA,IAAA;IAACM,YAAU,IAAC;IAAAF,YAAA,EAAY,IAAC;IAAA4X,MAAA;IAAgBhK,QAAO,QAAS;IAAArE,IAAA,EAAK;IAC7EH,QAAC,EAAA,eAAAO,GAAA,CAAA,MAAA,EAAA;MAAMP;IAAO,CAAA;GAChB,CAAA,EAEJ,CAACo1B,QAAQ5mB,MAAM,CAAA,CACjB;EAGA,MAAMsnB,gBAAmB,GAAA/mC,OAAA,CACvB,qBACEklB,IAAA,CAACogB,YAAA,EAAA;IACCjnB,UAAA;IACAE,yBAA2B,EAAA0nB,2BAAA;IAC3B3nB,UAAA;IACAoB,OAAS,EAAAD,MAAA;IACThC,SAAStM,SAAU,CAAAD,MAAA;IACnBwM,OAAOvM,SAAU,CAAAC,IAAA;IACjB,aAAA,EAAa1B,SAAS,EAAK,GAAA,KAAA,CAAA;IAC3B,eAAayB,SAAU,CAAAD,MAAA;IACvB,aAAWC,SAAU,CAAAC,IAAA;IAEpBH,QAAA,EAAA,CAAAoY,IAAA,uBACEuc,OAAQ,EAAA;MAAA/nC,OAAA;MACPoT,QAAC,iBAAAiU,IAAA,CAAAyC,IAAA,EAAA;QAAKppB,MAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;MAAA,CACjD;IACF,CAAA,CAAA,EAGD,CAACkd,mBAAmB1b,SACnB,IAAA,eAAArZ,GAAA,CAACq0B;MAAShoC,OACR;MAAAoT,QAAA,EAAA,eAAAiU,IAAA,CAACyC,IAAK,EAAA;QAAAppB,IAAA,EAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAed,SAAS,CAAK,IAAAA,SAAA,EAC7Br0B,cAAAA,CAAAA,kBAAmB,CAAAq0B,SAAS,CAAK,IAAAe,aAAA,CAAcf,SAAS,CAAA;MAAA,CAC3D;IACF,CAAA,CAAA;EAAA,CAEJ,CAAA,EAEF,CACEob,2BAAA,EACAv2B,MAAA,EACApR,QAAA,EACA+qB,IAAA,EACAwB,SAAA,EACAhtB,OAAA,EACA4hB,MAAA,EACAtO,SAAA,EACAo1B,eAAA,EACAloB,UAAA,EACAC,UAAA,CACF,CACF;EAGA,MAAM0oB,qBAAwB,GAAAhnC,OAAA,CAC5B,MACEnC,OAAA,CAAQhC,GAAI,CAAChC,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACgE,OAAO,CAAA,CACV;EACA,MAAMopC,kBAAqB,GAAAjnC,OAAA,CACzB,MACEnC,OAAA,CAAQhC,GAAI,CAAChC,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACgE,OAAO,CAAA,CACV;EACA,MAAMqpC,gBAA8C,GAAAlnC,OAAA,CAClD,MAAO,OAAOkmC,WAAgB,KAAA,QAAA,GAAWA,WAAc,GAAA5rC,YAAA,EACvD,CAAC4rC,WAAW,CAAA,CACd;EACA,MAAMiB,eAAkB,GAAAnnC,OAAA,CACtB,MACE,CAACge,QACD,IAAA,CAACE,YACDgoB,WACE,IAAA,eAAA10B,GAAA,CAACs0B,SAAA,EAAA;IACCjgB,WAAY,EAAA,MAAA;IACZhoB,OAAS,EAAAmpC,qBAAA;IACT7rC,KAAO,EAAAqqC,sBAAA;IACPp0B,IAAA,EAAM6C,iBAAiB,UAAa,GAAA,SAAA;IAEpChD,QAAA,iBAAAO,GAAA,CAACu0B,oBAAA,EAAA;MACC,YAAW,EAAA,OAAA;MACX,SAAQ,EAAA,cAAA;MACRznC,QAAA;MACA+qB,IAAM,EAAA+d,SAAA;MACNpf,IAAK,EAAA,OAAA;MACLnqB,OAAS,EAAAopC,kBAAA;MACTxnB,MAAA;MACC,GAAGynB,gBAAA;MACJG,OAAS,EAAAR,gBAAA;MACTS,WAAa,EAAAZ;IAAA,CACf;EAAA,CACF,CAAA,EAEJ,CACER,WAAA,EACAc,qBAAA,EACAC,kBAAA,EACAC,gBAAA,EACAjzB,cAAA,EACA+J,QAAA,EACA1f,QAAA,EACAuoC,gBAAA,EACAH,oBAAA,EACAjnB,MAAA,EACAvB,QAAA,CACF,CACF;EAGA,MAAMqpB,UAAa,GAAAvnC,OAAA,CACjB,MACEsmC,MACE,IAAA,eAAA90B,GAAA,CAACm0B;IAAOl+B,SAAS,EAAA,IAAA;IAACE,aAAW,IAAC;IAAAE,YAAA,EAAY,IAAC;IAAA4X,MAAA;IAAgBhK,QAAO,QAAS;IAAArE,IAAA,EAAK;IAC9EH,QAAC,EAAA,eAAAO,GAAA,CAAA,MAAA,EAAA;MAAMP;IAAO,CAAA;GAChB,CAAA,EAEJ,CAACwO,QAAQ6mB,MAAM,CAAA,CACjB;EAEA,2BACG3lB,MAAK,EAAA;IAAA,SAAA,EAAQ,WAAY;IAAAvP,IAAA,EAAMD,UAAUC,IACvC;IAAAH,QAAA,EAAA,CAAA61B,UAAA,EAAA,oBAEA1B,SACC,EAAA;MAAAn0B,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,KAAA,EAAA;QACC,SAAQ,EAAA,OAAA;QACR,eAAazb,SAAU,CAAAD,MAAA;QACvB,aAAWC,SAAU,CAAAC,IAAA;QACpB,GAAGmQ,SAAA;QACJnF,SAAW,EAAA9d,QAAA;QACX+d,SAAW,EAAAmqB,QAAA;QACXlqB,YAAYmqB,aAAiB,IAAAF,eAAA;QAC7BhqB,QAAU,EAAA1e,OAAA;QACV4f,SAAStM,SAAU,CAAAD,MAAA;QACnBsL,MAAQ,EAAA5f,KAAA;QACR8gB,OAAOvM,SAAU,CAAAC,IAAA;QACjBlU,OAAS,EAAAokB,MAAA;QACTtD,QAAA;QACAE,QAAA;QACApK,GAAA;QACArd;MAAA,CACF,CAAA,EAECswC,gBAAA,EACAI,eAAA;KACH,CAAA,EAECI,UAAA;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;ACvXM,SAASC,gBACdC,YAC6D,EAAA;EAC7D,MAAM,CAACjS,KAAA,EAAOkS,QAAQ,CAAA,GAAI3mC,SAAS0mC,YAAY,CAAA;EAC/C,MAAME,gBAAgBxmC,MAAmC,EAAA;EAEzD,MAAMymC,aAAgB,GAAA5iB,WAAA,CAAY,CAACwT,SAAA,EAA8BqP,KAAmB,KAAA;IAClF,MAAMC,SAASA,CAAA,KAAM;MACnBJ,QAAA,CAASlP,SAAS,CAAA;IAAA,CACpB;IAGA,IAAImP,cAAcrmC,OAAS,EAAA;MACzBymC,YAAA,CAAaJ,cAAcrmC,OAAO,CAAA;MAClCqmC,aAAA,CAAcrmC,OAAU,GAAA,KAAA,CAAA;IAC1B;IAEA,IAAI,CAACumC,KAAA,EAAO,OAAOC,MAAO,CAAA,CAAA;IACZH,aAAA,CAAArmC,OAAA,GAAU0mC,UAAW,CAAAF,MAAA,EAAQD,KAAK,CAAA;EAClD,CAAA,EAAG,EAAE,CAAA;EAEE,OAAA,CAACrS,OAAOoS,aAAa,CAAA;AAC9B;AC1BO,MAAMK,2BAA8B,GAAA,EAAA;AACpC,MAAMC,4BAA+B,GAAA,CAAA;AACrC,MAAMC,4BAA+B,GAAA,CAAA;AAErC,MAAMC,wBAA2B,GAAA,CAAA;AACjC,MAAMC,uBAA0B,GAAA,CAAA;AAEhC,MAAMvL,2BAA8D,GAAA;EACzEl5B,KAAK,CAAC,SAAA,EAAW,WAAa,EAAA,QAAA,EAAU,QAAQ,OAAO,CAAA;EACvD,aAAa,CAAC,KAAA,EAAO,SAAW,EAAA,cAAA,EAAgB,cAAc,aAAa,CAAA;EAC3E,WAAW,CAAC,KAAA,EAAO,WAAa,EAAA,YAAA,EAAc,YAAY,WAAW,CAAA;EACrEE,QAAQ,CAAC,YAAA,EAAc,cAAgB,EAAA,KAAA,EAAO,QAAQ,OAAO,CAAA;EAC7D,gBAAgB,CAAC,QAAA,EAAU,YAAc,EAAA,WAAA,EAAa,cAAc,aAAa,CAAA;EACjF,cAAc,CAAC,QAAA,EAAU,cAAgB,EAAA,SAAA,EAAW,YAAY,WAAW,CAAA;EAC3ED,MAAM,CAAC,UAAA,EAAY,YAAc,EAAA,OAAA,EAAS,OAAO,QAAQ,CAAA;EACzD,cAAc,CAAC,MAAA,EAAQ,UAAY,EAAA,aAAA,EAAe,aAAa,cAAc,CAAA;EAC7E,YAAY,CAAC,MAAA,EAAQ,YAAc,EAAA,WAAA,EAAa,WAAW,YAAY,CAAA;EACvEE,OAAO,CAAC,WAAA,EAAa,aAAe,EAAA,MAAA,EAAQ,OAAO,QAAQ,CAAA;EAC3D,eAAe,CAAC,OAAA,EAAS,WAAa,EAAA,YAAA,EAAc,aAAa,cAAc,CAAA;EAC/E,aAAa,CAAC,OAAA,EAAS,aAAe,EAAA,UAAA,EAAY,WAAW,YAAY;AAC3E,CAAA;;;;;;ACtBA,IAAAG,IAAA;AAcA,MAAMu6B,aAAa7d,MAAO,CAAA8d,MAAA,CAAOrS,IAAI,CAAC,EAAnBnoB,IAAoB,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAKhC,MAAMgrB,WAAc,GAAA1J,IAAA,CACzB3d,UAAW,CAAA,SAASqnB,YAClBC,CAAAhsC,KAAA,EAcAuX,GACA,EAAA;EACM,MAAA;IACJnZ,OAAA;IACA+mB,KAAA;IACAsd,QAAA;IACAC,MAAA;IACAC,MAAA;IACAjuB,QAAA;IACA6gB,OAAA;IACAC,OAAA;IACAl0B,OAAA;IACAszB,SAAA;IACA1R,MAAA;IACAvO,MAAA;IACA2O,MAAA;IACA1kB,KAAA;IACA,GAAGomB;EACD,CAAA,GAAAhlB,KAAA;EAEJ,MAAM+iC,SAA2B,GAAAt/B,OAAA,CAC/B,OAAO;IACL8xB,OAAA;IACAC,OAAA;IACA,GAAG52B;EAAA,CACL,CAAA,EACA,CAAC22B,OAAS,EAAAC,OAAA,EAAS52B,KAAK,CAAA,CAC1B;EAEA,MAAMokC,UAA4B,GAAAv/B,OAAA,CAChC,OAAO;IACL6D,IAAA,EAAMo7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IACjCr7B,GAAA,EAAKs7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IAChCn7B,KAAO,EAAA,KAAA,CAAA;IACPD,MAAQ,EAAA,KAAA;EAAA,CACV,CAAA,EACA,CAACm7B,QAAQC,MAAM,CAAA,CACjB;EAGE,sBAAAha,IAAA,CAACuZ,UAAA,EAAA;IACC,SAAQ,EAAA,eAAA;IACP,GAAIld,SAAA;IACL,gBAAgB,EAAA4P,SAAA;IAChBtzB,OAAA;IACA4hB,MAAA;IACA3L,GAAA;IACA5C,MAAA;IACA2O,MAAA;IACA1kB,KAAO,EAAAmkC,SAAA;IACN,IAAI3kC,OAAU,GAAAJ,oBAAA,GAAuB,CAAC,CAAA;IAEtC0W,QAAA,EAAA,CAAAA,QAAA,EAEAyQ,KACC,mBAAAlQ,GAAA,CAACyR,KAAA,EAAA;MACCnP,GAAK,EAAAkrB,QAAA;MACL7jC,KAAO,EAAAokC,UAAA;MACP57B,KAAO,EAAAskC,2BAAA;MACPhqC,MAAQ,EAAAiqC,4BAAA;MACRzoB,MAAQ,EAAA0oB;IAAA,CACV,CAAA;EAAA,CAAA,CAEJ;AAAA,CAEH,CACH,CAAA;AAEAG,WAAA,CAAY9I,WAAc,GAAA,aAAA;ACnG1B,MAAMpkC,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,sCAAsC,CAAA;AAE7Dub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAoD,IAAI,CAAA;AAKlF,MAAA43B,wBAAA,GACX73B,YAAYvV,KAAG,CAAA;ACLV,SAASqtC,oBAA6DA,CAAA,EAAA;EACrE,MAAAxtC,KAAA,GAAQ+V,WAAWw3B,wBAAwB,CAAA;EAE1C,OAAAvtC,KAAA;AACT;ACiBO,SAASytC,0BACdnsC,KACoB,EAAA;EACd,MAAA;IAAC0U,QAAU;IAAA42B;EAAS,CAAA,GAAAtrC,KAAA;EAC1B,MAAM,CAACosC,aAAA,EAAeC,gBAAgB,CAAA,GAAIpB,gBAAgB,KAAK,CAAA;EAC/D,MAAM,CAACqB,aAAA,EAAeC,gBAAgB,CAAA,GAAItB,gBAA+B,IAAI,CAAA;EAE7E,MAAMuB,YAAY,OAAOlB,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOpH,IAAQ,KAAA,CAAA;EACrE,MAAMuI,aAAa,OAAOnB,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOoB,KAAS,KAAA,CAAA;EAEvE,MAAMhuC,KAAuC,GAAA+E,OAAA,CAC3C,OAAO;IACL2oC,aAAA;IACAC,gBAAA;IACAC,aAAA;IACAC,gBAAA;IAAA;IAEAC,SAAA,EAAWJ,gBAAgB,CAAI,GAAAI,SAAA;IAC/BC;EAAA,CACF,CAAA,EACA,CAACA,UAAY,EAAAL,aAAA,EAAeI,SAAW,EAAAF,aAAA,EAAeD,kBAAkBE,gBAAgB,CAAA,CAC1F;EAEA,OACG,eAAAt3B,GAAA,CAAAg3B,wBAAA,CAAyB/2B,QAAzB,EAAA;IAAkCxW;IAAegW;EAAS,CAAA,CAAA;AAE/D;;;;;;ACtDA,IAAA/M,IAAA;AAsFA,MAAMyc,MAAA,GAAOC,MAAO,CAAAqY,KAAK,CAAZ,CAAA/0B,IAAA,KAAAA,IAAA,GAAkCoZ,0DAEN,OAA1B,CAAA,CAAA,CAAA,EAAA4rB,KAAA;EAAA,IAAC;IAACC;EAAe,CAAA,GAAAD,KAAA;EAAA,OAAAC,SAAA;AAAA,EAAA;AAQzB,MAAMC,OAAU,GAAAnoB,UAAA,CAAW,SAASmoB,QAAAA,CACzC7sC,OACAuX,GACA,EAAA;EAnGF,IAAA5P,GAAA,EAAAO,EAAA,EAAA0Y,EAAA,EAAAwiB,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA;EAoGE,MAAMI,yBAAyB/L,kBAAmB,EAAA;EAC5C,MAAA;IAAC8L;GAAK,GAAIjuB,WAAY,EAAA;EACtB,MAAA;IACJrX,OAAU,GAAA,KAAA;IACV+mB,OAAOye,SAAY,GAAA,KAAA;IACnBt/B,kBAAkBq/B,sBAAwB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,sBAAA,CAAA9/B,OAAA;IAC1C6Q,QAAU,EAAAmvB,SAAA;IACVriC,OAAA;IACAigB,QAAA;IACAsiB,kBAAA,EAAoB+I,sBAAyB,GAAA,CAAA5kC,EAAA,GAAAlI,KAAA,CAAM+jC,kBAAN,KAAA,IAAA,GAAA77B,EAAA,GAC3Cq4B,2BAA4B54B,CAAAA,CAAAA,GAAAA,GAAA3H,KAAM,CAAA40B,SAAA,KAAN,IAAAjtB,GAAAA,GAAAA,GAAmB,QAAQ,CAAA;IACzDrG,OAAU,GAAA,CAAA;IACVszB,WAAWuP,aAAgB,GAAA,QAAA;IAC3BjH,MAAQ,EAAA6P,UAAA;IACR7pB,MAAS,GAAA,CAAA;IACTvO,MAAA;IACA2O,MAAS,GAAA,CAAA;IACT8X,OAAA,GAAUsI,MAAMsJ,OAAQ,CAAA5R,OAAA;IACxBkQ,KAAA;IACA,GAAGtmB;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA+jC,kBAAA,GAAqBxgC,aAAaupC,sBAAsB,CAAA;EACxD,MAAAvc,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC+sB,gBAAA,EAAkB2I,mBAAmB,CAAA,GAAIzoC,SAA6B,IAAI,CAAA;EAC3E,MAAAi+B,QAAA,GAAW79B,OAA8B,IAAI,CAAA;EACnD,MAAMq8B,YAA6B,GAAA,UAAA;EAEnC,MAAM/D,SAASF,SAAU,EAAA;EACnB,MAAAG,aAAA,GACJ,OAAO4P,UAAe,KAAA,QAAA,GAAA,CAAA,CAAWnsB,YAAOnc,QAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAmc,EAAA,CAAkBmsB,UAAe,CAAA,KAAA,IAAA,GAAO7P,MAAO,CAAAr5B,OAAA;EAK5E,MAAAqpC,YAAA,GAAezpC,QAAQ,MAAM;IACjC,MAAM0pC,eAAkB,GAAA,CACtB,IAAI7oC,eAAkB,GAAA,CAACA,eAAgB,CAAA6D,WAAW,IAAI,EAAC,GACvD,CAAAg1B,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAeh1B,WAAe,KAAA7B,QAAA,CAAS0K,IAAK,CAAA7I,WAAA,CAC9C;IAEA,OAAOzF,IAAK,CAAAmZ,GAAA,CAAI,GAAGsxB,eAAe,IAAIrB,uBAA0B,GAAA,CAAA;EAAA,CAC/D,EAAA,CAACxnC,eAAiB,EAAA64B,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAeh1B,WAAW,CAAC,CAAA;EAE1C,MAAA88B,UAAA,GAAaxhC,QAAQ,MAAM;IAC/B,MAAMM,MAAoB,EAAC;IAGvBA,GAAA,CAAAE,IAAA,CACFihC,IAAK,CAAA;MACHnE,UAAUz8B,eAAmB,IAAA,KAAA,CAAA;MAC7By/B,kBAAA;MACAziC,OAAS,EAAAwqC,uBAAA;MACT7K;IAAA,CACD,CAAA,CACH;IAGAl9B,GAAA,CAAIE,KAAKoX,MAAO,CAAA;MAAC8pB,QAAU,EAAA0G;IAAyB,CAAA,CAAC,CAAA;IAGjD9nC,GAAA,CAAAE,IAAA,CACFmxB,KAAM,CAAA;MACJ2L,UAAUz8B,eAAmB,IAAA,KAAA,CAAA;MAC7B28B,YAAA;MACA3/B,OAAS,EAAAwqC;IAAA,CACV,CAAA,CACH;IAGA,IAAIlI,SAAW,EAAA;MACT7/B,GAAA,CAAAE,IAAA,CAAKkhB,MAAM;QAACthB,OAAA,EAAS4+B;QAAUnhC,OAAS,EAAAwqC;MAAwB,CAAA,CAAC,CAAA;IACvE;IAIA,IAAI1tC,OAAS,EAAA;MACX2F,GAAA,CAAIE,KAAKuwB,MAAM,CAAA;IACjB;IAEO,OAAAzwB,GAAA;KACN,CAAC3F,OAAA,EAASwlC,SAAW,EAAAt/B,eAAA,EAAiBy/B,kBAAkB,CAAC,CAAA;EAE5D,MAAM;IAACqJ,cAAgB;IAAAxY,SAAA;IAAWD;IAAgB6Q,IAAM;IAAAC;MAAUC,WAAY,CAAA;IAC5ET,UAAA;IACArQ,SAAW,EAAAuP,aAAA;IACXwB,oBAAsB,EAAAC;EAAA,CACvB,CAAA;EAEK,MAAAlD,MAAA,GAAA,CAASU,EAAe,GAAAzO,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAie,EAAA,CAAAl8B,CAAA;EAC/B,MAAAy7B,MAAA,GAAA,CAASU,EAAe,GAAA1O,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAke,EAAA,CAAAl8B,CAAA;EAErC,MAAMouB,OAAU,GAAA,CAAA+N,EAAA,GAAA3O,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAA2O,EAAA,CAAA/N,OAAA;EACrD,MAAMC,OAAU,GAAA,CAAA+N,EAAA,GAAA5O,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAA4O,EAAA,CAAA/N,OAAA;EAErD,MAAM6X,YAAYplB,KAAM,EAAA;EACxB,MAAM,CAACqlB,MAAA,EAAQC,SAAS,CAAA,GAAItC,gBAAgB,KAAK,CAAA;EACjD,MAAMuC,oBAAoBtB,oBAAqB,EAAA;EACzC,MAAAuB,WAAA,GAAcH,MAAU,IAAA,CAAAE,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,iBAAA,CAAmBlB,aAAkB,MAAAe,SAAA;EAEnE,MAAMK,gBAAgBF,iBAAsB,KAAA,IAAA;EAC5C,MAAMG,gBAAgB,OAAOrC,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOpH,IAAQ,KAAA,CAAA;EACzE,MAAM0J,iBAAiB,OAAOtC,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOoB,KAAS,KAAA,CAAA;EAErE,MAAAF,SAAA,GAAYkB,aAAgB,GAAAF,iBAAA,CAAkBhB,SAAY,GAAAmB,aAAA;EAC1D,MAAAlB,UAAA,GAAaiB,aAAgB,GAAAF,iBAAA,CAAkBf,UAAa,GAAAmB,cAAA;EAElE,MAAMC,kBAAqB,GAAAplB,WAAA,CACzB,CAACyb,MAAe4J,SAAwB,KAAA;IACtC,IAAIJ,aAAe,EAAA;MAEjB,IAAIxJ,IAAM,EAAA;QACF,MAAA6J,gBAAA,GAAmBD,YAAY,CAAI,GAAAtB,SAAA;QAEvBgB,iBAAA,CAAAnB,gBAAA,CAAiBnI,MAAM6J,gBAAgB,CAAA;QACvCP,iBAAA,CAAAjB,gBAAA,CAAiBc,WAAWU,gBAAgB,CAAA;MAAA,CACzD,MAAA;QACL,MAAMC,2BAA8B,GAAA,GAAA;QAC9B,MAAAC,oBAAA,GACJxB,UAAa,GAAAuB,2BAAA,GAA8BvB,UAAa,GAAAuB,2BAAA;QAExCR,iBAAA,CAAAnB,gBAAA,CAAiBnI,MAAM+J,oBAAoB,CAAA;QAC7DT,iBAAA,CAAkBjB,gBAAiB,CAAA,IAAA,EAAMuB,SAAY,GAAA,CAAA,GAAIrB,UAAU,CAAA;MACrE;IAAA,CACK,MAAA;MACL,MAAMyB,eAAkB,GAAAJ,SAAA,GAAY,CAAI,GAAA5J,IAAA,GAAOsI,SAAY,GAAAC,UAAA;MAG3Dc,SAAA,CAAUrJ,MAAMgK,eAAe,CAAA;IACjC;EACF,CAAA,EACA,CAACR,aAAe,EAAAF,iBAAA,EAAmBhB,SAAW,EAAAa,SAAA,EAAWZ,YAAYc,SAAS,CAAA,CAChF;EAEA,MAAMY,UAAa,GAAA1lB,WAAA,CAChB/rB,CAAkB,IAAA;IA1OvB,IAAAiL,GAAAO,EAAAA,GAAAA;IA2OM2lC,kBAAA,CAAmB,KAAK,CAAA;IACxB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkBymC,MAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAlmC,GAAA,CAAAgG,IAAA,CAAAvG,GAA2B,EAAAjL,CAAA,CAAA;EAC7B,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMQ,WAAc,GAAA5lB,WAAA,CACjB/rB,CAAkB,IAAA;IAjPvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAkPM2lC,kBAAA,CAAmB,KAAO,EAAA,IAAI,CAAsB;IACpD3lC,CAAAA,GAAAA,GAAA27B,8BAAAl8B,GAAA,GAAAk8B,SAAA,CAAW7jC,OAAM8qC,OAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA5iC,GAAA,CAAAgG,IAAA,CAAAvG,GAA2B,EAAAjL,CAAA,CAAA;EAC7B,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMS,iBAAoB,GAAA7lB,WAAA,CACvB/rB,CAAkB,IAAA;IAxPvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAyPM2lC,kBAAA,CAAmB,KAAO,EAAA,IAAI,CAAsB;IACpD3lC,CAAAA,GAAAA,GAAA27B,8BAAAl8B,GAAA,GAAAk8B,SAAA,CAAW7jC,OAAMuuC,aAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAArmC,GAAA,CAAAgG,IAAA,CAAAvG,GAAiC,EAAAjL,CAAA,CAAA;EACnC,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMrR,WAAc,GAAA/T,WAAA,CACjB/rB,CAAkB,IAAA;IA/PvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAgQM2lC,kBAAA,CAAmB,IAAI,CAAA;IACvB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkBy0B,OAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAl0B,GAAA,CAAAgG,IAAA,CAAAvG,GAA4B,EAAAjL,CAAA,CAAA;EAC9B,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMW,gBAAmB,GAAA/lB,WAAA,CACtB/rB,CAAkB,IAAA;IAtQvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAuQM2lC,kBAAA,CAAmB,IAAI,CAAA;IACvB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkB8mC,YAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAvmC,GAAA,CAAAgG,IAAA,CAAAvG,GAAiC,EAAAjL,CAAA,CAAA;EACnC,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMa,gBAAmB,GAAAjmB,WAAA,CACtB/rB,CAAkB,IAAA;IA7QvB,IAAAiL,GAAAO,EAAAA,GAAAA;IA8QM2lC,kBAAA,CAAmB,KAAK,CAAA;IACxB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkBgnC,YAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAzmC,GAAA,CAAAgG,IAAA,CAAAvG,GAAiC,EAAAjL,CAAA,CAAA;EACnC,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EAKAhpC,SAAA,CAAU,MAAM;IACd,IAAI,CAAC4oC,WAAA,EAAa;IAElB,SAASmB,sBAAsBzoC,KAAmB,EAAA;MAChD,IAAI,CAACm+B,gBAAA,EAAkB;MAEjB,MAAAuK,mBAAA,GACJvK,gBAAqB,KAAAn+B,KAAA,CAAMf,MAC1B,IAAAe,KAAA,CAAMf,kBAAkBC,IAAQ,IAAAi/B,gBAAA,CAAiBh/B,QAAS,CAAAa,KAAA,CAAMf,MAAM,CAAA;MAEzE,IAAI,CAACypC,mBAAqB,EAAA;QACxBhB,kBAAA,CAAmB,KAAK,CAAA;QACjBtoC,MAAA,CAAAE,mBAAA,CAAoB,aAAampC,qBAAqB,CAAA;MAC/D;IACF;IAEOrpC,MAAA,CAAAC,gBAAA,CAAiB,aAAaopC,qBAAqB,CAAA;IAE1D,OAAO,MAAM;MACJrpC,MAAA,CAAAE,mBAAA,CAAoB,aAAampC,qBAAqB,CAAA;IAAA,CAC/D;EACC,CAAA,EAAA,CAACnB,WAAa,EAAAnJ,gBAAA,EAAkBuJ,kBAAkB,CAAC,CAAA;EAGtDhpC,SAAA,CAAU,MAAM;IACd,IAAI4c,QAAY,IAAAgsB,WAAA,EAAaI,kBAAA,CAAmB,KAAK,CAAA;EACpD,CAAA,EAAA,CAACpsB,QAAU,EAAAosB,kBAAA,EAAoBJ,WAAW,CAAC,CAAA;EAG9C5oC,SAAA,CAAU,MAAM;IACd,IAAI,CAACrD,OAAW,IAAAisC,WAAA,EAAaI,kBAAA,CAAmB,KAAK,CAAA;EACpD,CAAA,EAAA,CAACrsC,OAAS,EAAAqsC,kBAAA,EAAoBJ,WAAW,CAAC,CAAA;EAGnC5oC,SAAA,CAAA,MAAM2gC,KAAKS,YAAa,CAAA3B,gBAAgB,GAAG,CAACA,gBAAA,EAAkBkB,IAAI,CAAC,CAAA;EAE7E3gC,SAAA,CAAU,MAAM;IAEd,IAAI,CAAC4oC,WAAA,EAAa;IAElB,SAASqB,oBAAoB3oC,KAAsB,EAAA;MAC7C,IAAAA,KAAA,CAAMtH,QAAQ,QAAU,EAAA;QAC1BgvC,kBAAA,CAAmB,OAAO,IAAI,CAAA;MAChC;IACF;IAEOtoC,MAAA,CAAAC,gBAAA,CAAiB,WAAWspC,mBAAmB,CAAA;IAEtD,OAAO,MAAM;MACJvpC,MAAA,CAAAE,mBAAA,CAAoB,WAAWqpC,mBAAmB,CAAA;IAAA,CAC3D;EAAA,CACC,EAAA,CAACjB,kBAAoB,EAAAJ,WAAW,CAAC,CAAA;EACpC,MAAM3H,QAAW,GAAArd,WAAA,CACdsd,OAAmC,IAAA;IAClCtD,QAAA,CAAS19B,OAAU,GAAAghC,OAAA;IACZN,MAAA,EAAA;EACT,CAAA,EACA,CAACA,MAAM,CAAA,CACT;EAEA,MAAMO,WAAc,GAAAvd,WAAA,CACjBxb,IAAgC,IAAA;IAC/BsjB,YAAA,CAAaxrB,OAAU,GAAAkI,IAAA;IACvBu4B,IAAA,CAAKQ,YAAY/4B,IAAI,CAAA;EACvB,CAAA,EACA,CAACsjB,cAAciV,IAAI,CAAA,CACrB;EAEA,MAAMU,WAA8CrC,SAAmB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAtsB,GAAA;EAEvE,MAAM0uB,YAAe,GAAAxd,WAAA,CAClBxb,IAA6B,IAAA;IACxB,IAAA,OAAOi5B,aAAa,UAAY,EAAA;MAClCA,QAAA,CAASj5B,IAAI,CAAA;eACJi5B,QAAU,EAAA;MACnBA,QAAA,CAASnhC,OAAU,GAAAkI,IAAA;IACrB;IAGAggC,mBAAA,CAAoBhgC,IAAI,CAAA;EAC1B,CAAA,EACA,CAACi5B,QAAQ,CAAA,CACX;EAEM,MAAA7b,KAAA,GAAQ5mB,QAAQ,MAAM;IAC1B,IAAI,CAACogC,SAAA,EAAkB,OAAA,IAAA;IAEvB,OAAOnZ,aAAamZ,SAAW,EAAA;MAC7BuK,MAAQ,EAAAD,UAAA;MACR/R,OAAS,EAAAI,WAAA;MACTiS,YAAc,EAAAD,gBAAA;MACdG,YAAc,EAAAD,gBAAA;MACd5D,OAAS,EAAAuD,WAAA;MACTE,aAAe,EAAAD,iBAAA;MACf/2B,GAAK,EAAA0uB;IAAA,CACN,CAAA;EAAA,CACA,EAAA,CACDpC,SAAA,EACAsK,UAAA,EACAE,WAAA,EACAC,iBAAA,EACA9R,WAAA,EACAgS,gBAAA,EACAE,gBAAA,EACAzI,YAAA,CACD,CAAA;EAED,IAAI,CAAC5b,KAAA,EAAO,sBAASpV,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAA,CAAA;EAEjB,IAAA4mB,QAAA,EAAiB,OAAA4I,KAAA;EAErB,MAAM2iB,OACJ,GAAA,eAAA/3B,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAGY,SAAA;IACJzN,GAAK,EAAAyuB,WAAA;IACLpnC,KAAO,EAAAwuC,cAAA;IACPhS,OAAA;IACAwR,SAAW,EAAAM,YAAA;IAEXx4B,QAAA,iBAAAO,GAAA,CAAC82B,WAAA,EAAA;MACE,GAAG/mB,SAAA;MACJ5mB,OAAA;MACA+mB,KAAO,EAAAye,SAAA;MACPnB,QAAU,EAAAqD,QAAA;MACVpD,MAAA;MACAC,MAAA;MACApN,OAAA;MACAC,OAAA;MACAl0B,OAAA;MACAszB,SAAA;MACA1R,MAAA;MACA3L,GAAK,EAAAyuB,WAAA;MACLrxB,MAAA;MACA2O,MAAA;MAEC5O,QAAA,EAAAlT;IAAA,CACH;EAAA,CAAA,CACF;EAGF,sBAGImnB,IAAA,CAAA9tB,QAAA,EAAA;IAAA6Z,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC4iB,kBAAA,EAAA;MACCE,SAAW,EAAA35B,OAAA;MACX45B,OAAS,EAACtjB,QAAa,IAAA,eAAAO,GAAA,CAACmxB;QAAiB1xB;MAAS,CAAA,CAAA;MAEjDA,QACC,EAAA+4B,WAAA,IAAA,eAAAx4B,GAAA,CAAC4iB,kBAAA,EAAA;QACCE,SAAA,EAAW,CAAC,CAACgV,UAAA;QACb/U,OAAA,EAAUtjB,QAAA,IAAA,eACPO,GAAA,CAAAja,MAAA,EAAA;UAAOiiC,eAAiB,EAAA,OAAO8P,UAAe,KAAA,QAAA,GAAWA,UAAa,GAAA,KAAA,CAAA;UACpEr4B;QACH,CAAA,CAAA;QAGDA,QAAA,EAAAs4B;MAAA,CACH;IAAA,CAEJ,CAAA,EAGC3iB,KAAA;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC7bD,IAAA1iB,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA;AAOa,MAAAhf,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;AAOvB,MAAMguB,OAAU,GAAA1qB,MAAA,CAAOuG,GAAG,CAAA,CAAV1iB,IAAW,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,6EAAA,CAAA,CAAA,CAAA,CAAA;AAQlC,MAAM6K,SAASC,SAAS,CAAAjL,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,gGAAA,CAAA,CAAA,CAAA,CAAA;AAajB,MAAMiuB,sBAAsB3qB,MAAO,CAAA0H,WAAW,CAAlB,CAAAqX,IAAA,KAAAA,IAAA,GAAmBriB,iCACjC,2BAAN,CAAA,CAAA,CAAA,EAAA6K,MAAA,CAAA;ACzBR,SAASqjB,mBAAmBjvC,KAAoD,EAAA;EACrF,MAAM;IAAC0U,QAAU;IAAAmU,EAAA;IAAIqmB,QAAU;IAAAjgB,QAAA;IAAUvwB;EAAS,CAAA,GAAAsB,KAAA;EAE5C,MAAAquC,WAAA,GAAc5lB,YAAY,MAAM;IAGpCgjB,UAAA,CAAW,MAAM;MACfyD,QAAA,CAASxwC,KAAK,CAAA;OACb,CAAC,CAAA;EAAA,CACH,EAAA,CAACwwC,QAAU,EAAAxwC,KAAK,CAAC,CAAA;EAEpB,MAAMywC,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA8C,IAAA;IAC7C,IAAIA,MAAMtH,GAAQ,KAAA,OAAA,IAAW,CAAC+6B,sBAAuB,CAAAzzB,KAAA,CAAMipC,aAAa,CAAG,EAAA;MAC7Df,WAAA,EAAA;IACd;EACF,CAAA,EACA,CAACA,WAAW,CAAA,CACd;EAGE,sBAAAp5B,GAAA,CAAC,IAAA,EAAA;IACC,eAAe,EAAAga,QAAA;IACf,SAAQ,EAAA,oBAAA;IACRpG,EAAA;IACAwmB,IAAK,EAAA,QAAA;IACLvE,OAAS,EAAAuD,WAAA;IACTr6B,SAAW,EAAAm7B,aAAA;IAEVz6B;EAAA,CAAA,CACH;AAEJ;ACtCgB,SAAA46B,mBAAAA,CACdrW,OACAhzB,GACmB,EAAA;EACf,IAAAA,GAAA,CAAI/L,SAAS,cAAgB,EAAA;IACxB,OAAA;MAAC,GAAG++B,KAAO;MAAAsW,WAAA,EAAa;MAAMC,OAAS,EAAA,IAAA;MAAMC,KAAO,EAAAxpC,GAAA,CAAIwpC;KAAK;EACtE;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,aAAe,EAAA;IAC9B,OAAO;MAAC,GAAG++B,KAAO;MAAAuW,OAAA,EAAS;IAAI,CAAA;EACjC;EAEI,IAAAvpC,GAAA,CAAI/L,SAAS,WAAa,EAAA;IAC5B,OAAO;MAAC,GAAG++B,KAAA;MAAOuW,OAAS,EAAA,KAAA;MAAOC,OAAO;KAAI;EAC/C;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,YAAc,EAAA;IACtB,OAAA;MAAC,GAAG++B,KAAO;MAAAsW,WAAA,EAAa;MAAME,KAAO,EAAA,IAAA;MAAM/wC,OAAO;KAAI;EAC/D;EAEI,IAAAuH,GAAA,CAAI/L,SAAS,aAAe,EAAA;IAC9B,OAAO;MAAC,GAAG++B,KAAA;MAAOuW,OAAS,EAAA,KAAA;MAAOC,OAAO;KAAI;EAC/C;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,WAAa,EAAA;IAC5B,OAAO;MAAC,GAAG++B,KAAA;MAAOwW,OAAOxW,KAAM,CAAAwW,KAAA,IAASxpC,IAAIwpC;KAAK;EACnD;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,qBAAuB,EAAA;IAC/B,OAAA;MAAC,GAAG++B,KAAA;MAAOsW,WAAa,EAAAtpC,GAAA,CAAIvH;MAAOgxC,WAAa,EAAAzpC,GAAA,CAAIypC,WAAe,IAAAzW,KAAA,CAAMyW;IAAW,CAAA;EAC7F;EAEI,IAAAzpC,GAAA,CAAI/L,SAAS,qBAAuB,EAAA;IACtC,OAAO;MAAC,GAAG++B,KAAO;MAAAyW,WAAA,EAAazpC,IAAIypC;IAAW,CAAA;EAChD;EAEI,IAAAzpC,GAAA,CAAI/L,SAAS,cAAgB,EAAA;IACxB,OAAA;MAAC,GAAG++B,KAAA;MAAOsW,WAAa,EAAAtpC,GAAA,CAAIvH;MAAO+wC,KAAO,EAAA,IAAA;MAAM/wC,KAAO,EAAAuH,GAAA,CAAIvH;IAAK,CAAA;EACzE;EAEO,OAAAu6B,KAAA;AACT;ACzCO,MAAM0W,gCAAmC,GAAA,CAC9C,SAAA,EACA,OAAA,EACA,KAAA,EACA,OAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACA,UAAA,EACA,MAAA,EACA,KAAA,EACA,UAAA,CACF;AAKO,MAAMC,8BAA4C,GAAA,cAAA;AAK5C,MAAAC,wCAAA,GAAwD,CAAC,cAAA,EAAgB,WAAW,CAAA;AC+DjG,MAAMC,uBAAuBA,CAACpxC,KAAA,EAAeqxC,MAC3C,KAAAA,MAAA,GAASA,OAAOrxC,KAAQ,GAAAA,KAAA;AAE1B,MAAMsxC,qBAAwB,GAAAA,CAACP,KAAe,EAAAM,MAAA,KAC5CA,MAAO,CAAArxC,KAAA,CAAMuxC,WAAY,EAAA,CAAE39B,OAAQ,CAAAm9B,KAAA,CAAMQ,WAAY,EAAC,CAAI,GAAA,CAAA,CAAA;AAE5D,MAAMC,iBAAoB,GAAAxrB,UAAA,CAAW,SAASwrB,kBAAAA,CAG5ClwC,OAsBAuX,GACA,EAAA;EACM,MAAA;IACJpE,MAAS,GAAA,IAAA;IACTuE,cAAA;IACA+J,QAAA;IACA0uB,YAAc,EAAAC,gBAAA;IACdruC,QAAW,GAAA,CAAA;IACX+qB,IAAA;IACAjE,EAAA;IACAwnB,OAAU,GAAAtyC,YAAA;IACVywB,OAAA;IACA4f,MAAA;IACA9P,QAAA;IACAlC,OAAA;IACAkU,aAAA;IACApB,QAAA;IACAqB,UAAA;IACAv+B,OAAS,EAAAw+B,WAAA;IACTlvC,SAASmtB,WAAc,GAAA,CAAA;IACvBgW,OAAU,GAAA1mC,YAAA;IACV+rC,MAAA;IACA5mB,MAAS,GAAA,CAAA;IACTvB,QAAA;IACA8uB,eAAA;IACAC,YAAc,EAAAC,gBAAA;IACdC,aAAA;IACAC,WAAc,GAAAf,oBAAA;IACd/F,MAAA;IACArrC,KAAO,EAAAoyC,SAAA;IACP,GAAG9rB;EACD,CAAA,GAAAhlB,KAAA;EAEJ,MAAM,CAACi5B,KAAA,EAAO8X,QAAQ,CAAA,GAAIC,WAAW1B,mBAAqB,EAAA;IACxDC,aAAauB,SAAa,IAAA,IAAA;IAC1BtB,OAAS,EAAA,KAAA;IACTE,WAAa,EAAA,KAAA;IACbD,KAAO,EAAA,IAAA;IACP/wC,OAAOoyC,SAAa,IAAA;EAAA,CACrB,CAAA;EAED,MAAM;IAACvB,WAAa;IAAAC,OAAA;IAASE,WAAa;IAAAD,KAAA;IAAO/wC;EAAS,CAAA,GAAAu6B,KAAA;EAE1D,MAAMgY,mBAAsB,GAAAxoB,WAAA,CAC1ByoB,KAAA;IAAA,IAAC;MAACxyC,KAAAA,EAAAA;;0BACCuW,GAAA,CAAA6a,IAAA,EAAA;MAAK,SAAQ,EAAA,QAAA;MAASxuB,OAAS,EAAAmtB,WAAA;MAAavL,QAAQ,CAAG;MAAArO,IAAA,EAAK,SAC3D;MAAAH,QAAA,EAAA,eAAAO,GAAA,CAACmW,IAAK,EAAA;QAAAppB,IAAA,EAAMD;QAAU+iB,YAAa,EAAA,UAAA;QAChCpQ,QAAAhW,EAAAA;MAAAA,CACH;IACF,CAAA,CAAA;EAAA,GAEF,CAACqD,UAAU0sB,WAAW,CAAA,CACxB;EAEA,MAAMiiB,YACJ,GAAA,OAAOC,gBAAqB,KAAA,UAAA,GAAaA,gBAAmB,GAAAM,mBAAA;EAE9D,MAAMd,YACJ,GAAA,OAAOC,gBAAqB,KAAA,UAAA,GAAaA,gBAAmB,GAAAJ,qBAAA;EAGxD,MAAAmB,cAAA,GAAiBvsC,OAA8B,IAAI,CAAA;EACnD,MAAAwsC,wBAAA,GAA2BxsC,OAA8B,IAAI,CAAA;EAC7D,MAAAysC,eAAA,GAAkBzsC,OAAgC,IAAI,CAAA;EACtD,MAAA0sC,iBAAA,GAAoB1sC,OAA8B,IAAI,CAAA;EAGtD,MAAA2sC,cAAA,GAAiB3sC,OAAO,KAAK,CAAA;EAC7B,MAAA04B,QAAA,GAAW14B,OAAOlG,KAAK,CAAA;EACvB,MAAA8yC,YAAA,GAAe5sC,OAAOksC,SAAS,CAAA;EAC/B,MAAAW,qBAAA,GAAwB7sC,OAAO,KAAK,CAAA;EAEpC,MAAA2rB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAElC,MAAAm6B,SAAA,GAAY,GAAG1yC,MAAE,CAAA6pB,EAAA,EAAA,UAAA,CAAA;EACvB,MAAM7W,OAAU,GAAApS,KAAA,CAAMC,OAAQ,CAAA2wC,WAAW,IAAIA,WAAc,GAAA1yC,WAAA;EACrD,MAAAwD,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EACxC,MAAMkjB,aAAgB,GAAAluC,OAAA,CACpB,MAAO/E,KAAU,KAAA,IAAA,GAAOsT,OAAQ,CAAA4/B,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,KAAU,KAAAA,KAAK,CAAI,GAAA,KAAA,CAAA,EACjE,CAACsT,SAAStT,KAAK,CAAA,CACjB;EACA,MAAMozC,eAAkB,GAAAruC,OAAA,CACtB,MAAMuO,OAAQ,CAAA9N,MAAA,CAAQ6rC,MAAA,IAAYN,QAAQU,YAAa,CAAAV,KAAA,EAAOM,MAAM,CAAA,GAAI,IAAK,CAAA,EAC7E,CAACI,YAAc,EAAAn+B,OAAA,EAASy9B,KAAK,CAAA,CAC/B;EACA,MAAMsC,qBAAqBD,eAAgB,CAAA3xC,MAAA;EAC3C,MAAM6xC,YAAe,GAAAzC,WAAA,GAAc,EAAG,CAAAvwC,MAAA,CAAA6pB,EAAA,EAAE,YAAW7pB,MAAgB,CAAAuwC,WAAA,CAAA,GAAA,KAAA,CAAA;EACnE,MAAM0C,QAAY,GAAAxC,KAAA,KAAU,IAAQ,IAAAjhB,OAAA,IAAaghB,WAAWC,KAAU,KAAA,IAAA;EAEtE,MAAMyC,cAAiB,GAAAzpB,WAAA,CACpBtiB,KAAwC,IAAA;IACvCslC,UAAA,CAAW,MAAM;MAIf,IAAIgG,sBAAsB1sC,OAAS,EAAA;QACjC;MACF;MAEM,MAAAN,QAAA,GAAA,CAA2BgsC,eAAmB,IAAA,EAAI,EAAAzxC,MAAA,CACtDmyC,eAAepsC,OAAU,GAAA,CAACosC,cAAe,CAAApsC,OAAO,IAAI,EAAC,EACrDqsC,yBAAyBrsC,OAAU,GAAA,CAACqsC,wBAAyB,CAAArsC,OAAO,IAAI,EAAC,CAC3E;MAEA,IAAIotC,WAAc,GAAA,KAAA;MAElB,IAAI7rC,SAASk0B,aAAe,EAAA;QAC1B,KAAA,MAAW99B,KAAK+H,QAAU,EAAA;UACxB,IAAI/H,MAAM4J,QAAS,CAAAk0B,aAAA,IAAiB99B,EAAE4I,QAAS,CAAAgB,QAAA,CAASk0B,aAAa,CAAG,EAAA;YACxD2X,WAAA,GAAA,IAAA;YACd;UACF;QACF;MACF;MAEA,IAAIA,gBAAgB,KAAO,EAAA;QAChBpB,QAAA,CAAA;UAAC72C,IAAM,EAAA;QAAA,CAAY,CAAA;QAC5Bu3C,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;QAC5B,IAAAurC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;QACjC,IAAAlC,MAAA,EAAQA,MAAA,CAAOjoC,KAAK,CAAA;MAC1B;OACC,CAAC,CAAA;EACN,CAAA,EACA,CAACioC,MAAQ,EAAAkC,aAAA,EAAeG,eAAe,CAAA,CACzC;EAEM,MAAA2B,eAAA,GAAkB3pB,WAAY,CAACtiB,KAAsC,IAAA;IACzE,MAAMksC,iBAAiBf,iBAAkB,CAAAvsC,OAAA;IACzC,MAAMutC,cAAiB,GAAAnsC,KAAA,CAAMf,MAAkB,YAAA65B,WAAA,GAAc94B,MAAMf,MAAS,GAAA,IAAA;IACtEsqC,MAAAA,YAAAA,GAAAA,CAAc2C,cAAgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,cAAA,CAAA/sC,QAAA,CAASgtC,cAAmB,CAAA,KAAA,KAAA;IAE5D5C,IAAAA,YAAAA,KAAgB6B,eAAexsC,OAAS,EAAA;MAC1CwsC,cAAA,CAAexsC,OAAU2qC,GAAAA,YAAAA;MAEzBqB,QAAA,CAAS;QAAC72C,IAAA,EAAM,qBAAuB;QAAAw1C,WAAA,EAAAA;MAAY,CAAA,CAAA;IACrD;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM6C,kBAAqB,GAAA9pB,WAAA,CACxBnrB,CAAc,IAAA;IApQnB,IAAAqK,EAAA;IAqQMopC,QAAA,CAAS;MAAC72C,IAAA,EAAM,cAAgB;MAAAwE,KAAA,EAAOpB;IAAE,CAAA,CAAA;IAEzCm0C,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;IAE5B,IAAAmqC,QAAA,EAAUA,QAAA,CAAS5xC,CAAC,CAAA;IAExBggC,QAAA,CAASv4B,OAAU,GAAAzH,CAAA;IAEf,IAAAghC,QAAA,EAAUA,QAAA,CAAShhC,CAAC,CAAA;IACpB,IAAAgzC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;IAErC,CAAA3oC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;EAC3B,CAAA,EACA,CAACwD,QAAU,EAAA4Q,QAAA,EAAUoB,aAAa,CAAA,CACpC;EAEA,MAAMkC,iBAAoB,GAAA/pB,WAAA,CACvBtiB,KAAsC,IAAA;IAtR3C,IAAAwB,EAAA,EAAAO,EAAA;IAuRU,IAAA/B,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,IAAI,CAAC2H,kBAAA,EAAoB;MAEzB,MAAMU,eAAeX,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,UAAU6wC,WAAW,CAAA;MACxE,MAAMmD,WAAc,GAAAD,YAAA,GAAeX,eAAgB,CAAAx/B,OAAA,CAAQmgC,YAAY,CAAI,GAAA,CAAA,CAAA;MAC3E,MAAME,gBAAmB,GAAAb,eAAA,CAAA,CAAiBY,WAAc,GAAA,CAAA,IAAKX,kBAAkB,CAAA;MAE/E,IAAIY,gBAAkB,EAAA;QACX5B,QAAA,CAAA;UAAC72C,MAAM,qBAAuB;UAAAwE,KAAA,EAAOi0C,iBAAiBj0C,KAAO;UAAAgxC,WAAA,EAAa;SAAK,CAAA;MAC1F;MAEA;IACF;IAEI,IAAAvpC,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,IAAI,CAAC2H,kBAAA,EAAoB;MAEzB,MAAMU,eAAeX,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,UAAU6wC,WAAW,CAAA;MACxE,MAAMmD,WAAc,GAAAD,YAAA,GAAeX,eAAgB,CAAAx/B,OAAA,CAAQmgC,YAAY,CAAI,GAAA,CAAA,CAAA;MACrE,MAAAE,gBAAA,GACJb,gBACEY,WAAgB,KAAA,CAAA,CAAA,GACZX,qBAAqB,CACpB,GAAA,CAAAA,kBAAA,GAAqBW,WAAc,GAAA,CAAA,IAAKX,kBAC/C,CAAA;MAEF,IAAIY,gBAAkB,EAAA;QACX5B,QAAA,CAAA;UAAC72C,MAAM,qBAAuB;UAAAwE,KAAA,EAAOi0C,iBAAiBj0C,KAAO;UAAAgxC,WAAA,EAAa;SAAK,CAAA;MAC1F;MAEA;IACF;IAEI,IAAAvpC,KAAA,CAAMtH,QAAQ,QAAU,EAAA;MACjBkyC,QAAA,CAAA;QAAC72C,IAAM,EAAA;MAAA,CAAc,CAAA;MAC9Bu3C,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;MAC5B,IAAAurC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;MACrC,CAAA3oC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;MAEzB;IACF;IAEA,MAAM11B,SAASe,KAAM,CAAAf,MAAA;IACrB,MAAMwtC,SAAStB,iBAAkB,CAAAvsC,OAAA;IAG9B,IAAA,CAAA6tC,MAAA,KAAWxtC,MAAU,KAAAwtC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQttC,QAAS,CAAAF,MAAA,CAAA,CAAA,KACvC,CAACuqC,gCAAiC,CAAA1qC,QAAA,CAASkB,KAAM,CAAAtH,GAAG,CACpD,EAAA;MACA,CAAAqJ,EAAA,GAAAmpC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAAmD,EAAA,CAAA4yB,KAAA,EAAA;MAEzB;IACF;EACF,CAAA,EACA,CAACyU,WAAA,EAAauC,eAAiB,EAAAC,kBAAA,EAAoBzB,aAAa,CAAA,CAClE;EAEA,MAAMuC,iBAAoB,GAAApqB,WAAA,CACvBtiB,KAAyC,IAAA;IAClC,MAAA2sC,SAAA,GAAY3sC,MAAMipC,aAAc,CAAA1wC,KAAA;IAEtCqyC,QAAA,CAAS;MAAC72C,IAAA,EAAM,cAAgB;MAAAu1C,KAAA,EAAOqD;IAAU,CAAA,CAAA;IAE7C,IAAAxC,aAAA,EAAeA,aAAA,CAAcwC,SAAS,CAAA;EAC5C,CAAA,EACA,CAACxC,aAAa,CAAA,CAChB;EAEA,MAAMyC,gBAAmB,GAAAtqB,WAAA,CACtBtiB,KAAwC,IAAA;IACvC,IAAI,CAACqpC,OAAS,EAAA;MACHuB,QAAA,CAAA;QAAC72C,IAAM,EAAA;MAAA,CAAc,CAAA;MAE1B,IAAAkiC,OAAA,EAASA,OAAA,CAAQj2B,KAAK,CAAA;IAC5B;EACF,CAAA,EACA,CAACqpC,SAASpT,OAAO,CAAA,CACnB;EAEM,MAAA4W,uBAAA,GAA0BvqB,YAAY,MAAM;IAChDgpB,qBAAA,CAAsB1sC,OAAU,GAAA,IAAA;EAClC,CAAA,EAAG,EAAE,CAAA;EAEC,MAAAkuC,uBAAA,GAA0BxqB,YAAY,MAAM;IAChDgpB,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;EAClC,CAAA,EAAG,EAAE,CAAA;EAEC,MAAAmuC,sBAAA,GAAyBzqB,YAAY,MAAM;IAlXnD,IAAA9gB,EAAA;IAmXaopC,QAAA,CAAA;MAAC72C,IAAM,EAAA;IAAA,CAAa,CAAA;IAC7BojC,QAAA,CAASv4B,OAAU,GAAA,EAAA;IACf,IAAAu5B,QAAA,EAAUA,QAAA,CAAS,EAAE,CAAA;IACrB,IAAAgS,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;IACrC,CAAA3oC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;EAAA,CACxB,EAAA,CAACwD,QAAU,EAAAgS,aAAa,CAAC,CAAA;EAEtB,MAAA6C,sBAAA,GAAyB1qB,YAAY,MAAM;IACtCsoB,QAAA,CAAA;MAAC72C,IAAM,EAAA;IAAA,CAAc,CAAA;EAChC,CAAA,EAAG,EAAE,CAAA;EAGL2K,SAAA,CAAU,MAAM;IAEV,IAAAisC,SAAA,KAAcU,aAAazsC,OAAS,EAAA;MACtCysC,YAAA,CAAazsC,OAAU,GAAA+rC,SAAA;MAEvB,IAAIA,cAAc,KAAW,CAAA,EAAA;QAC3BC,QAAA,CAAS;UAAC72C,IAAA,EAAM,cAAgB;UAAAwE,KAAA,EAAOoyC;QAAU,CAAA,CAAA;QACjDxT,QAAA,CAASv4B,OAAU,GAAA+rC,SAAA;MACrB;MAEA;IACF;IAGI,IAAAA,SAAA,KAAcxT,SAASv4B,OAAS,EAAA;MAClCu4B,QAAA,CAASv4B,UAAU+rC,SAAa,IAAA,IAAA;MAEhCC,QAAA,CAAS;QAAC72C,IAAM,EAAA,cAAA;QAAgBwE,KAAO,EAAAoyC,SAAA,IAAa;OAAK,CAAA;IAC3D;EAAA,CACF,EAAG,CAACA,SAAS,CAAC,CAAA;EAGdjsC,SAAA,CAAU,MAAM;IACV,IAAA,CAAC2qC,OAAW,IAAAlS,QAAA,CAASv4B,OAAS,EAAA;MAChCgsC,QAAA,CAAS;QAAC72C,IAAM,EAAA,qBAAA;QAAuBwE,KAAO,EAAA4+B,QAAA,CAASv4B;OAAQ,CAAA;IACjE;EAAA,CACF,EAAG,CAACyqC,OAAO,CAAC,CAAA;EAGZ3qC,SAAA,CAAU,MAAM;IACd,MAAMuuC,cAAc9B,iBAAkB,CAAAvsC,OAAA;IAEtC,IAAI,CAACquC,WAAA,EAAa;IAElB,MAAMX,eAAeX,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,UAAU6wC,WAAW,CAAA;IAExE,IAAIkD,YAAc,EAAA;MACV,MAAAC,WAAA,GAAcZ,eAAgB,CAAAx/B,OAAA,CAAQmgC,YAAY,CAAA;MAClD,MAAAY,iBAAA,GAAoBD,WAAY,CAAApY,UAAA,CAAW0X,WAAW,CAAA;MAE5D,IAAIW,iBAAmB,EAAA;QACjB,IAAA9Y,SAAA,CAAU8Y,iBAAiB,CAAG,EAAA;UAEhC;QACF;QAEAtY,oBAAA,CAAqBsY,iBAAiB,CAAA;MACxC;IACF;EAAA,CACC,EAAA,CAAC9D,WAAa,EAAAuC,eAAe,CAAC,CAAA;EAEjC,MAAMxZ,MAAS,GAAA7P,WAAA,CACZzkB,EAAgC,IAAA;IAC/BqtC,eAAA,CAAgBtsC,OAAU,GAAAf,EAAA;IAC1BusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAACusB,YAAY,CAAA,CACf;EAEM,MAAAoZ,WAAA,GAAclmC,QAAQ,MAAM;IAChC,IAAI,CAAC+qB,OAAA,IAAW,CAAC/M,QAAA,IAAY/iB,KAAO,EAAA;MAC3B,OAAA;QACL,YAAc,EAAA,OAAA;QACd09B,OAAS,EAAA+W;MAAA,CACX;IACF;IAEO,OAAA,KAAA,CAAA;KACN,CAAC1xB,QAAA,EAAU0xB,sBAAwB,EAAA3kB,OAAA,EAAS9vB,KAAK,CAAC,CAAA;EAErD,MAAM40C,oBAAuB,GAAA7vC,OAAA,CAC3B,MACEnC,OAAA,CAAQhC,GAAI,CAAChC,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACgE,OAAO,CAAA,CACV;EACA,MAAMiyC,oBAAoB9vC,OAAQ,CAAA,MAAMnC,OAAQ,CAAAhC,GAAA,CAAKhC,CAAM,IAAAoF,IAAA,CAAKoZ,GAAI,CAAAxe,CAAA,GAAI,GAAG,CAAC,CAAC,CAAG,EAAA,CAACgE,OAAO,CAAC,CAAA;EACzF,MAAMkyC,eAA+C,GAAA/vC,OAAA,CACnD,MAAO,OAAO8sC,UAAe,KAAA,QAAA,GAAWA,UAAa,GAAAxyC,YAAA,EACrD,CAACwyC,UAAU,CAAA,CACb;EAEA,MAAMkD,eAAkB,GAAAhrB,WAAA,CACrBtiB,KAAyC,IAAA;IAC/B4qC,QAAA,CAAA;MACP72C,IAAM,EAAA,WAAA;MACNu1C,KAAO,EAAA/wC,KAAA,GAAQmyC,WAAY,CAAAnyC,KAAA,EAAOizC,aAAa,CAAI,GAAA;IAAA,CACpD,CAAA;IAED,IAAI6B,eAAgB,CAAA1I,OAAA,EAAS0I,eAAA,CAAgB1I,QAAQ3kC,KAAK,CAAA;IAE1DozB,IAAA,CAAK,MAAG;MA/dd,IAAA5xB,EAAA;MA+diB,OAAA,CAAAA,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;IAAA,CAAO,CAAA;EAC7C,CAAA,EACA,CAAC6W,aAAA,EAAe6B,eAAiB,EAAA3C,WAAA,EAAanyC,KAAK,CAAA,CACrD;EAEA,MAAMg1C,cAAiB,GAAAjwC,OAAA,CACrB,MACE,CAACge,QAAA,IAAY,CAACE,QAAA,IAAY4uB,UACxB,GAAA,eAAAt7B,GAAA,CAAC2V,GAAI,EAAA;IAAA,aAAA,EAAaqnB,QAAU;IAAA3wC,OAAA,EAASgyC,oBACnC;IAAA5+B,QAAA,EAAA,eAAAO,GAAA,CAACoZ,MAAA,EAAA;MACC,YAAW,EAAA,MAAA;MACX5M,QAAU,EAAAwwB,QAAA;MACVlwC,QAAA;MACA+qB,IAAM,EAAAwa,eAAA;MACN7b,IAAK,EAAA,OAAA;MACLnqB,OAAS,EAAAiyC,iBAAA;MACR,GAAGC,eAAA;MACJ1I,OAAS,EAAA2I;IAAA,CAAA;EAEb,CAAA,CACE,GAAA,KAAA,CAAA,EACN,CACEhyB,QAAA,EACAwwB,QAAA,EACAlwC,QAAA,EACA0xC,eAAA,EACAlD,UAAA,EACA+C,oBAAA,EACAC,iBAAA,EACAC,eAAA,EACA7xB,QAAA,CACF,CACF;EAEM,MAAAgyB,UAAA,GAAalwC,QAAQ,MAAM;IAC/B,IAAIgsC,UAAU,IAAM,EAAA;MAClB,IAAI/wC,UAAU,IAAM,EAAA;QACX,OAAAmyC,WAAA,CAAYnyC,OAAOizC,aAAa,CAAA;MACzC;MAEO,OAAA,EAAA;IACT;IAEO,OAAAlC,KAAA;KACN,CAACkC,aAAA,EAAelC,KAAO,EAAAoB,WAAA,EAAanyC,KAAK,CAAC,CAAA;EAE7C,MAAM0iB,KACJ,GAAA,eAAAnM,GAAA,CAACw0B,SAAA,EAAA;IACE,GAAGzkB,SAAA;IACJ,uBAAuB,EAAAgtB,YAAA;IACvB,mBAAkB,EAAA,MAAA;IAClB,eAAe,EAAAC,QAAA;IACf,WAAW,EAAAP,SAAA;IACXkC,cAAe,EAAA,KAAA;IACfC,YAAa,EAAA,KAAA;IACbC,WAAY,EAAA,KAAA;IACZ3gC,MAAA;IACAw2B,WAAA;IACAjyB,cAAA;IACA+J,QAAA;IACA1f,QAAA;IACA+qB,IAAA;IACAwB,WAAWE,OAAW,IAAAwgB,mBAAA;IACtBnmB,EAAA;IACAkrB,SAAU,EAAA,QAAA;IACVzV,QAAU,EAAAuU,iBAAA;IACVhJ,OAAS,EAAAqJ,sBAAA;IACT9W,OAAS,EAAA2W,gBAAA;IACTzxC,OAAA;IACAwoC,MAAA;IACA5mB,MAAA;IACAvB,QAAA;IACApK,GAAK,EAAA+gB,MAAA;IACL+W,IAAK,EAAA,UAAA;IACL2E,UAAY,EAAA,KAAA;IACZjK,QAAQA,MAAU,IAAA2J,cAAA;IAClBh1C,KAAO,EAAAi1C;EAAA,CAAA,CACT;EAGF,MAAMM,oBAAuB,GAAAxrB,WAAA,CAC1BtiB,KAAyC,IAAA;IAhjB9C,IAAAwB,EAAA;IAkjBU,IAAAxB,KAAA,CAAMtH,QAAQ,KAAO,EAAA;MACnB,IAAA6wC,WAAA,EAAa,CAAA/nC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;IAC5C;EACF,CAAA,EACA,CAAC4U,WAAW,CAAA,CACd;EAEM,MAAAluC,OAAA,GAAUiC,QAAQ,MAAM;IAC5B,IAAIquC,gBAAgB3xC,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA;IAGvC,sBAAA8U,GAAA,CAAC85B,OAAA,EAAA;MACC,SAAQ,EAAA,uBAAA;MACR/6B,SAAW,EAAAigC,oBAAA;MACX3yC,OAAS,EAAA,CAAA;MACR,GAAG+uC,OAAA;MACJ3V,QAAU,EAAA,CAAA,CAAA;MAEVhmB,QAAA,iBAAAO,GAAA,CAACwyB,KAAA,EAAA;QACCtgB,EAAG,EAAA,IAAA;QACH,sBAAsB,EAAA,KAAA;QACtB,SAAQ,EAAA,2BAAA;QACR0B,EAAI,EAAA6oB,SAAA;QACJn6B,GAAK,EAAA+5B,iBAAA;QACLjC,IAAK,EAAA,SAAA;QACLhvC,KAAO,EAAA,CAAA;QAENqU,QAAA,EAAAo9B,eAAA,CAAgBxyC,GAAI,CAACywC,MAAW,IAAA;UAC/B,MAAMmE,SACJ3E,WAAgB,KAAA,IAAA,GAAOQ,MAAO,CAAArxC,KAAA,KAAU6wC,cAAcoC,aAAkB,KAAA5B,MAAA;UAGxE,sBAAA96B,GAAA,CAACg6B,kBAAA,EAAA;YACCpmB,EAAI,EAAA,EAAA,CAAG7pB,MAAE,CAAA6pB,EAAA,EAAA,UAAA,CAAA,CAAW7pB,MAAO,CAAA+wC,MAAA,CAAArxC,KAAA,CAAA;YAE3BwwC,QAAU,EAAAqD,kBAAA;YACVtjB,QAAU,EAAAilB,MAAA;YACVx1C,OAAOqxC,MAAO,CAAArxC,KAAA;YAEbgW,QAAA,EAAAgW,YAAA,CAAagmB,YAAa,CAAAX,MAAM,CAAG,EAAA;cAClCtuB,QAAU,EAAA+M,OAAA;cACVS,QAAU,EAAAilB,MAAA;cACVxZ,QAAA,EAAUgV,WAAe,IAAAwE,MAAA,GAAS,CAAI,GAAA,CAAA;YAAA,CACvC;UAAA,CAAA,EATInE,MAAO,CAAArxC,KAAA,CAUd;QAAA,CAEH;MAAA,CACH;IAAA,CAAA,CACF;EAAA,CAED,EAAA,CACD6wC,WAAA,EACAoC,aAAA,EACAG,eAAA,EACAS,kBAAA,EACA0B,oBAAA,EACAprB,EAAA,EACAwnB,OAAA,EACAqB,SAAA,EACAhC,WAAA,EACAlhB,OAAA,EACAkiB,YAAA,CACD,CAAA;EAEK,MAAAyD,OAAA,GAAU1wC,QAAQ,MAAM;IAC5B,IAAImtC,aAAe,EAAA;MACV,OAAAA,aAAA,CACL;QACEpvC,OAAA;QACA2kC,QAAQ,CAAC8L,QAAA;QACTmC,cAAc/C,eAAgB,CAAAtsC,OAAA;QAC9B0pC,YAAc,EAAAuE,uBAAA;QACdrE,YAAc,EAAAsE;MAChB,CAAA,EACA7B,wBAAA,CACF;IACF;IAEA,IAAIW,uBAAuB,CAAG,EAAA;MACrB,OAAA,IAAA;IACT;IAGE,sBAAA98B,GAAA,CAACiuB,OAAA,EAAA;MACC/d,KAAO,EAAA,KAAA;MACP2e,aAAa,EAAA,IAAA;MACbtiC,OAAA;MACAuiC,kBAAoB,EAAA8L,wCAAA;MACpB7L,mBAAmB,EAAA,IAAA;MACnByK,YAAc,EAAAuE,uBAAA;MACdrE,YAAc,EAAAsE,uBAAA;MACd/O,IAAM,EAAA+N,QAAA;MACN54B,QAAS,EAAA,MAAA;MACTub,SAAW,EAAAgb,8BAAA;MACX1S,MAAM,EAAA,IAAA;MACNha,MAAA;MACA3L,GAAK,EAAA65B,wBAAA;MACL9M,kBAAkB+M,eAAgB,CAAAtsC,OAAA;MACjC,GAAG0/B;IAAA,CAAA,CACN;EAAA,CAED,EAAA,CACDjjC,OAAA,EACAywC,QAAA,EACAF,kBAAA,EACAiB,uBAAA,EACAC,uBAAA,EACAxO,OAAA,EACAvhB,MAAA,EACA0tB,aAAA,CACD,CAAA;EAGC,sBAAAjoB,IAAA,CAACvE,MAAA,EAAA;IACC,SAAQ,EAAA,cAAA;IACRgqB,MAAQ,EAAA8D,cAAA;IACR9V,OAAS,EAAAgW,eAAA;IACTp+B,SAAW,EAAAw+B,iBAAA;IACXj7B,GAAK,EAAA45B,cAAA;IAEJz8B,QAAA,EAAA,CAAA0M,KAAA,EACA+yB,OAAA;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AAQM,MAAME,YAAe,GAAAnE,iBAAA;;;;;;ACtrB5B,IAAAvoC,IAAA,EAAAO,IAAA;AAGa,MAAAkc,MAAA,GAAOC,MAAO,CAAAiwB,EAAA,CAAP3sC,IAAS,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2IAAA,CAAA,CAAA,CAAA,CAAA;AAUtB,MAAMwzB,YAAe,GAAAlwB,MAAA,CAAOgK,MAAM,CAAA,CAAbnmB,IAAc,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA;ACInC,MAAMyzB,WAAc,GAAA9vB,UAAA,CAAW,SAAS8vB,YAAAA,CAC7Cx0C,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C;IAAUyV,SAAW;IAAAsqB,SAAA;IAAWp0C,OAAOq0C,QAAW,GAAA,CAAA;IAAG,GAAG1vB;EAAa,CAAA,GAAAhlB,KAAA;EACtE,MAAAK,KAAA,GAAQkD,aAAamxC,QAAQ,CAAA;EACnC,MAAM,CAACxQ,IAAA,EAAMyQ,OAAO,CAAA,GAAInwC,SAAS,KAAK,CAAA;EACtC,MAAM,CAACowC,aAAA,EAAeC,gBAAgB,CAAA,GAAIrwC,SAAmC,IAAI,CAAA;EACjF,MAAM,CAACswC,cAAA,EAAgBC,iBAAiB,CAAA,GAAIvwC,SAAgC,IAAI,CAAA;EAEhF,MAAMwwC,WAAWvsB,WAAY,CAAA,MAAMksB,QAAQ,KAAK,CAAA,EAAG,EAAE,CAAA;EACrD,MAAMM,SAASxsB,WAAY,CAAA,MAAMksB,QAAQ,IAAI,CAAA,EAAG,EAAE,CAAA;EAElDvwC,eAAA,CAAgB4wC,QAAU,EAAA,CAACJ,aAAe,EAAAE,cAAc,CAAC,CAAA;EAEzD,MAAMI,QAAW,GAAAzxC,OAAA,CACf,MACE0xC,QAAS,CAAAC,OAAA,CAAQ1gC,QAAQ,CAAE,CAAAxQ,MAAA,CAAQmmB,KAAU,IAAA;IAC3C,OAAO+E,eAAe/E,KAAK,CAAA;EAAA,CAC5B,CAAA,EACH,CAAC3V,QAAQ,CAAA,CACX;EAEM,MAAA2pB,KAAA,GAAQ56B,QAAQ,MAAM;IAC1B,MAAMyc,MAAMg1B,QAAS,CAAA/0C,MAAA;IAEjB,IAAAgqB,SAAA,IAAajK,MAAMiK,SAAW,EAAA;MAChC,MAAMkrB,YAAe,GAAA3yC,IAAA,CAAKk9B,IAAK,CAAAzV,SAAA,GAAY,CAAC,CAAA;MAC5C,MAAMmrB,WAAc,GAAA5yC,IAAA,CAAKC,KAAM,CAAAwnB,SAAA,GAAY,CAAC,CAAA;MAErC,OAAA,CACL,GAAG+qB,QAAA,CAAS3iC,KAAM,CAAA,CAAA,EAAG8iC,eAAe,CAAC,CAAA,EAAA,eACrCpgC,GAAA,CAACiuB,OAAA,EAAA;QACCY,aAAa,EAAA,IAAA;QACbtiC,SACG,eAAAyT,GAAA,CAAAwyB,KAAA,EAAA;UAAMtgB,EAAG,EAAA,IAAA;UAAK9N,UAAS,MAAO;UAAA/X,OAAA,EAASjB,KAAO;UAAAA,KAAA;UAC5CqU,mBAASnC,KAAM,CAAA8iC,YAAA,GAAe,CAAG,EAAAn1B,GAAA,GAAMo1B,WAAW;SACrD,CAAA;QAGFpR,IAAA;QACAtP,SAAU,EAAA,KAAA;QACVsI,MAAM,EAAA,IAAA;QACN3lB,GAAK,EAAAw9B,iBAAA;QAELrgC,QAAA,iBAAAO,GAAA,CAACs/B,YAAA,EAAA;UACCxyC,QAAU,EAAA,CAAA;UACV0pB,IAAK,EAAA,OAAA;UACLqf,OAAA,EAAS5G,OAAO8Q,QAAW,GAAAC,MAAA;UAC3B3zC,OAAS,EAAA,CAAA;UACTiW,GAAK,EAAAs9B,gBAAA;UACL5lB,QAAU,EAAAiV,IAAA;UACV3jB,IAAK,EAAA;QAAA,CACP;MAAA,CAAA,EAdI,QAeN,CAAA,EACA,GAAG20B,QAAA,CAAS3iC,KAAM,CAAA2N,GAAA,GAAMo1B,WAAW,CAAA,CACrC;IACF;IAEO,OAAAJ,QAAA;EAAA,CACT,EAAG,CAACF,QAAU,EAAAC,MAAA,EAAQ9qB,WAAW+Z,IAAM,EAAAgR,QAAA,EAAU70C,KAAK,CAAC,CAAA;EAEvD,OACG,eAAA4U,GAAA,CAAAmP,MAAA,EAAA;IAAK,SAAQ,EAAA,aAAA;IAAe,GAAGY,SAAA;IAAWzN,GACxC;IAAA7C,QAAA,EAAA2pB,KAAA,CAAM/+B,GAAI,CAAA,CAACugC,IAAM,EAAAE,SAAA,yBACfllC,UACE,EAAA;MAAA6Z,QAAA,EAAA,CAAAqrB,SAAA,GAAY,CACX,mBAAA9qB,GAAA,CAAC2V,GAAI,EAAA;QAAA,aAAA,EAAW;QAACzD,EAAG,EAAA,IAAA;QAAK6D,QAAU,EAAA3qB,KAAA;QAChCqU,sCAAcO,GAAA,CAAAmW,IAAA,EAAA;UAAKvG,KAAK,EAAA,IAAA;UAACnQ;QAAC,CAAA;OAC7B,CAAA,EAAA,eAEDO,GAAA,CAAA2V,GAAA,EAAA;QAAIzD,EAAG,EAAA,IAAA;QAAMzS,QAAK,EAAAmrB;OAAA,CAAA;KANN,EAAAE,SAOf,CACD;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC7FD,IAAAp4B,IAAA,EAAAO,IAAA;AAYgB,SAAAqtC,WAAAA,CAAAC,KAAA,EAA4C;EAAA,IAAhC;IAACz1C;GAA+B,GAAAy1C,KAAA;EAC1D,MAAM;IAACx6B;EAAA,CAAS,GAAA1a,WAAA,CAAYP,KAAK,CAAA;EAE1B,OAAA;IACL,iBAAmB,EAAA;MACjB0B,OAAS,EAAA;IACX,CAAA;IAEA4F,GAAK,EAAA,CAAA;IACLC,IAAM,EAAA,CAAA;IACNE,KAAO,EAAA,CAAA;IACPD,MAAQ,EAAA,CAAA;IACRsS,UAAY,EAAA,QAAA;IACZQ,cAAgB,EAAA,QAAA;IAChBoJ,OAAS,EAAA,MAAA;IACTgyB,YAAYz6B,KAAM,CAAAkR;EAAA,CACpB;AACF;AAEO,SAASwpB,8BACd11C,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAAd,WAAA,CAAYC,KAAO,EAAAc,KAAA,CAAM21C,SAAW,EAACv0C,QAAc,KAAA;IAAC,IAAM,EAAA;MAACA;IAAQ;EAAA,CAAG,CAAA,CAAA;AAC/E;AASO,SAASw0C,qBAAqB51C,KAA0D,EAAA;EAC7F,IAAI,CAACA,KAAM,CAAA5B,OAAA,EAAS,OAAO0iB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAE9B,OAAOD,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,8cAAA,CAAA,CAAA,CAAA,CAAA;AA0BZ;AC7DA,MAAMliB,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,2BAA2B,CAAA;AAElDub,WAAY,CAAAvV,KAAG,IAAIuV,WAAY,CAAAvV,KAAG,KAAKwV,aAAkC,CAAA;EAACU,OAAS,EAAA;AAAA,CAAI,CAAA;AAK1E,MAAA8gC,aAAA,GAAmDzhC,YAAYvV,KAAG,CAAA;ACdxE,SAASi3C,SAAgCA,CAAA,EAAA;EAC9C,OAAOrhC,WAAWohC,aAAa,CAAA;AACjC;;;;;;ACTA,IAAAluC,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA,EAAAC,EAAA,EAAAC,EAAA;AAmFA,SAASyS,mBAAAA,CACPzxC,eACA,EAAA64B,aAAA,EACA/3B,MACS,EAAA;EACL,IAAA,CAACd,mBAAmB,CAAC64B,aAAA,EAAsB,OAAA,IAAA;EAE/C,OACE7C,wBAAwBh2B,eAAiB,EAAAc,MAAM,CAC/C,IAAAk1B,uBAAA,CAAwB6C,eAAe/3B,MAAM,CAAA;AAEjD;AAEA,MAAMgf,SAAOC,MAAO,CAAAqY,KAAK,EAEvBha,sBAAwB,EAAA6yB,WAAA,EAAaG,+BAA+BE,oBAAoB,CAAA;AAE1F,MAAMI,eAAkB,GAAA3xB,MAAA,CAAO0P,SAAS,CAAA,CAAhBpsB,IAAiB,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,kKAAA,CAAA,CAAA,CAAA,CAAA;AAWzC,MAAMk1B,cAAiB,GAAA5xB,MAAA,CAAOyL,IAAI,CAAA,CAAX5nB,IAAY,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,iJAAA,CAAA,CAAA,CAAA,CAAA;AAWnC,MAAMm1B,YAAe,GAAA7xB,MAAA,CAAOsH,IAAI,CAAA,CAAX/K,IAAY,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA;AAMjC,MAAMo1B,YAAe,GAAA9xB,MAAA,CAAOuG,GAAG,CAAA,CAAVwY,IAAW,KAAAA,IAAA,GAAAriB,YAAA,CAAA,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA;AAKhC,MAAMq1B,aAAgB,GAAA/xB,MAAA,CAAOuG,GAAG,CAAA,CAAVyY,EAAW,KAAAA,EAAA,GAAAtiB,YAAA,CAAA,CAAA,+EAAA,CAAA,CAAA,CAAA,CAAA;AAOjC,MAAMs1B,YAAe,GAAAhyB,MAAA,CAAOuG,GAAG,CAAA,CAAV0Y,EAAW,KAAAA,EAAA,GAAAviB,YAAA,CAAA,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA;AAKhC,MAAMu1B,UAAa,GAAA5xB,UAAA,CAAW,SAAS4xB,WAAAA,CACrCt2C,OACAuX,GACA,EAAA;EApJF5P,IAAAA,GAAAA;EAqJQ,MAAA;IACJ4uC,oBAAsB,EAAAC,SAAA;IACtBC,0BAA4B,EAAAC,eAAA;IAC5BhiC,QAAA;IACAiiC,UAAA;IACAC,MAAA;IACAC,MAAA;IACAhuB,EAAA;IACAiuB,cAAA;IACAC,OAAA;IACA7Z,MAAQ,EAAA6P,UAAA;IACR7pB,MAAQ,EAAA8L,UAAA;IACRra,MAAA;IACA2O,MAAQ,EAAAihB,UAAA;IACRn9B,KAAO,EAAAo9B;EACL,CAAA,GAAAxkC,KAAA;EACJ,MAAMk9B,SAASF,SAAU,EAAA;EACnB,MAAAG,aAAA,GAAgB4P,eAAaplC,GAAA,GAAAu1B,MAAA,CAAOz4B,aAAP,IAAAkD,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAkBolC,UAAe,CAAA,KAAA,IAAA,GAAO7P,MAAO,CAAAr5B,OAAA;EAC5E,MAAAS,eAAA,GAAkBszB,mBAAqB,CAAA,CAAA/zB,OAAA;EACvC,MAAAqf,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA1L,MAAA,GAAS/f,aAAaghC,UAAU,CAAA;EAChC,MAAAn9B,KAAA,GAAQ7D,aAAaihC,SAAS,CAAA;EAC9B,MAAAjU,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAACklB,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAgC,IAAI,CAAA;EACpE,MAAAyyC,eAAA,GAAkBryC,OAA8B,IAAI,CAAA;EAC1D,MAAM8+B,QAAQrK,QAAS,EAAA;EACjB,MAAA;IAACwC;EAAc,CAAA,GAAA6H,KAAA;EACf,MAAAwT,OAAA,GAAU,GAAGl4C,MAAE,CAAA6pB,EAAA,EAAA,QAAA,CAAA;EACrB,MAAMsuB,eAAkB,GAAAhzC,OAAA,CAAQ4yC,OAAO,CAAA,IAAKL,eAAoB,KAAA,KAAA;EAC1D,MAAAU,UAAA,GAAajzC,OAAQ,CAAA0yC,MAAM,CAAK,IAAAM,eAAA;EAEtCtyC,SAAA,CAAU,MAAM;IACd,IAAI,CAAC2xC,SAAA,EAAW;IAGhB,IAAIjmB,aAAaxrB,OAAS,EAAA;MACxBg2B,oBAAA,CAAqBxK,aAAaxrB,OAAO,CAAA;IAC3C;EAAA,CACC,EAAA,CAACyxC,SAAW,EAAAjmB,YAAY,CAAC,CAAA;EAE5Bxc,gBAAA,CACE0U,WAAA,CACGtiB,KAAyB,IAAA;IACpB,IAAA,CAAC01B,cAAc,CAACkb,OAAA,EAAS;IAE7B,MAAM3xC,SAASkB,QAAS,CAAAk0B,aAAA;IAExB,IAAIp1B,UAAU,CAAC2wC,mBAAA,CAAoBzxC,eAAiB,EAAA64B,aAAA,EAAe/3B,MAAM,CAAG,EAAA;MAE1E;IACF;IAEI,IAAAe,KAAA,CAAMtH,QAAQ,QAAU,EAAA;MAC1BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MACd0M,OAAA,EAAA;IACV;EACF,CAAA,EACA,CAACzyC,eAAA,EAAiBu3B,UAAY,EAAAkb,OAAA,EAAS5Z,aAAa,CACtD,CAAA,CACF;EAEA/4B,eAAA,CACEqkB,WAAA,CACGtiB,KAAsB,IAAA;IACjB,IAAA,CAAC01B,cAAc,CAACib,cAAA,EAAgB;IAEpC,MAAM1xC,SAASe,KAAM,CAAAf,MAAA;IAErB,IAAIA,UAAU,CAAC2wC,mBAAA,CAAoBzxC,eAAiB,EAAA64B,aAAA,EAAe/3B,MAAM,CAAG,EAAA;MAE1E;IACF;IAEe0xC,cAAA,EAAA;EACjB,CAAA,EACA,CAACxyC,eAAA,EAAiBu3B,UAAY,EAAAib,cAAA,EAAgB3Z,aAAa,CAC7D,CAAA,EACA,CAACV,WAAW,CAAA,CACd;EAEA,MAAMnE,MAAS,GAAA7P,WAAA,CACZzkB,EAA8B,IAAA;IAC7BgzC,cAAA,CAAehzC,EAAE,CAAA;IACjBusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAACusB,YAAY,CAAA,CACf;EAEA,MAAM8mB,aAAgB,GAAA5uB,WAAA,CACnBzkB,EAA8B,IAAA;IAC7BizC,eAAA,CAAgBlyC,OAAU,GAAAf,EAAA;IAC1B,IAAI,OAAO2yC,UAAe,KAAA,UAAA,EAAYA,UAAA,CAAW3yC,EAAE,CAAA,CAAA,KAC1C,IAAA2yC,UAAA,EAAYA,UAAA,CAAW5xC,OAAU,GAAAf,EAAA;EAC5C,CAAA,EACA,CAAC2yC,UAAU,CAAA,CACb;EAEA,sBACG1hC,GAAA,CAAA+gC,eAAA,EAAA;IAAgB,SAAQ,EAAA,YAAA;IAAa5uC;IACpCsN,QAAC,EAAA,eAAAO,GAAA,CAAAghC,cAAA,EAAA;MAAe/yB,MAAgB;MAAA3L,GAAA,EAAK+gB;MAAQ3jB,MAAgB;MAAA2O,MAAA;MAC3D5O,QAAC,EAAA,eAAAiU,IAAA,CAAAutB,YAAA,EAAA;QAAa37B,WAAU,QACrB;QAAA7F,QAAA,EAAA,CAAA0iC,UAAA,uBACEjB,YACC,EAAA;UAAAzhC,QAAA,EAAA,eAAAiU,IAAA,CAACgD;YAAK/R,KAAM,EAAA,QAAA;YAAStY,SAAS,CAC5B;YAAAoT,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC2V,GAAI,EAAA;cAAA9P,IAAA,EAAM,CAAG;cAAAxZ,OAAA,EAAS;cACpBoT,QACC,EAAAmiC,MAAA,IAAA,eAAA5hC,GAAA,CAACmW,IAAK,EAAA;gBAAAvC,EAAA,EAAIquB;gBAASl1C,IAAM,EAAA,CAAA;gBAAG+iB,MAAO,EAAA,UAAA;gBAChCrQ;cACH,CAAA;aAEJ,CAAA,EACCyiC,eACC,IAAA,eAAAliC,GAAA,CAAC2V,GAAI,EAAA;cAAA9P,IAAA,EAAK,MACR;cAAApG,QAAA,iBAAAO,GAAA,CAACoZ,MAAA,EAAA;gBACC,YAAW,EAAA,cAAA;gBACX5M,UAAU,CAACs1B,OAAA;gBACXjqB,IAAM,EAAA+d,SAAA;gBACNpf,IAAK,EAAA,OAAA;gBACLqf,OAAS,EAAAiM,OAAA;gBACTz1C,OAAS,EAAA;cAAA,CAAA;aAEb,CAAA;UAAA,CAEJ;QACF,CAAA,CAAA,EAGF,eAAA2T,GAAA,CAACmhC;UAAct7B,IAAM,EAAA,CAAA;UAAGvD,KAAK8/B,aAAe;UAAA3c,QAAA,EAAU;UACnDhmB;SACH,CAAA,EAECkiC,MAAA,IAAW,eAAA3hC,GAAA,CAAAohC,YAAA,EAAA;UAAc3hC,QAAO,EAAAkiC;QAAA,CAAA,CAAA;OACnC;KACF;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;AAOM,MAAMU,MAAS,GAAA5yB,UAAA,CAAW,SAAS4yB,OAAAA,CACxCt3C,OACAuX,GACA,EAAA;EAxSF5P,IAAAA,GAAAA;EAySE,MAAM4vC,SAASzB,SAAU,EAAA;EACnB,MAAA;IAACpS;GAAK,GAAIjuB,WAAY,EAAA;EACtB,MAAA;IACJ8gC,sBAAsBC,SAAY,GAAA,IAAA;IAClCC,4BAA4BC,eAAkB,GAAA,KAAA;IAC9Cc,YAAYC,cAAiB,GAAA,CAAA;IAC7BC,UAAa,GAAA,CAAA;IACbhjC,QAAA;IACAiiC,UAAA;IACAC,MAAA;IACAC,MAAA;IACAhuB,EAAA;IACAsT,UAAA;IACA2a,cAAA;IACAC,OAAA;IACA3a,OAAA;IACA96B,SAASmtB,WAAc,GAAA,CAAA;IACvByO,MAAQ,EAAA6P,UAAA;IACR3rC,QAAA,EAAUu2C,YAAe,GAAAJ,MAAA,CAAOn2C,QAAY,IAAA,OAAA;IAC5CuT,MAAA;IACAvN,OAAOo9B,SAAY,GAAA,CAAA;IACnBpJ,OAAS,EAAAC,WAAA,GAAckc,MAAO,CAAAnc,OAAA,IAAWsI,MAAM6T,MAAO,CAAAnc,OAAA;IACtDh9B,OAAU,GAAA,KAAA;IACV,GAAG4mB;EACD,CAAA,GAAAhlB,KAAA;EACJ,MAAMk9B,SAASF,SAAU,EAAA;EACnB,MAAAG,aAAA,GAAgB4P,eAAaplC,GAAA,GAAAu1B,MAAA,CAAOz4B,aAAP,IAAAkD,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAkBolC,UAAe,CAAA,KAAA,IAAA,GAAO7P,MAAO,CAAAr5B,OAAA;EAC5E,MAAAS,eAAA,GAAkBszB,mBAAqB,CAAA,CAAA/zB,OAAA;EACvC,MAAA2zC,UAAA,GAAaj0C,aAAak0C,cAAc,CAAA;EACxC,MAAAn2C,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAArtB,QAAA,GAAWmC,aAAao0C,YAAY,CAAA;EACpC,MAAAvwC,KAAA,GAAQ7D,aAAaihC,SAAS,CAAA;EAC9B,MAAApJ,OAAA,GAAU73B,aAAa83B,WAAW,CAAA;EAClC,MAAAuc,SAAA,GAAYhzC,OAA8B,IAAI,CAAA;EAC9C,MAAAizC,UAAA,GAAajzC,OAA8B,IAAI,CAAA;EAC/C,MAAAkzC,OAAA,GAAUlzC,OAA8B,IAAI,CAAA;EAC5C,MAAAmzC,iBAAA,GAAoBnzC,OAA2B,IAAI,CAAA;EAEzD,MAAM43B,WAAc,GAAA/T,WAAA,CACjBtiB,KAA4C,IAAA;IACjCi2B,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAj2B,KAAA,CAAA;IAEV,MAAMf,SAASe,KAAM,CAAAf,MAAA;IACrB,MAAM4yC,cAAcF,OAAQ,CAAA/yC,OAAA;IAExB,IAAAizC,WAAA,IAAe5yC,MAAW,KAAAwyC,SAAA,CAAU7yC,OAAS,EAAA;MAC/Ck2B,mBAAA,CAAoB+c,WAAW,CAAA;MAE/B;IACF;IAEI,IAAAA,WAAA,IAAe5yC,MAAW,KAAAyyC,UAAA,CAAW9yC,OAAS,EAAA;MAChDg2B,oBAAA,CAAqBid,WAAW,CAAA;MAEhC;IACF;IAEI,IAAAje,aAAA,CAAc5zB,KAAM,CAAAf,MAAM,CAAG,EAAA;MAC/B2yC,iBAAA,CAAkBhzC,UAAUoB,KAAM,CAAAf,MAAA;IACpC;EACF,CAAA,EACA,CAACg3B,OAAO,CAAA,CACV;EAEM,MAAA8a,OAAA,GAAU,GAAGl4C,MAAE,CAAA6pB,EAAA,EAAA,QAAA,CAAA;EAErB,MAAMovB,sBAAsBrzC,MAAuB,EAAA;EAK7C,MAAAszC,eAAA,GAAkBzvB,YAAY,MAAM;IACxC,IAAIwvB,oBAAoBlzC,OAAS,EAAA;MAC/BymC,YAAA,CAAayM,oBAAoBlzC,OAAO,CAAA;IAC1C;IAEoBkzC,mBAAA,CAAAlzC,OAAA,GAAU0mC,WAAW,MAAM;MAC7C,MAAMjR,gBAAgBl0B,QAAS,CAAAk0B,aAAA;MAE/B,IAAIA,iBAAiB,CAACub,mBAAA,CAAoBzxC,eAAiB,EAAA64B,aAAA,EAAe3C,aAAa,CAAG,EAAA;QACxF,MAAMp1B,SAAS2yC,iBAAkB,CAAAhzC,OAAA;QAEjC,IAAI,CAACK,MAAU,IAAA,CAACkB,SAAS0K,IAAK,CAAA1L,QAAA,CAASF,MAAM,CAAG,EAAA;UAE9C,MAAM4yC,cAAcF,OAAQ,CAAA/yC,OAAA;UACxB,IAAAizC,WAAA,EAAajd,oBAAA,CAAqBid,WAAW,CAAA;UAEjD;QACF;QAEA5yC,MAAA,CAAO01B,KAAM,CAAA,CAAA;MACf;OACC,CAAC,CAAA;EAAA,CACH,EAAA,CAACx2B,eAAiB,EAAA64B,aAAa,CAAC,CAAA;EAGjC,OAAA,eAAAloB,GAAA,CAACja,MAAO,EAAA;IAAAiiC,eAAA,EAAiB8P,UACvB;IAAAr4B,QAAA,EAAA,eAAAiU,IAAA,CAACvE,MAAA,EAAA;MACE,GAAGY,SAAA;MACJhF,QAAU,EAAA1e,OAAA;MACVq0C,SAAW,EAAAv0C,QAAA;MACX,iBAAiB,EAAA81C,OAAA;MACjB,YAAU,EAAA,IAAA;MACV,SAAQ,EAAA,QAAA;MACRruB,EAAA;MACAsT,UAAA;MACA2O,OAAS,EAAAoN,eAAA;MACT9b,OAAS,EAAAI,WAAA;MACTjlB,GAAA;MACA83B,IAAK,EAAA,QAAA;MACLjU,OAAA;MACAh9B,OAAA;MAEAsW,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC,KAAI,EAAA;QAAAsC,GAAA,EAAKqgC,SAAW;QAAAld,QAAA,EAAU;OAAG,CAAA,EAAA,eAClCzlB,GAAA,CAACqhC,UAAA,EAAA;QACCC,oBAAsB,EAAAC,SAAA;QACtBC,0BAA4B,EAAAC,eAAA;QAC5BC,UAAA;QACAC,MAAA;QACAC,MAAA;QACAhuB,EAAA;QACAiuB,cAAA;QACAC,OAAA;QACA7Z,MAAQ,EAAA6P,UAAA;QACR7pB,MAAQ,EAAAs0B,UAAA;QACRjgC,GAAK,EAAAugC,OAAA;QACLnjC,MAAA;QACA2O,MAAQ,EAAAo0B,UAAA;QACRtwC,KAAA;QAECsN;MAAA,CACH,CAAA,EAAA,eACCO,GAAA,CAAA,KAAA,EAAA;QAAIsC,GAAK,EAAAsgC,UAAA;QAAYnd,UAAU;OAAG,CAAA;IAAA,CAEvC;EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;AC/ZM,SAASyd,eAAen4C,KAAgD,EAAA;EAC7E,MAAM;IAAC0U,QAAA;IAAUtT,QAAU;IAAAg6B;EAAA,CAAW,GAAAp7B,KAAA;EAEtC,MAAMm5B,YAAmC,GAAA11B,OAAA,CACvC,OAAO;IACLsR,OAAS,EAAA,CAAA;IACT3T,QAAA;IACAg6B;EAAA,CACF,CAAA,EACA,CAACh6B,UAAUg6B,OAAO,CAAA,CACpB;EAEA,0BAAQya,aAAc,CAAA3gC,QAAA,EAAd;IAAuBxW,KAAA,EAAOy6B;IAAezkB;EAAS,CAAA,CAAA;AAChE;;;;;;AC/BA,IAAA/M,IAAA,EAAAO,IAAA;AAiBA,MAAMkc,MAAA,GAAOC,MAAO,CAAA8I,GAAA,CAAPxlB,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wFAAA,CAAA,CAAA,CAAA,CAAA;AASvB,MAAMq3B,GAAM,GAAA/zB,MAAA,CAAOkQ,GAAG,CAAA,CAAVrsB,IAAW,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA;AAWhB,MAAMs3B,OAAU,GAAA3zB,UAAA,CAAW,SAAS2zB,QAAAA,CACzCr4C,OACAuX,GACA,EAAA;EACM,MAAA;IAACxV,QAAU;IAAAtD,IAAA;IAAM6C,OAAS;IAAA4hB,MAAA;IAAQ7iB,OAAO6uB,SAAY,GAAA,GAAA;IAAK,GAAGlK;EAAA,CAAa,GAAAhlB,KAAA;EAC1E,MAAAK,KAAA,GAAQkD,aAAa2rB,SAAS,CAAA;EAEpC,IAAI,CAACzwB,IAAA,IAAQA,IAAK,CAAA0B,MAAA,KAAW,CAAG,EAAA;IAC9B,sBAAS8U,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAA,CAAA;EACX;EAGE,OAAA,eAAAoa,GAAA,CAACmP,MAAK,EAAA;IAAA,SAAA,EAAQ,SAAW;IAAA,GAAGY,SAAW;IAAAzN,GAAA;IACrC7C,QAAC,EAAA,eAAAO,GAAA,CAAAof,MAAA,EAAA;MAAOlN,EAAG,EAAA,MAAA;MAAO9mB,KACf;MAAAqU,QAAA,EAAAjW,IAAA,CAAKa,IAAI,CAACT,GAAA,EAAK+S,CACd,KAAA,eAAAqD,GAAA,CAACmjC,GAAI,EAAA;QAAAr2C,QAAA;QAA4BT,OAAkB;QAAA4hB,MAAA;QAChDxO,QAD2B,EAAA7V;MAAA,CAAA,EAAA+S,CAE9B,CACD;IAAA,CACH;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACjCD,MAAM/S,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,yBAAyB,CAAA;AAEhDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAuC,IAAI,CAAA;AAErE,MAAAikC,WAAA,GAAsDlkC,YAAYvV,KAAG,CAAA;ACzBlF,SAAS05C,aAAa10C,OAAsB,EAAA;EAC1C,OACGg2B,mBAAoB,CAAAh2B,OAAO,CAAK,IAAAA,OAAA,CAAQ82B,YAAa,CAAA,eAAe,CAAM,KAAA,MAAA,IAC1Eb,mBAAoB,CAAAj2B,OAAO,CAAK,IAAA,CAACA,OAAQ,CAAA4d,QAAA;AAE9C;AAKO,SAAS+2B,sBAAsB/zC,QAAwC,EAAA;EACrE,OAAAA,QAAA,CAASP,OAAOq0C,YAAY,CAAA;AACrC;AAKgB,SAAAE,WAAAA,CAAYhc,aAA0Bz4B,EAA2B,EAAA;EAC/E,MAAMkzB,OAAiB,EAAC;EAExB,IAAIx6B,CAAI,GAAAsH,EAAA;EAER,OAAOtH,MAAM+/B,WAAa,EAAA;IACxB,MAAMic,gBAAgBh8C,CAAE,CAAAg8C,aAAA;IAExB,IAAI,CAACA,aAAA,EAAsB,OAAAxhB,IAAA;IAE3B,MAAMxiB,QAAW,GAAA9U,KAAA,CAAM0tB,IAAK,CAAAorB,aAAA,CAAc1d,UAAU,CAAA;IAC9C,MAAA5oB,KAAA,GAAQsC,QAAS,CAAApC,OAAA,CAAQ5V,CAAC,CAAA;IAEhCw6B,IAAA,CAAKyhB,QAAQvmC,KAAK,CAAA;IAElB,IAAIsmC,kBAAkBjc,WAAa,EAAA;MAC1B,OAAAvF,IAAA;IACT;IAEIx6B,CAAA,GAAAg8C,aAAA;EACN;EAEO,OAAAxhB,IAAA;AACT;AAEA,MAAM0hB,aAAuB,EAAC;AAKd,SAAAC,aAAAA,CAAcpc,aAAiCh4B,QAA+B,EAAA;EAC5F,IAAI,CAACg4B,WAAA,EAAa;EAEZ,MAAAn9B,GAAA,GAAA,mBAAUuJ,OAA+B,EAAA;EAE/C,KAAA,MAAW7E,MAAMS,QAAU,EAAA;IACzBnF,GAAA,CAAI4K,GAAI,CAAAlG,EAAA,EAAIy0C,WAAY,CAAAhc,WAAA,EAAaz4B,EAAE,CAAC,CAAA;EAC1C;EAEM,MAAA80C,KAAA,GAAQA,CAACv7C,CAAA,EAAgBhB,CAAmB,KAAA;IAChD,MAAMoL,EAAK,GAAArI,GAAA,CAAI2K,GAAI,CAAA1M,CAAC,CAAK,IAAAq7C,UAAA;IACzB,MAAM1wC,EAAK,GAAA5I,GAAA,CAAI2K,GAAI,CAAA1N,CAAC,CAAK,IAAAq8C,UAAA;IAEzB,MAAM14B,MAAMxd,IAAK,CAAAoZ,GAAA,CAAInU,EAAG,CAAAxH,MAAA,EAAQ+H,GAAG/H,MAAM,CAAA;IAGzC,KAAA,IAASyR,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;MACzB,MAAAmnC,MAAA,GAASpxC,EAAG,CAAAiK,CAAC,CAAK,IAAA,CAAA,CAAA;MAClB,MAAAonC,MAAA,GAAS9wC,EAAG,CAAA0J,CAAC,CAAK,IAAA,CAAA,CAAA;MAExB,IAAImnC,WAAWC,MAAQ,EAAA;QACrB,OAAOD,MAAS,GAAAC,MAAA;MAClB;IACF;IAEO,OAAA,CAAA;EAAA,CACT;EAEAv0C,QAAA,CAASw0C,KAAKH,KAAK,CAAA;AACrB;AC3DO,SAASI,kBAAkBl5C,KAIf,EAAA;EACjB,MAAM;IAACgU,SAAA;IAAWmlC,aAAe;IAAAC;EAAA,CAAe,GAAAp5C,KAAA;EAC1C,MAAA2E,WAAA,GAAcC,MAAsB,CAAA,EAAE,CAAA;EAC5C,MAAM,CAAC63B,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAgC,IAAI,CAAA;EAC1E,MAAM,CAACkuC,WAAA,EAAa2G,eAAe,CAAA,GAAI70C,SAAS,CAAE,CAAA,CAAA;EAC5C,MAAA80C,cAAA,GAAiB10C,OAAO8tC,WAAW,CAAA;EACzC,MAAMlY,aAAgB,GAAA71B,WAAA,CAAYI,OAAQ,CAAA2tC,WAAW,CAAK,IAAA,IAAA;EACpD,MAAA6G,OAAA,GAAUp1C,QAAQs4B,WAAW,CAAA;EAE7B,MAAA+c,cAAA,GAAiB/wB,WAAY,CAACgxB,eAA4B,IAAA;IAC9DJ,eAAA,CAAgBI,eAAe,CAAA;IAC/BH,cAAA,CAAev0C,OAAU,GAAA00C,eAAA;EAC3B,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,KAAQ,GAAAjxB,WAAA,CACZ,CAAC5kB,SAA6BorB,QAAqC,KAAA;IACjE,IAAI,CAACprB,OAAA,EAAS,OAAO,MAAM,KAAA,CAAA;IAE3B,IAAIc,WAAY,CAAAI,OAAA,CAAQuN,OAAQ,CAAAzO,OAAO,MAAM,CAAI,CAAA,EAAA;MACnCc,WAAA,CAAAI,OAAA,CAAQd,KAAKJ,OAAO,CAAA;MAClBg1C,aAAA,CAAApc,WAAA,EAAa93B,YAAYI,OAAO,CAAA;IAChD;IAEA,IAAIkqB,QAAU,EAAA;MACZ,MAAM0qB,aAAgB,GAAAh1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;MAEzD21C,cAAA,CAAeG,aAAa,CAAA;IAC9B;IAEA,OAAO,MAAM;MACX,MAAMjmC,GAAM,GAAA/O,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;MAE/C,IAAI6P,MAAM,CAAI,CAAA,EAAA;QACA/O,WAAA,CAAAI,OAAA,CAAQqJ,MAAO,CAAAsF,GAAA,EAAK,CAAC,CAAA;MACnC;IAAA,CACF;EACF,CAAA,EACA,CAAC+oB,aAAa+c,cAAc,CAAA,CAC9B;EAEA,MAAMrK,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA+C,IAAA;IAE1C,IAAAA,KAAA,CAAMtH,QAAQ,KAAO,EAAA;MACvB,IAAIs6C,aAAe,EAAA;QACjBA,aAAA,CAAcre,KAAM,CAAA,CAAA;MACtB;MAEA;IACF;IAGI,IAAA30B,KAAA,CAAMtH,QAAQ,MAAQ,EAAA;MACxBsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MAC7D,MAAAf,EAAA,GAAK41C,kBAAkB,CAAC,CAAA;MAE9B,IAAI,CAAC51C,EAAA,EAAI;MAET,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAGI,IAAA1zC,KAAA,CAAMtH,QAAQ,KAAO,EAAA;MACvBsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAMf,EAAK,GAAA41C,iBAAA,CAAkBA,iBAAkB,CAAAz5C,MAAA,GAAS,CAAC,CAAA;MAEzD,IAAI,CAAC6D,EAAA,EAAI;MAET,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEI,IAAA1zC,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAM+0C,eAAeF,iBAAkB,CAAAz5C,MAAA;MAEvC,IAAI25C,YAAiB,KAAA,CAAA,EAAG;MAExB,MAAMxH,cAAiB,GAAA3tC,WAAA,CAAYI,OAAQ,CAAAu0C,cAAA,CAAev0C,OAAO,CAAA;MAE7D,IAAAg1C,YAAA,GAAeH,iBAAkB,CAAAtnC,OAAA,CAAQggC,cAAc,CAAA;MAE3CyH,YAAA,GAAA,CAAAA,YAAA,GAAe,IAAID,YAAgB,IAAAA,YAAA;MAE7C,MAAA91C,EAAA,GAAK41C,kBAAkBG,YAAY,CAAA;MACzC,MAAMF,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEI,IAAA1zC,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAM+0C,eAAeF,iBAAkB,CAAAz5C,MAAA;MAEvC,IAAI25C,YAAiB,KAAA,CAAA,EAAG;MAExB,MAAMxH,cAAiB,GAAA3tC,WAAA,CAAYI,OAAQ,CAAAu0C,cAAA,CAAev0C,OAAO,CAAA;MAE7D,IAAAg1C,YAAA,GAAeH,iBAAkB,CAAAtnC,OAAA,CAAQggC,cAAc,CAAA;MAE3DyH,YAAA,GAAA,CAAgBA,eAAe,CAAK,IAAAD,YAAA;MAE9B,MAAA91C,EAAA,GAAK41C,kBAAkBG,YAAY,CAAA;MACzC,MAAMF,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEA,IAAI7lC,SAAW,EAAA;MACbA,SAAA,CAAU7N,KAAK,CAAA;IACjB;EACF,CAAA,EACA,CAAC6N,SAAW,EAAAmlC,aAAA,EAAeK,cAAc,CAAA,CAC3C;EAEA,MAAMQ,oBAAuB,GAAAvxB,WAAA,CAC1BtiB,KAAyC,IAAA;IACxC,MAAMtC,UAAUsC,KAAM,CAAAipC,aAAA;IACtB,MAAMyK,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;IAExD21C,cAAA,CAAeK,YAAY,CAAA;EAC7B,CAAA,EACA,CAACL,cAAc,CAAA,CACjB;EAEM,MAAAS,oBAAA,GAAuBxxB,YAAY,MAAM;IAM7C+wB,cAAA,CAAe,CAAE,CAAA,CAAA;IACJ/c,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAA3B,KAAA,CAAA,CAAA;EAAA,CACZ,EAAA,CAAC0e,cAAgB,EAAA/c,WAAW,CAAC,CAAA;EAGhC53B,SAAA,CAAU,MAAM;IACd,IAAI,CAAC00C,OAAA,EAAS;IAER,MAAAW,KAAA,GAAQ30C,MAAO,CAAAkK,qBAAA,CAAsB,MAAM;MAC/C,MAAM0qC,eAAeb,cAAe,CAAAv0C,OAAA;MAEpC,IAAIo1C,iBAAiB,CAAI,CAAA,EAAA;QACvB,IAAIf,gBAAgB,OAAS,EAAA;UACrB,MAAAQ,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;UAC7D,MAAAf,EAAA,GAAK41C,kBAAkB,CAAC,CAAA;UAE9B,IAAI51C,EAAI,EAAA;YACN,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;YAEnDw1C,cAAA,CAAeK,YAAY,CAAA;YAC3BP,cAAA,CAAev0C,OAAU,GAAA80C,YAAA;UAC3B;QACF;QAEA,IAAIT,gBAAgB,MAAQ,EAAA;UACpB,MAAAQ,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;UACnE,MAAMf,EAAK,GAAA41C,iBAAA,CAAkBA,iBAAkB,CAAAz5C,MAAA,GAAS,CAAC,CAAA;UAEzD,IAAI6D,EAAI,EAAA;YACN,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;YAEnDw1C,cAAA,CAAeK,YAAY,CAAA;YAC3BP,cAAA,CAAev0C,OAAU,GAAA80C,YAAA;UAC3B;QACF;QAEA;MACF;MAEA,MAAMh2C,OAAU,GAAAc,WAAA,CAAYI,OAAQ,CAAAo1C,YAAY,CAAK,IAAA,IAAA;MAE5Ct2C,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAi3B,KAAA,CAAA,CAAA;IAAA,CACV,CAAA;IAED,OAAO,MAAM;MACXv1B,MAAA,CAAOgjB,qBAAqB2xB,KAAK,CAAA;IAAA,CACnC;KACC,CAACxH,WAAA,EAAa6G,OAAS,EAAAC,cAAA,EAAgBJ,WAAW,CAAC,CAAA;EAE/C,OAAA;IACL5e,aAAA;IACAkY,WAAA;IACAsH,oBAAA;IACAC,oBAAA;IACA9K,aAAA;IACAuK,KAAA;IACAjd,WAAA;IACAua;EAAA,CACF;AACF;;;;;;AC/OA,IAAArvC,IAAA;AA+BA,MAAMyc,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAAVjjB,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,yCAAA,CAAA,CAAA,CAAA,CAAA;AAUjB,MAAMq5B,IAAO,GAAA11B,UAAA,CAAW,SAAS01B,KAAAA,CACtCp6C,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAA;IAAA;IAEA2lC,UAAA;IAAA;IAEAC,SAAA;IACAxD,cAAA;IACAyD,QAAA;IACAC,WAAA;IACAC,YAAA;IACAzmC,SAAA;IACAmlC,aAAA;IACA73C,OAAU,GAAA,CAAA;IACVo5C,eAAA;IACAtB,cAAep5C,KAAM,CAAAq6C,UAAA,IAAc,OAAa,IAAAr6C,KAAA,CAAMs6C,aAAa,MAAW,IAAA,IAAA;IAC9Ej6C,KAAQ,GAAA,CAAA;IACR,GAAG2kB;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuwB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAElC,MAAA;IAACskB;GAAU,GAAIxC,QAAS,EAAA;EAExB,MAAA;IACJmB,aAAA;IACAkY,WAAA;IACAsH,oBAAA;IACAC,oBAAA;IACA9K,aAAA;IACAuK,KAAA;IACAjd,WAAA;IACAua;MACEkC,iBAAkB,CAAA;IAACllC,SAAW;IAAAmlC,aAAA;IAAeC;EAAY,CAAA,CAAA;EAE7D,MAAMuB,eAAkB,GAAAlyB,WAAA,CACrBzkB,EAA8B,IAAA;IAC7BgzC,cAAA,CAAehzC,EAAE,CAAA;IACjBusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAACusB,cAAcymB,cAAc,CAAA,CAC/B;EAGAnyC,SAAA,CAAU,MAAM;IACV,IAAA41C,YAAA,EAAcA,YAAA,CAAa/H,WAAW,CAAA;EAAA,CACzC,EAAA,CAACA,WAAa,EAAA+H,YAAY,CAAC,CAAA;EAG9Br2C,eAAA,CACEqkB,WAAA,CACGtiB,KAAA,IAAU01B,UAAc,IAAAib,cAAA,IAAkBA,eAAe3wC,KAAK,CAAA,EAC/D,CAAC01B,YAAYib,cAAc,CAC7B,CAAA,EACA,CAACra,WAAW,CAAA,CACd;EAGA1oB,gBAAA,CACE0U,WAAA,CACGtiB,KAAU,IAAA;IACT,IAAI,CAAC01B,UAAA,EAAY;IAEb,IAAA11B,KAAA,CAAMtH,QAAQ,QAAU,EAAA;MAC1BsH,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAClB,IAAAkQ,QAAA,EAAmBA,QAAA,EAAA;IACzB;EACF,CAAA,EACA,CAAC1e,YAAY0e,QAAQ,CACvB,CAAA,CACF;EAGA11C,SAAA,CAAU,MAAM;IACV,IAAA,CAAC43B,eAAe,CAACie,eAAA,EAAiB;IAEtC,OAAOA,gBAAgBje,WAAW,CAAA;EAAA,CACjC,EAAA,CAACie,eAAiB,EAAAje,WAAW,CAAC,CAAA;EAEjC,MAAM/9B,KAA0B,GAAA+E,OAAA,CAC9B,OAAO;IACLsR,OAAS,EAAA,CAAA;IACTylB,aAAA;IACAkY,WAAA;IACAgH,KAAA;IACA5C,cAAA;IACAyD,QAAA;IACAC,WAAA;IACAI,gBAAkB,EAAAZ,oBAAA;IAClBa,gBAAkB,EAAAZ,oBAAA;IAClBS,eAAA;IAAA;IAGAjM,YAAc,EAAAuL,oBAAA;IACdrL,YAAc,EAAAsL;EAAA,CAChB,CAAA,EACA,CACEzf,aAAA,EACAkY,WAAA,EACAgH,KAAA,EACAM,oBAAA,EACAC,oBAAA,EACAnD,cAAA,EACAyD,QAAA,EACAC,WAAA,EACAE,eAAA,CACF,CACF;EAEA,OACG,eAAAzlC,GAAA,CAAAqjC,WAAA,CAAYpjC,QAAZ,EAAA;IAAqBxW,KACpB;IAAAgW,QAAA,EAAA,eAAAO,GAAA,CAACmP,MAAA,EAAA;MACC,SAAQ,EAAA,MAAA;MACP,GAAGY,SAAA;MACJhR,SAAW,EAAAm7B,aAAA;MACX7tC,OAAA;MACAiW,GAAK,EAAAojC,eAAA;MACLtL,IAAK,EAAA,MAAA;MACL3U,QAAU,EAAA,CAAA,CAAA;MAEVhmB,QAAA,EAAA,eAAAO,GAAA,CAACwyB,KAAM,EAAA;QAAApnC,KAAA;QAAeqU;MAAS,CAAA;IAAA,CAEnC;EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;ACnHM,MAAMomC,UAAa,GAAAp2B,UAAA,CAAW,SAASo2B,WAAAA,CAC5C96C,OACAuX,GACA,EAAA;EACM,MAAA;IACJwjC,uCAAuCC,0BAA6B,GAAA,KAAA;IACpE12C,eAAiB,EAAA22C,0BAAA;IACjBvtB,MAAQ,EAAAwtB,UAAA;IACRryB,EAAA;IACAsyB,IAAM,EAAAC,QAAA;IACNrE,OAAA;IACAsE,MAAA;IACAzmB,SAAW,EAAA0mB,oBAAA;IACXC,aAAe,EAAAC,wBAAA;IACfte,QAAQue,iBAAoB,GAAA,IAAA;IAC5BhX,OAAA;IACAiX,aAAe,EAAAC,wBAAA;IACfvX,eAAiB,EAAAwX;EACf,CAAA,GAAA57C,KAAA;EACJ,MAAM,CAACkkC,IAAA,EAAMyQ,OAAO,CAAA,GAAInwC,SAAS,KAAK,CAAA;EACtC,MAAM,CAAC40C,WAAA,EAAayC,cAAc,CAAA,GAAIr3C,SAAkC,IAAI,CAAA;EAC5E,MAAM,CAACs3C,aAAA,EAAeC,gBAAgB,CAAA,GAAIv3C,SAAmC,IAAI,CAAA;EACjF,MAAM,CAACw3C,YAAc,EAAAC,oBAAoB,CAAI,GAAAz3C,QAAA,CAAwB,EAAE,CAAA;EACjE,MAAA03C,OAAA,GAAUt3C,OAAgBs/B,IAAI,CAAA;EAGpCr/B,SAAA,CAAU,MAAM;IACd,IAAIw2C,MAAU,IAAAnX,IAAA,IAAQ,CAACgY,OAAA,CAAQn3C,OAAS,EAAA;MAC/Bs2C,MAAA,EAAA;IACT;EAAA,CACC,EAAA,CAACA,MAAQ,EAAAnX,IAAI,CAAC,CAAA;EAGjBr/B,SAAA,CAAU,MAAM;IACd,IAAIkyC,OAAW,IAAA,CAAC7S,IAAQ,IAAAgY,OAAA,CAAQn3C,OAAS,EAAA;MAC/BgyC,OAAA,EAAA;IACV;EAAA,CACC,EAAA,CAACA,OAAS,EAAA7S,IAAI,CAAC,CAAA;EAElBr/B,SAAA,CAAU,MAAM;IACdq3C,OAAA,CAAQn3C,OAAU,GAAAm/B,IAAA;EAAA,CACpB,EAAG,CAACA,IAAI,CAAC,CAAA;EAEH,MAAAiY,iBAAA,GAAoB1zB,YAAY,MAAM;IAClCksB,OAAA,CAACr3C,CAAM,IAAA,CAACA,CAAC,CAAA;IACjBu+C,cAAA,CAAe,IAAI,CAAA;EACrB,CAAA,EAAG,EAAE,CAAA;EAKL,MAAMO,eAAkB,GAAA3zB,WAAA,CACrBtiB,KAAwB,IAAA;IACnB,IAAA+9B,IAAA,EAAM/9B,KAAA,CAAMikC,cAAe,CAAA,CAAA;EACjC,CAAA,EACA,CAAClG,IAAI,CAAA,CACP;EAEM,MAAAmY,mBAAA,GAAsB5zB,WAAY,CAACtiB,KAAkD,IAAA;IAGrF,IAAAA,KAAA,CAAMtH,QAAQ,WAAe,IAAAsH,KAAA,CAAMtH,QAAQ,OAAW,IAAAsH,KAAA,CAAMtH,QAAQ,GAAK,EAAA;MAC3EsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBuK,OAAA,CAAQ,IAAI,CAAA;MACZkH,cAAA,CAAe,OAAO,CAAA;MAEtB;IACF;IAII,IAAA11C,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBuK,OAAA,CAAQ,IAAI,CAAA;MACZkH,cAAA,CAAe,MAAM,CAAA;MAErB;IACF;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMS,sBAAyB,GAAA7zB,WAAA,CAC5BtiB,KAAsB,IAAA;IACrB,MAAMf,SAASe,KAAM,CAAAf,MAAA;IAEjB,IAAA,EAAEA,kBAAkBC,IAAO,CAAA,EAAA;MAC7B;IACF;IAEA,IAAIy2C,kBAAkB12C,MAAW,KAAA02C,aAAA,IAAiBA,aAAc,CAAAx2C,QAAA,CAASF,MAAM,CAAI,CAAA,EAAA;MACjF;IACF;IAEA,KAAA,MAAWpB,MAAMg4C,YAAc,EAAA;MAC7B,IAAI52C,MAAW,KAAApB,EAAA,IAAMA,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxC;MACF;IACF;IAEAuvC,OAAA,CAAQ,KAAK,CAAA;EACf,CAAA,EACA,CAACmH,eAAeE,YAAY,CAAA,CAC9B;EAEM,MAAAO,gBAAA,GAAmB9zB,YAAY,MAAM;IACzCksB,OAAA,CAAQ,KAAK,CAAA;IACT,IAAAqG,0BAAA,EAA4B;IAC5B,IAAAc,aAAA,EAAeA,aAAA,CAAchhB,KAAM,CAAA,CAAA;EAAA,CACtC,EAAA,CAACghB,aAAe,EAAAd,0BAA0B,CAAC,CAAA;EAE9C,MAAM7M,UAAa,GAAA1lB,WAAA,CAChBtiB,KAA+C,IAAA;IAC9C,MAAMf,SAASe,KAAM,CAAAq2C,aAAA;IAEjB,IAAA,EAAEp3C,kBAAkBC,IAAO,CAAA,EAAA;MAC7B;IACF;IAEA,KAAA,MAAWrB,MAAMg4C,YAAc,EAAA;MAC7B,IAAIh4C,EAAO,KAAAoB,MAAA,IAAUpB,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxC;MACF;IACF;IAEAuvC,OAAA,CAAQ,KAAK,CAAA;EACf,CAAA,EACA,CAACqH,YAAY,CAAA,CACf;EAEM,MAAAS,eAAA,GAAkBh0B,YAAY,MAAM;IACxCksB,OAAA,CAAQ,KAAK,CAAA;IACT,IAAAqG,0BAAA,EAA4B;IAC5B,IAAAc,aAAA,EAAeA,aAAA,CAAchhB,KAAM,CAAA,CAAA;EAAA,CACtC,EAAA,CAACghB,aAAe,EAAAd,0BAA0B,CAAC,CAAA;EAExC,MAAAN,eAAA,GAAkBjyB,WAAY,CAACzkB,EAAoB,IAAA;IACvDi4C,oBAAA,CAAsBS,GAAQ,IAAAA,GAAA,CAAI19C,OAAO,CAACgF,EAAE,CAAC,CAAC,CAAA;IAE9C,OAAO,MAAM;MACXi4C,oBAAA,CAAsBS,GAAQ,IAAA;QAC5B,OAAOA,GAAI,CAAAx4C,MAAA,CAAQy4C,GAAA,IAAQA,QAAQ34C,EAAE,CAAA;MAAA,CACtC,CAAA;IAAA,CACH;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM44C,SAAuB,GAAAn5C,OAAA,CAC3B,OAAO;IACL,iBAAmB,EAAAolB,EAAA;IACnBg0B,aAAe,EAAA1O,UAAA;IACf2I,cAAgB,EAAAwF,sBAAA;IAChB/B,QAAU,EAAAgC,gBAAA;IACV/B,WAAa,EAAAiC,eAAA;IACbtD,aAAe,EAAA2C,aAAA;IACfpB,eAAA;IACAtB;EAAA,CACF,CAAA,EACA,CACE0C,aAAA,EACAQ,sBAAA,EACAC,gBAAA,EACAE,eAAA,EACA5zB,EAAA,EACAslB,UAAA,EACAuM,eAAA,EACAtB,WAAA,CACF,CACF;EAEA,MAAM+B,OAAOv/C,cAAU,CAAAA,SAAA,CAAAw/C,QAAQ,IAAI1wB,YAAa,CAAA0wB,QAAA,EAAUwB,SAAS,CAAI,GAAA,IAAA;EAEvE,MAAME,YAAe,GAAAr0B,WAAA,CAClBzkB,EAAiC,IAAA;IAC5B,IAAA,OAAOuT,QAAQ,UAAY,EAAA;MAC7BA,GAAA,CAAIvT,EAAE,CAAA;eACGuT,GAAK,EAAA;MACdA,GAAA,CAAIxS,OAAU,GAAAf,EAAA;IAChB;IAEA+3C,gBAAA,CAAiB/3C,EAAE,CAAA;EACrB,CAAA,EACA,CAACuT,GAAG,CAAA,CACN;EAEA,MAAMmW,MAAS,GAAAjqB,OAAA,CACb,MACE7H,wBAAA,CAAUs/C,UAAU,CAAA,GAChBxwB,aAAawwB,UAAY,EAAA;IACvB,SAAW,EAAA,YAAA;IACXryB,EAAA;IACAiiB,OAAS,EAAAqR,iBAAA;IACTnoC,SAAW,EAAAqoC,mBAAA;IACXtR,WAAa,EAAAqR,eAAA;IACb,eAAiB,EAAA,IAAA;IACjB,eAAiB,EAAAlY,IAAA;IACjB3sB,GAAK,EAAAulC,YAAA;IACL7tB,QAAU,EAAAiV;EACX,CAAA,CACD,GAAA,IAAA,EACN,CAACgX,UAAY,EAAAiB,iBAAA,EAAmBE,qBAAqBD,eAAiB,EAAAvzB,EAAA,EAAIqb,MAAM4Y,YAAY,CAAA,CAC9F;EAEA,MAAMC,YAA2C,GAAAt5C,OAAA,CAC/C,OAAO;IACLa,eAAiB,EAAA22C,0BAAA;IACjB5hC,QAAU,EAAA,MAAA;IACVub,SAAW,EAAA0mB,oBAAA;IACXpe,MAAQ,EAAAue,iBAAA;IACRrX,eAAiB,EAAAwX,0BAAA;IACjB14B,MAAQ,EAAAy4B,wBAAA;IACRhnC,MAAQ,EAAA6mC,wBAAA;IACR,IAAI/W,WAAW,CAAC,CAAA;EAAA,CAClB,CAAA,EACA,CACEwW,0BAAA,EACAK,oBAAA,EACAK,wBAAA,EACAH,wBAAA,EACAC,iBAAA,EACAG,0BAAA,EACAnX,OAAA,CACF,CACF;EAGE,OAAA,eAAAxvB,GAAA,CAACiuB,OAAQ,EAAA;IAAA,SAAA,EAAQ,qBAAuB;IAAA,GAAG6Z,YAAc;IAAAv7C,OAAA,EAAS25C,IAAM;IAAAjX,IAAA;IACrExvB,QAAU,EAAAgZ,MAAA,IAAA,eAAAzY,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAE;EACf,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;ACxRD,IAAA8M,IAAA;AAKa,MAAAq1C,WAAA,GAAc34B,MAAO,CAAA44B,EAAA,CAAPt1C,IAAS,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gGAAA,CAAA,CAAA,CAAA,CAAA;;;;;;ACLpC,IAAApZ,IAAA,EAAAO,IAAA;AAaO,SAASg1C,mBAA8CA,CAAA,EAAA;EAC5D,OAAOp8B,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,qaAAA,CAAA,CAAA,CAAA,CAAA;AAqBZ;AAEO,SAASo8B,qBACdn9C,KACwB,EAAA;EAvC1B2H,IAAAA,GAAAA;EAwCQ,MAAA;IAACwZ;EAAS,CAAA,GAAAnhB,KAAA;EAChB,MAAM;IAACgb,KAAO;IAAApc;EAAA,CAAS,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACxC,MAAA8U,IAAA,GAAOmG,KAAM,CAAA6U,UAAA,CAAW1O,KAAK,CAAA;EAEnC,OAAOL,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,QAAA,EAC8B,0LASK,EAAA,qFAAA,EAKC,+FAKC,yJAOG,EAAA,2DAAA,EAIA,wIAUL,EAAA,oFAAA,EAKC,yDAIC,yJAOG,EAAA,yDAAA,EAGA,iEAO7B,EAAA,MAAA,CAAA,CAAA,CAAA,EAlEjBiL,gBAAgBhR,KAAO,EAAAnG,IAAA,CAAKyM,OAAO,CAAA,EAS/B0K,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAA4M,QAAQ,GAKlCuK,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAsZ,OAAO,GAKnCnC,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAoa,QAAQ,GAOhCjD,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAoN,OAAO,CAInC,EAAA+J,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKsZ,OAAO,CAUzC,EAAAnC,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAK4M,QAAQ,CAKlC,EAAAuK,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKsZ,OAAO,CAInC,EAAAnC,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKoa,QAAQ,CAOhC,EAAAjD,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKoN,OAAO,CAGnC,EAAA+J,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKsZ,OAAO,CAO7CxmB,EAAAA,CAAAA,GAAAA,GAAA/I,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAiZ,IAAA,KAAP,gBAAAlQ,GAAa,CAAA2N,IAAA,CAAA;AAEnB;ACzGa,MAAA8nC,UAAA,GAAa/4B,OAAOuG,GAAG,CAAA,CAClC3H,qBAAA,EACAi6B,mBAAA,EACAC,oBACF,CAAA;ACRO,SAASE,OAA4BA,CAAA,EAAA;EACpC,MAAA3+C,KAAA,GAAQ+V,WAAW6jC,WAAW,CAAA;EAEpC,IAAI,CAAC55C,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,kCAAkC,CAAA;EACpD;EAKA,IAAI,CAACs3B,QAAS,CAAAh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAK,EAAA;IACvC,MAAA,IAAI3U,MAAM,gDAAgD,CAAA;EAClE;EAEO,OAAA1B,KAAA;AACT;ACUO,SAAS4+C,UACdt9C,KAEoB,EAAA;EACd,MAAA;IACJmnB,EAAK,GAAA,QAAA;IACLzS,QAAA;IACA3S,QAAW,GAAA,CAAA;IACX+qB,IAAA;IACAge,OAAA;IACAxpC,OAAU,GAAA,CAAA;IACVmjC,OAAA;IACAvhB,MAAS,GAAA,CAAA;IACT7iB,KAAQ,GAAA,CAAA;IACRkgB,IAAA;IACA1L,IAAO,GAAA,SAAA;IACP,GAAGmQ;EACD,CAAA,GAAAhlB,KAAA;EACJ,MAAMm7C,OAAOkC,OAAQ,EAAA;EACf,MAAA;IAAC1oC;GAAM,GAAIS,YAAa,EAAA;EACxB,MAAA;IACJolB,aAAA;IACAkf,KAAA;IACA5C,cAAA;IACAyD,QAAA;IACAC,WAAA;IACAI,mBAAmBO,IAAK,CAAA1M,YAAA;IACxBiM;EACE,CAAA,GAAAS,IAAA;EACJ,MAAM,CAAC1e,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAoD,IAAI,CAAA;EAC9F,MAAM,CAAC0/B,IAAA,EAAMyQ,OAAO,CAAA,GAAInwC,SAAS,KAAK,CAAA;EAChC,MAAA+4C,cAAA,GAAiB34C,OAAgC,IAAI,CAAA;EAC3D,MAAMsvC,MAAS,GAAA/vC,OAAA,CAAQq2B,aAAa,CAAA,IAAKA,aAAkB,KAAAiC,WAAA;EAC3D,MAAM,CAAC+gB,UAAA,EAAYC,aAAa,CAAA,GAAIj5C,SAAS,KAAK,CAAA;EAElD,MAAMgqC,gBAAmB,GAAA/lB,WAAA,CACtBtiB,KAAyC,IAAA;IACxCs3C,aAAA,CAAc,KAAK,CAAA;IACnB7C,gBAAA,CAAiBz0C,KAAK,CAAA;IACtBwuC,OAAA,CAAQ,IAAI,CAAA;EACd,CAAA,EACA,CAACiG,gBAAgB,CAAA,CACnB;EAEA,MAAM8C,iBAAoB,GAAAj1B,WAAA,CACvBtiB,KAA+C,IAAA;IAC1C,IAAAA,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEtBsK,OAAA,CAAQ,KAAK,CAAA;MAEbllC,qBAAA,CAAsB,MAAM;QACbgtB,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAA3B,KAAA,CAAA,CAAA;MAAA,CACd,CAAA;IACH;EACF,CAAA,EACA,CAAC2B,WAAW,CAAA,CACd;EAEA,MAAM4R,WAAc,GAAA5lB,WAAA,CACjBtiB,KAA4C,IAAA;IACvC,IAAA2kC,OAAA,EAASA,OAAA,CAAQ3kC,KAAK,CAAA;IAE1Bo3C,cAAA,CAAex4C,OAAU,GAAA,OAAA;IAEzB4vC,OAAA,CAAQ,IAAI,CAAA;IAEZllC,qBAAA,CAAsB,MAAM;MAC1B8tC,cAAA,CAAex4C,OAAU,GAAA,IAAA;IAAA,CAC1B,CAAA;EACH,CAAA,EACA,CAAC+lC,OAAO,CAAA,CACV;EAEM,MAAA6S,oBAAA,GAAuBl1B,YAAY,MAAM;IAC7CksB,OAAA,CAAQ,KAAK,CAAA;IACT,IAAA6F,WAAA,EAAyBA,WAAA,EAAA;EAAA,CAC/B,EAAG,CAACA,WAAW,CAAC,CAAA;EAEhB,MAAMoD,uBAAuBn1B,WAAY,CAAA,MAAMg1B,cAAc,IAAI,CAAA,EAAG,EAAE,CAAA;EAGtE54C,SAAA,CAAU,MAAM60C,KAAM,CAAAjd,WAAW,GAAG,CAACid,KAAA,EAAOjd,WAAW,CAAC,CAAA;EAGxD53B,SAAA,CAAU,MAAM;IACd,IAAI,CAACqvC,MAAA,EAAQS,OAAA,CAAQ,KAAK,CAAA;EAAA,CAC5B,EAAG,CAACT,MAAM,CAAC,CAAA;EAGXrvC,SAAA,CAAU,MAAM;IACd,IAAI,CAACq/B,IAAA,EAAMuZ,aAAA,CAAc,KAAK,CAAA;EAAA,CAChC,EAAG,CAACvZ,IAAI,CAAC,CAAA;EAET,MAAM2Z,SACJ,GAAA,eAAA5oC,GAAA,CAACmlC,IAAA,EAAA;IACCtD,cAAA;IACAyD,QAAA;IACAC,WAAa,EAAAmD,oBAAA;IACb3pC,SAAW,EAAA0pC,iBAAA;IACXjP,YAAc,EAAAmP,oBAAA;IACdlD,eAAA;IACAtB,aAAamE,cAAe,CAAAx4C,OAAA;IAE3B2P;EAAA,CAAA,CACH;EAGI,MAAAy6B,aAAA,GAAgB1mB,WAAY,CAACtiB,KAA+C,IAAA;IAChF,MAAMf,SAASe,KAAM,CAAAipC,aAAA;IAEjB,IAAA9oC,QAAA,CAASk0B,kBAAkBp1B,MAAQ,EAAA;MACrC;IACF;IAEI,IAAAe,KAAA,CAAMtH,QAAQ,YAAc,EAAA;MAC9B0+C,cAAA,CAAex4C,OAAU,GAAA,OAAA;MAEzB4vC,OAAA,CAAQ,IAAI,CAAA;MACZ8I,aAAA,CAAc,IAAI,CAAA;MAElBhuC,qBAAA,CAAsB,MAAM;QAC1B8tC,cAAA,CAAex4C,OAAU,GAAA,IAAA;MAAA,CAC1B,CAAA;MAED;IACF;EACF,CAAA,EAAG,EAAE,CAAA;EAGH,OAAA,eAAAkQ,GAAA,CAACiuB;IAAS,GAAGuB,OAAA;IAASjjC,SAASq8C,SAAW;IAAA,SAAA,EAAQ;IAAqB3Z,IACrE;IAAAxvB,QAAA,EAAA,eAAAO,GAAA,CAACmoC,UAAA,EAAA;MACC,SAAS,EAAAj2B,EAAA;MACT,SAAQ,EAAA,WAAA;MACRmC,WAAa,EAAAnC,EAAA;MACZ,GAAGnC,SAAA;MACJ,cAAA,EAAcmC,EAAO,KAAA,QAAA,GAAWq2B,UAAa,GAAA,KAAA,CAAA;MAC7C,cAAA,EAAcr2B,EAAO,KAAA,QAAA,GAAWq2B,UAAa,GAAA,KAAA,CAAA;MAC7C,eAAe,EAAA,CAACA,UAAc,IAAAtJ,MAAA,GAAS,EAAK,GAAA,KAAA,CAAA;MAC5C/wB,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;MAC5B/B,KAAO,EAAAtM,IAAA;MACPqM,OAAS,EAAAvM,MAAA;MACTm2B,OAAS,EAAAuD,WAAA;MACTr6B,SAAW,EAAAm7B,aAAA;MACXV,YAAc,EAAAD,gBAAA;MACdj3B,GAAK,EAAAy/B,cAAA;MACLtc,QAAU,EAAA,CAAA,CAAA;MACVxgC,IAAA,EAAMitB,EAAO,KAAA,QAAA,GAAW,QAAW,GAAA,KAAA,CAAA;MAEnCzS,QAAC,EAAA,eAAAiU,IAAA,CAAAgD,IAAA,EAAA;QAAK5R,GAAK,EAAA1Z,KAAA;QAAOiB,OACf;QAAAoT,QAAA,EAAA,CACCoY,IAAA,IAAA,eAAAnE,IAAA,CAACyC,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACT;UAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;SACjD,CAAA,EAAA,eAGD7X,GAAA,CAAA2V,GAAA,EAAA;UAAI9P,IAAM,EAAA,CAAA;UACTpG,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;YAAKppB,IAAM,EAAAD,QAAA;YAAU+iB,YAAa,EAAA,UAAA;YAAWC,MAAO,EAAA,QAAA;YAClDrQ;UACH,CAAA;SACF,CAAA,EAAA,mBAEC0W,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACV;UAAA2S,QAAA,EAAA,eAAAO,GAAA,CAAC6oC,mBAAiB,CAAA;SACpB,CAAA;OACF;IAAA,CAEJ;EAAA,CAAA,CAAA;AAEJ;ACjKO,MAAMC,QAAW,GAAAr5B,UAAA,CAAW,SAASq5B,SAAAA,CAC1C/9C,OAEAuwB,YACA,EAAA;EACM,MAAA;IACJpJ,EAAK,GAAA,QAAA;IACLzS,QAAA;IACA+M,QAAA;IACA1f,QAAW,GAAA,CAAA;IACXi8C,OAAA;IACAlxB,IAAA;IACAwB,SAAA;IACAwc,OAAA;IACAxpC,OAAU,GAAA,CAAA;IACV0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAC,YAAA;IACAC,aAAA;IACAC,WAAA;IACAkjB,OAAA;IACAjL,MAAS,GAAA,CAAA;IACT+L,QAAU,EAAAgvB,YAAA;IACV59C,KAAQ,GAAA,CAAA;IACRkgB,IAAA;IACA1L,IAAO,GAAA,SAAA;IACP,GAAGmQ;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA;IAAC2U;GAAM,GAAIS,YAAa,EAAA;EAC9B,MAAM+lC,OAAOkC,OAAQ,EAAA;EACf,MAAA;IACJ7iB,aAAA;IACAkf,KAAA;IACAc,WAAA;IACAI,mBAAmBO,IAAK,CAAA1M,YAAA;IACxBoM,mBAAmBM,IAAK,CAAAxM;EACtB,CAAA,GAAAwM,IAAA;EACJ,MAAM,CAAC1e,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAgC,IAAI,CAAA;EAC1E,MAAM0vC,MAAS,GAAA/vC,OAAA,CAAQq2B,aAAa,CAAA,IAAKA,aAAkB,KAAAiC,WAAA;EAEjD53B,SAAA,CAAA,MAAM60C,MAAMjd,WAAa,EAAAwhB,YAAY,GAAG,CAACvE,KAAA,EAAOjd,WAAa,EAAAwhB,YAAY,CAAC,CAAA;EAE9E,MAAA1mC,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC,MAAM8d,WAAc,GAAA5lB,WAAA,CACjBtiB,KAA4C,IAAA;IACvC,IAAAsb,QAAA,EAAU;IACV,IAAAqpB,OAAA,EAASA,OAAA,CAAQ3kC,KAAK,CAAA;IACtB,IAAAq0C,WAAA,EAAyBA,WAAA,EAAA;EAC/B,CAAA,EACA,CAAC/4B,QAAU,EAAAqpB,OAAA,EAAS0P,WAAW,CAAA,CACjC;EAEA,MAAM0D,YAAe,GAAAz6C,OAAA,CACnB,OAAO;IACLnC,OAAA;IACA0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAC,YAAA;IACAC,aAAA;IACAC;EAAA,CACF,CAAA,EACA,CAAC3J,OAAS,EAAA0pB,QAAA,EAAUC,UAAUngB,UAAY,EAAAC,YAAA,EAAcC,eAAeC,WAAW,CAAA,CACpF;EAEM,MAAAkzC,eAAA,GAAkB56C,aAAaxB,QAAQ,CAAA,CAAEzC,IAAKmhB,CAAA,IAAMA,IAAI,CAAC,CAAA;EAE/D,MAAM6X,MAAS,GAAA7P,WAAA,CACZzkB,EAA8B,IAAA;IAC7BuT,GAAA,CAAIxS,OAAU,GAAAf,EAAA;IACdgzC,cAAA,CAAehzC,EAAE,CAAA;EACnB,CAAA,EACA,CAACuT,GAAG,CAAA,CACN;EAGE,sBAAAoR,IAAA,CAACy0B,UAAA,EAAA;IACC,SAAQ,EAAA,UAAA;IACP,GAAGp4B,SAAA;IACJ,cAAA,EAAcmC,OAAO,QAAY,IAAAgH,OAAA;IACjC,cAAc,EAAAhH,EAAA,KAAO,QAAY,IAAAgH,OAAA,GAAU,EAAK,GAAA,KAAA,CAAA;IAChD,eAAA,EAAe+lB,SAAS,EAAK,GAAA,KAAA,CAAA;IAC7B,eAAA,EAAezyB,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/B6H,WAAa,EAAAnC,EAAA;IACbhE,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;IAC5BlD,QAAA,EAAUzc,aAAa,CAAC,CAAA;IACxB4d,KAAA,EAAOM,WAAW,SAAY,GAAA5M,IAAA;IAC9BqM,OAAS,EAAAvM,MAAA;IACT8M,QAAA;IACAqpB,OAAS,EAAAuD,WAAA;IACTI,YAAc,EAAAmM,gBAAA;IACdjM,YAAc,EAAAkM,gBAAA;IACdtjC,GAAK,EAAA+gB,MAAA;IACL+W,IAAK,EAAA,UAAA;IACL3U,QAAU,EAAA,CAAA,CAAA;IACVxgC,IAAA,EAAMitB,EAAO,KAAA,QAAA,GAAW,QAAW,GAAA,KAAA,CAAA;IAEjCzS,QAAA,EAAA,CAAQ,CAAAoY,IAAA,IAAAvM,IAAA,IAAQ+N,SAChB,KAAA,eAAA3F,IAAA,CAACgD,IAAK,EAAA;MAAAxE,EAAA,EAAG,MAAO;MAAApN,GAAA,EAAK1Z,KAAO;MAAAuZ,KAAA,EAAM,QAAU;MAAA,GAAGskC,YAC5C;MAAAxpC,QAAA,EAAA,CACCoY,IAAA,IAAA,eAAAnE,IAAA,CAACyC,IAAK,EAAA;QAAAppB,IAAA,EAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;OACjD,CAAA,EAGDvM,IACC,IAAA,eAAAtL,GAAA,CAAC2V,GAAI,EAAA;QAAA9P,IAAA,EAAM;QACTpG,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;UAAKppB,IAAM,EAAAD,QAAA;UAAU+iB,YAAa,EAAA,UAAA;UAAWC,MAAO,EAAA,QAAA;UAClDrQ;QACH,CAAA;OACF,CAAA,EAGDspC,OACC,mBAAA/oC,GAAA,CAACojC,OAAA,EAAA;QACCt2C,QAAU,EAAAo8C,eAAA;QACV1/C,IAAM,EAAAu/C,OAAA;QACNp/C,KAAO,EAAA;UAACkE,SAAW,EAAA,CAAA,CAAA;UAAIC,cAAc,CAAE;QAAA;MAAA,CACzC,CAAA,EAGDurB,SACC,IAAA,eAAA3F,IAAA,CAACyC,IAAK,EAAA;QAAAppB,IAAA,EAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAed,SAAS,CAAK,IAAAA,SAAA,EAC7Br0B,cAAAA,CAAAA,kBAAmB,CAAAq0B,SAAS,CAAK,IAAAe,aAAA,CAAcf,SAAS,CAAA;OAC3D,CAAA;KAEJ,CAAA,EAED5Z,YACE,eAAAO,GAAA,CAAA2V,GAAA,EAAA;MAAIzD,IAAG,MAAQ;MAAA,GAAG+2B;MAChBxpC;KACH,CAAA;EAAA,CAAA,CAEJ;AAEJ,CAAC,CAAA;;;;;;ACjLD,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,EAAA;AAEA,MAAMgb,WAAWvyB,SAAS,CAAAlkB,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,iGAAA,CAAA,CAAA,CAAA,CAAA;AAS1B,MAAMs9B,SAAA,GAAYv9B,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,0WAAA,EAYO,uHAAR,CAAA,CAAA,CAAA,EAAAq9B,QAAA,CAAA;AAUb,MAAME,gBAAgBx9B,GAA4C,CAAAsiB,EAAA,KAAAA,EAAA,GAAAriB,YAAA,CAAA,CAAA,eAAA,EAC1B,kHASpC,gIATE,CAAA,CAAA,CAAA,EAAAw9B,MAAA;EAAA,IAAC;IAACC;EAAQ,CAAA,GAAAD,MAAA;EAAA,OAAOC,QAAW,GAAA,CAAA,GAAI;GAIvCC,MAAA;EAAA,IAAC;IAACC;GACF,GAAAD,MAAA;EAAA,OAAAC,SAAA,GACIL,YACAv9B,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,8EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;ACjCb,MAAMqD,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrB3H,qBAAA,EACAq7B,aACF,CAAA;AAeO,MAAMK,QAAW,GAAAj6B,UAAA,CAAW,SAASi6B,SAAAA,CAC1C3+C,OACAuX,GACA,EAAA;EACA,MAAM;IAACqnC,QAAW,GAAA,KAAA;IAAOtT;IAAOpoB,MAAQ;IAAA,GAAG8B;EAAa,CAAA,GAAAhlB,KAAA;EACxD,MAAM,CAAC6+C,OAAS,EAAAC,UAAU,IAAIt6C,QAAkB,CAAA8mC,KAAA,GAAQ,QAAQ,IAAI,CAAA;EAEpEzmC,SAAA,CAAU,MAAM;IACd,IAAI,CAACymC,KAAO,EAAA;MACV,OAAOwT,WAAW,IAAI,CAAA;IACxB;IAEM,MAAA3uC,OAAA,GAAUs7B,WAAW,MAAM;MAC/BqT,UAAA,CAAW,IAAI,CAAA;OACdxT,KAAK,CAAA;IAER,OAAO,MAAM;MACXE,YAAA,CAAar7B,OAAO,CAAA;IAAA,CACtB;EAAA,CACF,EAAG,CAACm7B,KAAK,CAAC,CAAA;EAGR,sBAAAr2B,GAAA,CAACmP,MAAA,EAAA;IACE,GAAGY,SAAA;IACJ05B,SAAW,EAAAE,QAAA;IACXz7B,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;IAC5Bs7B,QAAU,EAAAK,OAAA;IACVtnC;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;ACjDD,MAAM6M,MAAO,GAAAC,MAAA,CAAOs6B,QAAQ,CAAA,CAC1B3+C,KAIG,IAAA;EACG,MAAA;IAACU,KAAO;IAAAq+C;EAAU,CAAA,GAAA/+C,KAAA;EACxB,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACvC,MAAAi/C,SAAA,GAAYp+C,KAAKm+C,MAAM,CAAA;EAE7B,MAAMr+B,MAAS,GAAAzhB,WAAA,CAAYC,KAAO,EAAAwB,KAAA,EAAQoB,SAAc,IAAA;IAChD,MAAAC,QAAA,GAAWi9C,SAAU,CAAAl+C,KAAA,CAAMgB,SAAS,CAAA;IAC1C,MAAMS,SAAY,GAAAR,QAAA,CAASM,UAAa,GAAAN,QAAA,CAASE,iBAAiBF,QAAS,CAAAG,eAAA;IAEpE,OAAA;MAACR,QAAQa;KAAS;EAAA,CAC1B,CAAA;EAEM,OAAAme,MAAA;AACT,CAAC,CAAA;AAsCM,MAAMu+B,YAAe,GAAAv6B,UAAA,CAAW,SAASu6B,aAAAA,CAC9Cj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAO,CAAA,CAAA;AACpE,CAAC,CAAA;AAMM,MAAMG,aAAgB,GAAAx6B,UAAA,CAAW,SAASu6B,aAAAA,CAC/Cj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAQ,CAAA,CAAA;AACrE,CAAC,CAAA;AAMM,MAAMI,eAAkB,GAAAz6B,UAAA,CAAW,SAASu6B,aAAAA,CACjDj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAU,CAAA,CAAA;AACvE,CAAC,CAAA;AAMM,MAAMK,YAAe,GAAA16B,UAAA,CAAW,SAASu6B,aAAAA,CAC9Cj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAO,CAAA,CAAA;AACpE,CAAC,CAAA;;;;;;ACrHD,IAAAp3C,IAAA;AAwBA,MAAM03C,YAAe,GAAAh7B,MAAA,CAAOgK,MAAM,CAAA,CAAb1mB,IAAc,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,CAAA;AAO5B,MAAMu+B,GAAM,GAAA56B,UAAA,CAAW,SAAS46B,IAAAA,CACrCt/C,OAKAuwB,YACA,EAAA;EACM,MAAA;IACJzD,IAAA;IACAjE,EAAA;IACA2mB,OAAA;IACAztC,QAAW,GAAA,CAAA;IACXw9C,KAAA;IACAzU,OAAA;IACA1O,OAAA;IACA96B,OAAU,GAAA,CAAA;IACV2tB,QAAA;IACA,GAAGjK;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAAw/C,UAAA,GAAa56C,OAAiC,IAAI,CAAA;EAClD,MAAA66C,UAAA,GAAa76C,OAAO,KAAK,CAAA;EAEzB,MAAAupC,UAAA,GAAa1lB,YAAY,MAAM;IACnCg3B,UAAA,CAAW16C,OAAU,GAAA,KAAA;EACvB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMy3B,WAAc,GAAA/T,WAAA,CACjBtiB,KAA+C,IAAA;IAC9Cs5C,UAAA,CAAW16C,OAAU,GAAA,IAAA;IACjB,IAAAq3B,OAAA,EAASA,OAAA,CAAQj2B,KAAK,CAAA;EAC5B,CAAA,EACA,CAACi2B,OAAO,CAAA,CACV;EAEM,MAAA7kB,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC1rB,SAAA,CAAU,MAAM;IACV,IAAA2qC,OAAA,IAAW,CAACiQ,UAAA,CAAW16C,OAAS,EAAA;MAClC,IAAIy6C,UAAW,CAAAz6C,OAAA,EAASy6C,UAAA,CAAWz6C,QAAQ+1B,KAAM,EAAA;MACjD2kB,UAAA,CAAW16C,OAAU,GAAA,IAAA;IACvB;EAAA,CACF,EAAG,CAACyqC,OAAO,CAAC,CAAA;EAEN,MAAAlX,MAAA,GAAUt0B,EAAiC,IAAA;IAC/Cw7C,UAAA,CAAWz6C,OAAU,GAAAf,EAAA;IACrBuT,GAAA,CAAIxS,OAAU,GAAAf,EAAA;EAAA,CAChB;EAGE,sBAAAiR,GAAA,CAACoqC,YAAA,EAAA;IACC,SAAQ,EAAA,KAAA;IACP,GAAGr6B,SAAA;IACJ,eAAA,EAAeiK,WAAW,MAAS,GAAA,OAAA;IACnCltB,QAAA;IACA+qB,IAAA;IACAjE,EAAA;IACA4C,IAAK,EAAA,OAAA;IACLqf,OAAA;IACAsD,MAAQ,EAAAD,UAAA;IACR/R,OAAS,EAAAI,WAAA;IACTl7B,OAAA;IACAiW,GAAK,EAAA+gB,MAAA;IACL+W,IAAK,EAAA,KAAA;IACLpgB,QAAA;IACAyL,QAAA,EAAUzL,WAAW,CAAI,GAAA,CAAA,CAAA;IACzB1O,IAAM,EAAAg/B,KAAA;IACNrlD,IAAK,EAAA;EAAA,CAAA,CACP;AAEJ,CAAC,CAAA;;;;;;ACrGD,IAAAyN,IAAA;AAWA,SAAS+3C,gBAAgBzyC,IAA2C,EAAA;EAClE,OAAO9I,QAAQ8I,IAAI,CAAA;AACrB;AAGA,MAAM0yC,YAAe,GAAAt7B,MAAA,CAAOgQ,MAAM,CAAA,CAAb1sB,IAAc,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,kIAAA,CAAA,CAAA,CAAA,CAAA;AAY5B,MAAM6+B,OAAU,GAAAl7B,UAAA,CAAW,SAASk7B,QAAAA,CACzC5/C,OACAuX,GACA,EAAA;EACA,MAAM;IAAC7C,QAAA,EAAUkQ,YAAc;IAAA,GAAGI;GAAa,GAAAhlB,KAAA;EAC/C,MAAM,CAAC+5C,YAAA,EAAc8F,eAAe,CAAA,GAAIr7C,SAAS,CAAE,CAAA,CAAA;EAE7C,MAAAkQ,QAAA,GAAWjR,QAAQ,MAAMmhB,YAAA,CAAa1gB,OAAOw7C,eAAe,CAAA,EAAG,CAAC96B,YAAY,CAAC,CAAA;EAEnF,MAAMk7B,OAAOprC,QAAS,CAAApV,GAAA,CAAI,CAAC+qB,KAAA,EAAOI,UAChC,KAAAC,YAAA,CAAaL,KAAO,EAAA;IAClBmlB,SAASuK,YAAiB,KAAAtvB,UAAA;IAC1B5rB,GAAK,EAAA4rB,UAAA;IACL2R,OAAA,EAASA,CAAA,KAAM2jB,cAAA,CAAet1B,UAAU;EAAA,CACzC,CAAA,CACH;EAEA,MAAMu1B,UAAUF,IAAK,CAAA3/C,MAAA;EAEf,MAAA4/C,cAAA,GAAiBt3B,WAAY,CAACw3B,MAAmB,IAAA;IACrDJ,eAAA,CAAgBI,MAAM,CAAA;EACxB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM9Q,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA+C,IAAA;IAC1C,IAAAA,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BghD,eAAA,CAAiBK,SAAA,IAAA,CAAeA,SAAY,GAAAF,OAAA,GAAU,KAAKA,OAAO,CAAA;IACpE;IAEI,IAAA75C,KAAA,CAAMtH,QAAQ,YAAc,EAAA;MAC9BghD,eAAA,CAAiBK,SAAA,IAAA,CAAeA,SAAY,GAAA,CAAA,IAAKF,OAAO,CAAA;IAC1D;EACF,CAAA,EACA,CAACA,OAAO,CAAA,CACV;EAGE,sBAAA/qC,GAAA,CAAC0qC,YAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAG36B,SAAA;IACJhR,SAAW,EAAAm7B,aAAA;IACX53B,GAAA;IACA83B,IAAK,EAAA,SAAA;IAEJ36B,QAAA,EAAAorC;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AC1DM,MAAMK,QAAW,GAAAz7B,UAAA,CAAW,SAASy7B,SAAAA,CAC1CngD,OAEAuX,GACA,EAAA;EACA,MAAM;IAACuD,IAAA;IAAM,GAAGkK;EAAA,CAAa,GAAAhlB,KAAA;EAG3B,sBAAAiV,GAAA,CAAC2V,GAAA,EAAA;IACC,SAAQ,EAAA,UAAA;IACP,GAAG5F,SAAA;IACJlK,IAAA;IACAvD,GAAA;IACA83B,IAAK,EAAA,UAAA;IACL3U,QAAU,EAAA16B,KAAA,CAAM06B,QAAa,KAAA,KAAA,CAAA,GAAY,IAAI16B,KAAM,CAAA06B,QAAA;IAElDhmB,QAAM,EAAA1U,KAAA,CAAA0U;EAAA,CAAA,CACT;AAEJ,CAAC,CAAA;;;;;;ACpCD,IAAA/M,IAAA,EAAAO,IAAA;AAiBA,MAAMk4C,gBAAuD,GAAA;EAC3DznB,KAAO,EAAA,UAAA;EACP0nB,OAAS,EAAA,SAAA;EACTC,OAAS,EAAA,UAAA;EACTxnB,IAAM,EAAA;AACR,CAAA;AAEA,MAAMynB,KAAQ,GAAA;EACZ5nB,KAAO,EAAA,OAAA;EACP0nB,OAAS,EAAA,OAAA;EACTC,OAAS,EAAA,OAAA;EACTxnB,IAAM,EAAA;AACR,CAAA;AAEA,MAAM1U,MAAO,GAAAC,MAAA,CAAOyL,IAAI,CAAA,CAAXnoB,IAAY,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,CAAA;AAIzB,MAAMy/B,OAAU,GAAAn8B,MAAA,CAAOsH,IAAI,CAAA,CAAXzjB,IAAY,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,CAAA;AAWrB,SAAS0/B,MACdzgD,KACoB,EAAA;EACd,MAAA;IAAC0gD,QAAU;IAAAC,WAAA;IAAa5J,OAAS;IAAA7zB,MAAA,GAAS;IAAGoE,KAAO;IAAAK,MAAA;IAAQ,GAAG3C;EAAA,CAAa,GAAAhlB,KAAA;EAClF,MAAM4gD,QAAW,GAAAj5B,MAAA,GAASy4B,gBAAiB,CAAAz4B,MAAM,CAAI,GAAA,SAAA;EACrD,MAAM0nB,IAAO,GAAA1nB,MAAA,GAAS44B,KAAM,CAAA54B,MAAM,CAAI,GAAA,QAAA;EAGpC,sBAAA1S,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,OAAA;IACRirB,IAAA;IACC,GAAGrqB,SAAA;IACJliB,SAAW,EAAA,CAAA;IACXogB,MAAA;IACAI,MAAQ,EAAA,CAAA;IACRzO,IAAM,EAAA+rC,QAAA;IAENlsC,QAAA,EAAA,eAAAiU,IAAA,CAACgD,IAAK,EAAA;MAAA/R,KAAA,EAAM,YACV;MAAAlF,QAAA,EAAA,CAAC,eAAAO,GAAA,CAAAurC,OAAA,EAAA;QAAQ1lC,MAAM,CAAG;QAAAxZ,OAAA,EAAS;QACzBoT,QAAC,EAAA,eAAAiU,IAAA,CAAA8e,KAAA,EAAA;UAAMpnC,OAAO,CACX;UAAAqU,QAAA,EAAA,CAAA4S,KAAA,uBACE8D,IAAK,EAAA;YAAAppB,IAAA,EAAM,CAAG;YAAA+iB,MAAA,EAAO;YACnBrQ,QACH,EAAA4S;WAAA,CAAA,EAEDq5B,eACE,eAAA1rC,GAAA,CAAAmW,IAAA,EAAA;YAAKvG,OAAK,IAAC;YAAA7iB,IAAA,EAAM;YACf0S,QACH,EAAAisC;WAAA,CAAA;QAAA,CAEJ;MACF,CAAA,CAAA,EAECD,QACC,IAAA,eAAAzrC,GAAA,CAAC2V,GAAI,EAAA;QAAAtpB,OAAA,EAAS,CACZ;QAAAoT,QAAA,iBAAAO,GAAA,CAACoZ,MAAA,EAAA;UACClH,EAAG,EAAA,QAAA;UACH2F,IAAM,EAAA+d,SAAA;UACNpf,IAAK,EAAA,OAAA;UACLnqB,OAAS,EAAA,CAAA;UACTwpC,OAAS,EAAAiM,OAAA;UACTn4C,KAAA,EAAO;YAAC2sB,aAAA,EAAe;UAAK;QAAA,CAAA;OAEhC,CAAA;KAEJ;EAAA,CAAA,CACF;AAEJ;ACxFO,SAASs1B,UAAsBA,CAAA,EAAA;EAEpC,MAAM,CAACtH,OAAS,EAAAG,KAAK,IAAI1I,UAAW,CAAA,MAAM,MAAM,KAAK,CAAA;EAE3CnsC,SAAA,CAAA60C,KAAA,EAAO,CAACA,KAAK,CAAC,CAAA;EAEjB,OAAAH,OAAA;AACT;ACTA,MAAM16C,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAwC,IAAI,CAAA;AAEtE,MAAAysC,YAAA,GAAwD1sC,YAAYvV,KAAG,CAAA;;;;;;ACRpF,IAAA8I,IAAA,EAAAO,IAAA;AA2BA,MAAMkc,MAAO,GAAAC,MAAA,CAAOqY,KAAK,CAAA,CAAZ/0B,IAAa,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mGAAA,CAAA,CAAA,CAAA,CAAA;AAS1B,MAAMggC,cAAA,GAAiB18B,MAAO,CAAAC,GAAA,CAAPpc,IAAU,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,sHAAA,CAAA,CAAA,CAAA,CAAA;AASjC,IAAIigC,OAAU,GAAA,CAAA;AAKP,SAASC,cAAcjhD,KAA+C,EAAA;EAC3E,MAAM;IAAC0U,QAAU;IAAApT,OAAA,GAAU;IAAG0pB,QAAU;IAAAC,QAAA;IAAUmQ;EAAW,CAAA,GAAAp7B,KAAA;EAC7D,MAAM,CAACi5B,KAAO,EAAAioB,SAAS,CAAI,GAAA18C,QAAA,CAAqB,EAAE,CAAA;EAE5C,MAAA28C,SAAA,GAAYv8C,MAAqD,CAAA,CAAA,CAAE,CAAA;EAEnE,MAAAX,IAAA,GAAOwkB,WAAY,CAACqZ,MAAwB,IAAA;IAEhD,MAAMqJ,WAA8BlS,MAAAA,IAAUmoB,gBAAgB,MAAMF,SAAA,CAAUjoB,MAAK,CAAC,CAAA;IAEpF,MAAMpQ,EAAK,GAAAiZ,MAAA,CAAOjZ,EAAM,IAAA8B,MAAA,CAAOq2B,OAAS,EAAA,CAAA;IAClC,MAAAziD,QAAA,GAAWujC,OAAOvjC,QAAY,IAAA,GAAA;IAEpC,MAAM8iD,UAAUA,CAAA,KAAM;MA/D1B15C,IAAAA,GAAAA;MAgEM,MAAM25C,aAAY35C,GAAA,GAAAw5C,SAAA,CAAUp8C,QAAQ8jB,EAAE,CAAA,KAApB,gBAAAlhB,GAAuB,CAAA25C,SAAA;MAEzCnW,QAAA,CAAUoW,SAA0B,IAAA;QAClC,MAAM7tC,MAAM6tC,SAAU,CAAAC,SAAA,CAAWpkD,CAAM,IAAAA,CAAA,CAAEyrB,OAAOA,EAAE,CAAA;QAElD,IAAInV,MAAM,CAAI,CAAA,EAAA;UACN,MAAA+tC,MAAA,GAASF,SAAU,CAAAhvC,KAAA,CAAM,CAAC,CAAA;UAEzBkvC,MAAA,CAAArzC,MAAA,CAAOsF,KAAK,CAAC,CAAA;UAEb,OAAA+tC,MAAA;QACT;QAEO,OAAAF,SAAA;MAAA,CACR,CAAA;MAED,IAAID,cAAc,KAAW,CAAA,EAAA;QAC3B9V,YAAA,CAAa8V,SAAS,CAAA;QACf,OAAAH,SAAA,CAAUp8C,QAAQ8jB,EAAE,CAAA;MAC7B;IAAA,CACF;IAEAsiB,QAAA,CAAUoW,SAA0B,IAAA;MAC3B,OAAAA,SAAA,CACJr9C,OAAQ9G,CAAA,IAAMA,EAAEyrB,EAAO,KAAAA,EAAE,EACzB7pB,MAAO,CAAA,CACN;QACEqiD,OAAA;QACAx4B,EAAA;QACAiZ,MAAQ,EAAA;UAAC,GAAGA,MAAA;UAAQvjC;QAAQ;MAC9B,CAAA,CACD,CAAA;IAAA,CACJ,CAAA;IAEG,IAAA4iD,SAAA,CAAUp8C,OAAQ,CAAA8jB,EAAE,CAAG,EAAA;MACzB2iB,YAAA,CAAa2V,SAAU,CAAAp8C,OAAA,CAAQ8jB,EAAE,CAAA,CAAEy4B,SAAS,CAAA;MACrC,OAAAH,SAAA,CAAUp8C,QAAQ8jB,EAAE,CAAA;IAC7B;IAEUs4B,SAAA,CAAAp8C,OAAA,CAAQ8jB,EAAE,CAAI,GAAA;MAACy4B,WAAW7V,UAAW,CAAA4V,OAAA,EAAS9iD,QAAQ;KAAC;IAE1D,OAAAsqB,EAAA;EACT,CAAA,EAAG,EAAE,CAAA;EAGLhkB,SAAA,CACE,MAAM,MAAM;IACV,KAAA,MAAW;MAACy8C;KAAS,IAAKz6C,OAAO1H,MAAO,CAAAgiD,SAAA,CAAUp8C,OAAO,CAAG,EAAA;MAC1DymC,YAAA,CAAa8V,SAAS,CAAA;IACxB;IAEAH,SAAA,CAAUp8C,UAAU,EAAC;EACvB,CAAA,EACA,EAAC,CACH;EAEM,MAAArG,KAAA,GAA2B+E,OAAQ,CAAA,OAAO;IAACsR,OAAA,EAAS;IAAK9Q;GAAI,CAAA,EAAI,CAACA,IAAI,CAAC,CAAA;EAC7E,MAAMs1C,UAAUsH,UAAW,EAAA;EAE3B,OAAA,eACGl4B,IAAA,CAAAm4B,YAAA,CAAa5rC,QAAb,EAAA;IAAsBxW,KACpB;IAAAgW,QAAA,EAAA,CAAAA,QAAA,EAEA6kC,OAAA,IACE,eAAAtkC,GAAA,CAAAmP,MAAA,EAAA;MAAK,SAAQ,EAAA,eAAA;MAAgBgX;MAC5B1mB,QAAC,EAAA,eAAAO,GAAA,CAAA8rC,cAAA,EAAA;QACCrsC,QAAC,EAAA,eAAAO,GAAA,CAAA2V,GAAA,EAAA;UAAItpB,OAAkB;UAAA0pB,QAAA;UAAoBC;UACzCvW,QAAC,EAAA,eAAAO,GAAA,CAAAmxB,eAAA,EAAA;YAAgBnoC,OAAS,EAAA,KAAA;YACvByW,QAAM,EAAAukB,KAAA,CAAA35B,GAAA,CAAIoiD,MAAA;cAAA,IAAC;gBAACL,OAAA;gBAASx4B,EAAI;gBAAAiZ;cACxB,CAAA,GAAA4f,MAAA;cAAA,OAAA,eAAAzsC,GAAA,CAACktB,MAAO,CAAA7d,GAAA,EAAP;gBACClmB,SAAS;kBAACF,OAAA,EAAS;kBAAGiJ,CAAG,EAAA,CAAA;kBAAGhJ,OAAO;gBAAC,CAAA;gBACpCE,IAAA,EAAM;kBAACH,OAAA,EAAS,CAAG;kBAAAC,KAAA,EAAO;kBAAKG,UAAY,EAAA;oBAACC,QAAU,EAAA;;gBAAI,CAAA;gBAC1DN,SAAS;kBAACC,OAAA,EAAS;kBAAGiJ,CAAG,EAAA,EAAA;kBAAIhJ,OAAO;gBAAI,CAAA;gBAExCwjD,MAAO,EAAA,UAAA;gBACPrjD,YAAY;kBAACpE,IAAA,EAAM;kBAAU0nD,OAAS,EAAA,EAAA;kBAAIC,WAAW;gBAAG,CAAA;gBAExDntC,QAAA,iBAAAO,GAAA,CAACwrC,KAAA,EAAA;kBACCC,UAAU5e,MAAO,CAAA4e,QAAA;kBACjBC,aAAa7e,MAAO,CAAA6e,WAAA;kBACpB5J,OAAS,EAAAsK,OAAA;kBACT15B,QAAQma,MAAO,CAAAna,MAAA;kBACfL,OAAOwa,MAAO,CAAAxa;gBAAA,CAChB;cAAA,CAAA,EAVKuB,EAYR,CAAA;YAAA;WACH;QACF,CAAA;MACF,CAAA;KACF,CAAA;EAEJ,CAAA,CAAA;AAEJ;ACrJO,SAASi5B,QAA8BA,CAAA,EAAA;EACtC,MAAApjD,KAAA,GAAQ+V,WAAWqsC,YAAY,CAAA;EAErC,IAAI,CAACpiD,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,mCAAmC,CAAA;EACrD;EAKA,IAAI,CAACs3B,QAAS,CAAAh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAK,EAAA;IACvC,MAAA,IAAI3U,MAAM,iDAAiD,CAAA;EACnE;EAEO,OAAA1B,KAAA;AACT;ACrBgB,SAAAqjD,oBAAAA,CACd9oB,KACA,EAAA+oB,YAAA,EACA1P,cACoB,EAAA;EANtB,IAAA3qC,EAAA;EAOQ,MAAA+L,GAAA,GAAMsuC,YAAa,CAAA1vC,OAAA,CAAQggC,cAAc,CAAA;EAC/C,MAAMoK,GAAM,GAAAsF,YAAA,CAAazvC,KAAM,CAAA,CAAA,EAAGmB,GAAG,CAAA;EACrC,MAAMwM,MAAMw8B,GAAI,CAAAv8C,MAAA;EAEhB,KAAA,IAASyR,IAAIsO,GAAM,GAAA,CAAA,EAAGtO,CAAK,IAAA,CAAA,EAAGA,KAAK,CAAG,EAAA;IACpC,MAAMqwC,OAAU,GAAAvF,GAAA,CAAI9qC,CAAC,CAAA,CAAE+oB,aAAa,eAAe,CAAA;IAEnD,IAAI,CAACsnB,OAAS,EAAA;MACZ;IACF;IAEM,MAAAC,QAAA,GAAWD,OAAQ,CAAAltB,KAAA,CAAM,GAAG,CAAA;IAElCmtB,QAAA,CAASC,GAAI,CAAA,CAAA;IAEb,MAAMjlD,IAAc,EAAC;IAErB,IAAI+0C,QAAW,GAAA,IAAA;IAEf,KAAA,IAASmQ,IAAI,CAAG,EAAAA,CAAA,GAAIF,QAAS,CAAA/hD,MAAA,EAAQiiD,KAAK,CAAG,EAAA;MACzCllD,CAAA,CAAA+G,IAAA,CAAKi+C,QAAS,CAAAE,CAAC,CAAC,CAAA;MAEZ,MAAAtlD,CAAA,GAAII,CAAE,CAAAue,IAAA,CAAK,GAAG,CAAA;MAEpB,IAAI,EAAC,CAAA9T,EAAA,GAAAsxB,KAAA,CAAMn8B,CAAC,CAAA,KAAP,mBAAUm1C,QAAU,CAAA,EAAA;QACZA,QAAA,GAAA,KAAA;QACX;MACF;IACF;IAEA,IAAIA,QAAU,EAAA;MACZ,OAAOyK,IAAI9qC,CAAC,CAAA;IACd;EACF;EAEO,OAAA,IAAA;AACT;AAEgB,SAAAywC,oBAAAA,CACdppB,KACA,EAAA+oB,YAAA,EACA1P,cACoB,EAAA;EAjDtB,IAAA3qC,EAAA;EAkDQ,MAAA+L,GAAA,GAAMsuC,YAAa,CAAA1vC,OAAA,CAAQggC,cAAc,CAAA;EACzC,MAAAoK,GAAA,GAAMsF,YAAa,CAAAzvC,KAAA,CAAMmB,GAAG,CAAA;EAClC,MAAMwM,MAAM8hC,YAAa,CAAA7hD,MAAA;EAEzB,KAAA,IAASyR,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;IAC3B,IAAA,CAAC8qC,GAAI,CAAA9qC,CAAC,CAAG,EAAA;MACX;IACF;IAEA,MAAMqwC,OAAU,GAAAvF,GAAA,CAAI9qC,CAAC,CAAA,CAAE+oB,aAAa,eAAe,CAAA;IAEnD,IAAI,CAACsnB,OAAS,EAAA;MACZ;IACF;IAEM,MAAAC,QAAA,GAAWD,OAAQ,CAAAltB,KAAA,CAAM,GAAG,CAAA;IAElCmtB,QAAA,CAASC,GAAI,CAAA,CAAA;IAEb,MAAMjlD,IAAc,EAAC;IAErB,IAAI+0C,QAAW,GAAA,IAAA;IAEf,KAAA,IAASmQ,IAAI,CAAG,EAAAA,CAAA,GAAIF,QAAS,CAAA/hD,MAAA,EAAQiiD,KAAK,CAAG,EAAA;MACzCllD,CAAA,CAAA+G,IAAA,CAAKi+C,QAAS,CAAAE,CAAC,CAAC,CAAA;MAEZ,MAAAtlD,CAAA,GAAII,CAAE,CAAAue,IAAA,CAAK,GAAG,CAAA;MAEpB,IAAI,EAAC,CAAA9T,EAAA,GAAAsxB,KAAA,CAAMn8B,CAAC,CAAA,KAAP,mBAAUm1C,QAAU,CAAA,EAAA;QACZA,QAAA,GAAA,KAAA;QACX;MACF;IACF;IAEA,IAAIA,QAAU,EAAA;MACZ,OAAOyK,IAAI9qC,CAAC,CAAA;IACd;EACF;EAEO,OAAA,IAAA;AACT;AAEO,SAAS0wC,kBAAkBt+C,EAAuB,EAAA;EACvD,IAAIA,EAAG,CAAA22B,YAAA,CAAa,MAAM,CAAA,KAAM,UAAY,EAAA;IAC1C32B,EAAA,CAAG82B,KAAM,CAAA,CAAA;EACX;EAEA,IAAI92B,EAAG,CAAA22B,YAAA,CAAa,MAAM,CAAA,KAAM,MAAQ,EAAA;IACtC,MAAMqE,aAAah7B,EAAG,CAAAg7B,UAAA;IAElB,IAAAA,UAAA,IAAcA,sBAAsBC,WAAa,EAAA;MACnDD,UAAA,CAAWlE,KAAM,CAAA,CAAA;IACnB;EACF;AACF;ACpGA,MAAMj8B,GAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,yBAAyB,CAAA;AAEhDub,WAAA,CAAYvV,GAAG,CAAI,GAAAuV,WAAA,CAAYvV,GAAG,CAAA,IAAKwV,cAAuC,IAAI,CAAA;AAKrE,MAAAkuC,WAAA,GAAsDnuC,YAAYvV,GAAG,CAAA;ACQ3E,MAAM2jD,IAAO,GAAAngB,IAAA,CAClB3d,UAAW,CAAA,SAAS89B,KAClBC,CAAAziD,KAAA,EAEAuX,GACoB,EAAA;EACpB,MAAM;IAAC7C,QAAU;IAAArU,KAAA,GAAQ;IAAG+7B,OAAS;IAAA,GAAGpX;EAAa,CAAA,GAAAhlB,KAAA;EAC/C,MAAAuwB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC+6B,cAAA,EAAgBoQ,iBAAiB,CAAA,GAAIl+C,SAA6B,IAAI,CAAA;EACvE,MAAAuzC,iBAAA,GAAoBnzC,OAAO0tC,cAAc,CAAA;EAC/C,MAAMpb,OAAiBzzB,OAAQ,CAAA,MAAM,EAAC,EAAG,EAAE,CAAA;EAC3C,MAAM,CAACu+C,YAAc,EAAAW,eAAe,CAAI,GAAAn+C,QAAA,CAAwB,EAAE,CAAA;EAClE,MAAM,CAACy0B,KAAO,EAAAkS,QAAQ,CAAI,GAAA3mC,QAAA,CAAoB,CAAE,CAAA,CAAA;EAC1C,MAAAo+C,QAAA,GAAWh+C,OAAOq0B,KAAK,CAAA;EAE7Bp0B,SAAA,CAAU,MAAM;IACdkzC,iBAAA,CAAkBhzC,OAAU,GAAAutC,cAAA;EAAA,CAC9B,EAAG,CAACA,cAAc,CAAC,CAAA;EAEnBztC,SAAA,CAAU,MAAM;IACd+9C,QAAA,CAAS79C,OAAU,GAAAk0B,KAAA;EAAA,CACrB,EAAG,CAACA,KAAK,CAAC,CAAA;EAEV,MAAM4pB,YAAe,GAAAp6B,WAAA,CACnB,CAAC5kB,OAAA,EAAsBqzB,KAAc,EAAA+a,QAAA,EAAmBhjB,QAAsB,KAAA;IAC5Ekc,QAAA,CAAU1qB,CAAA,KAAO;MAAC,GAAGA,CAAG;MAAA,CAACyW,KAAI,GAAG;QAACrzB,OAAA;QAASouC;;IAAW,CAAA,CAAA,CAAA;IAErD,IAAIhjB,QAAU,EAAA;MACZyzB,iBAAA,CAAkB7+C,OAAO,CAAA;IAC3B;IAEA,OAAO,MAAM;MACXsnC,QAAA,CAAU1qB,CAAM,IAAA;QACR,MAAAqiC,QAAA,GAAW;UAAC,GAAGriC;SAAC;QAEtB,OAAOqiC,SAAS5rB,KAAI,CAAA;QAEb,OAAA4rB,QAAA;MAAA,CACR,CAAA;IAAA,CACH;EACF,CAAA,EACA,EAAC,CACH;EAEA,MAAMC,WAAc,GAAAt6B,WAAA,CAAY,CAACyO,KAAAA,EAAc+a,QAAsB,KAAA;IACnE9G,QAAA,CAAU1qB,CAAM,IAAA;MACR,MAAAuiC,SAAA,GAAYviC,EAAEyW,KAAI,CAAA;MAExB,IAAI,CAAC8rB,SAAA,EAAkB,OAAAviC,CAAA;MAEhB,OAAA;QAAC,GAAGA,CAAA;QAAG,CAACyW,KAAI,GAAG;UAAC,GAAG8rB,SAAW;UAAA/Q;QAAA;OAAS;IAAA,CAC/C,CAAA;EACH,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM9Y,YAAiC,GAAA11B,OAAA,CACrC,OAAO;IACLsR,OAAS,EAAA,CAAA;IACTu9B,cAAgB,EAAAA,cAAA,IAAkB0P,YAAa,CAAA,CAAC,CAAK,IAAA,IAAA;IACrDtmB,KAAO,EAAA,CAAA;IACPxE,IAAA;IACA2rB,YAAA;IACAE,WAAA;IACAL,iBAAA;IACAriD,KAAA;IACA44B;EAAA,CACF,CAAA,EACA,CAACqZ,cAAgB,EAAA0P,YAAA,EAAc9qB,MAAM2rB,YAAc,EAAAE,WAAA,EAAa1iD,OAAO44B,KAAK,CAAA,CAC9E;EAEA,MAAMkW,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA+C,IAAA;IAzFtD,IAAAwB,EAAA;IA0FQ,IAAI,CAACowC,iBAAkB,CAAAhzC,OAAA,EAAS;IAE5B,IAAAoB,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAM6Y,MAAS,GAAAZ,oBAAA,CACbO,QAAS,CAAA79C,OAAA,EACTi9C,YAAA,EACAjK,iBAAkB,CAAAhzC,OAAA,CACpB;MAEA,IAAIk+C,MAAQ,EAAA;QACVX,iBAAA,CAAkBW,MAAM,CAAA;QACxBP,iBAAA,CAAkBO,MAAM,CAAA;MAC1B;MAEA;IACF;IAEI,IAAA98C,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAM8Y,MAAS,GAAAnB,oBAAA,CACba,QAAS,CAAA79C,OAAA,EACTi9C,YAAA,EACAjK,iBAAkB,CAAAhzC,OAAA,CACpB;MAEA,IAAIm+C,MAAQ,EAAA;QACVZ,iBAAA,CAAkBY,MAAM,CAAA;QACxBR,iBAAA,CAAkBQ,MAAM,CAAA;MAC1B;MAEA;IACF;IAEI,IAAA/8C,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAM6X,OAAU,GAAAlK,iBAAA,CAAkBhzC,OAAQ,CAAA41B,YAAA,CAAa,eAAe,CAAA;MAEtE,IAAI,CAACsnB,OAAA,EAAS;MAER,MAAAe,SAAA,GAAYJ,QAAS,CAAA79C,OAAA,CAAQk9C,OAAO,CAAA;MAE1C,IAAI,CAACe,SAAA,EAAW;MAEhB,IAAIA,UAAU/Q,QAAU,EAAA;QACtB9G,QAAA,CAAU1qB,CAAM,IAAA;UACRuiC,MAAAA,UAAAA,GAAYviC,EAAEwhC,OAAO,CAAA;UAE3B,IAAI,CAACe,UAAAA,EAAkB,OAAAviC,CAAA;UAEhB,OAAA;YAAC,GAAGA,CAAA;YAAG,CAACwhC,OAAO,GAAG;cAAC,GAAGe,UAAAA;cAAW/Q,QAAU,EAAA;YAAA;WAAM;QAAA,CACzD,CAAA;MAAA,CACI,MAAA;QACC,MAAAkR,QAAA,GAAWlB,OAAQ,CAAAltB,KAAA,CAAM,GAAG,CAAA;QAElCouB,QAAA,CAAShB,GAAI,CAAA,CAAA;QAEP,MAAAiB,SAAA,GAAYD,QAAS,CAAA1nC,IAAA,CAAK,GAAG,CAAA;QACnC,MAAM4nC,WAAc,GAAAD,SAAA,IAAaR,QAAS,CAAA79C,OAAA,CAAQq+C,SAAS,CAAA;QAE3D,IAAIC,WAAa,EAAA;UACfA,WAAA,CAAYx/C,QAAQi3B,KAAM,EAAA;UAC1B4nB,iBAAA,CAAkBW,YAAYx/C,OAAO,CAAA;QACvC;MACF;MAEA;IACF;IAEI,IAAAsC,KAAA,CAAMtH,QAAQ,YAAc,EAAA;MAC9BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAMkZ,UAAa,GAAAvL,iBAAA,CAAkBhzC,OAAQ,CAAA41B,YAAA,CAAa,eAAe,CAAA;MAEzE,IAAI,CAAC2oB,UAAA,EAAY;MAEjB,IAAI,GAAC37C,EAAS,GAAAi7C,QAAA,CAAA79C,OAAA,CAAQu+C,UAAU,CAAA,KAA3B,mBAA8BrR,QAAU,CAAA,EAAA;QAC3C9G,QAAA,CAAU1qB,CAAM,IAAA;UACR,MAAAuiC,SAAA,GAAYviC,EAAE6iC,UAAU,CAAA;UAE9B,IAAI,CAACN,SAAA,EAAkB,OAAAviC,CAAA;UAEhB,OAAA;YAAC,GAAGA,CAAA;YAAG,CAAC6iC,UAAU,GAAG;cAAC,GAAGN,SAAA;cAAW/Q,QAAU,EAAA;YAAA;WAAK;QAAA,CAC3D,CAAA;MACH;MAEA;IACF;EACF,CAAA,EACA,CAAC+P,YAAY,CAAA,CACf;EAEA,MAAMxlB,WAAc,GAAA/T,WAAA,CACjBtiB,KAA4C,IAAA;IAC3Cu8C,iBAAA,CAAkBv8C,MAAMf,MAAM,CAAA;IAGpBg3B,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAj2B,KAAA,CAAA;EACZ,CAAA,EACA,CAACi2B,OAAO,CAAA,CACV;EAEAv3B,SAAA,CAAU,MAAM;IACd,IAAI,CAAC0rB,YAAa,CAAAxrB,OAAA,EAAS;IAC3B,MAAMw+C,gBAAgB3jD,KAAM,CAAA0tB,IAAA,CAC1BiD,YAAA,CAAaxrB,OAAQ,CAAAy+C,gBAAA,CAAiB,sBAAsB,CAAA,CAC9D;IAEAb,eAAA,CAAgBY,aAAa,CAAA;EAAA,CAC5B,EAAA,CAAC7uC,QAAU,EAAA6b,YAAY,CAAC,CAAA;EAE3B,OACG,eAAAtb,GAAA,CAAAstC,WAAA,CAAYrtC,QAAZ,EAAA;IAAqBxW,OAAOy6B,YAC3B;IAAAzkB,QAAA,iBAAAO,GAAA,CAACwyB,KAAA,EAAA;MACCtgB,EAAG,EAAA,IAAA;MACH,SAAQ,EAAA,MAAA;MACP,GAAGnC,SAAA;MACJoX,OAAS,EAAAI,WAAA;MACTxoB,SAAW,EAAAm7B,aAAA;MACX53B,GAAK,EAAAgZ,YAAA;MACL8e,IAAK,EAAA,MAAA;MACLhvC,KAAA;MAECqU;IAAA,CAEL;EAAA,CAAA,CAAA;AAAA,CAEH,CACH,CAAA;AAEA8tC,IAAA,CAAKvf,WAAc,GAAA,MAAA;;;;;;AC/NnB,IAAAt7B,IAAA,EAAAO,EAAA,EAAA0Y,EAAA;AAKO,SAAS6iC,iBAA4CA,CAAA,EAAA;EAC1D,OAAO3iC,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,0jBAAA,CAAA,CAAA,CAAA,CAAA;AA8BZ;AAEO,SAAS2iC,uBAAuB1jD,KAA2C,EAAA;EAChF,MAAMmhB,KAAQ,GAAA,SAAA;EACd,MAAM;IAACnG;EAAS,CAAA,GAAA1a,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACjC,MAAA8U,IAAA,GAAOmG,KAAM,CAAA6U,UAAA,CAAW1O,KAAK,CAAA;EAE5B,OAAAL,GAAA,CAAA5Y,EAAA,KAAAA,EAAA,GAAG6Y,iFAGkC,qEAIA,EAAA,gIAAA,EAKE,oEAIC,0GAOH,EAAA,6EAAA,EAIA,wIAKE,EAAA,0EAAA,EAIC,iCAjCvC,CAAA,CAAA,CAAA,EAAAiL,eAAA,CAAgBhR,OAAOnG,IAAK,CAAAyM,OAAO,GAInC0K,eAAgB,CAAAhR,KAAA,EAAOnG,KAAKsZ,OAAO,CAAA,EAKjCnC,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAoN,OAAO,GAInC+J,eAAgB,CAAAhR,KAAA,EAAOnG,KAAKoa,QAAQ,CAAA,EAOtCjD,gBAAgBhR,KAAO,EAAAnG,IAAA,CAAKyM,OAAO,CAAA,EAInC0K,eAAgB,CAAAhR,KAAA,EAAOnG,KAAKsZ,OAAO,CAAA,EAKjCnC,gBAAgBhR,KAAO,EAAAnG,IAAA,CAAKoN,OAAO,CAInC,EAAA+J,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKoa,QAAQ,CAAA,CAAA;AAKhD;AAMO,SAAS00B,iBACd3jD,KACwB,EAAA;EAClB,MAAA;IAAC4jD;EAAU,CAAA,GAAA5jD,KAAA;EACjB,MAAM;IAACK;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,gBAAGC,YAC8B,CAAA,CAAA,sBAAA,EAAA,oEAAA,CAAA,CAAA,CAAA,EAAtBjiB,IAAIuB,KAAM,CAAA,CAAC,IAAIujD,MAAM,CAAA,CAAA;AAMzC;AChGO,SAASC,OAA4BA,CAAA,EAAA;EACpC,MAAAC,IAAA,GAAOrvC,WAAW8tC,WAAW,CAAA;EAEnC,IAAI,CAACuB,IAAM,EAAA;IACH,MAAA,IAAI1jD,MAAM,6BAA6B,CAAA;EAC/C;EAEO,OAAA0jD,IAAA;AACT;ACPO,MAAMC,SAAY,GAAA1hB,IAAA,CAAK,SAAS0hB,UAAAA,CACrC/jD,KAEoB,EAAA;EACpB,MAAM;IAAC0U,QAAU;IAAAu9B,QAAA,GAAW,KAAO;IAAA,GAAGjtB;EAAa,CAAA,GAAAhlB,KAAA;EACnD,MAAM8jD,OAAOD,OAAQ,EAAA;EAGnB,sBAAA5uC,GAAA,CAACwyB,KAAA,EAAA;IACCtgB,EAAG,EAAA,IAAA;IACH,SAAQ,EAAA,WAAA;IACP,GAAGnC,SAAA;IACJmhB,QAAQ,CAAC8L,QAAA;IACTnvC,WAAWghD,IAAK,CAAAzjD,KAAA;IAChBgvC,IAAK,EAAA,OAAA;IACLhvC,OAAOyjD,IAAK,CAAAzjD,KAAA;IAEXqU;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;AC5BD,IAAA/M,EAAA;AAgCA,MAAMyc,OAAOie,IAAK,CAAAhe,MAAA,CAAO2/B,EAAG,CAAAP,iBAAA,EAAmBC,sBAAsB,CAAC,CAAA;AAEtE,MAAMO,WAAA,GAAc5/B,MAAO,CAAAuG,GAAG,CAAE,CAAAse,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAI,CAAA,CAAyBq6B,gBAAgB,CAAA;AAEjG,MAAMO,eAAkB,GAAA7/B,MAAA,CAAO+G,IAAI,CAAA,CAAXzjB,EAAY,KAAAA,EAAA,GAAAoZ,UAAA,CAAA,CAAA,wDAAA,CAAA,CAAA,CAAA,CAAA;AAU7B,MAAMojC,QAAW,GAAA9hB,IAAA,CAAK,SAAS8hB,SAAAA,CACpCnkD,KACoB,EAAA;EACd,MAAA;IACJ0U,QAAA;IACAu9B,UAAUmS,YAAe,GAAA,KAAA;IACzBriD,QAAW,GAAA,CAAA;IACXgnB,IAAA;IACA+D,IAAA;IACAjE,EAAI,EAAAw7B,MAAA;IACJC,MAAA;IACAz/B,KAAA;IACAimB,OAAA;IACAxpC,OAAU,GAAA,CAAA;IACV2tB,QAAW,GAAA,KAAA;IACX5uB,KAAQ,GAAA,CAAA;IACRkgB,IAAA;IACAwE,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAAukD,OAAA,GAAU3/C,OAA6B,IAAI,CAAA;EAC3C,MAAA4/C,WAAA,GAAc5/C,OAA8B,IAAI,CAAA;EACtD,MAAMk/C,OAAOD,OAAQ,EAAA;EACrB,MAAM;IAAC3sB,IAAA;IAAM2rB,YAAc;IAAAE,WAAA;IAAaL;GAAqB,GAAAoB,IAAA;EAC7D,MAAMW,MAAMx8B,KAAM,EAAA;EAClB,MAAMY,KAAKw7B,MAAU,IAAAI,GAAA;EACrB,MAAMtB,QAAW,GAAA1/C,OAAA,CAAQ,MAAMyzB,IAAA,CAAKl4B,MAAO,CAAA,CAAC6pB,EAAM,IAAA,EAAE,CAAC,CAAA,EAAG,CAACA,EAAA,EAAIqO,IAAI,CAAC,CAAA;EAC5D,MAAA+qB,OAAA,GAAUkB,QAAS,CAAA1nC,IAAA,CAAK,GAAG,CAAA;EAC3B,MAAAunC,SAAA,GAAYc,IAAK,CAAA7qB,KAAA,CAAMgpB,OAAO,CAAA;EAC9B,MAAAzS,OAAA,GAAUsU,IAAK,CAAAxR,cAAA,KAAmBiS,OAAQ,CAAAx/C,OAAA;EAChD,MAAMktC,YAAW+Q,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA/Q,QAAA,MAAa,KAAY,CAAA,GAAAmS,YAAA,GAAA,CAAepB,uCAAW/Q,QAAY,KAAA,KAAA;EAC3F,MAAMvX,WAAWopB,IAAK,CAAAxR,cAAA,IAAkBwR,KAAKxR,cAAmB,KAAAiS,OAAA,CAAQx/C,UAAU,CAAI,GAAA,CAAA,CAAA;EACtF,MAAMo0B,YAAe,GAAA11B,OAAA,CACnB,OAAO;IAAC,GAAGqgD,IAAA;IAAMpoB,OAAOooB,IAAK,CAAApoB,KAAA,GAAQ,CAAG;IAAAxE,IAAA,EAAMisB;GAAQ,CAAA,EACtD,CAACA,UAAUW,IAAI,CAAA,CACjB;EAEA,MAAMzV,WAAc,GAAA5lB,WAAA,CACjBtiB,KAA2C,IAAA;IACtC,IAAA2kC,OAAA,EAASA,OAAA,CAAQ3kC,KAAK,CAAA;IAE1B,MAAMf,SAASe,KAAM,CAAAf,MAAA;IAGnB,IAAAA,MAAA,YAAkB65B,WACjB,KAAA75B,MAAA,CAAOu1B,YAAa,CAAA,SAAS,MAAM,UAClC,IAAAv1B,MAAA,CAAOs/C,OAAQ,CAAA,2BAA2B,CAC5C,CAAA,EAAA;MACAv+C,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MACV0Y,WAAA,CAAAd,OAAA,EAAS,CAAChQ,QAAQ,CAAA;MAC9ByQ,iBAAA,CAAkB6B,QAAQx/C,OAAO,CAAA;IACnC;EACF,CAAA,EACA,CAACktC,QAAA,EAAUgQ,OAAS,EAAAnX,OAAA,EAASiY,aAAaL,iBAAiB,CAAA,CAC7D;EAEA,MAAMvT,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA4C,IAAA;IACvC,IAAAqpC,OAAA,IAAWrpC,KAAM,CAAAtH,GAAA,KAAQ,OAAS,EAAA;MAC9B,MAAAmF,EAAA,GAAKwgD,WAAY,CAAAz/C,OAAA,IAAWw/C,OAAQ,CAAAx/C,OAAA;MAEtCf,EAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAA2gD,KAAA,CAAA,CAAA;IACN;EACF,CAAA,EACA,CAACnV,OAAO,CAAA,CACV;EAEA3qC,SAAA,CAAU,MAAM;IACd,IAAI,CAAC0/C,OAAQ,CAAAx/C,OAAA,EAAS;IAEf,OAAA89C,YAAA,CAAa0B,QAAQx/C,OAAS,EAAAo+C,QAAA,CAAS1nC,KAAK,GAAG,CAAA,EAAGw2B,UAAUhjB,QAAQ,CAAA;KAC1E,CAACgjB,QAAA,EAAUkR,QAAU,EAAAN,YAAA,EAAc5zB,QAAQ,CAAC,CAAA;EAEzC,MAAAztB,OAAA,GAAA,eACHmnB,IAAA,CAAAgD,IAAA,EAAA;IAAKrqB,OACJ;IAAAoT,QAAA,EAAA,CAAA,eAAAiU,IAAA,CAACiC,GAAA,EAAA;MACCG,WAAa,EAAA1qB,KAAA;MACbzB,KAAA,EAAO;QAACgmD,UAAY,EAAA93B,IAAA,IAAQpY,WAAW,SAAY,GAAA,QAAA;QAAUmwC,eAAe;MAAM,CAAA;MAEjFnwC,QAAA,EAAA,CACCoY,IAAA,mBAAA7X,GAAA,CAACmW;QAAKvG,KAAc;QAAA7iB,IAAA,EAAMD;QAAUgjB,MACjC;QAAArQ,QAAA,EAAA2a,aAAA,CAAcvC,IAAI;MACrB,CAAA,CAAA,EAED,CAACA,IACA,IAAA,eAAA7X,GAAA,CAACivC,eAAgB,EAAA;QAAAr/B,KAAA;QAAc7iB,MAAMD,QAAU;QAAAgjB,MAAA;QAC7CrQ,QAAC,EAAA,eAAAO,GAAA,CAAA6vC,oBAAA,EAAA;UAAqBlmD,OAAO;YAACiE,SAAA,EAAWovC,WAAW,eAAkB,GAAA,KAAA;;QAAY,CAAA;OACpF,CAAA;IAAA,CAEJ,CAAA,EAAA,eACCh9B,GAAA,CAAA2V,GAAA,EAAA;MAAI9P,IAAM,EAAA,CAAA;MACTpG,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;QAAKvG,KAAc;QAAA7iB,IAAA,EAAMD,QAAU;QAAA+iB,YAAA,EAAa,UAAW;QAAAC,MAAA;QACzDrQ;MACH,CAAA;KACF,CAAA;EACF,CAAA,CAAA;EAGF,IAAIqU,IAAM,EAAA;IAEN,sBAAAJ,IAAA,CAACvE,IAAA,EAAA;MACC,eAAA,EAAe6K,WAAW,EAAK,GAAA,KAAA,CAAA;MAC/B,cAAc,EAAApG,EAAA;MACd,eAAe,EAAAo5B,OAAA;MACf,SAAQ,EAAA,UAAA;MACP,GAAGj9B,SAAA;MACJ8lB,OAAS,EAAAuD,WAAA;MACT92B,GAAK,EAAAgtC,OAAA;MACLlV,IAAK,EAAA,MAAA;MAEL36B,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACgvC,WAAA,EAAA;QACCL,QAAQE,IAAK,CAAApoB,KAAA;QACb,eAAe,EAAAuW,QAAA;QACf9qB,EAAI,EAAAm9B,MAAA;QACJ,SAAQ,EAAA,eAAA;QACRv7B,IAAA;QACAxR,GAAK,EAAAitC,WAAA;QACLnV,IAAK,EAAA,UAAA;QACL3U,QAAA;QAEChmB,QAAA,EAAAlT;MAAA,CACH,CAAA,EAAA,eAECyT,GAAA,CAAAstC,WAAA,CAAYrtC,QAAZ,EAAA;QAAqBxW,KAAO,EAAAy6B,YAAA;QAC1BzkB,QAAY,EAAAA,QAAA,IAAA,eAAAO,GAAA,CAAC8uC,SAAU,EAAA;UAAA5d,MAAA,EAAQ,CAAC8L,QAAA;UAAWv9B;QAAS,CAAA;OACvD,CAAA;IAAA,CAAA,CACF;EAEJ;EAGE,sBAAAiU,IAAA,CAACvE,IAAA,EAAA;IACC,eAAA,EAAe6K,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/B,SAAQ,EAAA,UAAA;IACR,cAAc,EAAApG,EAAA;IACd,eAAe,EAAAo5B,OAAA;IACd,GAAGj9B,SAAA;IACJ,eAAe,EAAAitB,QAAA;IACfnH,OAAS,EAAAuD,WAAA;IACTr6B,SAAW,EAAAm7B,aAAA;IACX53B,GAAK,EAAAgtC,OAAA;IACLlV,IAAK,EAAA,UAAA;IACL3U,QAAA;IAEAhmB,QAAA,EAAA,CAAC,eAAAO,GAAA,CAAAgvC,WAAA,EAAA;MAAYL,QAAQE,IAAK,CAAApoB,KAAA;MAAOvU,IAAG,KAAM;MAAA,SAAA,EAAQ;MAC/CzS,QACH,EAAAlT;IAAA,CAAA,CAAA,EAEA,eAAAyT,GAAA,CAACstC,WAAY,CAAArtC,QAAA,EAAZ;MAAqBxW,KAAA,EAAOy6B,YAC1B;MAAAzkB,QAAA,EAAAA,QAAA,IAAa,eAAAO,GAAA,CAAA8uC,SAAA,EAAA;QAAU9R,QAAqB;QAAAv9B;MAAA,CAAS;IACxD,CAAA,CAAA;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;","x_google_ignoreList":[1,2,3,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/core/_compat.ts","../node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/cjs/react-is.development.js","../node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/index.js","../src/core/constants.ts","../src/core/styles/helpers.ts","../src/core/styles/font/responsiveFont.ts","../src/core/styles/font/codeFontStyle.ts","../src/core/styles/font/headingFontStyle.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/styles/font/textAlignStyle.ts","../src/core/styles/font/textFontStyle.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../src/core/observers/resizeObserver.ts","../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useGlobalKeyDown.ts","../src/core/lib/globalScope.ts","../src/core/theme/themeContext.ts","../src/core/theme/themeProvider.tsx","../src/core/theme/useRootTheme.ts","../src/core/theme/themeColorProvider.tsx","../src/core/theme/useTheme.ts","../src/core/hooks/useMediaIndex/useMediaIndex.ts","../src/core/hooks/usePrefersDark.ts","../src/core/hooks/usePrefersReducedMotion.ts","../src/core/hooks/useIsomorphicEffect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/useCustomValidity.ts","../src/core/styles/border/borderStyle.ts","../src/core/styles/box/boxStyle.ts","../src/core/styles/flex/flexStyle.ts","../src/core/styles/flex/flexItemStyle.ts","../src/core/styles/focusRing/index.ts","../src/core/styles/grid/gridStyle.ts","../src/core/styles/grid/gridItemStyle.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/styles/margin/marginStyle.ts","../src/core/styles/padding/paddingStyle.ts","../src/core/styles/radius/radiusStyle.ts","../src/core/styles/shadow/shadowStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/helpers.ts","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/box/box.tsx","../src/core/primitives/text/styles.ts","../src/core/primitives/text/text.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/flex/flex.tsx","../src/core/primitives/spinner/spinner.tsx","../src/core/styles/card/_cardColorStyle.ts","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx","../src/core/primitives/card/styles.ts","../src/core/primitives/card/card.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/styles.ts","../src/core/primitives/code/code.tsx","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/primitives/grid/grid.tsx","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/styles.ts","../src/core/primitives/inline/inline.tsx","../src/core/primitives/kbd/kbd.tsx","../src/core/middleware/origin.ts","../src/core/utils/arrow/cmds.ts","../src/core/utils/arrow/arrow.tsx","../src/core/utils/boundaryElement/boundaryElementContext.ts","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/lib/isRecord.ts","../src/core/utils/boundaryElement/useBoundaryElement.ts","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/layer/getLayerContext.ts","../src/core/utils/layer/layerContext.ts","../src/core/utils/layer/useLayer.ts","../src/core/helpers/animation.ts","../src/core/helpers/element.ts","../src/core/helpers/focus.ts","../src/core/helpers/scroll.ts","../src/core/utils/layer/layerProvider.tsx","../src/core/utils/layer/layer.tsx","../src/core/utils/portal/portalContext.ts","../src/core/utils/portal/usePortal.ts","../src/core/utils/portal/portal.ts","../src/core/hooks/_internal/useUnique.ts","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/stack/styles.ts","../src/core/primitives/stack/stack.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/textInput/textInput.tsx","../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltip.tsx","../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.styles.ts","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/hotkeys/hotkeys.tsx","../src/core/components/menu/menuContext.ts","../src/core/components/menu/helpers.ts","../src/core/components/menu/useMenuController.ts","../src/core/components/menu/menu.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/menu/menuDivider.ts","../src/core/primitives/_selectable/style.ts","../src/core/primitives/_selectable/selectable.tsx","../src/core/components/menu/useMenu.ts","../src/core/components/menu/menuGroup.tsx","../src/core/components/menu/menuItem.tsx","../src/core/components/skeleton/styles.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n type ThemeBoxShadow,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type ThemeStyles,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n buildTheme,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n type ThemeColorButtonState,\n type ThemeColorCardState,\n type ThemeColorSelectableState,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n rgba as _rgba,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its 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';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its 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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n animate: Variant\n initial: Variant\n exit: Variant\n transition: Transition\n} = {\n initial: {opacity: 0.5, scale: 0.97},\n animate: {opacity: 1, scale: 1},\n exit: {opacity: 0, scale: 0.97},\n transition: {duration: 0.4, type: 'spring'},\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {Theme, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _fillCSSObject(keys: string[], value: string | number | CSSObject): CSSObject {\n return keys.reduce<CSSObject>((style, key) => {\n style[key] = value\n\n return style\n }, {})\n}\n\n/**\n * @public\n */\nexport function rem(pixelValue: number): string | 0 {\n if (pixelValue === 0) return 0\n\n return `${pixelValue / 16}rem`\n}\n\n/**\n * @internal\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n\n/**\n * @internal\n */\nexport function _getArrayProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveSpace(\n theme: Theme,\n props: string[],\n spaceIndexes: number[] = EMPTY_ARRAY,\n): CSSObject[] | null {\n if (!Array.isArray(spaceIndexes)) {\n throw new Error('the property must be array of numbers')\n }\n\n if (spaceIndexes.length === 0) {\n return null\n }\n\n const {media, space} = getTheme_v2(theme)\n\n return _responsive(media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight} = props\n const {font, media} = getTheme_v2(props.theme)\n const {family, sizes, weights} = font[fontKey]\n const fontWeight = ($weight && weights[$weight]) || weights.regular\n\n // @todo: make this configurable\n const defaultSize = sizes[2]\n\n const base: CSSObject = {\n position: 'relative',\n fontFamily: family,\n fontWeight,\n padding: '1px 0',\n margin: 0,\n\n '&:before': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '&:after': {\n content: '\"\"',\n display: 'block',\n height: 0,\n },\n\n '& > code, & > span': {\n display: 'block',\n },\n\n '&:not([hidden])': {\n display: 'block',\n },\n }\n\n // @TODO fix the real condition that is causing $size to be undefined sometimes\n if (!$size) {\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n if (!responsiveFont.warned) {\n // eslint-disable-next-line no-console\n console.warn('No size specified for responsive font', {fontKey, $size, props, base})\n // @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it\n responsiveFont.warned = true\n }\n\n return [base]\n }\n\n const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))\n\n return [base, ...resp]\n}\n\nexport function fontSize(size: ThemeFontSize): CSSObject {\n const {ascenderHeight, descenderHeight, fontSize, iconSize, letterSpacing, lineHeight} = size\n const negHeight = ascenderHeight + descenderHeight\n const capHeight = lineHeight - negHeight\n const iconOffset = (capHeight - iconSize) / 2\n const customIconSize = Math.floor((fontSize * 1.125) / 2) * 2 + 1\n const customIconOffset = (capHeight - customIconSize) / 2\n\n return {\n fontSize: rem(fontSize),\n lineHeight: `calc(${lineHeight} / ${fontSize})`,\n letterSpacing: rem(letterSpacing),\n transform: `translateY(${rem(descenderHeight)})`,\n\n '&:before': {\n marginTop: `calc(${rem(0 - negHeight)} - 1px)`,\n },\n\n '&:after': {\n marginBottom: '-1px',\n },\n\n '& svg:not([data-sanity-icon])': {\n fontSize: `calc(${customIconSize} / 16 * 1rem)`,\n margin: rem(customIconOffset),\n },\n\n '& [data-sanity-icon]': {\n fontSize: `calc(${iconSize} / 16 * 1rem)`,\n margin: rem(iconOffset),\n },\n }\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `code` font style.\n * @internal\n */\nexport function responsiveCodeFontStyle(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('code', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveTextAlignStyleProps} from './types'\n\n/**\n * Get responsive text align styles.\n * @internal\n */\nexport function responsiveTextAlignStyle(\n props: ResponsiveTextAlignStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check\n const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__],\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","import {Context, createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> = globalScope[key]\n","import {\n RootTheme,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n Theme,\n getScopedTheme,\n} from '@sanity/ui/theme'\nimport {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: rootTheme = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): React.ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n","import {Theme, Theme_v2, getTheme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import {useSyncExternalStore} from 'react'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\n}\n\nconst MEDIA_STORE_CACHE = new WeakMap<number[], _MediaStore>()\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index] - 1}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n\n let store = MEDIA_STORE_CACHE.get(media)\n\n if (!store) {\n store = _createMediaStore(media)\n MEDIA_STORE_CACHE.set(media, store)\n }\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-color-scheme: dark)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-reduced-motion: reduce)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * Returns true if motion should be reduced\n * @public\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nexport function responsiveBorderStyle(): Array<\n (props: ResponsiveBorderStyleProps & ThemeProps) => CSSObject[]\n> {\n return [border, borderTop, borderRight, borderBottom, borderLeft]\n}\n\nfunction border(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: borderStyle}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: borderStyle}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: borderStyle}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: borderStyle}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {card, media} = getTheme_v2(props.theme)\n const borderStyle = `${card.border?.width ?? 1}px solid var(--card-border-color)`\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: borderStyle}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {Property} from 'csstype'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBoxStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst BOX_SIZING: {[key: string]: Property.BoxSizing} = {\n content: 'content-box',\n border: 'border-box',\n}\n\nconst BOX_HEIGHT = {\n stretch: 'stretch',\n fill: '100%',\n}\n\nexport function boxStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveBoxStyle(): Array<\n (props: ResponsiveBoxStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveBoxSizingStyle,\n responsiveBoxHeightStyle,\n responsiveBoxOverflowStyle,\n responsiveBoxDisplayStyle,\n ]\n}\n\nfunction responsiveBoxDisplayStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'flex',\n },\n}\n\nexport function responsiveFlexStyle(): Array<\n CSSObject | ((props: ResponsiveFlexStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n BASE_STYLE,\n responsiveFlexAlignStyle,\n responsiveFlexGapStyle,\n responsiveFlexWrapStyle,\n responsiveFlexJustifyStyle,\n responsiveFlexDirectionStyle,\n ]\n}\n\nexport function responsiveFlexAlignStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nexport function responsiveFlexWrapStyle(props: ResponsiveFlexStyleProps & ThemeProps): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$wrap, (wrap) => {\n return {flexWrap: wrap}\n })\n}\n\nexport function responsiveFlexJustifyStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$justify, (justify) => {\n return {justifyContent: justify}\n })\n}\n\nexport function responsiveFlexDirectionStyle(\n props: ResponsiveFlexStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {ThemeFocusRing} from '@sanity/ui/theme'\n\nexport function focusRingBorderStyle(border: {color: string; width: number}): string {\n return `inset 0 0 0 ${border.width}px ${border.color}`\n}\n\nexport function focusRingStyle(opts: {\n base?: {bg: string}\n border?: {color: string; width: number}\n focusRing: ThemeFocusRing\n}): string {\n const {base, border, focusRing} = opts\n const focusRingOutsetWidth = focusRing.offset + focusRing.width\n const focusRingInsetWidth = 0 - focusRing.offset\n const bgColor = base ? base.bg : 'var(--card-bg-color)'\n\n return [\n focusRingInsetWidth > 0 && `inset 0 0 0 ${focusRingInsetWidth}px var(--card-focus-ring-color)`,\n border && focusRingBorderStyle(border),\n focusRingInsetWidth < 0 && `0 0 0 ${0 - focusRingInsetWidth}px ${bgColor}`,\n focusRingOutsetWidth > 0 && `0 0 0 ${focusRingOutsetWidth}px var(--card-focus-ring-color)`,\n ]\n .filter(Boolean)\n .join(',')\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridStyleProps} from './types'\n\nconst GRID_CSS = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n}\n\nconst GRID_AUTO_COLUMS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nconst GRID_AUTO_ROWS = {\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fr: 'minmax(0, 1fr)',\n}\n\nexport function responsiveGridStyle(): Array<\n CSSObject | ((props: ResponsiveGridStyleProps & ThemeProps) => CSSObject[])\n> {\n return [\n GRID_CSS,\n responsiveGridAutoFlowStyle,\n responsiveGridAutoRowsStyle,\n responsiveGridAutoColsStyle,\n responsiveGridColumnsStyle,\n responsiveGridRowsStyle,\n responsiveGridGapStyle,\n responsiveGridGapXStyle,\n responsiveGridGapYStyle,\n ]\n}\n\nfunction responsiveGridAutoFlowStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoRows, (autoRows) => ({\n gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows],\n }))\n}\n\nfunction responsiveGridAutoColsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$autoCols, (autoCols) => ({\n gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols],\n }))\n}\n\nfunction responsiveGridColumnsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columns, (columns) => ({\n gridTemplateColumns: columns && `repeat(${columns},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rows, (rows) => ({\n gridTemplateRows: rows && `repeat(${rows},minmax(0,1fr));`,\n }))\n}\n\nfunction responsiveGridGapStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gap, (gap) => ({\n gridGap: gap ? rem(space[gap]) : undefined,\n }))\n}\n\nfunction responsiveGridGapXStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapX, (gapX) => ({\n columnGap: gapX ? rem(space[gapX]) : undefined,\n }))\n}\n\nfunction responsiveGridGapYStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveGridItemStyleProps} from './types'\n\nexport function responsiveGridItemStyle(): Array<\n (props: ResponsiveGridItemStyleProps & ThemeProps) => CSSObject[]\n> {\n return [\n responsiveGridItemRowStyle,\n responsiveGridItemRowStartStyle,\n responsiveGridItemRowEndStyle,\n responsiveGridItemColumnStyle,\n responsiveGridItemColumnStartStyle,\n responsiveGridItemColumnEndStyle,\n ]\n}\n\nconst GRID_ITEM_ROW = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nconst GRID_ITEM_COLUMN = {\n auto: 'auto',\n full: '1 / -1',\n}\n\nfunction responsiveGridItemRowStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$row, (row) => {\n if (typeof row === 'number') {\n return {gridRow: `span ${row} / span ${row}`}\n }\n\n return {gridRow: GRID_ITEM_ROW[row]}\n })\n}\n\nfunction responsiveGridItemRowStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$column, (column) => {\n if (typeof column === 'number') {\n return {gridColumn: `span ${column} / span ${column}`}\n }\n\n return {gridColumn: GRID_ITEM_COLUMN[column]}\n })\n}\n\nfunction responsiveGridItemColumnStartStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconsStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {ThemeColorSchemeKey, ThemeFontWeightKey, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})};\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveMarginStyleProps} from './types'\n\nexport function responsiveMarginStyle(\n props: ResponsiveMarginStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['margin'], props.$margin),\n _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX),\n _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY),\n _getResponsiveSpace(theme, ['marginTop'], props.$marginTop),\n _getResponsiveSpace(theme, ['marginRight'], props.$marginRight),\n _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom),\n _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from '@sanity/ui/theme'\nimport {_getResponsiveSpace} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsivePaddingStyleProps} from './types'\n\nexport function responsivePaddingStyle(\n props: ResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[][] {\n const {theme} = props\n\n return [\n _getResponsiveSpace(theme, ['padding'], props.$padding),\n _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX),\n _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY),\n _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop),\n _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight),\n _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom),\n _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {media, radius} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$radius, (value) => {\n let borderRadius: string | 0 = 0\n\n if (typeof value === 'number') {\n borderRadius = rem(radius[value])\n }\n\n if (value === 'full') {\n borderRadius = '9999px'\n }\n\n return {borderRadius}\n })\n}\n","import {ThemeBoxShadow, ThemeShadow, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {EMPTY_RECORD} from '../../constants'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: ThemeBoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null, outlineWidth: number = 1): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(outlineWidth)} var(--card-shadow-outline-color)`\n const umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)')\n const penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)')\n const ambient = toBoxShadow(shadow.ambient, 'var(--card-shadow-ambient-color)')\n\n return {boxShadow: `${outline}, ${umbra}, ${penumbra}, ${ambient}`}\n}\n\nexport function responsiveShadowStyle(props: ResponsiveShadowStyleProps & ThemeProps): CSSObject[] {\n const {card, media, shadow} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$shadow, (index) =>\n shadowStyle(shadow[index], card.shadow.outline),\n )\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <Root\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n image: avatarImageStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n backgroundColor: 'var(--avatar-bg-color)',\n position: 'relative',\n boxSizing: 'border-box',\n userSelect: 'none',\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n WebkitFontSmoothing: 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n\nexport function avatarImageStyle(): CSSObject {\n return {\n position: 'relative',\n }\n}\n\nexport function avatarInitialsStyle(): CSSObject {\n return {\n width: '100%',\n height: '100%',\n color: 'var(--avatar-fg-color)',\n alignItems: 'center',\n justifyContent: 'center',\n textTransform: 'uppercase',\n textAlign: 'center',\n borderRadius: '50%',\n\n '&:not([hidden])': {\n display: 'flex',\n },\n }\n}\n\nfunction avatarBgStrokeStyle(): CSSObject {\n return {\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n }\n}\n\nfunction avatarStrokeStyle(): CSSObject {\n return {\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Label} from '../label'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\nconst Root = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarStyle.root,\n)\n\nconst Arrow = styled.div(avatarStyle.arrow)\n\nconst BgStroke = styled.ellipse(avatarStyle.bgStroke)\n\nconst Stroke = styled.ellipse(avatarStyle.stroke)\n\nconst Initials = styled.div(avatarStyle.initials)\n\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nconst Image = styled.svg(avatarStyle.image)\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: AvatarProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <Arrow>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </Arrow>\n\n {!imageFailed && src && (\n <Image viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image\n href={src}\n width=\"1\"\n height=\"1\"\n // eslint-disable-next-line react/no-unknown-property\n onError={handleImageError}\n />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </Image>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <InitialsLabel forwardedAs=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </InitialsLabel>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Label} from '../label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 1} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode,\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string',\n ) as Array<React.ReactElement | string>\n}\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle, avatarStackStyle)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string',\n ) as React.ReactElement[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <Root\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n color: var(--card-fg-color);\n\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ${font.text.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {CSSObject} from '@sanity/ui/theme'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n backgroundColor: 'var(--card-bg-color)',\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: BadgeProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {\n children,\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 'full',\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {ThemeColorState_v2, ThemeColorCard_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n */\nexport function _cardColorStyle(\n base: ThemeColorCard_v2,\n color: ThemeColorState_v2,\n checkered = false,\n): CSSObject {\n return {\n // from base\n\n '--card-backdrop-color': base.backdrop,\n\n '--card-focus-ring-color': base.focusRing,\n\n '--card-shadow-outline-color': base.shadow.outline,\n '--card-shadow-umbra-color': base.shadow.umbra,\n '--card-shadow-penumbra-color': base.shadow.penumbra,\n '--card-shadow-ambient-color': base.shadow.ambient,\n\n // from state\n\n '--card-accent-fg-color': color.accent.fg,\n\n '--card-avatar-gray-bg-color': color.avatar.gray.bg,\n '--card-avatar-gray-fg-color': color.avatar.gray.fg,\n '--card-avatar-blue-bg-color': color.avatar.blue.bg,\n '--card-avatar-blue-fg-color': color.avatar.blue.fg,\n '--card-avatar-purple-bg-color': color.avatar.purple.bg,\n '--card-avatar-purple-fg-color': color.avatar.purple.fg,\n '--card-avatar-magenta-bg-color': color.avatar.magenta.bg,\n '--card-avatar-magenta-fg-color': color.avatar.magenta.fg,\n '--card-avatar-red-bg-color': color.avatar.red.bg,\n '--card-avatar-red-fg-color': color.avatar.red.fg,\n '--card-avatar-orange-bg-color': color.avatar.orange.bg,\n '--card-avatar-orange-fg-color': color.avatar.orange.fg,\n '--card-avatar-yellow-bg-color': color.avatar.yellow.bg,\n '--card-avatar-yellow-fg-color': color.avatar.yellow.fg,\n '--card-avatar-green-bg-color': color.avatar.green.bg,\n '--card-avatar-green-fg-color': color.avatar.green.fg,\n '--card-avatar-cyan-bg-color': color.avatar.cyan.bg,\n '--card-avatar-cyan-fg-color': color.avatar.cyan.fg,\n\n '--card-bg-color': color.bg,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.muted.bg} 0% 50%)`\n : undefined,\n\n '--card-border-color': color.border,\n\n '--card-badge-default-bg-color': color.badge.default.bg,\n '--card-badge-default-dot-color': color.badge.default.dot,\n '--card-badge-default-fg-color': color.badge.default.fg,\n '--card-badge-default-icon-color': color.badge.default.icon,\n '--card-badge-primary-bg-color': color.badge.primary.bg,\n '--card-badge-primary-dot-color': color.badge.primary.dot,\n '--card-badge-primary-fg-color': color.badge.primary.fg,\n '--card-badge-primary-icon-color': color.badge.primary.icon,\n '--card-badge-positive-bg-color': color.badge.positive.bg,\n '--card-badge-positive-dot-color': color.badge.positive.dot,\n '--card-badge-positive-fg-color': color.badge.positive.fg,\n '--card-badge-positive-icon-color': color.badge.positive.icon,\n '--card-badge-caution-bg-color': color.badge.caution.bg,\n '--card-badge-caution-dot-color': color.badge.caution.dot,\n '--card-badge-caution-fg-color': color.badge.caution.fg,\n '--card-badge-caution-icon-color': color.badge.caution.icon,\n '--card-badge-critical-bg-color': color.badge.critical.bg,\n '--card-badge-critical-dot-color': color.badge.critical.dot,\n '--card-badge-critical-fg-color': color.badge.critical.fg,\n '--card-badge-critical-icon-color': color.badge.critical.icon,\n\n '--card-code-bg-color': color.code.bg,\n '--card-code-fg-color': color.code.fg,\n\n '--card-fg-color': color.fg,\n\n '--card-icon-color': color.icon,\n\n '--card-kbd-bg-color': color.kbd.bg,\n '--card-kbd-border-color': color.kbd.border,\n '--card-kbd-fg-color': color.kbd.fg,\n\n '--card-link-fg-color': color.link.fg,\n\n '--card-muted-bg-color': color.muted.bg,\n '--card-muted-fg-color': color.muted.fg,\n\n '--card-skeleton-color-from': color.skeleton.from,\n '--card-skeleton-color-to': color.skeleton.to,\n\n // deprecated variables (kept for legacy)\n\n '--card-bg2-color': color.muted.bg,\n '--card-link-color': color.link.fg,\n '--card-hairline-soft-color': color.border,\n '--card-hairline-hard-color': color.border,\n }\n}\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${$width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `}\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'ghost',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <Root\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box flex={iconRight ? 1 : undefined}>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {CardStyleProps} from './types'\n\nexport function cardStyle(\n props: CardStyleProps & ThemeProps,\n): Array<ReturnType<typeof css> | (() => ReturnType<typeof css>)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n ${$checkered &&\n css`\n background-size: ${space[3]}px ${space[3]}px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n `}\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n `\n}\n\nexport function cardColorStyle(props: CardStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$checkered, $focusRing} = props\n const {card, color, style} = getTheme_v2(props.theme)\n const border = {width: card.border.width, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${color._dark ? 'dark' : 'light'};\n\n ${_cardColorStyle(color, color, $checkered)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ${_cardColorStyle(color, color.selectable.default.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, color.selectable.default.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, color.selectable.default.hovered, $checkered)}\n }\n\n &:active {\n ${_cardColorStyle(color, color.selectable.default.pressed, $checkered)}\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base: color, border, focusRing: card.focusRing})\n : undefined};\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // todo: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const {\n color: {syntax: color},\n } = getTheme_v2(theme)\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${$accent &&\n css`\n color: var(--card-accent-fg-color);\n `}\n\n ${$muted &&\n css`\n color: var(--card-muted-fg-color);\n `}\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {TextAlign} from '../../types'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => {\n const _space = rem(spaceIndex === 0.5 ? space[1] / 2 : space[spaceIndex])\n\n return {\n margin: `-${_space} 0 0 -${_space}`,\n '& > div': {padding: `${_space} 0 0 ${_space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst Root = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: KBDProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {children, fontSize = 0, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n </Root>\n )\n})\n","import {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {ForwardedRef, HTMLProps, ReactElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useTheme_v2} from '../../theme'\nimport {Point, compileCommands, getRoundedCommands} from './cmds'\n\nconst Root = styled.div<{$w: number}>(\n ({$w: w}) => css`\n position: absolute;\n width: ${w}px;\n height: ${w}px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ${w / 2}px ${w / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${w}px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -${w}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${w}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${w}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n `,\n)\n\nconst StrokePath = styled.path`\n stroke: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: {width: number; height: number; radius?: number} & Omit<\n HTMLProps<HTMLDivElement>,\n 'width' | 'height'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\n\n const center = w / 2\n\n const points: Point[] = [\n {\n x: 0,\n y: 0,\n },\n {\n x: radius,\n y: 0,\n radius,\n },\n {\n x: center,\n y: h - 1,\n radius,\n },\n {\n x: w - radius,\n y: 0,\n radius,\n },\n {\n x: w,\n y: 0,\n },\n ]\n\n const cmds = getRoundedCommands(points)\n const path = compileCommands(cmds)\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Root {...restProps} $w={w} ref={ref}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <StrokePath d={strokePath} mask=\"url(#stroke-mask)\" strokeWidth={strokeWidth * 2} />\n <ShapePath d={fillPath} />\n </svg>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","/**\n * @internal\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: (children: React.ReactNode) => React.ReactNode\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} from '../../hooks'\nimport {useTheme_v2} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media = theme.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef],\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {Context, createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const forwardedRef = useForwardedRef(ref)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = forwardedRef.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [forwardedRef, isTopLayer, onFocus],\n )\n\n return (\n <Root\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={forwardedRef}\n style={{...style, zIndex}}\n >\n {children}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/element')\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\nconst __BROWSER__ = typeof document !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme_v2} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\n const forwardedRef = useForwardedRef(ref)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n bottom: ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n left: ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n right: ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {Elements, Middleware, detectOverflow} from '@floating-ui/react-dom'\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n ...style,\n }),\n [originX, originY, strategy, style, width, x, y, zIndex],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n <Flex data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nPopoverCard.displayName = 'PopoverCard'\n","import {\n Middleware,\n RootBoundary,\n arrow,\n autoUpdate,\n flip,\n hide,\n offset,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport {useForwardedRef, useArrayProp, useElementSize, useMediaIndex} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {\n ConditionalWrapper,\n LayerProps,\n LayerProvider,\n Portal,\n useBoundaryElement,\n} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = forwardedRef.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, forwardedRef, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidthRef.current : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n return (\n <>\n {/* the popover */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {open && (\n <ConditionalWrapper\n condition={!!portal}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {children}\n </Portal>\n )}\n >\n {popover}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Popover'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n `\n}\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {ThemeFontSize, getTheme_v2} from '@sanity/ui/theme'\nimport {CSSObject} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {\n focusRingBorderStyle,\n focusRingStyle,\n responsiveInputPaddingIconRightStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n} from '../../styles/internal'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: rem(size.lineHeight)}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 2,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {media, space} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): ReturnType<typeof css> {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): ReturnType<typeof css> {\n // Visually hide the input element while keeping it interactive\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n `\n}\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </Root>\n )\n})\n","import {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst Root = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon,\n iconRight,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n icon,\n iconRight,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <Root data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </Root>\n )\n})\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n top: ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n bottom: ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n left: ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n right: ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {MotionProps, motion} from 'framer-motion'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Radius} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion(Card))``\n\n/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n ...style,\n }),\n [originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n {...(animate ? POPOVER_MOTION_PROPS : {})}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'TooltipCard'\n","import {createContext} from 'react'\nimport {globalScope} from '../../../lib/globalScope'\nimport {TooltipDelayGroupContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tooltipDelayGroup')\n\nglobalScope[key] = globalScope[key] || createContext<TooltipDelayGroupContextValue | null>(null)\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: React.Context<TooltipDelayGroupContextValue | null> =\n globalScope[key]\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n} from '@floating-ui/react-dom'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n ForwardedRef,\n useId,\n} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport {useTheme_v2} from '../../theme'\nimport {Placement} from '../../types'\nimport {\n ConditionalWrapper,\n Layer,\n LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} from '../../utils'\nimport {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst Root = styled(Layer)<{$maxWidth: number}>`\n pointer-events: none;\n max-width: ${({$maxWidth}) => $maxWidth}px;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate = false,\n arrow: arrowProp = false,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const tooltipWidth = useMemo(() => {\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n return Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2\n }, [boundaryElement, portalElement?.offsetWidth])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [showTooltip, referenceElement, handleIsOpenChange])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReference,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n setReference,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={floatingStyles}\n zOffset={zOffset}\n $maxWidth={tooltipWidth}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </Root>\n )\n\n return (\n <>\n {/* the tooltip */}\n <ConditionalWrapper\n condition={animate}\n wrapper={(children) => <AnimatePresence>{children}</AnimatePresence>}\n >\n {showTooltip && (\n <ConditionalWrapper\n condition={!!portalProp}\n wrapper={(children) => (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {children}\n </Portal>\n )}\n >\n {tooltip}\n </ConditionalWrapper>\n )}\n </ConditionalWrapper>\n\n {/* the referred element */}\n {child}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children],\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {CSSObject, getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n '&:not([hidden])': {\n display: 'flex',\n },\n\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n background: color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n\n/**\n * @internal\n */\nexport interface AnimationDialogStyleProps {\n animate: boolean\n}\n\nexport function animationDialogStyle(props: AnimationDialogStyleProps): ReturnType<typeof css> {\n if (!props.animate) return css``\n\n return css`\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n `\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {useTheme_v2} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\n animationDialogStyle,\n AnimationDialogStyleProps,\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst Root = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps & AnimationDialogStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle, animationDialogStyle)\n\nconst DialogContainer = styled(Container)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`\n\nconst DialogCardRoot = styled(Card)`\n &:not([hidden]) {\n display: flex;\n }\n width: 100%;\n min-height: 0;\n max-height: 100%;\n overflow: hidden;\n overflow: clip;\n`\n\nconst DialogLayout = styled(Flex)`\n flex: 1;\n min-height: 0;\n width: 100%;\n`\n\nconst DialogHeader = styled(Box)`\n position: relative;\n z-index: 2;\n`\n\nconst DialogContent = styled(Box)`\n position: relative;\n z-index: 1;\n overflow: auto;\n outline: none;\n`\n\nconst DialogFooter = styled(Box)`\n position: relative;\n z-index: 3;\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutside(\n useCallback(\n (event: MouseEvent) => {\n if (!isTopLayer || !onClickOutside) return\n\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n },\n [boundaryElement, isTopLayer, onClickOutside, portalElement],\n ),\n [rootElement],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex align=\"center\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport const Dialog = forwardRef(function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || layer.dialog.zOffset,\n animate = false,\n ...restProps\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n animate={animate}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n font: inherit;\n padding: 1px;\n\n &:not([hidden]) {\n display: block;\n }\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: HotkeysProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'ref' | 'size'>,\n ref: React.Ref<HTMLElement>,\n) {\n const {fontSize, keys, padding, radius, space: spaceProp = 0.5, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElement, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElement?.focus()\n }, [setActiveIndex, rootElement])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\n if (_activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside],\n ),\n [rootElement],\n )\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Root>\n </MenuContext.Provider>\n )\n})\n","import {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: PointerEvent) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref],\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n onMouseDown: handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open, setButtonRef],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n","import styled from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\nimport {SelectableTone} from '../../types'\n\n/**\n * @internal\n */\nexport interface SelectableStyleProps {\n $tone: SelectableTone\n}\n\nexport function selectableBaseStyle(): ReturnType<typeof css> {\n return css`\n background-color: inherit;\n color: inherit;\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n\nexport function selectableColorStyle(\n props: SelectableStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$tone} = props\n const {color, style} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n ${_cardColorStyle(color, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n outline: none;\n\n /* &:is(button) */\n &[data-as='button'] {\n &:disabled {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_cardColorStyle(color, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n &[data-selected] {\n ${_cardColorStyle(color, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n &:active {\n ${_cardColorStyle(color, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${style?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) onItemClick()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon,\n iconRight,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const hotkeysFontSize = useArrayProp(fontSize).map((s) => s - 1)\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref],\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys\n fontSize={hotkeysFontSize}\n keys={hotkeys}\n style={{marginTop: -4, marginBottom: -4}}\n />\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {ThemeFontKey, getTheme_v2} from '@sanity/ui/theme'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps, _responsive} from '../../styles'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n id: string\n icon?: React.ElementType | React.ReactNode\n focused?: boolean\n fontSize?: number | number[]\n label?: React.ReactNode\n padding?: number | number[]\n selected?: boolean\n tone?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {ThemeColorToneKey} from '@sanity/ui/theme'\nimport styled from 'styled-components'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n}\n\nconst STATUS_CARD_TONE: {[key: string]: ThemeColorToneKey} = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'primary',\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n}\n\nconst Root = styled(Card)`\n pointer-events: all;\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title'>,\n): React.ReactElement {\n const {closable, description, onClose, radius = 3, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n return (\n <Root\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n marginTop={3}\n radius={radius}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <Text muted size={1}>\n {description}\n </Text>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {useEffect, useReducer} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n // Use useReducer instead of useState as it's more low-level and creates the least amount of functions for the garbage collector to clean up\n const [mounted, mount] = useReducer(() => true, false)\n\n useEffect(mount, [mount])\n\n return mounted\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState, startTransition} from 'react'\nimport styled from 'styled-components'\nimport {useMounted} from '../../hooks/useMounted'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n const mounted = useMounted()\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n animate={{opacity: 1, y: 0, scale: 1}}\n exit={{opacity: 0, scale: 0.5, transition: {duration: 0.2}}}\n initial={{opacity: 0, y: 32, scale: 0.25}}\n key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\n\nTree.displayName = 'Tree'\n","import {getTheme_v2} from '@sanity/ui/theme'\nimport {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_cardColorStyle} from '../../styles/card'\n\nexport function treeItemRootStyle(): ReturnType<typeof css> {\n return css`\n &[role='none'] > [role='treeitem'] {\n outline: none;\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n\n &:focus {\n position: relative;\n }\n }\n\n &[role='treeitem'] {\n outline: none;\n\n & > div {\n cursor: default;\n border-radius: 3px;\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","process","env","NODE_ENV","REACT_ELEMENT_TYPE","Symbol","for","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_SERVER_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","$$typeof","getModuleId","undefined","typeOf","object","$$typeofType","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","SuspenseList","hasWarnedAboutDeprecatedIsAsyncMode","hasWarnedAboutDeprecatedIsConcurrentMode","isAsyncMode","console","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isSuspenseList","reactIs_development","b","c","d","e","f","g","h","k","l","m","n","p","q","t","u","v","a","r","reactIs_production_min","reactIsModule","exports","require$$1","require$$0","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","initial","opacity","scale","animate","exit","transition","duration","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","concat","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","arguments","length","Error","space","getTheme_v2","spaceIndex","responsiveFont","fontKey","$size","$weight","font","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","scope","ownerDocument","defaultView","isReplacedElement","tagName","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size$1","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process$1","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_ref","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","getGlobalScope","globalThis","self","globalScope","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","rootTheme","tone","themeContext","version","getScopedTheme","jsx","Provider","StyledThemeProvider","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","MEDIA_STORE_CACHE","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","matchMedia","getSnapshot","matches","onStoreChange","disposeFns","handleChange","disposeFn","getServerSnapshot","getServerSnapshot$2","useMediaIndex","store","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","getMatchMedia$1","getSnapshot$1","getServerSnapshot$1","usePrefersDark","usePrefersReducedMotion","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","responsiveBorderStyle","card","borderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","color","focusRingStyle","opts","focusRing","focusRingOutsetWidth","offset","focusRingInsetWidth","bgColor","bg","join","GRID_CSS","GRID_AUTO_COLUMS","auto","min","max","fr","GRID_AUTO_ROWS","responsiveGridStyle","responsiveGridAutoFlowStyle","responsiveGridAutoRowsStyle","responsiveGridAutoColsStyle","responsiveGridColumnsStyle","responsiveGridRowsStyle","responsiveGridGapStyle","responsiveGridGapXStyle","responsiveGridGapYStyle","$autoFlow","autoFlow","gridAutoFlow","$autoRows","autoRows","gridAutoRows","$autoCols","autoCols","gridAutoColumns","$columns","columns","gridTemplateColumns","$rows","rows","gridTemplateRows","gridGap","$gapX","gapX","columnGap","$gapY","gapY","rowGap","responsiveGridItemStyle","responsiveGridItemRowStyle","responsiveGridItemRowStartStyle","responsiveGridItemRowEndStyle","responsiveGridItemColumnStyle","responsiveGridItemColumnStartStyle","responsiveGridItemColumnEndStyle","GRID_ITEM_ROW","full","GRID_ITEM_COLUMN","$row","row","gridRow","$rowStart","rowStart","gridRowStart","$rowEnd","rowEnd","gridRowEnd","$column","column","gridColumn","$columnStart","columnStart","gridColumnStart","$columnEnd","columnEnd","gridColumnEnd","responsiveInputPaddingStyle","$fontSize","$iconLeft","$iconRight","$padding","$space","len","_padding","_space","_fontSize","_","text","emSize","s","styles","responsiveInputPaddingIconRightStyle","_c","ROOT_STYLE","css","__template","textInputRootStyle","textInputBaseStyle","$scheme","$tone","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","hovered","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","radius","$radius","borderRadius","toBoxShadow","shadow","shadowStyle","outlineWidth","outline","umbra","penumbra","ambient","boxShadow","responsiveShadowStyle","$shadow","labelBaseStyle","$accent","$muted","code","Root","styled","div","SpanWithTextOverflow","span","Label","forwardRef","accent","childrenProp","muted","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","image","avatarImageStyle","zIndex","$color","avatar","backgroundColor","userSelect","WebkitFontSmoothing","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","InitialsLabel","Image","Avatar","__unstable_hideInnerStroke","as","asProp","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","id","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","forwardedAs","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","childrenToElementArray","childrenArray","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","distance","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","textBaseStyle","bold","Text","badgeStyle","cursor","verticalAlign","Badge","mode","_deprecated_mode","Flex","rotate","keyframes","Spinner","SpinnerIcon","_cardColorStyle","checkered","backdrop","gray","blue","purple","magenta","red","orange","yellow","green","cyan","badge","dot","icon","primary","positive","caution","critical","kbd","link","skeleton","from","to","buttonBaseStyles","$width","button","combineBoxShadow","_len","boxShadows","_key","buttonColorStyles","$mode","baseColor","defaultBoxShadow","pressed","LoadingBox","Button","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","selected","spaceProp","boxProps","isValidElement","createElement","textWeight","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","_dark","selectable","Card","__unstable_checkered","__unstable_focusRing","toneProp","checkboxBaseStyles","inputElementStyles","checkbox","Input","Checkbox","forwardedRef","checked","className","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","_ref2","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","comment","constant","deleted","doctype","entity","function","hexcode","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","container","maxWidth","Container","Grid","headingBaseStyle","Heading","inlineBaseStyle","inlineSpaceStyle","Inline","kbdStyle","KBD","origin","fn","_ref3","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","shiftY","isVerticalPlacement","originX","originY","clamp","data","num","moveTowardsLength","movingPoint","targetPoint","amount","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","_ref4","$w","w","StrokePath","path","ShapePath","center","strokePath","fillPath","mask","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","_ref5","condition","wrapper","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","__publicField","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","state","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","parentLevel","level","maxMediaIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","becameTopLayer","handleFocus","rootElement","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","handleScroll2","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","PopoverCard","memo","PopoverCard2","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","strategy","xProp","yProp","rootStyle","arrowStyle","displayName","Popover","Popover2","_d","_e","_f","_g","_h","_j","layer","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_ref6","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","AnimatePresence","radioBaseStyle","inputElementStyle","dist","radio","markSize","Radio","inputBaseStyle","inputColorStyle","select","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","ChevronDownIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switch","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","transitionDurationMs","transitionTimingFunction","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","__unstable_disableFocusRing","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","useDelayedState","initialState","setState","delayedAction","onStateChange","delay","action","clearTimeout","setTimeout","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","TooltipCard2","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","_ref7","$maxWidth","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipWidth","availableWidths","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","minimumGroupDeactivateDelay","groupDeactivateDelay","standaloneDelay","handleBlur","onBlur","handleClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowMouseMove","isHoveringReference","handleWindowKeyDown","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","_ref8","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","handleRootKeyDown","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","openButtonBoxPadding","openButtonPadding","openButtonProps","handleOpenClick","openButtonNode","inputValue","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","_ref9","background","responsiveDialogPositionStyle","$position","animationDialogStyle","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","setRootElement","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","hotkeysFontSize","keyframe","animation","skeletonStyle","_ref10","$visible","_ref11","$animated","Skeleton","animated","visible","setVisible","$style","fontStyle","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","label","elementRef","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","TextBox","Toast","closable","description","cardTone","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","startTransition","dismiss","timeoutId","prevState","findIndex","toasts","_ref12","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","_findNextItemElement","_focusItemElement","TreeContext","Tree","Tree2","setFocusedElement","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":";;;;;;;;;AAiNO,MAAMA,gBAAmB,GAAAC,kBAAA;AAMzB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,UAAa,GAAAC,YAAA;AAMnB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,QAAW,GAAAC,UAAA;AAMjB,MAAMC,IAAO,GAAAC,MAAA;AAMb,MAAMC,MAAS,GAAAC,QAAA;AAMf,MAAMC,cAAcC,UAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;EC3PtC,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,CAAC,YAAW;MAGd;MACA;MACA;MACA;MACA,IAAIC,kBAAkB,GAAGC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;MACpD,IAAIC,iBAAiB,GAAGF,MAAM,CAACC,GAAG,CAAC,cAAc,CAAC;MAClD,IAAIE,mBAAmB,GAAGH,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIG,sBAAsB,GAAGJ,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;MAC5D,IAAII,mBAAmB,GAAGL,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIK,mBAAmB,GAAGN,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIM,kBAAkB,GAAGP,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;MACpD,IAAIO,yBAAyB,GAAGR,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;MAClE,IAAIQ,sBAAsB,GAAGT,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;MAC5D,IAAIS,mBAAmB,GAAGV,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACtD,IAAIU,wBAAwB,GAAGX,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;MAChE,IAAIW,eAAe,GAAGZ,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;MAC9C,IAAIY,eAAe,GAAGb,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;MAC9C,IAAIa,oBAAoB,GAAGd,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;;MAExD;;MAEA,IAAIc,cAAc,GAAG,KAAK,CAAC,CAAA;MAC3B,IAAIC,kBAAkB,GAAG,KAAK;MAC9B,IAAIC,uBAAuB,GAAG,KAAK,CAAC,CAAA;;MAEpC,IAAIC,kBAAkB,GAAG,KAAK,CAAC,CAAA;MAC/B;MACA;;MAEA,IAAIC,kBAAkB,GAAG,KAAK,CAAC,CAAA;;MAE/B,IAAIC,sBAAsB;MAE1B;QACEA,sBAAsB,GAAGpB,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;MAC9D;MAED,SAASoB,kBAAkBA,CAACC,IAAI,EAAE;QAChC,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;UAC1D,OAAO,IAAI;QACZ,CAAA,CAAA;;QAGD,IAAIA,IAAI,KAAKnB,mBAAmB,IAAImB,IAAI,KAAKjB,mBAAmB,IAAIc,kBAAkB,IAAKG,IAAI,KAAKlB,sBAAsB,IAAIkB,IAAI,KAAKZ,mBAAmB,IAAIY,IAAI,KAAKX,wBAAwB,IAAIO,kBAAkB,IAAKI,IAAI,KAAKR,oBAAoB,IAAIC,cAAc,IAAKC,kBAAkB,IAAKC,uBAAuB,EAAG;UAC7T,OAAO,IAAI;QACZ;QAED,IAAI,OAAOK,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;UAC7C,IAAIA,IAAI,CAACC,QAAQ,KAAKV,eAAe,IAAIS,IAAI,CAACC,QAAQ,KAAKX,eAAe,IAAIU,IAAI,CAACC,QAAQ,KAAKjB,mBAAmB,IAAIgB,IAAI,CAACC,QAAQ,KAAKhB,kBAAkB,IAAIe,IAAI,CAACC,QAAQ,KAAKd,sBAAsB;UAAA;UAC3M;UACA;UACA;UACIa,IAAI,CAACC,QAAQ,KAAKH,sBAAsB,IAAIE,IAAI,CAACE,WAAW,KAAKC,SAAS,EAAE;YAC1E,OAAO,IAAI;UACZ;QACF;QAED,OAAO,KAAK;MACb;MAED,SAASC,MAAMA,CAACC,MAAM,EAAE;QACtB,IAAI,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;UACjD,IAAIJ,QAAQ,GAAGI,MAAM,CAACJ,QAAQ;UAE9B,QAAQA,QAAQ;YACd,KAAKxB,kBAAkB;cACrB,IAAIuB,IAAI,GAAGK,MAAM,CAACL,IAAI;cAEtB,QAAQA,IAAI;gBACV,KAAKnB,mBAAmB;gBACxB,KAAKE,mBAAmB;gBACxB,KAAKD,sBAAsB;gBAC3B,KAAKM,mBAAmB;gBACxB,KAAKC,wBAAwB;kBAC3B,OAAOW,IAAI;gBAEb;kBACE,IAAIM,YAAY,GAAGN,IAAI,IAAIA,IAAI,CAACC,QAAQ;kBAExC,QAAQK,YAAY;oBAClB,KAAKpB,yBAAyB;oBAC9B,KAAKD,kBAAkB;oBACvB,KAAKE,sBAAsB;oBAC3B,KAAKI,eAAe;oBACpB,KAAKD,eAAe;oBACpB,KAAKN,mBAAmB;sBACtB,OAAOsB,YAAY;oBAErB;sBACE,OAAOL,QAAQ;kBAClB;cAEJ;YAEH,KAAKrB,iBAAiB;cACpB,OAAOqB,QAAQ;UAClB;QACF;QAED,OAAOE,SAAS;MACjB;MACD,IAAII,eAAe,GAAGtB,kBAAkB;MACxC,IAAIuB,eAAe,GAAGxB,mBAAmB;MACzC,IAAIyB,OAAO,GAAGhC,kBAAkB;MAChC,IAAIiC,UAAU,GAAGvB,sBAAsB;MACvC,IAAIwB,QAAQ,GAAG9B,mBAAmB;MAClC,IAAI+B,IAAI,GAAGrB,eAAe;MAC1B,IAAIsB,IAAI,GAAGvB,eAAe;MAC1B,IAAIwB,MAAM,GAAGlC,iBAAiB;MAC9B,IAAImC,QAAQ,GAAGhC,mBAAmB;MAClC,IAAIiC,UAAU,GAAGlC,sBAAsB;MACvC,IAAImC,QAAQ,GAAG7B,mBAAmB;MAClC,IAAI8B,YAAY,GAAG7B,wBAAwB;MAC3C,IAAI8B,mCAAmC,GAAG,KAAK;MAC/C,IAAIC,wCAAwC,GAAG,KAAK,CAAC,CAAA;;MAErD,SAASC,WAAWA,CAAChB,MAAM,EAAE;QAC3B;UACE,IAAI,CAACc,mCAAmC,EAAE;YACxCA,mCAAmC,GAAG,IAAI,CAAC,CAAA;;YAE3CG,OAAO,CAAC,MAAM,CAAC,CAAC,uDAAuD,GAAG,mCAAmC,CAAC;UAC/G;QACF;QAED,OAAO,KAAK;MACb;MACD,SAASC,gBAAgBA,CAAClB,MAAM,EAAE;QAChC;UACE,IAAI,CAACe,wCAAwC,EAAE;YAC7CA,wCAAwC,GAAG,IAAI,CAAC,CAAA;;YAEhDE,OAAO,CAAC,MAAM,CAAC,CAAC,4DAA4D,GAAG,mCAAmC,CAAC;UACpH;QACF;QAED,OAAO,KAAK;MACb;MACD,SAASE,iBAAiBA,CAACnB,MAAM,EAAE;QACjC,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKpB,kBAAkB;MAC7C;MACD,SAASwC,iBAAiBA,CAACpB,MAAM,EAAE;QACjC,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKrB,mBAAmB;MAC9C;MACD,SAAS0C,SAASA,CAACrB,MAAM,EAAE;QACzB,OAAO,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,IAAIA,MAAM,CAACJ,QAAQ,KAAKxB,kBAAkB;MAC/F;MACD,SAASkD,YAAYA,CAACtB,MAAM,EAAE;QAC5B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKlB,sBAAsB;MACjD;MACD,SAASyC,UAAUA,CAACvB,MAAM,EAAE;QAC1B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKxB,mBAAmB;MAC9C;MACD,SAASgD,MAAMA,CAACxB,MAAM,EAAE;QACtB,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKd,eAAe;MAC1C;MACD,SAASuC,MAAMA,CAACzB,MAAM,EAAE;QACtB,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKf,eAAe;MAC1C;MACD,SAASyC,QAAQA,CAAC1B,MAAM,EAAE;QACxB,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKzB,iBAAiB;MAC5C;MACD,SAASoD,UAAUA,CAAC3B,MAAM,EAAE;QAC1B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKtB,mBAAmB;MAC9C;MACD,SAASkD,YAAYA,CAAC5B,MAAM,EAAE;QAC5B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKvB,sBAAsB;MACjD;MACD,SAASoD,UAAUA,CAAC7B,MAAM,EAAE;QAC1B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKjB,mBAAmB;MAC9C;MACD,SAAS+C,cAAcA,CAAC9B,MAAM,EAAE;QAC9B,OAAOD,MAAM,CAACC,MAAM,CAAC,KAAKhB,wBAAwB;MACnD;MAEsB+C,mBAAA,CAAA7B,eAAA,GAAGA,eAAe;MAClB6B,mBAAA,CAAA5B,eAAA,GAAGA,eAAe;MAC1B4B,mBAAA,CAAA3B,OAAA,GAAGA,OAAO;MACP2B,mBAAA,CAAA1B,UAAA,GAAGA,UAAU;MACf0B,mBAAA,CAAAzB,QAAA,GAAGA,QAAQ;MACfyB,mBAAA,CAAAxB,IAAA,GAAGA,IAAI;MACPwB,mBAAA,CAAAvB,IAAA,GAAGA,IAAI;MACLuB,mBAAA,CAAAtB,MAAA,GAAGA,MAAM;MACPsB,mBAAA,CAAArB,QAAA,GAAGA,QAAQ;MACTqB,mBAAA,CAAApB,UAAA,GAAGA,UAAU;MACfoB,mBAAA,CAAAnB,QAAA,GAAGA,QAAQ;MACPmB,mBAAA,CAAAlB,YAAA,GAAGA,YAAY;MAChBkB,mBAAA,CAAAf,WAAA,GAAGA,WAAW;MACTe,mBAAA,CAAAb,gBAAA,GAAGA,gBAAgB;MAClBa,mBAAA,CAAAZ,iBAAA,GAAGA,iBAAiB;MACpBY,mBAAA,CAAAX,iBAAA,GAAGA,iBAAiB;MAC5BW,mBAAA,CAAAV,SAAA,GAAGA,SAAS;MACTU,mBAAA,CAAAT,YAAA,GAAGA,YAAY;MACjBS,mBAAA,CAAAR,UAAA,GAAGA,UAAU;MACjBQ,mBAAA,CAAAP,MAAA,GAAGA,MAAM;MACTO,mBAAA,CAAAN,MAAA,GAAGA,MAAM;MACPM,mBAAA,CAAAL,QAAA,GAAGA,QAAQ;MACTK,mBAAA,CAAAJ,UAAA,GAAGA,UAAU;MACXI,mBAAA,CAAAH,YAAA,GAAGA,YAAY;MACjBG,mBAAA,CAAAF,UAAA,GAAGA,UAAU;MACTE,mBAAA,CAAAD,cAAA,GAAGA,cAAc;MACbC,mBAAA,CAAArC,kBAAA,GAAGA,kBAAkB;MACjCqC,mBAAA,CAAAhC,MAAA,GAAGA,MAAM;IACvB,CAAG,GAAG;EACN;;;;;;;;;;;;;;;;;;;ECnNa,IAAIiC,CAAC,GAAC3D,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;IAAC2D,CAAC,GAAC5D,MAAM,CAACC,GAAG,CAAC,cAAc,CAAC;IAAC4D,CAAC,GAAC7D,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAAC6D,CAAC,GAAC9D,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;IAAC8D,CAAC,GAAC/D,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAAC+D,CAAC,GAAChE,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAACgE,CAAC,GAACjE,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;IAACiE,CAAC,GAAClE,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;IAACkE,CAAC,GAACnE,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;IAACmE,CAAC,GAACpE,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;IAACoE,CAAC,GAACrE,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;IAACqE,CAAC,GAACtE,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;IAACsE,CAAC,GAACvE,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;IAACuE,CAAC,GAACxE,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;IAACwE,CAAC;EAACA,CAAC,GAACzE,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;EACjf,SAASyE,CAACA,CAACC,CAAC,EAAC;IAAC,IAAG,QAAQ,KAAG,OAAOA,CAAC,IAAE,IAAI,KAAGA,CAAC,EAAC;MAAC,IAAIC,CAAC,GAACD,CAAC,CAACpD,QAAQ;MAAC,QAAOqD,CAAC;QAAE,KAAKjB,CAAC;UAAC,QAAOgB,CAAC,GAACA,CAAC,CAACrD,IAAI,EAACqD,CAAC;YAAE,KAAKd,CAAC;YAAC,KAAKE,CAAC;YAAC,KAAKD,CAAC;YAAC,KAAKM,CAAC;YAAC,KAAKC,CAAC;cAAC,OAAOM,CAAC;YAAC;cAAQ,QAAOA,CAAC,GAACA,CAAC,IAAEA,CAAC,CAACpD,QAAQ,EAACoD,CAAC;gBAAE,KAAKT,CAAC;gBAAC,KAAKD,CAAC;gBAAC,KAAKE,CAAC;gBAAC,KAAKI,CAAC;gBAAC,KAAKD,CAAC;gBAAC,KAAKN,CAAC;kBAAC,OAAOW,CAAC;gBAAC;kBAAQ,OAAOC,CAAC;cAAA;UAAC;QAAC,KAAKhB,CAAC;UAAC,OAAOgB,CAAC;MAAA;IAAC;EAAC;EAACC,sBAAuB,CAAAhD,eAAA,GAACoC,CAAC;EAACY,sCAAuB,GAACb,CAAC;EAACa,sBAAA,CAAA9C,OAAe,GAAC4B,CAAC;EAACkB,sBAAA,CAAA7C,UAAkB,GAACmC,CAAC;EAACU,sBAAgB,CAAA5C,QAAA,GAAC4B,CAAC;EAACgB,sBAAA,CAAA3C,IAAY,GAACqC,CAAC;EAACM,sBAAY,CAAA1C,IAAA,GAACmC,CAAC;EAACO,sBAAc,CAAAzC,MAAA,GAACwB,CAAC;EAACiB,+BAAgB,GAACd,CAAC;EAACc,sBAAA,CAAAvC,UAAkB,GAACwB,CAAC;EAACe,sBAAgB,CAAAtC,QAAA,GAAC6B,CAAC;EACjeS,sBAAA,CAAArC,YAAoB,GAAC6B,CAAC;EAACQ,sBAAA,CAAAlC,WAAmB,GAAC,YAAU;IAAC,OAAM,CAAC,CAAC;EAAA,CAAC;EAACkC,uCAAwB,GAAC,YAAU;IAAC,OAAM,CAAC,CAAC;EAAA,CAAC;EAACA,sBAAyB,CAAA/B,iBAAA,GAAC,UAAS6B,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGV,CAAC;EAAA,CAAC;EAACY,sBAAyB,CAAA9B,iBAAA,GAAC,UAAS4B,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGX,CAAC;EAAA,CAAC;EAACa,sBAAiB,CAAA7B,SAAA,GAAC,UAAS2B,CAAC,EAAC;IAAC,OAAM,QAAQ,KAAG,OAAOA,CAAC,IAAE,IAAI,KAAGA,CAAC,IAAEA,CAAC,CAACpD,QAAQ,KAAGoC,CAAC;EAAA,CAAC;EAACkB,sBAAoB,CAAA5B,YAAA,GAAC,UAAS0B,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGR,CAAC;EAAA,CAAC;EAACU,sBAAkB,CAAA3B,UAAA,GAAC,UAASyB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGd,CAAC;EAAA,CAAC;EAACgB,sBAAc,CAAA1B,MAAA,GAAC,UAASwB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGJ,CAAC;EAAA,CAAC;EAACM,sBAAc,CAAAzB,MAAA,GAAC,UAASuB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGL,CAAC;EAAA,CAAC;EACxeO,sBAAA,CAAAxB,QAAgB,GAAC,UAASsB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGf,CAAC;EAAA,CAAC;EAACiB,iCAAkB,GAAC,UAASF,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGZ,CAAC;EAAA,CAAC;EAACc,sBAAoB,CAAAtB,YAAA,GAAC,UAASoB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGb,CAAC;EAAA,CAAC;EAACe,sBAAA,CAAArB,UAAkB,GAAC,UAASmB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGP,CAAC;EAAA,CAAC;EAACS,sBAAA,CAAApB,cAAsB,GAAC,UAASkB,CAAC,EAAC;IAAC,OAAOD,CAAC,CAACC,CAAC,CAAC,KAAGN,CAAC;EAAA,CAAC;EACzNQ,sBAAA,CAAAxD,kBAAA,GAAC,UAASsD,CAAC,EAAC;IAAC,OAAM,QAAQ,KAAG,OAAOA,CAAC,IAAE,UAAU,KAAG,OAAOA,CAAC,IAAEA,CAAC,KAAGd,CAAC,IAAEc,CAAC,KAAGZ,CAAC,IAAEY,CAAC,KAAGb,CAAC,IAAEa,CAAC,KAAGP,CAAC,IAAEO,CAAC,KAAGN,CAAC,IAAEM,CAAC,KAAGH,CAAC,IAAE,QAAQ,KAAG,OAAOG,CAAC,IAAE,IAAI,KAAGA,CAAC,KAAGA,CAAC,CAACpD,QAAQ,KAAGgD,CAAC,IAAEI,CAAC,CAACpD,QAAQ,KAAG+C,CAAC,IAAEK,CAAC,CAACpD,QAAQ,KAAGyC,CAAC,IAAEW,CAAC,CAACpD,QAAQ,KAAG0C,CAAC,IAAEU,CAAC,CAACpD,QAAQ,KAAG4C,CAAC,IAAEQ,CAAC,CAACpD,QAAQ,KAAGkD,CAAC,IAAE,KAAK,CAAC,KAAGE,CAAC,CAACnD,WAAW,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC;EAAA,CAAC;EAACqD,sBAAc,CAAAnD,MAAA,GAACgD,CAAC;;;ACXlT,IAAI9E,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;EACzCgF,OAAA,CAAAC,OAAc,GAAGC,6BAAA,EAA2C;AAC9D,CAAC,MAAM;EACLF,OAAA,CAAAC,OAAc,GAAGE,0BAAA,EAAwC;AAC3D;;;ACDO,MAAMC,cAAuB,EAAC;AAK9B,MAAMC,eAAsC,CAAA,CAAC;AAM7C,MAAMC,oBAKT,GAAA;EACFC,OAAS,EAAA;IAACC,OAAS,EAAA,GAAA;IAAKC,OAAO;EAAI,CAAA;EACnCC,OAAS,EAAA;IAACF,OAAS,EAAA,CAAA;IAAGC,OAAO;EAAC,CAAA;EAC9BE,IAAM,EAAA;IAACH,OAAS,EAAA,CAAA;IAAGC,OAAO;EAAI,CAAA;EAC9BG,UAAY,EAAA;IAACC,QAAU,EAAA,GAAA;IAAKrE,MAAM;EAAQ;AAC5C,CAAA;ACnBgB,SAAAsE,cAAAA,CAAeC,MAAgBC,KAA+C,EAAA;EAC5F,OAAOD,IAAK,CAAAE,MAAA,CAAkB,CAACC,KAAA,EAAOC,GAAQ,KAAA;IAC5CD,KAAA,CAAMC,GAAG,CAAI,GAAAH,KAAA;IAEN,OAAAE,KAAA;EACT,CAAA,EAAG,CAAE,CAAA,CAAA;AACP;AAKO,SAASE,IAAIC,UAAgC,EAAA;EAClD,IAAIA,UAAe,KAAA,CAAA,EAAU,OAAA,CAAA;EAEtB,OAAA,EAAA,CAAGC,oBAAa,EAAE,EAAA,KAAA,CAAA;AAC3B;AAKgB,SAAAC,WAAAA,CACdC,KACA,EAAAC,MAAA,EACAC,QACa,EAAA;EACb,MAAMC,UAAa,GAAA,CAAAF,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQG,GAAI,CAAAF,QAAA,CAAA,KAAa,EAAC;EAE7C,OAAOC,UAAW,CAAAC,GAAA,CAAI,CAACC,SAAA,EAAWC,UAAe,KAAA;IAC/C,IAAIA,UAAe,KAAA,CAAA,EAAU,OAAAD,SAAA;IAEtB,OAAA;MAAC,CAAC,gCAAiC,CAAAP,MAAA,CAAAE,KAAA,CAAMM,aAAa,CAAC,CAAA,EAAC,KAAK,CAAA,GAAGD;KAAS;EAAA,CACjF,CAAA;AACH;AAKgB,SAAAE,aAAAA,CAA0BC,KAA0BC,UAAuB,EAAA;EACzF,IAAID,GAAQ,KAAA,KAAA,CAAA,EAAW,OAAOC,UAAc,IAAA7B,WAAA;EAE5C,OAAO8B,MAAMC,OAAQ,CAAAH,GAAG,CAAI,GAAAA,GAAA,GAAM,CAACA,GAAG,CAAA;AACxC;AAKO,SAASI,mBACdA,CAAAC,KAAA,EACAC,KACA,EACoB;EAAA,IADpBC,YAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAyBpC,WACL;EACpB,IAAI,CAAC8B,KAAA,CAAMC,OAAQ,CAAAI,YAAY,CAAG,EAAA;IAC1B,MAAA,IAAIG,MAAM,uCAAuC,CAAA;EACzD;EAEI,IAAAH,YAAA,CAAaE,WAAW,CAAG,EAAA;IACtB,OAAA,IAAA;EACT;EAEA,MAAM;IAACjB,KAAA;IAAOmB;EAAK,CAAA,GAAIC,YAAYP,KAAK,CAAA;EAEjC,OAAAd,WAAA,CAAYC,KAAA,EAAOe,YAAA,EAAeM,cACvC/B,cAAe,CAAAwB,KAAA,EAAOlB,IAAIuB,KAAM,CAAAE,UAAU,CAAC,CAAC,CAAA,CAC9C;AACF;AC7DgB,SAAAC,cAAAA,CACdC,SACAT,KACa,EAAA;EACP,MAAA;IAACU,KAAO;IAAAC;EAAW,CAAA,GAAAX,KAAA;EACzB,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM;IAACc,MAAQ;IAAAC,KAAA;IAAOC;EAAO,CAAA,GAAIH,KAAKH,OAAO,CAAA;EAC7C,MAAMO,UAAc,GAAAL,OAAA,IAAWI,OAAQ,CAAAJ,OAAO,KAAMI,OAAQ,CAAAE,OAAA;EAGtD,MAAAC,WAAA,GAAcJ,MAAM,CAAC,CAAA;EAE3B,MAAMK,IAAkB,GAAA;IACtBC,QAAU,EAAA,UAAA;IACVC,UAAY,EAAAR,MAAA;IACZG,UAAA;IACAM,OAAS,EAAA,OAAA;IACTC,MAAQ,EAAA,CAAA;IAER,UAAY,EAAA;MACVC,OAAS,EAAA,IAAA;MACTC,OAAS,EAAA,OAAA;MACTC,MAAQ,EAAA;IACV,CAAA;IAEA,SAAW,EAAA;MACTF,OAAS,EAAA,IAAA;MACTC,OAAS,EAAA,OAAA;MACTC,MAAQ,EAAA;IACV,CAAA;IAEA,oBAAsB,EAAA;MACpBD,OAAS,EAAA;IACX,CAAA;IAEA,iBAAmB,EAAA;MACjBA,OAAS,EAAA;IACX;EAAA,CACF;EAGA,IAAI,CAACf,KAAO,EAAA;IAEN,IAAA,CAACF,eAAemB,MAAQ,EAAA;MAE1BnG,OAAA,CAAQoG,KAAK,uCAAyC,EAAA;QAACnB;QAASC,KAAO;QAAAV,KAAA;QAAOmB;OAAK,CAAA;MAEnFX,cAAA,CAAemB,MAAS,GAAA,IAAA;IAC1B;IAEA,OAAO,CAACR,IAAI,CAAA;EACd;EAEM,MAAAU,IAAA,GAAO5C,WAAY,CAAAC,KAAA,EAAOwB,KAAO,EAACoB,SAAc,IAAAC,QAAA,CAASjB,KAAM,CAAAgB,SAAS,CAAK,IAAAZ,WAAW,CAAC,CAAA;EAExF,OAAA,CAACC,IAAM,EAAA,GAAGU,IAAI,CAAA;AACvB;AAEO,SAASE,SAASC,IAAgC,EAAA;EACjD,MAAA;IAACC;IAAgBC,eAAiB;IAAAH,QAAA,EAAAA;IAAUI,QAAU;IAAAC,aAAA;IAAeC;EAAc,CAAA,GAAAL,IAAA;EACzF,MAAMM,YAAYL,cAAiB,GAAAC,eAAA;EACnC,MAAMK,YAAYF,UAAa,GAAAC,SAAA;EACzB,MAAAE,UAAA,GAAA,CAAcD,YAAYJ,QAAY,IAAA,CAAA;EAC5C,MAAMM,iBAAiBC,IAAK,CAAAC,KAAA,CAAOZ,YAAW,KAAS,GAAA,CAAC,IAAI,CAAI,GAAA,CAAA;EAC1D,MAAAa,gBAAA,GAAA,CAAoBL,YAAYE,cAAkB,IAAA,CAAA;EAEjD,OAAA;IACLV,QAAA,EAAUjD,IAAIiD,SAAQ,CAAA;IACtBM,UAAY,EAAA,OAAA,CAAQrD,MAAU,CAAAqD,UAAA,EAAA,KAAA,CAAA,CAAMrD,OAAA+C,SAAQ,EAAA,GAAA,CAAA;IAC5CK,aAAA,EAAetD,IAAIsD,aAAa,CAAA;IAChCS,SAAW,EAAA,aAAA,CAAc7D,MAAI,CAAAF,GAAA,CAAAoD,eAAe,CAAC,EAAA,GAAA,CAAA;IAE7C,UAAY,EAAA;MACVY,SAAW,EAAA,OAAA,CAAQ9D,MAAI,CAAAF,GAAA,CAAA,CAAA,GAAIwD,SAAS,CAAC,EAAA,SAAA;IACvC,CAAA;IAEA,SAAW,EAAA;MACTS,YAAc,EAAA;IAChB,CAAA;IAEA,+BAAiC,EAAA;MAC/BhB,QAAA,EAAU,QAAQ/C,MAAc,CAAAyD,cAAA,EAAA,eAAA,CAAA;MAChClB,MAAA,EAAQzC,IAAI8D,gBAAgB;IAC9B,CAAA;IAEA,sBAAwB,EAAA;MACtBb,QAAA,EAAU,QAAQ/C,MAAQ,CAAAmD,QAAA,EAAA,eAAA,CAAA;MAC1BZ,MAAA,EAAQzC,IAAI0D,UAAU;IACxB;EAAA,CACF;AACF;AC3FO,SAASQ,wBAAwBhD,KAA2D,EAAA;EAC1F,OAAAQ,cAAA,CAAe,QAAQR,KAAK,CAAA;AACrC;ACFO,SAASiD,sBAAsBjD,KAA2D,EAAA;EACxF,OAAAQ,cAAA,CAAe,WAAWR,KAAK,CAAA;AACxC;ACFO,SAASkD,oBAAoBlD,KAA2D,EAAA;EACtF,OAAAQ,cAAA,CAAe,SAASR,KAAK,CAAA;AACtC;ACFO,SAASmD,yBACdnD,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoD,MAAA,EAASC,SAAc,IAAA;IACrD,OAAO;MAACA;IAAS,CAAA;EAAA,CAClB,CAAA;AACH;ACRO,SAASC,mBAAmBtD,KAA2D,EAAA;EACrF,OAAAQ,cAAA,CAAe,QAAQR,KAAK,CAAA;AACrC;ACDgB,SAAAuD,YAAAA,CACd7D,KACAC,UACK,EAAA;EAEC,MAAA6D,aAAA,GAAgBC,OAAQ,CAAA,MAAMC,IAAK,CAAAC,SAAA,CAAUjE,GAAO,IAAA,IAAA,GAAAA,GAAA,GAAAC,UAAU,CAAG,EAAA,CAACA,UAAY,EAAAD,GAAG,CAAC,CAAA;EAEjF,OAAA+D,OAAA,CACL,MAAMhE,aAAc,CAAAC,GAAA,EAAKC,UAAU,CAAA;EAAA;EAAA;EAInC,CAAC6D,aAAa,CAAA,CAChB;AACF;AChBA,SAASI,YAAAA,CACPC,SACAC,WACe,EAAA;EACT,MAAAC,GAAA,GAAM,CAACF,OAAO,CAAA;EAEpB,KAAA,MAAWG,MAAMF,WAAa,EAAA;IACxB,IAAAlE,KAAA,CAAMC,OAAQ,CAAAmE,EAAE,CAAG,EAAA;MACjBD,GAAA,CAAAE,IAAA,CAAK,GAAGD,EAAE,CAAA;IAAA,CACT,MAAA;MACLD,GAAA,CAAIE,KAAKD,EAAE,CAAA;IACb;EACF;EAEO,OAAAD,GAAA,CAAIG,OAAOC,OAAO,CAAA;AAC3B;AAKO,SAASC,eACdA,CAAAC,QAAA,EAGkC;EAAA,IAFlCP,WAAyD,GAAA5D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAApC,WAAA;EAAA,IACzDwG,eACkC,GAAApE,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAA7F,SAAA;EAClC,MAAM,CAACwJ,OAAA,EAASU,UAAU,CAAA,GAAIC,SAA6B,IAAI,CAAA;EACzD,MAAA,CAACC,UAAUC,WAAW,CAAA,GAAIF,SAAS,MAAMZ,YAAA,CAAaC,OAAS,EAAAC,WAAW,CAAC,CAAA;EAC3E,MAAAa,WAAA,GAAcC,OAAOH,QAAQ,CAAA;EAEnCI,SAAA,CAAU,MAAM;IACd,MAAMC,eAAeH,WAAY,CAAAI,OAAA;IAC3B,MAAAC,YAAA,GAAepB,YAAa,CAAAC,OAAA,EAASC,WAAW,CAAA;IAElD,IAAAgB,YAAA,CAAa3E,MAAW,KAAA6E,YAAA,CAAa7E,MAAQ,EAAA;MAC/CuE,WAAA,CAAYM,YAAY,CAAA;MACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;MAEtB;IACF;IAEA,KAAA,MAAWhB,MAAMc,YAAc,EAAA;MAC7B,IAAI,CAACE,YAAA,CAAaC,QAAS,CAAAjB,EAAE,CAAG,EAAA;QAC9BU,WAAA,CAAYM,YAAY,CAAA;QACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;QAEtB;MACF;IACF;IAEA,KAAA,MAAWhB,MAAMgB,YAAc,EAAA;MAC7B,IAAI,CAACF,YAAA,CAAaG,QAAS,CAAAjB,EAAE,CAAG,EAAA;QAC9BU,WAAA,CAAYM,YAAY,CAAA;QACxBL,WAAA,CAAYI,OAAU,GAAAC,YAAA;QAEtB;MACF;IACF;EAAA,CACC,EAAA,CAACnB,OAAS,EAAAC,WAAW,CAAC,CAAA;EAEzBe,SAAA,CAAU,MAAM;IACd,IAAI,CAACR,QAAA,EAAiB,OAAA,KAAA,CAAA;IAEhB,MAAAa,qBAAA,GAAyBC,GAAoB,IAAA;MACjD,MAAMC,SAASD,GAAI,CAAAC,MAAA;MAEf,IAAA,EAAEA,kBAAkBC,IAAO,CAAA,EAAA;QAC7B;MACF;MAEA,IAAIf,eAAmB,IAAA,CAACA,eAAgB,CAAAgB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxD;MACF;MAEA,KAAA,MAAWpB,MAAMS,QAAU,EAAA;QACzB,IAAIW,MAAW,KAAApB,EAAA,IAAMA,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;UACxC;QACF;MACF;MAEAf,QAAA,CAASc,GAAG,CAAA;IAAA,CACd;IAEOI,MAAA,CAAAC,gBAAA,CAAiB,aAAaN,qBAAqB,CAAA;IAE1D,OAAO,MAAM;MACJK,MAAA,CAAAE,mBAAA,CAAoB,aAAaP,qBAAqB,CAAA;IAAA,CAC/D;EACC,CAAA,EAAA,CAACZ,eAAiB,EAAAD,QAAA,EAAUI,QAAQ,CAAC,CAAA;EAEjC,OAAAF,UAAA;AACT;AClGA,IAAImB,eAAe,GAAG,EAAE;ACCxB,IAAIC,qBAAqB,GAAG,SAAAA,CAAA,EAAY;EACpC,OAAOD,eAAe,CAACE,IAAI,CAAC,UAAUC,EAAE,EAAE;IAAE,OAAOA,EAAE,CAACC,aAAa,CAAC3F,MAAM,GAAG,CAAC;EAAC,CAAE,CAAC;AACtF,CAAC;ACFD,IAAI4F,sBAAsB,GAAG,SAAAA,CAAA,EAAY;EACrC,OAAOL,eAAe,CAACE,IAAI,CAAC,UAAUC,EAAE,EAAE;IAAE,OAAOA,EAAE,CAACG,cAAc,CAAC7F,MAAM,GAAG,CAAC;EAAC,CAAE,CAAC;AACvF,CAAC;ACHD,IAAI8F,GAAG,GAAG,+DAA+D;AACzE,IAAIC,sBAAsB,GAAG,SAAAA,CAAA,EAAY;EACrC,IAAIC,KAAK;EACT,IAAI,OAAOC,UAAU,KAAK,UAAU,EAAE;IAClCD,KAAK,GAAG,IAAIC,UAAU,CAAC,OAAO,EAAE;MAC5BC,OAAO,EAAEJ;IACrB,CAAS,CAAC;EACL,CAAA,MACI;IACDE,KAAK,GAAGG,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC;IACrCJ,KAAK,CAACK,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;IACtCL,KAAK,CAACE,OAAO,GAAGJ,GAAG;EACtB;EACDV,MAAM,CAACkB,aAAa,CAACN,KAAK,CAAC;AAC/B,CAAC;ACdD,IAAIO,wBAAwB;AAC5B,CAAC,UAAUA,wBAAwB,EAAE;EACjCA,wBAAwB,CAAC,YAAY,CAAC,GAAG,YAAY;EACrDA,wBAAwB,CAAC,aAAa,CAAC,GAAG,aAAa;EACvDA,wBAAwB,CAAC,0BAA0B,CAAC,GAAG,0BAA0B;AACrF,CAAC,EAAEA,wBAAwB,KAAKA,wBAAwB,GAAG,CAAA,CAAE,CAAC,CAAC;ACLxD,IAAIC,MAAM,GAAG,SAAAA,CAAUC,GAAG,EAAE;EAAE,OAAOC,MAAM,CAACF,MAAM,CAACC,GAAG,CAAC;AAAG,CAAA;ACCjE,IAAIE,kBAAkB,GAAI,YAAY;EAClC,SAASA,kBAAkBA,CAACC,UAAU,EAAEC,SAAS,EAAE;IAC/C,IAAI,CAACD,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1BL,MAAM,CAAC,IAAI,CAAC;EACf;EACD,OAAOG,kBAAkB;AAC7B,CAAC,EAAG;ACPJ,IAAIG,eAAe,GAAI,YAAY;EAC/B,SAASA,eAAeA,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAE1F,MAAM,EAAE;IAC1C,IAAI,CAACwF,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,CAAC,GAAGA,CAAC;IACV,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC1F,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC2F,GAAG,GAAG,IAAI,CAACF,CAAC;IACjB,IAAI,CAACG,IAAI,GAAG,IAAI,CAACJ,CAAC;IAClB,IAAI,CAACK,MAAM,GAAG,IAAI,CAACF,GAAG,GAAG,IAAI,CAAC3F,MAAM;IACpC,IAAI,CAAC8F,KAAK,GAAG,IAAI,CAACF,IAAI,GAAG,IAAI,CAACF,KAAK;IACnC,OAAOT,MAAM,CAAC,IAAI,CAAC;EACtB;EACDM,eAAe,CAACQ,SAAS,CAACC,MAAM,GAAG,YAAY;IAC3C,IAAIC,EAAE,GAAG,IAAI;MAAET,CAAC,GAAGS,EAAE,CAACT,CAAC;MAAEC,CAAC,GAAGQ,EAAE,CAACR,CAAC;MAAEE,GAAG,GAAGM,EAAE,CAACN,GAAG;MAAEG,KAAK,GAAGG,EAAE,CAACH,KAAK;MAAED,MAAM,GAAGI,EAAE,CAACJ,MAAM;MAAED,IAAI,GAAGK,EAAE,CAACL,IAAI;MAAEF,KAAK,GAAGO,EAAE,CAACP,KAAK;MAAE1F,MAAM,GAAGiG,EAAE,CAACjG,MAAM;IAC3I,OAAO;MAAEwF,CAAC,EAAEA,CAAC;MAAEC,CAAC,EAAEA,CAAC;MAAEE,GAAG,EAAEA,GAAG;MAAEG,KAAK,EAAEA,KAAK;MAAED,MAAM,EAAEA,MAAM;MAAED,IAAI,EAAEA,IAAI;MAAEF,KAAK,EAAEA,KAAK;MAAE1F,MAAM,EAAEA;KAAQ;EAC/G,CAAK;EACDuF,eAAe,CAACW,QAAQ,GAAG,UAAUC,SAAS,EAAE;IAC5C,OAAO,IAAIZ,eAAe,CAACY,SAAS,CAACX,CAAC,EAAEW,SAAS,CAACV,CAAC,EAAEU,SAAS,CAACT,KAAK,EAAES,SAAS,CAACnG,MAAM,CAAC;EAC/F,CAAK;EACD,OAAOuF,eAAe;AAC1B,CAAC,EAAG;ACrBJ,IAAIa,KAAK,GAAG,SAAAA,CAAU1C,MAAM,EAAE;EAAE,OAAOA,MAAM,YAAY2C,UAAU,IAAI,SAAS,IAAI3C,MAAM;CAAG;AAC7F,IAAI4C,QAAQ,GAAG,SAAAA,CAAU5C,MAAM,EAAE;EAC7B,IAAI0C,KAAK,CAAC1C,MAAM,CAAC,EAAE;IACf,IAAIuC,EAAE,GAAGvC,MAAM,CAAC6C,OAAO,EAAE;MAAEb,KAAK,GAAGO,EAAE,CAACP,KAAK;MAAE1F,MAAM,GAAGiG,EAAE,CAACjG,MAAM;IAC/D,OAAO,CAAC0F,KAAK,IAAI,CAAC1F,MAAM;EAC3B;EACD,IAAIwG,EAAE,GAAG9C,MAAM;IAAE+C,WAAW,GAAGD,EAAE,CAACC,WAAW;IAAEC,YAAY,GAAGF,EAAE,CAACE,YAAY;EAC7E,OAAO,EAAED,WAAW,IAAIC,YAAY,IAAIhD,MAAM,CAACiD,cAAc,CAAA,CAAE,CAAClI,MAAM,CAAC;AAC3E,CAAC;AACD,IAAIvE,SAAS,GAAG,SAAAA,CAAUgL,GAAG,EAAE;EAC3B,IAAIe,EAAE;EACN,IAAIf,GAAG,YAAYjM,OAAO,EAAE;IACxB,OAAO,IAAI;EACd;EACD,IAAI2N,KAAK,GAAG,CAACX,EAAE,GAAGf,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,GAAG,CAAC2B,aAAa,MAAM,IAAI,IAAIZ,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,EAAE,CAACa,WAAW;EAClI,OAAO,CAAC,EAAEF,KAAK,IAAI1B,GAAG,YAAY0B,KAAK,CAAC3N,OAAO,CAAC;AACpD,CAAC;AACD,IAAI8N,iBAAiB,GAAG,SAAAA,CAAUrD,MAAM,EAAE;EACtC,QAAQA,MAAM,CAACsD,OAAO;IAClB,KAAK,OAAO;MACR,IAAItD,MAAM,CAAClL,IAAI,KAAK,OAAO,EAAE;QACzB;MACH;IACL,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,QAAQ;IACb,KAAK,KAAK;MACN,OAAO,IAAI;EAClB;EACD,OAAO,KAAK;AAChB,CAAC;ACjCM,IAAIyO,QAAM,GAAG,OAAOpD,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAG,CAAE,CAAA;ACM/D,IAAIqD,KAAK,GAAG,IAAIC,OAAO,EAAE;AACzB,IAAIC,YAAY,GAAG,aAAa;AAChC,IAAIC,cAAc,GAAG,cAAc;AACnC,IAAIC,EAAE,GAAI,eAAe,CAAEC,IAAI,CAACN,QAAM,CAACO,SAAS,IAAIP,QAAM,CAACO,SAAS,CAACC,SAAS,CAAC;AAC/E,IAAIC,cAAc,GAAG,SAAAA,CAAUC,KAAK,EAAE;EAAE,OAAOC,UAAU,CAACD,KAAK,IAAI,GAAG,CAAC;CAAG;AAC1E,IAAIrH,MAAI,GAAG,SAAAuH,CAAUxC,UAAU,EAAEC,SAAS,EAAEwC,WAAW,EAAE;EACrD,IAAIzC,UAAU,KAAK,KAAK,CAAC,EAAE;IAAEA,UAAU,GAAG,CAAC;EAAG;EAC9C,IAAIC,SAAS,KAAK,KAAK,CAAC,EAAE;IAAEA,SAAS,GAAG,CAAC;EAAG;EAC5C,IAAIwC,WAAW,KAAK,KAAK,CAAC,EAAE;IAAEA,WAAW,GAAG,KAAK;EAAG;EACpD,OAAO,IAAI1C,kBAAkB,CAAC,CAAC0C,WAAW,GAAGxC,SAAS,GAAGD,UAAU,KAAK,CAAC,EAAE,CAACyC,WAAW,GAAGzC,UAAU,GAAGC,SAAS,KAAK,CAAC,CAAC;AAC3H,CAAC;AACD,IAAIyC,SAAS,GAAG9C,MAAM,CAAC;EACnB+C,yBAAyB,EAAE1H,MAAI,CAAE,CAAA;EACjC2H,aAAa,EAAE3H,MAAI,CAAE,CAAA;EACrB4H,cAAc,EAAE5H,MAAI,CAAE,CAAA;EACtB6H,WAAW,EAAE,IAAI5C,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC,CAAC;AACF,IAAI6C,iBAAiB,GAAG,SAAAA,CAAU1E,MAAM,EAAE2E,kBAAkB,EAAE;EAC1D,IAAIA,kBAAkB,KAAK,KAAK,CAAC,EAAE;IAAEA,kBAAkB,GAAG,KAAK;EAAG;EAClE,IAAInB,KAAK,CAACoB,GAAG,CAAC5E,MAAM,CAAC,IAAI,CAAC2E,kBAAkB,EAAE;IAC1C,OAAOnB,KAAK,CAACqB,GAAG,CAAC7E,MAAM,CAAC;EAC3B;EACD,IAAI4C,QAAQ,CAAC5C,MAAM,CAAC,EAAE;IAClBwD,KAAK,CAACsB,GAAG,CAAC9E,MAAM,EAAEqE,SAAS,CAAC;IAC5B,OAAOA,SAAS;EACnB;EACD,IAAIU,EAAE,GAAGC,gBAAgB,CAAChF,MAAM,CAAC;EACjC,IAAIiF,GAAG,GAAGvC,KAAK,CAAC1C,MAAM,CAAC,IAAIA,MAAM,CAACkF,eAAe,IAAIlF,MAAM,CAAC6C,OAAO,EAAE;EACrE,IAAIsC,aAAa,GAAG,CAACvB,EAAE,IAAImB,EAAE,CAACK,SAAS,KAAK,YAAY;EACxD,IAAIhB,WAAW,GAAGT,cAAc,CAACE,IAAI,CAACkB,EAAE,CAACM,WAAW,IAAI,EAAE,CAAC;EAC3D,IAAIC,mBAAmB,GAAG,CAACL,GAAG,IAAIvB,YAAY,CAACG,IAAI,CAACkB,EAAE,CAACQ,SAAS,IAAI,EAAE,CAAC;EACvE,IAAIC,qBAAqB,GAAG,CAACP,GAAG,IAAIvB,YAAY,CAACG,IAAI,CAACkB,EAAE,CAACU,SAAS,IAAI,EAAE,CAAC;EACzE,IAAIC,UAAU,GAAGT,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACW,UAAU,CAAC;EACxD,IAAIC,YAAY,GAAGV,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACY,YAAY,CAAC;EAC5D,IAAIC,aAAa,GAAGX,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACa,aAAa,CAAC;EAC9D,IAAIC,WAAW,GAAGZ,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACc,WAAW,CAAC;EAC1D,IAAIC,SAAS,GAAGb,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACgB,cAAc,CAAC;EAC3D,IAAIC,WAAW,GAAGf,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACkB,gBAAgB,CAAC;EAC/D,IAAIC,YAAY,GAAGjB,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACoB,iBAAiB,CAAC;EACjE,IAAIC,UAAU,GAAGnB,GAAG,GAAG,CAAC,GAAGjB,cAAc,CAACe,EAAE,CAACsB,eAAe,CAAC;EAC7D,IAAIC,iBAAiB,GAAGT,WAAW,GAAGF,YAAY;EAClD,IAAIY,eAAe,GAAGb,UAAU,GAAGE,aAAa;EAChD,IAAIY,oBAAoB,GAAGJ,UAAU,GAAGJ,WAAW;EACnD,IAAIS,kBAAkB,GAAGX,SAAS,GAAGI,YAAY;EACjD,IAAIQ,4BAA4B,GAAG,CAAClB,qBAAqB,GAAG,CAAC,GAAGxF,MAAM,CAACgD,YAAY,GAAGyD,kBAAkB,GAAGzG,MAAM,CAAC2G,YAAY;EAC9H,IAAIC,0BAA0B,GAAG,CAACtB,mBAAmB,GAAG,CAAC,GAAGtF,MAAM,CAAC+C,WAAW,GAAGyD,oBAAoB,GAAGxG,MAAM,CAAC6G,WAAW;EAC1H,IAAIC,cAAc,GAAG3B,aAAa,GAAGmB,iBAAiB,GAAGE,oBAAoB,GAAG,CAAC;EACjF,IAAIO,eAAe,GAAG5B,aAAa,GAAGoB,eAAe,GAAGE,kBAAkB,GAAG,CAAC;EAC9E,IAAIO,YAAY,GAAG/B,GAAG,GAAGA,GAAG,CAACjD,KAAK,GAAGgC,cAAc,CAACe,EAAE,CAAC/C,KAAK,CAAC,GAAG8E,cAAc,GAAGF,0BAA0B;EAC3G,IAAIK,aAAa,GAAGhC,GAAG,GAAGA,GAAG,CAAC3I,MAAM,GAAG0H,cAAc,CAACe,EAAE,CAACzI,MAAM,CAAC,GAAGyK,eAAe,GAAGL,4BAA4B;EACjH,IAAIQ,cAAc,GAAGF,YAAY,GAAGV,iBAAiB,GAAGM,0BAA0B,GAAGJ,oBAAoB;EACzG,IAAIW,eAAe,GAAGF,aAAa,GAAGV,eAAe,GAAGG,4BAA4B,GAAGD,kBAAkB;EACzG,IAAIW,KAAK,GAAG7F,MAAM,CAAC;IACf+C,yBAAyB,EAAE1H,MAAI,CAACU,IAAI,CAAC+J,KAAK,CAACL,YAAY,GAAGM,gBAAgB,CAAC,EAAEhK,IAAI,CAAC+J,KAAK,CAACJ,aAAa,GAAGK,gBAAgB,CAAC,EAAElD,WAAW,CAAC;IACvIG,aAAa,EAAE3H,MAAI,CAACsK,cAAc,EAAEC,eAAe,EAAE/C,WAAW,CAAC;IACjEI,cAAc,EAAE5H,MAAI,CAACoK,YAAY,EAAEC,aAAa,EAAE7C,WAAW,CAAC;IAC9DK,WAAW,EAAE,IAAI5C,eAAe,CAACgE,WAAW,EAAEH,UAAU,EAAEsB,YAAY,EAAEC,aAAa;EAC7F,CAAK,CAAC;EACFzD,KAAK,CAACsB,GAAG,CAAC9E,MAAM,EAAEoH,KAAK,CAAC;EACxB,OAAOA,KAAK;AAChB,CAAC;AACD,IAAIG,gBAAgB,GAAG,SAAAA,CAAUvH,MAAM,EAAEwH,WAAW,EAAE7C,kBAAkB,EAAE;EACtE,IAAIpC,EAAE,GAAGmC,iBAAiB,CAAC1E,MAAM,EAAE2E,kBAAkB,CAAC;IAAEJ,aAAa,GAAGhC,EAAE,CAACgC,aAAa;IAAEC,cAAc,GAAGjC,EAAE,CAACiC,cAAc;IAAEF,yBAAyB,GAAG/B,EAAE,CAAC+B,yBAAyB;EACtL,QAAQkD,WAAW;IACf,KAAKlG,wBAAwB,CAACmG,wBAAwB;MAClD,OAAOnD,yBAAyB;IACpC,KAAKhD,wBAAwB,CAACoG,UAAU;MACpC,OAAOnD,aAAa;IACxB;MACI,OAAOC,cAAc;EAC5B;AACL,CAAC;AC3ED,IAAImD,mBAAmB,GAAI,YAAY;EACnC,SAASA,mBAAmBA,CAAC3H,MAAM,EAAE;IACjC,IAAIoH,KAAK,GAAG1C,iBAAiB,CAAC1E,MAAM,CAAC;IACrC,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACyE,WAAW,GAAG2C,KAAK,CAAC3C,WAAW;IACpC,IAAI,CAACF,aAAa,GAAGhD,MAAM,CAAC,CAAC6F,KAAK,CAAC7C,aAAa,CAAC,CAAC;IAClD,IAAI,CAACC,cAAc,GAAGjD,MAAM,CAAC,CAAC6F,KAAK,CAAC5C,cAAc,CAAC,CAAC;IACpD,IAAI,CAACF,yBAAyB,GAAG/C,MAAM,CAAC,CAAC6F,KAAK,CAAC9C,yBAAyB,CAAC,CAAC;EAC7E;EACD,OAAOqD,mBAAmB;AAC9B,CAAC,EAAG;ACXJ,IAAIC,qBAAqB,GAAG,SAAAA,CAAUC,IAAI,EAAE;EACxC,IAAIjF,QAAQ,CAACiF,IAAI,CAAC,EAAE;IAChB,OAAOC,QAAQ;EAClB;EACD,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,MAAM,GAAGH,IAAI,CAACI,UAAU;EAC5B,OAAOD,MAAM,EAAE;IACXD,KAAK,IAAI,CAAC;IACVC,MAAM,GAAGA,MAAM,CAACC,UAAU;EAC7B;EACD,OAAOF,KAAK;AAChB,CAAC;ACRD,IAAIG,2BAA2B,GAAG,SAAAA,CAAA,EAAY;EAC1C,IAAIC,eAAe,GAAGL,QAAQ;EAC9B,IAAIM,SAAS,GAAG,EAAE;EAClB9H,eAAe,CAAC+H,OAAO,CAAC,SAASC,eAAeA,CAAC7H,EAAE,EAAE;IACjD,IAAIA,EAAE,CAACC,aAAa,CAAC3F,MAAM,KAAK,CAAC,EAAE;MAC/B;IACH;IACD,IAAIwN,OAAO,GAAG,EAAE;IAChB9H,EAAE,CAACC,aAAa,CAAC2H,OAAO,CAAC,SAASG,aAAaA,CAACC,EAAE,EAAE;MAChD,IAAIC,KAAK,GAAG,IAAIf,mBAAmB,CAACc,EAAE,CAACzI,MAAM,CAAC;MAC9C,IAAI2I,WAAW,GAAGf,qBAAqB,CAACa,EAAE,CAACzI,MAAM,CAAC;MAClDuI,OAAO,CAAC1J,IAAI,CAAC6J,KAAK,CAAC;MACnBD,EAAE,CAACG,gBAAgB,GAAGrB,gBAAgB,CAACkB,EAAE,CAACzI,MAAM,EAAEyI,EAAE,CAACjB,WAAW,CAAC;MACjE,IAAImB,WAAW,GAAGR,eAAe,EAAE;QAC/BA,eAAe,GAAGQ,WAAW;MAChC;IACb,CAAS,CAAC;IACFP,SAAS,CAACvJ,IAAI,CAAC,SAASgK,sBAAsBA,CAAA,EAAG;MAC7CpI,EAAE,CAACzG,QAAQ,CAAC8O,IAAI,CAACrI,EAAE,CAACsI,QAAQ,EAAER,OAAO,EAAE9H,EAAE,CAACsI,QAAQ,CAAC;IAC/D,CAAS,CAAC;IACFtI,EAAE,CAACC,aAAa,CAACsI,MAAM,CAAC,CAAC,EAAEvI,EAAE,CAACC,aAAa,CAAC3F,MAAM,CAAC;EAC3D,CAAK,CAAC;EACF,KAAK,IAAIkO,EAAE,GAAG,CAAC,EAAEC,WAAW,GAAGd,SAAS,EAAEa,EAAE,GAAGC,WAAW,CAACnO,MAAM,EAAEkO,EAAE,EAAE,EAAE;IACrE,IAAIjP,QAAQ,GAAGkP,WAAW,CAACD,EAAE,CAAC;IAC9BjP,QAAQ,EAAE;EACb;EACD,OAAOmO,eAAe;AAC1B,CAAC;AC7BD,IAAIgB,+BAA+B,GAAG,SAAAA,CAAUpB,KAAK,EAAE;EACnDzH,eAAe,CAAC+H,OAAO,CAAC,SAASC,eAAeA,CAAC7H,EAAE,EAAE;IACjDA,EAAE,CAACC,aAAa,CAACsI,MAAM,CAAC,CAAC,EAAEvI,EAAE,CAACC,aAAa,CAAC3F,MAAM,CAAC;IACnD0F,EAAE,CAACG,cAAc,CAACoI,MAAM,CAAC,CAAC,EAAEvI,EAAE,CAACG,cAAc,CAAC7F,MAAM,CAAC;IACrD0F,EAAE,CAAC2I,kBAAkB,CAACf,OAAO,CAAC,SAASG,aAAaA,CAACC,EAAE,EAAE;MACrD,IAAIA,EAAE,CAACY,QAAQ,EAAE,EAAE;QACf,IAAIzB,qBAAqB,CAACa,EAAE,CAACzI,MAAM,CAAC,GAAG+H,KAAK,EAAE;UAC1CtH,EAAE,CAACC,aAAa,CAAC7B,IAAI,CAAC4J,EAAE,CAAC;QAC5B,CAAA,MACI;UACDhI,EAAE,CAACG,cAAc,CAAC/B,IAAI,CAAC4J,EAAE,CAAC;QAC7B;MACJ;IACb,CAAS,CAAC;EACV,CAAK,CAAC;AACN,CAAC;ACZD,IAAIrV,SAAO,GAAG,SAAAkW,CAAA,EAAY;EACtB,IAAIvB,KAAK,GAAG,CAAC;EACboB,+BAA+B,CAACpB,KAAK,CAAC;EACtC,OAAOxH,qBAAqB,CAAA,CAAE,EAAE;IAC5BwH,KAAK,GAAGG,2BAA2B,CAAA,CAAE;IACrCiB,+BAA+B,CAACpB,KAAK,CAAC;EACzC;EACD,IAAIpH,sBAAsB,CAAA,CAAE,EAAE;IAC1BG,sBAAsB,EAAE;EAC3B;EACD,OAAOiH,KAAK,GAAG,CAAC;AACpB,CAAC;AChBD,IAAIwB,OAAO;AACX,IAAInB,SAAS,GAAG,EAAE;AAClB,IAAIoB,MAAM,GAAG,SAAAA,CAAA,EAAY;EAAE,OAAOpB,SAAS,CAACY,MAAM,CAAC,CAAC,CAAC,CAACX,OAAO,CAAC,UAAUoB,EAAE,EAAE;IAAE,OAAOA,EAAE,CAAE,CAAA;EAAG,CAAA,CAAC;AAAC,CAAE;AAChG,IAAIC,cAAc,GAAG,SAAAA,CAAU1P,QAAQ,EAAE;EACrC,IAAI,CAACuP,OAAO,EAAE;IACV,IAAII,QAAQ,GAAG,CAAC;IAChB,IAAIC,IAAI,GAAG1I,QAAQ,CAAC2I,cAAc,CAAC,EAAE,CAAC;IACtC,IAAIC,MAAM,GAAG;MAAEC,aAAa,EAAE;KAAM;IACpC,IAAIC,gBAAgB,CAAC,YAAY;MAAE,OAAOR,MAAM,CAAE,CAAA;IAAG,CAAA,CAAC,CAACS,OAAO,CAACL,IAAI,EAAEE,MAAM,CAAC;IAC5EP,OAAO,GAAG,SAAAA,CAAA,EAAY;MAAEK,IAAI,CAACM,WAAW,GAAG,EAAE,CAACtQ,MAAM,CAAC+P,QAAQ,GAAGA,QAAQ,EAAE,GAAGA,QAAQ,EAAE,CAAC;IAAC,CAAE;EAC9F;EACDvB,SAAS,CAACvJ,IAAI,CAAC7E,QAAQ,CAAC;EACxBuP,OAAO,EAAE;AACb,CAAC;ACZD,IAAIY,mBAAmB,GAAG,SAAAA,CAAUV,EAAE,EAAE;EACpCC,cAAc,CAAC,SAASU,cAAcA,CAAA,EAAG;IACrCC,qBAAqB,CAACZ,EAAE,CAAC;EACjC,CAAK,CAAC;AACN,CAAC;ACFD,IAAIa,QAAQ,GAAG,CAAC;AAChB,IAAIC,UAAU,GAAG,SAAAA,CAAA,EAAY;EAAE,OAAO,CAAC,CAACD,QAAQ;AAAC,CAAE;AACnD,IAAIE,YAAY,GAAG,GAAG;AACtB,IAAIC,cAAc,GAAG;EAAEC,UAAU,EAAE,IAAI;EAAEX,aAAa,EAAE,IAAI;EAAEY,SAAS,EAAE,IAAI;EAAEC,OAAO,EAAE;CAAM;AAC9F,IAAIC,MAAM,GAAG,CACT,QAAQ,EACR,MAAM,EACN,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,CACV;AACD,IAAIC,IAAI,GAAG,SAAAA,CAAUC,OAAO,EAAE;EAC1B,IAAIA,OAAO,KAAK,KAAK,CAAC,EAAE;IAAEA,OAAO,GAAG,CAAC;EAAG;EACxC,OAAOC,IAAI,CAACC,GAAG,CAAE,CAAA,GAAGF,OAAO;AAC/B,CAAC;AACD,IAAIG,SAAS,GAAG,KAAK;AACrB,IAAIC,SAAS,GAAI,YAAY;EACzB,SAASA,SAASA,CAAA,EAAG;IACjB,IAAIC,KAAK,GAAG,IAAI;IAChB,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACpM,QAAQ,GAAG,YAAY;MAAE,OAAOmM,KAAK,CAACE,QAAQ,CAAE,CAAA;KAAG;EAC3D;EACDH,SAAS,CAAC9I,SAAS,CAACkJ,GAAG,GAAG,UAAUR,OAAO,EAAE;IACzC,IAAIK,KAAK,GAAG,IAAI;IAChB,IAAIL,OAAO,KAAK,KAAK,CAAC,EAAE;MAAEA,OAAO,GAAGP,YAAY;IAAG;IACnD,IAAIU,SAAS,EAAE;MACX;IACH;IACDA,SAAS,GAAG,IAAI;IAChB,IAAIM,KAAK,GAAGV,IAAI,CAACC,OAAO,CAAC;IACzBZ,mBAAmB,CAAC,YAAY;MAC5B,IAAIsB,mBAAmB,GAAG,KAAK;MAC/B,IAAI;QACAA,mBAAmB,GAAGrY,SAAO,CAAA,CAAE;MAClC,CAAA,SACO;QACJ8X,SAAS,GAAG,KAAK;QACjBH,OAAO,GAAGS,KAAK,GAAGV,IAAI,EAAE;QACxB,IAAI,CAACP,UAAU,CAAA,CAAE,EAAE;UACf;QACH;QACD,IAAIkB,mBAAmB,EAAE;UACrBL,KAAK,CAACG,GAAG,CAAC,IAAI,CAAC;QAClB,CAAA,MACI,IAAIR,OAAO,GAAG,CAAC,EAAE;UAClBK,KAAK,CAACG,GAAG,CAACR,OAAO,CAAC;QACrB,CAAA,MACI;UACDK,KAAK,CAACM,KAAK,CAAA,CAAE;QAChB;MACJ;IACb,CAAS,CAAC;EACV,CAAK;EACDP,SAAS,CAAC9I,SAAS,CAACiJ,QAAQ,GAAG,YAAY;IACvC,IAAI,CAACK,IAAI,CAAA,CAAE;IACX,IAAI,CAACJ,GAAG,CAAA,CAAE;EAClB,CAAK;EACDJ,SAAS,CAAC9I,SAAS,CAAC4H,OAAO,GAAG,YAAY;IACtC,IAAImB,KAAK,GAAG,IAAI;IAChB,IAAI3B,EAAE,GAAG,SAAAA,CAAA,EAAY;MAAE,OAAO2B,KAAK,CAACrC,QAAQ,IAAIqC,KAAK,CAACrC,QAAQ,CAACkB,OAAO,CAAC/I,QAAQ,CAAC0K,IAAI,EAAEnB,cAAc,CAAC;IAAC,CAAE;IACxGvJ,QAAQ,CAAC0K,IAAI,GAAGnC,EAAE,CAAE,CAAA,GAAGlG,QAAM,CAACnD,gBAAgB,CAAC,kBAAkB,EAAEqJ,EAAE,CAAC;EAC9E,CAAK;EACD0B,SAAS,CAAC9I,SAAS,CAACqJ,KAAK,GAAG,YAAY;IACpC,IAAIN,KAAK,GAAG,IAAI;IAChB,IAAI,IAAI,CAACC,OAAO,EAAE;MACd,IAAI,CAACA,OAAO,GAAG,KAAK;MACpB,IAAI,CAACtC,QAAQ,GAAG,IAAIiB,gBAAgB,CAAC,IAAI,CAAC/K,QAAQ,CAAC;MACnD,IAAI,CAACgL,OAAO,CAAA,CAAE;MACdY,MAAM,CAACxC,OAAO,CAAC,UAAUwD,IAAI,EAAE;QAAE,OAAOtI,QAAM,CAACnD,gBAAgB,CAACyL,IAAI,EAAET,KAAK,CAACnM,QAAQ,EAAE,IAAI,CAAC;MAAG,CAAA,CAAC;IAClG;EACT,CAAK;EACDkM,SAAS,CAAC9I,SAAS,CAACsJ,IAAI,GAAG,YAAY;IACnC,IAAIP,KAAK,GAAG,IAAI;IAChB,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;MACf,IAAI,CAACtC,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAAC+C,UAAU,CAAA,CAAE;MAC3CjB,MAAM,CAACxC,OAAO,CAAC,UAAUwD,IAAI,EAAE;QAAE,OAAOtI,QAAM,CAAClD,mBAAmB,CAACwL,IAAI,EAAET,KAAK,CAACnM,QAAQ,EAAE,IAAI,CAAC;MAAG,CAAA,CAAC;MAClG,IAAI,CAACoM,OAAO,GAAG,IAAI;IACtB;EACT,CAAK;EACD,OAAOF,SAAS;AACpB,CAAC,CAAA,CAAG;AACJ,IAAIY,SAAS,GAAG,IAAIZ,SAAS,EAAE;AAC/B,IAAIa,WAAW,GAAG,SAAAA,CAAUnU,CAAC,EAAE;EAC3B,CAACyS,QAAQ,IAAIzS,CAAC,GAAG,CAAC,IAAIkU,SAAS,CAACL,KAAK,CAAA,CAAE;EACvCpB,QAAQ,IAAIzS,CAAC;EACb,CAACyS,QAAQ,IAAIyB,SAAS,CAACJ,IAAI,EAAE;AACjC,CAAC;AC/FD,IAAIM,mBAAmB,GAAG,SAAAA,CAAUjM,MAAM,EAAE;EACxC,OAAO,CAAC0C,KAAK,CAAC1C,MAAM,CAAC,IACd,CAACqD,iBAAiB,CAACrD,MAAM,CAAC,IAC1BgF,gBAAgB,CAAChF,MAAM,CAAC,CAAC3D,OAAO,KAAK,QAAQ;AACxD,CAAC;AACD,IAAI6P,iBAAiB,GAAI,YAAY;EACjC,SAASA,iBAAiBA,CAAClM,MAAM,EAAEwH,WAAW,EAAE;IAC5C,IAAI,CAACxH,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACwH,WAAW,GAAGA,WAAW,IAAIlG,wBAAwB,CAAC6K,WAAW;IACtE,IAAI,CAACvD,gBAAgB,GAAG;MACpBjH,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE;IACvB,CAAS;EACJ;EACDsK,iBAAiB,CAAC7J,SAAS,CAACgH,QAAQ,GAAG,YAAY;IAC/C,IAAIzM,IAAI,GAAG2K,gBAAgB,CAAC,IAAI,CAACvH,MAAM,EAAE,IAAI,CAACwH,WAAW,EAAE,IAAI,CAAC;IAChE,IAAIyE,mBAAmB,CAAC,IAAI,CAACjM,MAAM,CAAC,EAAE;MAClC,IAAI,CAAC4I,gBAAgB,GAAGhM,IAAI;IAC/B;IACD,IAAI,IAAI,CAACgM,gBAAgB,CAACjH,UAAU,KAAK/E,IAAI,CAAC+E,UAAU,IACjD,IAAI,CAACiH,gBAAgB,CAAChH,SAAS,KAAKhF,IAAI,CAACgF,SAAS,EAAE;MACvD,OAAO,IAAI;IACd;IACD,OAAO,KAAK;EACpB,CAAK;EACD,OAAOsK,iBAAiB;AAC5B,CAAC,EAAG;AC7BJ,IAAIE,oBAAoB,GAAI,YAAY;EACpC,SAASA,oBAAoBA,CAACC,cAAc,EAAErS,QAAQ,EAAE;IACpD,IAAI,CAAC0G,aAAa,GAAG,EAAE;IACvB,IAAI,CAACE,cAAc,GAAG,EAAE;IACxB,IAAI,CAACwI,kBAAkB,GAAG,EAAE;IAC5B,IAAI,CAACL,QAAQ,GAAGsD,cAAc;IAC9B,IAAI,CAACrS,QAAQ,GAAGA,QAAQ;EAC3B;EACD,OAAOoS,oBAAoB;AAC/B,CAAC,EAAG;ACLJ,IAAIE,WAAW,GAAG,IAAI7I,OAAO,EAAE;AAC/B,IAAI8I,mBAAmB,GAAG,SAAAA,CAAUnD,kBAAkB,EAAEpJ,MAAM,EAAE;EAC5D,KAAK,IAAIwM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpD,kBAAkB,CAACrO,MAAM,EAAEyR,CAAC,IAAI,CAAC,EAAE;IACnD,IAAIpD,kBAAkB,CAACoD,CAAC,CAAC,CAACxM,MAAM,KAAKA,MAAM,EAAE;MACzC,OAAOwM,CAAC;IACX;EACJ;EACD,OAAO,CAAC,CAAC;AACb,CAAC;AACD,IAAIC,wBAAwB,GAAI,YAAY;EACxC,SAASA,wBAAwBA,CAAA,EAAG,CACnC;EACDA,wBAAwB,CAACC,OAAO,GAAG,UAAUL,cAAc,EAAErS,QAAQ,EAAE;IACnE,IAAI2S,MAAM,GAAG,IAAIP,oBAAoB,CAACC,cAAc,EAAErS,QAAQ,CAAC;IAC/DsS,WAAW,CAACxH,GAAG,CAACuH,cAAc,EAAEM,MAAM,CAAC;EAC/C,CAAK;EACDF,wBAAwB,CAACxC,OAAO,GAAG,UAAUoC,cAAc,EAAErM,MAAM,EAAE4M,OAAO,EAAE;IAC1E,IAAID,MAAM,GAAGL,WAAW,CAACzH,GAAG,CAACwH,cAAc,CAAC;IAC5C,IAAIQ,gBAAgB,GAAGF,MAAM,CAACvD,kBAAkB,CAACrO,MAAM,KAAK,CAAC;IAC7D,IAAIwR,mBAAmB,CAACI,MAAM,CAACvD,kBAAkB,EAAEpJ,MAAM,CAAC,GAAG,CAAC,EAAE;MAC5D6M,gBAAgB,IAAIvM,eAAe,CAACzB,IAAI,CAAC8N,MAAM,CAAC;MAChDA,MAAM,CAACvD,kBAAkB,CAACvK,IAAI,CAAC,IAAIqN,iBAAiB,CAAClM,MAAM,EAAE4M,OAAO,IAAIA,OAAO,CAACE,GAAG,CAAC,CAAC;MACrFd,WAAW,CAAC,CAAC,CAAC;MACdD,SAAS,CAACT,QAAQ,CAAA,CAAE;IACvB;EACT,CAAK;EACDmB,wBAAwB,CAACM,SAAS,GAAG,UAAUV,cAAc,EAAErM,MAAM,EAAE;IACnE,IAAI2M,MAAM,GAAGL,WAAW,CAACzH,GAAG,CAACwH,cAAc,CAAC;IAC5C,IAAIW,KAAK,GAAGT,mBAAmB,CAACI,MAAM,CAACvD,kBAAkB,EAAEpJ,MAAM,CAAC;IAClE,IAAIiN,eAAe,GAAGN,MAAM,CAACvD,kBAAkB,CAACrO,MAAM,KAAK,CAAC;IAC5D,IAAIiS,KAAK,IAAI,CAAC,EAAE;MACZC,eAAe,IAAI3M,eAAe,CAAC0I,MAAM,CAAC1I,eAAe,CAAC4M,OAAO,CAACP,MAAM,CAAC,EAAE,CAAC,CAAC;MAC7EA,MAAM,CAACvD,kBAAkB,CAACJ,MAAM,CAACgE,KAAK,EAAE,CAAC,CAAC;MAC1ChB,WAAW,CAAC,CAAC,CAAC,CAAC;IAClB;EACT,CAAK;EACDS,wBAAwB,CAACX,UAAU,GAAG,UAAUO,cAAc,EAAE;IAC5D,IAAIjB,KAAK,GAAG,IAAI;IAChB,IAAIuB,MAAM,GAAGL,WAAW,CAACzH,GAAG,CAACwH,cAAc,CAAC;IAC5CM,MAAM,CAACvD,kBAAkB,CAAC+D,KAAK,CAAE,CAAA,CAAC9E,OAAO,CAAC,UAAUI,EAAE,EAAE;MAAE,OAAO2C,KAAK,CAAC2B,SAAS,CAACV,cAAc,EAAE5D,EAAE,CAACzI,MAAM,CAAC;IAAG,CAAA,CAAC;IAC/G2M,MAAM,CAACjM,aAAa,CAACsI,MAAM,CAAC,CAAC,EAAE2D,MAAM,CAACjM,aAAa,CAAC3F,MAAM,CAAC;EACnE,CAAK;EACD,OAAO0R,wBAAwB;AACnC,CAAC,EAAG;AC7CJ,IAAIrC,cAAc,GAAI,YAAY;EAC9B,SAASA,cAAcA,CAACpQ,QAAQ,EAAE;IAC9B,IAAIc,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIqS,SAAS,CAAC,gFAAgF,CAAC;IACxG;IACD,IAAI,OAAOpT,QAAQ,KAAK,UAAU,EAAE;MAChC,MAAM,IAAIoT,SAAS,CAAC,+FAA+F,CAAC;IACvH;IACDX,wBAAwB,CAACC,OAAO,CAAC,IAAI,EAAE1S,QAAQ,CAAC;EACnD;EACDoQ,cAAc,CAAC/H,SAAS,CAAC4H,OAAO,GAAG,UAAUjK,MAAM,EAAE4M,OAAO,EAAE;IAC1D,IAAI9R,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIqS,SAAS,CAAC,2FAA2F,CAAC;IACnH;IACD,IAAI,CAAC5W,SAAS,CAACwJ,MAAM,CAAC,EAAE;MACpB,MAAM,IAAIoN,SAAS,CAAC,sFAAsF,CAAC;IAC9G;IACDX,wBAAwB,CAACxC,OAAO,CAAC,IAAI,EAAEjK,MAAM,EAAE4M,OAAO,CAAC;EAC/D,CAAK;EACDxC,cAAc,CAAC/H,SAAS,CAAC0K,SAAS,GAAG,UAAU/M,MAAM,EAAE;IACnD,IAAIlF,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MACxB,MAAM,IAAIqS,SAAS,CAAC,6FAA6F,CAAC;IACrH;IACD,IAAI,CAAC5W,SAAS,CAACwJ,MAAM,CAAC,EAAE;MACpB,MAAM,IAAIoN,SAAS,CAAC,wFAAwF,CAAC;IAChH;IACDX,wBAAwB,CAACM,SAAS,CAAC,IAAI,EAAE/M,MAAM,CAAC;EACxD,CAAK;EACDoK,cAAc,CAAC/H,SAAS,CAACyJ,UAAU,GAAG,YAAY;IAC9CW,wBAAwB,CAACX,UAAU,CAAC,IAAI,CAAC;EACjD,CAAK;EACD1B,cAAc,CAACiD,QAAQ,GAAG,YAAY;IAClC,OAAO,gDAAgD;EAC/D,CAAK;EACD,OAAOjD,cAAc;AACzB,CAAC,EAAG;AChCS,MAAAkD,eAAA,GACX,OAAOpM,QAAA,KAAa,WAAe,IAAA,OAAOf,WAAW,WAAe,IAAAA,MAAA,CAAOiK,cACvE,GAAAjK,MAAA,CAAOiK,cACP,GAAAmD,cAAAA;ACqCC,MAAMC,uBAAuBC,0BAA2B,CAAA,CAAA;AAE/D,SAASC,+BAAwDA,CAAA,EAAA;EACxD,OAAA;IACLC,SAAAA,CAAUlP,SAASmP,UAAY,EAAA;MAC7B,MAAMvB,iBAAiB,IAAIiB,eAAA,CAAgBO,IAAA,IAAa;QAAA,IAAZ,CAACnF,KAAK,CAAM,GAAAmF,IAAA;QAC3CD,UAAA,CAAA;UACTE,cAAcpF,KAAM,CAAAjE,WAAA;UACpBsJ,MAAQ,EAAA;YACN/L,KAAO,EAAA0G,KAAA,CAAMnE,aAAc,CAAA,CAAC,CAAE,CAAA5C,UAAA;YAC9BrF,MAAQ,EAAAoM,KAAA,CAAMnE,aAAc,CAAA,CAAC,CAAE,CAAA3C;UACjC,CAAA;UACAxF,OAAS,EAAA;YACP4F,KAAA,EAAO0G,MAAMjE,WAAY,CAAAzC,KAAA;YACzB1F,MAAA,EAAQoM,MAAMjE,WAAY,CAAAnI;UAC5B;QAAA,CACD,CAAA;MAAA,CACF,CAAA;MAED+P,cAAA,CAAepC,QAAQxL,OAAO,CAAA;MAE9B,OAAO,MAAM;QACX4N,cAAA,CAAeU,UAAUtO,OAAO,CAAA;QAChC4N,cAAA,CAAeP,UAAW,CAAA,CAAA;MAAA,CAC5B;IACF;EAAA,CACF;AACF;AAEA,SAAS2B,0BAAmDA,CAAA,EAAA;EACpD,MAAAO,YAAA,GAAA,mBAAmBvK,OAAiC,EAAA;EACpD,MAAAwK,gBAAA,GAAA,mBAAuBxK,OAA+C,EAAA;EAErE,OAAA;IACLkK,SAAAA,CAAUlP,SAASmP,UAAY,EAAA;MAC7B,MAAMM,WAAc,GAAAD,gBAAA,CAAiBpJ,GAAI,CAAApG,OAAO,KAAK,EAAC;MAElD,IAAA0P,OAAA,GAAUH,YAAa,CAAAnJ,GAAA,CAAIpG,OAAO,CAAA;MAEtC,IAAI,CAACwP,gBAAA,CAAiBrJ,GAAI,CAAAnG,OAAO,CAAG,EAAA;QACjBwP,gBAAA,CAAAnJ,GAAA,CAAIrG,SAASyP,WAAW,CAAA;QAEzC,MAAMjP,WAAWyO,+BAAgC,EAAA;QAGjDS,OAAA,GAAUlP,QAAS,CAAA0O,SAAA,CAAUlP,OAAS,EAAC2P,WAAgB,IAAA;UACrD,KAAA,MAAWC,OAAOH,WAAa,EAAA;YAC7BG,GAAA,CAAID,WAAW,CAAA;UACjB;QAAA,CACD,CAAA;MACH;MAEAF,WAAA,CAAYrP,KAAK+O,UAAU,CAAA;MAE3B,OAAO,MAAM;QAGL,MAAAU,GAAA,GAAMJ,WAAY,CAAAhB,OAAA,CAAQU,UAAU,CAAA;QAE1C,IAAIU,MAAM,CAAI,CAAA,EAAA;UACAJ,WAAA,CAAAlF,MAAA,CAAOsF,KAAK,CAAC,CAAA;QAC3B;QAEI,IAAAJ,WAAA,CAAYnT,WAAW,CAAG,EAAA;UAExB,IAAAoT,OAAA,EAAiBA,OAAA,EAAA;QACvB;MAAA,CACF;IACF;EAAA,CACF;AACF;AC5GO,SAASI,eAAe9P,OAAiD,EAAA;EAC9E,MAAM,CAAC7B,IAAA,EAAM4R,OAAO,CAAA,GAAIpP,SAA6B,IAAI,CAAA;EAEzDK,SAAA,CAAU,MAAM;IACd,IAAI,CAAChB,OAAA,EAAgB,OAAA,KAAA,CAAA;IAEd,OAAA+O,oBAAA,CAAqBG,SAAU,CAAAlP,OAAA,EAAS+P,OAAO,CAAA;EAAA,CACxD,EAAG,CAAC/P,OAAO,CAAC,CAAA;EAEL,OAAA7B,IAAA;AACT;ACTO,SAAS6R,eAAehQ,OAAqD,EAAA;EAC5E,MAAAiQ,WAAA,GAAcH,eAAe9P,OAAO,CAAA;EAE1C,OAAA,CAAOiQ,2CAAaZ,YAAgB,KAAA,IAAA;AACtC;ACPO,SAASa,iBAAiBC,SAAiD,EAAA;EAChF,OAAOnP,UAAU,MAAM;IACrBW,gBAAA,CAAiB,WAAWwO,SAAS,CAAA;IAE9B,OAAA,MAAMvO,mBAAoB,CAAA,SAAA,EAAWuO,SAAS,CAAA;EAAA,CACvD,EAAG,CAACA,SAAS,CAAC,CAAA;AAChB;ACDA,SAASC,cAAiBA,CAAA,EAAA;EACxB,IAAI,OAAOC,UAAe,KAAA,WAAA,EAAoB,OAAAA,UAAA;EAC9C,IAAI,OAAO3O,MAAW,KAAA,WAAA,EAAoB,OAAAA,MAAA;EAC1C,IAAI,OAAO4O,IAAS,KAAA,WAAA,EAAoB,OAAAA,IAAA;EACxC,IAAI,OAAOxL,MAAW,KAAA,WAAA,EAAoB,OAAAA,MAAA;EAEpC,MAAA,IAAIvI,MAAM,2CAA2C,CAAA;AAC7D;AAEO,MAAMgU,cAAcH,cAAe,CAAA,CAAA;ACf1C,MAAMpV,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAwC,IAAI,CAAA;AAKtE,MAAAC,YAAA,GAAkDF,YAAYvV,KAAG,CAAA;ACcvE,SAAS0V,cAAcvU,KAA+C,EAAA;EACrE,MAAAwU,WAAA,GAAcC,WAAWH,YAAY,CAAA;EACrC,MAAA;IACJI,QAAA;IACAC,MAAA,GAAA,CAASH,2CAAaG,MAAU,KAAA,OAAA;IAChC5U,KAAA,EAAO6U,SAAY,GAAA,CAAAJ,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAazU,KAAS,KAAA,IAAA;IACzC8U,IAAA,GAAA,CAAOL,2CAAaK,IAAQ,KAAA;EAC1B,CAAA,GAAA7U,KAAA;EAEE,MAAA8U,YAAA,GAAyCrR,QAAQ,MAAM;IAC3D,IAAI,CAACmR,SAAA,EAAkB,OAAA,IAAA;IAEhB,OAAA;MACLG,OAAS,EAAA,CAAA;MACThV,KAAO,EAAA6U,SAAA;MACPD,MAAA;MACAE;IAAA,CACF;EACC,CAAA,EAAA,CAACD,SAAW,EAAAD,MAAA,EAAQE,IAAI,CAAC,CAAA;EAEtB,MAAA9U,KAAA,GAAsB0D,QAAQ,MAAM;IACxC,IAAI,CAACmR,SAAA,EAAkB,OAAA,IAAA;IAEhB,OAAAI,cAAA,CAAeJ,SAAW,EAAAD,MAAA,EAAQE,IAAI,CAAA;EAC5C,CAAA,EAAA,CAACF,MAAQ,EAAAC,SAAA,EAAWC,IAAI,CAAC,CAAA;EAE5B,IAAI,CAAC9U,KAAO,EAAA;IACH,OAAA,eAAAkV,GAAA,CAAC;MAAIP,QAA2C,EAAA;IAAA,CAAA,CAAA;EACzD;EAGE,OAAA,eAAAO,GAAA,CAACX,YAAa,CAAAY,QAAA,EAAb;IAAsBxW,KAAA,EAAOoW;IAC5BJ,QAAC,iBAAAO,GAAA,CAAAE,eAAA,EAAA;MAAoBpV,KAAe;MAAA2U;IAAS,CAAA;EAC/C,CAAA,CAAA;AAEJ;ACrDO,SAASU,YAAkCA,CAAA,EAAA;EAC1C,MAAA1W,KAAA,GAAQ+V,WAAWH,YAAY,CAAA;EAErC,IAAI,CAAC5V,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,uCAAuC,CAAA;EACzD;EAEO,OAAA1B,KAAA;AACT;ACCO,SAAS2W,mBAAmBrV,KAAoD,EAAA;EACrF,MAAM;IAAC0U,QAAA;IAAUC,MAAQ;IAAAE;EAAA,CAAQ,GAAA7U,KAAA;EACjC,MAAMsV,OAAOF,YAAa,EAAA;EAGxB,OAAA,eAAAH,GAAA,CAACV,aAAc,EAAA;IAAAI,MAAA,EAAQA,MAAU,IAAAW,IAAA,CAAKX;IAAQ5U,KAAO,EAAAuV,IAAA,CAAKvV,KAAO;IAAA8U,IAAA;IAC9DH;EACH,CAAA,CAAA;AAEJ;ACnBO,SAASa,QAAkBA,CAAA,EAAA;EAChC,OAAOC,UAAe,CAAA,CAAA;AACxB;AAKO,SAASC,WAAwBA,CAAA,EAAA;EAC/B,OAAAnV,WAAA,CAAYkV,YAAyB,CAAA;AAC9C;ACJA,MAAME,iBAAA,GAAA,mBAAwB7M,OAA+B,EAAA;AAO7D,SAAS8M,cAAAA,CAAezW,OAAiBkT,KAA2B,EAAA;EAClE,IAAIA,UAAU,CAAG,EAAA;IACf,OAAO,yBAA0B,CAAApT,MAAA,CAAAE,KAAA,CAAMkT,KAAK,CAAA,GAAI,CAAC,EAAA,KAAA,CAAA;EACnD;EAEI,IAAAA,KAAA,KAAUlT,MAAMiB,MAAQ,EAAA;IAC1B,OAAO,yBAA0B,CAAAnB,MAAA,CAAAE,KAAA,CAAMkT,KAAQ,GAAA,CAAC,CAAC,EAAA,KAAA,CAAA;EACnD;EAEO,OAAA,yBAAA,CAA0BpT,aAAMoT,KAAQ,GAAA,CAAC,GAAC,sBAAuB,CAAA,CAAApT,MAAA,CAAAE,KAAA,CAAMkT,KAAK,CAAA,GAAI,CAAC,EAAA,KAAA,CAAA;AAC1F;AAEA,SAASwD,kBAAkB1W,KAA8B,EAAA;EACvD,MAAM2W,WAAW3W,KAAM,CAAAiB,MAAA;EACnB,IAAAW,KAAA;EAKJ,MAAMgV,WAAWA,CAAA,KAAM;IACrB,IAAI,CAAChV,KAAO,EAAA;MACVA,KAAA,GAAQ,EAAC;MAET,KAAA,IAASsR,KAAQ,GAAAyD,QAAA,EAAUzD,KAAQ,GAAA,CAAA,CAAA,EAAIA,SAAS,CAAG,EAAA;QAC3C,MAAA2D,UAAA,GAAaJ,cAAe,CAAAzW,KAAA,EAAOkT,KAAK,CAAA;QAExCtR,KAAA,CAAAmD,IAAA,CAAK;UAACmO,KAAO;UAAA4D,EAAA,EAAIzQ,OAAO0Q,UAAW,CAAAF,UAAU;SAAE,CAAA;MACvD;IACF;IAEO,OAAAjV,KAAA;EAAA,CACT;EAEA,MAAMoV,cAAcA,CAAA,KAAM;IACxB,KAAA,MAAW;MAAC9D,KAAA;MAAO4D;IAAE,CAAA,IAAKF,UAAY,EAAA;MACpC,IAAIE,EAAG,CAAAG,OAAA,EAAgB,OAAA/D,KAAA;IACzB;IAEO,OAAA,CAAA;EAAA,CACT;EAEM,MAAAW,SAAA,GAAaqD,aAA8B,IAAA;IAC/C,MAAMC,aAA6B,EAAC;IAEpC,KAAA,MAAW;MAACL;KAAO,IAAAF,QAAA,EAAY,EAAA;MAC7B,MAAMQ,eAAeA,CAAA,KAAM;QACzB,IAAIN,EAAG,CAAAG,OAAA,EAAuBC,aAAA,EAAA;MAAA,CAChC;MAEGJ,EAAA,CAAAxQ,gBAAA,CAAiB,UAAU8Q,YAAY,CAAA;MAE1CD,UAAA,CAAWpS,KAAK,MAAM+R,EAAA,CAAGvQ,mBAAoB,CAAA,QAAA,EAAU6Q,YAAY,CAAC,CAAA;IACtE;IAEA,OAAO,MAAM;MACX,KAAA,MAAWC,aAAaF,UAAY,EAAA;QACxBE,SAAA,EAAA;MACZ;IAAA,CACF;EAAA,CACF;EAEO,OAAA;IAACL;IAAanD;GAAS;AAChC;AASA,SAASyD,mBAAoBC,CAAA,EAAA;EACpB,OAAA,CAAA;AACT;AAMO,SAASC,aAAwBA,CAAA,EAAA;EAChC,MAAA;IAACxX;GAAK,GAAIuW,WAAY,EAAA;EAExB,IAAAkB,KAAA,GAAQjB,iBAAkB,CAAAzL,GAAA,CAAI/K,KAAK,CAAA;EAEvC,IAAI,CAACyX,KAAO,EAAA;IACVA,KAAA,GAAQf,kBAAkB1W,KAAK,CAAA;IACbwW,iBAAA,CAAAxL,GAAA,CAAIhL,OAAOyX,KAAK,CAAA;EACpC;EAEA,OAAOC,oBAAqB,CAAAD,KAAA,CAAM5D,SAAW,EAAA4D,KAAA,CAAMT,aAAaM,mBAAiB,CAAA;AACnF;AC1GA,IAAIK,mBAAA;AAKJ,SAASC,eAAgCC,CAAA,EAAA;EACvC,IAAI,CAACF,mBAAmB,EAAA;IAGFA,mBAAA,GAAAtR,MAAA,CAAO0Q,WAAW,8BAA8B,CAAA;EACtE;EAEO,OAAAY,mBAAA;AACT;AAYA,SAAS9D,YAAUqD,aAAuC,EAAA;EACxD,MAAMH,aAAaa,eAAc,EAAA;EAEtBb,UAAA,CAAAzQ,gBAAA,CAAiB,UAAU4Q,aAAa,CAAA;EAEnD,OAAO,MAAMH,UAAA,CAAWxQ,mBAAoB,CAAA,QAAA,EAAU2Q,aAAa,CAAA;AACrE;AAOA,SAASF,aAAcc,CAAA,EAAA;EACrB,OAAOF,gBAAgB,CAAA,CAAAX,OAAA;AACzB;AASA,SAASK,mBAAoBS,CAAA,EAAA;EACpB,OAAA,KAAA;AACT;AAKO,SAASC,cAA0BA,CAAA,EAAA;EACjC,OAAAN,oBAAA,CAAqB7D,WAAW,EAAAmD,aAAA,EAAaM,mBAAiB,CAAA;AACvE;AC1DA,IAAIK,iBAAA;AAKJ,SAASC,aAAgCA,CAAA,EAAA;EACvC,IAAI,CAACD,iBAAmB,EAAA;IAGFA,iBAAA,GAAAtR,MAAA,CAAO0Q,WAAW,kCAAkC,CAAA;EAC1E;EAEO,OAAAY,iBAAA;AACT;AAYA,SAAS9D,UAAUqD,aAAuC,EAAA;EACxD,MAAMH,aAAaa,aAAc,EAAA;EAEtBb,UAAA,CAAAzQ,gBAAA,CAAiB,UAAU4Q,aAAa,CAAA;EAEnD,OAAO,MAAMH,UAAA,CAAWxQ,mBAAoB,CAAA,QAAA,EAAU2Q,aAAa,CAAA;AACrE;AAOA,SAASF,WAAcA,CAAA,EAAA;EACrB,OAAOY,cAAgB,CAAA,CAAAX,OAAA;AACzB;AASA,SAASK,iBAAoBA,CAAA,EAAA;EACpB,OAAA,KAAA;AACT;AAMO,SAASW,uBAAmCA,CAAA,EAAA;EAC1C,OAAAP,oBAAA,CAAqB7D,SAAW,EAAAmD,WAAA,EAAaM,iBAAiB,CAAA;AACvE;ACxDO,MAAMY,mBAAsB,GAAA,OAAO7R,MAAW,KAAA,WAAA,GAAc8R,eAAkB,GAAAxS,SAAA;ACC9E,SAASyS,gBAAmBC,GAA8D,EAAA;EACzF,MAAAC,QAAA,GAAW5S,OAAiB,IAAI,CAAA;EAEtCwS,mBAAA,CAAoB,MAAM;IACxB,IAAI,CAACG,GAAA,EAAK;IAEN,IAAA,OAAOA,QAAQ,UAAY,EAAA;MAC7BA,GAAA,CAAIC,SAASzS,OAAO,CAAA;IAAA,CACf,MAAA;MACLwS,GAAA,CAAIxS,UAAUyS,QAAS,CAAAzS,OAAA;IACzB;EAAA,CACD,CAAA;EAEM,OAAAyS,QAAA;AACT;ACfgB,SAAAC,iBAAAA,CACdF,KACAG,cACM,EAAA;EACN7S,SAAA,CAAU,MAAM;IACd,IAAI0S,IAAIxS,OAAS,EAAA;MACXwS,GAAA,CAAAxS,OAAA,CAAQ4S,iBAAkB,CAAAD,cAAA,IAAkB,EAAE,CAAA;IACpD;EAAA,CACC,EAAA,CAACA,cAAgB,EAAAH,GAAG,CAAC,CAAA;AAC1B;ACTO,SAASK,qBAEdA,CAAA,EAAA;EACA,OAAO,CAACzE,MAAA,EAAQjI,SAAW,EAAAE,WAAA,EAAaE,cAAcE,UAAU,CAAA;AAClE;AAEA,SAAS2H,OAAOnT,KAAgD,EAAA;EAXhE,IAAA2H,EAAA,EAAAO,EAAA;EAYE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAA+X,OAAA,EAAUrZ,KAAA,IACxCA,KAAQ,GAAA;IAAC,MAAM;MAACyU,MAAA,EAAQ2E;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC3E,MAAA,EAAQ;;EAAE,CAAA,CAC5D;AACF;AAEA,SAASjI,UAAUlL,KAAgD,EAAA;EApBnE,IAAA2H,EAAA,EAAAO,EAAA;EAqBE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAgY,UAAA,EAAatZ,KAAA,IAC3CA,KAAQ,GAAA;IAAC,MAAM;MAACwM,SAAA,EAAW4M;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC5M,SAAA,EAAW;;EAAE,CAAA,CAClE;AACF;AAEA,SAASE,YAAYpL,KAAgD,EAAA;EA7BrE,IAAA2H,EAAA,EAAAO,EAAA;EA8BE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAiY,YAAA,EAAevZ,KAAA,IAC7CA,KAAQ,GAAA;IAAC,MAAM;MAAC0M,WAAA,EAAa0M;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAAC1M,WAAA,EAAa;;EAAE,CAAA,CACtE;AACF;AAEA,SAASE,aAAatL,KAAgD,EAAA;EAtCtE,IAAA2H,EAAA,EAAAO,EAAA;EAuCE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAkY,aAAA,EAAgBxZ,KAAA,IAC9CA,KAAQ,GAAA;IAAC,MAAM;MAAC4M,YAAA,EAAcwM;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAACxM,YAAA,EAAc;;EAAE,CAAA,CACxE;AACF;AAEA,SAASE,WAAWxL,KAAgD,EAAA;EA/CpE,IAAA2H,EAAA,EAAAO,EAAA;EAgDE,MAAM;IAAC2P,IAAM;IAAA3Y;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC7C,MAAM+X,cAAc,EAAG,CAAA9Y,MAAA,CAAA,CAAAkJ,EAAA,GAAA,CAAAP,EAAA,GAAAkQ,IAAA,CAAK1E,WAAL,IAAa,GAAA,KAAA,CAAA,GAAAxL,EAAA,CAAAP,KAAA,KAAb,YAAsB,CAAC,EAAA,mCAAA,CAAA;EAEvC,OAAAnI,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAAmY,WAAA,EAAczZ,KAAA,IAC5CA,KAAQ,GAAA;IAAC,MAAM;MAAC8M,UAAA,EAAYsM;IAAW;EAAA,IAAK;IAAC,IAAA,EAAM;MAACtM,UAAA,EAAY;;EAAE,CAAA,CACpE;AACF;AChDA,MAAM4M,YAAwB,GAAA;EAC5B,iCAAmC,EAAA;IACjCC,SAAW,EAAA;EACb;AACF,CAAA;AAEA,MAAMC,UAAkD,GAAA;EACtD9W,OAAS,EAAA,aAAA;EACT2R,MAAQ,EAAA;AACV,CAAA;AAEA,MAAMoF,UAAa,GAAA;EACjBC,OAAS,EAAA,SAAA;EACTC,IAAM,EAAA;AACR,CAAA;AAEO,SAASC,QAAsBA,CAAA,EAAA;EAC7B,OAAAN,YAAA;AACT;AAEO,SAASO,kBAEdA,CAAA,EAAA;EACO,OAAA,CACLC,wBAAA,EACAC,wBAAA,EACAC,0BAAA,EACAC,yBAAA,CACF;AACF;AAEA,SAASA,0BAA0B/Y,KAA6C,EAAA;EAC9E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAgZ,QAAA,EAAWvX,OAAa,KAAA;IACtD,iBAAA,EAAmB;MAACA;IAAO;EAC3B,CAAA,CAAA,CAAA;AACJ;AAEA,SAASmX,yBAAyB5Y,KAA6C,EAAA;EAC7E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAiZ,OAAA,EAAUC,MAAY,KAAA;IACpD1O,SAAA,EAAW8N,WAAWY,MAAM;EAC5B,CAAA,CAAA,CAAA;AACJ;AAEA,SAASL,yBAAyB7Y,KAA6C,EAAA;EAC7E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmZ,OAAA,EAAUzX,MAAY,KAAA;IACpDA,MAAA,EAAQ6W,WAAW7W,MAAM;EACzB,CAAA,CAAA,CAAA;AACJ;AAEA,SAASoX,2BAA2B9Y,KAA6C,EAAA;EAC/E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoZ,SAAA,EAAYC,QAAc,KAAA;IACxDA;EACA,CAAA,CAAA,CAAA;AACJ;AC9DA,MAAMjB,YAAwB,GAAA;EAC5B,kBAAoB,EAAA;IAClB3W,OAAS,EAAA;EACX;AACF,CAAA;AAEO,SAAS6X,mBAEdA,CAAA,EAAA;EACO,OAAA,CACLlB,YAAA,EACAmB,wBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,0BAAA,EACAC,4BAAA,CACF;AACF;AAEO,SAASJ,yBACdvZ,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAoD,MAAA,EAASwW,KAAU,IAAA;IAC1C,OAAA;MAACC,YAAYD;KAAK;EAAA,CAC1B,CAAA;AACH;AAEA,SAASJ,uBAAuBxZ,KAA8C,EAAA;EAC5E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA8Z,IAAA,EAAOC,GAAS,KAAA;IAC9CA,KAAKA,GAAM,GAAAjb,GAAA,CAAIuB,KAAM,CAAA0Z,GAAG,CAAC,CAAI,GAAA,KAAA;EAC7B,CAAA,CAAA,CAAA;AACJ;AAEO,SAASN,wBAAwBzZ,KAA2D,EAAA;EACjG,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAga,KAAA,EAAQC,IAAS,IAAA;IACxC,OAAA;MAACC,UAAUD;KAAI;EAAA,CACvB,CAAA;AACH;AAEO,SAASP,2BACd1Z,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAma,QAAA,EAAWC,OAAY,IAAA;IAC9C,OAAA;MAACC,gBAAgBD;KAAO;EAAA,CAChC,CAAA;AACH;AAEO,SAAST,6BACd3Z,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAsa,UAAA,EAAaC,SAAc,IAAA;IAClD,OAAA;MAACC,eAAeD;KAAS;EAAA,CACjC,CAAA;AACH;AC9DA,MAAMnC,YAAwB,GAAA;EAC5BqC,QAAU,EAAA,CAAA;EACVC,SAAW,EAAA;AACb,CAAA;AAEO,SAASC,aAEdA,CAAA,EAAA;EACO,OAAA,CAACvC,cAAYwC,uBAAuB,CAAA;AAC7C;AAEO,SAASA,wBACd5a,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,IAAI,CAACC,KAAM,CAAA6a,KAAA,EAAc,OAAA/c,WAAA;EAElB,OAAAmB,WAAA,CAAYC,OAAOc,KAAM,CAAA6a,KAAA,EAAQC,IAAU,KAAA;IAACA;EAAM,CAAA,CAAA,CAAA;AAC3D;ACvBO,SAASC,qBAAqB5H,MAAgD,EAAA;EACnF,OAAO,cAAe,CAAAnU,MAAA,CAAAmU,MAAA,CAAO/L,KAAK,EAAA,KAAA,CAAA,CAAMpI,MAAO,CAAAmU,MAAA,CAAA6H,KAAA,CAAA;AACjD;AAEO,SAASC,eAAeC,IAIpB,EAAA;EACT,MAAM;IAAC/Z,IAAA;IAAMgS,MAAQ;IAAAgI;EAAA,CAAa,GAAAD,IAAA;EAC5B,MAAAE,oBAAA,GAAuBD,SAAU,CAAAE,MAAA,GAASF,SAAU,CAAA/T,KAAA;EACpD,MAAAkU,mBAAA,GAAsB,IAAIH,SAAU,CAAAE,MAAA;EACpC,MAAAE,OAAA,GAAUpa,IAAO,GAAAA,IAAA,CAAKqa,EAAK,GAAA,sBAAA;EAE1B,OAAA,CACLF,mBAAA,GAAsB,CAAK,IAAA,cAAA,CAAetc,MAAmB,CAAAsc,mBAAA,EAAA,iCAAA,CAAA,EAC7DnI,MAAA,IAAU4H,qBAAqB5H,MAAM,CAAA,EACrCmI,mBAAsB,GAAA,CAAA,IAAK,QAAS,CAAAtc,MAAA,CAAA,CAAA,GAAIsc,qBAAmB,KAAM,CAAA,CAAAtc,MAAA,CAAAuc,OAAA,CAAA,EACjEH,oBAAA,GAAuB,CAAK,IAAA,QAAA,CAASpc,MAAoB,CAAAoc,oBAAA,EAAA,iCAAA,CAAA,CAExD,CAAAlX,MAAA,CAAOC,OAAO,CAAA,CACdsX,KAAK,GAAG,CAAA;AACb;ACnBA,MAAMC,QAAW,GAAA;EACf,kBAAoB,EAAA;IAClBja,OAAS,EAAA;EACX,CAAA;EACA,iCAAmC,EAAA;IACjC4W,SAAW,EAAA;EACb;AACF,CAAA;AAEA,MAAMsD,gBAAmB,GAAA;EACvBC,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,aAAA;EACLC,GAAK,EAAA,aAAA;EACLC,EAAI,EAAA;AACN,CAAA;AAEA,MAAMC,cAAiB,GAAA;EACrBJ,IAAM,EAAA,MAAA;EACNC,GAAK,EAAA,aAAA;EACLC,GAAK,EAAA,aAAA;EACLC,EAAI,EAAA;AACN,CAAA;AAEO,SAASE,mBAEdA,CAAA,EAAA;EACO,OAAA,CACLP,QAAA,EACAQ,2BAAA,EACAC,2BAAA,EACAC,2BAAA,EACAC,0BAAA,EACAC,uBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,uBAAA,CACF;AACF;AAEA,SAASP,4BAA4Blc,KAA8C,EAAA;EACjF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA0c,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAc,EAAAD;EACd,CAAA,CAAA,CAAA;AACJ;AAEA,SAASR,4BAA4Bnc,KAA8C,EAAA;EACjF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6c,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAA,EAAcD,QAAY,IAAAd,cAAA,CAAec,QAAQ;EACjD,CAAA,CAAA,CAAA;AACJ;AAEA,SAASV,4BAA4Bpc,KAA8C,EAAA;EACjF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAgd,SAAA,EAAYC,QAAc,KAAA;IACxDC,eAAA,EAAiBD,QAAY,IAAAtB,gBAAA,CAAiBsB,QAAQ;EACtD,CAAA,CAAA,CAAA;AACJ;AAEA,SAASZ,2BAA2Brc,KAA8C,EAAA;EAChF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmd,QAAA,EAAWC,OAAa,KAAA;IACtDC,mBAAA,EAAqBD,OAAW,IAAA,SAAA,CAAUpe,MAAO,CAAAoe,OAAA,EAAA,kBAAA;EACjD,CAAA,CAAA,CAAA;AACJ;AAEA,SAASd,wBAAwBtc,KAA8C,EAAA;EAC7E,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAsd,KAAA,EAAQC,IAAU,KAAA;IAChDC,gBAAA,EAAkBD,IAAQ,IAAA,SAAA,CAAUve,MAAI,CAAAue,IAAA,EAAA,kBAAA;EACxC,CAAA,CAAA,CAAA;AACJ;AAEA,SAAShB,uBAAuBvc,KAA8C,EAAA;EAC5E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA8Z,IAAA,EAAOC,GAAS,KAAA;IAC9C0D,SAAS1D,GAAM,GAAAjb,GAAA,CAAIuB,KAAM,CAAA0Z,GAAG,CAAC,CAAI,GAAA,KAAA;EACjC,CAAA,CAAA,CAAA;AACJ;AAEA,SAASyC,wBAAwBxc,KAA8C,EAAA;EAC7E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA0d,KAAA,EAAQC,IAAU,KAAA;IAChDC,WAAWD,IAAO,GAAA7e,GAAA,CAAIuB,KAAM,CAAAsd,IAAI,CAAC,CAAI,GAAA,KAAA;EACrC,CAAA,CAAA,CAAA;AACJ;AAEA,SAASlB,wBAAwBzc,KAA8C,EAAA;EAC7E,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6d,KAAA,EAAQC,IAAU,KAAA;IAChDC,QAAQD,IAAO,GAAAhf,GAAA,CAAIuB,KAAM,CAAAyd,IAAI,CAAC,CAAI,GAAA,KAAA;EAClC,CAAA,CAAA,CAAA;AACJ;ACrGO,SAASE,uBAEdA,CAAA,EAAA;EACO,OAAA,CACLC,0BAAA,EACAC,+BAAA,EACAC,6BAAA,EACAC,6BAAA,EACAC,kCAAA,EACAC,gCAAA,CACF;AACF;AAEA,MAAMC,aAAgB,GAAA;EACpB3C,IAAM,EAAA,MAAA;EACN4C,IAAM,EAAA;AACR,CAAA;AAEA,MAAMC,gBAAmB,GAAA;EACvB7C,IAAM,EAAA,MAAA;EACN4C,IAAM,EAAA;AACR,CAAA;AAEA,SAASP,2BAA2Bje,KAAkD,EAAA;EACpF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA0e,IAAA,EAAOC,GAAQ,IAAA;IACzC,IAAA,OAAOA,QAAQ,QAAU,EAAA;MAC3B,OAAO;QAACC,OAAA,EAAS,OAAQ,CAAA5f,MAAA,CAAA2f,GAAA,EAAG,YAAW3f,MAAK,CAAA2f,GAAA;OAAA;IAC9C;IAEA,OAAO;MAACC,OAAA,EAASL,aAAc,CAAAI,GAAG;IAAC,CAAA;EAAA,CACpC,CAAA;AACH;AAEA,SAAST,gCAAgCle,KAAkD,EAAA;EACzF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6e,SAAA,EAAYC,QAAc,KAAA;IACxDC,YAAc,EAAAD;EACd,CAAA,CAAA,CAAA;AACJ;AAEA,SAASX,8BAA8Bne,KAAkD,EAAA;EACvF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAAd,WAAA,CAAYC,OAAOc,KAAM,CAAAgf,OAAA,EAAUC,MAAY,KAAA;IAACC,UAAY,EAAAD;EAAQ,CAAA,CAAA,CAAA;AAC7E;AAEA,SAASb,8BAA8Bpe,KAAkD,EAAA;EACvF,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmf,OAAA,EAAUC,MAAW,IAAA;IAC/C,IAAA,OAAOA,WAAW,QAAU,EAAA;MAC9B,OAAO;QAACC,UAAA,EAAY,OAAQ,CAAArgB,MAAA,CAAAogB,MAAA,EAAM,YAAWpgB,MAAQ,CAAAogB,MAAA;OAAA;IACvD;IAEA,OAAO;MAACC,UAAA,EAAYZ,gBAAiB,CAAAW,MAAM;IAAC,CAAA;EAAA,CAC7C,CAAA;AACH;AAEA,SAASf,mCAAmCre,KAAkD,EAAA;EAC5F,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAsf,YAAA,EAAeC,WAAiB,KAAA;IAC9DC,eAAiB,EAAAD;EACjB,CAAA,CAAA,CAAA;AACJ;AAEA,SAASjB,iCAAiCte,KAAkD,EAAA;EAC1F,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAyf,UAAA,EAAaC,SAAe,KAAA;IAC1DC,aAAe,EAAAD;EACf,CAAA,CAAA,CAAA;AACJ;ACpEO,SAASE,4BACd5f,KACa,EAAA;EACb,MAAM;IAAC6f,SAAW;IAAAC,SAAA;IAAWC,UAAY;IAAAC,QAAA;IAAUC;EAAU,CAAA,GAAAjgB,KAAA;EAC7D,MAAM;IAACY,IAAM;IAAA1B,KAAA;IAAOmB;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC9C,MAAAmgB,GAAA,GAAMxd,KAAKoZ,GAAI,CAAAkE,QAAA,CAAS7f,QAAQ8f,MAAO,CAAA9f,MAAA,EAAQ0f,UAAU1f,MAAM,CAAA;EACrE,MAAMggB,WAAqB,EAAC;EAC5B,MAAMC,SAAmB,EAAC;EAC1B,MAAMC,YAAsB,EAAC;EAE7B,KAAA,IAASzO,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;IACrByO,SAAA,CAAAzO,CAAC,CAAI,GAAAiO,SAAA,CAAUjO,CAAC,CAAA,KAAM,KAAY,CAAA,GAAAyO,SAAA,CAAUzO,CAAI,GAAA,CAAC,CAAI,GAAAiO,SAAA,CAAUjO,CAAC,CAAA;IACjEuO,QAAA,CAAAvO,CAAC,CAAI,GAAAoO,QAAA,CAASpO,CAAC,CAAA,KAAM,KAAY,CAAA,GAAAuO,QAAA,CAASvO,CAAI,GAAA,CAAC,CAAI,GAAAoO,QAAA,CAASpO,CAAC,CAAA;IAC/DwO,MAAA,CAAAxO,CAAC,CAAI,GAAAqO,MAAA,CAAOrO,CAAC,CAAA,KAAM,KAAY,CAAA,GAAAwO,MAAA,CAAOxO,CAAI,GAAA,CAAC,CAAI,GAAAqO,MAAA,CAAOrO,CAAC,CAAA;EAChE;EAEA,OAAO3S,WAAY,CAAAC,KAAA,EAAOihB,QAAU,EAAA,CAACG,GAAG1O,CAAM,KAAA;IACtC,MAAA5P,IAAA,GAAOpB,IAAK,CAAA2f,IAAA,CAAKzf,KAAM,CAAAuf,SAAA,CAAUzO,CAAC,CAAC,CAAK,IAAAhR,IAAA,CAAK2f,IAAK,CAAAzf,KAAA,CAAM,CAAC,CAAA;IAC/D,MAAM0f,MAAS,GAAAxe,IAAA,CAAKK,UAAa,GAAAL,IAAA,CAAKC,iBAAiBD,IAAK,CAAAE,eAAA;IAC5D,MAAMhF,CAAI,GAAAmD,KAAA,CAAM8f,QAAS,CAAAvO,CAAC,CAAC,CAAA;IAC3B,MAAM6O,CAAI,GAAApgB,KAAA,CAAM+f,MAAO,CAAAxO,CAAC,CAAC,CAAA;IAEzB,MAAM8O,MAAS,GAAA;MACb5V,UAAY,EAAAhM,GAAA,CAAI5B,CAAI,GAAA8E,IAAA,CAAKC,cAAc,CAAA;MACvC8I,YAAA,EAAcjM,IAAI5B,CAAC,CAAA;MACnB8N,aAAe,EAAAlM,GAAA,CAAI5B,CAAI,GAAA8E,IAAA,CAAKE,eAAe,CAAA;MAC3C+I,WAAA,EAAanM,IAAI5B,CAAC;IAAA,CACpB;IAEI,IAAA6iB,UAAA,EAAYW,MAAA,CAAO3V,YAAe,GAAAjM,GAAA,CAAI5B,CAAI,GAAAsjB,MAAA,GAASC,CAAC,CAAA;IACpD,IAAAX,SAAA,EAAWY,MAAA,CAAOzV,WAAc,GAAAnM,GAAA,CAAI5B,CAAI,GAAAsjB,MAAA,GAASC,CAAC,CAAA;IAE/C,OAAAC,MAAA;EAAA,CACR,CAAA;AACH;AAsBO,SAASC,qCACd3gB,KAKa,EAAA;EACb,OAAO4f,4BAA4B;IAAC,GAAG5f,KAAO;IAAA+f,UAAA,EAAY;EAAK,CAAA,CAAA;AACjE;;;;;;AC5EA,IAAApY,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AA6BA,MAAMC,aAAaC,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,4EAAA,CAAA,CAAA,CAAA,CAAA;AAQf,SAASC,kBAA6CA,CAAA,EAAA;EACpD,OAAAH,UAAA;AACT;AAEO,SAASI,mBACdjhB,KACwB,EAAA;EACxB,MAAM;IAACkhB,OAAA;IAASC,KAAO;IAAAxgB;EAAA,CAAW,GAAAX,KAAA;EAClC,MAAM;IAACgb,KAAO;IAAApa;EAAA,CAAQ,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE7C,OAAO+gB,oBAAGC,YAQuB,CAAA,CAAA,6KAAA,EAAA,sBAAA,EACoD,kpBA2B3D,EAAA,gBAAA,EAAsB,kCACM,sCACkB,EAAA,8GAAA,EAIhB,wCACkB,EAAA,kGAAA,EAKjB,0CACkB,kFAKnB,EAAA,wCAAA,EACkB,qFAKjB,EAAA,wCAAA,EACkB,4BArD1DngB,IAAK,CAAA2f,IAAA,CAAK1f,MACT,EAAAF,OAAA,IAAWC,KAAK2f,IAAK,CAAAxf,OAAA,CAAQJ,OAAO,CAAA,IAAMC,KAAK2f,IAAK,CAAAxf,OAAA,CAAQE,OA2B3D,EAAAigB,OAAA,EAAwBC,OACnBnG,KAAM,CAAAoG,KAAA,CAAMC,QAAQC,OAAQ,CAAAC,EAAA,EACnBvG,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAE,WAAA,EAInCxG,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA,EACnBvG,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAE,WAAA,EAKrCxG,MAAMoG,KAAM,CAAAC,OAAA,CAAQI,SAASF,EACpB,EAAAvG,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASD,WAKtC,EAAAxG,KAAA,CAAMoG,MAAMM,OAAQ,CAAAJ,OAAA,CAAQC,EACnB,EAAAvG,KAAA,CAAMoG,MAAMM,OAAQ,CAAAJ,OAAA,CAAQE,WAKrC,EAAAxG,KAAA,CAAMoG,MAAMC,OAAQ,CAAAM,QAAA,CAASJ,IACpBvG,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAH,WAAA,CAAA;AAIlE;AAEO,SAASI,uBAAuB5hB,KAA2D,EAAA;EAChG,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE7C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAA6f,SAAA,EAAY/d,SAAc,IAAA;IAClD,MAAAE,IAAA,GAAOpB,KAAK2f,IAAK,CAAAzf,KAAA,CAAMgB,SAAS,CAAK,IAAAlB,IAAA,CAAK2f,IAAK,CAAAzf,KAAA,CAAM,CAAC,CAAA;IAErD,OAAA;MACLiB,QAAA,EAAUjD,GAAI,CAAAkD,IAAA,CAAKD,QAAQ,CAAA;MAC3BM,UAAA,EAAYL,IAAK,CAAAK,UAAA,GAAaL,IAAK,CAAAD;IAAA,CACrC;EAAA,CACD,CAAA;AACH;AAEO,SAAS8f,6BACd7hB,KACwB,EAAA;EACxB,MAAM;IAAC8hB,UAAY;IAAAC,UAAA;IAAYb,OAAS;IAAAC,KAAA;IAAOa;EAA6B,CAAA,GAAAhiB,KAAA;EAC5E,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAA+gB,GAAA,CAAAF,IAAA,KAAAA,IAAA,GAAGG,gUAe4C,oCACG,EAAA,kCAAA,EACF,uCACG,0BAEhC,EAAA,gBAAA,EAAsB,+BACK,EAAA,4BAAA,EACA,mGAO7C,EAAA,oGAAA,EAK+C,gCACA,+DAM7C,EAAA,4IAAA,EAYI,kFAM+C,kGAML,EAAA,yCAAA,EACA,4EAM9C,mGAM8C,EAAA,yCAAA,EACA,8KAMC,EAAA,gCAAA,EACA,6IAO/C,EAAA,kCAAA,CAAA,CAAA,CAAA,EA9EkBe,aAAa,CAAI,GAAA,KAAA,CAAA,EACdA,aAAa,CAAI,GAAA,KAAA,CAAA,EACnBC,aAAa,CAAI,GAAA,KAAA,CAAA,EACdA,UAAa,GAAA,CAAA,GAAI,KAE9B,CAAA,EAAAb,OAAA,EAAwBC,OACpBnG,KAAM,CAAAoG,KAAA,CAAMC,QAAQC,OAAQ,CAAA9F,EAAA,EAC5BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA,EAIvBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKkB4T,KAAM,CAAAoG,KAAA,CAAMM,OAAQ,CAAAJ,OAAA,CAAQ9F,EAC5B,EAAAR,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,OAAQ,CAAAC,EAAA,EAGvBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAOqB4a,yBAClB,GAAA,KAAA,CAAA,GACA/G,cAAe,CAAA;IACb9H,MAAA,EAAQ;MAAC6H,KAAA,EAAOA,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO,MAAQ;MAAA/L,KAAA,EAAOga,KAAM,CAAAjO,MAAA,CAAO/L;IAAK,CAAA;IAC7E+T,SAAA,EAAWiG,MAAMb,IAAK,CAAApF;EAAA,CACvB,GAIiB6G,yBAClB,GAAA,KAAA,CAAA,GACA/G,eAAe;IAACE,SAAA,EAAWiG,KAAM,CAAAb,IAAA,CAAKpF;GAAU,GAMnCH,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAjG,EAAA,EAC7BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAF,EAAA,EAGxBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO,MAAA;IACpC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EAAA,CACrB,GAMgB4T,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAnG,EAAA,EAC7BR,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAM,QAAA,CAASJ,IAM3BvG,KAAM,CAAAoG,KAAA,CAAMC,QAAQY,OAAQ,CAAAzG,EAAA,EAC5BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAAV,EAAA,EAIzBxG,oBAAqB,CAAA;IACzCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAA9O,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,CAAA;AAKX;AClOO,SAAS8a,sBACdliB,KACe,EAAA;EACT,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAET,OAAA,CACLF,oBAAoBC,KAAO,EAAA,CAAC,QAAQ,CAAA,EAAGC,MAAMmiB,OAAO,CAAA,EACpDriB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,aAAa,CAAA,EAAGC,MAAMoiB,QAAQ,CAAA,EACxEtiB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,cAAc,CAAA,EAAGC,MAAMqiB,QAAQ,CAAA,EACxEviB,oBAAoBC,KAAO,EAAA,CAAC,WAAW,CAAA,EAAGC,MAAMsiB,UAAU,CAAA,EAC1DxiB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,CAAA,EAAGC,MAAMuiB,YAAY,CAAA,EAC9DziB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,CAAA,EAAGC,MAAMwiB,aAAa,CAAA,EAChE1iB,oBAAoBC,KAAO,EAAA,CAAC,YAAY,CAAA,EAAGC,MAAMyiB,WAAW,CAAA,CAC9D,CAAEve,OAAOC,OAAO,CAAA;AAClB;ACdO,SAASue,uBACd1iB,KACe,EAAA;EACT,MAAA;IAACD;EAAS,CAAA,GAAAC,KAAA;EAET,OAAA,CACLF,oBAAoBC,KAAO,EAAA,CAAC,SAAS,CAAA,EAAGC,MAAMggB,QAAQ,CAAA,EACtDlgB,oBAAoBC,KAAO,EAAA,CAAC,eAAe,cAAc,CAAA,EAAGC,MAAM2iB,SAAS,CAAA,EAC3E7iB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,eAAe,CAAA,EAAGC,MAAM4iB,SAAS,CAAA,EAC3E9iB,oBAAoBC,KAAO,EAAA,CAAC,YAAY,CAAA,EAAGC,MAAM6iB,WAAW,CAAA,EAC5D/iB,oBAAoBC,KAAO,EAAA,CAAC,cAAc,CAAA,EAAGC,MAAM8iB,aAAa,CAAA,EAChEhjB,oBAAoBC,KAAO,EAAA,CAAC,eAAe,CAAA,EAAGC,MAAM+iB,cAAc,CAAA,EAClEjjB,oBAAoBC,KAAO,EAAA,CAAC,aAAa,CAAA,EAAGC,MAAMgjB,YAAY,CAAA,CAChE,CAAE9e,OAAOC,OAAO,CAAA;AAClB;ACdO,SAAS8e,sBAAsBjjB,KAA6D,EAAA;EACjG,MAAM;IAACd,KAAO;IAAAgkB;EAAA,CAAU,GAAA5iB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAmjB,OAAA,EAAUzkB,KAAU,IAAA;IAClD,IAAI0kB,YAA2B,GAAA,CAAA;IAE3B,IAAA,OAAO1kB,UAAU,QAAU,EAAA;MACd0kB,YAAA,GAAAtkB,GAAA,CAAIokB,MAAO,CAAAxkB,KAAK,CAAC,CAAA;IAClC;IAEA,IAAIA,UAAU,MAAQ,EAAA;MACL0kB,YAAA,GAAA,QAAA;IACjB;IAEA,OAAO;MAACA;IAAY,CAAA;EAAA,CACrB,CAAA;AACH;ACdA,SAASC,WAAAA,CAAYC,QAAwBtI,KAAe,EAAA;EACnD,OAAA,EAAA,CAAGhc,cAAOM,GAAI,CAAAR,GAAG,EAAE2c,IAAK,CAAA,GAAG,GAAC,GAAI,CAAA,CAAAzc,MAAA,CAAAgc,KAAA,CAAA;AACzC;AAEA,SAASuI,WAAAA,CAAYD,MAA4B,EAAqC;EAAA,IAArCE,YAAA,GAAAtjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAuB,CAAc;EACpF,IAAI,CAACojB,MAAA,EAAe,OAAAvlB,YAAA;EAEpB,MAAM0lB,OAAU,GAAA,QAAA,CAASzkB,MAAI,CAAAF,GAAA,CAAA0kB,YAAY,CAAC,EAAA,mCAAA,CAAA;EAC1C,MAAME,KAAQ,GAAAL,WAAA,CAAYC,MAAO,CAAAI,KAAA,EAAO,gCAAgC,CAAA;EACxE,MAAMC,QAAW,GAAAN,WAAA,CAAYC,MAAO,CAAAK,QAAA,EAAU,mCAAmC,CAAA;EACjF,MAAMC,OAAU,GAAAP,WAAA,CAAYC,MAAO,CAAAM,OAAA,EAAS,kCAAkC,CAAA;EAEvE,OAAA;IAACC,WAAW,EAAG,CAAA7kB,MAAA,CAAAykB,OAAA,EAAO,MAAKzkB,MAAK,CAAA0kB,KAAA,EAAA,IAAA,CAAA,CAAK1kB,MAAQ,CAAA2kB,QAAA,EAAA,IAAA,CAAA,CAAK3kB,MAAS,CAAA4kB,OAAA;GAAA;AACpE;AAEO,SAASE,sBAAsB9jB,KAA6D,EAAA;EACjG,MAAM;IAAC6X,IAAM;IAAA3Y,KAAA;IAAOokB;EAAU,CAAA,GAAAhjB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAAd,WAAA,CAAYC,KAAA,EAAOc,KAAM,CAAA+jB,OAAA,EAAU3R,SACxCmR,WAAY,CAAAD,MAAA,CAAOlR,KAAK,CAAG,EAAAyF,IAAA,CAAKyL,OAAOG,OAAO,CAAA,CAChD;AACF;;;;;;AC5BA,IAAA9b,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAIO,SAASoD,eACdhkB,KACwB,EAAA;EAClB,MAAA;IAACikB,OAAS;IAAAC;EAAU,CAAA,GAAAlkB,KAAA;EAC1B,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,0CAAA,EAMP,UAKA,EAAA,uCAAA,EAGgC,sXAX/B,CAAA,CAAA,CAAA,EAAAkD,OAAA,IACFnD,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA,EAIDmD,MACF,IAAApD,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,YAKc,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAKujB,IAAK,CAAAtjB,MAAA,CAAA;AAmB/B;;;;;;AC3CA,IAAA8G,IAAA;AA0BA,MAAMyc,MAAO,GAAAC,MAAA,CAAOC,GAKjB,CAAAphB,mBAAA,EAAqBC,0BAA0B6gB,cAAc,CAAA;AAEhE,MAAMO,sBAAA,GAAuBF,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mHAAA,CAAA,CAAA,CAAA,CAAA;AAajC,MAAM0D,KAAQ,GAAAC,UAAA,CAAW,SAASD,MAAAA,CACvCzkB,OACAuX,GACA,EAAA;EACM,MAAA;IACJoN,MAAA;IACA/K,KAAA;IACAlF,QAAU,EAAAkQ,YAAA;IACVC,KAAQ,GAAA,KAAA;IACR7iB,IAAO,GAAA,CAAA;IACP8iB,YAAA;IACAC,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEJ,IAAI0U,QAAW,GAAAkQ,YAAA;EAEf,IAAIE,iBAAiB,UAAY,EAAA;IACpBpQ,QAAA,GAAA,eAAAO,GAAA,CAACsP;MAAsB7P;IAAS,CAAA,CAAA;EAAA,CACtC,MAAA;IACMA,QAAA,GAAA,eAAAO,GAAA,CAAC;MAAMP;IAAS,CAAA,CAAA;EAC7B;EAGE,sBAAAO,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,OAAA;IACP,GAAGY,SAAA;IACJf,OAAS,EAAAU,MAAA;IACTvhB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BsK,MAAQ,EAAAW,KAAA;IACRnkB,KAAA,EAAO6C,aAAavB,IAAI,CAAA;IACxBrB,OAAS,EAAAokB,MAAA;IACTxN,GAAA;IAEC7C;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AC9EM,MAAMuQ,WAAc,GAAA;EACzB3P,IAAM,EAAA4P,eAAA;EACNC,KAAO,EAAAC,gBAAA;EACPC,QAAU,EAAAC,mBAAA;EACVC,MAAQ,EAAAC,iBAAA;EACRC,QAAU,EAAAC,mBAAA;EACVC,KAAO,EAAAC;AACT,CAAA;AAEA,SAASR,gBAA8BA,CAAA,EAAA;EAC9B,OAAA;IACLhkB,QAAU,EAAA,UAAA;IACVoJ,SAAW,EAAA,YAAA;IACXqb,MAAQ,EAAA,CAAA;IACR3nB,OAAS,EAAA,CAAA;IACTI,UAAY,EAAA,iBAAA;IACZuE,SAAW,EAAA,uCAAA;IACXyE,IAAM,EAAA,CAAA;IACNE,KAAO,EAAA,CAAA;IACPH,GAAK,EAAA,CAAA;IACLE,MAAQ,EAAA,CAAA;IAER,SAAW,EAAA;MACTH,KAAO,EAAA,MAAA;MACP1F,MAAQ,EAAA,KAAA;MACRN,QAAU,EAAA,UAAA;MACViG,GAAK,EAAA,MAAA;MACLC,IAAM,EAAA,KAAA;MACNzE,SAAW,EAAA,kBAAA;MAAA;MAGX,iBAAmB,EAAA;QACjBpB,OAAS,EAAA;MACX;IACF,CAAA;IAEA,oCAAsC,EAAA;MACpCoB,SAAW,EAAA,uCAAA;MACX3E,OAAS,EAAA;IACX,CAAA;IAEA,iCAAmC,EAAA;MACjCA,OAAS,EAAA,CAAA;MACT2E,SAAW,EAAA;IACb,CAAA;IAEA,oCAAsC,EAAA;MACpC3E,OAAS,EAAA,CAAA;MACT2E,SAAW,EAAA;IACb;EAAA,CACF;AACF;AAEO,SAASqiB,gBAAgBllB,KAAqD,EAAA;EAC7E,MAAA;IAAC8lB;EAAU,CAAA,GAAA9lB,KAAA;EACjB,MAAM;IAAC+lB;EAAU,CAAA,GAAAzlB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEjC,OAAA;IACL,mBAAA,EAAqB,qBAAqBf,MAAM,CAAA8mB,MAAA,EAAA,YAAA,CAAA;IAChD,mBAAA,EAAqB,qBAAqB9mB,MAAM,CAAA8mB,MAAA,EAAA,YAAA,CAAA;IAEhDE,eAAiB,EAAA,wBAAA;IACjB5kB,QAAU,EAAA,UAAA;IACVoJ,SAAW,EAAA,YAAA;IACXyb,UAAY,EAAA,MAAA;IACZpC,SAAW,EAAA,gCAAA;IAEX,2BAA6B,EAAA;MAC3B3lB,OAAS,EAAA;IACX,CAAA;IAEA,OAAS,EAAA;MAAA;MAEP,iBAAmB,EAAA;QACjBuD,OAAS,EAAA;MACX;IACF,CAAA;IAAA;IAGA,qBAAuB,EAAA;MACrBykB,mBAAqB,EAAA,SAAA;MACrBC,UAAY,EAAA,MAAA;MACZ5kB,MAAQ,EAAA,CAAA;MACRD,OAAS,EAAA,CAAA;MACT6R,MAAQ,EAAA,CAAA;MACRvS,IAAM,EAAA,SAAA;MACNoa,KAAO,EAAA,SAAA;MACPyI,OAAS,EAAA,MAAA;MAAA;MAGT,SAAW,EAAA;QACTI,WAAW5I,cAAe,CAAA;UAACE,SAAW,EAAA4K,MAAA,CAAO5K;SAAU;MACzD,CAAA;MAEA,6BAA+B,EAAA;QAC7B0I,SAAW,EAAA;MACb;IACF;EAAA,CACF;AACF;AAEO,SAASuC,0BACdpmB,KACa,EAAA;EACb,MAAM;IAAC+lB,MAAQ;IAAA7mB;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAU,KAAA,EAAQsB,IAAS,IAAA;IAC/C,MAAMqkB,aAAaN,MAAO,CAAAjlB,KAAA,CAAMkB,IAAI,CAAK,IAAA+jB,MAAA,CAAOjlB,MAAM,CAAC,CAAA;IAEhD,OAAA;MACLsG,KAAA,EAAOtI,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;MAC1BN,MAAA,EAAQ5C,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;MAC3BohB,YAAc,EAAAtkB,GAAA,CAAIunB,UAAW,CAAArkB,IAAA,GAAO,CAAC,CAAA;MAErC,OAAS,EAAA;QACPoF,KAAA,EAAOtI,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;QAC1BN,MAAA,EAAQ5C,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;QAC3BohB,YAAc,EAAAtkB,GAAA,CAAIunB,UAAW,CAAArkB,IAAA,GAAO,CAAC;MACvC;IAAA,CACF;EAAA,CACD,CAAA;AACH;AAEO,SAAS4jB,gBAA8BA,CAAA,EAAA;EACrC,OAAA;IACLxkB,QAAU,EAAA;EAAA,CACZ;AACF;AAEO,SAASskB,mBAAiCA,CAAA,EAAA;EACxC,OAAA;IACLte,KAAO,EAAA,MAAA;IACP1F,MAAQ,EAAA,MAAA;IACRsZ,KAAO,EAAA,wBAAA;IACPnB,UAAY,EAAA,QAAA;IACZQ,cAAgB,EAAA,QAAA;IAChBiM,aAAe,EAAA,WAAA;IACfjjB,SAAW,EAAA,QAAA;IACX+f,YAAc,EAAA,KAAA;IAEd,iBAAmB,EAAA;MACjB3hB,OAAS,EAAA;IACX;EAAA,CACF;AACF;AAEA,SAAS6jB,mBAAiCA,CAAA,EAAA;EACjC,OAAA;IACLiB,WAAa,EAAA,KAAA;IACbhB,MAAQ,EAAA;EAAA,CACV;AACF;AAEA,SAASC,iBAA+BA,CAAA,EAAA;EAC/B,OAAA;IACLe,WAAa,EAAA,KAAA;IACbhB,MAAQ,EAAA,wBAAA;IAER,2BAA6B,EAAA;MAC3BiB,eAAiB,EAAA,KAAA;MACjBC,aAAe,EAAA;IACjB;EAAA,CACF;AACF;ACxIA,MAAMrC,SAAOC,MAAO,CAAAC,GAAA,CAClB8B,yBAAA,EACAnB,WAAY,CAAA3P,IACd,CAAA;AAEA,MAAMoR,OAAQ,GAAArC,MAAA,CAAOC,GAAI,CAAAW,WAAA,CAAYE,KAAK,CAAA;AAE1C,MAAMwB,QAAW,GAAAtC,MAAA,CAAOuC,OAAQ,CAAA3B,WAAA,CAAYI,QAAQ,CAAA;AAEpD,MAAMwB,MAAS,GAAAxC,MAAA,CAAOuC,OAAQ,CAAA3B,WAAA,CAAYM,MAAM,CAAA;AAEhD,MAAMuB,QAAW,GAAAzC,MAAA,CAAOC,GAAI,CAAAW,WAAA,CAAYQ,QAAQ,CAAA;AAEhD,MAAMsB,aAAA,GAAgB1C,MAAO,CAAAI,KAAK,CAAE,CAAA;EAClCzJ,KAAO,EAAA;AACT,CAAC,CAAA;AAED,MAAMgM,KAAQ,GAAA3C,MAAA,CAAOha,GAAI,CAAA4a,WAAA,CAAYU,KAAK,CAAA;AAOnC,MAAMsB,MAAS,GAAAvC,UAAA,CAAW,SAASuC,OAAAA,CACxCjnB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ2P,0BAAA;IACAC,EAAI,EAAAC,MAAA;IACJpM,KAAQ,GAAA,MAAA;IACRqM,GAAA;IACAC,KAAA;IACA7B,QAAA;IACA8B,gBAAA;IACAC,aAAe,EAAAC,iBAAA;IACfC,gBAAA;IACAC,MAAS,GAAA,QAAA;IACT3lB,MAAM4lB,QAAW,GAAA,CAAA;IACjB,GAAG5C;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA;IAAC+lB;GAAM,GAAItQ,WAAY,EAAA;EAC7B,MAAM0R,EAAK,GAAAU,OAAA,CAAQ5tB,kBAAmB,CAAAmtB,MAAM,IAAIA,MAAS,GAAA,KAAA;EACnD,MAAAplB,IAAA,GAAOuB,aAAaqkB,QAAQ,CAAA;EAG5B,MAAAvB,UAAA,GAAaN,OAAOjlB,KAAM,CAAAkB,IAAA,CAAK,CAAC,CAAC,CAAA,IAAK+jB,MAAO,CAAAjlB,KAAA,CAAM,CAAC,CAAA;EAC1D,MAAMgnB,WAAWzB,UAAW,CAAArkB,IAAA;EAC5B,MAAM+lB,UAAUD,QAAW,GAAA,CAAA;EAE3B,MAAME,YAAYC,KAAM,EAAA;EAClB,MAAA,CAACT,aAAe,EAAAU,gBAAgB,CAAI,GAAA1jB,QAAA,CACxCkjB,oBAAoBD,iBAAqB,IAAA,QAAA,CAC3C;EAEA,MAAM,CAACU,WAAA,EAAaC,cAAc,CAAA,GAAI5jB,SAAkB,KAAK,CAAA;EAE7D,MAAM6jB,UAAU,eAAgB,CAAArpB,MAAA,CAAAgpB,SAAA,CAAA;EAEhCnjB,SAAA,CAAU,MAAM;IACd,IAAI2iB,aAAkB,KAAAC,iBAAA,EAA0B,OAAA,KAAA,CAAA;IAGhD,MAAMa,GAAM,GAAA7Y,qBAAA,CAAsB,MAAMyY,gBAAA,CAAiBT,iBAAiB,CAAC,CAAA;IAEpE,OAAA,MAAMc,qBAAqBD,GAAG,CAAA;EAAA,CACpC,EAAA,CAACd,aAAe,EAAAC,iBAAiB,CAAC,CAAA;EAErC5iB,SAAA,CAAU,MAAM;IACV,IAAAwiB,GAAA,EAAKe,cAAA,CAAe,KAAK,CAAA;EAAA,CAC/B,EAAG,CAACf,GAAG,CAAC,CAAA;EAEF,MAAAmB,gBAAA,GAAmBC,YAAY,MAAM;IACzCL,cAAA,CAAe,IAAI,CAAA;IAEnB,IAAIb,gBAAkB,EAAA;MACHA,gBAAA,CAAA,IAAInnB,KAAM,CAAA,kCAAkC,CAAC,CAAA;IAChE;EAAA,CACF,EAAG,CAACmnB,gBAAgB,CAAC,CAAA;EAErB,MAAMmB,YAAe,GAAAjlB,OAAA,CACnB,MACEzB,IAAA,CAAK1C,GAAI,CAACmhB,CAAM,IAAA;IACd,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEb,OAAA,CAAA;EAAA,CACR,CAAA,EACH,CAACze,IAAI,CAAA,CACP;EAGE,sBAAA2mB,IAAA,CAACvE,MAAA,EAAA;IACC+C,EAAA;IACA,SAAS,EAAA,OAAOA,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA,QAAA;IACP,GAAGnC,SAAA;IACJc,MAAQ,EAAA9K,KAAA;IACRta,KAAO,EAAAsB,IAAA;IACP,YAAY,EAAAslB,KAAA;IACZ,qBAAqB,EAAAE,aAAA;IACrB,aAAa,EAAAG,MAAA;IACbpQ,GAAA;IACA+P,KAAA;IAEA5S,QAAA,EAAA,CAAA,eAACO,GAAA,CAAAyR,OAAA,EAAA;MACChS,QAAC,EAAA,eAAAO,GAAA,CAAA,KAAA,EAAA;QAAI7N,KAAM,EAAA,IAAA;QAAK1F,QAAO,GAAI;QAAAknB,OAAA,EAAQ,UAAW;QAAAnQ,IAAA,EAAK,MACjD;QAAA/D,QAAA,iBAAAO,GAAA,CAAC,MAAA,EAAA;UACCxY,CAAE,EAAA,8FAAA;UACFgc,IAAM,EAAAuC;QAAA;OAEV;IACF,CAAA,CAAA,EAEC,CAACmN,WAAe,IAAAd,GAAA,IACd,eAAAsB,IAAA,CAAA3B,KAAA,EAAA;MAAM4B,OAAS,EAAA,MAAA,CAAO5pB,MAAQ,CAAA8oB,QAAA,EAAA,GAAA,CAAA,CAAI9oB,MAAY,CAAA8oB,QAAA,CAAA;MAAArP,IAAA,EAAK,MAClD;MAAA/D,QAAA,EAAA,CAAA,eAACO,GAAA,CAAA,MAAA,EAAA;QACCP,QAAC,EAAA,eAAAO,GAAA,CAAA,SAAA,EAAA;UAAQ4T,EAAI,EAAAR,OAAA;UAASS,qBAAoB,mBAAoB;UAAA1hB,KAAA,EAAM,GAAI;UAAA1F,MAAA,EAAO,GAC7E;UAAAgT,QAAA,iBAAAO,GAAA,CAAC,OAAA,EAAA;YACC8T,IAAM,EAAA1B,GAAA;YACNjgB,KAAM,EAAA,GAAA;YACN1F,MAAO,EAAA,GAAA;YAEPsnB,OAAS,EAAAR;UAAA;SAEb;MACF,CAAA,CAAA,EAAA,eAEAvT,GAAA,CAAC,QAAO,EAAA;QAAAgU,EAAA,EAAIlB,OAAS;QAAAmB,EAAA,EAAInB,OAAS;QAAAvqB,CAAA,EAAGuqB,OAAS;QAAAtP,IAAA,EAAM,OAAQ,CAAAzZ,MAAA,CAAAqpB,OAAA,EAAO,GAAK;MAAA,CAAA,CAAA,EAEvE,CAACnB,0BACA,IAAA,eAAAjS,GAAA,CAAC0R,QAAA,EAAA;QACCsC,EAAI,EAAAlB,OAAA;QACJmB,EAAI,EAAAnB,OAAA;QACJoB,EAAI,EAAApB,OAAA;QACJqB,EAAI,EAAArB,OAAA;QACJsB,YAAa,EAAA;MAAA,CACf,CAAA,EAAA,eAGFpU,GAAA,CAAC4R,MAAA,EAAA;QACCoC,EAAI,EAAAlB,OAAA;QACJmB,EAAI,EAAAnB,OAAA;QACJoB,EAAI,EAAApB,OAAA;QACJqB,EAAI,EAAArB,OAAA;QACJsB,YAAa,EAAA;MAAA,CACf,CAAA;KACF,CAAA,EAAA,CAGAlB,eAAe,CAACd,GAAA,KAAQ5B,QACxB,mBAAAxQ,GAAA,CAAApa,QAAA,EAAA;MACE6Z,6BAACoS,QACC,EAAA;QAAApS,QAAA,EAAA,eAAAO,GAAA,CAAC8R,aAAc,EAAA;UAAAuC,WAAA,EAAY;UAAOtnB,IAAM,EAAA0mB,YAAA;UAAc3D,QAAO,QAC1D;UAAArQ,QAAA,EAAA+Q;SACH;OACF;IACF,CAAA,CAAA;EAAA,CAAA,CAEJ;AAEJ,CAAC,CAAA;;;;;;ACnMD,IAAA9d,IAAA;AASA,SAAS4hB,kCAAkCvpB,KAA2C,EAAA;EACpF,MAAM;IAAC+lB,MAAQ;IAAA7mB;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAU,KAAA,EAAQsB,IAAS,IAAA;IACzC,MAAAqkB,UAAA,GAAaN,MAAO,CAAAjlB,KAAA,CAAMkB,IAAI,CAAA;IAEpC,IAAI,CAACqkB,UAAA,EAAmB,OAAAtoB,YAAA;IAEjB,OAAA;MACLqlB,YAAc,EAAAtkB,GAAA,CAAIunB,UAAW,CAAArkB,IAAA,GAAO,CAAC,CAAA;MACrCyY,QAAA,EAAU3b,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI,CAAA;MAC7BN,MAAA,EAAQ5C,GAAI,CAAAunB,UAAA,CAAWrkB,IAAI;IAAA,CAC7B;EAAA,CACD,CAAA;AACH;AAEA,SAASwnB,wBAAwBxpB,KAAmB,EAAA;EAClD,MAAM;IAACK;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,oBAAGC,YAWkB,CAAA,CAAA,8UAAA,EAAA,6DAAA,CAAA,CAAA,CAAA,EAAbjiB,GAAI,CAAAuB,KAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AAM7B;AAEA,MAAM+jB,SAAOC,MAAO,CAAAC,GAAA,CAClBiF,iCAAA,EACAC,uBACF,CAAA;AAeO,MAAMC,aAAgB,GAAA/E,UAAA,CAAW,SAAS+E,cAAAA,CAC/CzpB,OACAuX,GACA,EAAA;EACA,MAAM;IAACmS,KAAA;IAAO1nB,IAAM,EAAA4lB,QAAA,GAAW;GAAK,GAAA5nB,KAAA;EAC9B,MAAAgC,IAAA,GAAOuB,aAAaqkB,QAAQ,CAAA;EAElC,MAAM7lB,QAAW,GAAA0B,OAAA,CACf,MACEzB,IAAA,CAAK1C,GAAI,CAACmhB,CAAM,IAAA;IACd,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEb,OAAA,CAAA;EAAA,CACR,CAAA,EACH,CAACze,IAAI,CAAA,CACP;EAEA,0BACGoiB,MAAK,EAAA;IAAA1jB,KAAA,EAAOsB,IAAM;IAAA,SAAA,EAAQ;IAAgBuV,GACzC;IAAA7C,QAAA,EAAA,eAAAO,GAAA,CAACwP,KAAM,EAAA;MAAA0C,EAAA,EAAG;MAAOnlB,IAAM,EAAAD,QAAA;MAAUgjB,MAAO,EAAA,QAAA;MACrCrQ;KACH;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACzFM,SAASiV,uBACdjV,QACoC,EAAA;EACpC,MAAMkV,gBAAgBhqB,KAAM,CAAAC,OAAA,CAAQ6U,QAAQ,CAAI,GAAAA,QAAA,GAAW,CAACA,QAAQ,CAAA;EAEpE,OAAOkV,aAAc,CAAA1lB,MAAA,CAClB+I,QAASrR,cAAU,CAAAA,SAAA,CAAAqR,IAAI,KAAKnR,cAAW,CAAAA,UAAA,CAAAmR,IAAI,CAAK,IAAA,OAAOA,IAAS,KAAA,QAAA,CACnE;AACF;;;;;;ACVA,IAAAtF,IAAA;AAUA,MAAMkiB,cAAc/I,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wIAAA,CAAA,CAAA,CAAA,CAAA;AAYvB,SAAS+I,gBAAmBA,CAAA,EAAA;EACnB,OAAAD,WAAA;AACT;AAEA,SAASE,+BAA+B/pB,KAA2C,EAAA;EACjF,MAAM;IAAC+lB,MAAQ;IAAA7mB;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE/C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAU,KAAA,EAAQsB,IAAS,IAAA;IACzC,MAAAqkB,UAAA,GAAaN,MAAO,CAAAjlB,KAAA,CAAMkB,IAAI,CAAA;IAEpC,IAAI,CAACqkB,UAAA,EAAmB,OAAAtoB,YAAA;IAEjB,OAAA;MACL,eAAiB,EAAA;QACfisB,UAAA,EAAYlrB,GAAI,CAAAunB,UAAA,CAAW4D,QAAQ;MACrC;IAAA,CACF;EAAA,CACD,CAAA;AACH;AAEA,MAAM7F,MAAO,GAAAC,MAAA,CAAOC,GAA2B,CAAAyF,8BAAA,EAAgCD,gBAAgB,CAAA;AAgBxF,MAAMI,WAAc,GAAAxF,UAAA,CAAW,SAASwF,YAAAA,CAC7ClqB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAU,EAAAkQ,YAAA;IACVuF,WAAWC,aAAgB,GAAA,CAAA;IAC3BpoB,MAAM4lB,QAAW,GAAA,CAAA;IACjB,GAAG5C;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA0U,QAAA,GAAWiV,sBAAuB,CAAA/E,YAAY,CAAE,CAAA1gB,MAAA,CACnDmmB,KAAU,IAAA,OAAOA,KAAU,KAAA,QAAA,CAC9B;EACA,MAAMF,SAAY,GAAAznB,IAAA,CAAKoZ,GAAI,CAAAsO,aAAA,EAAe,CAAC,CAAA;EACrC,MAAApoB,IAAA,GAAOuB,aAAaqkB,QAAQ,CAAA;EAElC,MAAM1H,MAAMxL,QAAS,CAAAvU,MAAA;EACrB,MAAMmqB,eAAeH,SAAY,GAAA,CAAA;EACjC,MAAMI,aAAarK,GAAM,GAAAoK,YAAA;EACzB,MAAME,kBAAkBD,UAAa,GAAA,CAAA,GAAI7V,SAASnC,KAAM,CAAAgY,UAAA,EAAYrK,GAAG,CAAI,GAAAxL,QAAA;EAGzE,OAAA,eAAAiU,IAAA,CAACvE;IAAK,SAAQ,EAAA,aAAA;IAAe,GAAGY,SAAW;IAAAzN,GAAA;IAAU7W,OAAOsB,IACzD;IAAA0S,QAAA,EAAA,CAAQwL,GAAA,KAAA,CAAA,uBACN,KACC,EAAA;MAAAxL,QAAA,EAAA,eAAAO,GAAA,CAACwU;QAAcC,KAAO,EAAAxJ,GAAA;QAAKle;OAAY;IACzC,CAAA,CAAA,EAGDke,GAAA,KAAQ,CAAK,IAAAqK,UAAA,GAAa,CACzB,IAAA,eAAAtV,GAAA,CAAC,KACC,EAAA;MAAAP,QAAA,EAAA,eAAAO,GAAA,CAACwU,aAAc,EAAA;QAAAC,KAAA,EAAOa,UAAY;QAAAvoB;MAAA,CAAY;IAChD,CAAA,CAAA,EAGDwoB,gBAAgBlrB,GAAI,CAAA,CAAC+qB,KAAO,EAAAI,UAAA,wBAC1B,KAA8B,EAAA;MAAA/V,QAAA,EAAAgW,YAAA,CAAaL,KAAO,EAAA;QAACroB;MAAK,CAAA;IAAA,CAAA,EAA/C2oB,MAAO,CAAAF,UAAU,CAAgC,CAC5D,CAAA;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;AC7DD,MAAMrG,SAAOC,MAAO,CAAAC,GAAA,CAOlB5L,QAAA,EACAiC,aAAA,EACAhC,kBAAA,EACAqF,uBAAA,EACAkE,qBAAA,EACAQ,sBACF,CAAA;AAQO,MAAMkI,GAAM,GAAAlG,UAAA,CAAW,SAASkG,IAAAA,CACrC5qB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ4P,IAAIC,MAAS,GAAA,KAAA;IACbhI,MAAA;IACAG,WAAA;IACAG,SAAA;IACAje,OAAU,GAAA,OAAA;IACVqZ,IAAA;IACApZ,MAAA;IACAH,MAAS,GAAA,CAAA;IACTspB,OAAA;IACAC,OAAA;IACAhoB,SAAA;IACAioB,WAAA;IACAhoB,YAAA;IACAinB,UAAA;IACA3Q,QAAA;IACA/X,OAAU,GAAA,CAAA;IACV0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAC,YAAA;IACAC,aAAA;IACAC,WAAA;IACA0T,GAAA;IACAG,QAAA;IACAG,MAAA;IACA/F,MAAA;IACA,GAAG8L;EACD,CAAA,GAAAhlB,KAAA;EAGF,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAS,EAAA,OAAOgD,MAAW,KAAA,QAAA,GAAWA,MAAS,GAAA,KAAA,CAAA;IAC/C,SAAQ,EAAA,KAAA;IACP,GAAGpC,SAAA;IACJ7F,OAAA,EAAS5b,aAAa6b,MAAM,CAAA;IAC5BE,YAAA,EAAc/b,aAAagc,WAAW,CAAA;IACtCE,UAAA,EAAYlc,aAAamc,SAAS,CAAA;IAClC1G,QAAA,EAAUzV,aAAa9B,OAAO,CAAA;IAC9BoZ,KAAA,EAAOtX,aAAauX,IAAI,CAAA;IACxB3B,OAAA,EAAS5V,aAAa7B,MAAM,CAAA;IAC5BygB,OAAA,EAAS5e,aAAahC,MAAM,CAAA;IAC5B6gB,QAAA,EAAU7e,aAAasnB,OAAO,CAAA;IAC9BxI,QAAA,EAAU9e,aAAaunB,OAAO,CAAA;IAC9BxI,UAAA,EAAY/e,aAAaT,SAAS,CAAA;IAClCyf,YAAA,EAAchf,aAAawnB,WAAW,CAAA;IACtCvI,aAAA,EAAejf,aAAaR,YAAY,CAAA;IACxC0f,WAAA,EAAalf,aAAaymB,UAAU,CAAA;IACpC5Q,SAAA,EAAW7V,aAAa8V,QAAQ,CAAA;IAChC2G,QAAA,EAAUzc,aAAajC,OAAO,CAAA;IAC9BqhB,SAAA,EAAWpf,aAAaynB,QAAQ,CAAA;IAChCpI,SAAA,EAAWrf,aAAa0nB,QAAQ,CAAA;IAChCpI,WAAA,EAAatf,aAAauH,UAAU,CAAA;IACpCgY,aAAA,EAAevf,aAAawH,YAAY,CAAA;IACxCgY,cAAA,EAAgBxf,aAAayH,aAAa,CAAA;IAC1CgY,YAAA,EAAczf,aAAa0H,WAAW,CAAA;IACtCyT,IAAA,EAAMnb,aAAaob,GAAG,CAAA;IACtBE,SAAA,EAAWtb,aAAaub,QAAQ,CAAA;IAChCE,OAAA,EAASzb,aAAa0b,MAAM,CAAA;IAC5BhG,OAAA,EAAS1V,aAAa2V,MAAM,CAAA;IAC5BiO,EAAI,EAAAC,MAAA;IACJ7P,GAAA;IAEC7C,QAAM,EAAA1U,KAAA,CAAA0U;EAAA,CAAA,CACT;AAEJ,CAAC,CAAA;;;;;;AChID,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAIO,SAASsK,cACdlrB,KACwB,EAAA;EAClB,MAAA;IAACikB,OAAS;IAAAC;EAAU,CAAA,GAAAlkB,KAAA;EAC1B,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,oBAAGC,YAMP,CAAA,CAAA,4CAAA,EAAA,UAAA,EAKA,uCAGgC,EAAA,2nBAAA,EA8BM,2YAzCrCkD,OACF,IAAAnD,GAAA,CAAAnZ,IAAA,KAAAA,IAAA,GAAGoZ,YAID,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA,EAAAmD,MAAA,IACFpD,oBAAGC,YAKc,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAKujB,KAAKtjB,MA8BV,EAAAD,IAAA,CAAK2f,KAAKxf,OAAQ,CAAAoqB,IAAA,CAAA;AAkBvC;;;;;;ACxEA,IAAAxjB,IAAA;AA+BA,MAAMyc,SAAOC,MAAO,CAAAC,GAAA,CAClBhhB,kBAAA,EACAH,wBAAA,EACA+nB,aACF,CAAA;AAEA,MAAM3G,sBAAA,GAAuBF,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mHAAA,CAAA,CAAA,CAAA,CAAA;AAajC,MAAMqK,IAAO,GAAA1G,UAAA,CAAW,SAAS0G,KAAAA,CACtCprB,OACAuX,GACA,EAAA;EACM,MAAA;IACJoN,MAAS,GAAA,KAAA;IACT/K,KAAA;IACAlF,QAAU,EAAAkQ,YAAA;IACVC,KAAQ,GAAA,KAAA;IACR7iB,IAAO,GAAA,CAAA;IACP8iB,YAAA;IACAC,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEJ,IAAI0U,QAAW,GAAAkQ,YAAA;EAEf,IAAIE,iBAAiB,UAAY,EAAA;IACpBpQ,QAAA,GAAA,eAAAO,GAAA,CAACsP;MAAsB7P;IAAS,CAAA,CAAA;EAC7C;EAGE,sBAAAO,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,MAAA;IACP,GAAGY,SAAA;IACJf,OAAS,EAAAU,MAAA;IACTvhB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BsK,MAAQ,EAAAW,KAAA;IACRtN,GAAA;IACA7W,KAAA,EAAO6C,aAAavB,IAAI,CAAA;IACxBrB,OAAS,EAAAokB,MAAA;IAETrQ,QAAA,iBAAAO,GAAA,CAAC;MAAMP;IAAS,CAAA;EAAA,CAAA,CAClB;AAEJ,CAAC,CAAA;AClFM,SAAS2W,WAAWrrB,KAAmC,EAAA;EACtD,MAAA;IAACmhB;EAAS,CAAA,GAAAnhB,KAAA;EAET,OAAA;IACL,iBAAA,EAAmB,oBAAoBhB,MAAK,CAAAmiB,KAAA,EAAA,YAAA,CAAA;IAC5C,iBAAA,EAAmB,oBAAoBniB,MAAK,CAAAmiB,KAAA,EAAA,YAAA,CAAA;IAE5C6E,eAAiB,EAAA,sBAAA;IACjBsF,MAAQ,EAAA,SAAA;IAER,iBAAmB,EAAA;MACjB7pB,OAAS,EAAA,cAAA;MACT8pB,aAAe,EAAA;IACjB;EAAA,CACF;AACF;ACIA,MAAMnH,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrB3H,qBAAA,EACAoI,UACF,CAAA;AAOO,MAAMG,KAAQ,GAAA9G,UAAA,CAAW,SAAS8G,MAAAA,CACvCxrB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAA;IACA3S,QAAW,GAAA,CAAA;IAAA;IAEX0pB,IAAM,EAAAC,gBAAA;IACNpqB,OAAU,GAAA,CAAA;IACV4hB,MAAS,GAAA,MAAA;IACTrO,IAAO,GAAA,SAAA;IACP,GAAGmQ;EACD,CAAA,GAAAhlB,KAAA;EAGF,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,OAAA;IACP,GAAGY,SAAA;IACJ7D,KAAO,EAAAtM,IAAA;IACPsO,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;IAC5B5hB,OAAA,EAASiC,aAAajC,OAAO,CAAA;IAC7BiW,GAAA;IAEA7C,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;MAAKppB,IAAM,EAAAD,QAAA;MAAW2S;KAAS;EAAA,CAAA,CAClC;AAEJ,CAAC,CAAA;ACrCD,MAAM0P,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrBjQ,aAAA,EACArB,mBACF,CAAA;AAOO,MAAMqS,IAAO,GAAAjH,UAAA,CAAW,SAASiH,KAAAA,CACtC3rB,OACAuX,GACA,EAAA;EACM,MAAA;IAACqC,KAAO;IAAAuN,EAAA;IAAI5M,SAAY,GAAA,KAAA;IAAOR;IAAKK,OAAS;IAAAH,IAAA;IAAM,GAAG+K;EAAA,CAAa,GAAAhlB,KAAA;EAGvE,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,MAAA;IACP,GAAGY,SAAA;IACJ5hB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BU,UAAA,EAAY/W,aAAagX,SAAS,CAAA;IAClCT,IAAA,EAAMvW,aAAawW,GAAG,CAAA;IACtBI,QAAA,EAAU5W,aAAa6W,OAAO,CAAA;IAC9BJ,KAAA,EAAOzW,aAAa0W,IAAI,CAAA;IACxBqP,WAAa,EAAAnC,EAAA;IACb5P;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;;;;;;ACnDD,IAAA5P,IAAA,EAAAO,IAAA;AAaA,MAAM0jB,WAASC,SAAS,CAAAlkB,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gGAAA,CAAA,CAAA,CAAA,CAAA;AAUxB,MAAMqD,SAAOC,MAAO,CAAA+G,IAAI,CAAX,CAAAljB,IAAA,KAAAA,IAAA,GAAY6Y,uDAEF,gCAAN,CAAA,CAAA,CAAA,EAAA6K,QAAA,CAAA;AASV,MAAME,OAAU,GAAApH,UAAA,CAAW,SAASoH,QAAAA,CACzC9rB,OACAuX,GACA,EAAA;EAEE,OAAA,eAAAtC,GAAA,CAACmP;IAAK,SAAQ,EAAA,SAAA;IAAW,GAAGpkB,KAAO;IAAAuX,GAAA;IACjC7C,QAAC,EAAA,eAAAO,GAAA,CAAA8W,WAAA,EAAA,CAAY,CAAA;EACf,CAAA,CAAA;AAEJ,CAAC,CAAA;ACrCM,SAASC,eACdA,CAAA7qB,IAAA,EACA6Z,KACA,EACW;EAAA,IADXiR,SAAA,GAAA/rB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA7F,SAAA,GAAA6F,SAAA,MAAY,KACD;EACJ,OAAA;IAAA;IAGL,yBAAyBiB,IAAK,CAAA+qB,QAAA;IAE9B,2BAA2B/qB,IAAK,CAAAga,SAAA;IAEhC,6BAAA,EAA+Bha,KAAKmiB,MAAO,CAAAG,OAAA;IAC3C,2BAAA,EAA6BtiB,KAAKmiB,MAAO,CAAAI,KAAA;IACzC,8BAAA,EAAgCviB,KAAKmiB,MAAO,CAAAK,QAAA;IAC5C,6BAAA,EAA+BxiB,KAAKmiB,MAAO,CAAAM,OAAA;IAAA;IAI3C,wBAAA,EAA0B5I,MAAM2J,MAAO,CAAApD,EAAA;IAEvC,6BAAA,EAA+BvG,KAAM,CAAA+K,MAAA,CAAOoG,IAAK,CAAA3Q,EAAA;IACjD,6BAAA,EAA+BR,KAAM,CAAA+K,MAAA,CAAOoG,IAAK,CAAA5K,EAAA;IACjD,6BAAA,EAA+BvG,KAAM,CAAA+K,MAAA,CAAOqG,IAAK,CAAA5Q,EAAA;IACjD,6BAAA,EAA+BR,KAAM,CAAA+K,MAAA,CAAOqG,IAAK,CAAA7K,EAAA;IACjD,+BAAA,EAAiCvG,KAAM,CAAA+K,MAAA,CAAOsG,MAAO,CAAA7Q,EAAA;IACrD,+BAAA,EAAiCR,KAAM,CAAA+K,MAAA,CAAOsG,MAAO,CAAA9K,EAAA;IACrD,gCAAA,EAAkCvG,KAAM,CAAA+K,MAAA,CAAOuG,OAAQ,CAAA9Q,EAAA;IACvD,gCAAA,EAAkCR,KAAM,CAAA+K,MAAA,CAAOuG,OAAQ,CAAA/K,EAAA;IACvD,4BAAA,EAA8BvG,KAAM,CAAA+K,MAAA,CAAOwG,GAAI,CAAA/Q,EAAA;IAC/C,4BAAA,EAA8BR,KAAM,CAAA+K,MAAA,CAAOwG,GAAI,CAAAhL,EAAA;IAC/C,+BAAA,EAAiCvG,KAAM,CAAA+K,MAAA,CAAOyG,MAAO,CAAAhR,EAAA;IACrD,+BAAA,EAAiCR,KAAM,CAAA+K,MAAA,CAAOyG,MAAO,CAAAjL,EAAA;IACrD,+BAAA,EAAiCvG,KAAM,CAAA+K,MAAA,CAAO0G,MAAO,CAAAjR,EAAA;IACrD,+BAAA,EAAiCR,KAAM,CAAA+K,MAAA,CAAO0G,MAAO,CAAAlL,EAAA;IACrD,8BAAA,EAAgCvG,KAAM,CAAA+K,MAAA,CAAO2G,KAAM,CAAAlR,EAAA;IACnD,8BAAA,EAAgCR,KAAM,CAAA+K,MAAA,CAAO2G,KAAM,CAAAnL,EAAA;IACnD,6BAAA,EAA+BvG,KAAM,CAAA+K,MAAA,CAAO4G,IAAK,CAAAnR,EAAA;IACjD,6BAAA,EAA+BR,KAAM,CAAA+K,MAAA,CAAO4G,IAAK,CAAApL,EAAA;IAEjD,mBAAmBvG,KAAM,CAAAQ,EAAA;IACzB,iBAAA,EAAmByQ,YACf,2BAA4B,CAAAjtB,MAAA,CAAAgc,KAAA,CAAMQ,IAAE,WAAY,CAAA,CAAAxc,MAAA,CAAAgc,KAAA,CAAM6J,KAAM,CAAArJ,EAAA,EAAE,UAC9D,CAAA,GAAA,KAAA,CAAA;IAEJ,uBAAuBR,KAAM,CAAA7H,MAAA;IAE7B,+BAAA,EAAiC6H,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAA7F,EAAA;IACrD,gCAAA,EAAkCR,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAAwL,GAAA;IACtD,+BAAA,EAAiC7R,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAAE,EAAA;IACrD,iCAAA,EAAmCvG,KAAM,CAAA4R,KAAA,CAAMvL,OAAQ,CAAAyL,IAAA;IACvD,+BAAA,EAAiC9R,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAvR,EAAA;IACrD,gCAAA,EAAkCR,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAF,GAAA;IACtD,+BAAA,EAAiC7R,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAxL,EAAA;IACrD,iCAAA,EAAmCvG,KAAM,CAAA4R,KAAA,CAAMG,OAAQ,CAAAD,IAAA;IACvD,gCAAA,EAAkC9R,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAxR,EAAA;IACvD,iCAAA,EAAmCR,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAH,GAAA;IACxD,gCAAA,EAAkC7R,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAzL,EAAA;IACvD,kCAAA,EAAoCvG,KAAM,CAAA4R,KAAA,CAAMI,QAAS,CAAAF,IAAA;IACzD,+BAAA,EAAiC9R,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAAzR,EAAA;IACrD,gCAAA,EAAkCR,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAAJ,GAAA;IACtD,+BAAA,EAAiC7R,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAA1L,EAAA;IACrD,iCAAA,EAAmCvG,KAAM,CAAA4R,KAAA,CAAMK,OAAQ,CAAAH,IAAA;IACvD,gCAAA,EAAkC9R,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAA1R,EAAA;IACvD,iCAAA,EAAmCR,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAAL,GAAA;IACxD,gCAAA,EAAkC7R,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAA3L,EAAA;IACvD,kCAAA,EAAoCvG,KAAM,CAAA4R,KAAA,CAAMM,QAAS,CAAAJ,IAAA;IAEzD,sBAAA,EAAwB9R,MAAMmJ,IAAK,CAAA3I,EAAA;IACnC,sBAAA,EAAwBR,MAAMmJ,IAAK,CAAA5C,EAAA;IAEnC,mBAAmBvG,KAAM,CAAAuG,EAAA;IAEzB,qBAAqBvG,KAAM,CAAA8R,IAAA;IAE3B,qBAAA,EAAuB9R,MAAMmS,GAAI,CAAA3R,EAAA;IACjC,yBAAA,EAA2BR,MAAMmS,GAAI,CAAAha,MAAA;IACrC,qBAAA,EAAuB6H,MAAMmS,GAAI,CAAA5L,EAAA;IAEjC,sBAAA,EAAwBvG,MAAMoS,IAAK,CAAA7L,EAAA;IAEnC,uBAAA,EAAyBvG,MAAM6J,KAAM,CAAArJ,EAAA;IACrC,uBAAA,EAAyBR,MAAM6J,KAAM,CAAAtD,EAAA;IAErC,4BAAA,EAA8BvG,MAAMqS,QAAS,CAAAC,IAAA;IAC7C,0BAAA,EAA4BtS,MAAMqS,QAAS,CAAAE,EAAA;IAAA;IAI3C,kBAAA,EAAoBvS,MAAM6J,KAAM,CAAArJ,EAAA;IAChC,mBAAA,EAAqBR,MAAMoS,IAAK,CAAA7L,EAAA;IAChC,8BAA8BvG,KAAM,CAAA7H,MAAA;IACpC,8BAA8B6H,KAAM,CAAA7H;EAAA,CACtC;AACF;;;;;;ACpGA,IAAAxL,IAAA,EAAAO,IAAA;AAUO,SAASslB,iBACdxtB,KACwB,EAAA;EAClB,MAAA;IAACytB;EAAU,CAAA,GAAAztB,KAAA;EACjB,MAAM;IAACpB;EAAS,CAAA,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAA+gB,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,wBACO,6ZAyBd,EAAA,mMAAA,CAAA,CAAA,CAAA,EAzBCniB,+BAAO8uB,MAoBP,EAAAD,MAAA,KAAW,UACb3M,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mGAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAkBP;AAEA,SAAS4M,mBAAgE;EAAA,SAAAC,IAAA,GAAA1tB,SAAA,CAAAC,MAAA,EAA5C0tB,UAA4C,OAAAjuB,KAAA,CAAAguB,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;IAA5CD,UAA4C,CAAAC,IAAA,IAAA5tB,SAAA,CAAA4tB,IAAA;EAAA;EACvE,OAAOD,UAAW,CAAA3pB,MAAA,CAAOC,OAAO,CAAA,CAAEsX,KAAK,GAAG,CAAA;AAC5C;AAKO,SAASsS,kBACd/tB,KACa,EAAA;EAnEf2H,IAAAA,GAAAA;EAoEQ,MAAA;IAACqmB;EAAS,CAAA,GAAAhuB,KAAA;EACV,MAAA;IAAC0tB;IAAQ1S,KAAO,EAAAiT,SAAA;IAAWrvB;GAAS,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC3D,MAAAujB,MAAA,GAAStjB,MAAMguB,KAAU,KAAA,OAAA;EAC/B,MAAMvC,OAAOwC,SAAU,CAAAP,MAAA,CAAOM,KAAK,CAAA,IAAKC,UAAUP,MAAO,CAAArM,OAAA;EACzD,MAAMrG,KAAQ,GAAAyQ,IAAA,CAAKzrB,KAAM,CAAAmhB,KAAK,KAAKsK,IAAK,CAAApK,OAAA;EACxC,MAAMlO,MAAS,GAAA;IACb/L,KAAA,EAAOsmB,OAAOva,MAAO,CAAA/L,KAAA;IACrB4T,KAAO,EAAA;EAAA,CACT;EAEA,MAAMkT,gBAAmB,GAAA,KAAA,CAAA;EAElB,OAAA,CACLlC,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMsG,OAAO,CAAA,EACxC;IACE0E,eAAiB,EAAA,sBAAA;IACjBhL,KAAO,EAAA,sBAAA;IACP6I,SAAA,EAAW9I,qBAAqB5H,MAAM,CAAA;IACtC,qCAAuC,EAAA6Y,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMyG,QAAQ,CAAA;IAChF,+BAAiC,EAAA;MAC/BoC,SAAW,EAAA8J,gBAAA,CACT5S,qBAAqB5H,MAAM,CAAA,EAC3BmQ,SAAS4K,gBAAmB,GAAA,KAAA,CAC9B,CAAA;MACA,SAAW,EAAA;QACTrK,WAAW5I,cAAe,CAAA;UACxB9Z,IAAM,EAAA8sB,SAAA;UACN9a,QAAQ;YAAC/L,KAAA,EAAO,CAAG;YAAA4T,KAAA,EAAOiT,UAAUzS;UAAE,CAAA;UACtCL,WAAWuS,MAAO,CAAAvS;QAAA,CACnB;MACH,CAAA;MACA,6BAA+B,EAAA;QAC7B0I,SAAW,EAAA8J,gBAAA,CACT5S,qBAAqB5H,MAAM,CAAA,EAC3BmQ,SAAS4K,gBAAmB,GAAA,KAAA,CAC9B;MACF,CAAA;MACA,uBAAyB,EAAA;QACvB,SAAW,EAAAlC,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMiH,OAAO,CAAA;QACnD,UAAY,EAAA+J,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMmT,OAAO,CAAA;QACpD,iBAAmB,EAAAnC,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMiH,OAAO;MAC7D,CAAA;MACA,kBAAoB,EAAA+J,eAAA,CAAgBiC,SAAW,EAAAjT,KAAA,CAAMmT,OAAO;IAC9D;EACF,CAAA,EAAA,CACAxmB,GAAA,GAAA/I,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAO8uB,MAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA/lB,GAAe,CAAA2N,IAAA,CACjB,CAAEpR,OAAOC,OAAO,CAAA;AAClB;;;;;;ACnHA,IAAAwD,IAAA;AAuCA,MAAMyc,MAAO,GAAAC,MAAA,CAAOqJ,MAGlB,CAAAzK,qBAAA,EAAuBuK,kBAAkBO,iBAAiB,CAAA;AAE5D,MAAMK,UAAA,GAAa/J,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gQAAA,CAAA,CAAA,CAAA,CAAA;AAkBtB,MAAMsN,MAAS,GAAA3J,UAAA,CAAW,SAAS2J,OAAAA,CACxCruB,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAA;IACA+M,QAAA;IACA1f,QAAW,GAAA,CAAA;IACX+qB,IAAA;IACAwB,SAAA;IACAlU,SAASmU,WAAc,GAAA,QAAA;IACvBC,OAAA;IACA/C,IAAO,GAAA,OAAA;IACPnqB,SAASmtB,WAAc,GAAA,CAAA;IACvBzD,QAAU,EAAA0D,YAAA;IACVzD,QAAU,EAAA0D,YAAA;IACV7jB,UAAY,EAAA8jB,cAAA;IACZ5jB,aAAe,EAAA6jB,iBAAA;IACf5jB,WAAa,EAAA6jB,eAAA;IACb/jB,YAAc,EAAAgkB,gBAAA;IACd7L,QAAQ8L,UAAa,GAAA,CAAA;IACrBC,QAAA;IACA5uB,OAAO6uB,SAAY,GAAA,CAAA;IACnB3O,IAAA;IACAld,SAAA;IACAwR,IAAO,GAAA,SAAA;IACP3a,IAAO,GAAA,QAAA;IACP2qB,KAAQ,GAAA,KAAA;IACRzd,KAAA;IACA,GAAG4d;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA;IAAC0tB;GAAM,GAAIjY,WAAY,EAAA;EAEvB,MAAA2E,OAAA,GAAU7W,aAAagrB,WAAW,CAAA;EAClC,MAAAjtB,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAAzD,QAAA,GAAWznB,aAAamrB,YAAY,CAAA;EACpC,MAAAzD,QAAA,GAAW1nB,aAAaorB,YAAY,CAAA;EACpC,MAAA7jB,UAAA,GAAavH,aAAaqrB,cAAc,CAAA;EACxC,MAAA5jB,aAAA,GAAgBzH,aAAasrB,iBAAiB,CAAA;EAC9C,MAAA5jB,WAAA,GAAc1H,aAAaurB,eAAe,CAAA;EAC1C,MAAA/jB,YAAA,GAAexH,aAAawrB,gBAAgB,CAAA;EAC5C,MAAA7L,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA3uB,KAAA,GAAQkD,aAAa2rB,SAAS,CAAA;EAEpC,MAAMC,QAAW,GAAA1rB,OAAA,CACf,OAAO;IAAA;IAELnC,OAAA;IACA0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAE,aAAA;IACAC,WAAA;IACAF;EAAA,CACF,CAAA,EACA,CAACzJ,OAAS,EAAA0pB,QAAA,EAAUC,UAAUngB,UAAY,EAAAE,aAAA,EAAeC,aAAaF,YAAY,CAAA,CACpF;EAGE,sBAAA4d,IAAA,CAACvE,MAAA,EAAA;IACC,SAAQ,EAAA,QAAA;IACP,GAAGY,SAAA;IACJgJ,KAAO,EAAAvC,IAAA;IACPtI,OAAS,EAAAD,MAAA;IACT/B,KAAO,EAAAtM,IAAA;IACP,eAAA,EAAe1Q,OAAQ,CAAAqqB,OAAA,IAAW/M,QAAQ,CAAA;IAC1C,eAAA,EAAewN,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/BxN,QAAA,EAAUtd,OAAQ,CAAAqqB,OAAA,IAAW/M,QAAQ,CAAA;IACrClK,GAAA;IACArd,IAAA;IACAuzB,MAAQ,EAAArmB,KAAA;IAEPsN,QAAA,EAAA,CAAAvQ,OAAA,CAAQqqB,OAAO,CACd,IAAA,eAAAvZ,GAAA,CAACmZ,UACC,EAAA;MAAA1Z,QAAA,EAAA,eAAAO,GAAA,CAAC6W,UAAQ,CAAA;KACX,CAAA,EAAA,CAGAgB,IAAQ,IAAAvM,IAAA,IAAQ+N,SAChB,KAAA,eAAArZ,GAAA,CAAC2V;MAAIzD,EAAG,EAAA,MAAA;MAAQ,GAAGgI,QAAA;MACjBza,8BAACiX,IAAK,EAAA;QAAAxE,EAAA,EAAG,MAAO;QAAA/M,OAAA;QAAkBL,KAAK1Z,KACpC;QAAAqU,QAAA,EAAA,CACCoY,IAAA,IAAA,eAAAnE,IAAA,CAACyC,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACT;UAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;SACjD,CAAA,EAGDvM,QACE,eAAAtL,GAAA,CAAA2V,GAAA,EAAA;UAAI9P,IAAM,EAAAwT,SAAA,GAAY,IAAI,KACzB,CAAA;UAAA5Z,QAAA,iBAAAO,GAAA,CAACmW,IAAA,EAAA;YACCvG,KAAA;YACAjL,KAAO,EAAAvW,SAAA;YACPrB,IAAM,EAAAD,QAAA;YACN+iB,YAAa,EAAA,UAAA;YACbC,QAAQ2I,MAAO,CAAA4B,UAAA;YAEd5a,QAAA,EAAA6L;UAAA,CAAA;SAEL,CAAA,EAGD+N,SACC,IAAA,eAAA3F,IAAA,CAACyC,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACT;UAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAed,SAAS,CAAK,IAAAA,SAAA,EAC7Br0B,cAAAA,CAAAA,kBAAmB,CAAAq0B,SAAS,CAAK,IAAAe,aAAA,CAAcf,SAAS,CAAA;SAC3D,CAAA;MAAA,CAEJ;IACF,CAAA,CAAA,EAGD5Z,YACE,eAAAO,GAAA,CAAA2V,GAAA,EAAA;MAAIzD,IAAG,MAAQ;MAAA,GAAGgI;MAChBza;KACH,CAAA;EAAA,CAAA,CAEJ;AAEJ,CAAC,CAAA;;;;;;ACrLD,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAOO,SAAS2O,UACdvvB,KACgE,EAAA;EAChE,OAAO,CAACwvB,aAAc,CAAAxvB,KAAK,CAAG,EAAAyvB,cAAA,CAAezvB,KAAK,CAAC,CAAA;AACrD;AAEO,SAASwvB,cAAcxvB,KAA4D,EAAA;EAClF,MAAA;IAAC0vB;EAAc,CAAA,GAAA1vB,KAAA;EACrB,MAAM;IAACK;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,QAAA,EAMP,kdALC,CAAA,CAAA,CAAA,EAAA2O,UAAA,IACF5O,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2BAAA,EAC0B,KAAc,EAAA,+FAAA,CAAA,CAAA,CAAA,EAAtB1gB,KAAM,CAAA,CAAC,CAAO,EAAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAA;AA4B9C;AAEO,SAASovB,eAAezvB,KAA4D,EAAA;EAlD3F2H,IAAAA,GAAAA;EAmDQ,MAAA;IAAC+nB,UAAY;IAAAC;EAAc,CAAA,GAAA3vB,KAAA;EACjC,MAAM;IAAC6X,IAAM;IAAAmD,KAAA;IAAOpc;EAAS,CAAA,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACpD,MAAMoT,SAAS;IAAC/L,KAAA,EAAOyQ,KAAK1E,MAAO,CAAA/L,KAAA;IAAO4T,OAAO;GAA0B;EAE3E,OAAO8F,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,sBAAA,EACsC,WAEH,EAAA,mSAAA,EAagC,8EAKC,EAAA,uDAAA,EAIC,6KAOG,EAAA,2DAAA,EAIA,gHAQ7D,EAAA,6LAAA,EAWwD,oFAKC,EAAA,uDAAA,EAIC,+KAOG,2DAIA,EAAA,gHAAA,EAQ7D,sCAKA,EAAA,MAAA,CAAA,CAAA,CAAA,EAvFH/F,KAAM,CAAA4U,KAAA,GAAQ,MAAS,GAAA,OAAA,EAErC5D,eAAgB,CAAAhR,KAAA,EAAOA,KAAO,EAAA0U,UAAU,CAapC,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,WAAWxO,OAAQ,CAAAI,QAAA,EAAUiO,UAAU,CAAA,EAKlE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,OAAQ,CAAA8M,OAAA,EAASuB,UAAU,CAAA,EAInE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,QAAQ4N,QAAU,EAAAS,UAAU,CAOhE,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,UAAW,CAAAxO,OAAA,CAAQY,SAASyN,UAAU,CAAA,EAInE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,OAAQ,CAAA8M,OAAA,EAASuB,UAAU,CAMzC,EAAAC,UAAA,GAC5B1U,cAAe,CAAA;IAAC9Z,IAAM,EAAA6Z,KAAA;IAAO7H,MAAQ;IAAAgI,SAAA,EAAWtD,IAAK,CAAAsD;GAAU,CAAA,GAC/D,KAWJ,CAAA,EAAA6Q,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,WAAWxO,OAAQ,CAAAI,QAAA,EAAUiO,UAAU,CAAA,EAKlE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,OAAQ,CAAA8M,OAAA,EAASuB,UAAU,CAAA,EAInE1D,eAAgB,CAAAhR,KAAA,EAAOA,KAAM,CAAA6U,UAAA,CAAWxO,QAAQ4N,QAAU,EAAAS,UAAU,CAOhE,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,UAAW,CAAAxO,OAAA,CAAQY,OAAS,EAAAyN,UAAU,CAInE,EAAA1D,eAAA,CAAgBhR,KAAO,EAAAA,KAAA,CAAM6U,UAAW,CAAAxO,OAAA,CAAQ8M,SAASuB,UAAU,CAAA,EAMzCC,UAC5B,GAAA1U,cAAA,CAAe;IAAC9Z,IAAA,EAAM6Z,KAAO;IAAA7H,MAAA;IAAQgI,WAAWtD,IAAK,CAAAsD;EAAA,CAAU,CAAA,GAC/D,KAKRxT,CAAAA,EAAAA,CAAAA,GAAAA,GAAA/I,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAiZ,IAAA,KAAP,gBAAAlQ,GAAa,CAAA2N,IAAA,CAAA;AAEnB;ACtGA,MAAM8O,SAAOC,MAAO,CAAAuG,GAAG,EAKrBhT,qBAAuB,EAAAqL,qBAAA,EAAuBa,uBAAuByL,SAAS,CAAA;AAQzE,MAAMO,IAAO,GAAApL,UAAA,CAAW,SAASoL,KAAAA,CACtC9vB,OACAuX,GACA,EAAA;EACM,MAAA;IACJwY,sBAAsB9D,SAAY,GAAA,KAAA;IAClC+D,sBAAsB7U,SAAY,GAAA,KAAA;IAClCgM,EAAI,EAAAC,MAAA;IACJjU,MAAA;IACAjI,SAAA;IACAE,WAAA;IACAE,YAAA;IACAE,UAAA;IACA2iB,OAAA;IACAjL,MAAS,GAAA,CAAA;IACTvO,MAAA;IACAsa,QAAA;IACA3L,MAAA;IACAzO,MAAMob,QAAW,GAAA,SAAA;IACjB,GAAGjL;EACD,CAAA,GAAAhlB,KAAA;EAEJ,MAAMmnB,EAAK,GAAAltB,cAAA,CAAAA,kBAAA,CAAmBmtB,MAAM,CAAA,GAAIA,MAAS,GAAA,KAAA;EACjD,MAAMxS,YAAYQ,YAAa,EAAA;EAC/B,MAAMP,IAAO,GAAAob,QAAA,KAAa,SAAY,GAAArb,SAAA,CAAUC,IAAO,GAAAob,QAAA;EAIrD,OAAA,eAAAhb,GAAA,CAACI,kBAAmB,EAAA;IAAAV,MAAA;IAAgBE,IAClC;IAAAH,QAAA,EAAA,eAAAO,GAAA,CAACmP,MAAA,EAAA;MACC,SAAS,EAAA,OAAO+C,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;MACvC,eAAavS,SAAU,CAAAD,MAAA;MACvB,SAAQ,EAAA,MAAA;MACR,WAAW,EAAAE,IAAA;MACV,GAAGmQ,SAAA;MACJjN,OAAA,EAASxU,aAAa4P,MAAM,CAAA;MAC5B6E,UAAA,EAAYzU,aAAa2H,SAAS,CAAA;MAClC+M,YAAA,EAAc1U,aAAa6H,WAAW,CAAA;MACtC8M,aAAA,EAAe3U,aAAa+H,YAAY,CAAA;MACxC6M,WAAA,EAAa5U,aAAaiI,UAAU,CAAA;MACpCkkB,UAAY,EAAAzD,SAAA;MACZ0D,UAAY,EAAAxU,SAAA;MACZgI,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;MAC5Ba,OAAA,EAASxgB,aAAa+f,MAAM,CAAA;MAC5BnC,KAAO,EAAAtM,IAAA;MACP,gBAAA,EAAgBoX,YAAY,EAAK,GAAA,KAAA,CAAA;MACjC,cAAA,EAAckC,UAAU,EAAK,GAAA,KAAA,CAAA;MAC7B,eAAA,EAAec,WAAW,EAAK,GAAA,KAAA,CAAA;MAC/B3F,WAAa,EAAAnC,EAAA;MACb5P,GAAA;MACA0X;IAAA,CAEJ;EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC9GD,IAAAtnB,IAAA,EAAAO,IAAA;AAKO,SAASgoB,kBAA6CA,CAAA,EAAA;EAC3D,OAAOpP,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2DAAA,CAAA,CAAA,CAAA,CAAA;AAIZ;AAEO,SAASoP,mBAAmBnwB,KAA2C,EAAA;EAC5E,MAAM;IAACgb,KAAO;IAAAoG,KAAA;IAAO8B;EAAU,CAAA,GAAA5iB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAChD,MAAA;IAACob;EAAS,CAAA,GAAIiG,KAAM,CAAAgP,QAAA;EAE1B,OAAOtP,oBAAGC,YAe4B,CAAA,CAAA,sQAAA,EAAA,kBAAA,EACD,sDAK/B,EAAA,0BAAA,EAC6B,sDAEmB,sUAiBN,EAAA,uBAAA,EAI1C,kBACqC,EAAA,oGAAA,EAKE,sJAKuB,kEAIV,EAAA,uBAAA,EAIpD,kBACsC,EAAA,yEAAA,EAGgB,oBACjB,uGAMrC,EAAA,+DAAA,EAIiD,uBAIjD,EAAA,kBAAA,EACsC,wEAGiB,sEAIN,EAAA,uBAAA,EAIjD,kBACsC,EAAA,+EAAA,EAIiB,kKArF/CjiB,GAAI,CAAAsiB,KAAA,CAAMgP,QAAS,CAAApuB,IAAI,GACxBlD,GAAI,CAAAsiB,KAAA,CAAMgP,QAAS,CAAApuB,IAAI,GAElB+Y,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EAAA,CACrB,CACgB,EAAAtI,GAAA,CAAIokB,MAAO,CAAA,CAAC,CAAC,CAEV,EAAAlI,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,QAAQ9F,EAiBlC,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAC5BxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA;IACnCna,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EACQ4T,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,EAKvB,EAAAP,cAAA,CAAe;IAACE;GAAU,CAAA,EAK1BF,cAAe,CAAA;IAACE,SAAW,EAAA;MAAC/T,KAAO,EAAA,CAAA;MAAGiU,MAAQ,EAAA;IAAE;EAAA,CAAC,CAI3C,EAAAL,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,OAAQ,CAAAnO,MAAA,EAClC4H,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,QAAQuD,KAAM,CAAArJ;EAAA,CAC1C,CACQ,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASF,IAGlBvG,KAAM,CAAAoG,KAAA,CAAMM,OAAQ,CAAAJ,OAAA,CAAQuD,MAAMrJ,EAC7C,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,IAGvBP,cAAe,CAAA;IAC3B9H,MAAQ,EAAA;MAAC/L,KAAO,EAAAga,KAAA,CAAMjO,MAAO,CAAA/L,KAAA;MAAO4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQC,QAAS,CAAAkD,KAAA,CAAMrJ;IAAE,CAAA;IAChFL,SAAW,EAAA;MAAC/T,KAAO,EAAA,CAAA;MAAGiU,QAAQ;IAAC;EAAA,CAChC,CAImB,EAAAL,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASjG,IACnCT,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO;EAAA,CACrC,CACQ,EAAA6H,KAAA,CAAMoG,MAAMC,OAAQ,CAAAI,QAAA,CAASF,IAGlBvG,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAI,QAAA,CAASoD,MAAMrJ,EAInC,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAM,QAAA,CAASnG,IACnCT,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAxO;EACrC,CAAA,CACQ,EAAA6H,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAJ,EAAA,EAIlBvG,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAM,QAAA,CAASkD,KAAM,CAAArJ,EAAA,CAAA;AAU7D;AChHA,MAAM4I,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAI4L,kBAAkB,CAAA;AAC1C,MAAMG,OAAA,GAAQhM,MAAO,CAAAjD,KAAA,CAAM+O,kBAAkB,CAAA;AAOtC,MAAMG,QAAW,GAAA5L,UAAA,CAAW,SAAS4L,SAAAA,CAC1CtwB,OACAuwB,YACA,EAAA;EACM,MAAA;IACJC,OAAA;IACAC,SAAA;IACAhP,QAAA;IACAiP,aAAA;IACAhZ,cAAA;IACAiK,QAAA;IACA/iB,KAAA;IACA,GAAGomB;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC9Y,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC7S,SAAA,CAAU,MAAM;IACd,IAAI0S,IAAIxS,OAAS,EAAA;MAEXwS,GAAA,CAAAxS,OAAA,CAAQ2rB,gBAAgBA,aAAiB,IAAA,KAAA;IAC/C;EAAA,CACC,EAAA,CAACA,aAAe,EAAAnZ,GAAG,CAAC,CAAA;EAEvB,OACG,eAAAoR,IAAA,CAAAvE,MAAA,EAAA;IAAKqM,SAAsB;IAAA,SAAA,EAAQ;IAAW7xB,KAC7C;IAAA8V,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC7C,YAAA,EAAYjK,iBAAiB,EAAK,GAAA,KAAA,CAAA;MACjC,GAAGsN,SAAA;MACJwL,OAAA;MACA/O,UAAUA,QAAY,IAAAE,QAAA;MACtBznB,IAAK,EAAA,UAAA;MACLynB,QAAA;MACApK;IAAA,CACF,CAAA,EAAA,oBACC,MACC,EAAA;MAAA7C,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC0b,aAAc,EAAA,EAAA,CAAA,EAAA,mBACdC,UAAW,EAAA,EAAA,CAAA;KACd,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;ACjED,IAAAjpB,IAAA;AAGA,SAASkpB,2BAAAA,CAAAC,KAAA,EAAuD;EAAA,IAA3B;IAAC/wB;GAA0B,GAAA+wB,KAAA;EACxD,MAAA;IACJ9V,KAAA,EAAO;MAAC+V,MAAA,EAAQ/V;IAAK;EAAA,CACvB,GAAI1a,YAAYP,KAAK,CAAA;EAEd,OAAA;IACL,UAAY,EAAA;MAACib,KAAO,EAAAA,KAAA,CAAMgW;IAAM,CAAA;IAChC,aAAe,EAAA;MAAChW,KAAO,EAAAA,KAAA,CAAMiW;IAAQ,CAAA;IACrC,cAAgB,EAAA;MAACjW,KAAO,EAAAA,KAAA,CAAMkW;IAAS,CAAA;IACvC,aAAe,EAAA;MAAClW,KAAO,EAAAA,KAAA,CAAMmW;IAAS,CAAA;IACtC,WAAa,EAAA;MAACnW,KAAO,EAAAA,KAAA,CAAMoW;IAAO,CAAA;IAClC,WAAa,EAAA;MAACpW,KAAO,EAAAA,KAAA,CAAMqW;IAAO,CAAA;IAClC,SAAW,EAAA;MAACrW,KAAO,EAAAA,KAAA,CAAMsW;IAAK,CAAA;IAC9B,QAAU,EAAA;MAACtW,KAAO,EAAAA,KAAA,CAAMuW;IAAI,CAAA;IAC5B,SAAW,EAAA;MAACvW,KAAO,EAAAA,KAAA,CAAMwW;IAAK,CAAA;IAC9B,cAAgB,EAAA;MAACxW,KAAO,EAAAA,KAAA,CAAMyV;IAAS,CAAA;IACvC,WAAa,EAAA;MAACzV,KAAO,EAAAA,KAAA,CAAMyW;IAAO,CAAA;IAClC,YAAc,EAAA;MAACzW,KAAO,EAAAA,KAAA,CAAM0W;IAAQ,CAAA;IACpC,WAAa,EAAA;MAAC1W,KAAO,EAAAA,KAAA,CAAM2W;IAAO,CAAA;IAClC,WAAa,EAAA;MAAC3W,KAAO,EAAAA,KAAA,CAAM4W;IAAO,CAAA;IAClC,UAAY,EAAA;MAAC5W,KAAO,EAAAA,KAAA,CAAM6W;IAAM,CAAA;IAChC,YAAc,EAAA;MAAC7W,KAAO,EAAAA,KAAA,CAAM8W;IAAQ,CAAA;IACpC,WAAa,EAAA;MAAC9W,KAAO,EAAAA,KAAA,CAAM+W;IAAO,CAAA;IAClC,MAAQ,EAAA;MAAC/W,KAAO,EAAAA,KAAA,CAAM6N;IAAE,CAAA;IACxB,aAAe,EAAA;MAAC7N,KAAO,EAAAA,KAAA,CAAMgX;IAAS,CAAA;IACtC,YAAc,EAAA;MAAChX,KAAO,EAAAA,KAAA,CAAMiX;IAAQ,CAAA;IACpC,WAAa,EAAA;MAACjX,KAAO,EAAAA,KAAA,CAAMkX;IAAO,CAAA;IAClC,UAAY,EAAA;MAAClX,KAAO,EAAAA,KAAA,CAAMmX;IAAM,CAAA;IAChC,YAAc,EAAA;MAACnX,KAAO,EAAAA,KAAA,CAAMoX;IAAQ,CAAA;IACpC,UAAY,EAAA;MAACpX,KAAO,EAAAA,KAAA,CAAMqX;IAAM,CAAA;IAChC,YAAc,EAAA;MAACrX,KAAO,EAAAA,KAAA,CAAMsX;IAAQ,CAAA;IACpC,gBAAkB,EAAA;MAACtX,KAAO,EAAAA,KAAA,CAAMuX;IAAW,CAAA;IAC3C,kBAAoB,EAAA;MAACvX,KAAO,EAAAA,KAAA,CAAMwX;IAAa,CAAA;IAC/C,eAAiB,EAAA;MAACxX,KAAO,EAAAA,KAAA,CAAMyX;IAAW,CAAA;IAC1C,SAAW,EAAA;MAACzX,KAAO,EAAAA,KAAA,CAAM0X;IAAK,CAAA;IAC9B,YAAc,EAAA;MAAC1X,KAAO,EAAAA,KAAA,CAAM2X;IAAQ,CAAA;IACpC,UAAY,EAAA;MAAC3X,KAAO,EAAAA,KAAA,CAAM4X;IAAM,CAAA;IAChC,UAAY,EAAA;MAAC5X,KAAO,EAAAA,KAAA,CAAM6X;IAAM,CAAA;IAChC,OAAS,EAAA;MAAC7X,KAAO,EAAAA,KAAA,CAAM8X;IAAG,CAAA;IAC1B,QAAU,EAAA;MAAC9X,KAAO,EAAAA,KAAA,CAAM+X;IAAI,CAAA;IAC5B,OAAS,EAAA;MAAC/X,KAAO,EAAAA,KAAA,CAAMgY;IAAG,CAAA;IAC1B,YAAc,EAAA;MAAChY,KAAO,EAAAA,KAAA,CAAMiY;IAAQ;EAAA,CACtC;AACF;AAEO,SAASC,aAAwCA,CAAA,EAAA;EAC/C,OAAApS,GAAA,CAAAnZ,IAAA,KAAAA,IAAA,GAAGoZ,8IAOyB,+XAA3B,CAAA,CAAA,CAAA,EAAA8P,2BAAA,CAAA;AAoBV;ACzDA,MAAMzM,MAAO,GAAAC,MAAA,CAAO8O,GAA8B,CAAAD,aAAA,EAAelwB,uBAAuB,CAAA;AAKjF,MAAMowB,IAAO,GAAA1O,UAAA,CAAW,SAAS0O,KAAAA,CACtCpzB,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C;IAAU2e,QAAU,EAAAC,YAAA;IAActxB,OAAO,CAAG;IAAA+iB,MAAA;IAAQ,GAAGC;EAAa,CAAA,GAAAhlB,KAAA;EAC3E,MAAMqzB,QAAW,GAAA,OAAOC,YAAiB,KAAA,QAAA,GAAWA,YAAe,GAAA,KAAA,CAAA;EACnE,MAAMC,UAAa,GAAAF,QAAA,GAAWG,SAAU,CAAAC,WAAA,CAAYJ,QAAe,CAAI,GAAA,KAAA;EAEvE,OAAA,eACG1K,IAAA,CAAAvE,MAAA,EAAA;IAAK,SAAQ,EAAA,MAAA;IAAQ,GAAGY,SAAA;IAAWtkB,KAAO,EAAA6C,YAAA,CAAavB,IAAI,CAAA;IAAGrB,OAAS,EAAAokB,MAAA;IAAQxN,GAC7E;IAAA7C,QAAA,EAAA,CAAA,EAAE2e,QAAY,IAAAE,UAAA,CAAA,IAAA,eAAgBte,GAAA,CAAA,MAAA,EAAA;MAAMP;KAAS,CAAA,EAC7C2e,QAAA,IAAYE,UAAc,IAAA,eAAAte,GAAA,CAACue,SAAU,EAAA;MAAAE,MAAA,EAAM;MAACL,QAAoB;MAAA30B,KAAA,EAAOisB,MAAO,CAAAjW,QAAQ;IAAG,CAAA,CAAA;EAC5F,CAAA,CAAA;AAEJ,CAAC,CAAA;AClCD,MAAM0D,YAAwB,GAAA;EAC5BhR,KAAO,EAAA,MAAA;EACP7F,MAAQ,EAAA;AACV,CAAA;AAEO,SAASoyB,kBAAgCA,CAAA,EAAA;EACvC,OAAAvb,YAAA;AACT;AAEO,SAASwb,8BACd5zB,KACa,EAAA;EACb,MAAM;IAAC6zB,SAAW;IAAA30B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAElD,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAytB,MAAA,EAAS/tB,GAAS,KAAA;IAChDo0B,UAAUp0B,GAAQ,KAAA,MAAA,GAAS,SAASZ,GAAI,CAAA+0B,SAAA,CAAUn0B,GAAG,CAAC;EACtD,CAAA,CAAA,CAAA;AACJ;ACRA,MAAM0kB,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrB+I,kBAAA,EACAC,6BACF,CAAA;AAOO,MAAMG,SAAY,GAAArP,UAAA,CAAW,SAASqP,UAAAA,CAC3C/zB,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAI;IAAA/f,KAAA,GAAQ,CAAG;IAAA,GAAG4d;EAAa,CAAA,GAAAhlB,KAAA;EAGpC,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,WAAA;IACP,GAAGY,SAAA;IACJyI,MAAA,EAAQlqB,aAAa6D,KAAK,CAAA;IAC1BkiB,WAAa,EAAAnC,EAAA;IACb5P;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;AC1BD,MAAM6M,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAA4B3O,mBAAmB,CAAA;AAO/D,MAAM+X,IAAO,GAAAtP,UAAA,CAAW,SAASsP,KAAAA,CACtCh0B,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAA;IAAIrK,QAAU;IAAAG,QAAA;IAAUN,QAAU;IAAAS,OAAA;IAASrD,GAAK;IAAA4D,IAAA;IAAMG,IAAM;IAAAP,IAAA;IAAM7I,QAAU;IAAA,GAAGsQ;GACpF,GAAAhlB,KAAA;EAGA,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAS,EAAA,OAAO+C,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA,MAAA;IACP,GAAGnC,SAAA;IACJnI,SAAA,EAAWtZ,aAAauZ,QAAQ,CAAA;IAChCE,SAAA,EAAWzZ,aAAa0Z,QAAQ,CAAA;IAChCP,SAAA,EAAWnZ,aAAaoZ,QAAQ,CAAA;IAChCQ,QAAA,EAAU5Z,aAAa6Z,OAAO,CAAA;IAC9BtD,IAAA,EAAMvW,aAAawW,GAAG,CAAA;IACtB2D,KAAA,EAAOna,aAAaoa,IAAI,CAAA;IACxBE,KAAA,EAAOta,aAAaua,IAAI,CAAA;IACxBR,KAAA,EAAO/Z,aAAaga,IAAI,CAAA;IACxB+L,WAAa,EAAAnC,EAAA;IACb5P,GAAA;IAEC7C;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;AC7CD,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAKO,SAASqT,iBAAiBj0B,KAA+D,EAAA;EACxF,MAAA;IAACikB,OAAS;IAAAC;EAAU,CAAA,GAAAlkB,KAAA;EAC1B,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,QAAA,EAIP,UAKA,EAAA,uCAAA,EAGgC,2vBAX/B,CAAA,CAAA,CAAA,EAAAkD,OAAA,IACFnD,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA,EAIDmD,MACF,IAAApD,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,YAKc,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAKujB,IAAK,CAAAtjB,MAAA,CAAA;AAqC/B;;;;;;AC1DA,IAAA8G,IAAA;AAgCA,MAAMyc,MAAO,GAAAC,MAAA,CAAOC,GAElB,CAAA2P,gBAAA,EAAkB9wB,0BAA0BF,qBAAqB,CAAA;AAEnE,MAAMshB,oBAAA,GAAuBF,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mHAAA,CAAA,CAAA,CAAA,CAAA;AAajC,MAAMmT,OAAU,GAAAxP,UAAA,CAAW,SAASwP,QAAAA,CACzCl0B,OACAuX,GACA,EAAA;EACM,MAAA;IACJoN,MAAS,GAAA,KAAA;IACT/K,KAAA;IACAlF,QAAU,EAAAkQ,YAAA;IACVC,KAAQ,GAAA,KAAA;IACR7iB,IAAO,GAAA,CAAA;IACP8iB,YAAA;IACAC,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEJ,IAAI0U,QAAW,GAAAkQ,YAAA;EAEf,IAAIE,iBAAiB,UAAY,EAAA;IACpBpQ,QAAA,GAAA,eAAAO,GAAA,CAACsP;MAAsB7P;IAAS,CAAA,CAAA;EAC7C;EAGE,sBAAAO,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAGY,SAAA;IACJf,OAAS,EAAAU,MAAA;IACTvhB,MAAA,EAAQG,aAAaqW,KAAK,CAAA;IAC1BsK,MAAQ,EAAAW,KAAA;IACRnkB,KAAA,EAAO6C,aAAavB,IAAI,CAAA;IACxBrB,OAAS,EAAAokB,MAAA;IACTxN,GAAA;IAEA7C,QAAA,iBAAAO,GAAA,CAAC;MAAMP;IAAS,CAAA;EAAA,CAAA,CAClB;AAEJ,CAAC,CAAA;AChFM,SAASyf,eAA6BA,CAAA,EAAA;EACpC,OAAA;IACL9xB,UAAY,EAAA,CAAA;IAEZ,kBAAoB,EAAA;MAClBZ,OAAS,EAAA;IACX,CAAA;IAEA,SAAW,EAAA;MACTA,OAAS,EAAA,cAAA;MACT8pB,aAAe,EAAA;IACjB;EAAA,CACF;AACF;AAEO,SAAS6I,iBAAiBp0B,KAAkE,EAAA;EACjG,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAigB,MAAA,EAAS1f,UAAe,IAAA;IAChD,MAAA6f,MAAA,GAASthB,GAAI,CAAAyB,UAAA,KAAe,GAAM,GAAAF,KAAA,CAAM,CAAC,CAAI,GAAA,CAAA,GAAIA,KAAM,CAAAE,UAAU,CAAC,CAAA;IAEjE,OAAA;MACLgB,MAAA,EAAQ,GAAI,CAAAvC,MAAA,CAAAohB,MAAA,EAAM,QAAS,CAAA,CAAAphB,MAAA,CAAAohB,MAAA,CAAA;MAC3B,WAAW;QAAC9e,OAAA,EAAS,EAAG,CAAAtC,MAAA,CAAAohB,MAAA,EAAM,SAAQphB,MAAQ,CAAAohB,MAAA;MAAA;IAAA,CAChD;EAAA,CACD,CAAA;AACH;ACdA,MAAMgE,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAAmCuJ,iBAAiBC,gBAAgB,CAAA;AAOpF,MAAMC,MAAS,GAAA3P,UAAA,CAAW,SAAS2P,OAAAA,CACxCr0B,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAI;IAAAzS,QAAA,EAAUkQ;IAAcvkB,KAAO;IAAA,GAAG2kB;EAAa,CAAA,GAAAhlB,KAAA;EAE1D,MAAM0U,QAAW,GAAAjR,OAAA,CACf,MACEkmB,sBAAA,CAAuB/E,YAAY,CAAA,CAChC1gB,OAAOC,OAAO,CAAA,CACd7E,GAAI,CAAA,CAAC+qB,OAAO3W,GAAQ,KAAA,eAAAuB,GAAA,CAAC,KAAe,EAAA;IAAAP,QAAA,EAAA2V;EAAA,CAAA,EAAN3W,GAAY,CAAM,CAAA,EACrD,CAACkR,YAAY,CAAA,CACf;EAGE,sBAAA3P,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,QAAA;IACP,GAAGY,SAAA;IACJ/E,MAAA,EAAQ1c,aAAalD,KAAK,CAAA;IAC1BipB,WAAa,EAAAnC,EAAA;IAEb5P,GAAA;IAEC7C;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;ACjDD,IAAA/M,IAAA;AAkBA,SAAS2sB,QAAWA,CAAA,EAAA;EAClB,OAAOxT,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gXAAA,CAAA,CAAA,CAAA,CAAA;AAeZ;AAEA,MAAMqD,MAAO,GAAAC,MAAA,CAAO8I,GAAgC,CAAAlK,qBAAA,EAAuBqR,QAAQ,CAAA;AAO5E,MAAMC,GAAM,GAAA7P,UAAA,CAAW,SAAS6P,IAAAA,CACrCv0B,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C,QAAU;IAAA3S,QAAA,GAAW,CAAG;IAAAT,OAAA,GAAU;IAAG4hB,MAAS,GAAA,CAAA;IAAG,GAAG8B;EAAA,CAAa,GAAAhlB,KAAA;EAGtE,OAAA,eAAAiV,GAAA,CAACmP,MAAK,EAAA;IAAA,SAAA,EAAQ,KAAO;IAAA,GAAGY,SAAW;IAAA7B,OAAA,EAAS5f,YAAa,CAAA2f,MAAM,CAAG;IAAA3L,GAAA;IAChE7C,QAAC,EAAA,eAAAO,GAAA,CAAA2V,GAAA,EAAA;MAAIzD,IAAG,MAAO;MAAA7lB,OAAA;MACboT,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;QAAKjE,EAAG,EAAA,MAAA;QAAOnlB,IAAM,EAAAD,QAAA;QAAUgjB,MAAO,EAAA,UAAA;QACpCrQ;MACH,CAAA;IAAA,CACF;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;AC/CM,MAAM8f,MAAqB,GAAA;EAChCvjB,IAAM,EAAA,mBAAA;EACNwjB,EAAGA,CAAAC,KAAA,EAAoC;IAAA,IAApC;MAACC,cAAgB;MAAAC,SAAA;MAAWC;KAAQ,GAAAH,KAAA;IAbzC,IAAA/sB,EAAA,EAAAO,EAAA;IAcI,MAAM,CAAC4sB,IAAI,CAAI,GAAAF,SAAA,CAAUG,MAAM,GAAG,CAAA;IAE5B,MAAAC,aAAA,GAAgBH,MAAMI,QAAS,CAAA7tB,KAAA;IAC/B,MAAA8tB,cAAA,GAAiBL,MAAMI,QAAS,CAAAvzB,MAAA;IAEtC,MAAMyzB,MAAS,GAAA,CAAA,CAAAxtB,EAAA,GAAAgtB,cAAA,CAAeS,KAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAztB,EAAA,CAAsBT,CAAK,KAAA,CAAA;IAC1C,MAAMmuB,MAAS,GAAA,CAAA,CAAAntB,EAAA,GAAAysB,cAAA,CAAeS,KAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAltB,EAAA,CAAsBf,CAAK,KAAA,CAAA;IAEtC,IAAA6tB,aAAA,IAAiB,CAAK,IAAAE,cAAA,IAAkB,CAAG,EAAA;MAC7C,OAAO,EAAC;IACV;IAEA,MAAMI,sBAAsB,CAAC,QAAA,EAAU,KAAK,CAAA,CAAErwB,SAAS6vB,IAAI,CAAA;IAE3D,MAAM;MAACS,OAAA;MAASC;IAAO,CAAA,GAAwCF,mBAC3D,GAAA;MACEC,SAASE,KAAM,CAAA,GAAA,GAAMN,MAAS,GAAAH,aAAA,EAAe,GAAG,CAAC,CAAA;MACjDQ,OAAA,EAASV,IAAS,KAAA,QAAA,GAAW,CAAI,GAAA;IAAA,CAEnC,GAAA;MACES,OAAA,EAAST,IAAS,KAAA,MAAA,GAAS,CAAI,GAAA,CAAA;MAC/BU,SAASC,KAAM,CAAA,GAAA,GAAMJ,MAAS,GAAAH,cAAA,EAAgB,GAAG,CAAC;IAAA,CACpD;IAEG,OAAA;MACLQ,IAAA,EAAM;QAACH,OAAA;QAASC;MAAO;IAAA,CACzB;EACF;AACF,CAAA;AAEA,SAASC,KAAAA,CAAME,GAAa,EAAA9Z,GAAA,EAAaC,GAAa,EAAA;EACpD,OAAOpZ,KAAKmZ,GAAI,CAAAnZ,IAAA,CAAKoZ,IAAI6Z,GAAK,EAAA9Z,GAAG,GAAGC,GAAG,CAAA;AACzC;ACxBA,SAAS8Z,iBAAAA,CAAkBC,WAAoB,EAAAC,WAAA,EAAoBC,MAAgB,EAAA;EAC3E,MAAA3uB,KAAA,GAAQ0uB,WAAY,CAAA5uB,CAAA,GAAI2uB,WAAY,CAAA3uB,CAAA;EACpC,MAAAxF,MAAA,GAASo0B,WAAY,CAAA3uB,CAAA,GAAI0uB,WAAY,CAAA1uB,CAAA;EAE3C,MAAM8iB,WAAWvnB,IAAK,CAAAszB,IAAA,CAAK5uB,KAAQ,GAAAA,KAAA,GAAQ1F,SAASA,MAAM,CAAA;EAEnD,OAAAu0B,qBAAA,CAAsBJ,aAAaC,WAAa,EAAApzB,IAAA,CAAKmZ,IAAI,CAAG,EAAAka,MAAA,GAAS9L,QAAQ,CAAC,CAAA;AACvF;AAEA,SAASgM,qBAAAA,CAAsBJ,WAAoB,EAAAC,WAAA,EAAoBI,QAAyB,EAAA;EACvF,OAAA;IACLhvB,GAAG2uB,WAAY,CAAA3uB,CAAA,GAAA,CAAK4uB,WAAY,CAAA5uB,CAAA,GAAI2uB,YAAY3uB,CAAK,IAAAgvB,QAAA;IACrD/uB,GAAG0uB,WAAY,CAAA1uB,CAAA,GAAA,CAAK2uB,WAAY,CAAA3uB,CAAA,GAAI0uB,YAAY1uB,CAAK,IAAA+uB;EAAA,CACvD;AACF;AAEO,SAASC,mBAAmBC,MAAwB,EAAA;EACzD,MAAMlW,MAAMkW,MAAO,CAAAj2B,MAAA;EAEnB,MAAMk2B,OAAc,EAAC;EAErB,KAAA,IAASzkB,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;IACzB,MAAA0kB,KAAA,GAAQF,OAAOxkB,CAAC,CAAA;IAChB,MAAA2kB,SAAA,GAAYH,MAAO,CAAAxkB,CAAA,GAAI,CAAC,CAAA;IACxB,MAAA4kB,SAAA,GAAYJ,MAAO,CAAAxkB,CAAA,GAAI,CAAC,CAAA;IAE1B,IAAA2kB,SAAA,IAAaD,MAAMpT,MAAQ,EAAA;MAC7B,MAAMuT,UAAa,GAAAb,iBAAA,CAAkBU,KAAO,EAAAC,SAAA,EAAWD,MAAMpT,MAAM,CAAA;MACnE,MAAMwT,QAAW,GAAAd,iBAAA,CAAkBU,KAAO,EAAAE,SAAA,EAAWF,MAAMpT,MAAM,CAAA;MACjE,MAAMyT,YAAe,GAAAV,qBAAA,CAAsBQ,UAAY,EAAAH,KAAA,EAAO,GAAG,CAAA;MACjE,MAAMM,UAAa,GAAAX,qBAAA,CAAsBK,KAAO,EAAAI,QAAA,EAAU,GAAG,CAAA;MAE7DL,IAAA,CAAKpyB,IAAK,CAAA;QACR/J,IAAM,EAAA,OAAA;QACN,GAAGu8B;MAAA,CACJ,CAAA;MAEDJ,IAAA,CAAKpyB,IAAK,CAAA;QACR/J,IAAM,EAAA,OAAA;QACNw8B,QAAA;QACAC,YAAA;QACAC;MAAA,CACD,CAAA;IAAA,CACI,MAAA;MACLP,IAAA,CAAKpyB,IAAK,CAAA;QACR/J,IAAM,EAAA,OAAA;QACN,GAAGo8B;MAAA,CACJ,CAAA;IACH;EACF;EAEO,OAAAD,IAAA;AACT;AAEO,SAASQ,gBAAgBR,IAAqB,EAAA;EACnD,OAAOA,IACJ,CAAA/2B,GAAA,CAAI,CAACrC,CAAA,EAAGyW,GAAQ,KAAA;IACX,IAAAzW,CAAA,CAAE/C,SAAS,OAAS,EAAA;MACf,OAAA,EAAA,CAAG8E,eAAQ,CAAI,GAAA,GAAA,GAAM,KAAG,GAAI,CAAA,CAAAA,MAAA,CAAA/B,CAAA,CAAEiK,CAAC,EAAA,GAAA,CAAA,CAAIlI,MAAE,CAAA/B,CAAA,CAAAkK,CAAA,CAAA;IAC9C;IAEI,IAAAlK,CAAA,CAAE/C,SAAS,OAAS,EAAA;MACf,OAAA,IAAA,CAAK8E,SAAE23B,YAAa,CAAAzvB,CAAA,EAAC,KAAIlI,MAAE,CAAA/B,CAAA,CAAA05B,YAAA,CAAaxvB,CAAC,EAAA,GAAA,CAAA,CAAInI,MAAE,CAAA/B,CAAA,CAAA25B,UAAA,CAAW1vB,GAAC,GAAI,CAAA,CAAAlI,MAAA,CAAA/B,CAAA,CAAE25B,WAAWzvB,CAAC,EAAA,GAAA,CAAA,CAAInI,SAAE03B,QAAS,CAAAxvB,CAAA,EAAC,GAAI,CAAA,CAAAlI,MAAA,CAAA/B,CAAA,CAAEy5B,QAAS,CAAAvvB,CAAA,CAAA;IACrH;IAEO,OAAA,EAAA;EAAA,CACR,CACA,CAAAsU,IAAA,CAAK,GAAG,CAAA;AACb;;;;;;AC1FA,IAAA9T,IAAA,EAAAO,IAAA,EAAA0Y,IAAA;AAKA,MAAMwD,SAAOC,MAAO,CAAAC,GAAA,CAClBwS,KAAA;EAAA,IAAC;IAACC,EAAI,EAAAC;;SAAOlW,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wCAAA,EAEJ,mBACC,EAAA,+IAAA,EASgB,KAAW,EAAA,kEAAA,EAIxB,+HAQF,iIAQC,EAAA,kIAAA,EAQF,gFAtCF,CAAA,CAAA,CAAA,EAAAiW,CAAA,EACCA,CASY,EAAAA,CAAA,GAAI,GAAOA,CAAI,GAAA,CAAA,EAIxBA,CAQF,EAAAA,CAAA,EAQCA,CAQF,EAAAA,CAAA,CAAA;AAAA,CAOd,CAAA;AAEA,MAAMC,UAAA,GAAa5S,MAAO,CAAA6S,IAAA,CAAPhvB,IAAW,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,iDAAA,CAAA,CAAA,CAAA,CAAA;AAI9B,MAAMoW,SAAA,GAAY9S,MAAO,CAAA6S,IAAA,CAAPtW,IAAW,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,mCAAA,CAAA,CAAA,CAAA,CAAA;AAKtB,MAAM2F,KAAQ,GAAAhC,UAAA,CAAW,SAASgC,MAAAA,CACvC1mB,OAIAuX,GACc,EAAA;EACR,MAAA;IAACnQ,OAAO4vB,CAAG;IAAAt1B,MAAA,EAAQ7E;IAAGqmB,MAAS,GAAA,CAAA;IAAG,GAAG8B;EAAa,CAAA,GAAAhlB,KAAA;EAClD,MAAA;IAAC6X;GAAI,GAAIpC,WAAY,EAAA;EACrB,MAAA8Q,WAAA,GAAc1O,KAAKyL,MAAO,CAAAG,OAAA;EAEhC,MAAM2T,SAASJ,CAAI,GAAA,CAAA;EAEnB,MAAMZ,MAAkB,GAAA,CACtB;IACElvB,CAAG,EAAA,CAAA;IACHC,CAAG,EAAA;EACL,CAAA,EACA;IACED,CAAG,EAAAgc,MAAA;IACH/b,CAAG,EAAA,CAAA;IACH+b;EACF,CAAA,EACA;IACEhc,CAAG,EAAAkwB,MAAA;IACHjwB,GAAGtK,CAAI,GAAA,CAAA;IACPqmB;EACF,CAAA,EACA;IACEhc,GAAG8vB,CAAI,GAAA9T,MAAA;IACP/b,CAAG,EAAA,CAAA;IACH+b;EACF,CAAA,EACA;IACEhc,CAAG,EAAA8vB,CAAA;IACH7vB,CAAG,EAAA;EACL,CAAA,CACF;EAEM,MAAAkvB,IAAA,GAAOF,mBAAmBC,MAAM,CAAA;EAChC,MAAAc,IAAA,GAAOL,gBAAgBR,IAAI,CAAA;EAEjC,MAAMgB,aAAa,EAAG,CAAAr4B,MAAA,CAAAk4B,IAAA,CAAA;EACtB,MAAMI,QAAW,GAAA,EAAA,CAAGt4B,MAAI,CAAAk4B,IAAA,EAAA,KAAA,CAAA,CAAMl4B,MAAC,CAAAg4B,CAAA,EAAA,cAAA,CAAA;EAE/B,OAAA,mBACG5S,MAAM,EAAA;IAAA,GAAGY,SAAW;IAAA+R,EAAA,EAAIC;IAAGzf,GAC1B;IAAA7C,QAAA,iBAAAiU,IAAA,CAAC,KAAI,EAAA;MAAAvhB,KAAA,EAAO4vB;MAAGt1B,MAAQ,EAAAs1B,CAAA;MAAGpO,SAAS,MAAO,CAAA5pB,MAAA,CAAAg4B,CAAA,EAAC,KAAIh4B,MAC7C,CAAAg4B,CAAA,CAAA;MAAAtiB,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC,MAAK,EAAA;QAAA4T,EAAA,EAAG,aACP;QAAAnU,QAAA,iBAAAO,GAAA,CAAC;UAAK/N,CAAG,EAAA,CAAA;UAAGC,CAAG,EAAAof,WAAA;UAAanf,OAAO4vB,CAAG;UAAAt1B,MAAA,EAAQs1B,CAAG;UAAAve,IAAA,EAAK;QAAQ,CAAA;OAChE,CAAA,EAAA,eACAxD,GAAA,CAACgiB;QAAWx6B,CAAG,EAAA46B,UAAA;QAAYE,MAAK,mBAAoB;QAAAhR,WAAA,EAAaA,cAAc;OAAG,CAAA,EAClF,eAAAtR,GAAA,CAACkiB,SAAU,EAAA;QAAA16B,CAAA,EAAG66B;MAAU,CAAA,CAAA;IAC1B,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACpHD,MAAMz4B,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,oCAAoC,CAAA;AAE3Dub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAkD,IAAI,CAAA;AAEhF,MAAAmjB,sBAAA,GACXpjB,YAAYvV,KAAG,CAAA;ACMV,SAAS44B,wBAAwBz3B,KAAyD,EAAA;EACzF,MAAA;IAAC0U,QAAU;IAAA7Q;EAAW,CAAA,GAAA7D,KAAA;EACtB,MAAAtB,KAAA,GAAqC+E,OAAQ,CAAA,OAAO;IAACsR,OAAA,EAAS;IAAKlR;GAAO,CAAA,EAAI,CAACA,OAAO,CAAC,CAAA;EAE7F,OAAQ,eAAAoR,GAAA,CAAAuiB,sBAAA,CAAuBtiB,QAAvB,EAAA;IAAgCxW;IAAegW;EAAS,CAAA,CAAA;AAClE;ACpBO,SAASgjB,SAASh5B,KAAkD,EAAA;EAClE,OAAAyF,OAAA,CAAQzF,SAAS,OAAOA,KAAA,KAAU,YAAY,CAACkB,KAAA,CAAMC,OAAQ,CAAAnB,KAAK,CAAC,CAAA;AAC5E;ACGA,MAAMi5B,aAA6C,GAAA;EACjD5iB,OAAS,EAAA,CAAA;EACTlR,OAAS,EAAA;AACX,CAAA;AAKO,SAAS+zB,kBAAkDA,CAAA,EAAA;EAC1D,MAAAl5B,KAAA,GAAQ+V,WAAW+iB,sBAAsB,CAAA;EAK/C,IAAI94B,UAAU,CAACg5B,QAAA,CAASh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAM,CAAA,EAAA;IAClD,MAAA,IAAI3U,MAAM,2DAA2D,CAAA;EAC7E;EAEA,OAAO1B,KAAS,IAAAi5B,aAAA;AAClB;ACrBO,SAASE,kBAAmBA,CAAAC,KAAA,EAQf;EAAA,IARe;IACjCpjB,QAAA;IACAqjB,SAAA;IACAC;EACF,CAIoB,GAAAF,KAAA;EAClB,IAAI,CAACC,SAAW,EAAA;IACP,OAAArjB,QAAA;EACT;EAEA,OAAOsjB,QAAQtjB,QAAQ,CAAA;AACzB;ACjBgB,SAAAujB,kBAAAA,CAAmB/4B,OAAiBkI,KAAyB,EAAA;EAC3E,MAAMrD,MAAgB,EAAC;EAEvB,KAAA,IAAS6N,IAAI,CAAG,EAAAA,CAAA,GAAI1S,KAAM,CAAAiB,MAAA,EAAQyR,KAAK,CAAG,EAAA;IAClC,MAAAsmB,EAAA,GAAKh5B,MAAM0S,CAAC,CAAA;IAElB,IAAIsmB,KAAK9wB,KAAO,EAAA;MACdrD,GAAA,CAAIE,KAAK2N,CAAC,CAAA;IACZ;EACF;EAEO,OAAA7N,GAAA;AACT;AAEgB,SAAAo0B,kBAAAA,CAAmBj5B,OAAiBkI,KAAyB,EAAA;EAC3E,MAAMrD,MAAgB,EAAC;EAEvB,KAAA,IAAS6N,IAAI,CAAG,EAAAA,CAAA,GAAI1S,KAAM,CAAAiB,MAAA,EAAQyR,KAAK,CAAG,EAAA;IAClC,MAAAsmB,EAAA,GAAKh5B,MAAM0S,CAAC,CAAA;IAElB,IAAIsmB,MAAM9wB,KAAO,EAAA;MACfrD,GAAA,CAAIE,KAAK2N,CAAC,CAAA;IACZ;EACF;EAEO,OAAA7N,GAAA;AACT;ACRO,MAAMq0B,YAAe,GAAA1T,UAAA,CAAW,SAAS0T,aAAAA,CAC9Cp4B,OACAuX,GACA,EAAA;EACA,MAAMxX,QAAQ0V,WAAY,EAAA;EAC1B,MAAM;IAACf,QAAU;IAAAxV,KAAA,GAAQa,MAAMb,KAAO;IAAA,GAAG8lB;EAAa,CAAA,GAAAhlB,KAAA;EAEhD,MAAAuwB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC1T,OAAA,EAASU,UAAU,CAAA,GAAIC,SAAgC,IAAI,CAAA;EAC5D,MAAAsP,WAAA,GAAcH,eAAe9P,OAAO,CAAA;EACpC,MAAAuD,KAAA,GAAQ3D,QAAQ,MAAG;IA5B3B,IAAAkE,EAAA;IA4B2C,OAAA,CAAAA,EAAA,GAAAmM,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAAX,MAAA,CAAO/L,KAApB,KAAA,IAAA,GAAAO,EAAA,GAA6BpC,MAAO,CAAA8yB,UAAA;EAAA,CAAY,EAAA,CAACvkB,WAAW,CAAC,CAAA;EAEnF,MAAAgI,GAAA,GAAMrY,OAAQ,CAAA,MAAMw0B,kBAAmB,CAAA/4B,KAAA,EAAOkI,KAAK,CAAG,EAAA,CAAClI,KAAO,EAAAkI,KAAK,CAAC,CAAA;EACpE,MAAAyU,GAAA,GAAMpY,OAAQ,CAAA,MAAM00B,kBAAmB,CAAAj5B,KAAA,EAAOkI,KAAK,CAAG,EAAA,CAAClI,KAAO,EAAAkI,KAAK,CAAC,CAAA;EAE1E,MAAMkxB,MAAS,GAAA7P,WAAA,CACZzkB,EAA8B,IAAA;IAC7BusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;IACvBO,UAAA,CAAWP,EAAE,CAAA;EACf,CAAA,EACA,CAACusB,YAAY,CAAA,CACf;EAGE,sBAAAtb,GAAA,CAAC,KAAA,EAAA;IACC,SAAQ,EAAA,cAAA;IACP,GAAG+P,SAAA;IACJ,eAAalJ,GAAI,CAAA3b,MAAA,GAAS2b,GAAI,CAAAL,IAAA,CAAK,GAAG,CAAI,GAAA,KAAA,CAAA;IAC1C,eAAaI,GAAI,CAAA1b,MAAA,GAAS0b,GAAI,CAAAJ,IAAA,CAAK,GAAG,CAAI,GAAA,KAAA,CAAA;IAC1ClE,GAAK,EAAA+gB,MAAA;IAEJ5jB;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;;;;;;;AC7BM,MAAM6jB,sBAAsBC,SAAkD,CAAA;EAA9EC,WAAAA,CAAA,EAAA;IAAA,KAAA,CAAA,GAAAv4B,SAAA,CAAA;IACuBw4B,aAAA,CAAA,IAAA,EAAA,OAAA,EAAA;MAACC,OAAO;IAAI,CAAA,CAAA;EAAA;EAExC,OAAOC,yBAAyBD,KAAkC,EAAA;IAEhE,OAAO;MAACA;IAAK,CAAA;EACf;EAEAE,iBAAAA,CAAkBF,OAAcG,IAA6B,EAAA;IAC3D,IAAA,CAAK94B,KAAM,CAAA+4B,OAAA,CAAQ;MAACJ,KAAA;MAAOG;IAAK,CAAA,CAAA;EAClC;EAEAE,MAA0BA,CAAA,EAAA;IAClB,MAAA;MAACL;IAAK,CAAA,GAAI,IAAK,CAAAM,KAAA;IAErB,IAAIN,KAAO,EAAA;MACT,MAAMtyB,UAAU,QAAOsyB,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAOtyB,OAAY,CAAA,KAAA,QAAA,GAAWsyB,MAAMtyB,OAAU,GAAA,OAAA;MAE9D,OAAA,eAAA4O,GAAA,CAACme;QAAM1e,QAAQ,EAAArO;MAAA,CAAA,CAAA;IACxB;IAEA,OAAO,KAAKrG,KAAM,CAAA0U,QAAA;EACpB;AACF;AC3CO,SAASwkB,gBAAgBC,YAAoD,EAAA;EAIlF,IAAI,CAACzB,QAAS,CAAAyB,YAAY,CAAK,IAAAA,YAAA,CAAapkB,YAAY,CAAK,EAAA;IACrD,MAAA,IAAI3U,MAAM,qCAAqC,CAAA;EACvD;EAEA,IAAI,CAAC+4B,YAAc,EAAA;IACX,MAAA,IAAI/4B,MAAM,uEAAuE,CAAA;EACzF;EAEI,IAAA+4B,YAAA,CAAapkB,YAAY,CAAK,EAAA;IACzB,OAAAokB,YAAA;EACT;EAEM,MAAA,IAAI/4B,MAAM,6BAA6B,CAAA;AAC/C;AChBA,MAAMvB,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAwC,IAAI,CAAA;AAEtE,MAAA+kB,YAAA,GAAkDhlB,YAAYvV,KAAG,CAAA;ACAvE,SAASw6B,QAA8BA,CAAA,EAAA;EACtC,MAAA36B,KAAA,GAAQ+V,WAAW2kB,YAAY,CAAA;EAErC,IAAI,CAAC16B,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,mCAAmC,CAAA;EACrD;EAEI,IAAA;IACF,OAAO84B,gBAAgBx6B,KAAK,CAAA;WACrB46B,GAAK,EAAA;IACZ,IAAIA,eAAel5B,KAAO,EAAA;MACxB,MAAM,IAAIA,KAAA,CAAM,cAAe,CAAApB,MAAA,CAAAs6B,GAAA,CAAIjzB,OAAS,CAAA,CAAA;IAAA,CACvC,MAAA;MACC,MAAA,IAAIjG,KAAM,CAAA,cAAA,CAAepB,MAAK,CAAAs6B,GAAA,CAAA,CAAA;IACtC;EACF;AACF;ACrBO,SAASC,KAAK9E,EAA4B,EAAA;EACzC,MAAA+E,OAAA,GAAU/pB,sBAAsBglB,EAAE,CAAA;EAExC,OAAO,MAAM;IACXlM,oBAAA,CAAqBiR,OAAO,CAAA;EAAA,CAC9B;AACF;AAKO,SAASC,MAAMhF,EAA4B,EAAA;EAChD,IAAIiF,YAAoC,GAAA,IAAA;EAElC,MAAAC,YAAA,GAAeJ,KAAK,MAAM;IAC9BG,YAAA,GAAeH,KAAK9E,EAAE,CAAA;EAAA,CACvB,CAAA;EAED,OAAO,MAAM;IACP,IAAAiF,YAAA,EAA2BA,YAAA,EAAA;IAElBC,YAAA,EAAA;EAAA,CACf;AACF;ACvBO,SAASC,uBAAuB/1B,OAA+B,EAAA;EACpE,OAAOg2B,mBAAoB,CAAAh2B,OAAO,CAAK,IAAAi2B,mBAAA,CAAoBj2B,OAAO,CAAA;AACpE;AAKO,SAASk2B,cAAc9sB,IAAoC,EAAA;EAChE,OAAOA,IAAgB,YAAA5H,IAAA,IAAQ4H,IAAK,CAAA+sB,QAAA,KAAa30B,IAAK,CAAA40B,YAAA;AACxD;AAKO,SAASJ,oBAAoBh2B,OAAgD,EAAA;EAClF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,GAAA;AACxD;AAKO,SAASC,mBAAmBt2B,OAA+C,EAAA;EAChF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,OAAA;AACxD;AAKO,SAASJ,oBAAoBj2B,OAAgD,EAAA;EAClF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,QAAA;AACxD;AAKO,SAASE,oBAAoBv2B,OAAgD,EAAA;EAClF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,QAAA;AACxD;AAKO,SAASG,sBAAsBx2B,OAAkD,EAAA;EACtF,OAAOk2B,aAAc,CAAAl2B,OAAO,CAAK,IAAAA,OAAA,CAAQq2B,QAAa,KAAA,UAAA;AACxD;AAKgB,SAAAI,uBAAAA,CAAwBz2B,SAAsBoJ,IAAqB,EAAA;EACjF,OAAOpJ,OAAQ,CAAAyB,QAAA,CAAS2H,IAAI,CAAA,IAAKpJ,OAAY,KAAAoJ,IAAA;AAC/C;ACtCO,SAASstB,UAAU12B,OAA+B,EAAA;EACvD,OAAOM,QAAQmC,QAAS,CAAAk0B,aAAa,KAAK32B,OAAQ,CAAAyB,QAAA,CAASgB,SAASk0B,aAAa,CAAA;AACnF;AAKO,SAASC,YAAY52B,OAA+B,EAAA;EAEvD,IAAAA,OAAA,CAAQ62B,QAAW,GAAA,CAAA,IAClB72B,OAAQ,CAAA62B,QAAA,KAAa,KAAK72B,OAAQ,CAAA82B,YAAA,CAAa,UAAU,CAAA,KAAM,IAChE,EAAA;IACO,OAAA,IAAA;EACT;EAEI,IAAAd,mBAAA,CAAoBh2B,OAAO,CAAG,EAAA;IAChC,OAAOM,OAAQ,CAAAN,OAAA,CAAQklB,IAAI,CAAA,IAAKllB,QAAQ+2B,GAAQ,KAAA,QAAA;EAClD;EAEI,IAAAT,kBAAA,CAAmBt2B,OAAO,CAAG,EAAA;IAC/B,OAAOA,QAAQ3J,IAAS,KAAA,QAAA,IAAY2J,QAAQ3J,IAAS,KAAA,MAAA,IAAU,CAAC2J,OAAQ,CAAA4d,QAAA;EAC1E;EAGE,IAAAqY,mBAAA,CAAoBj2B,OAAO,CAC3B,IAAAu2B,mBAAA,CAAoBv2B,OAAO,CAC3B,IAAAw2B,qBAAA,CAAsBx2B,OAAO,CAC7B,EAAA;IACA,OAAO,CAACA,OAAQ,CAAA4d,QAAA;EAClB;EAEO,OAAA,KAAA;AACT;AAKO,SAASoZ,aAAah3B,OAA+B,EAAA;EACtD,IAAA,CAAC42B,WAAY,CAAA52B,OAAO,CAAG,EAAA;IAClB,OAAA,KAAA;EACT;EAII,IAAA;IACFA,OAAA,CAAQi3B,KAAM,CAAA,CAAA;WACPxa,CAAG,EAAA,CAEZ;EAIA,OAAOha,SAASk0B,aAAkB,KAAA32B,OAAA;AACpC;AAKO,SAASk3B,qBAAqBl3B,OAA+B,EAAA;EAClE,KAAA,IAAS+N,IAAI,CAAG,EAAAA,CAAA,GAAI/N,OAAQ,CAAAm3B,UAAA,CAAW76B,QAAQyR,CAAK,EAAA,EAAA;IAC5C,MAAAyY,KAAA,GAAQxmB,OAAQ,CAAAm3B,UAAA,CAAWppB,CAAC,CAAA;IAE9B,IAAAmoB,aAAA,CAAc1P,KAAK,CAAM,KAAAwQ,YAAA,CAAaxQ,KAAK,CAAK,IAAA0Q,oBAAA,CAAqB1Q,KAAK,CAAI,CAAA,EAAA;MACzE,OAAA,IAAA;IACT;EACF;EAEO,OAAA,KAAA;AACT;AAKO,SAAS4Q,oBAAoBp3B,OAA+B,EAAA;EACjE,KAAA,IAAS+N,IAAI/N,OAAQ,CAAAm3B,UAAA,CAAW76B,SAAS,CAAG,EAAAyR,CAAA,IAAK,GAAGA,CAAK,EAAA,EAAA;IACjD,MAAAyY,KAAA,GAAQxmB,OAAQ,CAAAm3B,UAAA,CAAWppB,CAAC,CAAA;IAE9B,IAAAmoB,aAAA,CAAc1P,KAAK,CAAM,KAAAwQ,YAAA,CAAaxQ,KAAK,CAAK,IAAA4Q,mBAAA,CAAoB5Q,KAAK,CAAI,CAAA,EAAA;MACxE,OAAA,IAAA;IACT;EACF;EAEO,OAAA,KAAA;AACT;AChGO,SAAS6Q,cAAcl3B,EAAmB,EAAA;EAC/C,IAAI,EAAEA,EAAc,YAAArJ,OAAA,CAAA,EAAiB,OAAA,KAAA;EAE/B,MAAAiE,KAAA,GAAQ2G,MAAO,CAAA6E,gBAAA,CAAiBpG,EAAE,CAAA;EAExC,OACEpF,MAAMiM,SAAU,CAAA5F,QAAA,CAAS,MAAM,CAC/B,IAAArG,KAAA,CAAMiM,UAAU5F,QAAS,CAAA,QAAQ,CACjC,IAAArG,KAAA,CAAM+L,UAAU1F,QAAS,CAAA,MAAM,KAC/BrG,KAAM,CAAA+L,SAAA,CAAU1F,SAAS,QAAQ,CAAA;AAErC;ACGO,SAASk2B,cAAcn7B,KAA+C,EAAA;EAjB7E,IAAA2H,EAAA;EAkBE,MAAM;IAAC+M,QAAA;IAAU0mB,OAAS,EAAAC,WAAA,GAAc;GAAK,GAAAr7B,KAAA;EAGvC,MAAAs7B,kBAAA,GAAqB7mB,WAAW2kB,YAAY,CAAA;EAC5C,MAAAhsB,MAAA,GAASkuB,kBAAsB,IAAApC,eAAA,CAAgBoC,kBAAkB,CAAA;EACvE,MAAMC,sBAAsBnuB,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAouB,aAAA;EAC9B,MAAAC,WAAA,GAAA,CAAc9zB,EAAQ,GAAAyF,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAAsuB,KAAA,KAAR,IAAiB,GAAA/zB,EAAA,GAAA,CAAA;EAGrC,MAAM+zB,QAAQD,WAAc,GAAA,CAAA;EAGtB,MAAAL,OAAA,GAAU73B,aAAa83B,WAAW,CAAA;EAGlC,MAAAM,aAAA,GAAgBP,QAAQj7B,MAAS,GAAA,CAAA;EACvC,MAAMX,UAAa,GAAAkD,IAAA,CAAKmZ,GAAI,CAAAnF,aAAA,IAAiBilB,aAAa,CAAA;EACpD,MAAA9V,MAAA,GAASzY,SAASA,MAAO,CAAAyY,MAAA,GAASuV,QAAQ57B,UAAU,CAAA,GAAI47B,QAAQ57B,UAAU,CAAA;EAGhF,MAAM,GAAGo8B,cAAc,CAAI,GAAAp3B,QAAA,CAAiC,CAAE,CAAA,CAAA;EAG9D,MAAM,CAACxC,IAAA,EAAM4R,OAAO,CAAA,GAAIpP,SAAS,CAAC,CAAA;EAElC,MAAMq3B,aAAa75B,IAAS,KAAA,CAAA;EAE5B,MAAMw5B,aAAgB,GAAA/S,WAAA,CACnBqT,UAAwB,IAAA;IAEvB,MAAMC,gBAAgBR,mBAAsB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,mBAAA,CAAAO,UAAA,CAAA;IAE5C,IAAIA,eAAe,KAAW,CAAA,EAAA;MAC5BF,cAAA,CAAgB3C,KAAU,IAAA;QAnDlCtxB,IAAAA,GAAAA;QAoDU,MAAMq0B,WAAUr0B,GAAA,GAAAsxB,KAAA,CAAM6C,UAAU,CAAA,KAAhB,OAAAn0B,GAAqB,GAAA,CAAA;QAC/B,MAAAs0B,SAAA,GAAY;UAAC,GAAGhD,KAAA;UAAO,CAAC6C,UAAU,GAAGE,UAAU;SAAC;QAEtDpoB,OAAA,CAAQ/M,MAAO,CAAApI,IAAA,CAAKw9B,SAAS,CAAA,CAAE97B,MAAM,CAAA;QAE9B,OAAA87B,SAAA;MAAA,CACR,CAAA;IAAA,CACI,MAAA;MAEGroB,OAAA,CAACtW,CAAM,IAAAA,CAAA,GAAI,CAAC,CAAA;IACtB;IAEA,OAAO,MAAM;MACX,IAAIw+B,eAAe,KAAW,CAAA,EAAA;QAC5BF,cAAA,CAAgB3C,KAAU,IAAA;UAClB,MAAAgD,SAAA,GAAY;YAAC,GAAGhD;WAAK;UAEvB,IAAAgD,SAAA,CAAUH,UAAU,CAAA,KAAM,CAAG,EAAA;YAC/B,OAAOG,UAAUH,UAAU,CAAA;YAE3BloB,OAAA,CAAQ/M,MAAO,CAAApI,IAAA,CAAKw9B,SAAS,CAAA,CAAE97B,MAAM,CAAA;UAAA,CAChC,MAAA;YACL87B,SAAA,CAAUH,UAAU,CAAK,IAAA,CAAA;UAC3B;UAEO,OAAAG,SAAA;QAAA,CACR,CAAA;MAAA,CACI,MAAA;QAEGroB,OAAA,CAACtW,CAAM,IAAAA,CAAA,GAAI,CAAC,CAAA;MACtB;MAEAy+B,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAA,CAAA;IAAA,CACF;EACF,CAAA,EACA,CAACR,mBAAmB,CAAA,CACtB;EAGA12B,SAAA,CAAU,MAAM02B,mBAAsB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,mBAAA,CAAAG,KAAA,CAAA,EAAQ,CAACA,KAAA,EAAOH,mBAAmB,CAAC,CAAA;EAE1E,MAAM78B,KAA2B,GAAA+E,OAAA,CAC/B,OAAO;IACLsR,OAAS,EAAA,CAAA;IACT8mB,UAAA;IACAH,KAAA;IACAF,aAAA;IACAx5B,IAAA;IACA6jB;EAAA,CACF,CAAA,EACA,CAACgW,UAAA,EAAYH,KAAO,EAAAF,aAAA,EAAex5B,MAAM6jB,MAAM,CAAA,CACjD;EAEA,OAAQ,eAAA5Q,GAAA,CAAAmkB,YAAA,CAAalkB,QAAb,EAAA;IAAsBxW;IAAegW;EAAS,CAAA,CAAA;AACxD;ACnFA,MAAM0P,SAAOC,MAAO,CAAAC,GAAA,CAAI;EAACljB,QAAA,EAAU;AAAW,CAAA,CAAA;AAE9C,MAAM86B,aAAgB,GAAAxX,UAAA,CAAW,SAASwX,cAAAA,CACxCl8B,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C;IAAUynB,UAAY;IAAAC,OAAA;IAASx9B,QAAQb,YAAc;IAAA,GAAGinB;EAAa,CAAA,GAAAhlB,KAAA;EAC5E,MAAM;IAAC6lB,MAAA;IAAQgW;EAAU,CAAA,GAAIxC,QAAS,CAAA,CAAA;EAChC,MAAAgD,cAAA,GAAiBz3B,OAA2B,IAAI,CAAA;EAChD,MAAA2rB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAClC,MAAA+kB,aAAA,GAAgB13B,OAAgBi3B,UAAU,CAAA;EAKhDh3B,SAAA,CAAU,MAAM;IACR,MAAA03B,cAAA,GAAiBD,aAAc,CAAAv3B,OAAA,KAAY82B,UAAc,IAAAA,UAAA;IAE/D,IAAIU,cAAgB,EAAA;MACLJ,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,UAAA,CAAA;QAAC3B,aAAe,EAAA6B,cAAA,CAAet3B;MAAO,CAAA,CAAA;IACrD;IAEAu3B,aAAA,CAAcv3B,OAAU,GAAA82B,UAAA;EAAA,CACvB,EAAA,CAACA,UAAY,EAAAM,UAAU,CAAC,CAAA;EAE3B,MAAMK,WAAc,GAAA/T,WAAA,CACjBtiB,KAA+C,IAAA;IAEpCi2B,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAj2B,KAAA,CAAA;IAEV,MAAMs2B,cAAclM,YAAa,CAAAxrB,OAAA;IACjC,MAAMK,SAASkB,QAAS,CAAAk0B,aAAA;IAExB,IAAI,CAACqB,UAAA,IAAc,CAACY,WAAA,IAAe,CAACr3B,MAAA,EAAQ;IAE5C,IAAI20B,cAAc30B,MAAM,CAAA,IAAKk1B,uBAAwB,CAAAmC,WAAA,EAAar3B,MAAM,CAAG,EAAA;MACzEi3B,cAAA,CAAet3B,OAAU,GAAAK,MAAA;IAC3B;EACF,CAAA,EACA,CAACmrB,YAAc,EAAAsL,UAAA,EAAYO,OAAO,CAAA,CACpC;EAGE,sBAAAnnB,GAAA,CAACmP,MAAA,EAAA;IACE,GAAGY,SAAA;IACJ,SAAQ,EAAA,OAAA;IACRoX,OAAS,EAAAI,WAAA;IACTjlB,GAAK,EAAAgZ,YAAA;IACL3xB,KAAO,EAAA;MAAC,GAAGA,KAAA;MAAOinB;IAAM,CAAA;IAEvBnR;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AAKM,MAAMgoB,KAAQ,GAAAhY,UAAA,CAAW,SAASgY,MAAAA,CACvC18B,OACAuX,GACA,EAAA;EACA,MAAM;IAAC7C,QAAU;IAAA0mB,OAAA,GAAU,CAAG;IAAA,GAAGpW;EAAa,CAAA,GAAAhlB,KAAA;EAG5C,OAAA,eAAAiV,GAAA,CAACkmB;IAAcC,OACb;IAAA1mB,QAAA,EAAA,eAAAO,GAAA,CAACinB;MAAe,GAAGlX,SAAA;MAAWzN,GAC3B;MAAA7C;IACH,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;AC1FD,MAAM7V,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,2BAA2B,CAAA;AAClD,MAAM8jC,UAAA,GAAa/jC,MAAO,CAAAC,GAAA,CAAI,mCAAmC,CAAA;AAEjEub,WAAA,CAAYuoB,UAAU,CAAI,GAAA,IAAA;AAEnB,MAAMC,mBAA0C,GAAA;EACrD7nB,OAAS,EAAA,CAAA;EACTzQ,eAAiB,EAAA,IAAA;EACjB,IAAIT,OAAUA,CAAA,EAAA;IACR,IAAA,OAAOyC,aAAa,WAAa,EAAA;MAC5B,OAAA,IAAA;IACT;IAEI,IAAA8N,WAAA,CAAYuoB,UAAU,CAAG,EAAA;MAC3B,OAAOvoB,YAAYuoB,UAAU,CAAA;IAC/B;IAEAvoB,WAAA,CAAYuoB,UAAU,CAAA,GAAIr2B,QAAS,CAAA+oB,aAAA,CAAc,KAAK,CAAA;IACtDjb,WAAA,CAAYuoB,UAAU,CAAA,CAAEE,YAAa,CAAA,aAAA,EAAe,EAAE,CAAA;IAEtDv2B,QAAA,CAAS0K,IAAK,CAAA8rB,WAAA,CAAY1oB,WAAY,CAAAuoB,UAAU,CAAC,CAAA;IAEjD,OAAOvoB,YAAYuoB,UAAU,CAAA;EAC/B;AACF,CAAA;AAEAvoB,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAkCuoB,mBAAmB,CAAA;AAE/E,MAAAG,aAAA,GAAmD3oB,YAAYvV,KAAG,CAAA;ACxBxE,SAASm+B,SAAgCA,CAAA,EAAA;EACxC,MAAAt+B,KAAA,GAAQ+V,WAAWsoB,aAAa,CAAA;EAEtC,IAAI,CAACr+B,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,oCAAoC,CAAA;EACtD;EAKA,IAAI,CAACs3B,QAAS,CAAAh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAK,EAAA;IACvC,MAAA,IAAI3U,MAAM,kDAAkD,CAAA;EACpE;EAEO,OAAA1B,KAAA;AACT;ACNO,SAAS1D,OAAOgF,KAA8C,EAAA;EAjBrE,IAAA2H,EAAA;EAkBE,MAAM;IAAC+M,QAAA;IAAUuoB,eAAiB,EAAAhsB;EAAA,CAAQ,GAAAjR,KAAA;EAC1C,MAAMk9B,SAASF,SAAU,EAAA;EACzB,MAAMG,aACH,GAAA,CAAAlsB,IAAA,GAAOisB,MAAO,CAAAz4B,QAAA,IAAYy4B,MAAO,CAAAz4B,QAAA,CAASwM,IAAI,CAAA,GAAIisB,MAAO,CAAAr5B,OAAA,MAAA,CAAY8D,EAAO,GAAAu1B,MAAA,CAAAz4B,QAAA,KAAP,IAAiB,GAAA,KAAA,CAAA,GAAAkD,EAAA,CAAA0Z,OAAA,CAAA;EAEzF,IAAI,CAAC8b,aAAe,EAAA;IACX,OAAA,IAAA;EACT;EAEO,OAAAC,YAAA,CAAa1oB,UAAUyoB,aAAa,CAAA;AAC7C;AClBO,SAASE,UAAqD3+B,KAA6B,EAAA;EAC1F,MAAA4+B,QAAA,GAAW14B,OAAkBlG,KAAK,CAAA;EAExC,IAAI,CAAC6+B,QAAA,CAASD,QAAS,CAAAv4B,OAAA,EAASrG,KAAK,CAAG,EAAA;IACtC4+B,QAAA,CAASv4B,OAAU,GAAArG,KAAA;EACrB;EAEA,OAAO4+B,QAAS,CAAAv4B,OAAA;AAClB;AAEA,SAASw4B,QAAAA,CAASC,MAAkBC,IAA2B,EAAA;EACzD,IAAA,CAACD,IAAQ,IAAA,CAACC,IAAM,EAAA;IAClB,OAAOD,IAAS,KAAAC,IAAA;EAClB;EAEM,MAAAC,KAAA,GAAQ72B,MAAO,CAAApI,IAAA,CAAK++B,IAAI,CAAA;EACxB,MAAAG,KAAA,GAAQ92B,MAAO,CAAApI,IAAA,CAAKg/B,IAAI,CAAA;EAE1B,IAAAC,KAAA,CAAMv9B,MAAW,KAAAw9B,KAAA,CAAMx9B,MAAQ,EAAA;IAC1B,OAAA,KAAA;EACT;EAEO,OAAAu9B,KAAA,CAAME,MAAO/+B,GAAA,IAAQ2+B,KAAK3+B,GAAG,CAAA,KAAM4+B,IAAK,CAAA5+B,GAAG,CAAC,CAAA;AACrD;ACZA,MAAMg/B,WAAA,GAAc,OAAOv3B,QAAa,KAAA,WAAA;AAKjC,SAASw3B,eAAe99B,KAAgD,EAAA;EAC7E,MAAM;IAACsE,eAAiB;IAAAoQ,QAAA;IAAU7Q,OAAS;IAAAk6B,mBAAA,EAAqBC;EAAgB,CAAA,GAAAh+B,KAAA;EAC1E,MAAAyE,QAAA,GAAW44B,UAAUW,YAAY,CAAA;EAEjC,MAAAt/B,KAAA,GAA4B+E,QAAQ,MAAM;IACvC,OAAA;MACLsR,OAAS,EAAA,CAAA;MACTzQ,iBAAiBA,eAAmB,IAAA,IAAA;MACpCT,OAAS,EAAAA,OAAA,IAAYg6B,WAAe,IAAAv3B,QAAA,CAAS0K,IAAS,IAAA,IAAA;MACtDvM;IAAA,CACF;EACC,CAAA,EAAA,CAACH,eAAiB,EAAAT,OAAA,EAASY,QAAQ,CAAC,CAAA;EAEvC,OAAQ,eAAAwQ,GAAA,CAAA8nB,aAAA,CAAc7nB,QAAd,EAAA;IAAuBxW;IAAegW;EAAS,CAAA,CAAA;AACzD;;;;;;ACxCA,IAAA/M,IAAA;AAWA,MAAMyc,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,iHAAA,CAAA,CAAA,CAAA,CAAA;AAYhB,MAAMkd,MAAS,GAAAvZ,UAAA,CAAW,SAASuZ,OAAAA,CACxCj+B,OACAuX,GACA,EAAA;EACM,MAAA;IAAC4P,EAAI;IAAAzS;EAAY,CAAA,GAAA1U,KAAA;EAGrB,OAAA,eAAAiV,GAAA,CAACmP;IAAK,aAAW,EAAA,IAAA;IAAC+C;IAAQ,SAAQ,EAAA,QAAA;IAAS5P;IACxC7C;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AClCD,IAAA/M,IAAA,EAAAO,IAAA;AAiCA,MAAMkc,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,CAAA;AAIvB,MAAMmd,WAAA,GAAc7Z,MAAO,CAAAC,GAAA,CAAPpc,IAAU,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,oDAAA,CAAA,CAAA,CAAA,CAAA;AASvB,MAAMod,WAAc,GAAAzZ,UAAA,CAAW,SAASyZ,YAAAA,CAC7Cn+B,OAGAuX,GACoB,EAAA;EACpB,MAAM;IAAC4P,EAAA,GAAK,KAAO;IAAApN,GAAA,GAAM,CAAG;IAAAqkB,UAAA;IAAYC,KAAQ,GAAA,EAAI;IAAAC,QAAA;IAAUC,UAAY;IAAA,GAAGvZ;GAAa,GAAAhlB,KAAA;EACpF,MAAA;IAACK;GAAK,GAAIoV,WAAY,EAAA;EACtB,MAAA8a,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAClC,MAAAinB,UAAA,GAAa55B,OAA8B,IAAI,CAAA;EACrD,MAAM,CAAC65B,SAAA,EAAWC,YAAY,CAAA,GAAIl6B,SAAS,CAAC,CAAA;EAC5C,MAAM,CAACm6B,YAAA,EAAcC,eAAe,CAAA,GAAIp6B,SAAS,CAAC,CAAA;EAClD,MAAM,CAACq6B,UAAA,EAAYC,aAAa,CAAA,GAAIt6B,SAAS,CAAE,CAAA,CAAA;EAE/CK,SAAA,CAAU,MAAM;IACd,IAAI,CAAC25B,UAAW,CAAAz5B,OAAA,EAAS;IAEnB,MAAAg6B,YAAA,GAAeP,WAAWz5B,OAAQ,CAAAi6B,UAAA;IAExC,IAAID,wBAAwBE,WAAa,EAAA;MACvCH,aAAA,CAAcC,aAAa32B,YAAY,CAAA;IACzC;EAAA,CACF,EAAG,CAACm2B,UAAU,CAAC,CAAA;EAEf15B,SAAA,CAAU,MAAM;IACd,IAAI,CAAC0rB,YAAa,CAAAxrB,OAAA,EAAS;IAEvB,IAAAm6B,SAAA,GAAY3O,aAAaxrB,OAAQ,CAAAsI,UAAA;IAErC,OAAO6xB,SAAa,IAAA,CAAChE,aAAc,CAAAgE,SAAS,CAAG,EAAA;MAC7CA,SAAA,GAAYA,SAAU,CAAA7xB,UAAA;IACxB;IAEA,IAAI6xB,SAAW,EAAA;MACb,MAAMC,QAAW,GAAAD,SAAA;MAEjB,IAAI,EAAEC,QAAoB,YAAAF,WAAA,CAAA,EAAc;MAExC,MAAMG,gBAAeC,CAAA,KAAM;QACzBX,YAAA,CAAaS,SAASV,SAAS,CAAA;MAAA,CACjC;MAEAU,QAAA,CAAS35B,iBAAiB,QAAU45B,EAAAA,aAAAA,EAAc;QAACE,OAAA,EAAS;OAAK,CAAA;MAEjE,MAAMz5B,EAAK,GAAA,IAAI6M,eAAgB,CAAC/E,OAAY,IAAA;QAC1CixB,eAAA,CAAgBjxB,OAAQ,CAAA,CAAC,CAAE,CAAA9D,WAAA,CAAYnI,MAAM,CAAA;MAAA,CAC9C,CAAA;MAEDmE,EAAA,CAAGwJ,QAAQ8vB,QAAQ,CAAA;MAEnBC,aAAa,EAAA;MAEb,OAAO,MAAM;QACFD,QAAA,CAAA15B,mBAAA,CAAoB,UAAU25B,aAAY,CAAA;QAEnDv5B,EAAA,CAAGsM,UAAUgtB,QAAQ,CAAA;QACrBt5B,EAAA,CAAGqL,UAAW,CAAA,CAAA;MAAA,CAChB;IACF;IAEA,MAAMkuB,eAAeA,CAAA,KAAM;MACzBV,YAAA,CAAan5B,OAAOg6B,OAAO,CAAA;IAAA,CAC7B;IAEA,MAAMC,eAAeA,CAAA,KAAM;MACzBZ,eAAA,CAAgBr5B,OAAOk6B,WAAW,CAAA;IAAA,CACpC;IAEAl6B,MAAA,CAAOC,iBAAiB,QAAU,EAAA45B,YAAA,EAAc;MAACE,OAAA,EAAS;KAAK,CAAA;IACxD/5B,MAAA,CAAAC,gBAAA,CAAiB,UAAUg6B,YAAY,CAAA;IAE9CZ,eAAA,CAAgBr5B,OAAOk6B,WAAW,CAAA;IAErBL,YAAA,EAAA;IAEb,OAAO,MAAM;MACJ75B,MAAA,CAAAE,mBAAA,CAAoB,UAAU25B,YAAY,CAAA;MAC1C75B,MAAA,CAAAE,mBAAA,CAAoB,UAAU+5B,YAAY,CAAA;IAAA,CACnD;EAAA,CACF,EAAG,CAACjP,YAAY,CAAC,CAAA;EAEjB,MAAMrQ,MAAMme,KAAM,CAAAl+B,MAAA;EACZ,MAAAuB,MAAA,GAASm9B,aAAa3e,GAAO,IAAA2e,UAAA,GAAax+B,MAAM0Z,GAAG,CAAA,CAAA,GAAK1Z,KAAM,CAAA0Z,GAAG,CAAI,GAAA,CAAA;EAC3E,MAAM2lB,SAAY,GAAAh+B,MAAA,GAASgB,IAAK,CAAAoZ,GAAA,CAAIpZ,IAAK,CAAAC,KAAA,CAAO87B,SAAY,GAAA/8B,MAAA,GAAUwe,GAAG,CAAA,GAAI,CAAG,EAAA,CAAC,CAAI,GAAA,CAAA;EAC/E,MAAAyf,OAAA,GAAUj+B,SAASgB,IAAK,CAAAk9B,IAAA,CAAA,CAAOnB,YAAYE,YAAgB,IAAAj9B,MAAA,GAAUwe,GAAG,CAAA,GAAI,CAAI,GAAA,CAAA;EAEtFrb,SAAA,CAAU,MAAM;IACd,IAAI,CAACy5B,QAAA,EAAU;IACNA,QAAA,CAAA;MAACoB,SAAW;MAAA3lB,GAAA,EAAK1Z,KAAM,CAAA0Z,GAAG;MAAG8kB,UAAY;MAAAF,YAAA;MAAcF,SAAW;MAAAkB;IAAQ,CAAA,CAAA;EAAA,CACrF,EAAG,CAACD,SAAA,EAAW3lB,GAAK,EAAA8kB,UAAA,EAAYP,UAAUK,YAAc,EAAAF,SAAA,EAAWp+B,KAAO,EAAAs/B,OAAO,CAAC,CAAA;EAE5E,MAAAjrB,QAAA,GAAWjR,QAAQ,MAAM;IACzB,IAAA,CAAC86B,UAAc,IAAAF,KAAA,CAAMl+B,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA;IAE9C,IAAI0+B,eAAe,CAAI,CAAA,EAAA;MACd,OAAA,oBAAEX,WAAqB,EAAA;QAAAxpB,QAAA,EAAA6pB,UAAA,CAAWF,MAAM,CAAC,CAAC;OAAvB,EAAA,CAAyB,CAAc,CAAA;IACnE;IAEO,OAAAA,KAAA,CAAM9rB,MAAMmtB,SAAW,EAAAC,OAAO,EAAErgC,GAAI,CAAA,CAACugC,MAAMC,UAAe,KAAA;MAC/D,MAAMC,YAAYL,SAAY,GAAAI,UAAA;MACxB,MAAA7yB,IAAA,GAAOsxB,WAAWsB,IAAI,CAAA;MAC5B,MAAMhhC,GAAM,GAAAu/B,UAAA,GAAaA,UAAW,CAAAyB,IAAA,EAAME,SAAS,CAAI,GAAAA,SAAA;MAEvD,OACG,eAAA9qB,GAAA,CAAAipB,WAAA,EAAA;QAAsBt/B,KAAO,EAAA;UAACyI,GAAK,EAAA04B,SAAA,IAAalB,UAAa,GAAAx+B,KAAA,CAAM0Z,GAAG,CAAA;QACpE,CAAA;QAAArF,QAAA,EAAAzH;MAAA,CAAA,EADepO,GAElB,CAAA;IAAA,CAEH,CAAA;EAAA,CACH,EAAG,CAAC6gC,SAAA,EAAW3lB,GAAK,EAAAqkB,UAAA,EAAYS,YAAYR,KAAO,EAAAE,UAAA,EAAYl+B,KAAO,EAAAs/B,OAAO,CAAC,CAAA;EAExE,MAAAK,YAAA,GAAev8B,QAAQ,OAAO;IAAC/B;GAAU,CAAA,EAAA,CAACA,MAAM,CAAC,CAAA;EAEvD,0BACG0iB,MAAK,EAAA;IAAA+C,EAAA;IAAQ,SAAQ,EAAA,aAAA;IAAe,GAAGnC,SAAW;IAAAzN,GAAA,EAAKgZ,YACtD;IAAA7b,QAAA,EAAA,eAAAO,GAAA,CAAC;MAAIsC,GAAK,EAAAinB,UAAA;MAAY5/B,KAAO,EAAAohC,YAAA;MAC1BtrB;KACH;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACpKM,MAAMurB,wBAA2B,GAAA,CAAA;AACjC,MAAMC,uBAA0B,GAAA,CAAA;AAChC,MAAMC,2BAA8B,GAAA,EAAA;AACpC,MAAMC,4BAA+B,GAAA,CAAA;AACrC,MAAMC,4BAA+B,GAAA,CAAA;AACrC,MAAMC,uBAA0C,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA;AAC3D,MAAMC,6BAA8D,GAAA;EACzEl5B,GAAK,EAAA,CAAC,QAAU,EAAA,MAAA,EAAQ,OAAO,CAAA;EAC/B,WAAa,EAAA,CAAC,cAAgB,EAAA,YAAA,EAAc,aAAa,CAAA;EACzD,SAAW,EAAA,CAAC,YAAc,EAAA,UAAA,EAAY,WAAW,CAAA;EACjDE,MAAQ,EAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,OAAO,CAAA;EAC/B,cAAgB,EAAA,CAAC,WAAa,EAAA,YAAA,EAAc,aAAa,CAAA;EACzD,YAAc,EAAA,CAAC,SAAW,EAAA,UAAA,EAAY,WAAW,CAAA;EACjDD,IAAM,EAAA,CAAC,OAAS,EAAA,KAAA,EAAO,QAAQ,CAAA;EAC/B,YAAc,EAAA,CAAC,aAAe,EAAA,WAAA,EAAa,cAAc,CAAA;EACzD,UAAY,EAAA,CAAC,WAAa,EAAA,SAAA,EAAW,YAAY,CAAA;EACjDE,KAAO,EAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,QAAQ,CAAA;EAC/B,aAAe,EAAA,CAAC,YAAc,EAAA,WAAA,EAAa,cAAc,CAAA;EACzD,WAAa,EAAA,CAAC,UAAY,EAAA,SAAA,EAAW,YAAY;AACnD,CAAA;ACXO,SAASxF,KAAKgQ,OAON,EAAA;EACb,MAAM;IAACwuB,KAAA;IAAOC,OAAS;IAAAn/B,OAAA,GAAU;GAAK,GAAA0Q,OAAA;EAE/B,OAAA;IACLf,IAAM,EAAA,iBAAA;IACN,MAAMwjB,GAAGiM,IAAM,EAAA;MACb,MAAM;QAACj8B,QAAA;QAAUmwB,SAAW;QAAA+L,QAAA;QAAU9L;OAAS,GAAA6L,IAAA;MACzC,MAAA;QAACzL,QAAU;QAAA2L;MAAa,CAAA,GAAA/L,KAAA;MAExB,MAAAxb,QAAA,GAAW,MAAMwnB,cAAA,CAAeH,IAAM,EAAA;QAC1CI,WAAa,EAAA,IAAA;QACbC,QAAA,EAAU/uB,QAAQ1N,eAAmB,IAAA,KAAA,CAAA;QACrC08B,cAAgB,EAAA,UAAA;QAChB1/B,OAAA;QACA2/B,YAAc,EAAA;MAAA,CACf,CAAA;MAED,IAAInN,QAAW,GAAA5mB,QAAA;MACf,IAAIg0B,SAAY,GAAAh0B,QAAA;MAEhB,MAAMi0B,YAAYlM,QAAS,CAAA7tB,KAAA;MAC3B,MAAMg6B,YAAYnM,QAAS,CAAAvzB,MAAA;MAEvB,IAAAkzB,SAAA,CAAU3vB,QAAS,CAAA,KAAK,CAAG,EAAA;QAClB6uB,QAAA,GAAAqN,SAAA,IAAa9nB,QAAS,CAAA/R,IAAA,GAAO+R,QAAS,CAAA7R,KAAA,CAAA;QACjD05B,SAAA,GAAYE,YAAY/nB,QAAS,CAAAhS,GAAA;MACnC;MAEI,IAAAutB,SAAA,CAAU3vB,QAAS,CAAA,OAAO,CAAG,EAAA;QAC/B6uB,QAAA,GAAWqN,YAAY9nB,QAAS,CAAA7R,KAAA;QACpB05B,SAAA,GAAAE,SAAA,IAAa/nB,QAAS,CAAAhS,GAAA,GAAMgS,QAAS,CAAA9R,MAAA,CAAA;MACnD;MAEI,IAAAqtB,SAAA,CAAU3vB,QAAS,CAAA,QAAQ,CAAG,EAAA;QACrB6uB,QAAA,GAAAqN,SAAA,IAAa9nB,QAAS,CAAA/R,IAAA,GAAO+R,QAAS,CAAA7R,KAAA,CAAA;QACjD05B,SAAA,GAAYE,YAAY/nB,QAAS,CAAA9R,MAAA;MACnC;MAEI,IAAAqtB,SAAA,CAAU3vB,QAAS,CAAA,MAAM,CAAG,EAAA;QAC9B6uB,QAAA,GAAWqN,YAAY9nB,QAAS,CAAA/R,IAAA;QACpB45B,SAAA,GAAAE,SAAA,IAAa/nB,QAAS,CAAAhS,GAAA,GAAMgS,QAAS,CAAA9R,MAAA,CAAA;MACnD;MAIMi5B,KAAA,CAAA;QACJa,gBAAgBvN,QAAW,GAAA2M,OAAA,CAAQ,CAAC,CAAA,GAAIA,QAAQ,CAAC,CAAA;QACjDa,iBAAiBJ,SAAY,GAAAT,OAAA,CAAQ,CAAC,CAAA,GAAIA,QAAQ,CAAC,CAAA;QACnDh8B,QAAA;QACA88B,gBAAgBX,SAAU,CAAAx5B,KAAA,GAAQq5B,QAAQ,CAAC,CAAA,GAAIA,QAAQ,CAAC;MAAA,CACzD,CAAA;MAED,MAAMe,cAAiB,GAAA,MAAMb,QAAS,CAAAc,aAAA,CAAch9B,SAASwwB,QAAQ,CAAA;MAErE,MAAMyM,UAAUF,cAAe,CAAA9/B,MAAA;MAC/B,MAAMigC,UAAUH,cAAe,CAAAp6B,KAAA;MAE3B,IAAA+5B,SAAA,KAAcQ,OAAW,IAAAP,SAAA,KAAcM,OAAS,EAAA;QAClD,OAAO;UAACE,KAAA,EAAO;YAAC/M,KAAA,EAAO;UAAK;QAAA,CAAA;MAC9B;MAEA,OAAO,EAAC;IACV;EAAA,CACF;AACF;AC9EO,SAASgN,iBAAiBC,MAIV,EAAA;EACrB,MAAM;IAACjO,SAAA;IAAWr0B,UAAY;IAAA4H;EAAA,CAAS,GAAA06B,MAAA;EAEjC,MAAA9K,CAAA,GAAI5vB,MAAM5H,UAAU,CAAA;EAC1B,MAAMuiC,eAAyC/K,CAAM,KAAA,KAAA,CAAA,GAAY5vB,MAAMA,KAAM,CAAAjH,MAAA,GAAS,CAAC,CAAI,GAAA62B,CAAA;EAE3F,OAAO,OAAO+K,YAAA,KAAiB,QAAW,GAAAlO,SAAA,CAAUkO,YAAY,CAAI,GAAA,KAAA,CAAA;AACtE;AAEO,SAASC,aAAaF,MAGN,EAAA;EACf,MAAA;IAACG,aAAe;IAAAF;EAAgB,CAAA,GAAAD,MAAA;EAElC,IAAAC,YAAA,KAAiB,KAAa,CAAA,IAAAE,aAAA,KAAkB,KAAW,CAAA,EAAA;IACtD,OAAA,KAAA,CAAA;EACT;EAEA,OAAOv/B,IAAK,CAAAmZ,GAAA,CACVkmB,YAAgB,IAAA,IAAA,GAAAA,YAAA,GAAA70B,QAAA,EACf,CAAA+0B,aAAA,IAAiB/0B,YAAYgzB,uBAA0B,GAAA,CAAA,CAC1D;AACF;;;;;;AC9BA,IAAAv4B,IAAA;AAiBA,MAAMu6B,eAAa7d,MAAO,CAAA8d,MAAA,CAAOrS,IAAI,CAAC,EAAnBnoB,IAAoB,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,+HAAA,CAAA,CAAA,CAAA,CAAA;AAYhC,MAAMqhB,WAAc,GAAAC,IAAA,CACzB3d,UAAW,CAAA,SAAS0d,YAClBE,CAAAtiC,KAAA,EAsBAuX,GACA,EAAA;EACM,MAAA;IACJgrB,kBAAoB,EAAAC,WAAA;IACpBpkC,OAAA;IACA+mB,KAAA;IACAsd,QAAA;IACAC,MAAA;IACAC,MAAA;IACAjuB,QAAA;IACApT,OAAA;IACAszB,SAAA;IACAW,OAAA;IACAC,OAAA;IACAnc,QAAA;IACA6J,MAAA;IACAvO,MAAA;IACA2O,MAAA;IACAsf,QAAA;IACAhkC,KAAA;IACAiW,IAAA;IACAzN,KAAA;IACAF,CAAG,EAAA27B,KAAA;IACH17B,CAAG,EAAA27B,KAAA;IACH,GAAG9d;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAA;IAAC6lB;GAAM,GAAIwT,QAAS,EAAA;EAG1B,MAAMoH,OAA0B,GAAAh9B,OAAA,CAC9B,MAAM++B,WAAe,IAAAlC,uBAAA,EACrB,CAACkC,WAAW,CAAA,CACd;EAGA,MAAMt7B,CAAK,GAAA,CAAA27B,KAAA,IAAA,IAAA,GAAAA,KAAA,GAAS,CAAK,IAAApC,OAAA,CAAQ,CAAC,CAAA;EAClC,MAAMt5B,CAAK,GAAA,CAAA27B,KAAA,IAAA,IAAA,GAAAA,KAAA,GAAS,CAAK,IAAArC,OAAA,CAAQ,CAAC,CAAA;EAElC,MAAMsC,SAA2B,GAAAt/B,OAAA,CAC/B,OAAO;IACL6D,IAAM,EAAAJ,CAAA;IACNquB,OAAA;IACAC,OAAA;IACAp0B,QAAU,EAAAwhC,QAAA;IACVv7B,GAAK,EAAAF,CAAA;IACLC,KAAA;IACAye,MAAA;IACA,GAAGjnB;EAAA,CACL,CAAA,EACA,CAAC22B,SAASC,OAAS,EAAAoN,QAAA,EAAUhkC,OAAOwI,KAAO,EAAAF,CAAA,EAAGC,GAAG0e,MAAM,CAAA,CACzD;EAEA,MAAMmd,UAA4B,GAAAv/B,OAAA,CAChC,OAAO;IACL6D,IAAA,EAAMo7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IACjCr7B,GAAA,EAAKs7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IAChCn7B,KAAO,EAAA,KAAA,CAAA;IACPD,MAAQ,EAAA,KAAA;EAAA,CACV,CAAA,EACA,CAACm7B,QAAQC,MAAM,CAAA,CACjB;EAGE,sBAAAha,IAAA,CAACuZ,YAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAIld,SAAA;IACL,gBAAgB,EAAA4P,SAAA;IAChB1R,MAAA;IACA3L,GAAA;IACA5C,MAAA;IACA2O,MAAA;IACApK,MAAO,EAAA,QAAA;IACPta,KAAO,EAAAmkC,SAAA;IACPluB,IAAA;IACC,IAAIzW,OAAU,GAAAJ,oBAAA,GAAuB,CAAC,CAAA;IAEvC0W,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC0W;MAAK,SAAQ,EAAA,kBAAA;MAAmBpR,SAAU,EAAA,QAAA;MAASO,MAAM,CAAG;MAAAzB,QAAA;MAC3D3E,QAAC,EAAA,eAAAO,GAAA,CAAA0W,IAAA,EAAA;QAAKpR,WAAU,QAAS;QAAAO,IAAA,EAAM,CAAG;QAAAxZ,OAAA;QAC/BoT;MACH,CAAA;KACF,CAAA,EAECyQ,KACC,mBAAAlQ,GAAA,CAACyR,KAAA,EAAA;MACCnP,GAAK,EAAAkrB,QAAA;MACL7jC,KAAO,EAAAokC,UAAA;MACP57B,KAAO,EAAA+4B,2BAAA;MACPz+B,MAAQ,EAAA0+B,4BAAA;MACRld,MAAQ,EAAAmd;IAAA,CACV,CAAA;EAAA,CAAA,CAEJ;AAAA,CAEH,CACH,CAAA;AAEA+B,WAAA,CAAYa,WAAc,GAAA,aAAA;ACnCnB,MAAMC,OAAU,GAAAb,IAAA,CACrB3d,UAAW,CAAA,SAASwe,QAClBC,CAAAnjC,KAAA,EAEAuX,GACoB,EAAA;EAxHxB,IAAA5P,EAAA,EAAAO,EAAA,EAAA0Y,EAAA,EAAAwiB,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAn1B,EAAA,EAAAo1B,EAAA;EAyHI,MAAM;IAAC5P,SAAA;IAAW6P;EAAK,CAAA,GAAIjuB,WAAY,CAAA,CAAA;EACvC,MAAMkuB,yBAAyB/L,kBAAmB,EAAA;EAE5C,MAAA;IACJ2K,oBAAoB9B,OAAU,GAAAH,uBAAA;IAC9BliC,OAAU,GAAA,KAAA;IACV+mB,OAAOye,SAAY,GAAA,KAAA;IACnBt/B,kBAAkBq/B,sBAAuB,CAAA9/B,OAAA;IACzC6Q,QAAU,EAAAmvB,SAAA;IACVC,aAAgB,GAAA,KAAA;IAChBtiC,OAAA;IACAigB,QAAA;IACAsiB,kBAAA,GAAA,CAAqB77B,WAAM67B,kBAAN,KAAA,IAAA,GAAA77B,EAAA,GACnBq4B,+BAA4B54B,EAAM,GAAA3H,KAAA,CAAA40B,SAAA,KAAN,YAAmB,QAAQ,CAAA;IACzDoP,mBAAA;IACAC,gBAAmB,GAAA,CAAArjB,EAAA,GAAA5gB,KAAA,CAAMsE,eAAN,KAAA,IAAA,GAAAsc,EAAA,GAAyB+iB,sBAAuB,CAAA9/B,OAAA;IAAA;IAEnEs4B,UAAA;IACA+H,IAAA;IACA7qB,QAAW,GAAA,QAAA;IACX/X,OAAS,EAAAmtB,WAAA;IACTmG,WAAWuP,aAAgB,GAAA,QAAA;IAC3BjH,MAAA;IACAkH,eAAkB,GAAA,IAAA;IAClBlhB,QAAQ8L,UAAa,GAAA,CAAA;IACrBqV,iBAAoB,GAAA,CAAAjB,EAAA,GAAApjC,KAAA,CAAMsE,eAAN,KAAA,IAAA,GAAA8+B,EAAA,GAAyBO,sBAAuB,CAAA9/B,OAAA;IACpEygC,gBAAA;IACA3vB,MAAA;IACA2O,QAAQihB,UAAa,GAAA,CAAA;IACrB1vB,IAAO,GAAA,SAAA;IACPzN,OAAOo9B,SAAY,GAAA,MAAA;IACnBpJ,OAAA,EAASC,WAAc,GAAAqI,KAAA,CAAMe,OAAQ,CAAArJ,OAAA;IACrCsJ,SAAA;IACA,GAAG1f;EACD,CAAA,GAAAhlB,KAAA;EACJ,MAAM2kC,YAAe,GAAA,CAAAtB,EAAA,GAAA1vB,cAAA,CAAerP,eAAe,CAAA,KAA9B,IAAiC,GAAA,KAAA,CAAA,GAAA++B,EAAA,CAAAlwB,MAAA;EAChD,MAAA7R,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAAvL,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA1L,MAAA,GAAS/f,aAAaghC,UAAU,CAAA;EAChC,MAAAK,cAAA,GAAiBrhC,aAAaihC,SAAS,CAAA;EACvC,MAAApJ,OAAA,GAAU73B,aAAa83B,WAAW,CAAA;EAClC,MAAA9K,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAClC,MAAAkrB,QAAA,GAAW79B,OAA8B,IAAI,CAAA;EACnD,MAAMq8B,YAA6B,GAAA,UAAA;EAEnC,MAAMzhC,aAAakX,aAAc,EAAA;EACjC,MAAMurB,aAAgB,GAAA6B,aAAA,IAAiBM,eAAkB,GAAAO,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,YAAA,CAAcv9B,KAAQ,GAAA,KAAA,CAAA;EAK/E,MAAMA,QAAQy6B,gBAAiB,CAAA;IAC7BhO,SAAA;IACAr0B,UAAA;IACA4H,KAAO,EAAAw9B;EAAA,CACR,CAAA;EACK,MAAAC,QAAA,GAAWjgC,OAAOwC,KAAK,CAAA;EAE7BvC,SAAA,CAAU,MAAM;IACdggC,QAAA,CAAS9/B,OAAU,GAAAqC,KAAA;EAAA,CACrB,EAAG,CAACA,KAAK,CAAC,CAAA;EAKV,MAAM0sB,WAAWkO,YAAa,CAAA;IAACC,aAAe;IAAAF,YAAA,EAAc36B;GAAM,CAAA;EAC5D,MAAA09B,WAAA,GAAclgC,OAAOkvB,QAAQ,CAAA;EAEnCjvB,SAAA,CAAU,MAAM;IACdigC,WAAA,CAAY//B,OAAU,GAAA+uB,QAAA;EAAA,CACxB,EAAG,CAACA,QAAQ,CAAC,CAAA;EAGb,MAAMiR,oBAAoBngC,MAAe,EAAA;EAGzCC,SAAA,CAAU,MAAM;IACd,MAAMmgC,kBAAkBzU,YAAa,CAAAxrB,OAAA;IAEjC,IAAA,CAACm/B,QAAQ,CAACc,eAAA,EAAiB;IAE/B,MAAMzD,iBAAiBwD,iBAAkB,CAAAhgC,OAAA;IAEzC,IAAIi/B,mBAAqB,EAAA;MACvB,IAAIzC,mBAAmB,KAAW,CAAA,EAAA;QAChByD,eAAA,CAAApmC,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAc,CAAAuiC,cAAA,EAAA,IAAA,CAAA;MACjD;IAAA,CACF,MAAA,IAAWn6B,UAAU,KAAW,CAAA,EAAA;MACd49B,eAAA,CAAApmC,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAK,CAAAoI,KAAA,EAAA,IAAA,CAAA;IACxC;IAEI,IAAA,OAAO0sB,aAAa,QAAU,EAAA;MAChBkR,eAAA,CAAApmC,KAAA,CAAMk1B,QAAW,GAAA,EAAA,CAAG90B,MAAQ,CAAA80B,QAAA,EAAA,IAAA,CAAA;IAC9C;EAAA,GACC,CAAC1sB,KAAA,EAAOmpB,cAAcyT,mBAAqB,EAAAlQ,QAAA,EAAUoQ,IAAI,CAAC,CAAA;EAEvD,MAAAe,UAAA,GAAaxhC,QAAQ,MAAM;IAC/B,MAAMM,MAAoB,EAAC;IAG3B,IAAI+/B,iBAAiBM,eAAiB,EAAA;MAChCrgC,GAAA,CAAAE,IAAA,CACFihC,IAAK,CAAA;QACHnE,UAAUkD,gBAAoB,IAAA,KAAA,CAAA;QAC9BF,kBAAA;QACAziC,OAAS,EAAA4+B,uBAAA;QACTe;MAAA,CACD,CAAA,CACH;IACF;IAGAl9B,GAAA,CAAIE,KAAKoX,MAAO,CAAA;MAAC8pB,QAAU,EAAAlF;IAAyB,CAAA,CAAC,CAAA;IAGrD,IAAI6D,iBAAiBE,mBAAqB,EAAA;MACpCjgC,GAAA,CAAAE,IAAA,CACFjC,IAAK,CAAA;QACHw+B,aAAmE;UAAA,IAA7D;YAACa,cAAA;YAAgBC,eAAiB;YAAA78B,QAAA;YAAU88B;WAAiB,GAAA6D,KAAA;UAGjEL,iBAAA,CAAkBhgC,OAAU,GAAAw8B,cAAA;UAE5B,MAAM8D,gBAAgBR,QAAS,CAAA9/B,OAAA;UAC/B,MAAMugC,YAAYR,WAAY,CAAA//B,OAAA;UAE9B,IAAIi/B,mBAAqB,EAAA;YACvBv/B,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAc,CAAAuiC,cAAA,EAAA,IAAA,CAAA;UAAA,CACnD,MAAA,IAAW8D,kBAAkB,KAAW,CAAA,EAAA;YACtC5gC,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMwI,KAAQ,GAAA,EAAA,CAAGpI,MAAa,CAAAqmC,aAAA,EAAA,IAAA,CAAA;UAClD;UAEA,IAAIvB,aAAe,EAAA;YACjBr/B,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMk1B,QAAW,GAAA,EAAA,CAAG90B,MAAK,CAAA0D,IAAA,CAAAmZ,GAAA,CACzCwlB,cAAA,EACAiE,SAAa,IAAA,IAAA,GAAAA,SAAA,GAAAp4B,QACd,CAAA,EAAA,IAAA,CAAA;YAEDzI,QAAA,CAASwwB,QAAS,CAAAr2B,KAAA,CAAMsiC,SAAY,GAAA,EAAA,CAAGliC,MAAe,CAAAsiC,eAAA,EAAA,IAAA,CAAA;UACxD;QACF,CAAA;QACAh9B,iBAAiB2/B,gBAAoB,IAAA,KAAA,CAAA;QACrCH,aAAA;QACArD,OAAA;QACAuD,mBAAA;QACA1iC,OAAS,EAAA4+B;MAAA,CACV,CAAA,CACH;IACF;IAGA,IAAIkE,eAAiB,EAAA;MACfrgC,GAAA,CAAAE,IAAA,CACFmxB,KAAM,CAAA;QACJ2L,UAAUkD,gBAAoB,IAAA,KAAA,CAAA;QAC9BhD,YAAA;QACA3/B,OAAS,EAAA4+B;MAAA,CACV,CAAA,CACH;IACF;IAGA,IAAI0D,SAAW,EAAA;MACT7/B,GAAA,CAAAE,IAAA,CACFkhB,KAAM,CAAA;QACJthB,OAAS,EAAA4+B,QAAA;QACTnhC,OAAS,EAAA4+B;MAAA,CACV,CAAA,CACH;IACF;IAIA,IAAI9hC,OAAS,EAAA;MACX2F,GAAA,CAAIE,KAAKuwB,MAAM,CAAA;IACjB;IAEIzwB,GAAA,CAAAE,IAAA,CACFshC,IAAK,CAAA;MACHxE,UAAUsD,iBAAqB,IAAA,KAAA,CAAA;MAC/B/iC,OAAS,EAAA4+B,uBAAA;MACT0C,QAAU,EAAA;IAAA,CACX,CAAA,CACH;IAEO,OAAA7+B,GAAA;EAAA,CACN,EAAA,CACD3F,OAAA,EACAwlC,SAAA,EACAE,aAAA,EACAC,kBAAA,EACAE,gBAAA,EACAxD,OAAA,EACAuD,mBAAA,EACAI,eAAA,EACAC,iBAAA,CACD,CAAA;EAEK,MAAA;IAACn9B;IAAGC,CAAG;IAAAwtB,cAAA;IAAgBC;IAAW4Q,IAAM;IAAA5C,QAAA;IAAU6C;EAAM,CAAA,GAAIC,WAAY,CAAA;IAC5ET,UAAA;IACArQ,SAAW,EAAAuP,aAAA;IACXwB,oBAAsB,EAAAC;EAAA,CACvB,CAAA;EAEK,MAAAC,eAAA,GAAA,CAAkBvC,EAAe,GAAA3O,cAAA,CAAA4Q,IAAA,KAAf,IAAqB,GAAA,KAAA,CAAA,GAAAjC,EAAA,CAAAuC,eAAA;EAEvC,MAAAnD,MAAA,GAAA,CAASa,EAAe,GAAA5O,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAoe,EAAA,CAAAr8B,CAAA;EAC/B,MAAAy7B,MAAA,GAAA,CAASa,EAAe,GAAA7O,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAqe,EAAA,CAAAr8B,CAAA;EAErC,MAAMouB,OAAU,GAAA,CAAAlnB,EAAA,GAAAsmB,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAAtmB,EAAA,CAAAknB,OAAA;EACrD,MAAMC,OAAU,GAAA,CAAAiO,EAAA,GAAA9O,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAA8O,EAAA,CAAAjO,OAAA;EAE/C,MAAAsQ,QAAA,GAAWrd,WAAY,CAACsd,OAAmC,IAAA;IAC/DtD,QAAA,CAAS19B,OAAU,GAAAghC,OAAA;EACrB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,WAAc,GAAAvd,WAAA,CACjBxb,IAAgC,IAAA;IAC/BsjB,YAAA,CAAaxrB,OAAU,GAAAkI,IAAA;IACvBu4B,IAAA,CAAKQ,YAAY/4B,IAAI,CAAA;EACvB,CAAA,EACA,CAACsjB,cAAciV,IAAI,CAAA,CACrB;EAEA,MAAMS,YAAe,GAAAxd,WAAA,CAClBxb,IAA6B,IAAA;IAC5Bu4B,IAAA,CAAKS,aAAah5B,IAAI,CAAA;IAGtB,MAAMi5B,WAAYrC,SAAmB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAtsB,GAAA;IAEjC,IAAA,OAAO2uB,aAAa,UAAY,EAAA;MAClCA,QAAA,CAASj5B,IAAI,CAAA;eACJi5B,QAAU,EAAA;MACnBA,QAAA,CAASnhC,OAAU,GAAAkI,IAAA;IACrB;EACF,CAAA,EACA,CAAC42B,WAAW2B,IAAI,CAAA,CAClB;EAEM,MAAAnb,KAAA,GAAQ5mB,QAAQ,MAAM;IAC1B,IAAI,CAACogC,SAAa,IAAAS,gBAAA,EAAyB,OAAA,IAAA;IAE3C,OAAO5Z,YAAa,CAAAmZ,SAAA,EAAW;MAACtsB,GAAA,EAAK0uB;IAAa,CAAA,CAAA;EACjD,CAAA,EAAA,CAACpC,SAAW,EAAAS,gBAAA,EAAkB2B,YAAY,CAAC,CAAA;EAE9CphC,SAAA,CAAU,MAAM;IACd,IAAI6/B,SAAW,EAAA;MACT,IAAA,OAAOA,cAAc,UAAY,EAAA;QACnCA,SAAA,CAAUe,MAAM,CAAA;iBACPf,SAAW,EAAA;QACpBA,SAAA,CAAU3/B,OAAU,GAAA0gC,MAAA;MACtB;IACF;EAAA,CACC,EAAA,CAACA,MAAQ,EAAAf,SAAS,CAAC,CAAA;EAEtB7/B,SAAA,CAAU,MAAM;IACT2gC,IAAA,CAAAS,YAAA,CAAa3B,oBAAoB,IAAI,CAAA;EAAA,CACzC,EAAA,CAACA,gBAAkB,EAAAkB,IAAI,CAAC,CAAA;EAE3B,IAAI/jB,QAAU,EAAA;IACZ,OAAOoiB,aAAe,eAAA5uB,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAA,CAAA;EACxB;EAEM,MAAA4pC,OAAA,GACH,eAAAxvB,GAAA,CAAAkmB,aAAA,EAAA;IAAcC,OACb;IAAA1mB,QAAA,EAAA,eAAAO,GAAA,CAACmtB,WAAA,EAAA;MACE,GAAGpd,SAAA;MACJud,kBAAoB,EAAA9B,OAAA;MACpBriC,OAAA;MACA+mB,KAAO,EAAAye,SAAA;MACPnB,QAAU,EAAAqD,QAAA;MACVpD,MAAA;MACAC,MAAA;MACAwD,MAAQ,EAAAN,eAAA;MACRxsB,QAAA;MACA/X,OAAA;MACAszB,SAAA;MACA1R,MAAA;MACA3L,GAAK,EAAAyuB,WAAA;MACLrxB,MAAA;MACA2O,MAAA;MACAiS,OAAA;MACAC,OAAA;MACAoN,QAAA;MACA/tB,IAAA;MACAzN,KAAA,EAAO48B,mBAAsB,GAAAe,iBAAA,CAAkBhgC,OAAU,GAAAqC,KAAA;MACzDF,CAAA;MACAC,CAAA;MAECuN,QAAA,EAAAlT;IAAA,CAEL;EAAA,CAAA,CAAA;EAGF,sBAGImnB,IAAA,CAAA9tB,QAAA,EAAA;IAAA6Z,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC4iB,kBAAA,EAAA;MACCE,SAAW,EAAA35B,OAAA;MACX45B,OAAS,EAACtjB,QAAa,IAAA,eAAAO,GAAA,CAACmxB;QAAiB1xB;MAAS,CAAA,CAAA;MAEjDA,QACC,EAAAwvB,IAAA,IAAA,eAAAjvB,GAAA,CAAC4iB,kBAAA,EAAA;QACCE,SAAA,EAAW,CAAC,CAACmF,MAAA;QACblF,OAAA,EAAUtjB,QAAA,IAAA,eACPO,GAAA,CAAAja,MAAA,EAAA;UAAOiiC,eAAiB,EAAA,OAAOC,MAAW,KAAA,QAAA,GAAWA,MAAS,GAAA,KAAA,CAAA;UAC5DxoB;QACH,CAAA,CAAA;QAGDA,QAAA,EAAA+vB;MAAA,CACH;IAAA,CAEJ,CAAA,EAGCpa,KAAA;EACH,CAAA,CAAA;AAAA,CAEH,CACH,CAAA;AAEA6Y,OAAA,CAAQD,WAAc,GAAA,SAAA;;;;;;AC5btB,IAAAt7B,IAAA,EAAAO,IAAA;AAKO,SAASm+B,cAAyCA,CAAA,EAAA;EACvD,OAAOvlB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,8JAAA,CAAA,CAAA,CAAA,CAAA;AAWZ;AAEO,SAASulB,kBAAkBtmC,KAA2C,EAAA;EAC3E,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAC9C,MAAMwmC,QAAQnlB,KAAM,CAAAolB,KAAA,CAAMxkC,IAAO,GAAAof,KAAA,CAAMolB,MAAMC,QAAY,IAAA,CAAA;EAElD,OAAA3lB,GAAA,CAAA5Y,IAAA,KAAAA,IAAA,GAAG6Y,YAYkC,CAAA,CAAA,8NAAA,EAAA,6HAAA,EAOT,kBACD,EAAA,0BAAA,EACY,yBACE,uBAI1C,EAAA,yFAAA,EAKgB,mBACC,EAAA,qBAAA,EACkB,oBACD,EAAA,4BAAA,EACY,2BACF,sHAU5C,EAAA,yFAAA,EAOA,uJASoD,EAAA,uBAAA,EAIpD,2CAEkD,EAAA,wGAAA,EAMO,yBACd,6CAGM,EAAA,sHAAA,EAMQ,uBACd,EAAA,6CAAA,EAGM,uBA5EpC,CAAA,CAAA,CAAA,EAAAjiB,GAAA,CAAIsiB,MAAMolB,KAAM,CAAAxkC,IAAA,GAAO,CAAC,CAAA,EAO7BlD,GAAI,CAAAsiB,KAAA,CAAMolB,MAAMxkC,IAAI,CAAA,EACrBlD,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAxkC,IAAI,GACZlD,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAxkC,IAAA,GAAO,CAAC,CAAA,EAC3BgZ,MAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAA9F,EAAA,EAC5BT,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKQtI,GAAI,CAAAynC,IAAI,CACP,EAAAznC,GAAA,CAAIynC,IAAI,CAAA,EACNznC,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAC,QAAQ,CACzB,EAAA3nC,GAAA,CAAIsiB,KAAM,CAAAolB,KAAA,CAAMC,QAAQ,CAAA,EAChB3nC,GAAI,CAAAsiB,KAAA,CAAMolB,KAAM,CAAAC,QAAA,GAAW,CAAC,CAAA,EAC/BzrB,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAO9BtG,cAAe,CAAA;IAC3B9H,MAAA,EAAQ;MAAC/L,KAAA,EAAOga,KAAM,CAAAjO,MAAA,CAAO/L,KAAO;MAAA4T,KAAA,EAAOA,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO;IAAM,CAAA;IAC7EgI,SAAA,EAAWiG,MAAMolB,KAAM,CAAArrB;EACxB,CAAA,GAIaJ,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EAAA,CACrB,CASmB,EAAA4T,KAAA,CAAMoG,MAAMM,OAAQ,CAAAJ,OAAA,CAAQnO,QAClC4H,oBAAqB,CAAA;IACjC3T,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L,KAAA;IACpB4T,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,QAAQuD,KAAM,CAAArJ;EAAA,CAC1C,CAEe,EAAAR,KAAA,CAAMoG,KAAM,CAAAM,OAAA,CAAQJ,QAAQuD,KAAM,CAAArJ,EAAA,EAM1BR,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAxO,MAAA,EACvC6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAnG,EAAA,EAG3BR,KAAM,CAAAoG,KAAA,CAAMC,QAAQM,QAAS,CAAAxO,MAAA,EAMrB6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAtO,MAAA,EACvC6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAjG,EAAA,EAG3BR,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAtO,MAAA,CAAA;AAInD;ACvGA,MAAMiR,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAI+hB,cAAc,CAAA;AACtC,MAAMhW,OAAA,GAAQhM,MAAO,CAAAjD,KAAA,CAAMklB,iBAAiB,CAAA;AAOrC,MAAMI,KAAQ,GAAAhiB,UAAA,CAAW,SAASgiB,MAAAA,CACvC1mC,OACAuwB,YACA,EAAA;EACM,MAAA;IAACE;IAAWhP,QAAU;IAAA7iB,KAAA;IAAO8Y;IAAgBiK,QAAU;IAAA,GAAGqD;EAAa,CAAA,GAAAhlB,KAAA;EACvE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC9Y,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC,OACG,eAAAiR,IAAA,CAAAvE,MAAA,EAAA;IAAKqM,SAAsB;IAAA,SAAA,EAAQ;IAAQ7xB,KAC1C;IAAA8V,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC7C,YAAA,EAAYjK,iBAAiB,EAAK,GAAA,KAAA,CAAA;MACjC,GAAGsN,SAAA;MACJvD,UAAUA,QAAY,IAAAE,QAAA;MACtBA,QAAA;MACApK,GAAA;MACArd,IAAK,EAAA;IAAA,CACP,CAAA,EAAA,mBACC,MAAK,EAAA,EAAA,CAAA;EACR,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC3CD,IAAAyN,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA;AAYA,SAASL,SAAoCA,CAAA,EAAA;EAC3C,OAAOjiB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,kLAAA,CAAA,CAAA,CAAA,CAAA;AAUZ;AAEA,SAAS4lB,eAAe3mC,KAA2C,EAAA;EACjE,MAAM;IAACY;EAAQ,CAAA,GAAAN,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAO+gB,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,sGAAA,EAIuB,gIAAhB,CAAA,CAAA,CAAA,EAAAngB,IAAA,CAAK2f,IAAK,CAAA1f,MAAA,CAAA;AAU7B;AAEA,SAAS+lC,gBAAgB5mC,KAAmB,EAAA;EAC1C,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAA+gB,GAAA,CAAAF,IAAA,KAAAA,IAAA,GAAGG,YAE0C,CAAA,CAAA,6CAAA,EAAA,gBAAA,EACX,qBAIrC,EAAA,iHAAA,EAKoD,sBACX,yBAIrC,EAAA,0FAAA,EASF,oFAKiD,EAAA,kBAAA,EACX,uBAItC,EAAA,kGAAA,EAKiD,oBACX,uBAItC,EAAA,cAAA,CAAA,CAAA,CAAA,EA5CgB/F,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,EACvC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAC,EAAA,EACvBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQC,OAAQ,CAAAnO,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKuB4T,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAY,OAAA,CAAQzG,EACvC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAAV,EAAA,EACvBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQY,OAAQ,CAAA9O,MAAA;IACnC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,GAMW6T,cAAe,CAAA;IAC3B9H,MAAA,EAAQ;MAAC/L,KAAA,EAAOga,KAAM,CAAAjO,MAAA,CAAO/L,KAAO;MAAA4T,KAAA,EAAOA,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO;IAAM,CAAA;IAC7EgI,SAAA,EAAWiG,MAAMylB,MAAO,CAAA1rB;EACzB,CAAA,CAAA,EAKmBH,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAM,QAAA,CAASnG,EACxC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAJ,EAAA,EACxBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAxO,MAAA;IACpC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,EAKmB4T,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAI,QAAA,CAASjG,EACxC,EAAAR,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAF,EAAA,EACxBxG,oBAAqB,CAAA;IACjCC,KAAO,EAAAA,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO,MAAA;IACpC/L,KAAA,EAAOga,MAAMjO,MAAO,CAAA/L;EACrB,CAAA,CAAA,CAAA;AAGP;AAEA,SAAS0/B,SAAS9kC,IAAqB,EAAA;EAC9B,OAAA;IAACD,QAAU,EAAAjD,GAAA,CAAIkD,IAAK,CAAAD,QAAQ;IAAGM,UAAY,EAAAvD,GAAA,CAAIkD,IAAK,CAAAK,UAAU;GAAC;AACxE;AAEA,SAAS0kC,mBAAmB/mC,KAA2C,EAAA;EAC/D,MAAA;IAAC6f;EAAa,CAAA,GAAA7f,KAAA;EACpB,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEtC,OAAAd,WAAA,CAAYC,KAAA,EAAO2gB,SAAA,EAAY/d,SAAA,IACpCglC,QAAS,CAAAlmC,IAAA,CAAK2f,IAAK,CAAAzf,KAAA,CAAMgB,SAAS,CAAA,IAAKlB,IAAK,CAAA2f,IAAA,CAAKzf,KAAM,CAAA,CAAC,CAAC,CAAA,CAC3D;AACF;AAEA,SAASkmC,UASPA,CAAA,EAAA;EACO,OAAA,CACL/jB,qBAAA,EACA0jB,cAAA,EACAC,eAAA,EACAG,kBAAA,EACApmB,oCAAA,CACF;AACF;AAEA,SAASsmB,aAAajnC,KAA2C,EAAA;EAC/D,MAAM;IAACgb;EAAS,CAAA,GAAA1a,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAA+gB,GAAA,CAAAsiB,IAAA,KAAAA,IAAA,GAAGriB,YAOyC,CAAA,CAAA,8HAAA,EAAA,uIAAA,EAKI,8FAMD,EAAA,6FAAA,EAKA,mBAhBjC/F,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQC,EAKxB,EAAAvG,KAAA,CAAMoG,MAAMC,OAAQ,CAAAY,OAAA,CAAQV,EAM9B,EAAAvG,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQI,SAASF,EAK7B,EAAAvG,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAJ,EAAA,CAAA;AAGtD;AAEO,MAAM2lB,WAAc,GAAA;EACzB5xB,IAAM,EAAAytB,SAAA;EACN3hB,KAAO,EAAA4lB,UAAA;EACPG,OAAS,EAAAF;AACX,CAAA;ACjJA,MAAM7iB,MAAO,GAAAC,MAAA,CAAOC,GAAI,CAAA4iB,WAAA,CAAY5xB,IAAI,CAAA;AAExC,MAAM+a,OAAQ,GAAAhM,MAAA,CAAOwiB,MAKlB,CAAAK,WAAA,CAAY9lB,KAAK,CAAA;AAEpB,MAAMgmB,OAAU,GAAA/iB,MAAA,CAAOuG,GAAG,CAAA,CAAEsc,YAAYC,OAAO,CAAA;AAOxC,MAAME,MAAS,GAAA3iB,UAAA,CAAW,SAAS2iB,OAAAA,CACxCrnC,OACAuwB,YACA,EAAA;EACM,MAAA;IACJ7b,QAAA;IACAgD,cAAA;IACA+J,QAAA;IACA1f,QAAW,GAAA,CAAA;IACXT,OAAU,GAAA,CAAA;IACV4hB,MAAS,GAAA,CAAA;IACTvB,QAAA;IACAthB,KAAQ,GAAA,CAAA;IACR,GAAG2kB;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC9Y,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAGnC,OAAA,eAAAiR,IAAA,CAACvE,MAAK,EAAA;IAAA,SAAA,EAAQ,QACZ;IAAA1P,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC7C,SAAQ,EAAA,QAAA;MACP,GAAGqD,SAAA;MACJnF,SAAA,EAAWtc,aAAaxB,QAAQ,CAAA;MAChCie,QAAA,EAAUzc,aAAajC,OAAO,CAAA;MAC9B6hB,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;MAC5BjD,MAAA,EAAQ1c,aAAalD,KAAK,CAAA;MAC1BohB,UAAUA,QAAY,IAAAE,QAAA;MACtBpK,GAAA;MAEC7C;IAAA,CACH,CAAA,EAAA,eAEAO,GAAA,CAACmyB,OAAQ,EAAA;MAAA9lC,OAAA;MACPoT,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;QAAKppB,MAAMD,QACV;QAAA2S,QAAA,EAAA,eAAAO,GAAA,CAACqyB,eAAgB,EAAA,CAAA,CAAA;MACnB,CAAA;KACF,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACxED,MAAMlvB,UAAwB,GAAA;EAC5B,kBAAoB,EAAA;IAClB3W,OAAS,EAAA;EACX,CAAA;EACA,iCAAmC,EAAA;IACjC4W,SAAW,EAAA;EACb,CAAA;EACAgF,mBAAqB,EAAA,gBAAA;EACrBN,YAAc,EAAA;AAChB,CAAA;AAEO,SAASwqB,cAA4BA,CAAA,EAAA;EACnC,OAAAnvB,UAAA;AACT;AAEO,SAASovB,0BACdxnC,KACa,EAAA;EACb,MAAM;IAACd,KAAO;IAAAmB;EAAA,CAAS,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAE9C,OAAOd,WAAY,CAAAC,KAAA,EAAOc,KAAM,CAAAigB,MAAA,EAAS1f,UAAgB,KAAA;IACvDkd,OAAS,EAAA3e,GAAA,CAAIuB,KAAM,CAAAE,UAAU,CAAC;EAC9B,CAAA,CAAA,CAAA;AACJ;AChBA,MAAM6jB,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAAkC2c,gBAAgBC,yBAAyB,CAAA;AAO3F,MAAMC,KAAQ,GAAA/iB,UAAA,CAAW,SAAS+iB,MAAAA,CACvCznC,OACAuX,GACA,EAAA;EACA,MAAM;IAAC4P,EAAA;IAAI9mB,KAAO;IAAA,GAAG2kB;GAAa,GAAAhlB,KAAA;EAGhC,sBAAAiV,GAAA,CAACmP,MAAA,EAAA;IACC,SAAS,EAAA,OAAO+C,EAAO,KAAA,QAAA,GAAWA,EAAK,GAAA,KAAA,CAAA;IACvC,SAAQ,EAAA,OAAA;IACP,GAAGnC,SAAA;IACJ/E,MAAA,EAAQ1c,aAAalD,KAAK,CAAA;IAC1BipB,WAAa,EAAAnC,EAAA;IACb5P;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;;;;;;ACrCD,IAAA5P,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,EAAA;AAMO,SAASmE,gBAA2CA,CAAA,EAAA;EACzD,OAAO5mB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2FAAA,CAAA,CAAA,CAAA,CAAA;AAMZ;AAGO,SAAS4mB,iBAA4CA,CAAA,EAAA;EAE1D,OAAO7mB,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,2RAAA,CAAA,CAAA,CAAA,CAAA;AAgBZ;AAGO,SAAS6mB,2BAA2B5nC,KAA2C,EAAA;EACpF,MAAM;IAACgb,KAAO;IAAAoG;EAAA,CAAS,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAA+gB,GAAA,CAAAF,IAAA,KAAAA,IAAA,GAAGG,2CAC+C,4BACJ,EAAA,gIAAA,EAOnB,mBACE,wBACW,EAAA,+bAAA,EAoB+B,wJAQvB,EAAA,8BAAA,EACA,+GAKM,EAAA,gCAAA,EACJ,8FAIA,gCACA,EAAA,iGAAA,EAKG,gCACJ,kFAII,EAAA,8BAAA,EACJ,mBA7DjC/F,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQnO,MAC5B,EAAA6H,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,IAOxC1c,GAAI,CAAAsiB,KAAA,CAAMymB,OAAOzgC,KAAK,CAAA,EACrBtI,GAAI,CAAAsiB,KAAA,CAAMymB,MAAO,CAAAnmC,MAAM,GAChB5C,GAAI,CAAAsiB,KAAA,CAAMymB,OAAOnmC,MAAS,GAAA,CAAC,GAoBnBuZ,cAAe,CAAA;IAACE,SAAW,EAAAiG,KAAA,CAAMymB,MAAO,CAAA1sB;EAAA,CAAU,CAQpD,EAAAH,KAAA,CAAMoG,MAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAC5BvG,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQ9F,EAK1B,EAAAR,KAAA,CAAMoG,MAAMC,OAAQ,CAAAY,OAAA,CAAQ9O,QAC5B6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQY,OAAQ,CAAAzG,EAAA,EAI5BR,KAAM,CAAAoG,KAAA,CAAMC,OAAQ,CAAAC,OAAA,CAAQC,IAC5BvG,KAAM,CAAAoG,KAAA,CAAMC,QAAQC,OAAQ,CAAA9F,EAAA,EAK9BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQI,QAAS,CAAAtO,MAAA,EAC7B6H,KAAM,CAAAoG,KAAA,CAAMC,QAAQI,QAAS,CAAAjG,EAAA,EAI7BR,MAAMoG,KAAM,CAAAC,OAAA,CAAQM,SAASxO,MAC7B,EAAA6H,KAAA,CAAMoG,KAAM,CAAAC,OAAA,CAAQM,QAAS,CAAAnG,EAAA,CAAA;AAGxD;AAGO,SAASssB,kBAAkB9nC,KAA2C,EAAA;EAC3E,MAAM;IAACohB;EAAS,CAAA,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,oBAAGC,YAQwB,CAAA,CAAA,uKAAA,EAAA,iBAAA,EACE,0BACW,OAFpC,CAAA,CAAA,CAAA,EAAAjiB,GAAA,CAAIsiB,MAAMymB,MAAO,CAAAzgC,KAAK,GACrBtI,GAAI,CAAAsiB,KAAA,CAAMymB,OAAOnmC,MAAM,CAAA,EAChB5C,IAAIsiB,KAAM,CAAAymB,MAAA,CAAOnmC,SAAS,CAAC,CAAA,CAAA;AAEhD;AAGO,SAASqmC,kBACd/nC,KACwB,EAAA;EAClB,MAAA;IAACgoC;EAAkB,CAAA,GAAAhoC,KAAA;EACzB,MAAM;IAACohB;EAAS,CAAA,GAAA9gB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACjC,MAAAkoC,UAAA,GAAa7mB,MAAMymB,MAAO,CAAAzgC,KAAA;EAC1B,MAAA8gC,WAAA,GAAc9mB,MAAMymB,MAAO,CAAAnmC,MAAA;EAC3B,MAAAymC,YAAA,GAAe/mB,MAAMymB,MAAO,CAAAvmC,OAAA;EAClC,MAAMU,IAAO,GAAAkmC,WAAA,GAAc9mB,KAAM,CAAAymB,MAAA,CAAOvmC,OAAU,GAAA,CAAA;EAC5C,MAAA8mC,aAAA,GAAgBH,UAAa,GAAAE,YAAA,GAAe,CAAI,GAAAnmC,IAAA;EACtD,MAAMqmC,mBAAsB,GAAAJ,UAAA,GAAa,CAAI,GAAAjmC,IAAA,GAAO,CAAI,GAAAmmC,YAAA;EACxD,MAAM3X,OAAU,GAAAwX,cAAA,KAAmB,IAAQ,IAAAhoC,KAAA,CAAMsoC,QAAa,KAAA,IAAA;EAE9D,OAAOxnB,gBAAGC,YAKiB,CAAA,CAAA,4FAAA,EAAA,cAAA,EACD,mBACL,gBACD,EAAA,wBAAA,EACY,qEAE0B,uCACW,EAAA,gJAAA,EAQlE,UAKA,EAAA,MAAA,CAAA,CAAA,CAAA,EApBOjiB,IAAIqpC,YAAY,CAAA,EACjBrpC,IAAIqpC,YAAY,CAAA,EACbrpC,IAAIkD,IAAI,CAAA,EACTlD,GAAI,CAAAkD,IAAI,GACAlD,GAAI,CAAAkD,IAAA,GAAO,CAAC,CAEN,EAAAof,KAAA,CAAMymB,OAAOU,oBACN,EAAAnnB,KAAA,CAAMymB,OAAOW,wBAKzC,EAAAhY,OAAA,IACF1P,oBAAGC,YACqC,CAAA,CAAA,iCAAA,EAAA,kBAAA,CAAA,CAAA,CAAA,EAAbqnB,gBAGzBJ,cACF,IAAAlnB,GAAA,CAAAwiB,IAAA,KAAAA,IAAA,GAAGviB,iDAC2C,kBAAnB,CAAA,CAAA,CAAA,EAAAsnB,mBAAA,CAAA,CAAA;AAG/B;ACpJA,MAAMjkB,MAAA,GAAOC,MAAO,CAAAG,IAAA,CAAKkjB,gBAAgB,CAAA;AACzC,MAAMrX,OAAA,GAAQhM,MAAO,CAAAjD,KAAA,CAAMumB,iBAAiB,CAAA;AAC5C,MAAMc,cAAA,GAAiBpkB,MAAO,CAAAG,IAAA,CAAKojB,0BAA0B,CAAA;AAC7D,MAAMc,KAAA,GAAQrkB,MAAO,CAAAG,IAAA,CAAKsjB,iBAAiB,CAAA;AAC3C,MAAMa,KAAA,GAAQtkB,MAAO,CAAAG,IAAA,CAAqDujB,iBAAiB,CAAA;AASpF,MAAMa,MAAS,GAAAlkB,UAAA,CAAW,SAASkkB,OAAAA,CACxC5oC,OACAuwB,YACA,EAAA;EACM,MAAA;IAACC;IAASC,SAAW;IAAAhP,QAAA;IAAUiP;IAAe/O,QAAU;IAAA/iB,KAAA;IAAO,GAAGomB;EAAa,CAAA,GAAAhlB,KAAA;EAC/E,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC1rB,SAAA,CAAU,MAAM;IACd,IAAI0S,IAAIxS,OAAS,EAAA;MAEXwS,GAAA,CAAAxS,OAAA,CAAQ2rB,gBAAgBA,aAAiB,IAAA,KAAA;IAC/C;EAAA,CACC,EAAA,CAACA,aAAe,EAAAnZ,GAAG,CAAC,CAAA;EAEvB,OACG,eAAAoR,IAAA,CAAAvE,MAAA,EAAA;IAAKqM,SAAsB;IAAA,SAAA,EAAQ;IAAS7xB,KAC3C;IAAA8V,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;MACC,gBAAgB,EAAA,CAAC5O,QAAY,IAAAE,QAAA,GAAW,EAAK,GAAA,KAAA,CAAA;MAC5C,GAAGqD,SAAA;MACJwL,OAAA,EAASE,kBAAkB,IAAQ,IAAAF,OAAA;MACnC/O,UAAUA,QAAY,IAAAE,QAAA;MACtBznB,IAAK,EAAA,UAAA;MACLqd;IAAA,CACF,CAAA,EAAA,eACCoR,IAAA,CAAA8f,cAAA,EAAA;MAAe,aAAW,EAAA,IAAA;MAAC,aAAU,gBACpC;MAAA/zB,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACyzB,KAAM,EAAA,EAAA,CAAA,EAAA,eACNzzB,GAAA,CAAA0zB,KAAA,EAAA;QAAML,QAAU,EAAA9X,OAAA;QAASwX,gBAAgBtX;OAAe,CAAA;KAC3D,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC7DD,IAAA/oB,IAAA;AA8BA,MAAMyc,MAAA,GAAOC,MAAO,CAAAG,IAAA,CAAKxD,kBAAkB,CAAA;AAE3C,MAAM6nB,WAAA,GAAYxkB,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2EAAA,CAAA,CAAA,CAAA,CAAA;AAO7B,MAAMsP,UAAQhM,MAAO,CAAAykB,QAAA,CACnBlpB,2BAAA,EACAqB,kBAAA,EACAW,sBACF,CAAA;AAEA,MAAMmnB,iBAAe1kB,MAAO,CAAAC,GAAA,CAC1BrB,qBAAA,EACApB,4BACF,CAAA;AAQO,MAAMmnB,QAAW,GAAAtkB,UAAA,CAAW,SAASskB,SAAAA,CAC1ChpC,OACAuwB,YACA,EAAA;EACM,MAAA;IACJpd,MAAS,GAAA,IAAA;IACTuE,cAAA;IACA+J,QAAW,GAAA,KAAA;IACX1f,QAAW,GAAA,CAAA;IACXT,OAAU,GAAA,CAAA;IACV4hB,MAAS,GAAA,CAAA;IACT6B,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC,MAAM3b,YAAYQ,YAAa,EAAA;EAE/BqC,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAErC,sBACGzC,GAAA,CAAAmP,MAAA,EAAA;IAAK,SAAQ,EAAA,UAAA;IACZ1P,8BAACm0B,WACC,EAAA;MAAAn0B,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,OAAA,EAAA;QACC,SAAQ,EAAA,UAAA;QACR,eAAazb,SAAU,CAAAD,MAAA;QACvB,aAAWC,SAAU,CAAAC,IAAA;QACpB,GAAGmQ,SAAA;QACJnF,SAAA,EAAWtc,aAAaxB,QAAQ,CAAA;QAChCie,QAAA,EAAUzc,aAAajC,OAAO,CAAA;QAC9B4f,SAAStM,SAAU,CAAAD,MAAA;QACnBsL,MAAA,EAAQ1c,aAAa,CAAC,CAAA;QACtB4d,OAAOvM,SAAU,CAAAC,IAAA;QACjBlU,OAAS,EAAAokB,MAAA;QACTtD,QAAA;QACAlK;MAAA,CACF,CAAA,EAAA,eACAtC,GAAA,CAAC8zB,cAAA,EAAA;QACC5lB,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;QAC5BhC,SAAStM,SAAU,CAAAD,MAAA;QACnBwM,OAAOvM,SAAU,CAAAC,IAAA;QACjB,aAAA,EAAa1B,SAAS,EAAK,GAAA,KAAA,CAAA;QAC3B,eAAayB,SAAU,CAAAD,MAAA;QACvB,aAAWC,SAAU,CAAAC;MAAA,CACvB,CAAA;IACF,CAAA;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;ACzGD,IAAAlN,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA,EAAAC,IAAA,EAAAC,IAAA;AA+EA,MAAM2F,sBAAA,GAA8C;EAACpjB,MAAA,EAAQ;CAAC;AAE9D,MAAMzB,MAAA,GAAOC,MAAO,CAAAyL,IAAI,CAAE,CAAAoZ,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAO,CAAA,CAAEtI,kBAAkB,CAAA;AAEzE,MAAM6nB,SAAA,GAAYxkB,MAAO,CAAAG,IAAA,CAAP7c,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2EAAA,CAAA,CAAA,CAAA,CAAA;AAO7B,MAAMooB,MAAA,GAAS9kB,MAAO,CAAAyL,IAAI,CAAE,CAAAoZ,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAO,CAAA,CAAxCphB,IAAyC,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,kIAAA,CAAA,CAAA,CAAA,CAAA;AAUxD,MAAMqoB,MAAA,GAAS/kB,MAAO,CAAAyL,IAAI,CAAE,CAAAoZ,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAO,CAAA,CAAxC1I,IAAyC,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,gIAAA,CAAA,CAAA,CAAA,CAAA;AAUxD,MAAMsP,QAAQhM,MAAO,CAAAjD,KAAA,CACnBxB,2BAAA,EACAqB,kBAAA,EACAW,sBACF,CAAA;AAEA,MAAMmnB,eAAe1kB,MAAO,CAAAG,IAAA,CAC1BvB,qBAAA,EACApB,4BACF,CAAA;AAEA,MAAMwnB,OAAU,GAAAhlB,MAAA,CAAOuG,GAAG,CAAA,CAAVwY,IAAW,KAAAA,IAAA,GAAAriB,YAAA,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA;AAM3B,MAAMuoB,QAAW,GAAAjlB,MAAA,CAAOuG,GAAG,CAAA,CAAVyY,IAAW,KAAAA,IAAA,GAAAtiB,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA;AAM5B,MAAMwoB,SAAY,GAAAllB,MAAA,CAAOyL,IAAI,CAAA,CAAXwT,IAAY,KAAAA,IAAA,GAAAviB,YAAA,CAAA,CAAA,qFAAA,CAAA,CAAA,CAAA,CAAA;AAO9B,MAAMyoB,oBAAA,GAAuBnlB,MAAO,CAAAgK,MAAM,CAAE,CAAA;EAC1C,iBAAmB,EAAA;IACjB5sB,OAAS,EAAA;EACX;AACF,CAAC,CAAA;AAOM,MAAMgoC,SAAY,GAAA/kB,UAAA,CAAW,SAAS+kB,UAAAA,CAC3CzpC,OACAuwB,YACA,EAAA;EACM,MAAA;IACJmZ,2BAAA;IACAv2B,MAAS,GAAA,IAAA;IACTw2B,WAAA;IACAloB,QAAW,GAAA,KAAA;IACX1f,UAAU6nC,YAAe,GAAA,CAAA;IACzB9c,IAAA;IACAwB,SAAA;IACAub,OAAA;IACAvoC,SAASmtB,WAAc,GAAA,CAAA;IACvBqb,MAAA;IACA5mB,QAAQ8L,UAAa,GAAA,CAAA;IACrBrN,QAAA;IACAthB,OAAO6uB,SAAY,GAAA,CAAA;IACnB6a,MAAA;IACAryB,cAAA;IACAxd,IAAO,GAAA,MAAA;IACP6qB,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuX,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC,MAAM3b,YAAYQ,YAAa,EAAA;EAEzB,MAAArT,QAAA,GAAWwB,aAAaqmC,YAAY,CAAA;EACpC,MAAAtoC,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAAvL,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA3uB,KAAA,GAAQkD,aAAa2rB,SAAS,CAAA;EAG9B,MAAA8a,eAAA,GAAkB7lC,QAAQwlC,WAAW,CAAA;EACrC,MAAAM,QAAA,GAAW9lC,QAAQ2oB,IAAI,CAAA;EACvB,MAAAod,aAAA,GAAgB/lC,QAAQmqB,SAAS,CAAA;EACjC,MAAAvM,UAAA,GAAa5d,QAAQ4lC,MAAM,CAAA;EAC3B,MAAAjoB,UAAA,GAAa3d,QAAQ2lC,MAAM,CAAA;EAEjCryB,iBAAA,CAAkBF,KAAKG,cAAc,CAAA;EAG/B,MAAAyyB,oBAAA,GAAuB1hB,WAAY,CAACtiB,KAA+C,IAAA;IACvFA,KAAA,CAAMikC,cAAe,CAAA,CAAA;IACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;EACxB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,gBAAmB,GAAA7hB,WAAA,CACtBtiB,KAA+C,IAAA;IAzMpDwB,IAAAA,GAAAA;IA0MMxB,KAAA,CAAMikC,cAAe,CAAA,CAAA;IACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;IAElB,IAAAR,OAAA,EAAiBA,OAAA,EAAA;IAGrB,CAAAliC,GAAA,GAAA4P,GAAA,CAAIxS,OAAJ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA4C,GAAa,CAAAmzB,KAAA,EAAA;EACf,CAAA,EACA,CAAC+O,SAAStyB,GAAG,CAAA,CACf;EAGA,MAAMgzB,UAAa,GAAA9mC,OAAA,CACjB,MACEqmC,MACE,IAAA,eAAA70B,GAAA,CAACk0B;IAAOj+B,SAAS,EAAA,IAAA;IAACM,YAAU,IAAC;IAAAF,YAAA,EAAY,IAAC;IAAA4X,MAAA;IAAgBhK,QAAO,QAAS;IAAArE,IAAA,EAAK;IAC7EH,QAAC,EAAA,eAAAO,GAAA,CAAA,MAAA,EAAA;MAAMP;IAAO,CAAA;GAChB,CAAA,EAEJ,CAACo1B,QAAQ5mB,MAAM,CAAA,CACjB;EAGA,MAAMsnB,gBAAmB,GAAA/mC,OAAA,CACvB,qBACEklB,IAAA,CAACogB,YAAA,EAAA;IACCjnB,UAAA;IACAE,yBAA2B,EAAA0nB,2BAAA;IAC3B3nB,UAAA;IACAoB,OAAS,EAAAD,MAAA;IACThC,SAAStM,SAAU,CAAAD,MAAA;IACnBwM,OAAOvM,SAAU,CAAAC,IAAA;IACjB,aAAA,EAAa1B,SAAS,EAAK,GAAA,KAAA,CAAA;IAC3B,eAAayB,SAAU,CAAAD,MAAA;IACvB,aAAWC,SAAU,CAAAC,IAAA;IAEpBH,QAAA,EAAA,CAAAoY,IAAA,uBACEuc,OAAQ,EAAA;MAAA/nC,OAAA;MACPoT,QAAC,iBAAAiU,IAAA,CAAAyC,IAAA,EAAA;QAAKppB,MAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;MAAA,CACjD;IACF,CAAA,CAAA,EAGD,CAACkd,mBAAmB1b,SACnB,IAAA,eAAArZ,GAAA,CAACq0B;MAAShoC,OACR;MAAAoT,QAAA,EAAA,eAAAiU,IAAA,CAACyC,IAAK,EAAA;QAAAppB,IAAA,EAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAed,SAAS,CAAK,IAAAA,SAAA,EAC7Br0B,cAAAA,CAAAA,kBAAmB,CAAAq0B,SAAS,CAAK,IAAAe,aAAA,CAAcf,SAAS,CAAA;MAAA,CAC3D;IACF,CAAA,CAAA;EAAA,CAEJ,CAAA,EAEF,CACEob,2BAAA,EACAv2B,MAAA,EACApR,QAAA,EACA+qB,IAAA,EACAwB,SAAA,EACAhtB,OAAA,EACA4hB,MAAA,EACAtO,SAAA,EACAo1B,eAAA,EACAloB,UAAA,EACAC,UAAA,CACF,CACF;EAGA,MAAM0oB,qBAAwB,GAAAhnC,OAAA,CAC5B,MACEnC,OAAA,CAAQhC,GAAI,CAAChC,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACgE,OAAO,CAAA,CACV;EACA,MAAMopC,kBAAqB,GAAAjnC,OAAA,CACzB,MACEnC,OAAA,CAAQhC,GAAI,CAAChC,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACgE,OAAO,CAAA,CACV;EACA,MAAMqpC,gBAA8C,GAAAlnC,OAAA,CAClD,MAAO,OAAOkmC,WAAgB,KAAA,QAAA,GAAWA,WAAc,GAAA5rC,YAAA,EACvD,CAAC4rC,WAAW,CAAA,CACd;EACA,MAAMiB,eAAkB,GAAAnnC,OAAA,CACtB,MACE,CAACge,QACD,IAAA,CAACE,YACDgoB,WACE,IAAA,eAAA10B,GAAA,CAACs0B,SAAA,EAAA;IACCjgB,WAAY,EAAA,MAAA;IACZhoB,OAAS,EAAAmpC,qBAAA;IACT7rC,KAAO,EAAAqqC,sBAAA;IACPp0B,IAAA,EAAM6C,iBAAiB,UAAa,GAAA,SAAA;IAEpChD,QAAA,iBAAAO,GAAA,CAACu0B,oBAAA,EAAA;MACC,YAAW,EAAA,OAAA;MACX,SAAQ,EAAA,cAAA;MACRznC,QAAA;MACA+qB,IAAM,EAAA+d,SAAA;MACNpf,IAAK,EAAA,OAAA;MACLnqB,OAAS,EAAAopC,kBAAA;MACTxnB,MAAA;MACC,GAAGynB,gBAAA;MACJG,OAAS,EAAAR,gBAAA;MACTS,WAAa,EAAAZ;IAAA,CACf;EAAA,CACF,CAAA,EAEJ,CACER,WAAA,EACAc,qBAAA,EACAC,kBAAA,EACAC,gBAAA,EACAjzB,cAAA,EACA+J,QAAA,EACA1f,QAAA,EACAuoC,gBAAA,EACAH,oBAAA,EACAjnB,MAAA,EACAvB,QAAA,CACF,CACF;EAGA,MAAMqpB,UAAa,GAAAvnC,OAAA,CACjB,MACEsmC,MACE,IAAA,eAAA90B,GAAA,CAACm0B;IAAOl+B,SAAS,EAAA,IAAA;IAACE,aAAW,IAAC;IAAAE,YAAA,EAAY,IAAC;IAAA4X,MAAA;IAAgBhK,QAAO,QAAS;IAAArE,IAAA,EAAK;IAC9EH,QAAC,EAAA,eAAAO,GAAA,CAAA,MAAA,EAAA;MAAMP;IAAO,CAAA;GAChB,CAAA,EAEJ,CAACwO,QAAQ6mB,MAAM,CAAA,CACjB;EAEA,2BACG3lB,MAAK,EAAA;IAAA,SAAA,EAAQ,WAAY;IAAAvP,IAAA,EAAMD,UAAUC,IACvC;IAAAH,QAAA,EAAA,CAAA61B,UAAA,EAAA,oBAEA1B,SACC,EAAA;MAAAn0B,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACob,KAAA,EAAA;QACC,SAAQ,EAAA,OAAA;QACR,eAAazb,SAAU,CAAAD,MAAA;QACvB,aAAWC,SAAU,CAAAC,IAAA;QACpB,GAAGmQ,SAAA;QACJnF,SAAW,EAAA9d,QAAA;QACX+d,SAAW,EAAAmqB,QAAA;QACXlqB,YAAYmqB,aAAiB,IAAAF,eAAA;QAC7BhqB,QAAU,EAAA1e,OAAA;QACV4f,SAAStM,SAAU,CAAAD,MAAA;QACnBsL,MAAQ,EAAA5f,KAAA;QACR8gB,OAAOvM,SAAU,CAAAC,IAAA;QACjBlU,OAAS,EAAAokB,MAAA;QACTtD,QAAA;QACAE,QAAA;QACApK,GAAA;QACArd;MAAA,CACF,CAAA,EAECswC,gBAAA,EACAI,eAAA;KACH,CAAA,EAECI,UAAA;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;ACvXM,SAASC,gBACdC,YAC6D,EAAA;EAC7D,MAAM,CAACjS,KAAA,EAAOkS,QAAQ,CAAA,GAAI3mC,SAAS0mC,YAAY,CAAA;EAC/C,MAAME,gBAAgBxmC,MAAmC,EAAA;EAEzD,MAAMymC,aAAgB,GAAA5iB,WAAA,CAAY,CAACwT,SAAA,EAA8BqP,KAAmB,KAAA;IAClF,MAAMC,SAASA,CAAA,KAAM;MACnBJ,QAAA,CAASlP,SAAS,CAAA;IAAA,CACpB;IAGA,IAAImP,cAAcrmC,OAAS,EAAA;MACzBymC,YAAA,CAAaJ,cAAcrmC,OAAO,CAAA;MAClCqmC,aAAA,CAAcrmC,OAAU,GAAA,KAAA,CAAA;IAC1B;IAEA,IAAI,CAACumC,KAAA,EAAO,OAAOC,MAAO,CAAA,CAAA;IACZH,aAAA,CAAArmC,OAAA,GAAU0mC,UAAW,CAAAF,MAAA,EAAQD,KAAK,CAAA;EAClD,CAAA,EAAG,EAAE,CAAA;EAEE,OAAA,CAACrS,OAAOoS,aAAa,CAAA;AAC9B;AC1BO,MAAMK,2BAA8B,GAAA,EAAA;AACpC,MAAMC,4BAA+B,GAAA,CAAA;AACrC,MAAMC,4BAA+B,GAAA,CAAA;AAErC,MAAMC,wBAA2B,GAAA,CAAA;AACjC,MAAMC,uBAA0B,GAAA,CAAA;AAEhC,MAAMvL,2BAA8D,GAAA;EACzEl5B,KAAK,CAAC,SAAA,EAAW,WAAa,EAAA,QAAA,EAAU,QAAQ,OAAO,CAAA;EACvD,aAAa,CAAC,KAAA,EAAO,SAAW,EAAA,cAAA,EAAgB,cAAc,aAAa,CAAA;EAC3E,WAAW,CAAC,KAAA,EAAO,WAAa,EAAA,YAAA,EAAc,YAAY,WAAW,CAAA;EACrEE,QAAQ,CAAC,YAAA,EAAc,cAAgB,EAAA,KAAA,EAAO,QAAQ,OAAO,CAAA;EAC7D,gBAAgB,CAAC,QAAA,EAAU,YAAc,EAAA,WAAA,EAAa,cAAc,aAAa,CAAA;EACjF,cAAc,CAAC,QAAA,EAAU,cAAgB,EAAA,SAAA,EAAW,YAAY,WAAW,CAAA;EAC3ED,MAAM,CAAC,UAAA,EAAY,YAAc,EAAA,OAAA,EAAS,OAAO,QAAQ,CAAA;EACzD,cAAc,CAAC,MAAA,EAAQ,UAAY,EAAA,aAAA,EAAe,aAAa,cAAc,CAAA;EAC7E,YAAY,CAAC,MAAA,EAAQ,YAAc,EAAA,WAAA,EAAa,WAAW,YAAY,CAAA;EACvEE,OAAO,CAAC,WAAA,EAAa,aAAe,EAAA,MAAA,EAAQ,OAAO,QAAQ,CAAA;EAC3D,eAAe,CAAC,OAAA,EAAS,WAAa,EAAA,YAAA,EAAc,aAAa,cAAc,CAAA;EAC/E,aAAa,CAAC,OAAA,EAAS,aAAe,EAAA,UAAA,EAAY,WAAW,YAAY;AAC3E,CAAA;;;;;;ACtBA,IAAAG,IAAA;AAcA,MAAMu6B,aAAa7d,MAAO,CAAA8d,MAAA,CAAOrS,IAAI,CAAC,EAAnBnoB,IAAoB,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAKhC,MAAMgrB,WAAc,GAAA1J,IAAA,CACzB3d,UAAW,CAAA,SAASqnB,YAClBC,CAAAhsC,KAAA,EAcAuX,GACA,EAAA;EACM,MAAA;IACJnZ,OAAA;IACA+mB,KAAA;IACAsd,QAAA;IACAC,MAAA;IACAC,MAAA;IACAjuB,QAAA;IACA6gB,OAAA;IACAC,OAAA;IACAl0B,OAAA;IACAszB,SAAA;IACA1R,MAAA;IACAvO,MAAA;IACA2O,MAAA;IACA1kB,KAAA;IACA,GAAGomB;EACD,CAAA,GAAAhlB,KAAA;EAEJ,MAAM+iC,SAA2B,GAAAt/B,OAAA,CAC/B,OAAO;IACL8xB,OAAA;IACAC,OAAA;IACA,GAAG52B;EAAA,CACL,CAAA,EACA,CAAC22B,OAAS,EAAAC,OAAA,EAAS52B,KAAK,CAAA,CAC1B;EAEA,MAAMokC,UAA4B,GAAAv/B,OAAA,CAChC,OAAO;IACL6D,IAAA,EAAMo7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IACjCr7B,GAAA,EAAKs7B,MAAW,KAAA,IAAA,GAAOA,MAAS,GAAA,KAAA,CAAA;IAChCn7B,KAAO,EAAA,KAAA,CAAA;IACPD,MAAQ,EAAA,KAAA;EAAA,CACV,CAAA,EACA,CAACm7B,QAAQC,MAAM,CAAA,CACjB;EAGE,sBAAAha,IAAA,CAACuZ,UAAA,EAAA;IACC,SAAQ,EAAA,eAAA;IACP,GAAIld,SAAA;IACL,gBAAgB,EAAA4P,SAAA;IAChBtzB,OAAA;IACA4hB,MAAA;IACA3L,GAAA;IACA5C,MAAA;IACA2O,MAAA;IACA1kB,KAAO,EAAAmkC,SAAA;IACN,IAAI3kC,OAAU,GAAAJ,oBAAA,GAAuB,CAAC,CAAA;IAEtC0W,QAAA,EAAA,CAAAA,QAAA,EAEAyQ,KACC,mBAAAlQ,GAAA,CAACyR,KAAA,EAAA;MACCnP,GAAK,EAAAkrB,QAAA;MACL7jC,KAAO,EAAAokC,UAAA;MACP57B,KAAO,EAAAskC,2BAAA;MACPhqC,MAAQ,EAAAiqC,4BAAA;MACRzoB,MAAQ,EAAA0oB;IAAA,CACV,CAAA;EAAA,CAAA,CAEJ;AAAA,CAEH,CACH,CAAA;AAEAG,WAAA,CAAY9I,WAAc,GAAA,aAAA;ACnG1B,MAAMpkC,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,sCAAsC,CAAA;AAE7Dub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAoD,IAAI,CAAA;AAKlF,MAAA43B,wBAAA,GACX73B,YAAYvV,KAAG,CAAA;ACLV,SAASqtC,oBAA6DA,CAAA,EAAA;EACrE,MAAAxtC,KAAA,GAAQ+V,WAAWw3B,wBAAwB,CAAA;EAE1C,OAAAvtC,KAAA;AACT;ACiBO,SAASytC,0BACdnsC,KACoB,EAAA;EACd,MAAA;IAAC0U,QAAU;IAAA42B;EAAS,CAAA,GAAAtrC,KAAA;EAC1B,MAAM,CAACosC,aAAA,EAAeC,gBAAgB,CAAA,GAAIpB,gBAAgB,KAAK,CAAA;EAC/D,MAAM,CAACqB,aAAA,EAAeC,gBAAgB,CAAA,GAAItB,gBAA+B,IAAI,CAAA;EAE7E,MAAMuB,YAAY,OAAOlB,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOpH,IAAQ,KAAA,CAAA;EACrE,MAAMuI,aAAa,OAAOnB,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOoB,KAAS,KAAA,CAAA;EAEvE,MAAMhuC,KAAuC,GAAA+E,OAAA,CAC3C,OAAO;IACL2oC,aAAA;IACAC,gBAAA;IACAC,aAAA;IACAC,gBAAA;IAAA;IAEAC,SAAA,EAAWJ,gBAAgB,CAAI,GAAAI,SAAA;IAC/BC;EAAA,CACF,CAAA,EACA,CAACA,UAAY,EAAAL,aAAA,EAAeI,SAAW,EAAAF,aAAA,EAAeD,kBAAkBE,gBAAgB,CAAA,CAC1F;EAEA,OACG,eAAAt3B,GAAA,CAAAg3B,wBAAA,CAAyB/2B,QAAzB,EAAA;IAAkCxW;IAAegW;EAAS,CAAA,CAAA;AAE/D;;;;;;ACtDA,IAAA/M,IAAA;AAsFA,MAAMyc,MAAA,GAAOC,MAAO,CAAAqY,KAAK,CAAZ,CAAA/0B,IAAA,KAAAA,IAAA,GAAkCoZ,0DAEN,OAA1B,CAAA,CAAA,CAAA,EAAA4rB,KAAA;EAAA,IAAC;IAACC;EAAe,CAAA,GAAAD,KAAA;EAAA,OAAAC,SAAA;AAAA,EAAA;AAQzB,MAAMC,OAAU,GAAAnoB,UAAA,CAAW,SAASmoB,QAAAA,CACzC7sC,OACAuX,GACA,EAAA;EAnGF,IAAA5P,GAAA,EAAAO,EAAA,EAAA0Y,EAAA,EAAAwiB,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA;EAoGE,MAAMI,yBAAyB/L,kBAAmB,EAAA;EAC5C,MAAA;IAAC8L;GAAK,GAAIjuB,WAAY,EAAA;EACtB,MAAA;IACJrX,OAAU,GAAA,KAAA;IACV+mB,OAAOye,SAAY,GAAA,KAAA;IACnBt/B,kBAAkBq/B,sBAAwB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,sBAAA,CAAA9/B,OAAA;IAC1C6Q,QAAU,EAAAmvB,SAAA;IACVriC,OAAA;IACAigB,QAAA;IACAsiB,kBAAA,EAAoB+I,sBAAyB,GAAA,CAAA5kC,EAAA,GAAAlI,KAAA,CAAM+jC,kBAAN,KAAA,IAAA,GAAA77B,EAAA,GAC3Cq4B,2BAA4B54B,CAAAA,CAAAA,GAAAA,GAAA3H,KAAM,CAAA40B,SAAA,KAAN,IAAAjtB,GAAAA,GAAAA,GAAmB,QAAQ,CAAA;IACzDrG,OAAU,GAAA,CAAA;IACVszB,WAAWuP,aAAgB,GAAA,QAAA;IAC3BjH,MAAQ,EAAA6P,UAAA;IACR7pB,MAAS,GAAA,CAAA;IACTvO,MAAA;IACA2O,MAAS,GAAA,CAAA;IACT8X,OAAA,GAAUsI,MAAMsJ,OAAQ,CAAA5R,OAAA;IACxBkQ,KAAA;IACA,GAAGtmB;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA+jC,kBAAA,GAAqBxgC,aAAaupC,sBAAsB,CAAA;EACxD,MAAAvc,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC+sB,gBAAA,EAAkB2I,mBAAmB,CAAA,GAAIzoC,SAA6B,IAAI,CAAA;EAC3E,MAAAi+B,QAAA,GAAW79B,OAA8B,IAAI,CAAA;EACnD,MAAMq8B,YAA6B,GAAA,UAAA;EAEnC,MAAM/D,SAASF,SAAU,EAAA;EACnB,MAAAG,aAAA,GACJ,OAAO4P,UAAe,KAAA,QAAA,GAAA,CAAA,CAAWnsB,YAAOnc,QAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAmc,EAAA,CAAkBmsB,UAAe,CAAA,KAAA,IAAA,GAAO7P,MAAO,CAAAr5B,OAAA;EAK5E,MAAAqpC,YAAA,GAAezpC,QAAQ,MAAM;IACjC,MAAM0pC,eAAkB,GAAA,CACtB,IAAI7oC,eAAkB,GAAA,CAACA,eAAgB,CAAA6D,WAAW,IAAI,EAAC,GACvD,CAAAg1B,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAeh1B,WAAe,KAAA7B,QAAA,CAAS0K,IAAK,CAAA7I,WAAA,CAC9C;IAEA,OAAOzF,IAAK,CAAAmZ,GAAA,CAAI,GAAGsxB,eAAe,IAAIrB,uBAA0B,GAAA,CAAA;EAAA,CAC/D,EAAA,CAACxnC,eAAiB,EAAA64B,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,aAAA,CAAeh1B,WAAW,CAAC,CAAA;EAE1C,MAAA88B,UAAA,GAAaxhC,QAAQ,MAAM;IAC/B,MAAMM,MAAoB,EAAC;IAGvBA,GAAA,CAAAE,IAAA,CACFihC,IAAK,CAAA;MACHnE,UAAUz8B,eAAmB,IAAA,KAAA,CAAA;MAC7By/B,kBAAA;MACAziC,OAAS,EAAAwqC,uBAAA;MACT7K;IAAA,CACD,CAAA,CACH;IAGAl9B,GAAA,CAAIE,KAAKoX,MAAO,CAAA;MAAC8pB,QAAU,EAAA0G;IAAyB,CAAA,CAAC,CAAA;IAGjD9nC,GAAA,CAAAE,IAAA,CACFmxB,KAAM,CAAA;MACJ2L,UAAUz8B,eAAmB,IAAA,KAAA,CAAA;MAC7B28B,YAAA;MACA3/B,OAAS,EAAAwqC;IAAA,CACV,CAAA,CACH;IAGA,IAAIlI,SAAW,EAAA;MACT7/B,GAAA,CAAAE,IAAA,CAAKkhB,MAAM;QAACthB,OAAA,EAAS4+B;QAAUnhC,OAAS,EAAAwqC;MAAwB,CAAA,CAAC,CAAA;IACvE;IAIA,IAAI1tC,OAAS,EAAA;MACX2F,GAAA,CAAIE,KAAKuwB,MAAM,CAAA;IACjB;IAEO,OAAAzwB,GAAA;KACN,CAAC3F,OAAA,EAASwlC,SAAW,EAAAt/B,eAAA,EAAiBy/B,kBAAkB,CAAC,CAAA;EAE5D,MAAM;IAACqJ,cAAgB;IAAAxY,SAAA;IAAWD;IAAgB6Q,IAAM;IAAAC;MAAUC,WAAY,CAAA;IAC5ET,UAAA;IACArQ,SAAW,EAAAuP,aAAA;IACXwB,oBAAsB,EAAAC;EAAA,CACvB,CAAA;EAEK,MAAAlD,MAAA,GAAA,CAASU,EAAe,GAAAzO,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAie,EAAA,CAAAl8B,CAAA;EAC/B,MAAAy7B,MAAA,GAAA,CAASU,EAAe,GAAA1O,cAAA,CAAAxP,KAAA,KAAf,IAAsB,GAAA,KAAA,CAAA,GAAAke,EAAA,CAAAl8B,CAAA;EAErC,MAAMouB,OAAU,GAAA,CAAA+N,EAAA,GAAA3O,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAA2O,EAAA,CAAA/N,OAAA;EACrD,MAAMC,OAAU,GAAA,CAAA+N,EAAA,GAAA5O,cAAA,CAAe,mBAAmB,CAAA,KAAlC,IAAqC,GAAA,KAAA,CAAA,GAAA4O,EAAA,CAAA/N,OAAA;EAErD,MAAM6X,YAAYplB,KAAM,EAAA;EACxB,MAAM,CAACqlB,MAAA,EAAQC,SAAS,CAAA,GAAItC,gBAAgB,KAAK,CAAA;EACjD,MAAMuC,oBAAoBtB,oBAAqB,EAAA;EACzC,MAAAuB,WAAA,GAAcH,MAAU,IAAA,CAAAE,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,iBAAA,CAAmBlB,aAAkB,MAAAe,SAAA;EAEnE,MAAMK,gBAAgBF,iBAAsB,KAAA,IAAA;EAC5C,MAAMG,gBAAgB,OAAOrC,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOpH,IAAQ,KAAA,CAAA;EACzE,MAAM0J,iBAAiB,OAAOtC,KAAA,KAAU,QAAW,GAAAA,KAAA,GAAA,CAAQA,+BAAOoB,KAAS,KAAA,CAAA;EAErE,MAAAF,SAAA,GAAYkB,aAAgB,GAAAF,iBAAA,CAAkBhB,SAAY,GAAAmB,aAAA;EAC1D,MAAAlB,UAAA,GAAaiB,aAAgB,GAAAF,iBAAA,CAAkBf,UAAa,GAAAmB,cAAA;EAElE,MAAMC,kBAAqB,GAAAplB,WAAA,CACzB,CAACyb,MAAe4J,SAAwB,KAAA;IACtC,IAAIJ,aAAe,EAAA;MAEjB,IAAIxJ,IAAM,EAAA;QACF,MAAA6J,gBAAA,GAAmBD,YAAY,CAAI,GAAAtB,SAAA;QAEvBgB,iBAAA,CAAAnB,gBAAA,CAAiBnI,MAAM6J,gBAAgB,CAAA;QACvCP,iBAAA,CAAAjB,gBAAA,CAAiBc,WAAWU,gBAAgB,CAAA;MAAA,CACzD,MAAA;QACL,MAAMC,2BAA8B,GAAA,GAAA;QAC9B,MAAAC,oBAAA,GACJxB,UAAa,GAAAuB,2BAAA,GAA8BvB,UAAa,GAAAuB,2BAAA;QAExCR,iBAAA,CAAAnB,gBAAA,CAAiBnI,MAAM+J,oBAAoB,CAAA;QAC7DT,iBAAA,CAAkBjB,gBAAiB,CAAA,IAAA,EAAMuB,SAAY,GAAA,CAAA,GAAIrB,UAAU,CAAA;MACrE;IAAA,CACK,MAAA;MACL,MAAMyB,eAAkB,GAAAJ,SAAA,GAAY,CAAI,GAAA5J,IAAA,GAAOsI,SAAY,GAAAC,UAAA;MAG3Dc,SAAA,CAAUrJ,MAAMgK,eAAe,CAAA;IACjC;EACF,CAAA,EACA,CAACR,aAAe,EAAAF,iBAAA,EAAmBhB,SAAW,EAAAa,SAAA,EAAWZ,YAAYc,SAAS,CAAA,CAChF;EAEA,MAAMY,UAAa,GAAA1lB,WAAA,CAChB/rB,CAAkB,IAAA;IA1OvB,IAAAiL,GAAAO,EAAAA,GAAAA;IA2OM2lC,kBAAA,CAAmB,KAAK,CAAA;IACxB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkBymC,MAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAlmC,GAAA,CAAAgG,IAAA,CAAAvG,GAA2B,EAAAjL,CAAA,CAAA;EAC7B,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMQ,WAAc,GAAA5lB,WAAA,CACjB/rB,CAAkB,IAAA;IAjPvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAkPM2lC,kBAAA,CAAmB,KAAO,EAAA,IAAI,CAAsB;IACpD3lC,CAAAA,GAAAA,GAAA27B,8BAAAl8B,GAAA,GAAAk8B,SAAA,CAAW7jC,OAAM8qC,OAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA5iC,GAAA,CAAAgG,IAAA,CAAAvG,GAA2B,EAAAjL,CAAA,CAAA;EAC7B,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMS,iBAAoB,GAAA7lB,WAAA,CACvB/rB,CAAkB,IAAA;IAxPvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAyPM2lC,kBAAA,CAAmB,KAAO,EAAA,IAAI,CAAsB;IACpD3lC,CAAAA,GAAAA,GAAA27B,8BAAAl8B,GAAA,GAAAk8B,SAAA,CAAW7jC,OAAMuuC,aAAjB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAArmC,GAAA,CAAAgG,IAAA,CAAAvG,GAAiC,EAAAjL,CAAA,CAAA;EACnC,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMrR,WAAc,GAAA/T,WAAA,CACjB/rB,CAAkB,IAAA;IA/PvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAgQM2lC,kBAAA,CAAmB,IAAI,CAAA;IACvB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkBy0B,OAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAl0B,GAAA,CAAAgG,IAAA,CAAAvG,GAA4B,EAAAjL,CAAA,CAAA;EAC9B,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMW,gBAAmB,GAAA/lB,WAAA,CACtB/rB,CAAkB,IAAA;IAtQvB,IAAAiL,GAAAO,EAAAA,GAAAA;IAuQM2lC,kBAAA,CAAmB,IAAI,CAAA;IACvB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkB8mC,YAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAvmC,GAAA,CAAAgG,IAAA,CAAAvG,GAAiC,EAAAjL,CAAA,CAAA;EACnC,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EACA,MAAMa,gBAAmB,GAAAjmB,WAAA,CACtB/rB,CAAkB,IAAA;IA7QvB,IAAAiL,GAAAO,EAAAA,GAAAA;IA8QM2lC,kBAAA,CAAmB,KAAK,CAAA;IACxB3lC,CAAAA,GAAAA,GAAAA,CAAAP,GAAA,GAAAk8B,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAW7jC,KAAX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA2H,IAAkBgnC,YAAlB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAAzmC,GAAA,CAAAgG,IAAA,CAAAvG,GAAiC,EAAAjL,CAAA,CAAA;EACnC,CAAA,EACA,CAACmnC,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA7jC,KAAA,EAAO6tC,kBAAkB,CAAA,CACvC;EAKAhpC,SAAA,CAAU,MAAM;IACd,IAAI,CAAC4oC,WAAA,EAAa;IAElB,SAASmB,sBAAsBzoC,KAAmB,EAAA;MAChD,IAAI,CAACm+B,gBAAA,EAAkB;MAEjB,MAAAuK,mBAAA,GACJvK,gBAAqB,KAAAn+B,KAAA,CAAMf,MAC1B,IAAAe,KAAA,CAAMf,kBAAkBC,IAAQ,IAAAi/B,gBAAA,CAAiBh/B,QAAS,CAAAa,KAAA,CAAMf,MAAM,CAAA;MAEzE,IAAI,CAACypC,mBAAqB,EAAA;QACxBhB,kBAAA,CAAmB,KAAK,CAAA;QACjBtoC,MAAA,CAAAE,mBAAA,CAAoB,aAAampC,qBAAqB,CAAA;MAC/D;IACF;IAEOrpC,MAAA,CAAAC,gBAAA,CAAiB,aAAaopC,qBAAqB,CAAA;IAE1D,OAAO,MAAM;MACJrpC,MAAA,CAAAE,mBAAA,CAAoB,aAAampC,qBAAqB,CAAA;IAAA,CAC/D;EACC,CAAA,EAAA,CAACnB,WAAa,EAAAnJ,gBAAA,EAAkBuJ,kBAAkB,CAAC,CAAA;EAGtDhpC,SAAA,CAAU,MAAM;IACd,IAAI4c,QAAY,IAAAgsB,WAAA,EAAaI,kBAAA,CAAmB,KAAK,CAAA;EACpD,CAAA,EAAA,CAACpsB,QAAU,EAAAosB,kBAAA,EAAoBJ,WAAW,CAAC,CAAA;EAG9C5oC,SAAA,CAAU,MAAM;IACd,IAAI,CAACrD,OAAW,IAAAisC,WAAA,EAAaI,kBAAA,CAAmB,KAAK,CAAA;EACpD,CAAA,EAAA,CAACrsC,OAAS,EAAAqsC,kBAAA,EAAoBJ,WAAW,CAAC,CAAA;EAGnC5oC,SAAA,CAAA,MAAM2gC,KAAKS,YAAa,CAAA3B,gBAAgB,GAAG,CAACA,gBAAA,EAAkBkB,IAAI,CAAC,CAAA;EAE7E3gC,SAAA,CAAU,MAAM;IAEd,IAAI,CAAC4oC,WAAA,EAAa;IAElB,SAASqB,oBAAoB3oC,KAAsB,EAAA;MAC7C,IAAAA,KAAA,CAAMtH,QAAQ,QAAU,EAAA;QAC1BgvC,kBAAA,CAAmB,OAAO,IAAI,CAAA;MAChC;IACF;IAEOtoC,MAAA,CAAAC,gBAAA,CAAiB,WAAWspC,mBAAmB,CAAA;IAEtD,OAAO,MAAM;MACJvpC,MAAA,CAAAE,mBAAA,CAAoB,WAAWqpC,mBAAmB,CAAA;IAAA,CAC3D;EAAA,CACC,EAAA,CAACjB,kBAAoB,EAAAJ,WAAW,CAAC,CAAA;EACpC,MAAM3H,QAAW,GAAArd,WAAA,CACdsd,OAAmC,IAAA;IAClCtD,QAAA,CAAS19B,OAAU,GAAAghC,OAAA;IACZN,MAAA,EAAA;EACT,CAAA,EACA,CAACA,MAAM,CAAA,CACT;EAEA,MAAMO,WAAc,GAAAvd,WAAA,CACjBxb,IAAgC,IAAA;IAC/BsjB,YAAA,CAAaxrB,OAAU,GAAAkI,IAAA;IACvBu4B,IAAA,CAAKQ,YAAY/4B,IAAI,CAAA;EACvB,CAAA,EACA,CAACsjB,cAAciV,IAAI,CAAA,CACrB;EAEA,MAAMU,WAA8CrC,SAAmB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAAtsB,GAAA;EAEvE,MAAM0uB,YAAe,GAAAxd,WAAA,CAClBxb,IAA6B,IAAA;IACxB,IAAA,OAAOi5B,aAAa,UAAY,EAAA;MAClCA,QAAA,CAASj5B,IAAI,CAAA;eACJi5B,QAAU,EAAA;MACnBA,QAAA,CAASnhC,OAAU,GAAAkI,IAAA;IACrB;IAGAggC,mBAAA,CAAoBhgC,IAAI,CAAA;EAC1B,CAAA,EACA,CAACi5B,QAAQ,CAAA,CACX;EAEM,MAAA7b,KAAA,GAAQ5mB,QAAQ,MAAM;IAC1B,IAAI,CAACogC,SAAA,EAAkB,OAAA,IAAA;IAEvB,OAAOnZ,aAAamZ,SAAW,EAAA;MAC7BuK,MAAQ,EAAAD,UAAA;MACR/R,OAAS,EAAAI,WAAA;MACTiS,YAAc,EAAAD,gBAAA;MACdG,YAAc,EAAAD,gBAAA;MACd5D,OAAS,EAAAuD,WAAA;MACTE,aAAe,EAAAD,iBAAA;MACf/2B,GAAK,EAAA0uB;IAAA,CACN,CAAA;EAAA,CACA,EAAA,CACDpC,SAAA,EACAsK,UAAA,EACAE,WAAA,EACAC,iBAAA,EACA9R,WAAA,EACAgS,gBAAA,EACAE,gBAAA,EACAzI,YAAA,CACD,CAAA;EAED,IAAI,CAAC5b,KAAA,EAAO,sBAASpV,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAA,CAAA;EAEjB,IAAA4mB,QAAA,EAAiB,OAAA4I,KAAA;EAErB,MAAM2iB,OACJ,GAAA,eAAA/3B,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAGY,SAAA;IACJzN,GAAK,EAAAyuB,WAAA;IACLpnC,KAAO,EAAAwuC,cAAA;IACPhS,OAAA;IACAwR,SAAW,EAAAM,YAAA;IAEXx4B,QAAA,iBAAAO,GAAA,CAAC82B,WAAA,EAAA;MACE,GAAG/mB,SAAA;MACJ5mB,OAAA;MACA+mB,KAAO,EAAAye,SAAA;MACPnB,QAAU,EAAAqD,QAAA;MACVpD,MAAA;MACAC,MAAA;MACApN,OAAA;MACAC,OAAA;MACAl0B,OAAA;MACAszB,SAAA;MACA1R,MAAA;MACA3L,GAAK,EAAAyuB,WAAA;MACLrxB,MAAA;MACA2O,MAAA;MAEC5O,QAAA,EAAAlT;IAAA,CACH;EAAA,CAAA,CACF;EAGF,sBAGImnB,IAAA,CAAA9tB,QAAA,EAAA;IAAA6Z,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC4iB,kBAAA,EAAA;MACCE,SAAW,EAAA35B,OAAA;MACX45B,OAAS,EAACtjB,QAAa,IAAA,eAAAO,GAAA,CAACmxB;QAAiB1xB;MAAS,CAAA,CAAA;MAEjDA,QACC,EAAA+4B,WAAA,IAAA,eAAAx4B,GAAA,CAAC4iB,kBAAA,EAAA;QACCE,SAAA,EAAW,CAAC,CAACgV,UAAA;QACb/U,OAAA,EAAUtjB,QAAA,IAAA,eACPO,GAAA,CAAAja,MAAA,EAAA;UAAOiiC,eAAiB,EAAA,OAAO8P,UAAe,KAAA,QAAA,GAAWA,UAAa,GAAA,KAAA,CAAA;UACpEr4B;QACH,CAAA,CAAA;QAGDA,QAAA,EAAAs4B;MAAA,CACH;IAAA,CAEJ,CAAA,EAGC3iB,KAAA;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC7bD,IAAA1iB,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA;AAOa,MAAAhf,MAAA,GAAOC,MAAO,CAAAC,GAAA,CAAP3c,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;AAOvB,MAAMguB,OAAU,GAAA1qB,MAAA,CAAOuG,GAAG,CAAA,CAAV1iB,IAAW,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,6EAAA,CAAA,CAAA,CAAA,CAAA;AAQlC,MAAM6K,SAASC,SAAS,CAAAjL,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,gGAAA,CAAA,CAAA,CAAA,CAAA;AAajB,MAAMiuB,sBAAsB3qB,MAAO,CAAA0H,WAAW,CAAlB,CAAAqX,IAAA,KAAAA,IAAA,GAAmBriB,iCACjC,2BAAN,CAAA,CAAA,CAAA,EAAA6K,MAAA,CAAA;ACzBR,SAASqjB,mBAAmBjvC,KAAoD,EAAA;EACrF,MAAM;IAAC0U,QAAU;IAAAmU,EAAA;IAAIqmB,QAAU;IAAAjgB,QAAA;IAAUvwB;EAAS,CAAA,GAAAsB,KAAA;EAE5C,MAAAquC,WAAA,GAAc5lB,YAAY,MAAM;IAGpCgjB,UAAA,CAAW,MAAM;MACfyD,QAAA,CAASxwC,KAAK,CAAA;OACb,CAAC,CAAA;EAAA,CACH,EAAA,CAACwwC,QAAU,EAAAxwC,KAAK,CAAC,CAAA;EAEpB,MAAMywC,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA8C,IAAA;IAC7C,IAAIA,MAAMtH,GAAQ,KAAA,OAAA,IAAW,CAAC+6B,sBAAuB,CAAAzzB,KAAA,CAAMipC,aAAa,CAAG,EAAA;MAC7Df,WAAA,EAAA;IACd;EACF,CAAA,EACA,CAACA,WAAW,CAAA,CACd;EAGE,sBAAAp5B,GAAA,CAAC,IAAA,EAAA;IACC,eAAe,EAAAga,QAAA;IACf,SAAQ,EAAA,oBAAA;IACRpG,EAAA;IACAwmB,IAAK,EAAA,QAAA;IACLvE,OAAS,EAAAuD,WAAA;IACTr6B,SAAW,EAAAm7B,aAAA;IAEVz6B;EAAA,CAAA,CACH;AAEJ;ACtCgB,SAAA46B,mBAAAA,CACdrW,OACAhzB,GACmB,EAAA;EACf,IAAAA,GAAA,CAAI/L,SAAS,cAAgB,EAAA;IACxB,OAAA;MAAC,GAAG++B,KAAO;MAAAsW,WAAA,EAAa;MAAMC,OAAS,EAAA,IAAA;MAAMC,KAAO,EAAAxpC,GAAA,CAAIwpC;KAAK;EACtE;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,aAAe,EAAA;IAC9B,OAAO;MAAC,GAAG++B,KAAO;MAAAuW,OAAA,EAAS;IAAI,CAAA;EACjC;EAEI,IAAAvpC,GAAA,CAAI/L,SAAS,WAAa,EAAA;IAC5B,OAAO;MAAC,GAAG++B,KAAA;MAAOuW,OAAS,EAAA,KAAA;MAAOC,OAAO;KAAI;EAC/C;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,YAAc,EAAA;IACtB,OAAA;MAAC,GAAG++B,KAAO;MAAAsW,WAAA,EAAa;MAAME,KAAO,EAAA,IAAA;MAAM/wC,OAAO;KAAI;EAC/D;EAEI,IAAAuH,GAAA,CAAI/L,SAAS,aAAe,EAAA;IAC9B,OAAO;MAAC,GAAG++B,KAAA;MAAOuW,OAAS,EAAA,KAAA;MAAOC,OAAO;KAAI;EAC/C;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,WAAa,EAAA;IAC5B,OAAO;MAAC,GAAG++B,KAAA;MAAOwW,OAAOxW,KAAM,CAAAwW,KAAA,IAASxpC,IAAIwpC;KAAK;EACnD;EAEI,IAAAxpC,GAAA,CAAI/L,SAAS,qBAAuB,EAAA;IAC/B,OAAA;MAAC,GAAG++B,KAAA;MAAOsW,WAAa,EAAAtpC,GAAA,CAAIvH;MAAOgxC,WAAa,EAAAzpC,GAAA,CAAIypC,WAAe,IAAAzW,KAAA,CAAMyW;IAAW,CAAA;EAC7F;EAEI,IAAAzpC,GAAA,CAAI/L,SAAS,qBAAuB,EAAA;IACtC,OAAO;MAAC,GAAG++B,KAAO;MAAAyW,WAAA,EAAazpC,IAAIypC;IAAW,CAAA;EAChD;EAEI,IAAAzpC,GAAA,CAAI/L,SAAS,cAAgB,EAAA;IACxB,OAAA;MAAC,GAAG++B,KAAA;MAAOsW,WAAa,EAAAtpC,GAAA,CAAIvH;MAAO+wC,KAAO,EAAA,IAAA;MAAM/wC,KAAO,EAAAuH,GAAA,CAAIvH;IAAK,CAAA;EACzE;EAEO,OAAAu6B,KAAA;AACT;ACzCO,MAAM0W,gCAAmC,GAAA,CAC9C,SAAA,EACA,OAAA,EACA,KAAA,EACA,OAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACA,UAAA,EACA,MAAA,EACA,KAAA,EACA,UAAA,CACF;AAKO,MAAMC,8BAA4C,GAAA,cAAA;AAK5C,MAAAC,wCAAA,GAAwD,CAAC,cAAA,EAAgB,WAAW,CAAA;AC+DjG,MAAMC,uBAAuBA,CAACpxC,KAAA,EAAeqxC,MAC3C,KAAAA,MAAA,GAASA,OAAOrxC,KAAQ,GAAAA,KAAA;AAE1B,MAAMsxC,qBAAwB,GAAAA,CAACP,KAAe,EAAAM,MAAA,KAC5CA,MAAO,CAAArxC,KAAA,CAAMuxC,WAAY,EAAA,CAAE39B,OAAQ,CAAAm9B,KAAA,CAAMQ,WAAY,EAAC,CAAI,GAAA,CAAA,CAAA;AAE5D,MAAMC,iBAAoB,GAAAxrB,UAAA,CAAW,SAASwrB,kBAAAA,CAG5ClwC,OAsBAuX,GACA,EAAA;EACM,MAAA;IACJpE,MAAS,GAAA,IAAA;IACTuE,cAAA;IACA+J,QAAA;IACA0uB,YAAc,EAAAC,gBAAA;IACdruC,QAAW,GAAA,CAAA;IACX+qB,IAAA;IACAjE,EAAA;IACAwnB,OAAU,GAAAtyC,YAAA;IACVywB,OAAA;IACA4f,MAAA;IACA9P,QAAA;IACAlC,OAAA;IACAkU,aAAA;IACApB,QAAA;IACAqB,UAAA;IACAv+B,OAAS,EAAAw+B,WAAA;IACTlvC,SAASmtB,WAAc,GAAA,CAAA;IACvBgW,OAAU,GAAA1mC,YAAA;IACV+rC,MAAA;IACA5mB,MAAS,GAAA,CAAA;IACTvB,QAAA;IACA8uB,eAAA;IACAC,YAAc,EAAAC,gBAAA;IACdC,aAAA;IACAC,WAAc,GAAAf,oBAAA;IACd/F,MAAA;IACArrC,KAAO,EAAAoyC,SAAA;IACP,GAAG9rB;EACD,CAAA,GAAAhlB,KAAA;EAEJ,MAAM,CAACi5B,KAAA,EAAO8X,QAAQ,CAAA,GAAIC,WAAW1B,mBAAqB,EAAA;IACxDC,aAAauB,SAAa,IAAA,IAAA;IAC1BtB,OAAS,EAAA,KAAA;IACTE,WAAa,EAAA,KAAA;IACbD,KAAO,EAAA,IAAA;IACP/wC,OAAOoyC,SAAa,IAAA;EAAA,CACrB,CAAA;EAED,MAAM;IAACvB,WAAa;IAAAC,OAAA;IAASE,WAAa;IAAAD,KAAA;IAAO/wC;EAAS,CAAA,GAAAu6B,KAAA;EAE1D,MAAMgY,mBAAsB,GAAAxoB,WAAA,CAC1ByoB,KAAA;IAAA,IAAC;MAACxyC,KAAAA,EAAAA;;0BACCuW,GAAA,CAAA6a,IAAA,EAAA;MAAK,SAAQ,EAAA,QAAA;MAASxuB,OAAS,EAAAmtB,WAAA;MAAavL,QAAQ,CAAG;MAAArO,IAAA,EAAK,SAC3D;MAAAH,QAAA,EAAA,eAAAO,GAAA,CAACmW,IAAK,EAAA;QAAAppB,IAAA,EAAMD;QAAU+iB,YAAa,EAAA,UAAA;QAChCpQ,QAAAhW,EAAAA;MAAAA,CACH;IACF,CAAA,CAAA;EAAA,GAEF,CAACqD,UAAU0sB,WAAW,CAAA,CACxB;EAEA,MAAMiiB,YACJ,GAAA,OAAOC,gBAAqB,KAAA,UAAA,GAAaA,gBAAmB,GAAAM,mBAAA;EAE9D,MAAMd,YACJ,GAAA,OAAOC,gBAAqB,KAAA,UAAA,GAAaA,gBAAmB,GAAAJ,qBAAA;EAGxD,MAAAmB,cAAA,GAAiBvsC,OAA8B,IAAI,CAAA;EACnD,MAAAwsC,wBAAA,GAA2BxsC,OAA8B,IAAI,CAAA;EAC7D,MAAAysC,eAAA,GAAkBzsC,OAAgC,IAAI,CAAA;EACtD,MAAA0sC,iBAAA,GAAoB1sC,OAA8B,IAAI,CAAA;EAGtD,MAAA2sC,cAAA,GAAiB3sC,OAAO,KAAK,CAAA;EAC7B,MAAA04B,QAAA,GAAW14B,OAAOlG,KAAK,CAAA;EACvB,MAAA8yC,YAAA,GAAe5sC,OAAOksC,SAAS,CAAA;EAC/B,MAAAW,qBAAA,GAAwB7sC,OAAO,KAAK,CAAA;EAEpC,MAAA2rB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAElC,MAAAm6B,SAAA,GAAY,GAAG1yC,MAAE,CAAA6pB,EAAA,EAAA,UAAA,CAAA;EACvB,MAAM7W,OAAU,GAAApS,KAAA,CAAMC,OAAQ,CAAA2wC,WAAW,IAAIA,WAAc,GAAA1yC,WAAA;EACrD,MAAAwD,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EACxC,MAAMkjB,aAAgB,GAAAluC,OAAA,CACpB,MAAO/E,KAAU,KAAA,IAAA,GAAOsT,OAAQ,CAAA4/B,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,KAAU,KAAAA,KAAK,CAAI,GAAA,KAAA,CAAA,EACjE,CAACsT,SAAStT,KAAK,CAAA,CACjB;EACA,MAAMozC,eAAkB,GAAAruC,OAAA,CACtB,MAAMuO,OAAQ,CAAA9N,MAAA,CAAQ6rC,MAAA,IAAYN,QAAQU,YAAa,CAAAV,KAAA,EAAOM,MAAM,CAAA,GAAI,IAAK,CAAA,EAC7E,CAACI,YAAc,EAAAn+B,OAAA,EAASy9B,KAAK,CAAA,CAC/B;EACA,MAAMsC,qBAAqBD,eAAgB,CAAA3xC,MAAA;EAC3C,MAAM6xC,YAAe,GAAAzC,WAAA,GAAc,EAAG,CAAAvwC,MAAA,CAAA6pB,EAAA,EAAE,YAAW7pB,MAAgB,CAAAuwC,WAAA,CAAA,GAAA,KAAA,CAAA;EACnE,MAAM0C,QAAY,GAAAxC,KAAA,KAAU,IAAQ,IAAAjhB,OAAA,IAAaghB,WAAWC,KAAU,KAAA,IAAA;EAEtE,MAAMyC,cAAiB,GAAAzpB,WAAA,CACpBtiB,KAAwC,IAAA;IACvCslC,UAAA,CAAW,MAAM;MAIf,IAAIgG,sBAAsB1sC,OAAS,EAAA;QACjC;MACF;MAEM,MAAAN,QAAA,GAAA,CAA2BgsC,eAAmB,IAAA,EAAI,EAAAzxC,MAAA,CACtDmyC,eAAepsC,OAAU,GAAA,CAACosC,cAAe,CAAApsC,OAAO,IAAI,EAAC,EACrDqsC,yBAAyBrsC,OAAU,GAAA,CAACqsC,wBAAyB,CAAArsC,OAAO,IAAI,EAAC,CAC3E;MAEA,IAAIotC,WAAc,GAAA,KAAA;MAElB,IAAI7rC,SAASk0B,aAAe,EAAA;QAC1B,KAAA,MAAW99B,KAAK+H,QAAU,EAAA;UACxB,IAAI/H,MAAM4J,QAAS,CAAAk0B,aAAA,IAAiB99B,EAAE4I,QAAS,CAAAgB,QAAA,CAASk0B,aAAa,CAAG,EAAA;YACxD2X,WAAA,GAAA,IAAA;YACd;UACF;QACF;MACF;MAEA,IAAIA,gBAAgB,KAAO,EAAA;QAChBpB,QAAA,CAAA;UAAC72C,IAAM,EAAA;QAAA,CAAY,CAAA;QAC5Bu3C,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;QAC5B,IAAAurC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;QACjC,IAAAlC,MAAA,EAAQA,MAAA,CAAOjoC,KAAK,CAAA;MAC1B;OACC,CAAC,CAAA;EACN,CAAA,EACA,CAACioC,MAAQ,EAAAkC,aAAA,EAAeG,eAAe,CAAA,CACzC;EAEM,MAAA2B,eAAA,GAAkB3pB,WAAY,CAACtiB,KAAsC,IAAA;IACzE,MAAMksC,iBAAiBf,iBAAkB,CAAAvsC,OAAA;IACzC,MAAMutC,cAAiB,GAAAnsC,KAAA,CAAMf,MAAkB,YAAA65B,WAAA,GAAc94B,MAAMf,MAAS,GAAA,IAAA;IACtEsqC,MAAAA,YAAAA,GAAAA,CAAc2C,cAAgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,cAAA,CAAA/sC,QAAA,CAASgtC,cAAmB,CAAA,KAAA,KAAA;IAE5D5C,IAAAA,YAAAA,KAAgB6B,eAAexsC,OAAS,EAAA;MAC1CwsC,cAAA,CAAexsC,OAAU2qC,GAAAA,YAAAA;MAEzBqB,QAAA,CAAS;QAAC72C,IAAA,EAAM,qBAAuB;QAAAw1C,WAAA,EAAAA;MAAY,CAAA,CAAA;IACrD;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM6C,kBAAqB,GAAA9pB,WAAA,CACxBnrB,CAAc,IAAA;IApQnB,IAAAqK,EAAA;IAqQMopC,QAAA,CAAS;MAAC72C,IAAA,EAAM,cAAgB;MAAAwE,KAAA,EAAOpB;IAAE,CAAA,CAAA;IAEzCm0C,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;IAE5B,IAAAmqC,QAAA,EAAUA,QAAA,CAAS5xC,CAAC,CAAA;IAExBggC,QAAA,CAASv4B,OAAU,GAAAzH,CAAA;IAEf,IAAAghC,QAAA,EAAUA,QAAA,CAAShhC,CAAC,CAAA;IACpB,IAAAgzC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;IAErC,CAAA3oC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;EAC3B,CAAA,EACA,CAACwD,QAAU,EAAA4Q,QAAA,EAAUoB,aAAa,CAAA,CACpC;EAEA,MAAMkC,iBAAoB,GAAA/pB,WAAA,CACvBtiB,KAAsC,IAAA;IAtR3C,IAAAwB,EAAA,EAAAO,EAAA;IAuRU,IAAA/B,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,IAAI,CAAC2H,kBAAA,EAAoB;MAEzB,MAAMU,eAAeX,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,UAAU6wC,WAAW,CAAA;MACxE,MAAMmD,WAAc,GAAAD,YAAA,GAAeX,eAAgB,CAAAx/B,OAAA,CAAQmgC,YAAY,CAAI,GAAA,CAAA,CAAA;MAC3E,MAAME,gBAAmB,GAAAb,eAAA,CAAA,CAAiBY,WAAc,GAAA,CAAA,IAAKX,kBAAkB,CAAA;MAE/E,IAAIY,gBAAkB,EAAA;QACX5B,QAAA,CAAA;UAAC72C,MAAM,qBAAuB;UAAAwE,KAAA,EAAOi0C,iBAAiBj0C,KAAO;UAAAgxC,WAAA,EAAa;SAAK,CAAA;MAC1F;MAEA;IACF;IAEI,IAAAvpC,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,IAAI,CAAC2H,kBAAA,EAAoB;MAEzB,MAAMU,eAAeX,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,UAAU6wC,WAAW,CAAA;MACxE,MAAMmD,WAAc,GAAAD,YAAA,GAAeX,eAAgB,CAAAx/B,OAAA,CAAQmgC,YAAY,CAAI,GAAA,CAAA,CAAA;MACrE,MAAAE,gBAAA,GACJb,gBACEY,WAAgB,KAAA,CAAA,CAAA,GACZX,qBAAqB,CACpB,GAAA,CAAAA,kBAAA,GAAqBW,WAAc,GAAA,CAAA,IAAKX,kBAC/C,CAAA;MAEF,IAAIY,gBAAkB,EAAA;QACX5B,QAAA,CAAA;UAAC72C,MAAM,qBAAuB;UAAAwE,KAAA,EAAOi0C,iBAAiBj0C,KAAO;UAAAgxC,WAAA,EAAa;SAAK,CAAA;MAC1F;MAEA;IACF;IAEI,IAAAvpC,KAAA,CAAMtH,QAAQ,QAAU,EAAA;MACjBkyC,QAAA,CAAA;QAAC72C,IAAM,EAAA;MAAA,CAAc,CAAA;MAC9Bu3C,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;MAC5B,IAAAurC,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;MACrC,CAAA3oC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;MAEzB;IACF;IAEA,MAAM11B,SAASe,KAAM,CAAAf,MAAA;IACrB,MAAMwtC,SAAStB,iBAAkB,CAAAvsC,OAAA;IAG9B,IAAA,CAAA6tC,MAAA,KAAWxtC,MAAU,KAAAwtC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,MAAA,CAAQttC,QAAS,CAAAF,MAAA,CAAA,CAAA,KACvC,CAACuqC,gCAAiC,CAAA1qC,QAAA,CAASkB,KAAM,CAAAtH,GAAG,CACpD,EAAA;MACA,CAAAqJ,EAAA,GAAAmpC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAAmD,EAAA,CAAA4yB,KAAA,EAAA;MAEzB;IACF;EACF,CAAA,EACA,CAACyU,WAAA,EAAauC,eAAiB,EAAAC,kBAAA,EAAoBzB,aAAa,CAAA,CAClE;EAEA,MAAMuC,iBAAoB,GAAApqB,WAAA,CACvBtiB,KAAyC,IAAA;IAClC,MAAA2sC,SAAA,GAAY3sC,MAAMipC,aAAc,CAAA1wC,KAAA;IAEtCqyC,QAAA,CAAS;MAAC72C,IAAA,EAAM,cAAgB;MAAAu1C,KAAA,EAAOqD;IAAU,CAAA,CAAA;IAE7C,IAAAxC,aAAA,EAAeA,aAAA,CAAcwC,SAAS,CAAA;EAC5C,CAAA,EACA,CAACxC,aAAa,CAAA,CAChB;EAEA,MAAMyC,gBAAmB,GAAAtqB,WAAA,CACtBtiB,KAAwC,IAAA;IACvC,IAAI,CAACqpC,OAAS,EAAA;MACHuB,QAAA,CAAA;QAAC72C,IAAM,EAAA;MAAA,CAAc,CAAA;MAE1B,IAAAkiC,OAAA,EAASA,OAAA,CAAQj2B,KAAK,CAAA;IAC5B;EACF,CAAA,EACA,CAACqpC,SAASpT,OAAO,CAAA,CACnB;EAEM,MAAA4W,uBAAA,GAA0BvqB,YAAY,MAAM;IAChDgpB,qBAAA,CAAsB1sC,OAAU,GAAA,IAAA;EAClC,CAAA,EAAG,EAAE,CAAA;EAEC,MAAAkuC,uBAAA,GAA0BxqB,YAAY,MAAM;IAChDgpB,qBAAA,CAAsB1sC,OAAU,GAAA,KAAA;EAClC,CAAA,EAAG,EAAE,CAAA;EAEC,MAAAmuC,sBAAA,GAAyBzqB,YAAY,MAAM;IAlXnD,IAAA9gB,EAAA;IAmXaopC,QAAA,CAAA;MAAC72C,IAAM,EAAA;IAAA,CAAa,CAAA;IAC7BojC,QAAA,CAASv4B,OAAU,GAAA,EAAA;IACf,IAAAu5B,QAAA,EAAUA,QAAA,CAAS,EAAE,CAAA;IACrB,IAAAgS,aAAA,EAAeA,aAAA,CAAc,IAAI,CAAA;IACrC,CAAA3oC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;EAAA,CACxB,EAAA,CAACwD,QAAU,EAAAgS,aAAa,CAAC,CAAA;EAEtB,MAAA6C,sBAAA,GAAyB1qB,YAAY,MAAM;IACtCsoB,QAAA,CAAA;MAAC72C,IAAM,EAAA;IAAA,CAAc,CAAA;EAChC,CAAA,EAAG,EAAE,CAAA;EAGL2K,SAAA,CAAU,MAAM;IAEV,IAAAisC,SAAA,KAAcU,aAAazsC,OAAS,EAAA;MACtCysC,YAAA,CAAazsC,OAAU,GAAA+rC,SAAA;MAEvB,IAAIA,cAAc,KAAW,CAAA,EAAA;QAC3BC,QAAA,CAAS;UAAC72C,IAAA,EAAM,cAAgB;UAAAwE,KAAA,EAAOoyC;QAAU,CAAA,CAAA;QACjDxT,QAAA,CAASv4B,OAAU,GAAA+rC,SAAA;MACrB;MAEA;IACF;IAGI,IAAAA,SAAA,KAAcxT,SAASv4B,OAAS,EAAA;MAClCu4B,QAAA,CAASv4B,UAAU+rC,SAAa,IAAA,IAAA;MAEhCC,QAAA,CAAS;QAAC72C,IAAM,EAAA,cAAA;QAAgBwE,KAAO,EAAAoyC,SAAA,IAAa;OAAK,CAAA;IAC3D;EAAA,CACF,EAAG,CAACA,SAAS,CAAC,CAAA;EAGdjsC,SAAA,CAAU,MAAM;IACV,IAAA,CAAC2qC,OAAW,IAAAlS,QAAA,CAASv4B,OAAS,EAAA;MAChCgsC,QAAA,CAAS;QAAC72C,IAAM,EAAA,qBAAA;QAAuBwE,KAAO,EAAA4+B,QAAA,CAASv4B;OAAQ,CAAA;IACjE;EAAA,CACF,EAAG,CAACyqC,OAAO,CAAC,CAAA;EAGZ3qC,SAAA,CAAU,MAAM;IACd,MAAMuuC,cAAc9B,iBAAkB,CAAAvsC,OAAA;IAEtC,IAAI,CAACquC,WAAA,EAAa;IAElB,MAAMX,eAAeX,eAAgB,CAAAF,IAAA,CAAMC,CAAM,IAAAA,CAAA,CAAEnzC,UAAU6wC,WAAW,CAAA;IAExE,IAAIkD,YAAc,EAAA;MACV,MAAAC,WAAA,GAAcZ,eAAgB,CAAAx/B,OAAA,CAAQmgC,YAAY,CAAA;MAClD,MAAAY,iBAAA,GAAoBD,WAAY,CAAApY,UAAA,CAAW0X,WAAW,CAAA;MAE5D,IAAIW,iBAAmB,EAAA;QACjB,IAAA9Y,SAAA,CAAU8Y,iBAAiB,CAAG,EAAA;UAEhC;QACF;QAEAtY,oBAAA,CAAqBsY,iBAAiB,CAAA;MACxC;IACF;EAAA,CACC,EAAA,CAAC9D,WAAa,EAAAuC,eAAe,CAAC,CAAA;EAEjC,MAAMxZ,MAAS,GAAA7P,WAAA,CACZzkB,EAAgC,IAAA;IAC/BqtC,eAAA,CAAgBtsC,OAAU,GAAAf,EAAA;IAC1BusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAACusB,YAAY,CAAA,CACf;EAEM,MAAAoZ,WAAA,GAAclmC,QAAQ,MAAM;IAChC,IAAI,CAAC+qB,OAAA,IAAW,CAAC/M,QAAA,IAAY/iB,KAAO,EAAA;MAC3B,OAAA;QACL,YAAc,EAAA,OAAA;QACd09B,OAAS,EAAA+W;MAAA,CACX;IACF;IAEO,OAAA,KAAA,CAAA;KACN,CAAC1xB,QAAA,EAAU0xB,sBAAwB,EAAA3kB,OAAA,EAAS9vB,KAAK,CAAC,CAAA;EAErD,MAAM40C,oBAAuB,GAAA7vC,OAAA,CAC3B,MACEnC,OAAA,CAAQhC,GAAI,CAAChC,CAAM,IAAA;IACjB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IACpB,IAAIA,CAAM,KAAA,CAAA,EAAU,OAAA,CAAA;IAEpB,OAAOA,CAAI,GAAA,CAAA;EAAA,CACZ,CAAA,EACH,CAACgE,OAAO,CAAA,CACV;EACA,MAAMiyC,oBAAoB9vC,OAAQ,CAAA,MAAMnC,OAAQ,CAAAhC,GAAA,CAAKhC,CAAM,IAAAoF,IAAA,CAAKoZ,GAAI,CAAAxe,CAAA,GAAI,GAAG,CAAC,CAAC,CAAG,EAAA,CAACgE,OAAO,CAAC,CAAA;EACzF,MAAMkyC,eAA+C,GAAA/vC,OAAA,CACnD,MAAO,OAAO8sC,UAAe,KAAA,QAAA,GAAWA,UAAa,GAAAxyC,YAAA,EACrD,CAACwyC,UAAU,CAAA,CACb;EAEA,MAAMkD,eAAkB,GAAAhrB,WAAA,CACrBtiB,KAAyC,IAAA;IAC/B4qC,QAAA,CAAA;MACP72C,IAAM,EAAA,WAAA;MACNu1C,KAAO,EAAA/wC,KAAA,GAAQmyC,WAAY,CAAAnyC,KAAA,EAAOizC,aAAa,CAAI,GAAA;IAAA,CACpD,CAAA;IAED,IAAI6B,eAAgB,CAAA1I,OAAA,EAAS0I,eAAA,CAAgB1I,QAAQ3kC,KAAK,CAAA;IAE1DozB,IAAA,CAAK,MAAG;MA/dd,IAAA5xB,EAAA;MA+diB,OAAA,CAAAA,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;IAAA,CAAO,CAAA;EAC7C,CAAA,EACA,CAAC6W,aAAA,EAAe6B,eAAiB,EAAA3C,WAAA,EAAanyC,KAAK,CAAA,CACrD;EAEA,MAAMg1C,cAAiB,GAAAjwC,OAAA,CACrB,MACE,CAACge,QAAA,IAAY,CAACE,QAAA,IAAY4uB,UACxB,GAAA,eAAAt7B,GAAA,CAAC2V,GAAI,EAAA;IAAA,aAAA,EAAaqnB,QAAU;IAAA3wC,OAAA,EAASgyC,oBACnC;IAAA5+B,QAAA,EAAA,eAAAO,GAAA,CAACoZ,MAAA,EAAA;MACC,YAAW,EAAA,MAAA;MACX5M,QAAU,EAAAwwB,QAAA;MACVlwC,QAAA;MACA+qB,IAAM,EAAAwa,eAAA;MACN7b,IAAK,EAAA,OAAA;MACLnqB,OAAS,EAAAiyC,iBAAA;MACR,GAAGC,eAAA;MACJ1I,OAAS,EAAA2I;IAAA,CAAA;EAEb,CAAA,CACE,GAAA,KAAA,CAAA,EACN,CACEhyB,QAAA,EACAwwB,QAAA,EACAlwC,QAAA,EACA0xC,eAAA,EACAlD,UAAA,EACA+C,oBAAA,EACAC,iBAAA,EACAC,eAAA,EACA7xB,QAAA,CACF,CACF;EAEM,MAAAgyB,UAAA,GAAalwC,QAAQ,MAAM;IAC/B,IAAIgsC,UAAU,IAAM,EAAA;MAClB,IAAI/wC,UAAU,IAAM,EAAA;QACX,OAAAmyC,WAAA,CAAYnyC,OAAOizC,aAAa,CAAA;MACzC;MAEO,OAAA,EAAA;IACT;IAEO,OAAAlC,KAAA;KACN,CAACkC,aAAA,EAAelC,KAAO,EAAAoB,WAAA,EAAanyC,KAAK,CAAC,CAAA;EAE7C,MAAM0iB,KACJ,GAAA,eAAAnM,GAAA,CAACw0B,SAAA,EAAA;IACE,GAAGzkB,SAAA;IACJ,uBAAuB,EAAAgtB,YAAA;IACvB,mBAAkB,EAAA,MAAA;IAClB,eAAe,EAAAC,QAAA;IACf,WAAW,EAAAP,SAAA;IACXkC,cAAe,EAAA,KAAA;IACfC,YAAa,EAAA,KAAA;IACbC,WAAY,EAAA,KAAA;IACZ3gC,MAAA;IACAw2B,WAAA;IACAjyB,cAAA;IACA+J,QAAA;IACA1f,QAAA;IACA+qB,IAAA;IACAwB,WAAWE,OAAW,IAAAwgB,mBAAA;IACtBnmB,EAAA;IACAkrB,SAAU,EAAA,QAAA;IACVzV,QAAU,EAAAuU,iBAAA;IACVhJ,OAAS,EAAAqJ,sBAAA;IACT9W,OAAS,EAAA2W,gBAAA;IACTzxC,OAAA;IACAwoC,MAAA;IACA5mB,MAAA;IACAvB,QAAA;IACApK,GAAK,EAAA+gB,MAAA;IACL+W,IAAK,EAAA,UAAA;IACL2E,UAAY,EAAA,KAAA;IACZjK,QAAQA,MAAU,IAAA2J,cAAA;IAClBh1C,KAAO,EAAAi1C;EAAA,CAAA,CACT;EAGF,MAAMM,oBAAuB,GAAAxrB,WAAA,CAC1BtiB,KAAyC,IAAA;IAhjB9C,IAAAwB,EAAA;IAkjBU,IAAAxB,KAAA,CAAMtH,QAAQ,KAAO,EAAA;MACnB,IAAA6wC,WAAA,EAAa,CAAA/nC,EAAA,GAAA0pC,eAAA,CAAgBtsC,YAAhB,IAAyB,GAAA,KAAA,CAAA,GAAA4C,EAAA,CAAAmzB,KAAA,EAAA;IAC5C;EACF,CAAA,EACA,CAAC4U,WAAW,CAAA,CACd;EAEM,MAAAluC,OAAA,GAAUiC,QAAQ,MAAM;IAC5B,IAAIquC,gBAAgB3xC,MAAW,KAAA,CAAA,EAAU,OAAA,IAAA;IAGvC,sBAAA8U,GAAA,CAAC85B,OAAA,EAAA;MACC,SAAQ,EAAA,uBAAA;MACR/6B,SAAW,EAAAigC,oBAAA;MACX3yC,OAAS,EAAA,CAAA;MACR,GAAG+uC,OAAA;MACJ3V,QAAU,EAAA,CAAA,CAAA;MAEVhmB,QAAA,iBAAAO,GAAA,CAACwyB,KAAA,EAAA;QACCtgB,EAAG,EAAA,IAAA;QACH,sBAAsB,EAAA,KAAA;QACtB,SAAQ,EAAA,2BAAA;QACR0B,EAAI,EAAA6oB,SAAA;QACJn6B,GAAK,EAAA+5B,iBAAA;QACLjC,IAAK,EAAA,SAAA;QACLhvC,KAAO,EAAA,CAAA;QAENqU,QAAA,EAAAo9B,eAAA,CAAgBxyC,GAAI,CAACywC,MAAW,IAAA;UAC/B,MAAMmE,SACJ3E,WAAgB,KAAA,IAAA,GAAOQ,MAAO,CAAArxC,KAAA,KAAU6wC,cAAcoC,aAAkB,KAAA5B,MAAA;UAGxE,sBAAA96B,GAAA,CAACg6B,kBAAA,EAAA;YACCpmB,EAAI,EAAA,EAAA,CAAG7pB,MAAE,CAAA6pB,EAAA,EAAA,UAAA,CAAA,CAAW7pB,MAAO,CAAA+wC,MAAA,CAAArxC,KAAA,CAAA;YAE3BwwC,QAAU,EAAAqD,kBAAA;YACVtjB,QAAU,EAAAilB,MAAA;YACVx1C,OAAOqxC,MAAO,CAAArxC,KAAA;YAEbgW,QAAA,EAAAgW,YAAA,CAAagmB,YAAa,CAAAX,MAAM,CAAG,EAAA;cAClCtuB,QAAU,EAAA+M,OAAA;cACVS,QAAU,EAAAilB,MAAA;cACVxZ,QAAA,EAAUgV,WAAe,IAAAwE,MAAA,GAAS,CAAI,GAAA,CAAA;YAAA,CACvC;UAAA,CAAA,EATInE,MAAO,CAAArxC,KAAA,CAUd;QAAA,CAEH;MAAA,CACH;IAAA,CAAA,CACF;EAAA,CAED,EAAA,CACD6wC,WAAA,EACAoC,aAAA,EACAG,eAAA,EACAS,kBAAA,EACA0B,oBAAA,EACAprB,EAAA,EACAwnB,OAAA,EACAqB,SAAA,EACAhC,WAAA,EACAlhB,OAAA,EACAkiB,YAAA,CACD,CAAA;EAEK,MAAAyD,OAAA,GAAU1wC,QAAQ,MAAM;IAC5B,IAAImtC,aAAe,EAAA;MACV,OAAAA,aAAA,CACL;QACEpvC,OAAA;QACA2kC,QAAQ,CAAC8L,QAAA;QACTmC,cAAc/C,eAAgB,CAAAtsC,OAAA;QAC9B0pC,YAAc,EAAAuE,uBAAA;QACdrE,YAAc,EAAAsE;MAChB,CAAA,EACA7B,wBAAA,CACF;IACF;IAEA,IAAIW,uBAAuB,CAAG,EAAA;MACrB,OAAA,IAAA;IACT;IAGE,sBAAA98B,GAAA,CAACiuB,OAAA,EAAA;MACC/d,KAAO,EAAA,KAAA;MACP2e,aAAa,EAAA,IAAA;MACbtiC,OAAA;MACAuiC,kBAAoB,EAAA8L,wCAAA;MACpB7L,mBAAmB,EAAA,IAAA;MACnByK,YAAc,EAAAuE,uBAAA;MACdrE,YAAc,EAAAsE,uBAAA;MACd/O,IAAM,EAAA+N,QAAA;MACN54B,QAAS,EAAA,MAAA;MACTub,SAAW,EAAAgb,8BAAA;MACX1S,MAAM,EAAA,IAAA;MACNha,MAAA;MACA3L,GAAK,EAAA65B,wBAAA;MACL9M,kBAAkB+M,eAAgB,CAAAtsC,OAAA;MACjC,GAAG0/B;IAAA,CAAA,CACN;EAAA,CAED,EAAA,CACDjjC,OAAA,EACAywC,QAAA,EACAF,kBAAA,EACAiB,uBAAA,EACAC,uBAAA,EACAxO,OAAA,EACAvhB,MAAA,EACA0tB,aAAA,CACD,CAAA;EAGC,sBAAAjoB,IAAA,CAACvE,MAAA,EAAA;IACC,SAAQ,EAAA,cAAA;IACRgqB,MAAQ,EAAA8D,cAAA;IACR9V,OAAS,EAAAgW,eAAA;IACTp+B,SAAW,EAAAw+B,iBAAA;IACXj7B,GAAK,EAAA45B,cAAA;IAEJz8B,QAAA,EAAA,CAAA0M,KAAA,EACA+yB,OAAA;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AAQM,MAAME,YAAe,GAAAnE,iBAAA;;;;;;ACtrB5B,IAAAvoC,IAAA,EAAAO,IAAA;AAGa,MAAAkc,MAAA,GAAOC,MAAO,CAAAiwB,EAAA,CAAP3sC,IAAS,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,2IAAA,CAAA,CAAA,CAAA,CAAA;AAUtB,MAAMwzB,YAAe,GAAAlwB,MAAA,CAAOgK,MAAM,CAAA,CAAbnmB,IAAc,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA;ACInC,MAAMyzB,WAAc,GAAA9vB,UAAA,CAAW,SAAS8vB,YAAAA,CAC7Cx0C,OACAuX,GACA,EAAA;EACM,MAAA;IAAC7C;IAAUyV,SAAW;IAAAsqB,SAAA;IAAWp0C,OAAOq0C,QAAW,GAAA,CAAA;IAAG,GAAG1vB;EAAa,CAAA,GAAAhlB,KAAA;EACtE,MAAAK,KAAA,GAAQkD,aAAamxC,QAAQ,CAAA;EACnC,MAAM,CAACxQ,IAAA,EAAMyQ,OAAO,CAAA,GAAInwC,SAAS,KAAK,CAAA;EACtC,MAAM,CAACowC,aAAA,EAAeC,gBAAgB,CAAA,GAAIrwC,SAAmC,IAAI,CAAA;EACjF,MAAM,CAACswC,cAAA,EAAgBC,iBAAiB,CAAA,GAAIvwC,SAAgC,IAAI,CAAA;EAEhF,MAAMwwC,WAAWvsB,WAAY,CAAA,MAAMksB,QAAQ,KAAK,CAAA,EAAG,EAAE,CAAA;EACrD,MAAMM,SAASxsB,WAAY,CAAA,MAAMksB,QAAQ,IAAI,CAAA,EAAG,EAAE,CAAA;EAElDvwC,eAAA,CAAgB4wC,QAAU,EAAA,CAACJ,aAAe,EAAAE,cAAc,CAAC,CAAA;EAEzD,MAAMI,QAAW,GAAAzxC,OAAA,CACf,MACE0xC,QAAS,CAAAC,OAAA,CAAQ1gC,QAAQ,CAAE,CAAAxQ,MAAA,CAAQmmB,KAAU,IAAA;IAC3C,OAAO+E,eAAe/E,KAAK,CAAA;EAAA,CAC5B,CAAA,EACH,CAAC3V,QAAQ,CAAA,CACX;EAEM,MAAA2pB,KAAA,GAAQ56B,QAAQ,MAAM;IAC1B,MAAMyc,MAAMg1B,QAAS,CAAA/0C,MAAA;IAEjB,IAAAgqB,SAAA,IAAajK,MAAMiK,SAAW,EAAA;MAChC,MAAMkrB,YAAe,GAAA3yC,IAAA,CAAKk9B,IAAK,CAAAzV,SAAA,GAAY,CAAC,CAAA;MAC5C,MAAMmrB,WAAc,GAAA5yC,IAAA,CAAKC,KAAM,CAAAwnB,SAAA,GAAY,CAAC,CAAA;MAErC,OAAA,CACL,GAAG+qB,QAAA,CAAS3iC,KAAM,CAAA,CAAA,EAAG8iC,eAAe,CAAC,CAAA,EAAA,eACrCpgC,GAAA,CAACiuB,OAAA,EAAA;QACCY,aAAa,EAAA,IAAA;QACbtiC,SACG,eAAAyT,GAAA,CAAAwyB,KAAA,EAAA;UAAMtgB,EAAG,EAAA,IAAA;UAAK9N,UAAS,MAAO;UAAA/X,OAAA,EAASjB,KAAO;UAAAA,KAAA;UAC5CqU,mBAASnC,KAAM,CAAA8iC,YAAA,GAAe,CAAG,EAAAn1B,GAAA,GAAMo1B,WAAW;SACrD,CAAA;QAGFpR,IAAA;QACAtP,SAAU,EAAA,KAAA;QACVsI,MAAM,EAAA,IAAA;QACN3lB,GAAK,EAAAw9B,iBAAA;QAELrgC,QAAA,iBAAAO,GAAA,CAACs/B,YAAA,EAAA;UACCxyC,QAAU,EAAA,CAAA;UACV0pB,IAAK,EAAA,OAAA;UACLqf,OAAA,EAAS5G,OAAO8Q,QAAW,GAAAC,MAAA;UAC3B3zC,OAAS,EAAA,CAAA;UACTiW,GAAK,EAAAs9B,gBAAA;UACL5lB,QAAU,EAAAiV,IAAA;UACV3jB,IAAK,EAAA;QAAA,CACP;MAAA,CAAA,EAdI,QAeN,CAAA,EACA,GAAG20B,QAAA,CAAS3iC,KAAM,CAAA2N,GAAA,GAAMo1B,WAAW,CAAA,CACrC;IACF;IAEO,OAAAJ,QAAA;EAAA,CACT,EAAG,CAACF,QAAU,EAAAC,MAAA,EAAQ9qB,WAAW+Z,IAAM,EAAAgR,QAAA,EAAU70C,KAAK,CAAC,CAAA;EAEvD,OACG,eAAA4U,GAAA,CAAAmP,MAAA,EAAA;IAAK,SAAQ,EAAA,aAAA;IAAe,GAAGY,SAAA;IAAWzN,GACxC;IAAA7C,QAAA,EAAA2pB,KAAA,CAAM/+B,GAAI,CAAA,CAACugC,IAAM,EAAAE,SAAA,yBACfllC,UACE,EAAA;MAAA6Z,QAAA,EAAA,CAAAqrB,SAAA,GAAY,CACX,mBAAA9qB,GAAA,CAAC2V,GAAI,EAAA;QAAA,aAAA,EAAW;QAACzD,EAAG,EAAA,IAAA;QAAK6D,QAAU,EAAA3qB,KAAA;QAChCqU,sCAAcO,GAAA,CAAAmW,IAAA,EAAA;UAAKvG,KAAK,EAAA,IAAA;UAACnQ;QAAC,CAAA;OAC7B,CAAA,EAAA,eAEDO,GAAA,CAAA2V,GAAA,EAAA;QAAIzD,EAAG,EAAA,IAAA;QAAMzS,QAAK,EAAAmrB;OAAA,CAAA;KANN,EAAAE,SAOf,CACD;EACH,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;AC7FD,IAAAp4B,IAAA,EAAAO,IAAA;AAYgB,SAAAqtC,WAAAA,CAAAC,KAAA,EAA4C;EAAA,IAAhC;IAACz1C;GAA+B,GAAAy1C,KAAA;EAC1D,MAAM;IAACx6B;EAAA,CAAS,GAAA1a,WAAA,CAAYP,KAAK,CAAA;EAE1B,OAAA;IACL,iBAAmB,EAAA;MACjB0B,OAAS,EAAA;IACX,CAAA;IAEA4F,GAAK,EAAA,CAAA;IACLC,IAAM,EAAA,CAAA;IACNE,KAAO,EAAA,CAAA;IACPD,MAAQ,EAAA,CAAA;IACRsS,UAAY,EAAA,QAAA;IACZQ,cAAgB,EAAA,QAAA;IAChBoJ,OAAS,EAAA,MAAA;IACTgyB,YAAYz6B,KAAM,CAAAkR;EAAA,CACpB;AACF;AAEO,SAASwpB,8BACd11C,KACa,EAAA;EACb,MAAM;IAACd;EAAS,CAAA,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEhC,OAAAd,WAAA,CAAYC,KAAO,EAAAc,KAAA,CAAM21C,SAAW,EAACv0C,QAAc,KAAA;IAAC,IAAM,EAAA;MAACA;IAAQ;EAAA,CAAG,CAAA,CAAA;AAC/E;AASO,SAASw0C,qBAAqB51C,KAA0D,EAAA;EAC7F,IAAI,CAACA,KAAM,CAAA5B,OAAA,EAAS,OAAO0iB,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAE9B,OAAOD,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,8cAAA,CAAA,CAAA,CAAA,CAAA;AA0BZ;AC7DA,MAAMliB,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,2BAA2B,CAAA;AAElDub,WAAY,CAAAvV,KAAG,IAAIuV,WAAY,CAAAvV,KAAG,KAAKwV,aAAkC,CAAA;EAACU,OAAS,EAAA;AAAA,CAAI,CAAA;AAK1E,MAAA8gC,aAAA,GAAmDzhC,YAAYvV,KAAG,CAAA;ACdxE,SAASi3C,SAAgCA,CAAA,EAAA;EAC9C,OAAOrhC,WAAWohC,aAAa,CAAA;AACjC;;;;;;ACTA,IAAAluC,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,IAAA,EAAAC,EAAA,EAAAC,EAAA;AAmFA,SAASyS,mBAAAA,CACPzxC,eACA,EAAA64B,aAAA,EACA/3B,MACS,EAAA;EACL,IAAA,CAACd,mBAAmB,CAAC64B,aAAA,EAAsB,OAAA,IAAA;EAE/C,OACE7C,wBAAwBh2B,eAAiB,EAAAc,MAAM,CAC/C,IAAAk1B,uBAAA,CAAwB6C,eAAe/3B,MAAM,CAAA;AAEjD;AAEA,MAAMgf,SAAOC,MAAO,CAAAqY,KAAK,EAEvBha,sBAAwB,EAAA6yB,WAAA,EAAaG,+BAA+BE,oBAAoB,CAAA;AAE1F,MAAMI,eAAkB,GAAA3xB,MAAA,CAAO0P,SAAS,CAAA,CAAhBpsB,IAAiB,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,kKAAA,CAAA,CAAA,CAAA,CAAA;AAWzC,MAAMk1B,cAAiB,GAAA5xB,MAAA,CAAOyL,IAAI,CAAA,CAAX5nB,IAAY,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,iJAAA,CAAA,CAAA,CAAA,CAAA;AAWnC,MAAMm1B,YAAe,GAAA7xB,MAAA,CAAOsH,IAAI,CAAA,CAAX/K,IAAY,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,kDAAA,CAAA,CAAA,CAAA,CAAA;AAMjC,MAAMo1B,YAAe,GAAA9xB,MAAA,CAAOuG,GAAG,CAAA,CAAVwY,IAAW,KAAAA,IAAA,GAAAriB,YAAA,CAAA,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA;AAKhC,MAAMq1B,aAAgB,GAAA/xB,MAAA,CAAOuG,GAAG,CAAA,CAAVyY,EAAW,KAAAA,EAAA,GAAAtiB,YAAA,CAAA,CAAA,+EAAA,CAAA,CAAA,CAAA,CAAA;AAOjC,MAAMs1B,YAAe,GAAAhyB,MAAA,CAAOuG,GAAG,CAAA,CAAV0Y,EAAW,KAAAA,EAAA,GAAAviB,YAAA,CAAA,CAAA,0CAAA,CAAA,CAAA,CAAA,CAAA;AAKhC,MAAMu1B,UAAa,GAAA5xB,UAAA,CAAW,SAAS4xB,WAAAA,CACrCt2C,OACAuX,GACA,EAAA;EApJF5P,IAAAA,GAAAA;EAqJQ,MAAA;IACJ4uC,oBAAsB,EAAAC,SAAA;IACtBC,0BAA4B,EAAAC,eAAA;IAC5BhiC,QAAA;IACAiiC,UAAA;IACAC,MAAA;IACAC,MAAA;IACAhuB,EAAA;IACAiuB,cAAA;IACAC,OAAA;IACA7Z,MAAQ,EAAA6P,UAAA;IACR7pB,MAAQ,EAAA8L,UAAA;IACRra,MAAA;IACA2O,MAAQ,EAAAihB,UAAA;IACRn9B,KAAO,EAAAo9B;EACL,CAAA,GAAAxkC,KAAA;EACJ,MAAMk9B,SAASF,SAAU,EAAA;EACnB,MAAAG,aAAA,GAAgB4P,eAAaplC,GAAA,GAAAu1B,MAAA,CAAOz4B,aAAP,IAAAkD,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAkBolC,UAAe,CAAA,KAAA,IAAA,GAAO7P,MAAO,CAAAr5B,OAAA;EAC5E,MAAAS,eAAA,GAAkBszB,mBAAqB,CAAA,CAAA/zB,OAAA;EACvC,MAAAqf,MAAA,GAAS3f,aAAayrB,UAAU,CAAA;EAChC,MAAA1L,MAAA,GAAS/f,aAAaghC,UAAU,CAAA;EAChC,MAAAn9B,KAAA,GAAQ7D,aAAaihC,SAAS,CAAA;EAC9B,MAAAjU,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAACklB,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAgC,IAAI,CAAA;EACpE,MAAAyyC,eAAA,GAAkBryC,OAA8B,IAAI,CAAA;EAC1D,MAAM8+B,QAAQrK,QAAS,EAAA;EACjB,MAAA;IAACwC;EAAc,CAAA,GAAA6H,KAAA;EACf,MAAAwT,OAAA,GAAU,GAAGl4C,MAAE,CAAA6pB,EAAA,EAAA,QAAA,CAAA;EACrB,MAAMsuB,eAAkB,GAAAhzC,OAAA,CAAQ4yC,OAAO,CAAA,IAAKL,eAAoB,KAAA,KAAA;EAC1D,MAAAU,UAAA,GAAajzC,OAAQ,CAAA0yC,MAAM,CAAK,IAAAM,eAAA;EAEtCtyC,SAAA,CAAU,MAAM;IACd,IAAI,CAAC2xC,SAAA,EAAW;IAGhB,IAAIjmB,aAAaxrB,OAAS,EAAA;MACxBg2B,oBAAA,CAAqBxK,aAAaxrB,OAAO,CAAA;IAC3C;EAAA,CACC,EAAA,CAACyxC,SAAW,EAAAjmB,YAAY,CAAC,CAAA;EAE5Bxc,gBAAA,CACE0U,WAAA,CACGtiB,KAAyB,IAAA;IACpB,IAAA,CAAC01B,cAAc,CAACkb,OAAA,EAAS;IAE7B,MAAM3xC,SAASkB,QAAS,CAAAk0B,aAAA;IAExB,IAAIp1B,UAAU,CAAC2wC,mBAAA,CAAoBzxC,eAAiB,EAAA64B,aAAA,EAAe/3B,MAAM,CAAG,EAAA;MAE1E;IACF;IAEI,IAAAe,KAAA,CAAMtH,QAAQ,QAAU,EAAA;MAC1BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MACd0M,OAAA,EAAA;IACV;EACF,CAAA,EACA,CAACzyC,eAAA,EAAiBu3B,UAAY,EAAAkb,OAAA,EAAS5Z,aAAa,CACtD,CAAA,CACF;EAEA/4B,eAAA,CACEqkB,WAAA,CACGtiB,KAAsB,IAAA;IACjB,IAAA,CAAC01B,cAAc,CAACib,cAAA,EAAgB;IAEpC,MAAM1xC,SAASe,KAAM,CAAAf,MAAA;IAErB,IAAIA,UAAU,CAAC2wC,mBAAA,CAAoBzxC,eAAiB,EAAA64B,aAAA,EAAe/3B,MAAM,CAAG,EAAA;MAE1E;IACF;IAEe0xC,cAAA,EAAA;EACjB,CAAA,EACA,CAACxyC,eAAA,EAAiBu3B,UAAY,EAAAib,cAAA,EAAgB3Z,aAAa,CAC7D,CAAA,EACA,CAACV,WAAW,CAAA,CACd;EAEA,MAAMnE,MAAS,GAAA7P,WAAA,CACZzkB,EAA8B,IAAA;IAC7BgzC,cAAA,CAAehzC,EAAE,CAAA;IACjBusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAACusB,YAAY,CAAA,CACf;EAEA,MAAM8mB,aAAgB,GAAA5uB,WAAA,CACnBzkB,EAA8B,IAAA;IAC7BizC,eAAA,CAAgBlyC,OAAU,GAAAf,EAAA;IAC1B,IAAI,OAAO2yC,UAAe,KAAA,UAAA,EAAYA,UAAA,CAAW3yC,EAAE,CAAA,CAAA,KAC1C,IAAA2yC,UAAA,EAAYA,UAAA,CAAW5xC,OAAU,GAAAf,EAAA;EAC5C,CAAA,EACA,CAAC2yC,UAAU,CAAA,CACb;EAEA,sBACG1hC,GAAA,CAAA+gC,eAAA,EAAA;IAAgB,SAAQ,EAAA,YAAA;IAAa5uC;IACpCsN,QAAC,EAAA,eAAAO,GAAA,CAAAghC,cAAA,EAAA;MAAe/yB,MAAgB;MAAA3L,GAAA,EAAK+gB;MAAQ3jB,MAAgB;MAAA2O,MAAA;MAC3D5O,QAAC,EAAA,eAAAiU,IAAA,CAAAutB,YAAA,EAAA;QAAa37B,WAAU,QACrB;QAAA7F,QAAA,EAAA,CAAA0iC,UAAA,uBACEjB,YACC,EAAA;UAAAzhC,QAAA,EAAA,eAAAiU,IAAA,CAACgD;YAAK/R,KAAM,EAAA,QAAA;YAAStY,SAAS,CAC5B;YAAAoT,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC2V,GAAI,EAAA;cAAA9P,IAAA,EAAM,CAAG;cAAAxZ,OAAA,EAAS;cACpBoT,QACC,EAAAmiC,MAAA,IAAA,eAAA5hC,GAAA,CAACmW,IAAK,EAAA;gBAAAvC,EAAA,EAAIquB;gBAASl1C,IAAM,EAAA,CAAA;gBAAG+iB,MAAO,EAAA,UAAA;gBAChCrQ;cACH,CAAA;aAEJ,CAAA,EACCyiC,eACC,IAAA,eAAAliC,GAAA,CAAC2V,GAAI,EAAA;cAAA9P,IAAA,EAAK,MACR;cAAApG,QAAA,iBAAAO,GAAA,CAACoZ,MAAA,EAAA;gBACC,YAAW,EAAA,cAAA;gBACX5M,UAAU,CAACs1B,OAAA;gBACXjqB,IAAM,EAAA+d,SAAA;gBACNpf,IAAK,EAAA,OAAA;gBACLqf,OAAS,EAAAiM,OAAA;gBACTz1C,OAAS,EAAA;cAAA,CAAA;aAEb,CAAA;UAAA,CAEJ;QACF,CAAA,CAAA,EAGF,eAAA2T,GAAA,CAACmhC;UAAct7B,IAAM,EAAA,CAAA;UAAGvD,KAAK8/B,aAAe;UAAA3c,QAAA,EAAU;UACnDhmB;SACH,CAAA,EAECkiC,MAAA,IAAW,eAAA3hC,GAAA,CAAAohC,YAAA,EAAA;UAAc3hC,QAAO,EAAAkiC;QAAA,CAAA,CAAA;OACnC;KACF;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;AAOM,MAAMU,MAAS,GAAA5yB,UAAA,CAAW,SAAS4yB,OAAAA,CACxCt3C,OACAuX,GACA,EAAA;EAxSF5P,IAAAA,GAAAA;EAySE,MAAM4vC,SAASzB,SAAU,EAAA;EACnB,MAAA;IAACpS;GAAK,GAAIjuB,WAAY,EAAA;EACtB,MAAA;IACJ8gC,sBAAsBC,SAAY,GAAA,IAAA;IAClCC,4BAA4BC,eAAkB,GAAA,KAAA;IAC9Cc,YAAYC,cAAiB,GAAA,CAAA;IAC7BC,UAAa,GAAA,CAAA;IACbhjC,QAAA;IACAiiC,UAAA;IACAC,MAAA;IACAC,MAAA;IACAhuB,EAAA;IACAsT,UAAA;IACA2a,cAAA;IACAC,OAAA;IACA3a,OAAA;IACA96B,SAASmtB,WAAc,GAAA,CAAA;IACvByO,MAAQ,EAAA6P,UAAA;IACR3rC,QAAA,EAAUu2C,YAAe,GAAAJ,MAAA,CAAOn2C,QAAY,IAAA,OAAA;IAC5CuT,MAAA;IACAvN,OAAOo9B,SAAY,GAAA,CAAA;IACnBpJ,OAAS,EAAAC,WAAA,GAAckc,MAAO,CAAAnc,OAAA,IAAWsI,MAAM6T,MAAO,CAAAnc,OAAA;IACtDh9B,OAAU,GAAA,KAAA;IACV,GAAG4mB;EACD,CAAA,GAAAhlB,KAAA;EACJ,MAAMk9B,SAASF,SAAU,EAAA;EACnB,MAAAG,aAAA,GAAgB4P,eAAaplC,GAAA,GAAAu1B,MAAA,CAAOz4B,aAAP,IAAAkD,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAkBolC,UAAe,CAAA,KAAA,IAAA,GAAO7P,MAAO,CAAAr5B,OAAA;EAC5E,MAAAS,eAAA,GAAkBszB,mBAAqB,CAAA,CAAA/zB,OAAA;EACvC,MAAA2zC,UAAA,GAAaj0C,aAAak0C,cAAc,CAAA;EACxC,MAAAn2C,OAAA,GAAUiC,aAAakrB,WAAW,CAAA;EAClC,MAAArtB,QAAA,GAAWmC,aAAao0C,YAAY,CAAA;EACpC,MAAAvwC,KAAA,GAAQ7D,aAAaihC,SAAS,CAAA;EAC9B,MAAApJ,OAAA,GAAU73B,aAAa83B,WAAW,CAAA;EAClC,MAAAuc,SAAA,GAAYhzC,OAA8B,IAAI,CAAA;EAC9C,MAAAizC,UAAA,GAAajzC,OAA8B,IAAI,CAAA;EAC/C,MAAAkzC,OAAA,GAAUlzC,OAA8B,IAAI,CAAA;EAC5C,MAAAmzC,iBAAA,GAAoBnzC,OAA2B,IAAI,CAAA;EAEzD,MAAM43B,WAAc,GAAA/T,WAAA,CACjBtiB,KAA4C,IAAA;IACjCi2B,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAj2B,KAAA,CAAA;IAEV,MAAMf,SAASe,KAAM,CAAAf,MAAA;IACrB,MAAM4yC,cAAcF,OAAQ,CAAA/yC,OAAA;IAExB,IAAAizC,WAAA,IAAe5yC,MAAW,KAAAwyC,SAAA,CAAU7yC,OAAS,EAAA;MAC/Ck2B,mBAAA,CAAoB+c,WAAW,CAAA;MAE/B;IACF;IAEI,IAAAA,WAAA,IAAe5yC,MAAW,KAAAyyC,UAAA,CAAW9yC,OAAS,EAAA;MAChDg2B,oBAAA,CAAqBid,WAAW,CAAA;MAEhC;IACF;IAEI,IAAAje,aAAA,CAAc5zB,KAAM,CAAAf,MAAM,CAAG,EAAA;MAC/B2yC,iBAAA,CAAkBhzC,UAAUoB,KAAM,CAAAf,MAAA;IACpC;EACF,CAAA,EACA,CAACg3B,OAAO,CAAA,CACV;EAEM,MAAA8a,OAAA,GAAU,GAAGl4C,MAAE,CAAA6pB,EAAA,EAAA,QAAA,CAAA;EAErB,MAAMovB,sBAAsBrzC,MAAuB,EAAA;EAK7C,MAAAszC,eAAA,GAAkBzvB,YAAY,MAAM;IACxC,IAAIwvB,oBAAoBlzC,OAAS,EAAA;MAC/BymC,YAAA,CAAayM,oBAAoBlzC,OAAO,CAAA;IAC1C;IAEoBkzC,mBAAA,CAAAlzC,OAAA,GAAU0mC,WAAW,MAAM;MAC7C,MAAMjR,gBAAgBl0B,QAAS,CAAAk0B,aAAA;MAE/B,IAAIA,iBAAiB,CAACub,mBAAA,CAAoBzxC,eAAiB,EAAA64B,aAAA,EAAe3C,aAAa,CAAG,EAAA;QACxF,MAAMp1B,SAAS2yC,iBAAkB,CAAAhzC,OAAA;QAEjC,IAAI,CAACK,MAAU,IAAA,CAACkB,SAAS0K,IAAK,CAAA1L,QAAA,CAASF,MAAM,CAAG,EAAA;UAE9C,MAAM4yC,cAAcF,OAAQ,CAAA/yC,OAAA;UACxB,IAAAizC,WAAA,EAAajd,oBAAA,CAAqBid,WAAW,CAAA;UAEjD;QACF;QAEA5yC,MAAA,CAAO01B,KAAM,CAAA,CAAA;MACf;OACC,CAAC,CAAA;EAAA,CACH,EAAA,CAACx2B,eAAiB,EAAA64B,aAAa,CAAC,CAAA;EAGjC,OAAA,eAAAloB,GAAA,CAACja,MAAO,EAAA;IAAAiiC,eAAA,EAAiB8P,UACvB;IAAAr4B,QAAA,EAAA,eAAAiU,IAAA,CAACvE,MAAA,EAAA;MACE,GAAGY,SAAA;MACJhF,QAAU,EAAA1e,OAAA;MACVq0C,SAAW,EAAAv0C,QAAA;MACX,iBAAiB,EAAA81C,OAAA;MACjB,YAAU,EAAA,IAAA;MACV,SAAQ,EAAA,QAAA;MACRruB,EAAA;MACAsT,UAAA;MACA2O,OAAS,EAAAoN,eAAA;MACT9b,OAAS,EAAAI,WAAA;MACTjlB,GAAA;MACA83B,IAAK,EAAA,QAAA;MACLjU,OAAA;MACAh9B,OAAA;MAEAsW,QAAA,EAAA,CAAA,eAAAO,GAAA,CAAC,KAAI,EAAA;QAAAsC,GAAA,EAAKqgC,SAAW;QAAAld,QAAA,EAAU;OAAG,CAAA,EAAA,eAClCzlB,GAAA,CAACqhC,UAAA,EAAA;QACCC,oBAAsB,EAAAC,SAAA;QACtBC,0BAA4B,EAAAC,eAAA;QAC5BC,UAAA;QACAC,MAAA;QACAC,MAAA;QACAhuB,EAAA;QACAiuB,cAAA;QACAC,OAAA;QACA7Z,MAAQ,EAAA6P,UAAA;QACR7pB,MAAQ,EAAAs0B,UAAA;QACRjgC,GAAK,EAAAugC,OAAA;QACLnjC,MAAA;QACA2O,MAAQ,EAAAo0B,UAAA;QACRtwC,KAAA;QAECsN;MAAA,CACH,CAAA,EAAA,eACCO,GAAA,CAAA,KAAA,EAAA;QAAIsC,GAAK,EAAAsgC,UAAA;QAAYnd,UAAU;OAAG,CAAA;IAAA,CAEvC;EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;AC/ZM,SAASyd,eAAen4C,KAAgD,EAAA;EAC7E,MAAM;IAAC0U,QAAA;IAAUtT,QAAU;IAAAg6B;EAAA,CAAW,GAAAp7B,KAAA;EAEtC,MAAMm5B,YAAmC,GAAA11B,OAAA,CACvC,OAAO;IACLsR,OAAS,EAAA,CAAA;IACT3T,QAAA;IACAg6B;EAAA,CACF,CAAA,EACA,CAACh6B,UAAUg6B,OAAO,CAAA,CACpB;EAEA,0BAAQya,aAAc,CAAA3gC,QAAA,EAAd;IAAuBxW,KAAA,EAAOy6B;IAAezkB;EAAS,CAAA,CAAA;AAChE;;;;;;AC/BA,IAAA/M,IAAA,EAAAO,IAAA;AAiBA,MAAMkc,MAAA,GAAOC,MAAO,CAAA8I,GAAA,CAAPxlB,IAAU,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wFAAA,CAAA,CAAA,CAAA,CAAA;AASvB,MAAMq3B,GAAM,GAAA/zB,MAAA,CAAOkQ,GAAG,CAAA,CAAVrsB,IAAW,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,mDAAA,CAAA,CAAA,CAAA,CAAA;AAWhB,MAAMs3B,OAAU,GAAA3zB,UAAA,CAAW,SAAS2zB,QAAAA,CACzCr4C,OACAuX,GACA,EAAA;EACM,MAAA;IAACxV,QAAU;IAAAtD,IAAA;IAAM6C,OAAS;IAAA4hB,MAAA;IAAQ7iB,OAAO6uB,SAAY,GAAA,GAAA;IAAK,GAAGlK;EAAA,CAAa,GAAAhlB,KAAA;EAC1E,MAAAK,KAAA,GAAQkD,aAAa2rB,SAAS,CAAA;EAEpC,IAAI,CAACzwB,IAAA,IAAQA,IAAK,CAAA0B,MAAA,KAAW,CAAG,EAAA;IAC9B,sBAAS8U,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAA,CAAA;EACX;EAGE,OAAA,eAAAoa,GAAA,CAACmP,MAAK,EAAA;IAAA,SAAA,EAAQ,SAAW;IAAA,GAAGY,SAAW;IAAAzN,GAAA;IACrC7C,QAAC,EAAA,eAAAO,GAAA,CAAAof,MAAA,EAAA;MAAOlN,EAAG,EAAA,MAAA;MAAO9mB,KACf;MAAAqU,QAAA,EAAAjW,IAAA,CAAKa,IAAI,CAACT,GAAA,EAAK+S,CACd,KAAA,eAAAqD,GAAA,CAACmjC,GAAI,EAAA;QAAAr2C,QAAA;QAA4BT,OAAkB;QAAA4hB,MAAA;QAChDxO,QAD2B,EAAA7V;MAAA,CAAA,EAAA+S,CAE9B,CACD;IAAA,CACH;EACF,CAAA,CAAA;AAEJ,CAAC,CAAA;ACjCD,MAAM/S,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,yBAAyB,CAAA;AAEhDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAuC,IAAI,CAAA;AAErE,MAAAikC,WAAA,GAAsDlkC,YAAYvV,KAAG,CAAA;ACzBlF,SAAS05C,aAAa10C,OAAsB,EAAA;EAC1C,OACGg2B,mBAAoB,CAAAh2B,OAAO,CAAK,IAAAA,OAAA,CAAQ82B,YAAa,CAAA,eAAe,CAAM,KAAA,MAAA,IAC1Eb,mBAAoB,CAAAj2B,OAAO,CAAK,IAAA,CAACA,OAAQ,CAAA4d,QAAA;AAE9C;AAKO,SAAS+2B,sBAAsB/zC,QAAwC,EAAA;EACrE,OAAAA,QAAA,CAASP,OAAOq0C,YAAY,CAAA;AACrC;AAKgB,SAAAE,WAAAA,CAAYhc,aAA0Bz4B,EAA2B,EAAA;EAC/E,MAAMkzB,OAAiB,EAAC;EAExB,IAAIx6B,CAAI,GAAAsH,EAAA;EAER,OAAOtH,MAAM+/B,WAAa,EAAA;IACxB,MAAMic,gBAAgBh8C,CAAE,CAAAg8C,aAAA;IAExB,IAAI,CAACA,aAAA,EAAsB,OAAAxhB,IAAA;IAE3B,MAAMxiB,QAAW,GAAA9U,KAAA,CAAM0tB,IAAK,CAAAorB,aAAA,CAAc1d,UAAU,CAAA;IAC9C,MAAA5oB,KAAA,GAAQsC,QAAS,CAAApC,OAAA,CAAQ5V,CAAC,CAAA;IAEhCw6B,IAAA,CAAKyhB,QAAQvmC,KAAK,CAAA;IAElB,IAAIsmC,kBAAkBjc,WAAa,EAAA;MAC1B,OAAAvF,IAAA;IACT;IAEIx6B,CAAA,GAAAg8C,aAAA;EACN;EAEO,OAAAxhB,IAAA;AACT;AAEA,MAAM0hB,aAAuB,EAAC;AAKd,SAAAC,aAAAA,CAAcpc,aAAiCh4B,QAA+B,EAAA;EAC5F,IAAI,CAACg4B,WAAA,EAAa;EAEZ,MAAAn9B,GAAA,GAAA,mBAAUuJ,OAA+B,EAAA;EAE/C,KAAA,MAAW7E,MAAMS,QAAU,EAAA;IACzBnF,GAAA,CAAI4K,GAAI,CAAAlG,EAAA,EAAIy0C,WAAY,CAAAhc,WAAA,EAAaz4B,EAAE,CAAC,CAAA;EAC1C;EAEM,MAAA80C,KAAA,GAAQA,CAACv7C,CAAA,EAAgBhB,CAAmB,KAAA;IAChD,MAAMoL,EAAK,GAAArI,GAAA,CAAI2K,GAAI,CAAA1M,CAAC,CAAK,IAAAq7C,UAAA;IACzB,MAAM1wC,EAAK,GAAA5I,GAAA,CAAI2K,GAAI,CAAA1N,CAAC,CAAK,IAAAq8C,UAAA;IAEzB,MAAM14B,MAAMxd,IAAK,CAAAoZ,GAAA,CAAInU,EAAG,CAAAxH,MAAA,EAAQ+H,GAAG/H,MAAM,CAAA;IAGzC,KAAA,IAASyR,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;MACzB,MAAAmnC,MAAA,GAASpxC,EAAG,CAAAiK,CAAC,CAAK,IAAA,CAAA,CAAA;MAClB,MAAAonC,MAAA,GAAS9wC,EAAG,CAAA0J,CAAC,CAAK,IAAA,CAAA,CAAA;MAExB,IAAImnC,WAAWC,MAAQ,EAAA;QACrB,OAAOD,MAAS,GAAAC,MAAA;MAClB;IACF;IAEO,OAAA,CAAA;EAAA,CACT;EAEAv0C,QAAA,CAASw0C,KAAKH,KAAK,CAAA;AACrB;AC3DO,SAASI,kBAAkBl5C,KAIf,EAAA;EACjB,MAAM;IAACgU,SAAA;IAAWmlC,aAAe;IAAAC;EAAA,CAAe,GAAAp5C,KAAA;EAC1C,MAAA2E,WAAA,GAAcC,MAAsB,CAAA,EAAE,CAAA;EAC5C,MAAM,CAAC63B,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAgC,IAAI,CAAA;EAC1E,MAAM,CAACkuC,WAAA,EAAa2G,eAAe,CAAA,GAAI70C,SAAS,CAAE,CAAA,CAAA;EAC5C,MAAA80C,cAAA,GAAiB10C,OAAO8tC,WAAW,CAAA;EACzC,MAAMlY,aAAgB,GAAA71B,WAAA,CAAYI,OAAQ,CAAA2tC,WAAW,CAAK,IAAA,IAAA;EACpD,MAAA6G,OAAA,GAAUp1C,QAAQs4B,WAAW,CAAA;EAE7B,MAAA+c,cAAA,GAAiB/wB,WAAY,CAACgxB,eAA4B,IAAA;IAC9DJ,eAAA,CAAgBI,eAAe,CAAA;IAC/BH,cAAA,CAAev0C,OAAU,GAAA00C,eAAA;EAC3B,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMC,KAAQ,GAAAjxB,WAAA,CACZ,CAAC5kB,SAA6BorB,QAAqC,KAAA;IACjE,IAAI,CAACprB,OAAA,EAAS,OAAO,MAAM,KAAA,CAAA;IAE3B,IAAIc,WAAY,CAAAI,OAAA,CAAQuN,OAAQ,CAAAzO,OAAO,MAAM,CAAI,CAAA,EAAA;MACnCc,WAAA,CAAAI,OAAA,CAAQd,KAAKJ,OAAO,CAAA;MAClBg1C,aAAA,CAAApc,WAAA,EAAa93B,YAAYI,OAAO,CAAA;IAChD;IAEA,IAAIkqB,QAAU,EAAA;MACZ,MAAM0qB,aAAgB,GAAAh1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;MAEzD21C,cAAA,CAAeG,aAAa,CAAA;IAC9B;IAEA,OAAO,MAAM;MACX,MAAMjmC,GAAM,GAAA/O,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;MAE/C,IAAI6P,MAAM,CAAI,CAAA,EAAA;QACA/O,WAAA,CAAAI,OAAA,CAAQqJ,MAAO,CAAAsF,GAAA,EAAK,CAAC,CAAA;MACnC;IAAA,CACF;EACF,CAAA,EACA,CAAC+oB,aAAa+c,cAAc,CAAA,CAC9B;EAEA,MAAMrK,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA+C,IAAA;IAE1C,IAAAA,KAAA,CAAMtH,QAAQ,KAAO,EAAA;MACvB,IAAIs6C,aAAe,EAAA;QACjBA,aAAA,CAAcre,KAAM,CAAA,CAAA;MACtB;MAEA;IACF;IAGI,IAAA30B,KAAA,CAAMtH,QAAQ,MAAQ,EAAA;MACxBsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MAC7D,MAAAf,EAAA,GAAK41C,kBAAkB,CAAC,CAAA;MAE9B,IAAI,CAAC51C,EAAA,EAAI;MAET,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAGI,IAAA1zC,KAAA,CAAMtH,QAAQ,KAAO,EAAA;MACvBsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAMf,EAAK,GAAA41C,iBAAA,CAAkBA,iBAAkB,CAAAz5C,MAAA,GAAS,CAAC,CAAA;MAEzD,IAAI,CAAC6D,EAAA,EAAI;MAET,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEI,IAAA1zC,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAM+0C,eAAeF,iBAAkB,CAAAz5C,MAAA;MAEvC,IAAI25C,YAAiB,KAAA,CAAA,EAAG;MAExB,MAAMxH,cAAiB,GAAA3tC,WAAA,CAAYI,OAAQ,CAAAu0C,cAAA,CAAev0C,OAAO,CAAA;MAE7D,IAAAg1C,YAAA,GAAeH,iBAAkB,CAAAtnC,OAAA,CAAQggC,cAAc,CAAA;MAE3CyH,YAAA,GAAA,CAAAA,YAAA,GAAe,IAAID,YAAgB,IAAAA,YAAA;MAE7C,MAAA91C,EAAA,GAAK41C,kBAAkBG,YAAY,CAAA;MACzC,MAAMF,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEI,IAAA1zC,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBjkC,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEhB,MAAAuP,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;MACnE,MAAM+0C,eAAeF,iBAAkB,CAAAz5C,MAAA;MAEvC,IAAI25C,YAAiB,KAAA,CAAA,EAAG;MAExB,MAAMxH,cAAiB,GAAA3tC,WAAA,CAAYI,OAAQ,CAAAu0C,cAAA,CAAev0C,OAAO,CAAA;MAE7D,IAAAg1C,YAAA,GAAeH,iBAAkB,CAAAtnC,OAAA,CAAQggC,cAAc,CAAA;MAE3DyH,YAAA,GAAA,CAAgBA,eAAe,CAAK,IAAAD,YAAA;MAE9B,MAAA91C,EAAA,GAAK41C,kBAAkBG,YAAY,CAAA;MACzC,MAAMF,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;MAEnDw1C,cAAA,CAAeK,YAAY,CAAA;MAE3B;IACF;IAEA,IAAI7lC,SAAW,EAAA;MACbA,SAAA,CAAU7N,KAAK,CAAA;IACjB;EACF,CAAA,EACA,CAAC6N,SAAW,EAAAmlC,aAAA,EAAeK,cAAc,CAAA,CAC3C;EAEA,MAAMQ,oBAAuB,GAAAvxB,WAAA,CAC1BtiB,KAAyC,IAAA;IACxC,MAAMtC,UAAUsC,KAAM,CAAAipC,aAAA;IACtB,MAAMyK,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQzO,OAAO,CAAA;IAExD21C,cAAA,CAAeK,YAAY,CAAA;EAC7B,CAAA,EACA,CAACL,cAAc,CAAA,CACjB;EAEM,MAAAS,oBAAA,GAAuBxxB,YAAY,MAAM;IAM7C+wB,cAAA,CAAe,CAAE,CAAA,CAAA;IACJ/c,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAA3B,KAAA,CAAA,CAAA;EAAA,CACZ,EAAA,CAAC0e,cAAgB,EAAA/c,WAAW,CAAC,CAAA;EAGhC53B,SAAA,CAAU,MAAM;IACd,IAAI,CAAC00C,OAAA,EAAS;IAER,MAAAW,KAAA,GAAQ30C,MAAO,CAAAkK,qBAAA,CAAsB,MAAM;MAC/C,MAAM0qC,eAAeb,cAAe,CAAAv0C,OAAA;MAEpC,IAAIo1C,iBAAiB,CAAI,CAAA,EAAA;QACvB,IAAIf,gBAAgB,OAAS,EAAA;UACrB,MAAAQ,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;UAC7D,MAAAf,EAAA,GAAK41C,kBAAkB,CAAC,CAAA;UAE9B,IAAI51C,EAAI,EAAA;YACN,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;YAEnDw1C,cAAA,CAAeK,YAAY,CAAA;YAC3BP,cAAA,CAAev0C,OAAU,GAAA80C,YAAA;UAC3B;QACF;QAEA,IAAIT,gBAAgB,MAAQ,EAAA;UACpB,MAAAQ,iBAAA,GAAoBpB,qBAAsB,CAAA7zC,WAAA,CAAYI,OAAO,CAAA;UACnE,MAAMf,EAAK,GAAA41C,iBAAA,CAAkBA,iBAAkB,CAAAz5C,MAAA,GAAS,CAAC,CAAA;UAEzD,IAAI6D,EAAI,EAAA;YACN,MAAM61C,YAAe,GAAAl1C,WAAA,CAAYI,OAAQ,CAAAuN,OAAA,CAAQtO,EAAE,CAAA;YAEnDw1C,cAAA,CAAeK,YAAY,CAAA;YAC3BP,cAAA,CAAev0C,OAAU,GAAA80C,YAAA;UAC3B;QACF;QAEA;MACF;MAEA,MAAMh2C,OAAU,GAAAc,WAAA,CAAYI,OAAQ,CAAAo1C,YAAY,CAAK,IAAA,IAAA;MAE5Ct2C,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAi3B,KAAA,CAAA,CAAA;IAAA,CACV,CAAA;IAED,OAAO,MAAM;MACXv1B,MAAA,CAAOgjB,qBAAqB2xB,KAAK,CAAA;IAAA,CACnC;KACC,CAACxH,WAAA,EAAa6G,OAAS,EAAAC,cAAA,EAAgBJ,WAAW,CAAC,CAAA;EAE/C,OAAA;IACL5e,aAAA;IACAkY,WAAA;IACAsH,oBAAA;IACAC,oBAAA;IACA9K,aAAA;IACAuK,KAAA;IACAjd,WAAA;IACAua;EAAA,CACF;AACF;;;;;;AC/OA,IAAArvC,IAAA;AA+BA,MAAMyc,MAAO,GAAAC,MAAA,CAAOuG,GAAG,CAAA,CAAVjjB,IAAW,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,yCAAA,CAAA,CAAA,CAAA,CAAA;AAUjB,MAAMq5B,IAAO,GAAA11B,UAAA,CAAW,SAAS01B,KAAAA,CACtCp6C,OACAuX,GACA,EAAA;EACM,MAAA;IACJ7C,QAAA;IAAA;IAEA2lC,UAAA;IAAA;IAEAC,SAAA;IACAxD,cAAA;IACAyD,QAAA;IACAC,WAAA;IACAC,YAAA;IACAzmC,SAAA;IACAmlC,aAAA;IACA73C,OAAU,GAAA,CAAA;IACVo5C,eAAA;IACAtB,cAAep5C,KAAM,CAAAq6C,UAAA,IAAc,OAAa,IAAAr6C,KAAA,CAAMs6C,aAAa,MAAW,IAAA,IAAA;IAC9Ej6C,KAAQ,GAAA,CAAA;IACR,GAAG2kB;EACD,CAAA,GAAAhlB,KAAA;EAEE,MAAAuwB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EAElC,MAAA;IAACskB;GAAU,GAAIxC,QAAS,EAAA;EAExB,MAAA;IACJmB,aAAA;IACAkY,WAAA;IACAsH,oBAAA;IACAC,oBAAA;IACA9K,aAAA;IACAuK,KAAA;IACAjd,WAAA;IACAua;MACEkC,iBAAkB,CAAA;IAACllC,SAAW;IAAAmlC,aAAA;IAAeC;EAAY,CAAA,CAAA;EAE7D,MAAMuB,eAAkB,GAAAlyB,WAAA,CACrBzkB,EAA8B,IAAA;IAC7BgzC,cAAA,CAAehzC,EAAE,CAAA;IACjBusB,YAAA,CAAaxrB,OAAU,GAAAf,EAAA;EACzB,CAAA,EACA,CAACusB,cAAcymB,cAAc,CAAA,CAC/B;EAGAnyC,SAAA,CAAU,MAAM;IACV,IAAA41C,YAAA,EAAcA,YAAA,CAAa/H,WAAW,CAAA;EAAA,CACzC,EAAA,CAACA,WAAa,EAAA+H,YAAY,CAAC,CAAA;EAG9Br2C,eAAA,CACEqkB,WAAA,CACGtiB,KAAA,IAAU01B,UAAc,IAAAib,cAAA,IAAkBA,eAAe3wC,KAAK,CAAA,EAC/D,CAAC01B,YAAYib,cAAc,CAC7B,CAAA,EACA,CAACra,WAAW,CAAA,CACd;EAGA1oB,gBAAA,CACE0U,WAAA,CACGtiB,KAAU,IAAA;IACT,IAAI,CAAC01B,UAAA,EAAY;IAEb,IAAA11B,KAAA,CAAMtH,QAAQ,QAAU,EAAA;MAC1BsH,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAClB,IAAAkQ,QAAA,EAAmBA,QAAA,EAAA;IACzB;EACF,CAAA,EACA,CAAC1e,YAAY0e,QAAQ,CACvB,CAAA,CACF;EAGA11C,SAAA,CAAU,MAAM;IACV,IAAA,CAAC43B,eAAe,CAACie,eAAA,EAAiB;IAEtC,OAAOA,gBAAgBje,WAAW,CAAA;EAAA,CACjC,EAAA,CAACie,eAAiB,EAAAje,WAAW,CAAC,CAAA;EAEjC,MAAM/9B,KAA0B,GAAA+E,OAAA,CAC9B,OAAO;IACLsR,OAAS,EAAA,CAAA;IACTylB,aAAA;IACAkY,WAAA;IACAgH,KAAA;IACA5C,cAAA;IACAyD,QAAA;IACAC,WAAA;IACAI,gBAAkB,EAAAZ,oBAAA;IAClBa,gBAAkB,EAAAZ,oBAAA;IAClBS,eAAA;IAAA;IAGAjM,YAAc,EAAAuL,oBAAA;IACdrL,YAAc,EAAAsL;EAAA,CAChB,CAAA,EACA,CACEzf,aAAA,EACAkY,WAAA,EACAgH,KAAA,EACAM,oBAAA,EACAC,oBAAA,EACAnD,cAAA,EACAyD,QAAA,EACAC,WAAA,EACAE,eAAA,CACF,CACF;EAEA,OACG,eAAAzlC,GAAA,CAAAqjC,WAAA,CAAYpjC,QAAZ,EAAA;IAAqBxW,KACpB;IAAAgW,QAAA,EAAA,eAAAO,GAAA,CAACmP,MAAA,EAAA;MACC,SAAQ,EAAA,MAAA;MACP,GAAGY,SAAA;MACJhR,SAAW,EAAAm7B,aAAA;MACX7tC,OAAA;MACAiW,GAAK,EAAAojC,eAAA;MACLtL,IAAK,EAAA,MAAA;MACL3U,QAAU,EAAA,CAAA,CAAA;MAEVhmB,QAAA,EAAA,eAAAO,GAAA,CAACwyB,KAAM,EAAA;QAAApnC,KAAA;QAAeqU;MAAS,CAAA;IAAA,CAEnC;EAAA,CAAA,CAAA;AAEJ,CAAC,CAAA;ACnHM,MAAMomC,UAAa,GAAAp2B,UAAA,CAAW,SAASo2B,WAAAA,CAC5C96C,OACAuX,GACA,EAAA;EACM,MAAA;IACJwjC,uCAAuCC,0BAA6B,GAAA,KAAA;IACpE12C,eAAiB,EAAA22C,0BAAA;IACjBvtB,MAAQ,EAAAwtB,UAAA;IACRryB,EAAA;IACAsyB,IAAM,EAAAC,QAAA;IACNrE,OAAA;IACAsE,MAAA;IACAzmB,SAAW,EAAA0mB,oBAAA;IACXC,aAAe,EAAAC,wBAAA;IACfte,QAAQue,iBAAoB,GAAA,IAAA;IAC5BhX,OAAA;IACAiX,aAAe,EAAAC,wBAAA;IACfvX,eAAiB,EAAAwX;EACf,CAAA,GAAA57C,KAAA;EACJ,MAAM,CAACkkC,IAAA,EAAMyQ,OAAO,CAAA,GAAInwC,SAAS,KAAK,CAAA;EACtC,MAAM,CAAC40C,WAAA,EAAayC,cAAc,CAAA,GAAIr3C,SAAkC,IAAI,CAAA;EAC5E,MAAM,CAACs3C,aAAA,EAAeC,gBAAgB,CAAA,GAAIv3C,SAAmC,IAAI,CAAA;EACjF,MAAM,CAACw3C,YAAc,EAAAC,oBAAoB,CAAI,GAAAz3C,QAAA,CAAwB,EAAE,CAAA;EACjE,MAAA03C,OAAA,GAAUt3C,OAAgBs/B,IAAI,CAAA;EAGpCr/B,SAAA,CAAU,MAAM;IACd,IAAIw2C,MAAU,IAAAnX,IAAA,IAAQ,CAACgY,OAAA,CAAQn3C,OAAS,EAAA;MAC/Bs2C,MAAA,EAAA;IACT;EAAA,CACC,EAAA,CAACA,MAAQ,EAAAnX,IAAI,CAAC,CAAA;EAGjBr/B,SAAA,CAAU,MAAM;IACd,IAAIkyC,OAAW,IAAA,CAAC7S,IAAQ,IAAAgY,OAAA,CAAQn3C,OAAS,EAAA;MAC/BgyC,OAAA,EAAA;IACV;EAAA,CACC,EAAA,CAACA,OAAS,EAAA7S,IAAI,CAAC,CAAA;EAElBr/B,SAAA,CAAU,MAAM;IACdq3C,OAAA,CAAQn3C,OAAU,GAAAm/B,IAAA;EAAA,CACpB,EAAG,CAACA,IAAI,CAAC,CAAA;EAEH,MAAAiY,iBAAA,GAAoB1zB,YAAY,MAAM;IAClCksB,OAAA,CAACr3C,CAAM,IAAA,CAACA,CAAC,CAAA;IACjBu+C,cAAA,CAAe,IAAI,CAAA;EACrB,CAAA,EAAG,EAAE,CAAA;EAKL,MAAMO,eAAkB,GAAA3zB,WAAA,CACrBtiB,KAAwB,IAAA;IACnB,IAAA+9B,IAAA,EAAM/9B,KAAA,CAAMikC,cAAe,CAAA,CAAA;EACjC,CAAA,EACA,CAAClG,IAAI,CAAA,CACP;EAEM,MAAAmY,mBAAA,GAAsB5zB,WAAY,CAACtiB,KAAkD,IAAA;IAGrF,IAAAA,KAAA,CAAMtH,QAAQ,WAAe,IAAAsH,KAAA,CAAMtH,QAAQ,OAAW,IAAAsH,KAAA,CAAMtH,QAAQ,GAAK,EAAA;MAC3EsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBuK,OAAA,CAAQ,IAAI,CAAA;MACZkH,cAAA,CAAe,OAAO,CAAA;MAEtB;IACF;IAII,IAAA11C,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MACrBuK,OAAA,CAAQ,IAAI,CAAA;MACZkH,cAAA,CAAe,MAAM,CAAA;MAErB;IACF;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMS,sBAAyB,GAAA7zB,WAAA,CAC5BtiB,KAAsB,IAAA;IACrB,MAAMf,SAASe,KAAM,CAAAf,MAAA;IAEjB,IAAA,EAAEA,kBAAkBC,IAAO,CAAA,EAAA;MAC7B;IACF;IAEA,IAAIy2C,kBAAkB12C,MAAW,KAAA02C,aAAA,IAAiBA,aAAc,CAAAx2C,QAAA,CAASF,MAAM,CAAI,CAAA,EAAA;MACjF;IACF;IAEA,KAAA,MAAWpB,MAAMg4C,YAAc,EAAA;MAC7B,IAAI52C,MAAW,KAAApB,EAAA,IAAMA,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxC;MACF;IACF;IAEAuvC,OAAA,CAAQ,KAAK,CAAA;EACf,CAAA,EACA,CAACmH,eAAeE,YAAY,CAAA,CAC9B;EAEM,MAAAO,gBAAA,GAAmB9zB,YAAY,MAAM;IACzCksB,OAAA,CAAQ,KAAK,CAAA;IACT,IAAAqG,0BAAA,EAA4B;IAC5B,IAAAc,aAAA,EAAeA,aAAA,CAAchhB,KAAM,CAAA,CAAA;EAAA,CACtC,EAAA,CAACghB,aAAe,EAAAd,0BAA0B,CAAC,CAAA;EAE9C,MAAM7M,UAAa,GAAA1lB,WAAA,CAChBtiB,KAA+C,IAAA;IAC9C,MAAMf,SAASe,KAAM,CAAAq2C,aAAA;IAEjB,IAAA,EAAEp3C,kBAAkBC,IAAO,CAAA,EAAA;MAC7B;IACF;IAEA,KAAA,MAAWrB,MAAMg4C,YAAc,EAAA;MAC7B,IAAIh4C,EAAO,KAAAoB,MAAA,IAAUpB,EAAG,CAAAsB,QAAA,CAASF,MAAM,CAAG,EAAA;QACxC;MACF;IACF;IAEAuvC,OAAA,CAAQ,KAAK,CAAA;EACf,CAAA,EACA,CAACqH,YAAY,CAAA,CACf;EAEM,MAAAS,eAAA,GAAkBh0B,YAAY,MAAM;IACxCksB,OAAA,CAAQ,KAAK,CAAA;IACT,IAAAqG,0BAAA,EAA4B;IAC5B,IAAAc,aAAA,EAAeA,aAAA,CAAchhB,KAAM,CAAA,CAAA;EAAA,CACtC,EAAA,CAACghB,aAAe,EAAAd,0BAA0B,CAAC,CAAA;EAExC,MAAAN,eAAA,GAAkBjyB,WAAY,CAACzkB,EAAoB,IAAA;IACvDi4C,oBAAA,CAAsBS,GAAQ,IAAAA,GAAA,CAAI19C,OAAO,CAACgF,EAAE,CAAC,CAAC,CAAA;IAE9C,OAAO,MAAM;MACXi4C,oBAAA,CAAsBS,GAAQ,IAAA;QAC5B,OAAOA,GAAI,CAAAx4C,MAAA,CAAQy4C,GAAA,IAAQA,QAAQ34C,EAAE,CAAA;MAAA,CACtC,CAAA;IAAA,CACH;EACF,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM44C,SAAuB,GAAAn5C,OAAA,CAC3B,OAAO;IACL,iBAAmB,EAAAolB,EAAA;IACnBg0B,aAAe,EAAA1O,UAAA;IACf2I,cAAgB,EAAAwF,sBAAA;IAChB/B,QAAU,EAAAgC,gBAAA;IACV/B,WAAa,EAAAiC,eAAA;IACbtD,aAAe,EAAA2C,aAAA;IACfpB,eAAA;IACAtB;EAAA,CACF,CAAA,EACA,CACE0C,aAAA,EACAQ,sBAAA,EACAC,gBAAA,EACAE,eAAA,EACA5zB,EAAA,EACAslB,UAAA,EACAuM,eAAA,EACAtB,WAAA,CACF,CACF;EAEA,MAAM+B,OAAOv/C,cAAU,CAAAA,SAAA,CAAAw/C,QAAQ,IAAI1wB,YAAa,CAAA0wB,QAAA,EAAUwB,SAAS,CAAI,GAAA,IAAA;EAEvE,MAAME,YAAe,GAAAr0B,WAAA,CAClBzkB,EAAiC,IAAA;IAC5B,IAAA,OAAOuT,QAAQ,UAAY,EAAA;MAC7BA,GAAA,CAAIvT,EAAE,CAAA;eACGuT,GAAK,EAAA;MACdA,GAAA,CAAIxS,OAAU,GAAAf,EAAA;IAChB;IAEA+3C,gBAAA,CAAiB/3C,EAAE,CAAA;EACrB,CAAA,EACA,CAACuT,GAAG,CAAA,CACN;EAEA,MAAMmW,MAAS,GAAAjqB,OAAA,CACb,MACE7H,wBAAA,CAAUs/C,UAAU,CAAA,GAChBxwB,aAAawwB,UAAY,EAAA;IACvB,SAAW,EAAA,YAAA;IACXryB,EAAA;IACAiiB,OAAS,EAAAqR,iBAAA;IACTnoC,SAAW,EAAAqoC,mBAAA;IACXtR,WAAa,EAAAqR,eAAA;IACb,eAAiB,EAAA,IAAA;IACjB,eAAiB,EAAAlY,IAAA;IACjB3sB,GAAK,EAAAulC,YAAA;IACL7tB,QAAU,EAAAiV;EACX,CAAA,CACD,GAAA,IAAA,EACN,CAACgX,UAAY,EAAAiB,iBAAA,EAAmBE,qBAAqBD,eAAiB,EAAAvzB,EAAA,EAAIqb,MAAM4Y,YAAY,CAAA,CAC9F;EAEA,MAAMC,YAA2C,GAAAt5C,OAAA,CAC/C,OAAO;IACLa,eAAiB,EAAA22C,0BAAA;IACjB5hC,QAAU,EAAA,MAAA;IACVub,SAAW,EAAA0mB,oBAAA;IACXpe,MAAQ,EAAAue,iBAAA;IACRrX,eAAiB,EAAAwX,0BAAA;IACjB14B,MAAQ,EAAAy4B,wBAAA;IACRhnC,MAAQ,EAAA6mC,wBAAA;IACR,IAAI/W,WAAW,CAAC,CAAA;EAAA,CAClB,CAAA,EACA,CACEwW,0BAAA,EACAK,oBAAA,EACAK,wBAAA,EACAH,wBAAA,EACAC,iBAAA,EACAG,0BAAA,EACAnX,OAAA,CACF,CACF;EAGE,OAAA,eAAAxvB,GAAA,CAACiuB,OAAQ,EAAA;IAAA,SAAA,EAAQ,qBAAuB;IAAA,GAAG6Z,YAAc;IAAAv7C,OAAA,EAAS25C,IAAM;IAAAjX,IAAA;IACrExvB,QAAU,EAAAgZ,MAAA,IAAA,eAAAzY,GAAA,CAAApa,QAAA,EAAA,CAAA,CAAE;EACf,CAAA,CAAA;AAEJ,CAAC,CAAA;;;;;;ACxRD,IAAA8M,IAAA;AAKa,MAAAq1C,WAAA,GAAc34B,MAAO,CAAA44B,EAAA,CAAPt1C,IAAS,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,gGAAA,CAAA,CAAA,CAAA,CAAA;;;;;;ACLpC,IAAApZ,IAAA,EAAAO,IAAA;AAaO,SAASg1C,mBAA8CA,CAAA,EAAA;EAC5D,OAAOp8B,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,qaAAA,CAAA,CAAA,CAAA,CAAA;AAqBZ;AAEO,SAASo8B,qBACdn9C,KACwB,EAAA;EAvC1B2H,IAAAA,GAAAA;EAwCQ,MAAA;IAACwZ;EAAS,CAAA,GAAAnhB,KAAA;EAChB,MAAM;IAACgb,KAAO;IAAApc;EAAA,CAAS,GAAA0B,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACxC,MAAA8U,IAAA,GAAOmG,KAAM,CAAA6U,UAAA,CAAW1O,KAAK,CAAA;EAEnC,OAAOL,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,QAAA,EAC8B,0LASK,EAAA,qFAAA,EAKC,+FAKC,yJAOG,EAAA,2DAAA,EAIA,wIAUL,EAAA,oFAAA,EAKC,yDAIC,yJAOG,EAAA,yDAAA,EAGA,iEAO7B,EAAA,MAAA,CAAA,CAAA,CAAA,EAlEjBiL,gBAAgBhR,KAAO,EAAAnG,IAAA,CAAKyM,OAAO,CAAA,EAS/B0K,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAA4M,QAAQ,GAKlCuK,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAsZ,OAAO,GAKnCnC,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAoa,QAAQ,GAOhCjD,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAoN,OAAO,CAInC,EAAA+J,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKsZ,OAAO,CAUzC,EAAAnC,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAK4M,QAAQ,CAKlC,EAAAuK,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKsZ,OAAO,CAInC,EAAAnC,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKoa,QAAQ,CAOhC,EAAAjD,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKoN,OAAO,CAGnC,EAAA+J,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKsZ,OAAO,CAO7CxmB,EAAAA,CAAAA,GAAAA,GAAA/I,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,KAAA,CAAAiZ,IAAA,KAAP,gBAAAlQ,GAAa,CAAA2N,IAAA,CAAA;AAEnB;ACzGa,MAAA8nC,UAAA,GAAa/4B,OAAOuG,GAAG,CAAA,CAClC3H,qBAAA,EACAi6B,mBAAA,EACAC,oBACF,CAAA;ACRO,SAASE,OAA4BA,CAAA,EAAA;EACpC,MAAA3+C,KAAA,GAAQ+V,WAAW6jC,WAAW,CAAA;EAEpC,IAAI,CAAC55C,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,kCAAkC,CAAA;EACpD;EAKA,IAAI,CAACs3B,QAAS,CAAAh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAK,EAAA;IACvC,MAAA,IAAI3U,MAAM,gDAAgD,CAAA;EAClE;EAEO,OAAA1B,KAAA;AACT;ACUO,SAAS4+C,UACdt9C,KAEoB,EAAA;EACd,MAAA;IACJmnB,EAAK,GAAA,QAAA;IACLzS,QAAA;IACA3S,QAAW,GAAA,CAAA;IACX+qB,IAAA;IACAge,OAAA;IACAxpC,OAAU,GAAA,CAAA;IACVmjC,OAAA;IACAvhB,MAAS,GAAA,CAAA;IACT7iB,KAAQ,GAAA,CAAA;IACRkgB,IAAA;IACA1L,IAAO,GAAA,SAAA;IACP,GAAGmQ;EACD,CAAA,GAAAhlB,KAAA;EACJ,MAAMm7C,OAAOkC,OAAQ,EAAA;EACf,MAAA;IAAC1oC;GAAM,GAAIS,YAAa,EAAA;EACxB,MAAA;IACJolB,aAAA;IACAkf,KAAA;IACA5C,cAAA;IACAyD,QAAA;IACAC,WAAA;IACAI,mBAAmBO,IAAK,CAAA1M,YAAA;IACxBiM;EACE,CAAA,GAAAS,IAAA;EACJ,MAAM,CAAC1e,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAoD,IAAI,CAAA;EAC9F,MAAM,CAAC0/B,IAAA,EAAMyQ,OAAO,CAAA,GAAInwC,SAAS,KAAK,CAAA;EAChC,MAAA+4C,cAAA,GAAiB34C,OAAgC,IAAI,CAAA;EAC3D,MAAMsvC,MAAS,GAAA/vC,OAAA,CAAQq2B,aAAa,CAAA,IAAKA,aAAkB,KAAAiC,WAAA;EAC3D,MAAM,CAAC+gB,UAAA,EAAYC,aAAa,CAAA,GAAIj5C,SAAS,KAAK,CAAA;EAElD,MAAMgqC,gBAAmB,GAAA/lB,WAAA,CACtBtiB,KAAyC,IAAA;IACxCs3C,aAAA,CAAc,KAAK,CAAA;IACnB7C,gBAAA,CAAiBz0C,KAAK,CAAA;IACtBwuC,OAAA,CAAQ,IAAI,CAAA;EACd,CAAA,EACA,CAACiG,gBAAgB,CAAA,CACnB;EAEA,MAAM8C,iBAAoB,GAAAj1B,WAAA,CACvBtiB,KAA+C,IAAA;IAC1C,IAAAA,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MAEtBsK,OAAA,CAAQ,KAAK,CAAA;MAEbllC,qBAAA,CAAsB,MAAM;QACbgtB,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,WAAA,CAAA3B,KAAA,CAAA,CAAA;MAAA,CACd,CAAA;IACH;EACF,CAAA,EACA,CAAC2B,WAAW,CAAA,CACd;EAEA,MAAM4R,WAAc,GAAA5lB,WAAA,CACjBtiB,KAA4C,IAAA;IACvC,IAAA2kC,OAAA,EAASA,OAAA,CAAQ3kC,KAAK,CAAA;IAE1Bo3C,cAAA,CAAex4C,OAAU,GAAA,OAAA;IAEzB4vC,OAAA,CAAQ,IAAI,CAAA;IAEZllC,qBAAA,CAAsB,MAAM;MAC1B8tC,cAAA,CAAex4C,OAAU,GAAA,IAAA;IAAA,CAC1B,CAAA;EACH,CAAA,EACA,CAAC+lC,OAAO,CAAA,CACV;EAEM,MAAA6S,oBAAA,GAAuBl1B,YAAY,MAAM;IAC7CksB,OAAA,CAAQ,KAAK,CAAA;IACT,IAAA6F,WAAA,EAAyBA,WAAA,EAAA;EAAA,CAC/B,EAAG,CAACA,WAAW,CAAC,CAAA;EAEhB,MAAMoD,uBAAuBn1B,WAAY,CAAA,MAAMg1B,cAAc,IAAI,CAAA,EAAG,EAAE,CAAA;EAGtE54C,SAAA,CAAU,MAAM60C,KAAM,CAAAjd,WAAW,GAAG,CAACid,KAAA,EAAOjd,WAAW,CAAC,CAAA;EAGxD53B,SAAA,CAAU,MAAM;IACd,IAAI,CAACqvC,MAAA,EAAQS,OAAA,CAAQ,KAAK,CAAA;EAAA,CAC5B,EAAG,CAACT,MAAM,CAAC,CAAA;EAGXrvC,SAAA,CAAU,MAAM;IACd,IAAI,CAACq/B,IAAA,EAAMuZ,aAAA,CAAc,KAAK,CAAA;EAAA,CAChC,EAAG,CAACvZ,IAAI,CAAC,CAAA;EAET,MAAM2Z,SACJ,GAAA,eAAA5oC,GAAA,CAACmlC,IAAA,EAAA;IACCtD,cAAA;IACAyD,QAAA;IACAC,WAAa,EAAAmD,oBAAA;IACb3pC,SAAW,EAAA0pC,iBAAA;IACXjP,YAAc,EAAAmP,oBAAA;IACdlD,eAAA;IACAtB,aAAamE,cAAe,CAAAx4C,OAAA;IAE3B2P;EAAA,CAAA,CACH;EAGI,MAAAy6B,aAAA,GAAgB1mB,WAAY,CAACtiB,KAA+C,IAAA;IAChF,MAAMf,SAASe,KAAM,CAAAipC,aAAA;IAEjB,IAAA9oC,QAAA,CAASk0B,kBAAkBp1B,MAAQ,EAAA;MACrC;IACF;IAEI,IAAAe,KAAA,CAAMtH,QAAQ,YAAc,EAAA;MAC9B0+C,cAAA,CAAex4C,OAAU,GAAA,OAAA;MAEzB4vC,OAAA,CAAQ,IAAI,CAAA;MACZ8I,aAAA,CAAc,IAAI,CAAA;MAElBhuC,qBAAA,CAAsB,MAAM;QAC1B8tC,cAAA,CAAex4C,OAAU,GAAA,IAAA;MAAA,CAC1B,CAAA;MAED;IACF;EACF,CAAA,EAAG,EAAE,CAAA;EAGH,OAAA,eAAAkQ,GAAA,CAACiuB;IAAS,GAAGuB,OAAA;IAASjjC,SAASq8C,SAAW;IAAA,SAAA,EAAQ;IAAqB3Z,IACrE;IAAAxvB,QAAA,EAAA,eAAAO,GAAA,CAACmoC,UAAA,EAAA;MACC,SAAS,EAAAj2B,EAAA;MACT,SAAQ,EAAA,WAAA;MACRmC,WAAa,EAAAnC,EAAA;MACZ,GAAGnC,SAAA;MACJ,cAAA,EAAcmC,EAAO,KAAA,QAAA,GAAWq2B,UAAa,GAAA,KAAA,CAAA;MAC7C,cAAA,EAAcr2B,EAAO,KAAA,QAAA,GAAWq2B,UAAa,GAAA,KAAA,CAAA;MAC7C,eAAe,EAAA,CAACA,UAAc,IAAAtJ,MAAA,GAAS,EAAK,GAAA,KAAA,CAAA;MAC5C/wB,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;MAC5B/B,KAAO,EAAAtM,IAAA;MACPqM,OAAS,EAAAvM,MAAA;MACTm2B,OAAS,EAAAuD,WAAA;MACTr6B,SAAW,EAAAm7B,aAAA;MACXV,YAAc,EAAAD,gBAAA;MACdj3B,GAAK,EAAAy/B,cAAA;MACLtc,QAAU,EAAA,CAAA,CAAA;MACVxgC,IAAA,EAAMitB,EAAO,KAAA,QAAA,GAAW,QAAW,GAAA,KAAA,CAAA;MAEnCzS,QAAC,EAAA,eAAAiU,IAAA,CAAAgD,IAAA,EAAA;QAAK5R,GAAK,EAAA1Z,KAAA;QAAOiB,OACf;QAAAoT,QAAA,EAAA,CACCoY,IAAA,IAAA,eAAAnE,IAAA,CAACyC,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACT;UAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;SACjD,CAAA,EAAA,eAGD7X,GAAA,CAAA2V,GAAA,EAAA;UAAI9P,IAAM,EAAA,CAAA;UACTpG,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;YAAKppB,IAAM,EAAAD,QAAA;YAAU+iB,YAAa,EAAA,UAAA;YAAWC,MAAO,EAAA,QAAA;YAClDrQ;UACH,CAAA;SACF,CAAA,EAAA,mBAEC0W,IAAK,EAAA;UAAAppB,IAAA,EAAMD,QACV;UAAA2S,QAAA,EAAA,eAAAO,GAAA,CAAC6oC,mBAAiB,CAAA;SACpB,CAAA;OACF;IAAA,CAEJ;EAAA,CAAA,CAAA;AAEJ;ACjKO,MAAMC,QAAW,GAAAr5B,UAAA,CAAW,SAASq5B,SAAAA,CAC1C/9C,OAEAuwB,YACA,EAAA;EACM,MAAA;IACJpJ,EAAK,GAAA,QAAA;IACLzS,QAAA;IACA+M,QAAA;IACA1f,QAAW,GAAA,CAAA;IACXi8C,OAAA;IACAlxB,IAAA;IACAwB,SAAA;IACAwc,OAAA;IACAxpC,OAAU,GAAA,CAAA;IACV0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAC,YAAA;IACAC,aAAA;IACAC,WAAA;IACAkjB,OAAA;IACAjL,MAAS,GAAA,CAAA;IACT+L,QAAU,EAAAgvB,YAAA;IACV59C,KAAQ,GAAA,CAAA;IACRkgB,IAAA;IACA1L,IAAO,GAAA,SAAA;IACP,GAAGmQ;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAA;IAAC2U;GAAM,GAAIS,YAAa,EAAA;EAC9B,MAAM+lC,OAAOkC,OAAQ,EAAA;EACf,MAAA;IACJ7iB,aAAA;IACAkf,KAAA;IACAc,WAAA;IACAI,mBAAmBO,IAAK,CAAA1M,YAAA;IACxBoM,mBAAmBM,IAAK,CAAAxM;EACtB,CAAA,GAAAwM,IAAA;EACJ,MAAM,CAAC1e,WAAA,EAAaua,cAAc,CAAA,GAAIxyC,SAAgC,IAAI,CAAA;EAC1E,MAAM0vC,MAAS,GAAA/vC,OAAA,CAAQq2B,aAAa,CAAA,IAAKA,aAAkB,KAAAiC,WAAA;EAEjD53B,SAAA,CAAA,MAAM60C,MAAMjd,WAAa,EAAAwhB,YAAY,GAAG,CAACvE,KAAA,EAAOjd,WAAa,EAAAwhB,YAAY,CAAC,CAAA;EAE9E,MAAA1mC,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC,MAAM8d,WAAc,GAAA5lB,WAAA,CACjBtiB,KAA4C,IAAA;IACvC,IAAAsb,QAAA,EAAU;IACV,IAAAqpB,OAAA,EAASA,OAAA,CAAQ3kC,KAAK,CAAA;IACtB,IAAAq0C,WAAA,EAAyBA,WAAA,EAAA;EAC/B,CAAA,EACA,CAAC/4B,QAAU,EAAAqpB,OAAA,EAAS0P,WAAW,CAAA,CACjC;EAEA,MAAM0D,YAAe,GAAAz6C,OAAA,CACnB,OAAO;IACLnC,OAAA;IACA0pB,QAAA;IACAC,QAAA;IACAngB,UAAA;IACAC,YAAA;IACAC,aAAA;IACAC;EAAA,CACF,CAAA,EACA,CAAC3J,OAAS,EAAA0pB,QAAA,EAAUC,UAAUngB,UAAY,EAAAC,YAAA,EAAcC,eAAeC,WAAW,CAAA,CACpF;EAEM,MAAAkzC,eAAA,GAAkB56C,aAAaxB,QAAQ,CAAA,CAAEzC,IAAKmhB,CAAA,IAAMA,IAAI,CAAC,CAAA;EAE/D,MAAM6X,MAAS,GAAA7P,WAAA,CACZzkB,EAA8B,IAAA;IAC7BuT,GAAA,CAAIxS,OAAU,GAAAf,EAAA;IACdgzC,cAAA,CAAehzC,EAAE,CAAA;EACnB,CAAA,EACA,CAACuT,GAAG,CAAA,CACN;EAGE,sBAAAoR,IAAA,CAACy0B,UAAA,EAAA;IACC,SAAQ,EAAA,UAAA;IACP,GAAGp4B,SAAA;IACJ,cAAA,EAAcmC,OAAO,QAAY,IAAAgH,OAAA;IACjC,cAAc,EAAAhH,EAAA,KAAO,QAAY,IAAAgH,OAAA,GAAU,EAAK,GAAA,KAAA,CAAA;IAChD,eAAA,EAAe+lB,SAAS,EAAK,GAAA,KAAA,CAAA;IAC7B,eAAA,EAAezyB,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/B6H,WAAa,EAAAnC,EAAA;IACbhE,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;IAC5BlD,QAAA,EAAUzc,aAAa,CAAC,CAAA;IACxB4d,KAAA,EAAOM,WAAW,SAAY,GAAA5M,IAAA;IAC9BqM,OAAS,EAAAvM,MAAA;IACT8M,QAAA;IACAqpB,OAAS,EAAAuD,WAAA;IACTI,YAAc,EAAAmM,gBAAA;IACdjM,YAAc,EAAAkM,gBAAA;IACdtjC,GAAK,EAAA+gB,MAAA;IACL+W,IAAK,EAAA,UAAA;IACL3U,QAAU,EAAA,CAAA,CAAA;IACVxgC,IAAA,EAAMitB,EAAO,KAAA,QAAA,GAAW,QAAW,GAAA,KAAA,CAAA;IAEjCzS,QAAA,EAAA,CAAQ,CAAAoY,IAAA,IAAAvM,IAAA,IAAQ+N,SAChB,KAAA,eAAA3F,IAAA,CAACgD,IAAK,EAAA;MAAAxE,EAAA,EAAG,MAAO;MAAApN,GAAA,EAAK1Z,KAAO;MAAAuZ,KAAA,EAAM,QAAU;MAAA,GAAGskC,YAC5C;MAAAxpC,QAAA,EAAA,CACCoY,IAAA,IAAA,eAAAnE,IAAA,CAACyC,IAAK,EAAA;QAAAppB,IAAA,EAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAetC,IAAI,CAAK,IAAAA,IAAA,EACxB7yB,cAAAA,CAAAA,kBAAmB,CAAA6yB,IAAI,CAAK,IAAAuC,aAAA,CAAcvC,IAAI,CAAA;OACjD,CAAA,EAGDvM,IACC,IAAA,eAAAtL,GAAA,CAAC2V,GAAI,EAAA;QAAA9P,IAAA,EAAM;QACTpG,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;UAAKppB,IAAM,EAAAD,QAAA;UAAU+iB,YAAa,EAAA,UAAA;UAAWC,MAAO,EAAA,QAAA;UAClDrQ;QACH,CAAA;OACF,CAAA,EAGDspC,OACC,mBAAA/oC,GAAA,CAACojC,OAAA,EAAA;QACCt2C,QAAU,EAAAo8C,eAAA;QACV1/C,IAAM,EAAAu/C,OAAA;QACNp/C,KAAO,EAAA;UAACkE,SAAW,EAAA,CAAA,CAAA;UAAIC,cAAc,CAAE;QAAA;MAAA,CACzC,CAAA,EAGDurB,SACC,IAAA,eAAA3F,IAAA,CAACyC,IAAK,EAAA;QAAAppB,IAAA,EAAMD,QACT;QAAA2S,QAAA,EAAA,CAAA0a,cAAA,CAAed,SAAS,CAAK,IAAAA,SAAA,EAC7Br0B,cAAAA,CAAAA,kBAAmB,CAAAq0B,SAAS,CAAK,IAAAe,aAAA,CAAcf,SAAS,CAAA;OAC3D,CAAA;KAEJ,CAAA,EAED5Z,YACE,eAAAO,GAAA,CAAA2V,GAAA,EAAA;MAAIzD,IAAG,MAAQ;MAAA,GAAG+2B;MAChBxpC;KACH,CAAA;EAAA,CAAA,CAEJ;AAEJ,CAAC,CAAA;;;;;;ACjLD,IAAA/M,IAAA,EAAAO,IAAA,EAAA0Y,IAAA,EAAAwiB,EAAA;AAEA,MAAMgb,WAAWvyB,SAAS,CAAAlkB,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,iGAAA,CAAA,CAAA,CAAA,CAAA;AAS1B,MAAMs9B,SAAA,GAAYv9B,GAAG,CAAA5Y,IAAA,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,0WAAA,EAYO,uHAAR,CAAA,CAAA,CAAA,EAAAq9B,QAAA,CAAA;AAUb,MAAME,gBAAgBx9B,GAA4C,CAAAsiB,EAAA,KAAAA,EAAA,GAAAriB,YAAA,CAAA,CAAA,eAAA,EAC1B,kHASpC,gIATE,CAAA,CAAA,CAAA,EAAAw9B,MAAA;EAAA,IAAC;IAACC;EAAQ,CAAA,GAAAD,MAAA;EAAA,OAAOC,QAAW,GAAA,CAAA,GAAI;GAIvCC,MAAA;EAAA,IAAC;IAACC;GACF,GAAAD,MAAA;EAAA,OAAAC,SAAA,GACIL,YACAv9B,GAAG,CAAAF,IAAA,KAAAA,IAAA,GAAAG,YAAA,CAAA,CAAA,8EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,EAAA;ACjCb,MAAMqD,MAAA,GAAOC,OAAOuG,GAAG,CAAA,CACrB3H,qBAAA,EACAq7B,aACF,CAAA;AAeO,MAAMK,QAAW,GAAAj6B,UAAA,CAAW,SAASi6B,SAAAA,CAC1C3+C,OACAuX,GACA,EAAA;EACA,MAAM;IAACqnC,QAAW,GAAA,KAAA;IAAOtT;IAAOpoB,MAAQ;IAAA,GAAG8B;EAAa,CAAA,GAAAhlB,KAAA;EACxD,MAAM,CAAC6+C,OAAS,EAAAC,UAAU,IAAIt6C,QAAkB,CAAA8mC,KAAA,GAAQ,QAAQ,IAAI,CAAA;EAEpEzmC,SAAA,CAAU,MAAM;IACd,IAAI,CAACymC,KAAO,EAAA;MACV,OAAOwT,WAAW,IAAI,CAAA;IACxB;IAEM,MAAA3uC,OAAA,GAAUs7B,WAAW,MAAM;MAC/BqT,UAAA,CAAW,IAAI,CAAA;OACdxT,KAAK,CAAA;IAER,OAAO,MAAM;MACXE,YAAA,CAAar7B,OAAO,CAAA;IAAA,CACtB;EAAA,CACF,EAAG,CAACm7B,KAAK,CAAC,CAAA;EAGR,sBAAAr2B,GAAA,CAACmP,MAAA,EAAA;IACE,GAAGY,SAAA;IACJ05B,SAAW,EAAAE,QAAA;IACXz7B,OAAA,EAAS5f,aAAa2f,MAAM,CAAA;IAC5Bs7B,QAAU,EAAAK,OAAA;IACVtnC;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;ACjDD,MAAM6M,MAAO,GAAAC,MAAA,CAAOs6B,QAAQ,CAAA,CAC1B3+C,KAIG,IAAA;EACG,MAAA;IAACU,KAAO;IAAAq+C;EAAU,CAAA,GAAA/+C,KAAA;EACxB,MAAM;IAACY,IAAM;IAAA1B;EAAA,CAAS,GAAAoB,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACvC,MAAAi/C,SAAA,GAAYp+C,KAAKm+C,MAAM,CAAA;EAE7B,MAAMr+B,MAAS,GAAAzhB,WAAA,CAAYC,KAAO,EAAAwB,KAAA,EAAQoB,SAAc,IAAA;IAChD,MAAAC,QAAA,GAAWi9C,SAAU,CAAAl+C,KAAA,CAAMgB,SAAS,CAAA;IAC1C,MAAMS,SAAY,GAAAR,QAAA,CAASM,UAAa,GAAAN,QAAA,CAASE,iBAAiBF,QAAS,CAAAG,eAAA;IAEpE,OAAA;MAACR,QAAQa;KAAS;EAAA,CAC1B,CAAA;EAEM,OAAAme,MAAA;AACT,CAAC,CAAA;AAsCM,MAAMu+B,YAAe,GAAAv6B,UAAA,CAAW,SAASu6B,aAAAA,CAC9Cj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAO,CAAA,CAAA;AACpE,CAAC,CAAA;AAMM,MAAMG,aAAgB,GAAAx6B,UAAA,CAAW,SAASu6B,aAAAA,CAC/Cj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAQ,CAAA,CAAA;AACrE,CAAC,CAAA;AAMM,MAAMI,eAAkB,GAAAz6B,UAAA,CAAW,SAASu6B,aAAAA,CACjDj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAU,CAAA,CAAA;AACvE,CAAC,CAAA;AAMM,MAAMK,YAAe,GAAA16B,UAAA,CAAW,SAASu6B,aAAAA,CAC9Cj/C,OAEAuX,GACA,EAAA;EACA,MAAM;IAACvV,IAAA,GAAO,CAAG;IAAA,GAAGgjB;GAAa,GAAAhlB,KAAA;EAC3B,MAAAU,KAAA,GAAQ6C,aAAavB,IAAI,CAAA;EAE/B,0BAAQoiB,MAAM,EAAA;IAAA,GAAGY;IAAWtkB,KAAc;IAAA6W,GAAA;IAAUwnC,QAAO;EAAO,CAAA,CAAA;AACpE,CAAC,CAAA;;;;;;ACrHD,IAAAp3C,IAAA;AAwBA,MAAM03C,YAAe,GAAAh7B,MAAA,CAAOgK,MAAM,CAAA,CAAb1mB,IAAc,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,CAAA;AAO5B,MAAMu+B,GAAM,GAAA56B,UAAA,CAAW,SAAS46B,IAAAA,CACrCt/C,OAKAuwB,YACA,EAAA;EACM,MAAA;IACJzD,IAAA;IACAjE,EAAA;IACA2mB,OAAA;IACAztC,QAAW,GAAA,CAAA;IACXw9C,KAAA;IACAzU,OAAA;IACA1O,OAAA;IACA96B,OAAU,GAAA,CAAA;IACV2tB,QAAA;IACA,GAAGjK;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAAw/C,UAAA,GAAa56C,OAAiC,IAAI,CAAA;EAClD,MAAA66C,UAAA,GAAa76C,OAAO,KAAK,CAAA;EAEzB,MAAAupC,UAAA,GAAa1lB,YAAY,MAAM;IACnCg3B,UAAA,CAAW16C,OAAU,GAAA,KAAA;EACvB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAMy3B,WAAc,GAAA/T,WAAA,CACjBtiB,KAA+C,IAAA;IAC9Cs5C,UAAA,CAAW16C,OAAU,GAAA,IAAA;IACjB,IAAAq3B,OAAA,EAASA,OAAA,CAAQj2B,KAAK,CAAA;EAC5B,CAAA,EACA,CAACi2B,OAAO,CAAA,CACV;EAEM,MAAA7kB,GAAA,GAAMD,gBAAgBiZ,YAAY,CAAA;EAExC1rB,SAAA,CAAU,MAAM;IACV,IAAA2qC,OAAA,IAAW,CAACiQ,UAAA,CAAW16C,OAAS,EAAA;MAClC,IAAIy6C,UAAW,CAAAz6C,OAAA,EAASy6C,UAAA,CAAWz6C,QAAQ+1B,KAAM,EAAA;MACjD2kB,UAAA,CAAW16C,OAAU,GAAA,IAAA;IACvB;EAAA,CACF,EAAG,CAACyqC,OAAO,CAAC,CAAA;EAEN,MAAAlX,MAAA,GAAUt0B,EAAiC,IAAA;IAC/Cw7C,UAAA,CAAWz6C,OAAU,GAAAf,EAAA;IACrBuT,GAAA,CAAIxS,OAAU,GAAAf,EAAA;EAAA,CAChB;EAGE,sBAAAiR,GAAA,CAACoqC,YAAA,EAAA;IACC,SAAQ,EAAA,KAAA;IACP,GAAGr6B,SAAA;IACJ,eAAA,EAAeiK,WAAW,MAAS,GAAA,OAAA;IACnCltB,QAAA;IACA+qB,IAAA;IACAjE,EAAA;IACA4C,IAAK,EAAA,OAAA;IACLqf,OAAA;IACAsD,MAAQ,EAAAD,UAAA;IACR/R,OAAS,EAAAI,WAAA;IACTl7B,OAAA;IACAiW,GAAK,EAAA+gB,MAAA;IACL+W,IAAK,EAAA,KAAA;IACLpgB,QAAA;IACAyL,QAAA,EAAUzL,WAAW,CAAI,GAAA,CAAA,CAAA;IACzB1O,IAAM,EAAAg/B,KAAA;IACNrlD,IAAK,EAAA;EAAA,CAAA,CACP;AAEJ,CAAC,CAAA;;;;;;ACrGD,IAAAyN,IAAA;AAWA,SAAS+3C,gBAAgBzyC,IAA2C,EAAA;EAClE,OAAO9I,QAAQ8I,IAAI,CAAA;AACrB;AAGA,MAAM0yC,YAAe,GAAAt7B,MAAA,CAAOgQ,MAAM,CAAA,CAAb1sB,IAAc,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,kIAAA,CAAA,CAAA,CAAA,CAAA;AAY5B,MAAM6+B,OAAU,GAAAl7B,UAAA,CAAW,SAASk7B,QAAAA,CACzC5/C,OACAuX,GACA,EAAA;EACA,MAAM;IAAC7C,QAAA,EAAUkQ,YAAc;IAAA,GAAGI;GAAa,GAAAhlB,KAAA;EAC/C,MAAM,CAAC+5C,YAAA,EAAc8F,eAAe,CAAA,GAAIr7C,SAAS,CAAE,CAAA,CAAA;EAE7C,MAAAkQ,QAAA,GAAWjR,QAAQ,MAAMmhB,YAAA,CAAa1gB,OAAOw7C,eAAe,CAAA,EAAG,CAAC96B,YAAY,CAAC,CAAA;EAEnF,MAAMk7B,OAAOprC,QAAS,CAAApV,GAAA,CAAI,CAAC+qB,KAAA,EAAOI,UAChC,KAAAC,YAAA,CAAaL,KAAO,EAAA;IAClBmlB,SAASuK,YAAiB,KAAAtvB,UAAA;IAC1B5rB,GAAK,EAAA4rB,UAAA;IACL2R,OAAA,EAASA,CAAA,KAAM2jB,cAAA,CAAet1B,UAAU;EAAA,CACzC,CAAA,CACH;EAEA,MAAMu1B,UAAUF,IAAK,CAAA3/C,MAAA;EAEf,MAAA4/C,cAAA,GAAiBt3B,WAAY,CAACw3B,MAAmB,IAAA;IACrDJ,eAAA,CAAgBI,MAAM,CAAA;EACxB,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM9Q,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA+C,IAAA;IAC1C,IAAAA,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BghD,eAAA,CAAiBK,SAAA,IAAA,CAAeA,SAAY,GAAAF,OAAA,GAAU,KAAKA,OAAO,CAAA;IACpE;IAEI,IAAA75C,KAAA,CAAMtH,QAAQ,YAAc,EAAA;MAC9BghD,eAAA,CAAiBK,SAAA,IAAA,CAAeA,SAAY,GAAA,CAAA,IAAKF,OAAO,CAAA;IAC1D;EACF,CAAA,EACA,CAACA,OAAO,CAAA,CACV;EAGE,sBAAA/qC,GAAA,CAAC0qC,YAAA,EAAA;IACC,SAAQ,EAAA,SAAA;IACP,GAAG36B,SAAA;IACJhR,SAAW,EAAAm7B,aAAA;IACX53B,GAAA;IACA83B,IAAK,EAAA,SAAA;IAEJ36B,QAAA,EAAAorC;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;AC1DM,MAAMK,QAAW,GAAAz7B,UAAA,CAAW,SAASy7B,SAAAA,CAC1CngD,OAEAuX,GACA,EAAA;EACA,MAAM;IAACuD,IAAA;IAAM,GAAGkK;EAAA,CAAa,GAAAhlB,KAAA;EAG3B,sBAAAiV,GAAA,CAAC2V,GAAA,EAAA;IACC,SAAQ,EAAA,UAAA;IACP,GAAG5F,SAAA;IACJlK,IAAA;IACAvD,GAAA;IACA83B,IAAK,EAAA,UAAA;IACL3U,QAAU,EAAA16B,KAAA,CAAM06B,QAAa,KAAA,KAAA,CAAA,GAAY,IAAI16B,KAAM,CAAA06B,QAAA;IAElDhmB,QAAM,EAAA1U,KAAA,CAAA0U;EAAA,CAAA,CACT;AAEJ,CAAC,CAAA;;;;;;ACpCD,IAAA/M,IAAA,EAAAO,IAAA;AAiBA,MAAMk4C,gBAAuD,GAAA;EAC3DznB,KAAO,EAAA,UAAA;EACP0nB,OAAS,EAAA,SAAA;EACTC,OAAS,EAAA,UAAA;EACTxnB,IAAM,EAAA;AACR,CAAA;AAEA,MAAMynB,KAAQ,GAAA;EACZ5nB,KAAO,EAAA,OAAA;EACP0nB,OAAS,EAAA,OAAA;EACTC,OAAS,EAAA,OAAA;EACTxnB,IAAM,EAAA;AACR,CAAA;AAEA,MAAM1U,MAAO,GAAAC,MAAA,CAAOyL,IAAI,CAAA,CAAXnoB,IAAY,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,4BAAA,CAAA,CAAA,CAAA,CAAA;AAIzB,MAAMy/B,OAAU,GAAAn8B,MAAA,CAAOsH,IAAI,CAAA,CAAXzjB,IAAY,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,CAAA;AAWrB,SAAS0/B,MACdzgD,KACoB,EAAA;EACd,MAAA;IAAC0gD,QAAU;IAAAC,WAAA;IAAa5J,OAAS;IAAA7zB,MAAA,GAAS;IAAGoE,KAAO;IAAAK,MAAA;IAAQ,GAAG3C;EAAA,CAAa,GAAAhlB,KAAA;EAClF,MAAM4gD,QAAW,GAAAj5B,MAAA,GAASy4B,gBAAiB,CAAAz4B,MAAM,CAAI,GAAA,SAAA;EACrD,MAAM0nB,IAAO,GAAA1nB,MAAA,GAAS44B,KAAM,CAAA54B,MAAM,CAAI,GAAA,QAAA;EAGpC,sBAAA1S,GAAA,CAACmP,MAAA,EAAA;IACC,SAAQ,EAAA,OAAA;IACRirB,IAAA;IACC,GAAGrqB,SAAA;IACJliB,SAAW,EAAA,CAAA;IACXogB,MAAA;IACAI,MAAQ,EAAA,CAAA;IACRzO,IAAM,EAAA+rC,QAAA;IAENlsC,QAAA,EAAA,eAAAiU,IAAA,CAACgD,IAAK,EAAA;MAAA/R,KAAA,EAAM,YACV;MAAAlF,QAAA,EAAA,CAAC,eAAAO,GAAA,CAAAurC,OAAA,EAAA;QAAQ1lC,MAAM,CAAG;QAAAxZ,OAAA,EAAS;QACzBoT,QAAC,EAAA,eAAAiU,IAAA,CAAA8e,KAAA,EAAA;UAAMpnC,OAAO,CACX;UAAAqU,QAAA,EAAA,CAAA4S,KAAA,uBACE8D,IAAK,EAAA;YAAAppB,IAAA,EAAM,CAAG;YAAA+iB,MAAA,EAAO;YACnBrQ,QACH,EAAA4S;WAAA,CAAA,EAEDq5B,eACE,eAAA1rC,GAAA,CAAAmW,IAAA,EAAA;YAAKvG,OAAK,IAAC;YAAA7iB,IAAA,EAAM;YACf0S,QACH,EAAAisC;WAAA,CAAA;QAAA,CAEJ;MACF,CAAA,CAAA,EAECD,QACC,IAAA,eAAAzrC,GAAA,CAAC2V,GAAI,EAAA;QAAAtpB,OAAA,EAAS,CACZ;QAAAoT,QAAA,iBAAAO,GAAA,CAACoZ,MAAA,EAAA;UACClH,EAAG,EAAA,QAAA;UACH2F,IAAM,EAAA+d,SAAA;UACNpf,IAAK,EAAA,OAAA;UACLnqB,OAAS,EAAA,CAAA;UACTwpC,OAAS,EAAAiM,OAAA;UACTn4C,KAAA,EAAO;YAAC2sB,aAAA,EAAe;UAAK;QAAA,CAAA;OAEhC,CAAA;KAEJ;EAAA,CAAA,CACF;AAEJ;ACxFO,SAASs1B,UAAsBA,CAAA,EAAA;EAEpC,MAAM,CAACtH,OAAS,EAAAG,KAAK,IAAI1I,UAAW,CAAA,MAAM,MAAM,KAAK,CAAA;EAE3CnsC,SAAA,CAAA60C,KAAA,EAAO,CAACA,KAAK,CAAC,CAAA;EAEjB,OAAAH,OAAA;AACT;ACTA,MAAM16C,KAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,0BAA0B,CAAA;AAEjDub,WAAA,CAAYvV,KAAG,CAAI,GAAAuV,WAAA,CAAYvV,KAAG,CAAA,IAAKwV,cAAwC,IAAI,CAAA;AAEtE,MAAAysC,YAAA,GAAwD1sC,YAAYvV,KAAG,CAAA;;;;;;ACRpF,IAAA8I,IAAA,EAAAO,IAAA;AA2BA,MAAMkc,MAAO,GAAAC,MAAA,CAAOqY,KAAK,CAAA,CAAZ/0B,IAAa,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,mGAAA,CAAA,CAAA,CAAA,CAAA;AAS1B,MAAMggC,cAAA,GAAiB18B,MAAO,CAAAC,GAAA,CAAPpc,IAAU,KAAAA,IAAA,GAAA6Y,YAAA,CAAA,CAAA,sHAAA,CAAA,CAAA,CAAA,CAAA;AASjC,IAAIigC,OAAU,GAAA,CAAA;AAKP,SAASC,cAAcjhD,KAA+C,EAAA;EAC3E,MAAM;IAAC0U,QAAU;IAAApT,OAAA,GAAU;IAAG0pB,QAAU;IAAAC,QAAA;IAAUmQ;EAAW,CAAA,GAAAp7B,KAAA;EAC7D,MAAM,CAACi5B,KAAO,EAAAioB,SAAS,CAAI,GAAA18C,QAAA,CAAqB,EAAE,CAAA;EAE5C,MAAA28C,SAAA,GAAYv8C,MAAqD,CAAA,CAAA,CAAE,CAAA;EAEnE,MAAAX,IAAA,GAAOwkB,WAAY,CAACqZ,MAAwB,IAAA;IAEhD,MAAMqJ,WAA8BlS,MAAAA,IAAUmoB,gBAAgB,MAAMF,SAAA,CAAUjoB,MAAK,CAAC,CAAA;IAEpF,MAAMpQ,EAAK,GAAAiZ,MAAA,CAAOjZ,EAAM,IAAA8B,MAAA,CAAOq2B,OAAS,EAAA,CAAA;IAClC,MAAAziD,QAAA,GAAWujC,OAAOvjC,QAAY,IAAA,GAAA;IAEpC,MAAM8iD,UAAUA,CAAA,KAAM;MA/D1B15C,IAAAA,GAAAA;MAgEM,MAAM25C,aAAY35C,GAAA,GAAAw5C,SAAA,CAAUp8C,QAAQ8jB,EAAE,CAAA,KAApB,gBAAAlhB,GAAuB,CAAA25C,SAAA;MAEzCnW,QAAA,CAAUoW,SAA0B,IAAA;QAClC,MAAM7tC,MAAM6tC,SAAU,CAAAC,SAAA,CAAWpkD,CAAM,IAAAA,CAAA,CAAEyrB,OAAOA,EAAE,CAAA;QAElD,IAAInV,MAAM,CAAI,CAAA,EAAA;UACN,MAAA+tC,MAAA,GAASF,SAAU,CAAAhvC,KAAA,CAAM,CAAC,CAAA;UAEzBkvC,MAAA,CAAArzC,MAAA,CAAOsF,KAAK,CAAC,CAAA;UAEb,OAAA+tC,MAAA;QACT;QAEO,OAAAF,SAAA;MAAA,CACR,CAAA;MAED,IAAID,cAAc,KAAW,CAAA,EAAA;QAC3B9V,YAAA,CAAa8V,SAAS,CAAA;QACf,OAAAH,SAAA,CAAUp8C,QAAQ8jB,EAAE,CAAA;MAC7B;IAAA,CACF;IAEAsiB,QAAA,CAAUoW,SAA0B,IAAA;MAC3B,OAAAA,SAAA,CACJr9C,OAAQ9G,CAAA,IAAMA,EAAEyrB,EAAO,KAAAA,EAAE,EACzB7pB,MAAO,CAAA,CACN;QACEqiD,OAAA;QACAx4B,EAAA;QACAiZ,MAAQ,EAAA;UAAC,GAAGA,MAAA;UAAQvjC;QAAQ;MAC9B,CAAA,CACD,CAAA;IAAA,CACJ,CAAA;IAEG,IAAA4iD,SAAA,CAAUp8C,OAAQ,CAAA8jB,EAAE,CAAG,EAAA;MACzB2iB,YAAA,CAAa2V,SAAU,CAAAp8C,OAAA,CAAQ8jB,EAAE,CAAA,CAAEy4B,SAAS,CAAA;MACrC,OAAAH,SAAA,CAAUp8C,QAAQ8jB,EAAE,CAAA;IAC7B;IAEUs4B,SAAA,CAAAp8C,OAAA,CAAQ8jB,EAAE,CAAI,GAAA;MAACy4B,WAAW7V,UAAW,CAAA4V,OAAA,EAAS9iD,QAAQ;KAAC;IAE1D,OAAAsqB,EAAA;EACT,CAAA,EAAG,EAAE,CAAA;EAGLhkB,SAAA,CACE,MAAM,MAAM;IACV,KAAA,MAAW;MAACy8C;KAAS,IAAKz6C,OAAO1H,MAAO,CAAAgiD,SAAA,CAAUp8C,OAAO,CAAG,EAAA;MAC1DymC,YAAA,CAAa8V,SAAS,CAAA;IACxB;IAEAH,SAAA,CAAUp8C,UAAU,EAAC;EACvB,CAAA,EACA,EAAC,CACH;EAEM,MAAArG,KAAA,GAA2B+E,OAAQ,CAAA,OAAO;IAACsR,OAAA,EAAS;IAAK9Q;GAAI,CAAA,EAAI,CAACA,IAAI,CAAC,CAAA;EAC7E,MAAMs1C,UAAUsH,UAAW,EAAA;EAE3B,OAAA,eACGl4B,IAAA,CAAAm4B,YAAA,CAAa5rC,QAAb,EAAA;IAAsBxW,KACpB;IAAAgW,QAAA,EAAA,CAAAA,QAAA,EAEA6kC,OAAA,IACE,eAAAtkC,GAAA,CAAAmP,MAAA,EAAA;MAAK,SAAQ,EAAA,eAAA;MAAgBgX;MAC5B1mB,QAAC,EAAA,eAAAO,GAAA,CAAA8rC,cAAA,EAAA;QACCrsC,QAAC,EAAA,eAAAO,GAAA,CAAA2V,GAAA,EAAA;UAAItpB,OAAkB;UAAA0pB,QAAA;UAAoBC;UACzCvW,QAAC,EAAA,eAAAO,GAAA,CAAAmxB,eAAA,EAAA;YAAgBnoC,OAAS,EAAA,KAAA;YACvByW,QAAM,EAAAukB,KAAA,CAAA35B,GAAA,CAAIoiD,MAAA;cAAA,IAAC;gBAACL,OAAA;gBAASx4B,EAAI;gBAAAiZ;cACxB,CAAA,GAAA4f,MAAA;cAAA,OAAA,eAAAzsC,GAAA,CAACktB,MAAO,CAAA7d,GAAA,EAAP;gBACClmB,SAAS;kBAACF,OAAA,EAAS;kBAAGiJ,CAAG,EAAA,CAAA;kBAAGhJ,OAAO;gBAAC,CAAA;gBACpCE,IAAA,EAAM;kBAACH,OAAA,EAAS,CAAG;kBAAAC,KAAA,EAAO;kBAAKG,UAAY,EAAA;oBAACC,QAAU,EAAA;;gBAAI,CAAA;gBAC1DN,SAAS;kBAACC,OAAA,EAAS;kBAAGiJ,CAAG,EAAA,EAAA;kBAAIhJ,OAAO;gBAAI,CAAA;gBAExCwjD,MAAO,EAAA,UAAA;gBACPrjD,YAAY;kBAACpE,IAAA,EAAM;kBAAU0nD,OAAS,EAAA,EAAA;kBAAIC,WAAW;gBAAG,CAAA;gBAExDntC,QAAA,iBAAAO,GAAA,CAACwrC,KAAA,EAAA;kBACCC,UAAU5e,MAAO,CAAA4e,QAAA;kBACjBC,aAAa7e,MAAO,CAAA6e,WAAA;kBACpB5J,OAAS,EAAAsK,OAAA;kBACT15B,QAAQma,MAAO,CAAAna,MAAA;kBACfL,OAAOwa,MAAO,CAAAxa;gBAAA,CAChB;cAAA,CAAA,EAVKuB,EAYR,CAAA;YAAA;WACH;QACF,CAAA;MACF,CAAA;KACF,CAAA;EAEJ,CAAA,CAAA;AAEJ;ACrJO,SAASi5B,QAA8BA,CAAA,EAAA;EACtC,MAAApjD,KAAA,GAAQ+V,WAAWqsC,YAAY,CAAA;EAErC,IAAI,CAACpiD,KAAO,EAAA;IACJ,MAAA,IAAI0B,MAAM,mCAAmC,CAAA;EACrD;EAKA,IAAI,CAACs3B,QAAS,CAAAh5B,KAAK,CAAK,IAAAA,KAAA,CAAMqW,YAAY,CAAK,EAAA;IACvC,MAAA,IAAI3U,MAAM,iDAAiD,CAAA;EACnE;EAEO,OAAA1B,KAAA;AACT;ACrBgB,SAAAqjD,oBAAAA,CACd9oB,KACA,EAAA+oB,YAAA,EACA1P,cACoB,EAAA;EANtB,IAAA3qC,EAAA;EAOQ,MAAA+L,GAAA,GAAMsuC,YAAa,CAAA1vC,OAAA,CAAQggC,cAAc,CAAA;EAC/C,MAAMoK,GAAM,GAAAsF,YAAA,CAAazvC,KAAM,CAAA,CAAA,EAAGmB,GAAG,CAAA;EACrC,MAAMwM,MAAMw8B,GAAI,CAAAv8C,MAAA;EAEhB,KAAA,IAASyR,IAAIsO,GAAM,GAAA,CAAA,EAAGtO,CAAK,IAAA,CAAA,EAAGA,KAAK,CAAG,EAAA;IACpC,MAAMqwC,OAAU,GAAAvF,GAAA,CAAI9qC,CAAC,CAAA,CAAE+oB,aAAa,eAAe,CAAA;IAEnD,IAAI,CAACsnB,OAAS,EAAA;MACZ;IACF;IAEM,MAAAC,QAAA,GAAWD,OAAQ,CAAAltB,KAAA,CAAM,GAAG,CAAA;IAElCmtB,QAAA,CAASC,GAAI,CAAA,CAAA;IAEb,MAAMjlD,IAAc,EAAC;IAErB,IAAI+0C,QAAW,GAAA,IAAA;IAEf,KAAA,IAASmQ,IAAI,CAAG,EAAAA,CAAA,GAAIF,QAAS,CAAA/hD,MAAA,EAAQiiD,KAAK,CAAG,EAAA;MACzCllD,CAAA,CAAA+G,IAAA,CAAKi+C,QAAS,CAAAE,CAAC,CAAC,CAAA;MAEZ,MAAAtlD,CAAA,GAAII,CAAE,CAAAue,IAAA,CAAK,GAAG,CAAA;MAEpB,IAAI,EAAC,CAAA9T,EAAA,GAAAsxB,KAAA,CAAMn8B,CAAC,CAAA,KAAP,mBAAUm1C,QAAU,CAAA,EAAA;QACZA,QAAA,GAAA,KAAA;QACX;MACF;IACF;IAEA,IAAIA,QAAU,EAAA;MACZ,OAAOyK,IAAI9qC,CAAC,CAAA;IACd;EACF;EAEO,OAAA,IAAA;AACT;AAEgB,SAAAywC,oBAAAA,CACdppB,KACA,EAAA+oB,YAAA,EACA1P,cACoB,EAAA;EAjDtB,IAAA3qC,EAAA;EAkDQ,MAAA+L,GAAA,GAAMsuC,YAAa,CAAA1vC,OAAA,CAAQggC,cAAc,CAAA;EACzC,MAAAoK,GAAA,GAAMsF,YAAa,CAAAzvC,KAAA,CAAMmB,GAAG,CAAA;EAClC,MAAMwM,MAAM8hC,YAAa,CAAA7hD,MAAA;EAEzB,KAAA,IAASyR,CAAI,GAAA,CAAA,EAAGA,CAAI,GAAAsO,GAAA,EAAKtO,KAAK,CAAG,EAAA;IAC3B,IAAA,CAAC8qC,GAAI,CAAA9qC,CAAC,CAAG,EAAA;MACX;IACF;IAEA,MAAMqwC,OAAU,GAAAvF,GAAA,CAAI9qC,CAAC,CAAA,CAAE+oB,aAAa,eAAe,CAAA;IAEnD,IAAI,CAACsnB,OAAS,EAAA;MACZ;IACF;IAEM,MAAAC,QAAA,GAAWD,OAAQ,CAAAltB,KAAA,CAAM,GAAG,CAAA;IAElCmtB,QAAA,CAASC,GAAI,CAAA,CAAA;IAEb,MAAMjlD,IAAc,EAAC;IAErB,IAAI+0C,QAAW,GAAA,IAAA;IAEf,KAAA,IAASmQ,IAAI,CAAG,EAAAA,CAAA,GAAIF,QAAS,CAAA/hD,MAAA,EAAQiiD,KAAK,CAAG,EAAA;MACzCllD,CAAA,CAAA+G,IAAA,CAAKi+C,QAAS,CAAAE,CAAC,CAAC,CAAA;MAEZ,MAAAtlD,CAAA,GAAII,CAAE,CAAAue,IAAA,CAAK,GAAG,CAAA;MAEpB,IAAI,EAAC,CAAA9T,EAAA,GAAAsxB,KAAA,CAAMn8B,CAAC,CAAA,KAAP,mBAAUm1C,QAAU,CAAA,EAAA;QACZA,QAAA,GAAA,KAAA;QACX;MACF;IACF;IAEA,IAAIA,QAAU,EAAA;MACZ,OAAOyK,IAAI9qC,CAAC,CAAA;IACd;EACF;EAEO,OAAA,IAAA;AACT;AAEO,SAAS0wC,kBAAkBt+C,EAAuB,EAAA;EACvD,IAAIA,EAAG,CAAA22B,YAAA,CAAa,MAAM,CAAA,KAAM,UAAY,EAAA;IAC1C32B,EAAA,CAAG82B,KAAM,CAAA,CAAA;EACX;EAEA,IAAI92B,EAAG,CAAA22B,YAAA,CAAa,MAAM,CAAA,KAAM,MAAQ,EAAA;IACtC,MAAMqE,aAAah7B,EAAG,CAAAg7B,UAAA;IAElB,IAAAA,UAAA,IAAcA,sBAAsBC,WAAa,EAAA;MACnDD,UAAA,CAAWlE,KAAM,CAAA,CAAA;IACnB;EACF;AACF;ACpGA,MAAMj8B,GAAA,GAAMjG,MAAO,CAAAC,GAAA,CAAI,yBAAyB,CAAA;AAEhDub,WAAA,CAAYvV,GAAG,CAAI,GAAAuV,WAAA,CAAYvV,GAAG,CAAA,IAAKwV,cAAuC,IAAI,CAAA;AAKrE,MAAAkuC,WAAA,GAAsDnuC,YAAYvV,GAAG,CAAA;ACQ3E,MAAM2jD,IAAO,GAAAngB,IAAA,CAClB3d,UAAW,CAAA,SAAS89B,KAClBC,CAAAziD,KAAA,EAEAuX,GACoB,EAAA;EACpB,MAAM;IAAC7C,QAAU;IAAArU,KAAA,GAAQ;IAAG+7B,OAAS;IAAA,GAAGpX;EAAa,CAAA,GAAAhlB,KAAA;EAC/C,MAAAuwB,YAAA,GAAejZ,gBAAgBC,GAAG,CAAA;EACxC,MAAM,CAAC+6B,cAAA,EAAgBoQ,iBAAiB,CAAA,GAAIl+C,SAA6B,IAAI,CAAA;EACvE,MAAAuzC,iBAAA,GAAoBnzC,OAAO0tC,cAAc,CAAA;EAC/C,MAAMpb,OAAiBzzB,OAAQ,CAAA,MAAM,EAAC,EAAG,EAAE,CAAA;EAC3C,MAAM,CAACu+C,YAAc,EAAAW,eAAe,CAAI,GAAAn+C,QAAA,CAAwB,EAAE,CAAA;EAClE,MAAM,CAACy0B,KAAO,EAAAkS,QAAQ,CAAI,GAAA3mC,QAAA,CAAoB,CAAE,CAAA,CAAA;EAC1C,MAAAo+C,QAAA,GAAWh+C,OAAOq0B,KAAK,CAAA;EAE7Bp0B,SAAA,CAAU,MAAM;IACdkzC,iBAAA,CAAkBhzC,OAAU,GAAAutC,cAAA;EAAA,CAC9B,EAAG,CAACA,cAAc,CAAC,CAAA;EAEnBztC,SAAA,CAAU,MAAM;IACd+9C,QAAA,CAAS79C,OAAU,GAAAk0B,KAAA;EAAA,CACrB,EAAG,CAACA,KAAK,CAAC,CAAA;EAEV,MAAM4pB,YAAe,GAAAp6B,WAAA,CACnB,CAAC5kB,OAAA,EAAsBqzB,KAAc,EAAA+a,QAAA,EAAmBhjB,QAAsB,KAAA;IAC5Ekc,QAAA,CAAU1qB,CAAA,KAAO;MAAC,GAAGA,CAAG;MAAA,CAACyW,KAAI,GAAG;QAACrzB,OAAA;QAASouC;;IAAW,CAAA,CAAA,CAAA;IAErD,IAAIhjB,QAAU,EAAA;MACZyzB,iBAAA,CAAkB7+C,OAAO,CAAA;IAC3B;IAEA,OAAO,MAAM;MACXsnC,QAAA,CAAU1qB,CAAM,IAAA;QACR,MAAAqiC,QAAA,GAAW;UAAC,GAAGriC;SAAC;QAEtB,OAAOqiC,SAAS5rB,KAAI,CAAA;QAEb,OAAA4rB,QAAA;MAAA,CACR,CAAA;IAAA,CACH;EACF,CAAA,EACA,EAAC,CACH;EAEA,MAAMC,WAAc,GAAAt6B,WAAA,CAAY,CAACyO,KAAAA,EAAc+a,QAAsB,KAAA;IACnE9G,QAAA,CAAU1qB,CAAM,IAAA;MACR,MAAAuiC,SAAA,GAAYviC,EAAEyW,KAAI,CAAA;MAExB,IAAI,CAAC8rB,SAAA,EAAkB,OAAAviC,CAAA;MAEhB,OAAA;QAAC,GAAGA,CAAA;QAAG,CAACyW,KAAI,GAAG;UAAC,GAAG8rB,SAAW;UAAA/Q;QAAA;OAAS;IAAA,CAC/C,CAAA;EACH,CAAA,EAAG,EAAE,CAAA;EAEL,MAAM9Y,YAAiC,GAAA11B,OAAA,CACrC,OAAO;IACLsR,OAAS,EAAA,CAAA;IACTu9B,cAAgB,EAAAA,cAAA,IAAkB0P,YAAa,CAAA,CAAC,CAAK,IAAA,IAAA;IACrDtmB,KAAO,EAAA,CAAA;IACPxE,IAAA;IACA2rB,YAAA;IACAE,WAAA;IACAL,iBAAA;IACAriD,KAAA;IACA44B;EAAA,CACF,CAAA,EACA,CAACqZ,cAAgB,EAAA0P,YAAA,EAAc9qB,MAAM2rB,YAAc,EAAAE,WAAA,EAAa1iD,OAAO44B,KAAK,CAAA,CAC9E;EAEA,MAAMkW,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA+C,IAAA;IAzFtD,IAAAwB,EAAA;IA0FQ,IAAI,CAACowC,iBAAkB,CAAAhzC,OAAA,EAAS;IAE5B,IAAAoB,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAM6Y,MAAS,GAAAZ,oBAAA,CACbO,QAAS,CAAA79C,OAAA,EACTi9C,YAAA,EACAjK,iBAAkB,CAAAhzC,OAAA,CACpB;MAEA,IAAIk+C,MAAQ,EAAA;QACVX,iBAAA,CAAkBW,MAAM,CAAA;QACxBP,iBAAA,CAAkBO,MAAM,CAAA;MAC1B;MAEA;IACF;IAEI,IAAA98C,KAAA,CAAMtH,QAAQ,SAAW,EAAA;MAC3BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAM8Y,MAAS,GAAAnB,oBAAA,CACba,QAAS,CAAA79C,OAAA,EACTi9C,YAAA,EACAjK,iBAAkB,CAAAhzC,OAAA,CACpB;MAEA,IAAIm+C,MAAQ,EAAA;QACVZ,iBAAA,CAAkBY,MAAM,CAAA;QACxBR,iBAAA,CAAkBQ,MAAM,CAAA;MAC1B;MAEA;IACF;IAEI,IAAA/8C,KAAA,CAAMtH,QAAQ,WAAa,EAAA;MAC7BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAM6X,OAAU,GAAAlK,iBAAA,CAAkBhzC,OAAQ,CAAA41B,YAAA,CAAa,eAAe,CAAA;MAEtE,IAAI,CAACsnB,OAAA,EAAS;MAER,MAAAe,SAAA,GAAYJ,QAAS,CAAA79C,OAAA,CAAQk9C,OAAO,CAAA;MAE1C,IAAI,CAACe,SAAA,EAAW;MAEhB,IAAIA,UAAU/Q,QAAU,EAAA;QACtB9G,QAAA,CAAU1qB,CAAM,IAAA;UACRuiC,MAAAA,UAAAA,GAAYviC,EAAEwhC,OAAO,CAAA;UAE3B,IAAI,CAACe,UAAAA,EAAkB,OAAAviC,CAAA;UAEhB,OAAA;YAAC,GAAGA,CAAA;YAAG,CAACwhC,OAAO,GAAG;cAAC,GAAGe,UAAAA;cAAW/Q,QAAU,EAAA;YAAA;WAAM;QAAA,CACzD,CAAA;MAAA,CACI,MAAA;QACC,MAAAkR,QAAA,GAAWlB,OAAQ,CAAAltB,KAAA,CAAM,GAAG,CAAA;QAElCouB,QAAA,CAAShB,GAAI,CAAA,CAAA;QAEP,MAAAiB,SAAA,GAAYD,QAAS,CAAA1nC,IAAA,CAAK,GAAG,CAAA;QACnC,MAAM4nC,WAAc,GAAAD,SAAA,IAAaR,QAAS,CAAA79C,OAAA,CAAQq+C,SAAS,CAAA;QAE3D,IAAIC,WAAa,EAAA;UACfA,WAAA,CAAYx/C,QAAQi3B,KAAM,EAAA;UAC1B4nB,iBAAA,CAAkBW,YAAYx/C,OAAO,CAAA;QACvC;MACF;MAEA;IACF;IAEI,IAAAsC,KAAA,CAAMtH,QAAQ,YAAc,EAAA;MAC9BsH,KAAA,CAAMikC,cAAe,CAAA,CAAA;MAErB,MAAMkZ,UAAa,GAAAvL,iBAAA,CAAkBhzC,OAAQ,CAAA41B,YAAA,CAAa,eAAe,CAAA;MAEzE,IAAI,CAAC2oB,UAAA,EAAY;MAEjB,IAAI,GAAC37C,EAAS,GAAAi7C,QAAA,CAAA79C,OAAA,CAAQu+C,UAAU,CAAA,KAA3B,mBAA8BrR,QAAU,CAAA,EAAA;QAC3C9G,QAAA,CAAU1qB,CAAM,IAAA;UACR,MAAAuiC,SAAA,GAAYviC,EAAE6iC,UAAU,CAAA;UAE9B,IAAI,CAACN,SAAA,EAAkB,OAAAviC,CAAA;UAEhB,OAAA;YAAC,GAAGA,CAAA;YAAG,CAAC6iC,UAAU,GAAG;cAAC,GAAGN,SAAA;cAAW/Q,QAAU,EAAA;YAAA;WAAK;QAAA,CAC3D,CAAA;MACH;MAEA;IACF;EACF,CAAA,EACA,CAAC+P,YAAY,CAAA,CACf;EAEA,MAAMxlB,WAAc,GAAA/T,WAAA,CACjBtiB,KAA4C,IAAA;IAC3Cu8C,iBAAA,CAAkBv8C,MAAMf,MAAM,CAAA;IAGpBg3B,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,OAAA,CAAAj2B,KAAA,CAAA;EACZ,CAAA,EACA,CAACi2B,OAAO,CAAA,CACV;EAEAv3B,SAAA,CAAU,MAAM;IACd,IAAI,CAAC0rB,YAAa,CAAAxrB,OAAA,EAAS;IAC3B,MAAMw+C,gBAAgB3jD,KAAM,CAAA0tB,IAAA,CAC1BiD,YAAA,CAAaxrB,OAAQ,CAAAy+C,gBAAA,CAAiB,sBAAsB,CAAA,CAC9D;IAEAb,eAAA,CAAgBY,aAAa,CAAA;EAAA,CAC5B,EAAA,CAAC7uC,QAAU,EAAA6b,YAAY,CAAC,CAAA;EAE3B,OACG,eAAAtb,GAAA,CAAAstC,WAAA,CAAYrtC,QAAZ,EAAA;IAAqBxW,OAAOy6B,YAC3B;IAAAzkB,QAAA,iBAAAO,GAAA,CAACwyB,KAAA,EAAA;MACCtgB,EAAG,EAAA,IAAA;MACH,SAAQ,EAAA,MAAA;MACP,GAAGnC,SAAA;MACJoX,OAAS,EAAAI,WAAA;MACTxoB,SAAW,EAAAm7B,aAAA;MACX53B,GAAK,EAAAgZ,YAAA;MACL8e,IAAK,EAAA,MAAA;MACLhvC,KAAA;MAECqU;IAAA,CAEL;EAAA,CAAA,CAAA;AAAA,CAEH,CACH,CAAA;AAEA8tC,IAAA,CAAKvf,WAAc,GAAA,MAAA;;;;;;AC/NnB,IAAAt7B,IAAA,EAAAO,EAAA,EAAA0Y,EAAA;AAKO,SAAS6iC,iBAA4CA,CAAA,EAAA;EAC1D,OAAO3iC,GAAG,CAAAnZ,IAAA,KAAAA,IAAA,GAAAoZ,YAAA,CAAA,CAAA,0jBAAA,CAAA,CAAA,CAAA,CAAA;AA8BZ;AAEO,SAAS2iC,uBAAuB1jD,KAA2C,EAAA;EAChF,MAAMmhB,KAAQ,GAAA,SAAA;EACd,MAAM;IAACnG;EAAS,CAAA,GAAA1a,WAAA,CAAYN,MAAMD,KAAK,CAAA;EACjC,MAAA8U,IAAA,GAAOmG,KAAM,CAAA6U,UAAA,CAAW1O,KAAK,CAAA;EAE5B,OAAAL,GAAA,CAAA5Y,EAAA,KAAAA,EAAA,GAAG6Y,iFAGkC,qEAIA,EAAA,gIAAA,EAKE,oEAIC,0GAOH,EAAA,6EAAA,EAIA,wIAKE,EAAA,0EAAA,EAIC,iCAjCvC,CAAA,CAAA,CAAA,EAAAiL,eAAA,CAAgBhR,OAAOnG,IAAK,CAAAyM,OAAO,GAInC0K,eAAgB,CAAAhR,KAAA,EAAOnG,KAAKsZ,OAAO,CAAA,EAKjCnC,eAAgB,CAAAhR,KAAA,EAAOnG,IAAK,CAAAoN,OAAO,GAInC+J,eAAgB,CAAAhR,KAAA,EAAOnG,KAAKoa,QAAQ,CAAA,EAOtCjD,gBAAgBhR,KAAO,EAAAnG,IAAA,CAAKyM,OAAO,CAAA,EAInC0K,eAAgB,CAAAhR,KAAA,EAAOnG,KAAKsZ,OAAO,CAAA,EAKjCnC,gBAAgBhR,KAAO,EAAAnG,IAAA,CAAKoN,OAAO,CAInC,EAAA+J,eAAA,CAAgBhR,KAAO,EAAAnG,IAAA,CAAKoa,QAAQ,CAAA,CAAA;AAKhD;AAMO,SAAS00B,iBACd3jD,KACwB,EAAA;EAClB,MAAA;IAAC4jD;EAAU,CAAA,GAAA5jD,KAAA;EACjB,MAAM;IAACK;EAAS,CAAA,GAAAC,WAAA,CAAYN,MAAMD,KAAK,CAAA;EAEvC,OAAO+gB,gBAAGC,YAC8B,CAAA,CAAA,sBAAA,EAAA,oEAAA,CAAA,CAAA,CAAA,EAAtBjiB,IAAIuB,KAAM,CAAA,CAAC,IAAIujD,MAAM,CAAA,CAAA;AAMzC;AChGO,SAASC,OAA4BA,CAAA,EAAA;EACpC,MAAAC,IAAA,GAAOrvC,WAAW8tC,WAAW,CAAA;EAEnC,IAAI,CAACuB,IAAM,EAAA;IACH,MAAA,IAAI1jD,MAAM,6BAA6B,CAAA;EAC/C;EAEO,OAAA0jD,IAAA;AACT;ACPO,MAAMC,SAAY,GAAA1hB,IAAA,CAAK,SAAS0hB,UAAAA,CACrC/jD,KAEoB,EAAA;EACpB,MAAM;IAAC0U,QAAU;IAAAu9B,QAAA,GAAW,KAAO;IAAA,GAAGjtB;EAAa,CAAA,GAAAhlB,KAAA;EACnD,MAAM8jD,OAAOD,OAAQ,EAAA;EAGnB,sBAAA5uC,GAAA,CAACwyB,KAAA,EAAA;IACCtgB,EAAG,EAAA,IAAA;IACH,SAAQ,EAAA,WAAA;IACP,GAAGnC,SAAA;IACJmhB,QAAQ,CAAC8L,QAAA;IACTnvC,WAAWghD,IAAK,CAAAzjD,KAAA;IAChBgvC,IAAK,EAAA,OAAA;IACLhvC,OAAOyjD,IAAK,CAAAzjD,KAAA;IAEXqU;EAAA,CAAA,CACH;AAEJ,CAAC,CAAA;;;;;;AC5BD,IAAA/M,EAAA;AAgCA,MAAMyc,OAAOie,IAAK,CAAAhe,MAAA,CAAO2/B,EAAG,CAAAP,iBAAA,EAAmBC,sBAAsB,CAAC,CAAA;AAEtE,MAAMO,WAAA,GAAc5/B,MAAO,CAAAuG,GAAG,CAAE,CAAAse,KAAA,CAAM;EAAC5f,WAAa,EAAA;AAAA,CAAI,CAAA,CAAyBq6B,gBAAgB,CAAA;AAEjG,MAAMO,eAAkB,GAAA7/B,MAAA,CAAO+G,IAAI,CAAA,CAAXzjB,EAAY,KAAAA,EAAA,GAAAoZ,UAAA,CAAA,CAAA,wDAAA,CAAA,CAAA,CAAA,CAAA;AAU7B,MAAMojC,QAAW,GAAA9hB,IAAA,CAAK,SAAS8hB,SAAAA,CACpCnkD,KACoB,EAAA;EACd,MAAA;IACJ0U,QAAA;IACAu9B,UAAUmS,YAAe,GAAA,KAAA;IACzBriD,QAAW,GAAA,CAAA;IACXgnB,IAAA;IACA+D,IAAA;IACAjE,EAAI,EAAAw7B,MAAA;IACJC,MAAA;IACAz/B,KAAA;IACAimB,OAAA;IACAxpC,OAAU,GAAA,CAAA;IACV2tB,QAAW,GAAA,KAAA;IACX5uB,KAAQ,GAAA,CAAA;IACRkgB,IAAA;IACAwE,MAAA;IACA,GAAGC;EACD,CAAA,GAAAhlB,KAAA;EACE,MAAAukD,OAAA,GAAU3/C,OAA6B,IAAI,CAAA;EAC3C,MAAA4/C,WAAA,GAAc5/C,OAA8B,IAAI,CAAA;EACtD,MAAMk/C,OAAOD,OAAQ,EAAA;EACrB,MAAM;IAAC3sB,IAAA;IAAM2rB,YAAc;IAAAE,WAAA;IAAaL;GAAqB,GAAAoB,IAAA;EAC7D,MAAMW,MAAMx8B,KAAM,EAAA;EAClB,MAAMY,KAAKw7B,MAAU,IAAAI,GAAA;EACrB,MAAMtB,QAAW,GAAA1/C,OAAA,CAAQ,MAAMyzB,IAAA,CAAKl4B,MAAO,CAAA,CAAC6pB,EAAM,IAAA,EAAE,CAAC,CAAA,EAAG,CAACA,EAAA,EAAIqO,IAAI,CAAC,CAAA;EAC5D,MAAA+qB,OAAA,GAAUkB,QAAS,CAAA1nC,IAAA,CAAK,GAAG,CAAA;EAC3B,MAAAunC,SAAA,GAAYc,IAAK,CAAA7qB,KAAA,CAAMgpB,OAAO,CAAA;EAC9B,MAAAzS,OAAA,GAAUsU,IAAK,CAAAxR,cAAA,KAAmBiS,OAAQ,CAAAx/C,OAAA;EAChD,MAAMktC,YAAW+Q,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,SAAA,CAAA/Q,QAAA,MAAa,KAAY,CAAA,GAAAmS,YAAA,GAAA,CAAepB,uCAAW/Q,QAAY,KAAA,KAAA;EAC3F,MAAMvX,WAAWopB,IAAK,CAAAxR,cAAA,IAAkBwR,KAAKxR,cAAmB,KAAAiS,OAAA,CAAQx/C,UAAU,CAAI,GAAA,CAAA,CAAA;EACtF,MAAMo0B,YAAe,GAAA11B,OAAA,CACnB,OAAO;IAAC,GAAGqgD,IAAA;IAAMpoB,OAAOooB,IAAK,CAAApoB,KAAA,GAAQ,CAAG;IAAAxE,IAAA,EAAMisB;GAAQ,CAAA,EACtD,CAACA,UAAUW,IAAI,CAAA,CACjB;EAEA,MAAMzV,WAAc,GAAA5lB,WAAA,CACjBtiB,KAA2C,IAAA;IACtC,IAAA2kC,OAAA,EAASA,OAAA,CAAQ3kC,KAAK,CAAA;IAE1B,MAAMf,SAASe,KAAM,CAAAf,MAAA;IAGnB,IAAAA,MAAA,YAAkB65B,WACjB,KAAA75B,MAAA,CAAOu1B,YAAa,CAAA,SAAS,MAAM,UAClC,IAAAv1B,MAAA,CAAOs/C,OAAQ,CAAA,2BAA2B,CAC5C,CAAA,EAAA;MACAv+C,KAAA,CAAMkkC,eAAgB,CAAA,CAAA;MACV0Y,WAAA,CAAAd,OAAA,EAAS,CAAChQ,QAAQ,CAAA;MAC9ByQ,iBAAA,CAAkB6B,QAAQx/C,OAAO,CAAA;IACnC;EACF,CAAA,EACA,CAACktC,QAAA,EAAUgQ,OAAS,EAAAnX,OAAA,EAASiY,aAAaL,iBAAiB,CAAA,CAC7D;EAEA,MAAMvT,aAAgB,GAAA1mB,WAAA,CACnBtiB,KAA4C,IAAA;IACvC,IAAAqpC,OAAA,IAAWrpC,KAAM,CAAAtH,GAAA,KAAQ,OAAS,EAAA;MAC9B,MAAAmF,EAAA,GAAKwgD,WAAY,CAAAz/C,OAAA,IAAWw/C,OAAQ,CAAAx/C,OAAA;MAEtCf,EAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAA2gD,KAAA,CAAA,CAAA;IACN;EACF,CAAA,EACA,CAACnV,OAAO,CAAA,CACV;EAEA3qC,SAAA,CAAU,MAAM;IACd,IAAI,CAAC0/C,OAAQ,CAAAx/C,OAAA,EAAS;IAEf,OAAA89C,YAAA,CAAa0B,QAAQx/C,OAAS,EAAAo+C,QAAA,CAAS1nC,KAAK,GAAG,CAAA,EAAGw2B,UAAUhjB,QAAQ,CAAA;KAC1E,CAACgjB,QAAA,EAAUkR,QAAU,EAAAN,YAAA,EAAc5zB,QAAQ,CAAC,CAAA;EAEzC,MAAAztB,OAAA,GAAA,eACHmnB,IAAA,CAAAgD,IAAA,EAAA;IAAKrqB,OACJ;IAAAoT,QAAA,EAAA,CAAA,eAAAiU,IAAA,CAACiC,GAAA,EAAA;MACCG,WAAa,EAAA1qB,KAAA;MACbzB,KAAA,EAAO;QAACgmD,UAAY,EAAA93B,IAAA,IAAQpY,WAAW,SAAY,GAAA,QAAA;QAAUmwC,eAAe;MAAM,CAAA;MAEjFnwC,QAAA,EAAA,CACCoY,IAAA,mBAAA7X,GAAA,CAACmW;QAAKvG,KAAc;QAAA7iB,IAAA,EAAMD;QAAUgjB,MACjC;QAAArQ,QAAA,EAAA2a,aAAA,CAAcvC,IAAI;MACrB,CAAA,CAAA,EAED,CAACA,IACA,IAAA,eAAA7X,GAAA,CAACivC,eAAgB,EAAA;QAAAr/B,KAAA;QAAc7iB,MAAMD,QAAU;QAAAgjB,MAAA;QAC7CrQ,QAAC,EAAA,eAAAO,GAAA,CAAA6vC,oBAAA,EAAA;UAAqBlmD,OAAO;YAACiE,SAAA,EAAWovC,WAAW,eAAkB,GAAA,KAAA;;QAAY,CAAA;OACpF,CAAA;IAAA,CAEJ,CAAA,EAAA,eACCh9B,GAAA,CAAA2V,GAAA,EAAA;MAAI9P,IAAM,EAAA,CAAA;MACTpG,QAAC,EAAA,eAAAO,GAAA,CAAAmW,IAAA,EAAA;QAAKvG,KAAc;QAAA7iB,IAAA,EAAMD,QAAU;QAAA+iB,YAAA,EAAa,UAAW;QAAAC,MAAA;QACzDrQ;MACH,CAAA;KACF,CAAA;EACF,CAAA,CAAA;EAGF,IAAIqU,IAAM,EAAA;IAEN,sBAAAJ,IAAA,CAACvE,IAAA,EAAA;MACC,eAAA,EAAe6K,WAAW,EAAK,GAAA,KAAA,CAAA;MAC/B,cAAc,EAAApG,EAAA;MACd,eAAe,EAAAo5B,OAAA;MACf,SAAQ,EAAA,UAAA;MACP,GAAGj9B,SAAA;MACJ8lB,OAAS,EAAAuD,WAAA;MACT92B,GAAK,EAAAgtC,OAAA;MACLlV,IAAK,EAAA,MAAA;MAEL36B,QAAA,EAAA,CAAA,eAAAO,GAAA,CAACgvC,WAAA,EAAA;QACCL,QAAQE,IAAK,CAAApoB,KAAA;QACb,eAAe,EAAAuW,QAAA;QACf9qB,EAAI,EAAAm9B,MAAA;QACJ,SAAQ,EAAA,eAAA;QACRv7B,IAAA;QACAxR,GAAK,EAAAitC,WAAA;QACLnV,IAAK,EAAA,UAAA;QACL3U,QAAA;QAEChmB,QAAA,EAAAlT;MAAA,CACH,CAAA,EAAA,eAECyT,GAAA,CAAAstC,WAAA,CAAYrtC,QAAZ,EAAA;QAAqBxW,KAAO,EAAAy6B,YAAA;QAC1BzkB,QAAY,EAAAA,QAAA,IAAA,eAAAO,GAAA,CAAC8uC,SAAU,EAAA;UAAA5d,MAAA,EAAQ,CAAC8L,QAAA;UAAWv9B;QAAS,CAAA;OACvD,CAAA;IAAA,CAAA,CACF;EAEJ;EAGE,sBAAAiU,IAAA,CAACvE,IAAA,EAAA;IACC,eAAA,EAAe6K,WAAW,EAAK,GAAA,KAAA,CAAA;IAC/B,SAAQ,EAAA,UAAA;IACR,cAAc,EAAApG,EAAA;IACd,eAAe,EAAAo5B,OAAA;IACd,GAAGj9B,SAAA;IACJ,eAAe,EAAAitB,QAAA;IACfnH,OAAS,EAAAuD,WAAA;IACTr6B,SAAW,EAAAm7B,aAAA;IACX53B,GAAK,EAAAgtC,OAAA;IACLlV,IAAK,EAAA,UAAA;IACL3U,QAAA;IAEAhmB,QAAA,EAAA,CAAC,eAAAO,GAAA,CAAAgvC,WAAA,EAAA;MAAYL,QAAQE,IAAK,CAAApoB,KAAA;MAAOvU,IAAG,KAAM;MAAA,SAAA,EAAQ;MAC/CzS,QACH,EAAAlT;IAAA,CAAA,CAAA,EAEA,eAAAyT,GAAA,CAACstC,WAAY,CAAArtC,QAAA,EAAZ;MAAqBxW,KAAA,EAAOy6B,YAC1B;MAAAzkB,QAAA,EAAAA,QAAA,IAAa,eAAAO,GAAA,CAAA8uC,SAAA,EAAA;QAAU9R,QAAqB;QAAAv9B;MAAA,CAAS;IACxD,CAAA,CAAA;EAAA,CAAA,CACF;AAEJ,CAAC,CAAA;","x_google_ignoreList":[1,2,3,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]}