ohctechv3/.svn/pristine/a3/a3d4e0264371522c326e489be9b553c668fe0727.svn-base
2024-10-28 15:03:36 +05:30

8 lines
750 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"version": 3,
"sources": ["../../@mui/base/ClickAwayListener/ClickAwayListener.js", "../../@mui/base/FocusTrap/FocusTrap.js", "../../@mui/base/unstable_useModal/ModalManager.js", "../../@mui/base/NoSsr/NoSsr.js", "../../@mui/base/TextareaAutosize/TextareaAutosize.js", "../../@mui/base/useAutocomplete/useAutocomplete.js", "../../@mui/material/GlobalStyles/GlobalStyles.js", "../../@mui/material/InputBase/inputBaseClasses.js", "../../@mui/material/InputBase/InputBase.js", "../../@mui/base/Badge/Badge.js", "../../@mui/base/useBadge/useBadge.js", "../../@mui/base/Badge/badgeClasses.js", "../../@mui/base/Button/Button.js", "../../@mui/base/Button/buttonClasses.js", "../../@mui/base/useButton/useButton.js", "../../@mui/base/Dropdown/Dropdown.js", "../../@mui/base/useDropdown/DropdownContext.js", "../../@mui/base/useDropdown/useDropdown.js", "../../@mui/base/utils/useControllableReducer.js", "../../@mui/base/useDropdown/useDropdown.types.js", "../../@mui/base/useDropdown/dropdownReducer.js", "../../@mui/base/FormControl/FormControl.js", "../../@mui/base/FormControl/FormControlContext.js", "../../@mui/base/FormControl/formControlClasses.js", "../../@mui/base/FormControl/useFormControlContext.js", "../../@mui/base/Input/Input.js", "../../@mui/base/Input/inputClasses.js", "../../@mui/base/useInput/useInput.js", "../../@mui/base/Menu/Menu.js", "../../@mui/base/Menu/menuClasses.js", "../../@mui/base/useMenu/useMenu.js", "../../@mui/base/useMenu/menuReducer.js", "../../@mui/base/useList/useList.js", "../../@mui/base/useList/listActions.types.js", "../../@mui/base/useList/listReducer.js", "../../@mui/base/utils/useTextNavigation.js", "../../@mui/base/useList/useListItem.js", "../../@mui/base/useList/ListContext.js", "../../@mui/base/useCompound/useCompoundParent.js", "../../@mui/base/useCompound/useCompoundItem.js", "../../@mui/base/utils/combineHooksSlotProps.js", "../../@mui/base/useMenu/MenuProvider.js", "../../@mui/base/Unstable_Popup/Popup.js", "../../@floating-ui/utils/dist/floating-ui.utils.mjs", "../../@floating-ui/core/dist/floating-ui.core.mjs", "../../@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../../@floating-ui/dom/dist/floating-ui.dom.mjs", "../../@floating-ui/react-dom/dist/floating-ui.react-dom.mjs", "../../@mui/base/Unstable_Popup/popupClasses.js", "../../@mui/base/useTransition/useTransitionStateManager.js", "../../@mui/base/useTransition/TransitionContext.js", "../../@mui/base/useTransition/useTransitionTrigger.js", "../../@mui/base/Unstable_Popup/PopupContext.js", "../../@mui/base/MenuButton/MenuButton.js", "../../@mui/base/useMenuButton/useMenuButton.js", "../../@mui/base/MenuButton/menuButtonClasses.js", "../../@mui/base/MenuItem/MenuItem.js", "../../@mui/base/MenuItem/menuItemClasses.js", "../../@mui/base/useMenuItem/useMenuItem.js", "../../@mui/base/useMenuItem/useMenuItemContextStabilizer.js", "../../@mui/base/Modal/Modal.js", "../../@mui/base/unstable_useModal/useModal.js", "../../@mui/base/Modal/modalClasses.js", "../../@mui/base/Unstable_NumberInput/NumberInput.js", "../../@mui/base/Unstable_NumberInput/numberInputClasses.js", "../../@mui/base/unstable_useNumberInput/useNumberInput.js", "../../@mui/base/unstable_useNumberInput/numberInputAction.types.js", "../../@mui/base/unstable_useNumberInput/numberInputReducer.js", "../../@mui/base/unstable_useNumberInput/utils.js", "../../@mui/base/OptionGroup/OptionGroup.js", "../../@mui/base/OptionGroup/optionGroupClasses.js", "../../@mui/base/Option/Option.js", "../../@mui/base/Option/optionClasses.js", "../../@mui/base/useOption/useOption.js", "../../@mui/base/useOption/useOptionContextStabilizer.js", "../../@mui/base/Select/Select.js", "../../@mui/base/useSelect/useSelect.js", "../../@mui/base/useSelect/useSelect.types.js", "../../@mui/base/useSelect/defaultOptionStringifier.js", "../../@mui/base/useSelect/selectReducer.js", "../../@mui/base/useSelect/SelectProvider.js", "../../@mui/base/Select/selectClasses.js", "../../@mui/base/Slider/Slider.js", "../../@mui/base/Slider/sliderClasses.js", "../../@mui/base/useSlider/useSlider.js", "../../@mui/base/Snackbar/Snackbar.js", "../../@mui/base/Snackbar/snackbarClasses.js", "../../@mui/base/useSnackbar/useSnackbar.js", "../../@mui/base/Switch/Switch.js", "../../@mui/base/useSwitch/useSwitch.js", "../../@mui/base/Switch/switchClasses.js", "../../@mui/base/TablePagination/TablePagination.js", "../../@mui/base/TablePagination/TablePaginationActions.js", "../../@mui/base/TablePagination/tablePaginationClasses.js", "../../@mui/base/TabPanel/TabPanel.js", "../../@mui/base/TabPanel/tabPanelClasses.js", "../../@mui/base/useTabPanel/useTabPanel.js", "../../@mui/base/Tabs/Tabs.js", "../../@mui/base/Tabs/tabsClasses.js", "../../@mui/base/useTabs/useTabs.js", "../../@mui/base/useTabs/TabsProvider.js", "../../@mui/base/Tabs/TabsContext.js", "../../@mui/base/TabsList/TabsList.js", "../../@mui/base/TabsList/tabsListClasses.js", "../../@mui/base/useTabsList/useTabsList.js", "../../@mui/base/useTabsList/useTabsList.types.js", "../../@mui/base/useTabsList/tabsListReducer.js", "../../@mui/base/useTabsList/TabsListProvider.js", "../../@mui/base/Tab/Tab.js", "../../@mui/base/Tab/tabClasses.js", "../../@mui/base/useTab/useTab.js", "../../@mui/base/Transitions/CssAnimation.js", "../../@mui/base/Transitions/CssTransition.js", "../../@mui/material/OutlinedInput/outlinedInputClasses.js"],
"sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/base-ui/react-click-away-listener/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/base-ui/react-click-away-listener/components-api/#click-away-listener)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(\n // @ts-expect-error TODO upstream fix\n children.ref, nodeRef);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };", "'use client';\n\n/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n// Inspired by https://github.com/focus-trap/tabbable\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n }\n\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n if (node.contentEditable === 'true' || (node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {\n return 0;\n }\n return node.tabIndex;\n}\nfunction isNonTabbableRadio(node) {\n if (node.tagName !== 'INPUT' || node.type !== 'radio') {\n return false;\n }\n if (!node.name) {\n return false;\n }\n const getRadio = selector => node.ownerDocument.querySelector(`input[type=\"radio\"]${selector}`);\n let roving = getRadio(`[name=\"${node.name}\"]:checked`);\n if (!roving) {\n roving = getRadio(`[name=\"${node.name}\"]`);\n }\n return roving !== node;\n}\nfunction isNodeMatchingSelectorFocusable(node) {\n if (node.disabled || node.tagName === 'INPUT' && node.type === 'hidden' || isNonTabbableRadio(node)) {\n return false;\n }\n return true;\n}\nfunction defaultGetTabbable(root) {\n const regularTabNodes = [];\n const orderedTabNodes = [];\n Array.from(root.querySelectorAll(candidatesSelector)).forEach((node, i) => {\n const nodeTabIndex = getTabIndex(node);\n if (nodeTabIndex === -1 || !isNodeMatchingSelectorFocusable(node)) {\n return;\n }\n if (nodeTabIndex === 0) {\n regularTabNodes.push(node);\n } else {\n orderedTabNodes.push({\n documentOrder: i,\n tabIndex: nodeTabIndex,\n node: node\n });\n }\n });\n return orderedTabNodes.sort((a, b) => a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex).map(a => a.node).concat(regularTabNodes);\n}\nfunction defaultIsEnabled() {\n return true;\n}\n\n/**\n * Utility component that locks focus inside the component.\n *\n * Demos:\n *\n * - [Focus Trap](https://mui.com/base-ui/react-focus-trap/)\n *\n * API:\n *\n * - [FocusTrap API](https://mui.com/base-ui/react-focus-trap/components-api/#focus-trap)\n */\nfunction FocusTrap(props) {\n const {\n children,\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableRestoreFocus = false,\n getTabbable = defaultGetTabbable,\n isEnabled = defaultIsEnabled,\n open\n } = props;\n const ignoreNextEnforceFocus = React.useRef(false);\n const sentinelStart = React.useRef(null);\n const sentinelEnd = React.useRef(null);\n const nodeToRestore = React.useRef(null);\n const reactFocusEventTarget = React.useRef(null);\n // This variable is useful when disableAutoFocus is true.\n // It waits for the active element to move into the component to activate.\n const activated = React.useRef(false);\n const rootRef = React.useRef(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef(children.ref, rootRef);\n const lastKeydown = React.useRef(null);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n activated.current = !disableAutoFocus;\n }, [disableAutoFocus, open]);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n const doc = ownerDocument(rootRef.current);\n if (!rootRef.current.contains(doc.activeElement)) {\n if (!rootRef.current.hasAttribute('tabIndex')) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['MUI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n }\n rootRef.current.setAttribute('tabIndex', '-1');\n }\n if (activated.current) {\n rootRef.current.focus();\n }\n }\n return () => {\n // restoreLastFocus()\n if (!disableRestoreFocus) {\n // In IE11 it is possible for document.activeElement to be null resulting\n // in nodeToRestore.current being null.\n // Not all elements in IE11 have a focus method.\n // Once IE11 support is dropped the focus() call can be unconditional.\n if (nodeToRestore.current && nodeToRestore.current.focus) {\n ignoreNextEnforceFocus.current = true;\n nodeToRestore.current.focus();\n }\n nodeToRestore.current = null;\n }\n };\n // Missing `disableRestoreFocus` which is fine.\n // We don't support changing that prop on an open FocusTrap\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n const doc = ownerDocument(rootRef.current);\n const loopFocus = nativeEvent => {\n lastKeydown.current = nativeEvent;\n if (disableEnforceFocus || !isEnabled() || nativeEvent.key !== 'Tab') {\n return;\n }\n\n // Make sure the next tab starts from the right place.\n // doc.activeElement refers to the origin.\n if (doc.activeElement === rootRef.current && nativeEvent.shiftKey) {\n // We need to ignore the next contain as\n // it will try to move the focus back to the rootRef element.\n ignoreNextEnforceFocus.current = true;\n if (sentinelEnd.current) {\n sentinelEnd.current.focus();\n }\n }\n };\n const contain = () => {\n const rootElement = rootRef.current;\n\n // Cleanup functions are executed lazily in React 17.\n // Contain can be called between the component being unmounted and its cleanup function being run.\n if (rootElement === null) {\n return;\n }\n if (!doc.hasFocus() || !isEnabled() || ignoreNextEnforceFocus.current) {\n ignoreNextEnforceFocus.current = false;\n return;\n }\n\n // The focus is already inside\n if (rootElement.contains(doc.activeElement)) {\n return;\n }\n\n // The disableEnforceFocus is set and the focus is outside of the focus trap (and sentinel nodes)\n if (disableEnforceFocus && doc.activeElement !== sentinelStart.current && doc.activeElement !== sentinelEnd.current) {\n return;\n }\n\n // if the focus event is not coming from inside the children's react tree, reset the refs\n if (doc.activeElement !== reactFocusEventTarget.current) {\n reactFocusEventTarget.current = null;\n } else if (reactFocusEventTarget.current !== null) {\n return;\n }\n if (!activated.current) {\n return;\n }\n let tabbable = [];\n if (doc.activeElement === sentinelStart.current || doc.activeElement === sentinelEnd.current) {\n tabbable = getTabbable(rootRef.current);\n }\n\n // one of the sentinel nodes was focused, so move the focus\n // to the first/last tabbable element inside the focus trap\n if (tabbable.length > 0) {\n var _lastKeydown$current, _lastKeydown$current2;\n const isShiftTab = Boolean(((_lastKeydown$current = lastKeydown.current) == null ? void 0 : _lastKeydown$current.shiftKey) && ((_lastKeydown$current2 = lastKeydown.current) == null ? void 0 : _lastKeydown$current2.key) === 'Tab');\n const focusNext = tabbable[0];\n const focusPrevious = tabbable[tabbable.length - 1];\n if (typeof focusNext !== 'string' && typeof focusPrevious !== 'string') {\n if (isShiftTab) {\n focusPrevious.focus();\n } else {\n focusNext.focus();\n }\n }\n // no tabbable elements in the trap focus or the focus was outside of the focus trap\n } else {\n rootElement.focus();\n }\n };\n doc.addEventListener('focusin', contain);\n doc.addEventListener('keydown', loopFocus, true);\n\n // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area.\n // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n // Instead, we can look if the active element was restored on the BODY element.\n //\n // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n const interval = setInterval(() => {\n if (doc.activeElement && doc.activeElement.tagName === 'BODY') {\n contain();\n }\n }, 50);\n return () => {\n clearInterval(interval);\n doc.removeEventListener('focusin', contain);\n doc.removeEventListener('keydown', loopFocus, true);\n };\n }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open, getTabbable]);\n const onFocus = event => {\n if (nodeToRestore.current === null) {\n nodeToRestore.current = event.relatedTarget;\n }\n activated.current = true;\n reactFocusEventTarget.current = event.target;\n const childrenPropsHandler = children.props.onFocus;\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const handleFocusSentinel = event => {\n if (nodeToRestore.current === null) {\n nodeToRestore.current = event.relatedTarget;\n }\n activated.current = true;\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n tabIndex: open ? 0 : -1,\n onFocus: handleFocusSentinel,\n ref: sentinelStart,\n \"data-testid\": \"sentinelStart\"\n }), /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef,\n onFocus\n }), /*#__PURE__*/_jsx(\"div\", {\n tabIndex: open ? 0 : -1,\n onFocus: handleFocusSentinel,\n ref: sentinelEnd,\n \"data-testid\": \"sentinelEnd\"\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? FocusTrap.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A single child content element.\n */\n children: elementAcceptingRef,\n /**\n * If `true`, the focus trap will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any focus trap children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the focus trap less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableAutoFocus: PropTypes.bool,\n /**\n * If `true`, the focus trap will not prevent focus from leaving the focus trap while open.\n *\n * Generally this should never be set to `true` as it makes the focus trap less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableEnforceFocus: PropTypes.bool,\n /**\n * If `true`, the focus trap will not restore focus to previously focused element once\n * focus trap is hidden or unmounted.\n * @default false\n */\n disableRestoreFocus: PropTypes.bool,\n /**\n * Returns an array of ordered tabbable nodes (i.e. in tab order) within the root.\n * For instance, you can provide the \"tabbable\" npm dependency.\n * @param {HTMLElement} root\n */\n getTabbable: PropTypes.func,\n /**\n * This prop extends the `open` prop.\n * It allows to toggle the open state without having to wait for a rerender when changing the `open` prop.\n * This prop should be memoized.\n * It can be used to support multiple focus trap mounted at the same time.\n * @default function defaultIsEnabled(): boolean {\n * return true;\n * }\n */\n isEnabled: PropTypes.func,\n /**\n * If `true`, focus is locked.\n */\n open: PropTypes.bool.isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n FocusTrap['propTypes' + ''] = exactProp(FocusTrap.propTypes);\n}\nexport { FocusTrap };", "import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n const doc = ownerDocument(container);\n if (doc.body === container) {\n return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;\n }\n return container.scrollHeight > container.clientHeight;\n}\nexport function ariaHidden(element, show) {\n if (show) {\n element.setAttribute('aria-hidden', 'true');\n } else {\n element.removeAttribute('aria-hidden');\n }\n}\nfunction getPaddingRight(element) {\n return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\nfunction isAriaHiddenForbiddenOnElement(element) {\n // The forbidden HTML tags are the ones from ARIA specification that\n // can be children of body and can't have aria-hidden attribute.\n // cf. https://www.w3.org/TR/html-aria/#docconformance\n const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];\n const isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;\n const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';\n return isForbiddenTagName || isInputHidden;\n}\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n [].forEach.call(container.children, element => {\n const isNotExcludedElement = blacklist.indexOf(element) === -1;\n const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);\n if (isNotExcludedElement && isNotForbiddenElement) {\n ariaHidden(element, show);\n }\n });\n}\nfunction findIndexOf(items, callback) {\n let idx = -1;\n items.some((item, index) => {\n if (callback(item)) {\n idx = index;\n return true;\n }\n return false;\n });\n return idx;\n}\nfunction handleContainer(containerInfo, props) {\n const restoreStyle = [];\n const container = containerInfo.container;\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n const scrollbarSize = getScrollbarSize(ownerDocument(container));\n restoreStyle.push({\n value: container.style.paddingRight,\n property: 'padding-right',\n el: container\n });\n // Use computed style, here to get the real padding to add our scrollbar width.\n container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;\n\n // .mui-fixed is a global helper.\n const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedElements, element => {\n restoreStyle.push({\n value: element.style.paddingRight,\n property: 'padding-right',\n el: element\n });\n element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n });\n }\n let scrollContainer;\n if (container.parentNode instanceof DocumentFragment) {\n scrollContainer = ownerDocument(container).body;\n } else {\n // Support html overflow-y: auto for scroll stability between pages\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n const parent = container.parentElement;\n const containerWindow = ownerWindow(container);\n scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;\n }\n\n // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n property: 'overflow',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowX,\n property: 'overflow-x',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowY,\n property: 'overflow-y',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n const restore = () => {\n restoreStyle.forEach(({\n value,\n el,\n property\n }) => {\n if (value) {\n el.style.setProperty(property, value);\n } else {\n el.style.removeProperty(property);\n }\n });\n };\n return restore;\n}\nfunction getHiddenSiblings(container) {\n const hiddenSiblings = [];\n [].forEach.call(container.children, element => {\n if (element.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(element);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nexport class ModalManager {\n constructor() {\n this.containers = void 0;\n this.modals = void 0;\n this.modals = [];\n this.containers = [];\n }\n add(modal, container) {\n let modalIndex = this.modals.indexOf(modal);\n if (modalIndex !== -1) {\n return modalIndex;\n }\n modalIndex = this.modals.length;\n this.modals.push(modal);\n\n // If the modal we are adding is already in the DOM.\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n const hiddenSiblings = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n const containerIndex = findIndexOf(this.containers, item => item.container === container);\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n this.containers.push({\n modals: [modal],\n container,\n restore: null,\n hiddenSiblings\n });\n return modalIndex;\n }\n mount(modal, props) {\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n remove(modal, ariaHiddenState = true) {\n const modalIndex = this.modals.indexOf(modal);\n if (modalIndex === -1) {\n return modalIndex;\n }\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1);\n\n // If that was the last modal in a container, clean up the container.\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, ariaHiddenState);\n }\n ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n const nextTop = containerInfo.modals[containerInfo.modals.length - 1];\n // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n return modalIndex;\n }\n isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n}", "'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).\n *\n * This component can be useful in a variety of situations:\n *\n * * Escape hatch for broken dependencies not supporting SSR.\n * * Improve the time-to-first paint on the client by only rendering above the fold.\n * * Reduce the rendering time on the server.\n * * Under too heavy server load, you can turn on service degradation.\n *\n * Demos:\n *\n * - [No SSR](https://mui.com/base-ui/react-no-ssr/)\n *\n * API:\n *\n * - [NoSsr API](https://mui.com/base-ui/react-no-ssr/components-api/#no-ssr)\n */\nfunction NoSsr(props) {\n const {\n children,\n defer = false,\n fallback = null\n } = props;\n const [mountedState, setMountedState] = React.useState(false);\n useEnhancedEffect(() => {\n if (!defer) {\n setMountedState(true);\n }\n }, [defer]);\n React.useEffect(() => {\n if (defer) {\n setMountedState(true);\n }\n }, [defer]);\n\n // We need the Fragment here to force react-docgen to recognise NoSsr as a component.\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountedState ? children : fallback\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? NoSsr.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * You can wrap a node.\n */\n children: PropTypes.node,\n /**\n * If `true`, the component will not only prevent server-side rendering.\n * It will also defer the rendering of the children into a different screen frame.\n * @default false\n */\n defer: PropTypes.bool,\n /**\n * The fallback content to display.\n * @default null\n */\n fallback: PropTypes.node\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n NoSsr['propTypes' + ''] = exactProp(NoSsr.propTypes);\n}\nexport { NoSsr };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"maxRows\", \"minRows\", \"style\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_debounce as debounce, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getStyleValue(value) {\n return parseInt(value, 10) || 0;\n}\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflowing;\n}\n\n/**\n *\n * Demos:\n *\n * - [Textarea Autosize](https://mui.com/base-ui/react-textarea-autosize/)\n * - [Textarea Autosize](https://mui.com/material-ui/react-textarea-autosize/)\n *\n * API:\n *\n * - [TextareaAutosize API](https://mui.com/base-ui/react-textarea-autosize/components-api/#textarea-autosize)\n */\nconst TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, forwardedRef) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(forwardedRef, inputRef);\n const shadowRef = React.useRef(null);\n const calculateTextareaStyles = React.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n const computedStyle = containerWindow.getComputedStyle(input);\n\n // If input's width is shrunk and it's not visible, don't sync height.\n if (computedStyle.width === '0px') {\n return {\n outerHeightStyle: 0,\n overflowing: false\n };\n }\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n const boxSizing = computedStyle.boxSizing;\n const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);\n const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);\n\n // The height of the inner content\n const innerHeight = inputShallow.scrollHeight;\n\n // Measure height of a textarea with a single row\n inputShallow.value = 'x';\n const singleRowHeight = inputShallow.scrollHeight;\n\n // The height of the outer content\n let outerHeight = innerHeight;\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n outerHeight = Math.max(outerHeight, singleRowHeight);\n\n // Take the box sizing into account for applying this value as a style.\n const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n const overflowing = Math.abs(outerHeight - innerHeight) <= 1;\n return {\n outerHeightStyle,\n overflowing\n };\n }, [maxRows, minRows, props.placeholder]);\n const syncHeight = React.useCallback(() => {\n const textareaStyles = calculateTextareaStyles();\n if (isEmpty(textareaStyles)) {\n return;\n }\n const input = inputRef.current;\n input.style.height = `${textareaStyles.outerHeightStyle}px`;\n input.style.overflow = textareaStyles.overflowing ? 'hidden' : '';\n }, [calculateTextareaStyles]);\n useEnhancedEffect(() => {\n const handleResize = () => {\n syncHeight();\n };\n // Workaround a \"ResizeObserver loop completed with undelivered notifications\" error\n // in test.\n // Note that we might need to use this logic in production per https://github.com/WICG/resize-observer/issues/38\n // Also see https://github.com/mui/mui-x/issues/8733\n let rAF;\n const rAFHandleResize = () => {\n cancelAnimationFrame(rAF);\n rAF = requestAnimationFrame(() => {\n handleResize();\n });\n };\n const debounceHandleResize = debounce(handleResize);\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n containerWindow.addEventListener('resize', debounceHandleResize);\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(process.env.NODE_ENV === 'test' ? rAFHandleResize : handleResize);\n resizeObserver.observe(input);\n }\n return () => {\n debounceHandleResize.clear();\n cancelAnimationFrame(rAF);\n containerWindow.removeEventListener('resize', debounceHandleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [calculateTextareaStyles, syncHeight]);\n useEnhancedEffect(() => {\n syncHeight();\n });\n const handleChange = event => {\n if (!isControlled) {\n syncHeight();\n }\n if (onChange) {\n onChange(event);\n }\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef\n // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: style\n }, other)), /*#__PURE__*/_jsx(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style, {\n paddingTop: 0,\n paddingBottom: 0\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display.\n * @default 1\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport { TextareaAutosize };", "'use client';\n\n/* eslint-disable no-constant-condition */\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId, usePreviousProps } from '@mui/utils';\n\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n const filteredOptions = !input ? options : options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n}\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n return -1;\n}\nconst defaultFilterOptions = createFilterOptions();\n\n// Number of options to jump in list box when `Page Up` and `Page Down` keys are used.\nconst pageSize = 5;\nconst defaultIsActiveElementInListbox = listboxRef => {\n var _listboxRef$current$p;\n return listboxRef.current !== null && ((_listboxRef$current$p = listboxRef.current.parentElement) == null ? void 0 : _listboxRef$current$p.contains(document.activeElement));\n};\nexport function useAutocomplete(props) {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_isActiveElementInListbox = defaultIsActiveElementInListbox,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_classNamePrefix = 'Mui',\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled: disabledProp,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionKey,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n isOptionEqualToValue = (option, value) => option === value,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n return String(optionLabel);\n }\n return optionLabel;\n };\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n let newInputValue;\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n if (inputValue === newInputValue) {\n return;\n }\n setInputValueState(newInputValue);\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n return true;\n }),\n // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const previousProps = usePreviousProps({\n filteredOptions,\n value,\n inputValue\n });\n React.useEffect(() => {\n const valueChange = value !== previousProps.value;\n if (focused && !valueChange) {\n return;\n }\n\n // Only reset the input's value when freeSolo if the component's value changes.\n if (freeSolo && !valueChange) {\n return;\n }\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, previousProps.value, freeSolo]);\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n if (process.env.NODE_ENV !== 'production') {\n if (value !== null && !freeSolo && options.length > 0) {\n const missingValue = (multiple ? value : [value]).filter(value2 => !options.some(option => isOptionEqualToValue(option, value2)));\n if (missingValue.length > 0) {\n console.warn([`MUI: The value provided to ${componentName} is invalid.`, `None of the options match with \\`${missingValue.length > 1 ? JSON.stringify(missingValue) : JSON.stringify(missingValue[0])}\\`.`, 'You can use the `isOptionEqualToValue` prop to customize the equality test.'].join('\\n'));\n }\n }\n }\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n });\n\n // Ensure the focusedTag is never inconsistent\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index < 0 || index >= filteredOptions.length) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n if (option && option.hasAttribute('tabindex') && !nextFocusDisabled) {\n // The next option is available\n return nextFocus;\n }\n\n // The next option is disabled, move to the next element.\n // with looped index\n if (direction === 'next') {\n nextFocus = (nextFocus + 1) % filteredOptions.length;\n } else {\n nextFocus = (nextFocus - 1 + filteredOptions.length) % filteredOptions.length;\n }\n\n // We end up with initial index, that means we don't have available options.\n // All of them are disabled\n if (nextFocus === index) {\n return -1;\n }\n }\n }\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index;\n\n // does the index exist?\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n if (!listboxRef.current) {\n return;\n }\n const prev = listboxRef.current.querySelector(`[role=\"option\"].${unstable_classNamePrefix}-focused`);\n if (prev) {\n prev.classList.remove(`${unstable_classNamePrefix}-focused`);\n prev.classList.remove(`${unstable_classNamePrefix}-focusVisible`);\n }\n let listboxNode = listboxRef.current;\n if (listboxRef.current.getAttribute('role') !== 'listbox') {\n listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]');\n }\n\n // \"No results\"\n if (!listboxNode) {\n return;\n }\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n if (!option) {\n return;\n }\n option.classList.add(`${unstable_classNamePrefix}-focused`);\n if (reason === 'keyboard') {\n option.classList.add(`${unstable_classNamePrefix}-focusVisible`);\n }\n\n // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/WAI/content-assets/wai-aria-practices/patterns/combobox/examples/js/select-only.js\n // In case of mouse clicks and touch (in mobile devices) we avoid scrolling the element and keep both behaviors same.\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse' && reason !== 'touch') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n if (diff === 'start') {\n return 0;\n }\n if (diff === 'end') {\n return maxIndex;\n }\n const newIndex = highlightedIndexRef.current + diff;\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n return maxIndex;\n }\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n return 0;\n }\n return newIndex;\n };\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n });\n\n // Sync the content of the input with the highlighted option.\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option;\n\n // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const getPreviousHighlightedOptionIndex = () => {\n const isSameValue = (value1, value2) => {\n const label1 = value1 ? getOptionLabel(value1) : '';\n const label2 = value2 ? getOptionLabel(value2) : '';\n return label1 === label2;\n };\n if (highlightedIndexRef.current !== -1 && previousProps.filteredOptions && previousProps.filteredOptions.length !== filteredOptions.length && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {\n const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];\n if (previousHighlightedOption) {\n return findIndex(filteredOptions, option => {\n return getOptionLabel(option) === getOptionLabel(previousHighlightedOption);\n });\n }\n }\n return -1;\n };\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n // Check if the previously highlighted option still exists in the updated filtered options list and if the value and inputValue haven't changed\n // If it exists and the value and the inputValue haven't changed, just update its index, otherwise continue execution\n const previousHighlightedOptionIndex = getPreviousHighlightedOptionIndex();\n if (previousHighlightedOptionIndex !== -1) {\n highlightedIndexRef.current = previousHighlightedOptionIndex;\n return;\n }\n const valueItem = multiple ? value[0] : value;\n\n // The popup is empty, reset\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n if (!listboxRef.current) {\n return;\n }\n\n // Synchronize the value with the highlighted index\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current];\n\n // Keep the current highlighted index if possible\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n return;\n }\n\n // Prevent the highlighted index to leak outside the boundaries.\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n }\n\n // Restore the focus to the previous index.\n setHighlightedIndex({\n index: highlightedIndexRef.current\n });\n // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length,\n // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n if (!node) {\n return;\n }\n syncHighlightedIndex();\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (e.g. enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n const handleOpen = event => {\n if (open) {\n return;\n }\n setOpenState(true);\n setInputPristine(true);\n if (onOpen) {\n onOpen(event);\n }\n };\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n setOpenState(false);\n if (onClose) {\n onClose(event, reason);\n }\n };\n const handleValue = (event, newValue, reason, details) => {\n if (multiple) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n setValueState(newValue);\n };\n const isTouch = React.useRef(false);\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n if (!disableCloseOnSelect && (!event || !event.ctrlKey && !event.metaKey)) {\n handleClose(event, reason);\n }\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n if (inputValue === '') {\n handleClose(event, 'toggleInput');\n }\n let nextTag = focusedTag;\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n if (nextTag < 0) {\n nextTag = 0;\n }\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n handleValue(event, multiple ? [] : null, 'clear');\n };\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n if (event.defaultMuiPrevented) {\n return;\n }\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n\n // Wait until IME is settled.\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n\n // Avoid early form validation, let the end-users continue filling the form.\n event.preventDefault();\n if (disabled) {\n return;\n }\n selectNewValue(event, option, 'selectOption');\n\n // Move the selection to the end.\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n break;\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClear(event);\n }\n break;\n case 'Backspace':\n // Remove the value on the left of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n case 'Delete':\n // Remove the value on the right of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0 && focusedTag !== -1) {\n const index = focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n default:\n }\n }\n };\n const handleFocus = event => {\n setFocused(true);\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (unstable_isActiveElementInListbox(listboxRef)) {\n inputRef.current.focus();\n return;\n }\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n handleClose(event, 'blur');\n };\n const handleInputChange = event => {\n const newValue = event.target.value;\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n const handleOptionMouseMove = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n if (highlightedIndexRef.current !== index) {\n setHighlightedIndex({\n event,\n index,\n reason: 'mouse'\n });\n }\n };\n const handleOptionTouchStart = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'touch'\n });\n isTouch.current = true;\n };\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n };\n\n // Prevent input blur when interacting with the combobox\n const handleMouseDown = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n };\n\n // Focus the input when interacting with the combobox\n const handleClick = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n inputRef.current.focus();\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n firstFocus.current = false;\n };\n const handleInputMouseDown = event => {\n if (!disabledProp && (inputValue === '' || !open)) {\n handlePopupIndicator(event);\n }\n };\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n indexBy.set(group, true);\n }\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n return acc;\n }, []);\n }\n if (disabledProp && focused) {\n handleBlur();\n }\n return {\n getRootProps: (other = {}) => _extends({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperatively so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox',\n disabled: disabledProp\n }),\n getClearProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => _extends({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1\n }, !readOnly && {\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n var _getOptionKey;\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: (_getOptionKey = getOptionKey == null ? void 0 : getOptionKey(option)) != null ? _getOptionKey : getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseMove: handleOptionMouseMove,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n expanded: popupOpen && anchorEl,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as SystemGlobalStyles } from '@mui/system';\nimport defaultTheme from '../styles/defaultTheme';\nimport THEME_ID from '../styles/identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles(props) {\n return /*#__PURE__*/_jsx(SystemGlobalStyles, _extends({}, props, {\n defaultTheme: defaultTheme,\n themeId: THEME_ID\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The styles you want to apply globally.\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool])\n} : void 0;\nexport default GlobalStyles;", "import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getInputBaseUtilityClass(slot) {\n return generateUtilityClass('MuiInputBase', slot);\n}\nconst inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'readOnly', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);\nexport default inputBaseClasses;", "'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"aria-describedby\", \"autoComplete\", \"autoFocus\", \"className\", \"color\", \"components\", \"componentsProps\", \"defaultValue\", \"disabled\", \"disableInjectingGlobalStyles\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"maxRows\", \"minRows\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderSuffix\", \"rows\", \"size\", \"slotProps\", \"slots\", \"startAdornment\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport refType from '@mui/utils/refType';\nimport { TextareaAutosize } from '@mui/base';\nimport { isHostComponent } from '@mui/base/utils';\nimport composeClasses from '@mui/utils/composeClasses';\nimport formControlState from '../FormControl/formControlState';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport GlobalStyles from '../GlobalStyles';\nimport { isFilled } from './utils';\nimport inputBaseClasses, { getInputBaseUtilityClass } from './inputBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const rootOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.formControl && styles.formControl, ownerState.startAdornment && styles.adornedStart, ownerState.endAdornment && styles.adornedEnd, ownerState.error && styles.error, ownerState.size === 'small' && styles.sizeSmall, ownerState.multiline && styles.multiline, ownerState.color && styles[`color${capitalize(ownerState.color)}`], ownerState.fullWidth && styles.fullWidth, ownerState.hiddenLabel && styles.hiddenLabel];\n};\nexport const inputOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.input, ownerState.size === 'small' && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === 'search' && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n error,\n endAdornment,\n focused,\n formControl,\n fullWidth,\n hiddenLabel,\n multiline,\n readOnly,\n size,\n startAdornment,\n type\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size && size !== 'medium' && `size${capitalize(size)}`, multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel', readOnly && 'readOnly'],\n input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd', readOnly && 'readOnly']\n };\n return composeClasses(slots, getInputBaseUtilityClass, classes);\n};\nexport const InputBaseRoot = styled('div', {\n name: 'MuiInputBase',\n slot: 'Root',\n overridesResolver: rootOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body1, {\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: '1.4375em',\n // 23px\n boxSizing: 'border-box',\n // Prevent padding issue with fullWidth.\n position: 'relative',\n cursor: 'text',\n display: 'inline-flex',\n alignItems: 'center',\n [`&.${inputBaseClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled,\n cursor: 'default'\n }\n}, ownerState.multiline && _extends({\n padding: '4px 0 5px'\n}, ownerState.size === 'small' && {\n paddingTop: 1\n}), ownerState.fullWidth && {\n width: '100%'\n}));\nexport const InputBaseComponent = styled('input', {\n name: 'MuiInputBase',\n slot: 'Input',\n overridesResolver: inputOverridesResolver\n})(({\n theme,\n ownerState\n}) => {\n const light = theme.palette.mode === 'light';\n const placeholder = _extends({\n color: 'currentColor'\n }, theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n }, {\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.shorter\n })\n });\n const placeholderHidden = {\n opacity: '0 !important'\n };\n const placeholderVisible = theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n };\n return _extends({\n font: 'inherit',\n letterSpacing: 'inherit',\n color: 'currentColor',\n padding: '4px 0 5px',\n border: 0,\n boxSizing: 'content-box',\n background: 'none',\n height: '1.4375em',\n // Reset 23pxthe native input line-height\n margin: 0,\n // Reset for Safari\n WebkitTapHighlightColor: 'transparent',\n display: 'block',\n // Make the flex item shrink with Firefox\n minWidth: 0,\n width: '100%',\n // Fix IE11 width issue\n animationName: 'mui-auto-fill-cancel',\n animationDuration: '10ms',\n '&::-webkit-input-placeholder': placeholder,\n '&::-moz-placeholder': placeholder,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholder,\n // IE11\n '&::-ms-input-placeholder': placeholder,\n // Edge\n '&:focus': {\n outline: 0\n },\n // Reset Firefox invalid required input style\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::-webkit-search-decoration': {\n // Remove the padding when type=search.\n WebkitAppearance: 'none'\n },\n // Show and hide the placeholder logic\n [`label[data-shrink=false] + .${inputBaseClasses.formControl} &`]: {\n '&::-webkit-input-placeholder': placeholderHidden,\n '&::-moz-placeholder': placeholderHidden,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholderHidden,\n // IE11\n '&::-ms-input-placeholder': placeholderHidden,\n // Edge\n '&:focus::-webkit-input-placeholder': placeholderVisible,\n '&:focus::-moz-placeholder': placeholderVisible,\n // Firefox 19+\n '&:focus:-ms-input-placeholder': placeholderVisible,\n // IE11\n '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n },\n [`&.${inputBaseClasses.disabled}`]: {\n opacity: 1,\n // Reset iOS opacity\n WebkitTextFillColor: (theme.vars || theme).palette.text.disabled // Fix opacity Safari bug\n },\n '&:-webkit-autofill': {\n animationDuration: '5000s',\n animationName: 'mui-auto-fill'\n }\n }, ownerState.size === 'small' && {\n paddingTop: 1\n }, ownerState.multiline && {\n height: 'auto',\n resize: 'none',\n padding: 0,\n paddingTop: 0\n }, ownerState.type === 'search' && {\n // Improve type search style.\n MozAppearance: 'textfield'\n });\n});\nconst inputGlobalStyles = /*#__PURE__*/_jsx(GlobalStyles, {\n styles: {\n '@keyframes mui-auto-fill': {\n from: {\n display: 'block'\n }\n },\n '@keyframes mui-auto-fill-cancel': {\n from: {\n display: 'block'\n }\n }\n }\n});\n\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\nconst InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref) {\n var _slotProps$input;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputBase'\n });\n const {\n 'aria-describedby': ariaDescribedby,\n autoComplete,\n autoFocus,\n className,\n components = {},\n componentsProps = {},\n defaultValue,\n disabled,\n disableInjectingGlobalStyles,\n endAdornment,\n fullWidth = false,\n id,\n inputComponent = 'input',\n inputProps: inputPropsProp = {},\n inputRef: inputRefProp,\n maxRows,\n minRows,\n multiline = false,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n placeholder,\n readOnly,\n renderSuffix,\n rows,\n slotProps = {},\n slots = {},\n startAdornment,\n type = 'text',\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef();\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const handleInputRef = useForkRef(inputRef, inputRefProp, inputPropsProp.ref, handleInputRefWarning);\n const [focused, setFocused] = React.useState(false);\n const muiFormControl = useFormControl();\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (muiFormControl) {\n return muiFormControl.registerEffect();\n }\n return undefined;\n }, [muiFormControl]);\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'disabled', 'error', 'hiddenLabel', 'size', 'required', 'filled']\n });\n fcs.focused = muiFormControl ? muiFormControl.focused : focused;\n\n // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n React.useEffect(() => {\n if (!muiFormControl && disabled && focused) {\n setFocused(false);\n if (onBlur) {\n onBlur();\n }\n }\n }, [muiFormControl, disabled, focused, onBlur]);\n const onFilled = muiFormControl && muiFormControl.onFilled;\n const onEmpty = muiFormControl && muiFormControl.onEmpty;\n const checkDirty = React.useCallback(obj => {\n if (isFilled(obj)) {\n if (onFilled) {\n onFilled();\n }\n } else if (onEmpty) {\n onEmpty();\n }\n }, [onFilled, onEmpty]);\n useEnhancedEffect(() => {\n if (isControlled) {\n checkDirty({\n value\n });\n }\n }, [value, checkDirty, isControlled]);\n const handleFocus = event => {\n // Fix a bug with IE11 where the focus/blur events are triggered\n // while the component is disabled.\n if (fcs.disabled) {\n event.stopPropagation();\n return;\n }\n if (onFocus) {\n onFocus(event);\n }\n if (inputPropsProp.onFocus) {\n inputPropsProp.onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n } else {\n setFocused(true);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (inputPropsProp.onBlur) {\n inputPropsProp.onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n } else {\n setFocused(false);\n }\n };\n const handleChange = (event, ...args) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`inputComponent\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(1));\n }\n checkDirty({\n value: element.value\n });\n }\n if (inputPropsProp.onChange) {\n inputPropsProp.onChange(event, ...args);\n }\n\n // Perform in the willUpdate\n if (onChange) {\n onChange(event, ...args);\n }\n };\n\n // Check the input state on mount, in case it was filled by the user\n // or auto filled by the browser before the hydration (for SSR).\n React.useEffect(() => {\n checkDirty(inputRef.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const handleClick = event => {\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n if (onClick) {\n onClick(event);\n }\n };\n let InputComponent = inputComponent;\n let inputProps = inputPropsProp;\n if (multiline && InputComponent === 'input') {\n if (rows) {\n if (process.env.NODE_ENV !== 'production') {\n if (minRows || maxRows) {\n console.warn('MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set.');\n }\n }\n inputProps = _extends({\n type: undefined,\n minRows: rows,\n maxRows: rows\n }, inputProps);\n } else {\n inputProps = _extends({\n type: undefined,\n maxRows,\n minRows\n }, inputProps);\n }\n InputComponent = TextareaAutosize;\n }\n const handleAutoFill = event => {\n // Provide a fake value as Chrome might not let you access it for security reasons.\n checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n value: 'x'\n });\n };\n React.useEffect(() => {\n if (muiFormControl) {\n muiFormControl.setAdornedStart(Boolean(startAdornment));\n }\n }, [muiFormControl, startAdornment]);\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n disabled: fcs.disabled,\n endAdornment,\n error: fcs.error,\n focused: fcs.focused,\n formControl: muiFormControl,\n fullWidth,\n hiddenLabel: fcs.hiddenLabel,\n multiline,\n size: fcs.size,\n startAdornment,\n type\n });\n const classes = useUtilityClasses(ownerState);\n const Root = slots.root || components.Root || InputBaseRoot;\n const rootProps = slotProps.root || componentsProps.root || {};\n const Input = slots.input || components.Input || InputBaseComponent;\n inputProps = _extends({}, inputProps, (_slotProps$input = slotProps.input) != null ? _slotProps$input : componentsProps.input);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [!disableInjectingGlobalStyles && inputGlobalStyles, /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, !isHostComponent(Root) && {\n ownerState: _extends({}, ownerState, rootProps.ownerState)\n }, {\n ref: ref,\n onClick: handleClick\n }, other, {\n className: clsx(classes.root, rootProps.className, className, readOnly && 'MuiInputBase-readOnly'),\n children: [startAdornment, /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(Input, _extends({\n ownerState: ownerState,\n \"aria-invalid\": fcs.error,\n \"aria-describedby\": ariaDescribedby,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n disabled: fcs.disabled,\n id: id,\n onAnimationStart: handleAutoFill,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: fcs.required,\n rows: rows,\n value: value,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n type: type\n }, inputProps, !isHostComponent(Input) && {\n as: InputComponent,\n ownerState: _extends({}, ownerState, inputProps.ownerState)\n }, {\n ref: handleInputRef,\n className: clsx(classes.input, inputProps.className, readOnly && 'MuiInputBase-readOnly'),\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus\n }))\n }), endAdornment, renderSuffix ? renderSuffix(_extends({}, fcs, {\n startAdornment\n })) : null]\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputBase.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n 'aria-describedby': PropTypes.string,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, GlobalStyles for the auto-fill keyframes will not be injected/removed on mount/unmount. Make sure to inject them at the top of your application.\n * This option is intended to help with boosting the initial rendering performance if you are loading a big amount of Input components at once.\n * @default false\n */\n disableInjectingGlobalStyles: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: elementTypeAcceptingRef,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the `input` is blurred.\n *\n * Notice that the first argument (event) might be undefined.\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * Callback fired when the `input` doesn't satisfy its constraints.\n */\n onInvalid: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * @ignore\n */\n renderSuffix: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The size of the component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport default InputBase;", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"badgeContent\", \"children\", \"invisible\", \"max\", \"slotProps\", \"slots\", \"showZero\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useBadge } from '../useBadge';\nimport { getBadgeUtilityClass } from './badgeClasses';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n invisible\n } = ownerState;\n const slots = {\n root: ['root'],\n badge: ['badge', invisible && 'invisible']\n };\n return composeClasses(slots, useClassNamesOverride(getBadgeUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Badge](https://mui.com/base-ui/react-badge/)\n *\n * API:\n *\n * - [Badge API](https://mui.com/base-ui/react-badge/components-api/#badge)\n */\nconst Badge = /*#__PURE__*/React.forwardRef(function Badge(props, forwardedRef) {\n var _slots$root, _slots$badge;\n const {\n children,\n max: maxProp = 99,\n slotProps = {},\n slots = {},\n showZero = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n badgeContent,\n max,\n displayValue,\n invisible\n } = useBadge(_extends({}, props, {\n max: maxProp\n }));\n const ownerState = _extends({}, props, {\n badgeContent,\n invisible,\n max,\n showZero\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'span';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const BadgeComponent = (_slots$badge = slots.badge) != null ? _slots$badge : 'span';\n const badgeProps = useSlotProps({\n elementType: BadgeComponent,\n externalSlotProps: slotProps.badge,\n ownerState,\n className: classes.badge\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [children, /*#__PURE__*/_jsx(BadgeComponent, _extends({}, badgeProps, {\n children: displayValue\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Badge.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content rendered within the badge.\n */\n badgeContent: PropTypes.node,\n /**\n * The badge will be added relative to this node.\n */\n children: PropTypes.node,\n /**\n * If `true`, the badge is invisible.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * Max count to show.\n * @default 99\n */\n max: PropTypes.number,\n /**\n * Controls whether the badge is hidden when `badgeContent` is zero.\n * @default false\n */\n showZero: PropTypes.bool,\n /**\n * The props used for each slot inside the Badge.\n * @default {}\n */\n slotProps: PropTypes.shape({\n badge: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Badge.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n badge: PropTypes.elementType,\n root: PropTypes.elementType\n })\n} : void 0;\nexport { Badge };", "'use client';\n\nimport { usePreviousProps } from '@mui/utils';\n/**\n *\n * Demos:\n *\n * - [Badge](https://mui.com/base-ui/react-badge/#hook)\n *\n * API:\n *\n * - [useBadge API](https://mui.com/base-ui/react-badge/hooks-api/#use-badge)\n */\nexport function useBadge(parameters) {\n const {\n badgeContent: badgeContentProp,\n invisible: invisibleProp = false,\n max: maxProp = 99,\n showZero = false\n } = parameters;\n const prevProps = usePreviousProps({\n badgeContent: badgeContentProp,\n max: maxProp\n });\n let invisible = invisibleProp;\n if (invisibleProp === false && badgeContentProp === 0 && !showZero) {\n invisible = true;\n }\n const {\n badgeContent,\n max = maxProp\n } = invisible ? prevProps : parameters;\n const displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n return {\n badgeContent,\n invisible,\n max,\n displayValue\n };\n}", "import { generateUtilityClasses } from '../generateUtilityClasses';\nimport { generateUtilityClass } from '../generateUtilityClass';\nconst COMPONENT_NAME = 'Badge';\nexport function getBadgeUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const badgeClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'badge', 'invisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"children\", \"disabled\", \"focusableWhenDisabled\", \"onFocusVisible\", \"slotProps\", \"slots\", \"rootElementName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getButtonUtilityClass } from './buttonClasses';\nimport { useButton } from '../useButton';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n active,\n disabled,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible', active && 'active']\n };\n return composeClasses(slots, useClassNamesOverride(getButtonUtilityClass));\n};\n/**\n * The foundation for building custom-styled buttons.\n *\n * Demos:\n *\n * - [Button](https://mui.com/base-ui/react-button/)\n *\n * API:\n *\n * - [Button API](https://mui.com/base-ui/react-button/components-api/#button)\n */\nconst Button = /*#__PURE__*/React.forwardRef(function Button(props, forwardedRef) {\n var _slots$root;\n const {\n action,\n children,\n focusableWhenDisabled = false,\n slotProps = {},\n slots = {},\n rootElementName: rootElementNameProp = 'button'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef();\n let rootElementName = rootElementNameProp;\n if (typeof slots.root === 'string') {\n rootElementName = slots.root;\n } else if (other.href || other.to) {\n rootElementName = 'a';\n }\n const {\n active,\n focusVisible,\n setFocusVisible,\n getRootProps\n } = useButton(_extends({}, props, {\n focusableWhenDisabled,\n rootElementName\n }));\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), [setFocusVisible]);\n const ownerState = _extends({}, props, {\n active,\n focusableWhenDisabled,\n focusVisible\n });\n const classes = useUtilityClasses(ownerState);\n const defaultElement = other.href || other.to ? 'a' : 'button';\n const Root = (_slots$root = slots.root) != null ? _slots$root : defaultElement;\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n externalSlotProps: slotProps.root,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Button.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A ref for imperative actions. It currently only supports `focusVisible()` action.\n */\n action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focusVisible: PropTypes.func.isRequired\n })\n })]),\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, allows a disabled button to receive focus.\n * @default false\n */\n focusableWhenDisabled: PropTypes.bool,\n /**\n * @ignore\n */\n href: PropTypes.string,\n /**\n * @ignore\n */\n onFocusVisible: PropTypes.func,\n /**\n * The HTML element that is ultimately rendered, for example 'button' or 'a'\n * @default 'button'\n */\n rootElementName: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The props used for each slot inside the Button.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Button.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * @ignore\n */\n to: PropTypes.string\n} : void 0;\nexport { Button };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Button';\nexport function getButtonUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const buttonClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'active', 'disabled', 'focusVisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useRootElementName } from '../utils/useRootElementName';\n/**\n *\n * Demos:\n *\n * - [Button](https://mui.com/base-ui/react-button/#hook)\n *\n * API:\n *\n * - [useButton API](https://mui.com/base-ui/react-button/hooks-api/#use-button)\n */\nexport function useButton(parameters = {}) {\n const {\n disabled = false,\n focusableWhenDisabled,\n href,\n rootRef: externalRef,\n tabIndex,\n to,\n type,\n rootElementName: rootElementNameProp\n } = parameters;\n const buttonRef = React.useRef();\n const [active, setActive] = React.useState(false);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && !focusableWhenDisabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useEffect(() => {\n isFocusVisibleRef.current = focusVisible;\n }, [focusVisible, isFocusVisibleRef]);\n const [rootElementName, updateRootElementName] = useRootElementName({\n rootElementName: rootElementNameProp != null ? rootElementNameProp : href || to ? 'a' : undefined,\n componentName: 'Button'\n });\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous;\n if (focusVisible) {\n event.preventDefault();\n }\n (_otherHandlers$onMous = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous.call(otherHandlers, event);\n };\n const createHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n };\n const createHandleFocus = otherHandlers => event => {\n var _otherHandlers$onFocu2;\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n var _otherHandlers$onFocu;\n setFocusVisible(true);\n (_otherHandlers$onFocu = otherHandlers.onFocusVisible) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n }\n (_otherHandlers$onFocu2 = otherHandlers.onFocus) == null || _otherHandlers$onFocu2.call(otherHandlers, event);\n };\n const isNativeButton = () => {\n const button = buttonRef.current;\n return rootElementName === 'BUTTON' || rootElementName === 'INPUT' && ['button', 'submit', 'reset'].includes(button == null ? void 0 : button.type) || rootElementName === 'A' && (button == null ? void 0 : button.href);\n };\n const createHandleClick = otherHandlers => event => {\n if (!disabled) {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n }\n };\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous2;\n if (!disabled) {\n setActive(true);\n document.addEventListener('mouseup', () => {\n setActive(false);\n }, {\n once: true\n });\n }\n (_otherHandlers$onMous2 = otherHandlers.onMouseDown) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.target === event.currentTarget && !isNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (event.target === event.currentTarget && event.key === ' ' && !disabled) {\n setActive(true);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && !isNativeButton() && event.key === 'Enter' && !disabled) {\n var _otherHandlers$onClic2;\n (_otherHandlers$onClic2 = otherHandlers.onClick) == null || _otherHandlers$onClic2.call(otherHandlers, event);\n event.preventDefault();\n }\n };\n const createHandleKeyUp = otherHandlers => event => {\n var _otherHandlers$onKeyU;\n // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n // https://codesandbox.io/p/sandbox/button-keyup-preventdefault-dn7f0\n\n if (event.target === event.currentTarget) {\n setActive(false);\n }\n (_otherHandlers$onKeyU = otherHandlers.onKeyUp) == null || _otherHandlers$onKeyU.call(otherHandlers, event);\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && !isNativeButton() && !disabled && event.key === ' ' && !event.defaultMuiPrevented) {\n var _otherHandlers$onClic3;\n (_otherHandlers$onClic3 = otherHandlers.onClick) == null || _otherHandlers$onClic3.call(otherHandlers, event);\n }\n };\n const handleRef = useForkRef(updateRootElementName, externalRef, focusVisibleRef, buttonRef);\n const buttonProps = {};\n if (tabIndex !== undefined) {\n buttonProps.tabIndex = tabIndex;\n }\n if (rootElementName === 'BUTTON') {\n buttonProps.type = type != null ? type : 'button';\n if (focusableWhenDisabled) {\n buttonProps['aria-disabled'] = disabled;\n } else {\n buttonProps.disabled = disabled;\n }\n } else if (rootElementName === 'INPUT') {\n if (type && ['button', 'submit', 'reset'].includes(type)) {\n if (focusableWhenDisabled) {\n buttonProps['aria-disabled'] = disabled;\n } else {\n buttonProps.disabled = disabled;\n }\n }\n } else if (rootElementName !== '') {\n if (!href && !to) {\n buttonProps.role = 'button';\n buttonProps.tabIndex = tabIndex != null ? tabIndex : 0;\n }\n if (disabled) {\n buttonProps['aria-disabled'] = disabled;\n buttonProps.tabIndex = focusableWhenDisabled ? tabIndex != null ? tabIndex : 0 : -1;\n }\n }\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n const props = _extends({\n type\n }, externalEventHandlers, buttonProps, externalProps, {\n onBlur: createHandleBlur(externalEventHandlers),\n onClick: createHandleClick(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n onKeyUp: createHandleKeyUp(externalEventHandlers),\n onMouseDown: createHandleMouseDown(externalEventHandlers),\n onMouseLeave: createHandleMouseLeave(externalEventHandlers),\n ref: handleRef\n });\n\n // onFocusVisible can be present on the props or parameters,\n // but it's not a valid React event handler so it must not be forwarded to the inner component.\n // If present, it will be handled by the focus handler.\n delete props.onFocusVisible;\n return props;\n };\n return {\n getRootProps,\n focusVisible,\n setFocusVisible,\n active,\n rootRef: handleRef\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { useDropdown } from '../useDropdown/useDropdown';\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [Dropdown API](https://mui.com/base-ui/react-menu/components-api/#dropdown)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Dropdown(props) {\n const {\n children,\n open,\n defaultOpen,\n onOpenChange\n } = props;\n const {\n contextValue\n } = useDropdown({\n defaultOpen,\n onOpenChange,\n open\n });\n return /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Dropdown.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * If `true`, the dropdown is initially open.\n */\n defaultOpen: PropTypes.bool,\n /**\n * Callback fired when the component requests to be opened or closed.\n */\n onOpenChange: PropTypes.func,\n /**\n * Allows to control whether the dropdown is open.\n * This is a controlled counterpart of `defaultOpen`.\n */\n open: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Dropdown['propTypes' + ''] = exactProp(Dropdown.propTypes);\n}\nexport { Dropdown };", "import * as React from 'react';\nconst DropdownContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n DropdownContext.displayName = 'DropdownContext';\n}\nexport { DropdownContext };", "'use client';\n\nimport * as React from 'react';\nimport { useControllableReducer } from '../utils/useControllableReducer';\nimport { DropdownActionTypes } from './useDropdown.types';\nimport { dropdownReducer } from './dropdownReducer';\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useDropdown API](https://mui.com/base-ui/react-menu/hooks-api/#use-dropdown)\n */\nexport function useDropdown(parameters = {}) {\n const {\n defaultOpen,\n onOpenChange,\n open: openProp,\n componentName = 'useDropdown'\n } = parameters;\n const [popupId, setPopupId] = React.useState('');\n const [triggerElement, setTriggerElement] = React.useState(null);\n const lastActionType = React.useRef(null);\n const handleStateChange = React.useCallback((event, field, value, reason) => {\n if (field === 'open') {\n onOpenChange == null || onOpenChange(event, value);\n }\n lastActionType.current = reason;\n }, [onOpenChange]);\n const controlledProps = React.useMemo(() => openProp !== undefined ? {\n open: openProp\n } : {}, [openProp]);\n const [state, dispatch] = useControllableReducer({\n controlledProps,\n initialState: defaultOpen ? {\n open: true,\n changeReason: null\n } : {\n open: false,\n changeReason: null\n },\n onStateChange: handleStateChange,\n reducer: dropdownReducer,\n componentName\n });\n React.useEffect(() => {\n if (!state.open && lastActionType.current !== null && lastActionType.current !== DropdownActionTypes.blur) {\n triggerElement == null || triggerElement.focus();\n }\n }, [state.open, triggerElement]);\n const contextValue = {\n state,\n dispatch,\n popupId,\n registerPopup: setPopupId,\n registerTrigger: setTriggerElement,\n triggerElement\n };\n return {\n contextValue,\n open: state.open\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nfunction areEqual(a, b) {\n return a === b;\n}\nconst EMPTY_OBJECT = {};\nconst NOOP = () => {};\n\n/**\n * Gets the current state augmented with controlled values from the outside.\n * If a state item has a corresponding controlled value, it will be used instead of the internal state.\n */\nfunction getControlledState(internalState, controlledProps) {\n const augmentedState = _extends({}, internalState);\n Object.keys(controlledProps).forEach(key => {\n if (controlledProps[key] !== undefined) {\n augmentedState[key] = controlledProps[key];\n }\n });\n return augmentedState;\n}\n/**\n * Defines an effect that compares the next state with the previous state and calls\n * the `onStateChange` callback if the state has changed.\n * The comparison is done based on the `stateComparers` parameter.\n */\nfunction useStateChangeDetection(parameters) {\n const {\n nextState,\n initialState,\n stateComparers,\n onStateChange,\n controlledProps,\n lastActionRef\n } = parameters;\n const internalPreviousStateRef = React.useRef(initialState);\n React.useEffect(() => {\n if (lastActionRef.current === null) {\n // Detect changes only if an action has been dispatched.\n return;\n }\n const previousState = getControlledState(internalPreviousStateRef.current, controlledProps);\n Object.keys(nextState).forEach(key => {\n var _stateComparers$key;\n // go through all state keys and compare them with the previous state\n const stateComparer = (_stateComparers$key = stateComparers[key]) != null ? _stateComparers$key : areEqual;\n const nextStateItem = nextState[key];\n const previousStateItem = previousState[key];\n if (previousStateItem == null && nextStateItem != null || previousStateItem != null && nextStateItem == null || previousStateItem != null && nextStateItem != null && !stateComparer(nextStateItem, previousStateItem)) {\n var _event, _type;\n onStateChange == null || onStateChange((_event = lastActionRef.current.event) != null ? _event : null, key, nextStateItem, (_type = lastActionRef.current.type) != null ? _type : '', nextState);\n }\n });\n internalPreviousStateRef.current = nextState;\n lastActionRef.current = null;\n }, [internalPreviousStateRef, nextState, lastActionRef, onStateChange, stateComparers, controlledProps]);\n}\n\n/**\n * The alternative to `React.useReducer` that lets you control the state from the outside.\n *\n * It can be used in an uncontrolled mode, similar to `React.useReducer`, or in a controlled mode, when the state is controlled by the props.\n * It also supports partially controlled state, when some state items are controlled and some are not.\n *\n * The controlled state items are provided via the `controlledProps` parameter.\n * When a reducer action is dispatched, the internal state is updated with the new values.\n * A change event (`onStateChange`) is then triggered (for each changed state item) if the new state is different from the previous state.\n * This event can be used to update the controlled values.\n *\n * The comparison of the previous and next states is done using the `stateComparers` parameter.\n * If a state item has a corresponding comparer, it will be used to determine if the state has changed.\n * This is useful when the state item is an object and you want to compare only a subset of its properties or if it's an array and you want to compare its contents.\n *\n * An additional feature is the `actionContext` parameter. It allows you to add additional properties to every action object,\n * similarly to how React context is implicitly available to every component.\n *\n * @template State - The type of the state calculated by the reducer.\n * @template Action - The type of the actions that can be dispatched.\n * @template ActionContext - The type of the additional properties that will be added to every action object.\n *\n * @ignore - internal hook.\n */\nexport function useControllableReducer(parameters) {\n const lastActionRef = React.useRef(null);\n const {\n reducer,\n initialState,\n controlledProps = EMPTY_OBJECT,\n stateComparers = EMPTY_OBJECT,\n onStateChange = NOOP,\n actionContext,\n componentName = ''\n } = parameters;\n const controlledPropsRef = React.useRef(controlledProps);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n Object.keys(controlledProps).forEach(key => {\n if (controlledPropsRef.current[key] !== undefined && controlledProps[key] === undefined) {\n console.error(`useControllableReducer: ${componentName ? `The ${componentName} component` : 'A component'} is changing a controlled prop to be uncontrolled: ${key}`);\n }\n if (controlledPropsRef.current[key] === undefined && controlledProps[key] !== undefined) {\n console.error(`useControllableReducer: ${componentName ? `The ${componentName} component` : 'A component'} is changing an uncontrolled prop to be controlled: ${key}`);\n }\n });\n }, [controlledProps, componentName]);\n }\n\n // The reducer that is passed to React.useReducer is wrapped with a function that augments the state with controlled values.\n const reducerWithControlledState = React.useCallback((state, action) => {\n lastActionRef.current = action;\n const controlledState = getControlledState(state, controlledProps);\n const newState = reducer(controlledState, action);\n return newState;\n }, [controlledProps, reducer]);\n const [nextState, dispatch] = React.useReducer(reducerWithControlledState, initialState);\n\n // The action that is passed to dispatch is augmented with the actionContext.\n const dispatchWithContext = React.useCallback(action => {\n dispatch(_extends({}, action, {\n context: actionContext\n }));\n }, [actionContext]);\n useStateChangeDetection({\n nextState,\n initialState,\n stateComparers: stateComparers != null ? stateComparers : EMPTY_OBJECT,\n onStateChange: onStateChange != null ? onStateChange : NOOP,\n controlledProps,\n lastActionRef\n });\n return [getControlledState(nextState, controlledProps), dispatchWithContext];\n}", "export const DropdownActionTypes = {\n blur: 'dropdown:blur',\n escapeKeyDown: 'dropdown:escapeKeyDown',\n toggle: 'dropdown:toggle',\n open: 'dropdown:open',\n close: 'dropdown:close'\n};", "import { DropdownActionTypes } from './useDropdown.types';\nexport function dropdownReducer(state, action) {\n switch (action.type) {\n case DropdownActionTypes.blur:\n return {\n open: false,\n changeReason: action.event\n };\n case DropdownActionTypes.escapeKeyDown:\n return {\n open: false,\n changeReason: action.event\n };\n case DropdownActionTypes.toggle:\n return {\n open: !state.open,\n changeReason: action.event\n };\n case DropdownActionTypes.open:\n return {\n open: true,\n changeReason: action.event\n };\n case DropdownActionTypes.close:\n return {\n open: false,\n changeReason: action.event\n };\n default:\n throw new Error(`Unhandled action`);\n }\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"defaultValue\", \"children\", \"disabled\", \"error\", \"onChange\", \"required\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useControlled from '@mui/utils/useControlled';\nimport { FormControlContext } from './FormControlContext';\nimport { getFormControlUtilityClass } from './formControlClasses';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0) && value !== '';\n}\nfunction useUtilityClasses(ownerState) {\n const {\n disabled,\n error,\n filled,\n focused,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focused && 'focused', error && 'error', filled && 'filled', required && 'required']\n };\n return composeClasses(slots, useClassNamesOverride(getFormControlUtilityClass));\n}\n\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * * FormLabel\n * * FormHelperText\n * * Input\n * * InputLabel\n *\n * You can find one composition example below and more going to [the demos](https://mui.com/material-ui/react-text-field/#components).\n *\n * ```jsx\n * <FormControl>\n * <InputLabel htmlFor=\"my-input\">Email address</InputLabel>\n * <Input id=\"my-input\" aria-describedby=\"my-helper-text\" />\n * <FormHelperText id=\"my-helper-text\">We'll never share your email.</FormHelperText>\n * </FormControl>\n * ```\n *\n * ⚠️ Only one `Input` can be used within a FormControl because it create visual inconsistencies.\n * For instance, only one input can be focused at the same time, the state shouldn't be shared.\n *\n * Demos:\n *\n * - [Form Control](https://mui.com/base-ui/react-form-control/)\n * - [Input](https://mui.com/joy-ui/react-input/)\n * - [Checkbox](https://mui.com/material-ui/react-checkbox/)\n * - [Radio Group](https://mui.com/material-ui/react-radio-button/)\n * - [Switch](https://mui.com/material-ui/react-switch/)\n * - [Text Field](https://mui.com/material-ui/react-text-field/)\n *\n * API:\n *\n * - [FormControl API](https://mui.com/base-ui/react-form-control/components-api/#form-control)\n */\nconst FormControl = /*#__PURE__*/React.forwardRef(function FormControl(props, forwardedRef) {\n var _slots$root;\n const {\n defaultValue,\n children,\n disabled = false,\n error = false,\n onChange,\n required = false,\n slotProps = {},\n slots = {},\n value: incomingValue\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [value, setValue] = useControlled({\n controlled: incomingValue,\n default: defaultValue,\n name: 'FormControl',\n state: 'value'\n });\n const filled = hasValue(value);\n const [focusedState, setFocused] = React.useState(false);\n const focused = focusedState && !disabled;\n React.useEffect(() => setFocused(isFocused => disabled ? false : isFocused), [disabled]);\n const ownerState = _extends({}, props, {\n disabled,\n error,\n filled,\n focused,\n required\n });\n const childContext = React.useMemo(() => {\n return {\n disabled,\n error,\n filled,\n focused,\n onBlur: () => {\n setFocused(false);\n },\n onChange: event => {\n setValue(event.target.value);\n onChange == null || onChange(event);\n },\n onFocus: () => {\n setFocused(true);\n },\n required,\n value: value != null ? value : ''\n };\n }, [disabled, error, filled, focused, onChange, required, setValue, value]);\n const classes = useUtilityClasses(ownerState);\n const renderChildren = () => {\n if (typeof children === 'function') {\n return children(childContext);\n }\n return children;\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef,\n children: renderChildren()\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the label, input and helper text should be displayed in a disabled state.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * Callback fired when the form element's value is modified.\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the label will indicate that the `input` is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside the FormControl.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the FormControl.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the form element.\n */\n value: PropTypes.any\n} : void 0;\nexport { FormControl };", "import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst FormControlContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\nexport { FormControlContext };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'FormControl';\nexport function getFormControlUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const formControlClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'error', 'filled', 'focused', 'required']);", "'use client';\n\nimport * as React from 'react';\nimport { FormControlContext } from './FormControlContext';\n/**\n *\n * Demos:\n *\n * - [Form Control](https://mui.com/base-ui/react-form-control/#hook)\n *\n * API:\n *\n * - [useFormControlContext API](https://mui.com/base-ui/react-form-control/hooks-api/#use-form-control-context)\n */\nexport function useFormControlContext() {\n return React.useContext(FormControlContext);\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"aria-describedby\", \"aria-label\", \"aria-labelledby\", \"autoComplete\", \"autoFocus\", \"className\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"id\", \"multiline\", \"name\", \"onClick\", \"onChange\", \"onKeyDown\", \"onKeyUp\", \"onFocus\", \"onBlur\", \"placeholder\", \"readOnly\", \"required\", \"startAdornment\", \"value\", \"type\", \"rows\", \"slotProps\", \"slots\", \"minRows\", \"maxRows\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { isHostComponent } from '../utils/isHostComponent';\nimport { getInputUtilityClass } from './inputClasses';\nimport { useInput } from '../useInput';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n error,\n focused,\n formControlContext,\n multiline,\n startAdornment,\n endAdornment\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', focused && 'focused', Boolean(formControlContext) && 'formControl', multiline && 'multiline', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],\n input: ['input', disabled && 'disabled', multiline && 'multiline']\n };\n return composeClasses(slots, useClassNamesOverride(getInputUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Input](https://mui.com/base-ui/react-input/)\n *\n * API:\n *\n * - [Input API](https://mui.com/base-ui/react-input/components-api/#input)\n */\nconst Input = /*#__PURE__*/React.forwardRef(function Input(props, forwardedRef) {\n var _slots$root, _slots$textarea, _slots$input;\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoComplete,\n autoFocus,\n className,\n defaultValue,\n disabled,\n endAdornment,\n error,\n id,\n multiline = false,\n name,\n onClick,\n onChange,\n onKeyDown,\n onKeyUp,\n onFocus,\n onBlur,\n placeholder,\n readOnly,\n required,\n startAdornment,\n value,\n type: typeProp,\n rows,\n slotProps = {},\n slots = {},\n minRows,\n maxRows\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n getInputProps,\n focused,\n formControlContext,\n error: errorState,\n disabled: disabledState\n } = useInput({\n disabled,\n defaultValue,\n error,\n onBlur,\n onClick,\n onChange,\n onFocus,\n required,\n value\n });\n const type = !multiline ? typeProp != null ? typeProp : 'text' : undefined;\n const ownerState = _extends({}, props, {\n disabled: disabledState,\n error: errorState,\n focused,\n formControlContext,\n multiline,\n type\n });\n const classes = useUtilityClasses(ownerState);\n const propsToForward = {\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n autoComplete,\n autoFocus,\n id,\n onKeyDown,\n onKeyUp,\n name,\n placeholder,\n readOnly,\n type\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: [classes.root, className]\n });\n const InputComponent = multiline ? (_slots$textarea = slots.textarea) != null ? _slots$textarea : 'textarea' : (_slots$input = slots.input) != null ? _slots$input : 'input';\n const inputProps = useSlotProps({\n elementType: InputComponent,\n getSlotProps: otherHandlers => {\n return getInputProps(_extends({}, propsToForward, otherHandlers));\n },\n externalSlotProps: slotProps.input,\n additionalProps: _extends({\n rows: multiline ? rows : undefined\n }, multiline && !isHostComponent(InputComponent) && {\n minRows: rows || minRows,\n maxRows: rows || maxRows\n }),\n ownerState,\n className: classes.input\n });\n if (process.env.NODE_ENV !== 'production') {\n if (multiline) {\n if (rows) {\n if (minRows || maxRows) {\n console.warn('MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set.');\n }\n }\n }\n }\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [startAdornment, /*#__PURE__*/_jsx(InputComponent, _extends({}, inputProps)), endAdornment]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Input.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n 'aria-describedby': PropTypes.string,\n /**\n * @ignore\n */\n 'aria-label': PropTypes.string,\n /**\n * @ignore\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * Trailing adornment for this input.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error by setting the `aria-invalid` attribute on the input and the `baseui--error` class on the root element.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * @ignore\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.number,\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.number,\n /**\n * If `true`, a `textarea` element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.number,\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType,\n textarea: PropTypes.elementType\n }),\n /**\n * Leading adornment for this input.\n */\n startAdornment: PropTypes.node,\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes /* @typescript-to-proptypes-ignore */.oneOf(['button', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', 'time', 'url', 'week']),\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport { Input };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Input';\nexport function getInputUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const inputClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'formControl', 'focused', 'disabled', 'error', 'multiline', 'input', 'inputMultiline', 'inputTypeSearch', 'adornedStart', 'adornedEnd']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useFormControlContext } from '../FormControl';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\n/**\n *\n * Demos:\n *\n * - [Input](https://mui.com/base-ui/react-input/#hook)\n *\n * API:\n *\n * - [useInput API](https://mui.com/base-ui/react-input/hooks-api/#use-input)\n */\nexport function useInput(parameters = {}) {\n const {\n defaultValue: defaultValueProp,\n disabled: disabledProp = false,\n error: errorProp = false,\n onBlur,\n onChange,\n onFocus,\n required: requiredProp = false,\n value: valueProp,\n inputRef: inputRefProp\n } = parameters;\n const formControlContext = useFormControlContext();\n let defaultValue;\n let disabled;\n let error;\n let required;\n let value;\n if (formControlContext) {\n var _formControlContext$d, _formControlContext$e, _formControlContext$r;\n defaultValue = undefined;\n disabled = (_formControlContext$d = formControlContext.disabled) != null ? _formControlContext$d : false;\n error = (_formControlContext$e = formControlContext.error) != null ? _formControlContext$e : false;\n required = (_formControlContext$r = formControlContext.required) != null ? _formControlContext$r : false;\n value = formControlContext.value;\n if (process.env.NODE_ENV !== 'production') {\n const definedLocalProps = ['defaultValue', 'disabled', 'error', 'required', 'value'].filter(prop => parameters[prop] !== undefined);\n if (definedLocalProps.length > 0) {\n console.warn(['MUI: You have set props on an input that is inside a FormControl.', 'Set these props on a FormControl instead. Otherwise they will be ignored.', `Ignored props: ${definedLocalProps.join(', ')}`].join('\\n'));\n }\n }\n } else {\n defaultValue = defaultValueProp;\n disabled = disabledProp;\n error = errorProp;\n required = requiredProp;\n value = valueProp;\n }\n const {\n current: isControlled\n } = React.useRef(value != null);\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `slots.input` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const inputRef = React.useRef(null);\n const handleInputRef = useForkRef(inputRef, inputRefProp, handleInputRefWarning);\n const [focused, setFocused] = React.useState(false);\n\n // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n React.useEffect(() => {\n if (!formControlContext && disabled && focused) {\n setFocused(false);\n\n // @ts-ignore\n onBlur == null || onBlur();\n }\n }, [formControlContext, disabled, focused, onBlur]);\n const handleFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n // Fix a bug with IE11 where the focus/blur events are triggered\n // while the component is disabled.\n if (formControlContext != null && formControlContext.disabled) {\n event.stopPropagation();\n return;\n }\n (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n if (formControlContext && formControlContext.onFocus) {\n var _formControlContext$o;\n formControlContext == null || (_formControlContext$o = formControlContext.onFocus) == null || _formControlContext$o.call(formControlContext);\n } else {\n setFocused(true);\n }\n };\n const handleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (formControlContext && formControlContext.onBlur) {\n formControlContext.onBlur();\n } else {\n setFocused(false);\n }\n };\n const handleChange = otherHandlers => (event, ...args) => {\n var _formControlContext$o2, _otherHandlers$onChan;\n if (!isControlled) {\n const element = event.target || inputRef.current;\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`slots.input\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(17));\n }\n }\n formControlContext == null || (_formControlContext$o2 = formControlContext.onChange) == null || _formControlContext$o2.call(formControlContext, event);\n\n // @ts-ignore\n (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event, ...args);\n };\n const handleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n };\n const getRootProps = (externalProps = {}) => {\n // onBlur, onChange and onFocus are forwarded to the input slot.\n const propsEventHandlers = extractEventHandlers(parameters, ['onBlur', 'onChange', 'onFocus']);\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps));\n return _extends({}, externalProps, externalEventHandlers, {\n onClick: handleClick(externalEventHandlers)\n });\n };\n const getInputProps = (externalProps = {}) => {\n const propsEventHandlers = {\n onBlur,\n onChange,\n onFocus\n };\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps));\n const mergedEventHandlers = _extends({}, externalEventHandlers, {\n onBlur: handleBlur(externalEventHandlers),\n onChange: handleChange(externalEventHandlers),\n onFocus: handleFocus(externalEventHandlers)\n });\n return _extends({}, mergedEventHandlers, {\n 'aria-invalid': error || undefined,\n defaultValue: defaultValue,\n value: value,\n required,\n disabled\n }, externalProps, {\n ref: handleInputRef\n }, mergedEventHandlers);\n };\n return {\n disabled,\n error,\n focused,\n formControlContext,\n getInputProps,\n getRootProps,\n inputRef: handleInputRef,\n required,\n value\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"anchor\", \"children\", \"onItemsChange\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { HTMLElementType, refType } from '@mui/utils';\nimport { getMenuUtilityClass } from './menuClasses';\nimport { useMenu } from '../useMenu';\nimport { MenuProvider } from '../useMenu/MenuProvider';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Unstable_Popup as Popup } from '../Unstable_Popup';\nimport { useSlotProps } from '../utils/useSlotProps';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { ListActionTypes } from '../useList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n open\n } = ownerState;\n const slots = {\n root: ['root', open && 'expanded'],\n listbox: ['listbox', open && 'expanded']\n };\n return composeClasses(slots, useClassNamesOverride(getMenuUtilityClass));\n}\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [Menu API](https://mui.com/base-ui/react-menu/components-api/#menu)\n */\nconst Menu = /*#__PURE__*/React.forwardRef(function Menu(props, forwardedRef) {\n var _slots$root, _slots$listbox;\n const {\n actions,\n anchor: anchorProp,\n children,\n onItemsChange,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n contextValue,\n getListboxProps,\n dispatch,\n open,\n triggerElement\n } = useMenu({\n onItemsChange,\n componentName: 'Menu'\n });\n const anchor = anchorProp != null ? anchorProp : triggerElement;\n React.useImperativeHandle(actions, () => ({\n dispatch,\n resetHighlight: () => dispatch({\n type: ListActionTypes.resetHighlight,\n event: null\n })\n }), [dispatch]);\n const ownerState = _extends({}, props, {\n open\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef,\n role: undefined\n },\n className: classes.root,\n ownerState\n });\n const Listbox = (_slots$listbox = slots.listbox) != null ? _slots$listbox : 'ul';\n const listboxProps = useSlotProps({\n elementType: Listbox,\n getSlotProps: getListboxProps,\n externalSlotProps: slotProps.listbox,\n className: classes.listbox,\n ownerState\n });\n if (open === true && anchor == null) {\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: /*#__PURE__*/_jsx(Listbox, _extends({}, listboxProps, {\n children: /*#__PURE__*/_jsx(MenuProvider, {\n value: contextValue,\n children: children\n })\n }))\n }));\n }\n return /*#__PURE__*/_jsx(Popup, _extends({\n keepMounted: true\n }, rootProps, {\n open: open,\n anchor: anchor,\n slots: {\n root: Root\n },\n children: /*#__PURE__*/_jsx(Listbox, _extends({}, listboxProps, {\n children: /*#__PURE__*/_jsx(MenuProvider, {\n value: contextValue,\n children: children\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A ref with imperative actions that can be performed on the menu.\n */\n actions: refType,\n /**\n * The element based on which the menu is positioned.\n */\n anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Function called when the items displayed in the menu change.\n */\n onItemsChange: PropTypes.func,\n /**\n * The props used for each slot inside the Menu.\n * @default {}\n */\n slotProps: PropTypes.shape({\n listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Menu.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n listbox: PropTypes.elementType,\n root: PropTypes.elementType\n })\n} : void 0;\nexport { Menu };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Menu';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const menuClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'listbox', 'expanded']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { menuReducer } from './menuReducer';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { ListActionTypes, useList } from '../useList';\nimport { DropdownActionTypes } from '../useDropdown';\nimport { useCompoundParent } from '../useCompound';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nconst FALLBACK_MENU_CONTEXT = {\n dispatch: () => {},\n popupId: '',\n registerPopup: () => {},\n registerTrigger: () => {},\n state: {\n open: true,\n changeReason: null\n },\n triggerElement: null\n};\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenu API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu)\n */\nexport function useMenu(parameters = {}) {\n var _useId, _React$useContext;\n const {\n listboxRef: listboxRefProp,\n onItemsChange,\n id: idParam,\n disabledItemsFocusable = true,\n disableListWrap = false,\n autoFocus = true,\n componentName = 'useMenu'\n } = parameters;\n const rootRef = React.useRef(null);\n const handleRef = useForkRef(rootRef, listboxRefProp);\n const listboxId = (_useId = useId(idParam)) != null ? _useId : '';\n const {\n state: {\n open,\n changeReason\n },\n dispatch: menuDispatch,\n triggerElement,\n registerPopup\n } = (_React$useContext = React.useContext(DropdownContext)) != null ? _React$useContext : FALLBACK_MENU_CONTEXT;\n\n // store the initial open state to prevent focus stealing\n // (the first menu items gets focued only when the menu is opened by the user)\n const isInitiallyOpen = React.useRef(open);\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const subitemKeys = React.useMemo(() => Array.from(subitems.keys()), [subitems]);\n const getItemDomElement = React.useCallback(itemId => {\n var _subitems$get$ref$cur, _subitems$get;\n if (itemId == null) {\n return null;\n }\n return (_subitems$get$ref$cur = (_subitems$get = subitems.get(itemId)) == null ? void 0 : _subitems$get.ref.current) != null ? _subitems$get$ref$cur : null;\n }, [subitems]);\n const isItemDisabled = React.useCallback(id => {\n var _subitems$get2;\n return (subitems == null || (_subitems$get2 = subitems.get(id)) == null ? void 0 : _subitems$get2.disabled) || false;\n }, [subitems]);\n const getItemAsString = React.useCallback(id => {\n var _subitems$get3, _subitems$get4;\n return ((_subitems$get3 = subitems.get(id)) == null ? void 0 : _subitems$get3.label) || ((_subitems$get4 = subitems.get(id)) == null || (_subitems$get4 = _subitems$get4.ref.current) == null ? void 0 : _subitems$get4.innerText);\n }, [subitems]);\n const reducerActionContext = React.useMemo(() => ({\n listboxRef: rootRef\n }), [rootRef]);\n const {\n dispatch: listDispatch,\n getRootProps: getListRootProps,\n contextValue: listContextValue,\n state: {\n highlightedValue\n },\n rootRef: mergedListRef\n } = useList({\n disabledItemsFocusable,\n disableListWrap,\n focusManagement: 'DOM',\n getItemDomElement,\n getInitialState: () => ({\n selectedValues: [],\n highlightedValue: null\n }),\n isItemDisabled,\n items: subitemKeys,\n getItemAsString,\n rootRef: handleRef,\n onItemsChange,\n reducerActionContext,\n selectionMode: 'none',\n stateReducer: menuReducer,\n componentName\n });\n useEnhancedEffect(() => {\n registerPopup(listboxId);\n }, [listboxId, registerPopup]);\n useEnhancedEffect(() => {\n if (open && (changeReason == null ? void 0 : changeReason.type) === 'keydown' && changeReason.key === 'ArrowUp') {\n listDispatch({\n type: ListActionTypes.highlightLast,\n event: changeReason\n });\n }\n }, [open, changeReason, listDispatch]);\n React.useEffect(() => {\n if (open && autoFocus && highlightedValue && !isInitiallyOpen.current) {\n var _subitems$get5;\n (_subitems$get5 = subitems.get(highlightedValue)) == null || (_subitems$get5 = _subitems$get5.ref) == null || (_subitems$get5 = _subitems$get5.current) == null || _subitems$get5.focus();\n }\n }, [open, autoFocus, highlightedValue, subitems, subitemKeys]);\n React.useEffect(() => {\n var _rootRef$current;\n // set focus to the highlighted item (but prevent stealing focus from other elements on the page)\n if ((_rootRef$current = rootRef.current) != null && _rootRef$current.contains(document.activeElement) && highlightedValue !== null) {\n var _subitems$get6;\n subitems == null || (_subitems$get6 = subitems.get(highlightedValue)) == null || (_subitems$get6 = _subitems$get6.ref.current) == null || _subitems$get6.focus();\n }\n }, [highlightedValue, subitems]);\n const createHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur, _rootRef$current2;\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_rootRef$current2 = rootRef.current) != null && _rootRef$current2.contains(event.relatedTarget) || event.relatedTarget === triggerElement) {\n return;\n }\n menuDispatch({\n type: DropdownActionTypes.blur,\n event\n });\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'Escape') {\n menuDispatch({\n type: DropdownActionTypes.escapeKeyDown,\n event\n });\n }\n };\n const getOwnListboxHandlers = (otherHandlers = {}) => ({\n onBlur: createHandleBlur(otherHandlers),\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n const getListboxProps = (externalProps = {}) => {\n const getCombinedRootProps = combineHooksSlotProps(getOwnListboxHandlers, getListRootProps);\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, externalEventHandlers, getCombinedRootProps(externalEventHandlers), {\n id: listboxId,\n role: 'menu'\n });\n };\n React.useDebugValue({\n subitems,\n highlightedValue\n });\n return {\n contextValue: _extends({}, compoundComponentContextValue, listContextValue),\n dispatch: listDispatch,\n getListboxProps,\n highlightedValue,\n listboxRef: mergedListRef,\n menuItems: subitems,\n open,\n triggerElement\n };\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { ListActionTypes, listReducer } from '../useList';\nexport function menuReducer(state, action) {\n if (action.type === ListActionTypes.itemHover) {\n return _extends({}, state, {\n highlightedValue: action.item\n });\n }\n const newState = listReducer(state, action);\n\n // make sure an item is always highlighted\n if (newState.highlightedValue === null && action.context.items.length > 0) {\n return _extends({}, newState, {\n highlightedValue: action.context.items[0]\n });\n }\n if (action.type === ListActionTypes.keyDown) {\n if (action.event.key === 'Escape') {\n return _extends({}, newState, {\n open: false\n });\n }\n }\n if (action.type === ListActionTypes.blur) {\n var _action$context$listb;\n if (!((_action$context$listb = action.context.listboxRef.current) != null && _action$context$listb.contains(action.event.relatedTarget))) {\n var _action$context$listb2, _action$event$related;\n // To prevent the menu from closing when the focus leaves the menu to the button.\n // For more details, see https://github.com/mui/material-ui/pull/36917#issuecomment-1566992698\n const listboxId = (_action$context$listb2 = action.context.listboxRef.current) == null ? void 0 : _action$context$listb2.getAttribute('id');\n const controlledBy = (_action$event$related = action.event.relatedTarget) == null ? void 0 : _action$event$related.getAttribute('aria-controls');\n if (listboxId && controlledBy && listboxId === controlledBy) {\n return newState;\n }\n return _extends({}, newState, {\n open: false,\n highlightedValue: action.context.items[0]\n });\n }\n }\n return newState;\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { ListActionTypes } from './listActions.types';\nimport { listReducer as defaultReducer } from './listReducer';\nimport { useControllableReducer } from '../utils/useControllableReducer';\nimport { areArraysEqual } from '../utils/areArraysEqual';\nimport { useTextNavigation } from '../utils/useTextNavigation';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nconst EMPTY_OBJECT = {};\nconst NOOP = () => {};\nconst defaultItemComparer = (optionA, optionB) => optionA === optionB;\nconst defaultIsItemDisabled = () => false;\nconst defaultItemStringifier = item => typeof item === 'string' ? item : String(item);\nconst defaultGetInitialState = () => ({\n highlightedValue: null,\n selectedValues: []\n});\n\n/**\n * The useList is a lower-level utility that is used to build list-like components.\n * It's used to manage the state of the list and its items.\n *\n * Supports highlighting a single item and selecting an arbitrary number of items.\n *\n * The state of the list is managed by a controllable reducer - that is a reducer that can have its state\n * controlled from outside.\n *\n * By default, the state consists of `selectedValues` and `highlightedValue` but can be extended by the caller of the hook.\n * Also the actions that can be dispatched and the reducer function can be defined externally.\n *\n * @template ItemValue The type of the item values.\n * @template State The type of the list state. This should be a subtype of `ListState<ItemValue>`.\n * @template CustomAction The type of the actions that can be dispatched (besides the standard ListAction).\n * @template CustomActionContext The shape of additional properties that will be added to actions when dispatched.\n *\n * @ignore - internal hook.\n */\nfunction useList(params) {\n const {\n controlledProps = EMPTY_OBJECT,\n disabledItemsFocusable = false,\n disableListWrap = false,\n focusManagement = 'activeDescendant',\n getInitialState = defaultGetInitialState,\n getItemDomElement,\n getItemId,\n isItemDisabled = defaultIsItemDisabled,\n rootRef: externalListRef,\n onStateChange = NOOP,\n items,\n itemComparer = defaultItemComparer,\n getItemAsString = defaultItemStringifier,\n onChange,\n onHighlightChange,\n onItemsChange,\n orientation = 'vertical',\n pageSize = 5,\n reducerActionContext = EMPTY_OBJECT,\n selectionMode = 'single',\n stateReducer: externalReducer,\n componentName = 'useList'\n } = params;\n if (process.env.NODE_ENV !== 'production') {\n if (focusManagement === 'DOM' && getItemDomElement == null) {\n throw new Error('useList: The `getItemDomElement` prop is required when using the `DOM` focus management.');\n }\n if (focusManagement === 'activeDescendant' && getItemId == null) {\n throw new Error('useList: The `getItemId` prop is required when using the `activeDescendant` focus management.');\n }\n }\n const listRef = React.useRef(null);\n const handleRef = useForkRef(externalListRef, listRef);\n const handleHighlightChange = React.useCallback((event, value, reason) => {\n onHighlightChange == null || onHighlightChange(event, value, reason);\n if (focusManagement === 'DOM' && value != null && (reason === ListActionTypes.itemClick || reason === ListActionTypes.keyDown || reason === ListActionTypes.textNavigation)) {\n var _getItemDomElement;\n getItemDomElement == null || (_getItemDomElement = getItemDomElement(value)) == null || _getItemDomElement.focus();\n }\n }, [getItemDomElement, onHighlightChange, focusManagement]);\n const stateComparers = React.useMemo(() => ({\n highlightedValue: itemComparer,\n selectedValues: (valuesArray1, valuesArray2) => areArraysEqual(valuesArray1, valuesArray2, itemComparer)\n }), [itemComparer]);\n\n // This gets called whenever a reducer changes the state.\n const handleStateChange = React.useCallback((event, field, value, reason, state) => {\n onStateChange == null || onStateChange(event, field, value, reason, state);\n switch (field) {\n case 'highlightedValue':\n handleHighlightChange(event, value, reason);\n break;\n case 'selectedValues':\n onChange == null || onChange(event, value, reason);\n break;\n default:\n break;\n }\n }, [handleHighlightChange, onChange, onStateChange]);\n\n // The following object is added to each action when it's dispatched.\n // It's accessible in the reducer via the `action.context` field.\n const listActionContext = React.useMemo(() => {\n return {\n disabledItemsFocusable,\n disableListWrap,\n focusManagement,\n isItemDisabled,\n itemComparer,\n items,\n getItemAsString,\n onHighlightChange: handleHighlightChange,\n orientation,\n pageSize,\n selectionMode,\n stateComparers\n };\n }, [disabledItemsFocusable, disableListWrap, focusManagement, isItemDisabled, itemComparer, items, getItemAsString, handleHighlightChange, orientation, pageSize, selectionMode, stateComparers]);\n const initialState = getInitialState();\n const reducer = externalReducer != null ? externalReducer : defaultReducer;\n const actionContext = React.useMemo(() => _extends({}, reducerActionContext, listActionContext), [reducerActionContext, listActionContext]);\n const [state, dispatch] = useControllableReducer({\n reducer,\n actionContext,\n initialState: initialState,\n controlledProps,\n stateComparers,\n onStateChange: handleStateChange,\n componentName\n });\n const {\n highlightedValue,\n selectedValues\n } = state;\n const handleTextNavigation = useTextNavigation((searchString, event) => dispatch({\n type: ListActionTypes.textNavigation,\n event,\n searchString\n }));\n const previousItems = React.useRef([]);\n React.useEffect(() => {\n // Whenever the `items` object changes, we need to determine if the actual items changed.\n // If they did, we need to dispatch an `itemsChange` action, so the selected/highlighted state is updated.\n if (areArraysEqual(previousItems.current, items, itemComparer)) {\n return;\n }\n dispatch({\n type: ListActionTypes.itemsChange,\n event: null,\n items,\n previousItems: previousItems.current\n });\n previousItems.current = items;\n onItemsChange == null || onItemsChange(items);\n }, [items, itemComparer, dispatch, onItemsChange]);\n const createHandleKeyDown = externalHandlers => event => {\n var _externalHandlers$onK;\n (_externalHandlers$onK = externalHandlers.onKeyDown) == null || _externalHandlers$onK.call(externalHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const keysToPreventDefault = ['Home', 'End', 'PageUp', 'PageDown'];\n if (orientation === 'vertical') {\n keysToPreventDefault.push('ArrowUp', 'ArrowDown');\n } else {\n keysToPreventDefault.push('ArrowLeft', 'ArrowRight');\n }\n if (focusManagement === 'activeDescendant') {\n // When the child element is focused using the activeDescendant attribute,\n // the list handles keyboard events on its behalf.\n // We have to `preventDefault()` is this case to prevent the browser from\n // scrolling the view when space is pressed or submitting forms when enter is pressed.\n keysToPreventDefault.push(' ', 'Enter');\n }\n if (keysToPreventDefault.includes(event.key)) {\n event.preventDefault();\n }\n dispatch({\n type: ListActionTypes.keyDown,\n key: event.key,\n event\n });\n handleTextNavigation(event);\n };\n const createHandleBlur = externalHandlers => event => {\n var _externalHandlers$onB, _listRef$current;\n (_externalHandlers$onB = externalHandlers.onBlur) == null || _externalHandlers$onB.call(externalHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_listRef$current = listRef.current) != null && _listRef$current.contains(event.relatedTarget)) {\n // focus remains within the list\n return;\n }\n dispatch({\n type: ListActionTypes.blur,\n event\n });\n };\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, {\n 'aria-activedescendant': focusManagement === 'activeDescendant' && highlightedValue != null ? getItemId(highlightedValue) : undefined,\n tabIndex: focusManagement === 'DOM' ? -1 : 0,\n ref: handleRef\n }, externalEventHandlers, {\n onBlur: createHandleBlur(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers)\n });\n };\n const getItemState = React.useCallback(item => {\n const selected = (selectedValues != null ? selectedValues : []).some(value => value != null && itemComparer(item, value));\n const highlighted = highlightedValue != null && itemComparer(item, highlightedValue);\n const focusable = focusManagement === 'DOM';\n return {\n focusable,\n highlighted,\n selected\n };\n }, [itemComparer, selectedValues, highlightedValue, focusManagement]);\n const contextValue = React.useMemo(() => ({\n dispatch,\n getItemState\n }), [dispatch, getItemState]);\n React.useDebugValue({\n state\n });\n return {\n contextValue,\n dispatch,\n getRootProps,\n rootRef: handleRef,\n state\n };\n}\nexport { useList };", "export const ListActionTypes = {\n blur: 'list:blur',\n focus: 'list:focus',\n itemClick: 'list:itemClick',\n itemHover: 'list:itemHover',\n itemsChange: 'list:itemsChange',\n keyDown: 'list:keyDown',\n resetHighlight: 'list:resetHighlight',\n highlightLast: 'list:highlightLast',\n textNavigation: 'list:textNavigation',\n clearSelection: 'list:clearSelection'\n};\n\n/**\n * A union of all standard actions that can be dispatched to the list reducer.\n */", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { ListActionTypes } from './listActions.types';\n/**\n * Looks up the next valid item to highlight within the list.\n *\n * @param currentIndex The index of the start of the search.\n * @param lookupDirection Whether to look for the next or previous item.\n * @param items The array of items to search.\n * @param includeDisabledItems Whether to include disabled items in the search.\n * @param isItemDisabled A function that determines whether an item is disabled.\n * @param wrapAround Whether to wrap around the list when searching.\n * @returns The index of the next valid item to highlight or -1 if no valid item is found.\n */\nfunction findValidItemToHighlight(currentIndex, lookupDirection, items, includeDisabledItems, isItemDisabled, wrapAround) {\n if (items.length === 0 || !includeDisabledItems && items.every((item, itemIndex) => isItemDisabled(item, itemIndex))) {\n return -1;\n }\n let nextFocus = currentIndex;\n for (;;) {\n // No valid items found\n if (!wrapAround && lookupDirection === 'next' && nextFocus === items.length || !wrapAround && lookupDirection === 'previous' && nextFocus === -1) {\n return -1;\n }\n const nextFocusDisabled = includeDisabledItems ? false : isItemDisabled(items[nextFocus], nextFocus);\n if (nextFocusDisabled) {\n nextFocus += lookupDirection === 'next' ? 1 : -1;\n if (wrapAround) {\n nextFocus = (nextFocus + items.length) % items.length;\n }\n } else {\n return nextFocus;\n }\n }\n}\n\n/**\n * Gets the next item to highlight based on the current highlighted item and the search direction.\n *\n * @param previouslyHighlightedValue The item from which to start the search for the next candidate.\n * @param offset The offset from the previously highlighted item to search for the next candidate or a special named value ('reset', 'start', 'end').\n * @param context The list action context.\n *\n * @returns The next item to highlight or null if no item is valid.\n */\nexport function moveHighlight(previouslyHighlightedValue, offset, context) {\n var _items$nextIndex;\n const {\n items,\n isItemDisabled,\n disableListWrap,\n disabledItemsFocusable,\n itemComparer,\n focusManagement\n } = context;\n\n // TODO: make this configurable\n // The always should be an item highlighted when focus is managed by the DOM\n // so that it's accessible by the `tab` key.\n const defaultHighlightedIndex = focusManagement === 'DOM' ? 0 : -1;\n const maxIndex = items.length - 1;\n const previouslyHighlightedIndex = previouslyHighlightedValue == null ? -1 : items.findIndex(item => itemComparer(item, previouslyHighlightedValue));\n let nextIndexCandidate;\n let lookupDirection;\n let wrapAround = !disableListWrap;\n switch (offset) {\n case 'reset':\n if (defaultHighlightedIndex === -1) {\n return null;\n }\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'start':\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'end':\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n wrapAround = false;\n break;\n default:\n {\n const newIndex = previouslyHighlightedIndex + offset;\n if (newIndex < 0) {\n if (!wrapAround && previouslyHighlightedIndex !== -1 || Math.abs(offset) > 1) {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n } else {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n }\n } else if (newIndex > maxIndex) {\n if (!wrapAround || Math.abs(offset) > 1) {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n } else {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n }\n } else {\n nextIndexCandidate = newIndex;\n lookupDirection = offset >= 0 ? 'next' : 'previous';\n }\n }\n }\n const nextIndex = findValidItemToHighlight(nextIndexCandidate, lookupDirection, items, disabledItemsFocusable, isItemDisabled, wrapAround);\n\n // If there are no valid items to highlight, return the previously highlighted item (if it's still valid).\n if (nextIndex === -1 && previouslyHighlightedValue !== null && !isItemDisabled(previouslyHighlightedValue, previouslyHighlightedIndex)) {\n return previouslyHighlightedValue;\n }\n return (_items$nextIndex = items[nextIndex]) != null ? _items$nextIndex : null;\n}\n\n/**\n * Toggles the selection of an item.\n *\n * @param item Item to toggle.\n * @param selectedValues Already selected items.\n * @param selectionMode The number of items that can be simultanously selected.\n * @param itemComparer A custom item comparer function.\n *\n * @returns The new array of selected items.\n */\nexport function toggleSelection(item, selectedValues, selectionMode, itemComparer) {\n if (selectionMode === 'none') {\n return [];\n }\n if (selectionMode === 'single') {\n // if the item to select has already been selected, return the original array\n if (itemComparer(selectedValues[0], item)) {\n return selectedValues;\n }\n return [item];\n }\n\n // The toggled item is selected; remove it from the selection.\n if (selectedValues.some(sv => itemComparer(sv, item))) {\n return selectedValues.filter(sv => !itemComparer(sv, item));\n }\n\n // The toggled item is not selected - add it to the selection.\n return [...selectedValues, item];\n}\n\n/**\n * Handles item selection in a list.\n *\n * @param item - The item to be selected.\n * @param state - The current state of the list.\n * @param context - The context of the list action.\n * @returns The new state of the list after the item has been selected, or the original state if the item is disabled.\n */\nexport function handleItemSelection(item, state, context) {\n const {\n itemComparer,\n isItemDisabled,\n selectionMode,\n items\n } = context;\n const {\n selectedValues\n } = state;\n const itemIndex = items.findIndex(i => itemComparer(item, i));\n if (isItemDisabled(item, itemIndex)) {\n return state;\n }\n\n // if the item is already selected, remove it from the selection, otherwise add it\n const newSelectedValues = toggleSelection(item, selectedValues, selectionMode, itemComparer);\n return _extends({}, state, {\n selectedValues: newSelectedValues,\n highlightedValue: item\n });\n}\nfunction handleKeyDown(key, state, context) {\n const previouslySelectedValue = state.highlightedValue;\n const {\n orientation,\n pageSize\n } = context;\n switch (key) {\n case 'Home':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 'start', context)\n });\n case 'End':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 'end', context)\n });\n case 'PageUp':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, -pageSize, context)\n });\n case 'PageDown':\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, pageSize, context)\n });\n case 'ArrowUp':\n if (orientation !== 'vertical') {\n break;\n }\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, -1, context)\n });\n case 'ArrowDown':\n if (orientation !== 'vertical') {\n break;\n }\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, 1, context)\n });\n case 'ArrowLeft':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? -1 : 1;\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n });\n }\n case 'ArrowRight':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? 1 : -1;\n return _extends({}, state, {\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n });\n }\n case 'Enter':\n case ' ':\n if (state.highlightedValue === null) {\n return state;\n }\n return handleItemSelection(state.highlightedValue, state, context);\n default:\n break;\n }\n return state;\n}\nfunction handleBlur(state, context) {\n if (context.focusManagement === 'DOM') {\n return state;\n }\n return _extends({}, state, {\n highlightedValue: null\n });\n}\nfunction textCriteriaMatches(nextFocus, searchString, stringifyItem) {\n var _stringifyItem;\n const text = (_stringifyItem = stringifyItem(nextFocus)) == null ? void 0 : _stringifyItem.trim().toLowerCase();\n if (!text || text.length === 0) {\n // Make item not navigable if stringification fails or results in empty string.\n return false;\n }\n return text.indexOf(searchString) === 0;\n}\nfunction handleTextNavigation(state, searchString, context) {\n const {\n items,\n isItemDisabled,\n disabledItemsFocusable,\n getItemAsString\n } = context;\n const startWithCurrentItem = searchString.length > 1;\n let nextItem = startWithCurrentItem ? state.highlightedValue : moveHighlight(state.highlightedValue, 1, context);\n for (let index = 0; index < items.length; index += 1) {\n // Return un-mutated state if looped back to the currently highlighted value\n if (!nextItem || !startWithCurrentItem && state.highlightedValue === nextItem) {\n return state;\n }\n if (textCriteriaMatches(nextItem, searchString, getItemAsString) && (!isItemDisabled(nextItem, items.indexOf(nextItem)) || disabledItemsFocusable)) {\n // The nextItem is the element to be highlighted\n return _extends({}, state, {\n highlightedValue: nextItem\n });\n }\n // Move to the next element.\n nextItem = moveHighlight(nextItem, 1, context);\n }\n\n // No item matches the text search criteria\n return state;\n}\nfunction handleItemsChange(items, previousItems, state, context) {\n var _state$selectedValues;\n const {\n itemComparer,\n focusManagement\n } = context;\n let newHighlightedValue = null;\n if (state.highlightedValue != null) {\n var _items$find;\n newHighlightedValue = (_items$find = items.find(item => itemComparer(item, state.highlightedValue))) != null ? _items$find : null;\n } else if (focusManagement === 'DOM' && previousItems.length === 0) {\n newHighlightedValue = moveHighlight(null, 'reset', context);\n }\n\n // exclude selected values that are no longer in the items list\n const selectedValues = (_state$selectedValues = state.selectedValues) != null ? _state$selectedValues : [];\n const newSelectedValues = selectedValues.filter(selectedValue => items.some(item => itemComparer(item, selectedValue)));\n return _extends({}, state, {\n highlightedValue: newHighlightedValue,\n selectedValues: newSelectedValues\n });\n}\nfunction handleResetHighlight(state, context) {\n return _extends({}, state, {\n highlightedValue: moveHighlight(null, 'reset', context)\n });\n}\nfunction handleHighlightLast(state, context) {\n return _extends({}, state, {\n highlightedValue: moveHighlight(null, 'end', context)\n });\n}\nfunction handleClearSelection(state, context) {\n return _extends({}, state, {\n selectedValues: [],\n highlightedValue: moveHighlight(null, 'reset', context)\n });\n}\nexport function listReducer(state, action) {\n const {\n type,\n context\n } = action;\n switch (type) {\n case ListActionTypes.keyDown:\n return handleKeyDown(action.key, state, context);\n case ListActionTypes.itemClick:\n return handleItemSelection(action.item, state, context);\n case ListActionTypes.blur:\n return handleBlur(state, context);\n case ListActionTypes.textNavigation:\n return handleTextNavigation(state, action.searchString, context);\n case ListActionTypes.itemsChange:\n return handleItemsChange(action.items, action.previousItems, state, context);\n case ListActionTypes.resetHighlight:\n return handleResetHighlight(state, context);\n case ListActionTypes.highlightLast:\n return handleHighlightLast(state, context);\n case ListActionTypes.clearSelection:\n return handleClearSelection(state, context);\n default:\n return state;\n }\n}", "'use client';\n\nimport * as React from 'react';\nconst TEXT_NAVIGATION_RESET_TIMEOUT = 500; // milliseconds\n\n/**\n * @ignore - internal hook.\n *\n * Provides a handler for text navigation.\n * It's used to navigate a list by typing the first letters of the options.\n *\n * @param callback A function to be called when the navigation should be performed.\n * @returns A function to be used in a keydown event handler.\n */\nexport function useTextNavigation(callback) {\n const textCriteriaRef = React.useRef({\n searchString: '',\n lastTime: null\n });\n return React.useCallback(event => {\n if (event.key.length === 1 && event.key !== ' ') {\n const textCriteria = textCriteriaRef.current;\n const lowerKey = event.key.toLowerCase();\n const currentTime = performance.now();\n if (textCriteria.searchString.length > 0 && textCriteria.lastTime && currentTime - textCriteria.lastTime > TEXT_NAVIGATION_RESET_TIMEOUT) {\n textCriteria.searchString = lowerKey;\n } else if (textCriteria.searchString.length !== 1 || lowerKey !== textCriteria.searchString) {\n // If there is just one character in the buffer and the key is the same, do not append\n textCriteria.searchString += lowerKey;\n }\n textCriteria.lastTime = currentTime;\n callback(textCriteria.searchString, event);\n }\n }, [callback]);\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { ListActionTypes } from './listActions.types';\nimport { ListContext } from './ListContext';\n\n/**\n * Contains the logic for an item of a list-like component (e.g. Select, Menu, etc.).\n * It handles the item's mouse events and tab index.\n *\n * @template ItemValue The type of the item's value. This should be consistent with the type of useList's `items` parameter.\n * @ignore - internal hook.\n */\nexport function useListItem(parameters) {\n const {\n handlePointerOverEvents = false,\n item\n } = parameters;\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('useListItem must be used within a ListProvider');\n }\n const {\n dispatch,\n getItemState\n } = listContext;\n const {\n highlighted,\n selected,\n focusable\n } = getItemState(item);\n const createHandleClick = React.useCallback(externalHandlers => event => {\n var _externalHandlers$onC;\n (_externalHandlers$onC = externalHandlers.onClick) == null || _externalHandlers$onC.call(externalHandlers, event);\n if (event.defaultPrevented) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (item === undefined) {\n throw new Error(['MUI: The `item` provided to useListItem() is undefined.', 'This should happen only during server-side rendering under React 17.'].join('\\n'));\n }\n }\n dispatch({\n type: ListActionTypes.itemClick,\n item: item,\n event\n });\n }, [dispatch, item]);\n const createHandlePointerOver = React.useCallback(externalHandlers => event => {\n var _externalHandlers$onM;\n (_externalHandlers$onM = externalHandlers.onMouseOver) == null || _externalHandlers$onM.call(externalHandlers, event);\n if (event.defaultPrevented) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (item === undefined) {\n throw new Error(['MUI: The `item` provided to useListItem() is undefined.', 'This should happen only during server-side rendering under React 17.'].join('\\n'));\n }\n }\n dispatch({\n type: ListActionTypes.itemHover,\n item: item,\n event\n });\n }, [dispatch, item]);\n let tabIndex;\n if (focusable) {\n tabIndex = highlighted ? 0 : -1;\n }\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({}, externalProps, {\n onClick: createHandleClick(externalEventHandlers),\n onPointerOver: handlePointerOverEvents ? createHandlePointerOver(externalEventHandlers) : undefined,\n tabIndex\n });\n };\n return {\n getRootProps,\n highlighted,\n selected\n };\n}", "import * as React from 'react';\nexport const ListContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}", "'use client';\n\nimport * as React from 'react';\nexport const CompoundComponentContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n CompoundComponentContext.displayName = 'CompoundComponentContext';\n}\n/**\n * Sorts the subitems by their position in the DOM.\n */\nfunction sortSubitems(subitems) {\n const subitemsArray = Array.from(subitems.keys()).map(key => {\n const subitem = subitems.get(key);\n return {\n key,\n subitem\n };\n });\n subitemsArray.sort((a, b) => {\n const aNode = a.subitem.ref.current;\n const bNode = b.subitem.ref.current;\n if (aNode === null || bNode === null || aNode === bNode) {\n return 0;\n }\n\n // eslint-disable-next-line no-bitwise\n return aNode.compareDocumentPosition(bNode) & Node.DOCUMENT_POSITION_PRECEDING ? 1 : -1;\n });\n return new Map(subitemsArray.map(item => [item.key, item.subitem]));\n}\n\n/**\n * Provides a way for a component to know about its children.\n *\n * Child components register themselves with the `useCompoundItem` hook, passing in arbitrary metadata to the parent.\n *\n * This is a more powerful altervantive to `children` traversal, as child components don't have to be placed\n * directly inside the parent component. They can be anywhere in the tree (and even rendered by other components).\n *\n * The downside is that this doesn't work with SSR as it relies on the useEffect hook.\n *\n * @ignore - internal hook.\n */\nexport function useCompoundParent() {\n const [subitems, setSubitems] = React.useState(new Map());\n const subitemKeys = React.useRef(new Set());\n const deregisterItem = React.useCallback(function deregisterItem(id) {\n subitemKeys.current.delete(id);\n setSubitems(previousState => {\n const newState = new Map(previousState);\n newState.delete(id);\n return newState;\n });\n }, []);\n const registerItem = React.useCallback(function registerItem(id, item) {\n let providedOrGeneratedId;\n if (typeof id === 'function') {\n providedOrGeneratedId = id(subitemKeys.current);\n } else {\n providedOrGeneratedId = id;\n }\n subitemKeys.current.add(providedOrGeneratedId);\n setSubitems(previousState => {\n const newState = new Map(previousState);\n newState.set(providedOrGeneratedId, item);\n return newState;\n });\n return {\n id: providedOrGeneratedId,\n deregister: () => deregisterItem(providedOrGeneratedId)\n };\n }, [deregisterItem]);\n const sortedSubitems = React.useMemo(() => sortSubitems(subitems), [subitems]);\n const getItemIndex = React.useCallback(function getItemIndex(id) {\n return Array.from(sortedSubitems.keys()).indexOf(id);\n }, [sortedSubitems]);\n const contextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount: subitems.size\n }), [getItemIndex, registerItem, subitems.size]);\n return {\n contextValue,\n subitems: sortedSubitems\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { CompoundComponentContext } from './useCompoundParent';\n/**\n * Registers a child component with the parent component.\n *\n * @param id A unique key for the child component. If the `id` is `undefined`, the registration logic will not run (this can sometimes be the case during SSR).\n * This can be either a value, or a function that generates a value based on already registered siblings' ids.\n * If a function, it's called with the set of the ids of all the items that have already been registered.\n * Return `existingKeys.size` if you want to use the index of the new item as the id.\n * @param itemMetadata Arbitrary metadata to pass to the parent component. This should be a stable reference (e.g. a memoized object), to avoid unnecessary re-registrations.\n *\n * @ignore - internal hook.\n */\nexport function useCompoundItem(id, itemMetadata) {\n const context = React.useContext(CompoundComponentContext);\n if (context === null) {\n throw new Error('useCompoundItem must be used within a useCompoundParent');\n }\n const {\n registerItem\n } = context;\n const [registeredId, setRegisteredId] = React.useState(typeof id === 'function' ? undefined : id);\n useEnhancedEffect(() => {\n const {\n id: returnedId,\n deregister\n } = registerItem(id, itemMetadata);\n setRegisteredId(returnedId);\n return deregister;\n }, [registerItem, itemMetadata, id]);\n return {\n id: registeredId,\n index: registeredId !== undefined ? context.getItemIndex(registeredId) : -1,\n totalItemCount: context.totalSubitemCount\n };\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Combines the two get*Props functions from Base UI hooks into one.\n * Useful when a hook uses two other hooks behind the scenes\n * (such as useSelect that depends on useList and useButton for its root slot).\n *\n * The resulting function will return the combined props.\n * They are merged from left to right, similarly to how Object.assign works.\n *\n * The getSecondProps function will receive the result of the getFirstProps function as its argument,\n * so its event handlers can call the previous handlers and act depending on its result.\n *\n * @param getFirstProps - A getter function that returns the props for the first slot. It receives the external event handlers as its argument.\n * @param getSecondProps - A getter function that returns the props for the second slot. It receives the result of the getFirstProps function as its argument.\n */\nexport function combineHooksSlotProps(getFirstProps, getSecondProps) {\n return function getCombinedProps(external = {}) {\n const firstResult = _extends({}, external, getFirstProps(external));\n const result = _extends({}, firstResult, getSecondProps(firstResult));\n return result;\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList/ListContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying MenuItem components.\n *\n * @ignore - do not document.\n */\nexport function MenuProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"anchor\", \"children\", \"container\", \"disablePortal\", \"keepMounted\", \"middleware\", \"offset\", \"open\", \"placement\", \"slotProps\", \"slots\", \"strategy\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react-dom';\nimport { HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Portal } from '../Portal';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { getPopupUtilityClass } from './popupClasses';\nimport { useTransitionTrigger, TransitionContext } from '../useTransition';\nimport { PopupContext } from './PopupContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n open\n } = ownerState;\n const slots = {\n root: ['root', open && 'open']\n };\n return composeClasses(slots, useClassNamesOverride(getPopupUtilityClass));\n}\nfunction resolveAnchor(anchor) {\n return typeof anchor === 'function' ? anchor() : anchor;\n}\n\n/**\n *\n * Demos:\n *\n * - [Popup](https://mui.com/base-ui/react-popup/)\n *\n * API:\n *\n * - [Popup API](https://mui.com/base-ui/react-popup/components-api/#popup)\n */\nconst Popup = /*#__PURE__*/React.forwardRef(function Popup(props, forwardedRef) {\n var _slots$root;\n const {\n anchor: anchorProp,\n children,\n container,\n disablePortal = false,\n keepMounted = false,\n middleware,\n offset: offsetProp = 0,\n open = false,\n placement = 'bottom',\n slotProps = {},\n slots = {},\n strategy = 'absolute'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n refs,\n elements,\n floatingStyles,\n update,\n placement: finalPlacement\n } = useFloating({\n elements: {\n reference: resolveAnchor(anchorProp)\n },\n open,\n middleware: middleware != null ? middleware : [offset(offsetProp != null ? offsetProp : 0), flip(), shift()],\n placement,\n strategy,\n whileElementsMounted: !keepMounted ? autoUpdate : undefined\n });\n const handleRef = useForkRef(refs.setFloating, forwardedRef);\n useEnhancedEffect(() => {\n if (keepMounted && open && elements.reference && elements.floating) {\n const cleanup = autoUpdate(elements.reference, elements.floating, update);\n return cleanup;\n }\n return undefined;\n }, [keepMounted, open, elements, update]);\n const ownerState = _extends({}, props, {\n disablePortal,\n keepMounted,\n offset,\n open,\n placement,\n finalPlacement,\n strategy\n });\n const {\n contextValue,\n hasExited: hasTransitionExited\n } = useTransitionTrigger(open);\n const visibility = keepMounted && hasTransitionExited ? 'hidden' : undefined;\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root,\n additionalProps: {\n ref: handleRef,\n role: 'tooltip',\n style: _extends({}, floatingStyles, {\n visibility\n })\n }\n });\n const popupContextValue = React.useMemo(() => ({\n placement: finalPlacement\n }), [finalPlacement]);\n const shouldRender = keepMounted || !hasTransitionExited;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(Portal, {\n disablePortal: disablePortal,\n container: container,\n children: /*#__PURE__*/_jsx(PopupContext.Provider, {\n value: popupContextValue,\n children: /*#__PURE__*/_jsx(TransitionContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }))\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Popup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * An HTML element, [virtual element](https://floating-ui.com/docs/virtual-elements),\n * or a function that returns either.\n * It's used to set the position of the popup.\n */\n anchor: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),\n /**\n * @ignore\n */\n children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * An HTML element or function that returns one. The container will have the portal children appended to it.\n * By default, it uses the body of the top-level document object, so it's `document.body` in these cases.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true`, the popup will be rendered where it is defined, without the use of portals.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true`, the popup will exist in the DOM even if it's closed.\n * Its visibility will be controlled by the `visibility` CSS property.\n *\n * Otherwise, a closed popup will be removed from the DOM.\n *\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Collection of Floating UI middleware to use when positioning the popup.\n * If not provided, the [`offset`](https://floating-ui.com/docs/offset)\n * and [`flip`](https://floating-ui.com/docs/flip) functions will be used.\n *\n * @see https://floating-ui.com/docs/computePosition#middleware\n */\n middleware: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.shape({\n fn: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.any\n })])),\n /**\n * Distance between a popup and the trigger element.\n * This prop is ignored when custom `middleware` is provided.\n *\n * @default 0\n * @see https://floating-ui.com/docs/offset\n */\n offset: PropTypes.oneOfType([PropTypes.func, PropTypes.number, PropTypes.shape({\n alignmentAxis: PropTypes.number,\n crossAxis: PropTypes.number,\n mainAxis: PropTypes.number\n })]),\n /**\n * If `true`, the popup is visible.\n *\n * @default false\n */\n open: PropTypes.bool,\n /**\n * Determines where to place the popup relative to the trigger element.\n *\n * @default 'bottom'\n * @see https://floating-ui.com/docs/computePosition#placement\n */\n placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * The props used for each slot inside the Popup.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Popup.\n * Either a string to use a HTML element or a component.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The type of CSS position property to use (absolute or fixed).\n *\n * @default 'absolute'\n * @see https://floating-ui.com/docs/computePosition#strategy\n */\n strategy: PropTypes.oneOf(['absolute', 'fixed'])\n} : void 0;\nexport { Popup };", "/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n", "import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n", "function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n", "import { rectToClientRect, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { detectOverflow, offset } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = currentWin.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(floating) {\n return topLayerSelectors.some(selector => {\n try {\n return floating.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element) || isTopLayer(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(data.floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, flip, hide, inline, limitShift, platform, shift, size };\n", "import { arrow as arrow$1, computePosition } from '@floating-ui/dom';\nexport { autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$1({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$1({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n\n // biome-ignore lint/suspicious/noSelfCompare: in source\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n isPositioned: true\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: `hasWhileElementsMounted` is intentionally included.\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\nexport { arrow, useFloating };\n", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Popup';\nexport function getPopupUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const popupClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'open']);", "'use client';\n\nimport * as React from 'react';\nimport { TransitionContext } from './TransitionContext';\n/**\n * Allows an element to be transitioned in and out.\n * The transition is triggerred by a `TransitionContext` placed above in the component tree.\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/#hooks)\n *\n * API:\n *\n * - [useTransitionStateManager API](https://mui.com/base-ui/react-transitions/hooks-api/#use-transition-state-manager)\n */\nexport function useTransitionStateManager() {\n const transitionContext = React.useContext(TransitionContext);\n if (!transitionContext) {\n throw new Error('Missing transition context');\n }\n const {\n registerTransition,\n requestedEnter,\n onExited\n } = transitionContext;\n React.useEffect(() => {\n return registerTransition();\n }, [registerTransition]);\n return {\n onExited,\n requestedEnter\n };\n}", "import * as React from 'react';\nexport const TransitionContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n TransitionContext.displayName = 'TransitionContext';\n}", "'use client';\n\nimport * as React from 'react';\n/**\n * Allows child elements to be transitioned in and out.\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/#hooks)\n *\n * API:\n *\n * - [useTransitionTrigger API](https://mui.com/base-ui/react-transitions/hooks-api/#use-transition-trigger)\n */\nexport function useTransitionTrigger(requestEnter) {\n const [exitTransitionFinished, setExitTransitionFinished] = React.useState(true);\n const hasPendingExitTransition = React.useRef(false);\n const registeredTransitions = React.useRef(0);\n const [hasTransition, setHasTransition] = React.useState(false);\n const previousRequestEnter = React.useRef(requestEnter);\n React.useEffect(() => {\n if (!requestEnter &&\n // checking registeredTransitions.current instead of hasTransition to avoid this effect re-firing whenever hasTransition changes\n registeredTransitions.current > 0 &&\n // prevents waiting for a pending transition right after mounting\n previousRequestEnter.current !== requestEnter) {\n hasPendingExitTransition.current = true;\n setExitTransitionFinished(false);\n }\n previousRequestEnter.current = requestEnter;\n }, [requestEnter]);\n const handleExited = React.useCallback(() => {\n hasPendingExitTransition.current = false;\n setExitTransitionFinished(true);\n }, []);\n const registerTransition = React.useCallback(() => {\n registeredTransitions.current += 1;\n setHasTransition(true);\n return () => {\n registeredTransitions.current -= 1;\n if (registeredTransitions.current === 0) {\n setHasTransition(false);\n }\n };\n }, []);\n let hasExited;\n if (!hasTransition) {\n // If there are no transitions registered, the `exited` state is opposite of `requestEnter` immediately.\n hasExited = !requestEnter;\n } else if (requestEnter) {\n hasExited = false;\n } else {\n hasExited = !hasPendingExitTransition.current && exitTransitionFinished;\n }\n const contextValue = React.useMemo(() => ({\n requestedEnter: requestEnter,\n onExited: handleExited,\n registerTransition,\n hasExited\n }), [handleExited, requestEnter, registerTransition, hasExited]);\n return {\n contextValue,\n hasExited\n };\n}", "import * as React from 'react';\nexport const PopupContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n PopupContext.displayName = 'PopupContext';\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"disabled\", \"label\", \"slots\", \"slotProps\", \"focusableWhenDisabled\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSlotProps } from '../utils';\nimport { useMenuButton } from '../useMenuButton';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { getMenuButtonUtilityClass } from './menuButtonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n active,\n disabled,\n open\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', active && 'active', open && 'expanded']\n };\n return composeClasses(slots, useClassNamesOverride(getMenuButtonUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [MenuButton API](https://mui.com/base-ui/react-menu/components-api/#menu-button)\n */\nconst MenuButton = /*#__PURE__*/React.forwardRef(function MenuButton(props, forwardedRef) {\n const {\n children,\n disabled = false,\n slots = {},\n slotProps = {},\n focusableWhenDisabled = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n open,\n active\n } = useMenuButton({\n disabled,\n focusableWhenDisabled,\n rootRef: forwardedRef\n });\n const ownerState = _extends({}, props, {\n open,\n active,\n disabled,\n focusableWhenDisabled\n });\n const classes = useUtilityClasses(ownerState);\n const Root = slots.root || 'button';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n externalSlotProps: slotProps.root,\n additionalProps: {\n ref: forwardedRef,\n type: 'button'\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, allows a disabled button to receive focus.\n * @default false\n */\n focusableWhenDisabled: PropTypes.bool,\n /**\n * Label of the button\n */\n label: PropTypes.string,\n /**\n * The components used for each slot inside the MenuButton.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The props used for each slot inside the MenuButton.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { MenuButton };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { DropdownActionTypes } from '../useDropdown/useDropdown.types';\nimport { useButton } from '../useButton/useButton';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nimport { extractEventHandlers } from '../utils';\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenuButton API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-button)\n */\nexport function useMenuButton(parameters = {}) {\n const {\n disabled = false,\n focusableWhenDisabled,\n rootRef: externalRef\n } = parameters;\n const menuContext = React.useContext(DropdownContext);\n if (menuContext === null) {\n throw new Error('useMenuButton: no menu context available.');\n }\n const {\n state,\n dispatch,\n registerTrigger,\n popupId\n } = menuContext;\n const {\n getRootProps: getButtonRootProps,\n rootRef: buttonRootRef,\n active\n } = useButton({\n disabled,\n focusableWhenDisabled,\n rootRef: externalRef\n });\n const handleRef = useForkRef(buttonRootRef, registerTrigger);\n const createHandleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n dispatch({\n type: DropdownActionTypes.toggle,\n event\n });\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n dispatch({\n type: DropdownActionTypes.open,\n event\n });\n }\n };\n const getOwnRootProps = (otherHandlers = {}) => ({\n onClick: createHandleClick(otherHandlers),\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedProps = combineHooksSlotProps(getOwnRootProps, getButtonRootProps);\n return _extends({\n 'aria-haspopup': 'menu',\n 'aria-expanded': state.open,\n 'aria-controls': popupId\n }, externalProps, externalEventHandlers, getCombinedProps(externalEventHandlers), {\n tabIndex: 0,\n // this is needed to make the button focused after click in Safari\n ref: handleRef\n });\n };\n return {\n active,\n getRootProps,\n open: state.open,\n rootRef: handleRef\n };\n}", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'MenuButton';\nexport function getMenuButtonUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const menuButtonClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'active', 'disabled', 'expanded']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"disabled\", \"label\", \"id\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { getMenuItemUtilityClass } from './menuItemClasses';\nimport { useMenuItem, useMenuItemContextStabilizer } from '../useMenuItem';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSlotProps } from '../utils/useSlotProps';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { ListContext } from '../useList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n disabled,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, useClassNamesOverride(getMenuItemUtilityClass));\n}\nconst InnerMenuItem = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n disabled: disabledProp = false,\n label,\n id,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n disabled,\n focusVisible,\n highlighted\n } = useMenuItem({\n id,\n disabled: disabledProp,\n rootRef: forwardedRef,\n label\n });\n const ownerState = _extends({}, props, {\n disabled,\n focusVisible,\n highlighted\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'li';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n className: classes.root,\n ownerState\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n}));\n\n/**\n * An unstyled menu item to be used within a Menu.\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [MenuItem API](https://mui.com/base-ui/react-menu/components-api/#menu-item)\n */\nconst MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, ref) {\n const {\n id: idProp\n } = props;\n\n // This wrapper component is used as a performance optimization.\n // `useMenuItemContextStabilizer` ensures that the context value\n // is stable across renders, so that the actual MenuItem re-renders\n // only when it needs to.\n const {\n contextValue,\n id\n } = useMenuItemContextStabilizer(idProp);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(InnerMenuItem, _extends({}, props, {\n id: id,\n ref: ref\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuItem.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the menu item will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the menu item won't receive focus when the mouse moves over it.\n *\n * @default false\n */\n disableFocusOnHover: PropTypes.bool,\n /**\n * A text representation of the menu item's content.\n * Used for keyboard text navigation matching.\n */\n label: PropTypes.string,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * The props used for each slot inside the MenuItem.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the MenuItem.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { MenuItem };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'MenuItem';\nexport function getMenuItemUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const menuItemClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'focusVisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useButton } from '../useButton';\nimport { useListItem } from '../useList';\nimport { DropdownActionTypes } from '../useDropdown';\nimport { DropdownContext } from '../useDropdown/DropdownContext';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nimport { useCompoundItem } from '../useCompound';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nfunction idGenerator(existingKeys) {\n return `menu-item-${existingKeys.size}`;\n}\nconst FALLBACK_MENU_CONTEXT = {\n dispatch: () => {},\n popupId: '',\n registerPopup: () => {},\n registerTrigger: () => {},\n state: {\n open: true,\n changeReason: null\n },\n triggerElement: null\n};\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenuItem API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-item)\n */\nexport function useMenuItem(params) {\n var _React$useContext;\n const {\n disabled = false,\n id: idParam,\n rootRef: externalRef,\n label,\n disableFocusOnHover = false\n } = params;\n const id = useId(idParam);\n const itemRef = React.useRef(null);\n const itemMetadata = React.useMemo(() => ({\n disabled,\n id: id != null ? id : '',\n label,\n ref: itemRef\n }), [disabled, id, label]);\n const {\n dispatch\n } = (_React$useContext = React.useContext(DropdownContext)) != null ? _React$useContext : FALLBACK_MENU_CONTEXT;\n const {\n getRootProps: getListRootProps,\n highlighted\n } = useListItem({\n item: id,\n handlePointerOverEvents: !disableFocusOnHover\n });\n const {\n index,\n totalItemCount\n } = useCompoundItem(id != null ? id : idGenerator, itemMetadata);\n const {\n getRootProps: getButtonProps,\n focusVisible,\n rootRef: buttonRefHandler\n } = useButton({\n disabled,\n focusableWhenDisabled: true\n });\n const handleRef = useForkRef(buttonRefHandler, externalRef, itemRef);\n React.useDebugValue({\n id,\n highlighted,\n disabled,\n label\n });\n const createHandleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n dispatch({\n type: DropdownActionTypes.close,\n event\n });\n };\n const getOwnHandlers = (otherHandlers = {}) => _extends({}, otherHandlers, {\n onClick: createHandleClick(otherHandlers)\n });\n function getRootProps(externalProps = {}) {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getOwnHandlers, combineHooksSlotProps(getButtonProps, getListRootProps));\n return _extends({}, externalProps, externalEventHandlers, getCombinedRootProps(externalEventHandlers), {\n id,\n ref: handleRef,\n role: 'menuitem'\n });\n }\n\n // If `id` is undefined (during SSR in React < 18), we fall back to rendering a simplified menu item\n // which does not have access to infortmation about its position or highlighted state.\n if (id === undefined) {\n return {\n getRootProps,\n disabled: false,\n focusVisible,\n highlighted: false,\n index: -1,\n totalItemCount: 0,\n rootRef: handleRef\n };\n }\n return {\n getRootProps,\n disabled,\n focusVisible,\n highlighted,\n index,\n totalItemCount,\n rootRef: handleRef\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { ListContext } from '../useList';\n\n/**\n * Stabilizes the ListContext value for the MenuItem component, so it doesn't change when sibling items update.\n *\n * @param id The id of the MenuItem. If undefined, it will be generated with useId.\n * @returns The stable ListContext value and the id of the MenuItem.\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenuItemContextStabilizer API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu-item-context-stabilizer)\n */\nexport function useMenuItemContextStabilizer(id) {\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('MenuItem: ListContext was not found.');\n }\n const itemId = useId(id);\n const {\n getItemState,\n dispatch\n } = listContext;\n let itemState;\n if (itemId != null) {\n itemState = getItemState(itemId);\n } else {\n itemState = {\n focusable: true,\n highlighted: false,\n selected: false\n };\n }\n const {\n highlighted,\n selected,\n focusable\n } = itemState;\n\n // The local version of getItemState can be only called with the current Option's value.\n // It doesn't make much sense to render an Option depending on other Options' state anyway.\n const localGetItemState = React.useCallback(itemValue => {\n if (itemValue !== itemId) {\n throw new Error(['Base UI MenuItem: Tried to access the state of another MenuItem.', `itemValue: ${itemValue} | id: ${itemId}`, 'This is unsupported when the MenuItem uses the MenuItemContextStabilizer as a performance optimization.'].join('/n'));\n }\n return {\n highlighted,\n selected,\n focusable\n };\n }, [highlighted, selected, focusable, itemId]);\n\n // Create a local (per MenuItem) instance of the ListContext that changes only when\n // the getItemState's return value changes.\n // This makes MenuItems re-render only when their state actually change, not when any MenuItem's state changes.\n const localContextValue = React.useMemo(() => ({\n dispatch,\n getItemState: localGetItemState\n }), [dispatch, localGetItemState]);\n return {\n contextValue: localContextValue,\n id: itemId\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"closeAfterTransition\", \"container\", \"disableAutoFocus\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"onBackdropClick\", \"onClose\", \"onKeyDown\", \"open\", \"onTransitionEnter\", \"onTransitionExited\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, HTMLElementType } from '@mui/utils';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { Portal } from '../Portal';\nimport { unstable_useModal as useModal } from '../unstable_useModal';\nimport { FocusTrap } from '../FocusTrap';\nimport { getModalUtilityClass } from './modalClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n open,\n exited\n } = ownerState;\n const slots = {\n root: ['root', !open && exited && 'hidden'],\n backdrop: ['backdrop']\n };\n return composeClasses(slots, useClassNamesOverride(getModalUtilityClass));\n};\n\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * * [Dialog](https://mui.com/material-ui/api/dialog/)\n * * [Drawer](https://mui.com/material-ui/api/drawer/)\n * * [Menu](https://mui.com/material-ui/api/menu/)\n * * [Popover](https://mui.com/material-ui/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](https://mui.com/material-ui/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n *\n * Demos:\n *\n * - [Modal](https://mui.com/base-ui/react-modal/)\n *\n * API:\n *\n * - [Modal API](https://mui.com/base-ui/react-modal/components-api/#modal)\n */\nconst Modal = /*#__PURE__*/React.forwardRef(function Modal(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n closeAfterTransition = false,\n container,\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableEscapeKeyDown = false,\n disablePortal = false,\n disableRestoreFocus = false,\n disableScrollLock = false,\n hideBackdrop = false,\n keepMounted = false,\n onBackdropClick,\n open,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const propsWithDefaults = _extends({}, props, {\n closeAfterTransition,\n disableAutoFocus,\n disableEnforceFocus,\n disableEscapeKeyDown,\n disablePortal,\n disableRestoreFocus,\n disableScrollLock,\n hideBackdrop,\n keepMounted\n });\n const {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n portalRef,\n isTopModal,\n exited,\n hasTransition\n } = useModal(_extends({}, propsWithDefaults, {\n rootRef: forwardedRef\n }));\n const ownerState = _extends({}, propsWithDefaults, {\n exited,\n hasTransition\n });\n const classes = useUtilityClasses(ownerState);\n const childProps = {};\n if (children.props.tabIndex === undefined) {\n childProps.tabIndex = '-1';\n }\n\n // It's a Transition like component\n if (hasTransition) {\n const {\n onEnter,\n onExited\n } = getTransitionProps();\n childProps.onEnter = onEnter;\n childProps.onExited = onExited;\n }\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n getSlotProps: getRootProps,\n className: classes.root,\n ownerState\n });\n const BackdropComponent = slots.backdrop;\n const backdropProps = useSlotProps({\n elementType: BackdropComponent,\n externalSlotProps: slotProps.backdrop,\n getSlotProps: otherHandlers => {\n return getBackdropProps(_extends({}, otherHandlers, {\n onClick: e => {\n if (onBackdropClick) {\n onBackdropClick(e);\n }\n if (otherHandlers != null && otherHandlers.onClick) {\n otherHandlers.onClick(e);\n }\n }\n }));\n },\n className: classes.backdrop,\n ownerState\n });\n if (!keepMounted && !open && (!hasTransition || exited)) {\n return null;\n }\n return /*#__PURE__*/_jsx(Portal, {\n ref: portalRef,\n container: container,\n disablePortal: disablePortal,\n children: /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [!hideBackdrop && BackdropComponent ? /*#__PURE__*/_jsx(BackdropComponent, _extends({}, backdropProps)) : null, /*#__PURE__*/_jsx(FocusTrap, {\n disableEnforceFocus: disableEnforceFocus,\n disableAutoFocus: disableAutoFocus,\n disableRestoreFocus: disableRestoreFocus,\n isEnabled: isTopModal,\n open: open,\n children: /*#__PURE__*/React.cloneElement(children, childProps)\n })]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Modal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * When set to true the Modal waits until a nested Transition is completed before closing.\n * @default false\n */\n closeAfterTransition: PropTypes.bool,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true`, the modal will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any modal children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableAutoFocus: PropTypes.bool,\n /**\n * If `true`, the modal will not prevent focus from leaving the modal while open.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableEnforceFocus: PropTypes.bool,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true`, the modal will not restore focus to previously focused element once\n * modal is hidden or unmounted.\n * @default false\n */\n disableRestoreFocus: PropTypes.bool,\n /**\n * Disable the scroll lock behavior.\n * @default false\n */\n disableScrollLock: PropTypes.bool,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Modal.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * A function called when a transition enters.\n */\n onTransitionEnter: PropTypes.func,\n /**\n * A function called when a transition has exited.\n */\n onTransitionExited: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The props used for each slot inside the Modal.\n * @default {}\n */\n slotProps: PropTypes.shape({\n backdrop: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Modal.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n backdrop: PropTypes.elementType,\n root: PropTypes.elementType\n })\n} : void 0;\nexport { Modal };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nimport { extractEventHandlers } from '../utils';\nimport { ModalManager, ariaHidden } from './ModalManager';\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\nfunction getHasTransition(children) {\n return children ? children.props.hasOwnProperty('in') : false;\n}\n\n// A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\nconst defaultManager = new ModalManager();\n/**\n *\n * Demos:\n *\n * - [Modal](https://mui.com/base-ui/react-modal/#hook)\n *\n * API:\n *\n * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal)\n */\nexport function useModal(parameters) {\n const {\n container,\n disableEscapeKeyDown = false,\n disableScrollLock = false,\n // @ts-ignore internal logic - Base UI supports the manager as a prop too\n manager = defaultManager,\n closeAfterTransition = false,\n onTransitionEnter,\n onTransitionExited,\n children,\n onClose,\n open,\n rootRef\n } = parameters;\n\n // @ts-ignore internal logic\n const modal = React.useRef({});\n const mountNodeRef = React.useRef(null);\n const modalRef = React.useRef(null);\n const handleRef = useForkRef(modalRef, rootRef);\n const [exited, setExited] = React.useState(!open);\n const hasTransition = getHasTransition(children);\n let ariaHiddenProp = true;\n if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {\n ariaHiddenProp = false;\n }\n const getDoc = () => ownerDocument(mountNodeRef.current);\n const getModal = () => {\n modal.current.modalRef = modalRef.current;\n modal.current.mount = mountNodeRef.current;\n return modal.current;\n };\n const handleMounted = () => {\n manager.mount(getModal(), {\n disableScrollLock\n });\n\n // Fix a bug on Chrome where the scroll isn't initially 0.\n if (modalRef.current) {\n modalRef.current.scrollTop = 0;\n }\n };\n const handleOpen = useEventCallback(() => {\n const resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer);\n\n // The element was already mounted.\n if (modalRef.current) {\n handleMounted();\n }\n });\n const isTopModal = React.useCallback(() => manager.isTopModal(getModal()), [manager]);\n const handlePortalRef = useEventCallback(node => {\n mountNodeRef.current = node;\n if (!node) {\n return;\n }\n if (open && isTopModal()) {\n handleMounted();\n } else if (modalRef.current) {\n ariaHidden(modalRef.current, ariaHiddenProp);\n }\n });\n const handleClose = React.useCallback(() => {\n manager.remove(getModal(), ariaHiddenProp);\n }, [ariaHiddenProp, manager]);\n React.useEffect(() => {\n return () => {\n handleClose();\n };\n }, [handleClose]);\n React.useEffect(() => {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n if (event.key !== 'Escape' || event.which === 229 ||\n // Wait until IME is settled.\n !isTopModal()) {\n return;\n }\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n if (onClose) {\n onClose(event, 'escapeKeyDown');\n }\n }\n };\n const createHandleBackdropClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.target !== event.currentTarget) {\n return;\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const getRootProps = (otherHandlers = {}) => {\n const propsEventHandlers = extractEventHandlers(parameters);\n\n // The custom event handlers shouldn't be spread on the root element\n delete propsEventHandlers.onTransitionEnter;\n delete propsEventHandlers.onTransitionExited;\n const externalEventHandlers = _extends({}, propsEventHandlers, otherHandlers);\n return _extends({\n role: 'presentation'\n }, externalEventHandlers, {\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n ref: handleRef\n });\n };\n const getBackdropProps = (otherHandlers = {}) => {\n const externalEventHandlers = otherHandlers;\n return _extends({\n 'aria-hidden': true\n }, externalEventHandlers, {\n onClick: createHandleBackdropClick(externalEventHandlers),\n open\n });\n };\n const getTransitionProps = () => {\n const handleEnter = () => {\n setExited(false);\n if (onTransitionEnter) {\n onTransitionEnter();\n }\n };\n const handleExited = () => {\n setExited(true);\n if (onTransitionExited) {\n onTransitionExited();\n }\n if (closeAfterTransition) {\n handleClose();\n }\n };\n return {\n onEnter: createChainedFunction(handleEnter, children == null ? void 0 : children.props.onEnter),\n onExited: createChainedFunction(handleExited, children == null ? void 0 : children.props.onExited)\n };\n };\n return {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n rootRef: handleRef,\n portalRef: handlePortalRef,\n isTopModal,\n exited,\n hasTransition\n };\n}", "import { generateUtilityClasses } from '../generateUtilityClasses';\nimport { generateUtilityClass } from '../generateUtilityClass';\nconst COMPONENT_NAME = 'Modal';\nexport function getModalUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const modalClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'hidden', 'backdrop']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"id\", \"max\", \"min\", \"onBlur\", \"onInputChange\", \"onFocus\", \"onChange\", \"placeholder\", \"required\", \"readOnly\", \"shiftMultiplier\", \"startAdornment\", \"step\", \"value\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { getNumberInputUtilityClass } from './numberInputClasses';\nimport { unstable_useNumberInput as useNumberInput } from '../unstable_useNumberInput';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n error,\n focused,\n readOnly,\n formControlContext,\n isIncrementDisabled,\n isDecrementDisabled,\n startAdornment,\n endAdornment\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', focused && 'focused', readOnly && 'readOnly', Boolean(formControlContext) && 'formControl', Boolean(startAdornment) && 'adornedStart', Boolean(endAdornment) && 'adornedEnd'],\n input: ['input', disabled && 'disabled', readOnly && 'readOnly'],\n incrementButton: ['incrementButton', isIncrementDisabled && 'disabled'],\n decrementButton: ['decrementButton', isDecrementDisabled && 'disabled']\n };\n return composeClasses(slots, useClassNamesOverride(getNumberInputUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Number Input](https://mui.com/base-ui/react-number-input/)\n *\n * API:\n *\n * - [NumberInput API](https://mui.com/base-ui/react-number-input/components-api/#number-input)\n */\nconst NumberInput = /*#__PURE__*/React.forwardRef(function NumberInput(props, forwardedRef) {\n var _slots$root, _slots$input, _slots$incrementButto, _slots$decrementButto;\n const {\n className,\n defaultValue,\n disabled,\n endAdornment,\n error,\n id,\n max,\n min,\n onBlur,\n onInputChange,\n onFocus,\n onChange,\n placeholder,\n required,\n readOnly = false,\n shiftMultiplier,\n startAdornment,\n step,\n value,\n slotProps = {},\n slots = {}\n } = props,\n rest = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getRootProps,\n getInputProps,\n getIncrementButtonProps,\n getDecrementButtonProps,\n focused,\n error: errorState,\n disabled: disabledState,\n formControlContext,\n isIncrementDisabled,\n isDecrementDisabled\n } = useNumberInput({\n min,\n max,\n step,\n shiftMultiplier,\n defaultValue,\n disabled,\n error,\n onFocus,\n onInputChange,\n onBlur,\n onChange,\n required,\n readOnly,\n value,\n inputId: id,\n componentName: 'NumberInput'\n });\n const ownerState = _extends({}, props, {\n disabled: disabledState,\n error: errorState,\n focused,\n readOnly,\n formControlContext,\n isIncrementDisabled,\n isDecrementDisabled\n });\n const classes = useUtilityClasses(ownerState);\n const propsForwardedToInputSlot = {\n placeholder\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: rest,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: [classes.root, className]\n });\n const Input = (_slots$input = slots.input) != null ? _slots$input : 'input';\n const inputProps = useSlotProps({\n elementType: Input,\n getSlotProps: otherHandlers => getInputProps(_extends({}, propsForwardedToInputSlot, otherHandlers)),\n externalSlotProps: slotProps.input,\n ownerState,\n className: classes.input\n });\n const IncrementButton = (_slots$incrementButto = slots.incrementButton) != null ? _slots$incrementButto : 'button';\n const incrementButtonProps = useSlotProps({\n elementType: IncrementButton,\n getSlotProps: getIncrementButtonProps,\n externalSlotProps: slotProps.incrementButton,\n ownerState,\n className: classes.incrementButton\n });\n const DecrementButton = (_slots$decrementButto = slots.decrementButton) != null ? _slots$decrementButto : 'button';\n const decrementButtonProps = useSlotProps({\n elementType: DecrementButton,\n getSlotProps: getDecrementButtonProps,\n externalSlotProps: slotProps.decrementButton,\n ownerState,\n className: classes.decrementButton\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(DecrementButton, _extends({}, decrementButtonProps)), /*#__PURE__*/_jsx(IncrementButton, _extends({}, incrementButtonProps)), startAdornment, /*#__PURE__*/_jsx(Input, _extends({}, inputProps)), endAdornment]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? NumberInput.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.number,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * Trailing adornment for this input.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error by setting the `aria-invalid` attribute on the input and the `baseui--error` class on the root element.\n */\n error: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The maximum value.\n */\n max: PropTypes.number,\n /**\n * The minimum value.\n */\n min: PropTypes.number,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired after the value is clamped and changes - when the `input` is blurred or when\n * the stepper buttons are triggered.\n * Called with `undefined` when the value is unset.\n *\n * @param {React.FocusEvent<HTMLInputElement>|React.PointerEvent|React.KeyboardEvent} event The event source of the callback\n * @param {number|undefined} value The new value of the component\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * Callback fired when the `input` value changes after each keypress, before clamping is applied.\n * Note that `event.target.value` may contain values that fall outside of `min` and `max` or\n * are otherwise \"invalid\".\n *\n * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.\n */\n onInputChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * If `true`, the `input` element becomes read-only. The stepper buttons remain active,\n * with the addition that they are now keyboard focusable.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Multiplier applied to `step` if the shift key is held while incrementing\n * or decrementing the value. Defaults to `10`.\n */\n shiftMultiplier: PropTypes.number,\n /**\n * The props used for each slot inside the NumberInput.\n * @default {}\n */\n slotProps: PropTypes.shape({\n decrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n incrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the InputBase.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n decrementButton: PropTypes.elementType,\n incrementButton: PropTypes.elementType,\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Leading adornment for this input.\n */\n startAdornment: PropTypes.node,\n /**\n * The amount that the value changes on each increment or decrement.\n */\n step: PropTypes.number,\n /**\n * The current value. Use when the component is controlled.\n * @default null\n */\n value: PropTypes.number\n} : void 0;\nexport { NumberInput };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'NumberInput';\nexport function getNumberInputUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const numberInputClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'formControl', 'focused', 'disabled', 'readOnly', 'error', 'input', 'incrementButton', 'decrementButton', 'adornedStart', 'adornedEnd']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useControllableReducer } from '../utils/useControllableReducer';\nimport { useFormControlContext } from '../FormControl';\nimport { NumberInputActionTypes } from './numberInputAction.types';\nimport { numberInputReducer } from './numberInputReducer';\nimport { isNumber } from './utils';\nconst STEP_KEYS = ['ArrowUp', 'ArrowDown', 'PageUp', 'PageDown'];\nconst SUPPORTED_KEYS = [...STEP_KEYS, 'Home', 'End'];\nexport function getInputValueAsString(v) {\n return v ? String(v.trim()) : String(v);\n}\n\n/**\n *\n * Demos:\n *\n * - [Number Input](https://mui.com/base-ui/react-number-input/#hook)\n *\n * API:\n *\n * - [useNumberInput API](https://mui.com/base-ui/react-number-input/hooks-api/#use-number-input)\n */\nexport function useNumberInput(parameters) {\n var _ref;\n const {\n min,\n max,\n step,\n shiftMultiplier = 10,\n defaultValue: defaultValueProp,\n disabled: disabledProp = false,\n error: errorProp = false,\n onBlur,\n onInputChange,\n onFocus,\n onChange,\n required: requiredProp = false,\n readOnly: readOnlyProp = false,\n value: valueProp,\n inputRef: inputRefProp,\n inputId: inputIdProp,\n componentName = 'useNumberInput'\n } = parameters;\n\n // TODO: make it work with FormControl\n const formControlContext = useFormControlContext();\n const {\n current: isControlled\n } = React.useRef(valueProp != null);\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `slots.input` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const inputRef = React.useRef(null);\n const handleInputRef = useForkRef(inputRef, inputRefProp, handleInputRefWarning);\n const inputId = useId(inputIdProp);\n const [focused, setFocused] = React.useState(false);\n const handleStateChange = React.useCallback((event, field, fieldValue, reason) => {\n if (field === 'value' && typeof fieldValue !== 'string') {\n switch (reason) {\n // only a blur event will dispatch `numberInput:clamp`\n case 'numberInput:clamp':\n onChange == null || onChange(event, fieldValue);\n break;\n case 'numberInput:increment':\n case 'numberInput:decrement':\n case 'numberInput:incrementToMax':\n case 'numberInput:decrementToMin':\n onChange == null || onChange(event, fieldValue);\n break;\n default:\n break;\n }\n }\n }, [onChange]);\n const numberInputActionContext = React.useMemo(() => {\n return {\n min,\n max,\n step,\n shiftMultiplier,\n getInputValueAsString\n };\n }, [min, max, step, shiftMultiplier]);\n const initialValue = (_ref = valueProp != null ? valueProp : defaultValueProp) != null ? _ref : null;\n const initialState = {\n value: initialValue,\n inputValue: initialValue ? String(initialValue) : ''\n };\n const controlledState = React.useMemo(() => ({\n value: valueProp\n }), [valueProp]);\n const [state, dispatch] = useControllableReducer({\n reducer: numberInputReducer,\n controlledProps: controlledState,\n initialState,\n onStateChange: handleStateChange,\n actionContext: React.useMemo(() => numberInputActionContext, [numberInputActionContext]),\n componentName\n });\n const {\n value,\n inputValue\n } = state;\n React.useEffect(() => {\n if (!formControlContext && disabledProp && focused) {\n setFocused(false);\n onBlur == null || onBlur();\n }\n }, [formControlContext, disabledProp, focused, onBlur]);\n React.useEffect(() => {\n if (isControlled && isNumber(value)) {\n dispatch({\n type: NumberInputActionTypes.resetInputValue\n });\n }\n }, [value, dispatch, isControlled]);\n const createHandleFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n if (formControlContext && formControlContext.onFocus) {\n var _formControlContext$o;\n formControlContext == null || (_formControlContext$o = formControlContext.onFocus) == null || _formControlContext$o.call(formControlContext);\n }\n setFocused(true);\n };\n const createHandleInputChange = otherHandlers => event => {\n var _formControlContext$o2, _otherHandlers$onInpu;\n if (!isControlled && event.target === null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`slots.input\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(17));\n }\n formControlContext == null || (_formControlContext$o2 = formControlContext.onChange) == null || _formControlContext$o2.call(formControlContext, event);\n (_otherHandlers$onInpu = otherHandlers.onInputChange) == null || _otherHandlers$onInpu.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n dispatch({\n type: NumberInputActionTypes.inputChange,\n event,\n inputValue: event.currentTarget.value\n });\n };\n const createHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n formControlContext == null || formControlContext.onBlur();\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n dispatch({\n type: NumberInputActionTypes.clamp,\n event,\n inputValue: event.currentTarget.value\n });\n setFocused(false);\n };\n const createHandleClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n };\n const handleStep = direction => event => {\n const applyMultiplier = Boolean(event.shiftKey);\n const actionType = {\n up: NumberInputActionTypes.increment,\n down: NumberInputActionTypes.decrement\n }[direction];\n dispatch({\n type: actionType,\n event,\n applyMultiplier\n });\n };\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented || event.defaultPrevented) {\n return;\n }\n\n // this prevents unintended page scrolling\n if (SUPPORTED_KEYS.includes(event.key)) {\n event.preventDefault();\n }\n switch (event.key) {\n case 'ArrowUp':\n dispatch({\n type: NumberInputActionTypes.increment,\n event,\n applyMultiplier: !!event.shiftKey\n });\n break;\n case 'ArrowDown':\n dispatch({\n type: NumberInputActionTypes.decrement,\n event,\n applyMultiplier: !!event.shiftKey\n });\n break;\n case 'PageUp':\n dispatch({\n type: NumberInputActionTypes.increment,\n event,\n applyMultiplier: true\n });\n break;\n case 'PageDown':\n dispatch({\n type: NumberInputActionTypes.decrement,\n event,\n applyMultiplier: true\n });\n break;\n case 'Home':\n dispatch({\n type: NumberInputActionTypes.incrementToMax,\n event\n });\n break;\n case 'End':\n dispatch({\n type: NumberInputActionTypes.decrementToMin,\n event\n });\n break;\n default:\n break;\n }\n };\n const getRootProps = (externalProps = {}) => {\n const propsEventHandlers = extractEventHandlers(parameters, [\n // these are handled by the input slot\n 'onBlur', 'onInputChange', 'onFocus', 'onChange']);\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps));\n return _extends({}, externalProps, externalEventHandlers, {\n onClick: createHandleClick(externalEventHandlers)\n });\n };\n const getInputProps = (externalProps = {}) => {\n var _ref2;\n const propsEventHandlers = {\n onBlur,\n onFocus,\n // onChange from normal props is the custom onChange so we ignore it here\n onChange: onInputChange\n };\n const externalEventHandlers = _extends({}, propsEventHandlers, extractEventHandlers(externalProps, [\n // onClick is handled by the root slot\n 'onClick'\n // do not ignore 'onInputChange', we want slotProps.input.onInputChange to enter the DOM and throw\n ]));\n const mergedEventHandlers = _extends({}, externalEventHandlers, {\n onFocus: createHandleFocus(externalEventHandlers),\n // slotProps.onChange is renamed to onInputChange and passed to createHandleInputChange\n onChange: createHandleInputChange(_extends({}, externalEventHandlers, {\n onInputChange: externalEventHandlers.onChange\n })),\n onBlur: createHandleBlur(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers)\n });\n const displayValue = (_ref2 = focused ? inputValue : value) != null ? _ref2 : '';\n\n // get rid of slotProps.input.onInputChange before returning to prevent it from entering the DOM\n // if it was passed, it will be in mergedEventHandlers and throw\n delete externalProps.onInputChange;\n return _extends({\n type: 'text',\n id: inputId,\n 'aria-invalid': errorProp || undefined,\n defaultValue: undefined,\n value: displayValue,\n 'aria-valuenow': displayValue,\n 'aria-valuetext': String(displayValue),\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n autoComplete: 'off',\n autoCorrect: 'off',\n spellCheck: 'false',\n required: requiredProp,\n readOnly: readOnlyProp,\n 'aria-disabled': disabledProp,\n disabled: disabledProp\n }, externalProps, {\n ref: handleInputRef\n }, mergedEventHandlers);\n };\n const handleStepperButtonMouseDown = event => {\n event.preventDefault();\n if (inputRef.current) {\n inputRef.current.focus();\n }\n };\n const stepperButtonCommonProps = {\n 'aria-controls': inputId,\n tabIndex: -1\n };\n const isIncrementDisabled = disabledProp || (isNumber(value) ? value >= (max != null ? max : Number.MAX_SAFE_INTEGER) : false);\n const getIncrementButtonProps = (externalProps = {}) => {\n return _extends({}, externalProps, stepperButtonCommonProps, {\n disabled: isIncrementDisabled,\n 'aria-disabled': isIncrementDisabled,\n onMouseDown: handleStepperButtonMouseDown,\n onClick: handleStep('up')\n });\n };\n const isDecrementDisabled = disabledProp || (isNumber(value) ? value <= (min != null ? min : Number.MIN_SAFE_INTEGER) : false);\n const getDecrementButtonProps = (externalProps = {}) => {\n return _extends({}, externalProps, stepperButtonCommonProps, {\n disabled: isDecrementDisabled,\n 'aria-disabled': isDecrementDisabled,\n onMouseDown: handleStepperButtonMouseDown,\n onClick: handleStep('down')\n });\n };\n return {\n disabled: disabledProp,\n error: errorProp,\n focused,\n formControlContext,\n getInputProps,\n getIncrementButtonProps,\n getDecrementButtonProps,\n getRootProps,\n required: requiredProp,\n value,\n inputValue,\n isIncrementDisabled,\n isDecrementDisabled\n };\n}", "export const NumberInputActionTypes = {\n clamp: 'numberInput:clamp',\n inputChange: 'numberInput:inputChange',\n increment: 'numberInput:increment',\n decrement: 'numberInput:decrement',\n decrementToMin: 'numberInput:decrementToMin',\n incrementToMax: 'numberInput:incrementToMax',\n resetInputValue: 'numberInput:resetInputValue'\n};", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { NumberInputActionTypes } from './numberInputAction.types';\nimport { clampStepwise, isNumber } from './utils';\nfunction getClampedValues(rawValue, context) {\n const {\n min,\n max,\n step\n } = context;\n const clampedValue = rawValue === null ? null : clampStepwise(rawValue, min, max, step);\n const newInputValue = clampedValue === null ? '' : String(clampedValue);\n return {\n value: clampedValue,\n inputValue: newInputValue\n };\n}\nfunction stepValue(state, context, direction, multiplier) {\n const {\n value\n } = state;\n const {\n step = 1,\n min,\n max\n } = context;\n if (isNumber(value)) {\n return {\n up: value + (step != null ? step : 1) * multiplier,\n down: value - (step != null ? step : 1) * multiplier\n }[direction];\n }\n return {\n up: min != null ? min : 1,\n down: max != null ? max : -1\n }[direction];\n}\nfunction handleClamp(state, context, inputValue) {\n const {\n getInputValueAsString\n } = context;\n const numberValueAsString = getInputValueAsString(inputValue);\n const intermediateValue = numberValueAsString === '' || numberValueAsString === '-' ? null : parseInt(numberValueAsString, 10);\n const clampedValues = getClampedValues(intermediateValue, context);\n return _extends({}, state, clampedValues);\n}\nfunction handleInputChange(state, context, inputValue) {\n const {\n getInputValueAsString\n } = context;\n const numberValueAsString = getInputValueAsString(inputValue);\n if (numberValueAsString.match(/^-?\\d+?$/) || numberValueAsString === '' || numberValueAsString === '-') {\n return _extends({}, state, {\n inputValue: numberValueAsString\n });\n }\n return state;\n}\n\n// use this for ArrowUp, ArrowDown, button clicks\n// use this with applyMultiplier: true for PageUp, PageDown, button shift-clicks\nfunction handleStep(state, context, applyMultiplier, direction) {\n const multiplier = applyMultiplier ? context.shiftMultiplier : 1;\n const newValue = stepValue(state, context, direction, multiplier);\n const clampedValues = getClampedValues(newValue, context);\n return _extends({}, state, clampedValues);\n}\nfunction handleToMinOrMax(state, context, to) {\n const newValue = context[to];\n if (!isNumber(newValue)) {\n return state;\n }\n return _extends({}, state, {\n value: newValue,\n inputValue: String(newValue)\n });\n}\nexport function numberInputReducer(state, action) {\n const {\n type,\n context\n } = action;\n switch (type) {\n case NumberInputActionTypes.clamp:\n return handleClamp(state, context, action.inputValue);\n case NumberInputActionTypes.inputChange:\n return handleInputChange(state, context, action.inputValue);\n case NumberInputActionTypes.increment:\n return handleStep(state, context, action.applyMultiplier, 'up');\n case NumberInputActionTypes.decrement:\n return handleStep(state, context, action.applyMultiplier, 'down');\n case NumberInputActionTypes.incrementToMax:\n return handleToMinOrMax(state, context, 'max');\n case NumberInputActionTypes.decrementToMin:\n return handleToMinOrMax(state, context, 'min');\n case NumberInputActionTypes.resetInputValue:\n return _extends({}, state, {\n inputValue: String(state.value)\n });\n default:\n return state;\n }\n}", "import { clamp } from '@mui/utils';\nexport function clampStepwise(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER, stepProp = NaN) {\n if (Number.isNaN(stepProp)) {\n return clamp(val, min, max);\n }\n const step = stepProp || 1;\n const remainder = val % step;\n const positivity = Math.sign(remainder);\n if (Math.abs(remainder) > step / 2) {\n return clamp(val + positivity * (step - Math.abs(remainder)), min, max);\n }\n return clamp(val - positivity * Math.abs(remainder), min, max);\n}\nexport function isNumber(val) {\n return typeof val === 'number' && !Number.isNaN(val) && Number.isFinite(val);\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"disabled\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getOptionGroupUtilityClass } from './optionGroupClasses';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction useUtilityClasses(disabled) {\n const slots = {\n root: ['root', disabled && 'disabled'],\n label: ['label'],\n list: ['list']\n };\n return composeClasses(slots, useClassNamesOverride(getOptionGroupUtilityClass));\n}\n\n/**\n * An unstyled option group to be used within a Select.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [OptionGroup API](https://mui.com/base-ui/react-select/components-api/#option-group)\n */\nconst OptionGroup = /*#__PURE__*/React.forwardRef(function OptionGroup(props, forwardedRef) {\n const {\n disabled = false,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const Root = (slots == null ? void 0 : slots.root) || 'li';\n const Label = (slots == null ? void 0 : slots.label) || 'span';\n const List = (slots == null ? void 0 : slots.list) || 'ul';\n const classes = useUtilityClasses(disabled);\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState: props,\n className: classes.root\n });\n const labelProps = useSlotProps({\n elementType: Label,\n externalSlotProps: slotProps.label,\n ownerState: props,\n className: classes.label\n });\n const listProps = useSlotProps({\n elementType: List,\n externalSlotProps: slotProps.list,\n ownerState: props,\n className: classes.list\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(Label, _extends({}, labelProps, {\n children: props.label\n })), /*#__PURE__*/_jsx(List, _extends({}, listProps, {\n children: props.children\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? OptionGroup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true` all the options in the group will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The human-readable description of the group.\n */\n label: PropTypes.node,\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n slotProps: PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n list: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the OptionGroup.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n label: PropTypes.elementType,\n list: PropTypes.elementType,\n root: PropTypes.elementType\n })\n} : void 0;\nexport { OptionGroup };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'OptionGroup';\nexport function getOptionGroupUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const optionGroupClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'label', 'list']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"disabled\", \"label\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getOptionUtilityClass } from './optionClasses';\nimport { useSlotProps } from '../utils';\nimport { useOption, useOptionContextStabilizer } from '../useOption';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { ListContext } from '../useList';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction useUtilityClasses(ownerState) {\n const {\n disabled,\n highlighted,\n selected\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', highlighted && 'highlighted', selected && 'selected']\n };\n return composeClasses(slots, useClassNamesOverride(getOptionUtilityClass));\n}\nconst InnerOption = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Option(props, forwardedRef) {\n var _slots$root, _optionRef$current;\n const {\n children,\n disabled = false,\n label,\n slotProps = {},\n slots = {},\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'li';\n const optionRef = React.useRef(null);\n const combinedRef = useForkRef(optionRef, forwardedRef);\n\n // If `label` is not explicitly provided, the `children` are used for convenience.\n // This is used to populate the select's trigger with the selected option's label.\n const computedLabel = label != null ? label : typeof children === 'string' ? children : (_optionRef$current = optionRef.current) == null || (_optionRef$current = _optionRef$current.textContent) == null ? void 0 : _optionRef$current.trim();\n const {\n getRootProps,\n selected,\n highlighted,\n index\n } = useOption({\n disabled,\n label: computedLabel,\n rootRef: combinedRef,\n value\n });\n const ownerState = _extends({}, props, {\n disabled,\n highlighted,\n index,\n selected\n });\n const classes = useUtilityClasses(ownerState);\n const rootProps = useSlotProps({\n getSlotProps: getRootProps,\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n className: classes.root,\n ownerState\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }));\n}));\n\n/**\n * An unstyled option to be used within a Select.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [Option API](https://mui.com/base-ui/react-select/components-api/#option)\n */\nconst Option = /*#__PURE__*/React.forwardRef(function Option(props, ref) {\n const {\n value\n } = props;\n\n // This wrapper component is used as a performance optimization.\n // `useOptionContextStabilizer` ensures that the context value\n // is stable across renders, so that the actual Option re-renders\n // only when it needs to.\n const {\n contextValue\n } = useOptionContextStabilizer(value);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(InnerOption, _extends({}, props, {\n ref: ref\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Option.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the option will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * A text representation of the option's content.\n * Used for keyboard text navigation matching.\n */\n label: PropTypes.string,\n /**\n * The props used for each slot inside the Option.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Option.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the option.\n */\n value: PropTypes.any.isRequired\n} : void 0;\nexport { Option };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Option';\nexport function getOptionUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const optionClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'disabled', 'selected', 'highlighted']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useListItem } from '../useList';\nimport { useCompoundItem } from '../useCompound';\nimport { useButton } from '../useButton';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\n/**\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useOption API](https://mui.com/base-ui/react-select/hooks-api/#use-option)\n */\nexport function useOption(params) {\n const {\n value,\n label,\n disabled,\n rootRef: optionRefParam,\n id: idParam\n } = params;\n const {\n getRootProps: getListItemProps,\n highlighted,\n selected\n } = useListItem({\n item: value\n });\n const {\n getRootProps: getButtonProps,\n rootRef: buttonRefHandler\n } = useButton({\n disabled,\n focusableWhenDisabled: true\n });\n const id = useId(idParam);\n const optionRef = React.useRef(null);\n const selectOption = React.useMemo(() => ({\n disabled,\n label,\n value,\n ref: optionRef,\n id\n }), [disabled, label, value, id]);\n const {\n index\n } = useCompoundItem(value, selectOption);\n const handleRef = useForkRef(optionRefParam, optionRef, buttonRefHandler);\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ([' ', 'Enter'].includes(event.key)) {\n event.defaultMuiPrevented = true; // prevent listbox onKeyDown\n }\n };\n const getOwnHandlers = (otherHandlers = {}) => ({\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n return {\n getRootProps: (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getListItemProps, combineHooksSlotProps(getButtonProps, getOwnHandlers));\n return _extends({}, externalProps, externalEventHandlers, getCombinedRootProps(externalEventHandlers), {\n id,\n ref: handleRef,\n role: 'option',\n 'aria-selected': selected\n });\n },\n highlighted,\n index,\n selected,\n rootRef: handleRef\n };\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList';\n\n/**\n * Stabilizes the ListContext value for the Option component, so it doesn't change when sibling Options update.\n *\n * @param value The value of the Option.\n * @returns The stable ListContext value.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useOptionContextStabilizer API](https://mui.com/base-ui/react-select/hooks-api/#use-option-context-stabilizer)\n */\nexport function useOptionContextStabilizer(value) {\n const listContext = React.useContext(ListContext);\n if (!listContext) {\n throw new Error('Option: ListContext was not found.');\n }\n const {\n getItemState,\n dispatch\n } = listContext;\n const {\n highlighted,\n selected,\n focusable\n } = getItemState(value);\n\n // The local version of getItemState can be only called with the current Option's value.\n // It doesn't make much sense to render an Option depending on other Options' state anyway.\n const localGetItemState = React.useCallback(itemValue => {\n if (itemValue !== value) {\n throw new Error(['Base UI Option: Tried to access the state of another Option.', 'This is unsupported when the Option uses the OptionContextStabilizer as a performance optimization.'].join('/n'));\n }\n return {\n highlighted,\n selected,\n focusable\n };\n }, [highlighted, selected, focusable, value]);\n\n // Create a local (per Option) instance of the ListContext that changes only when\n // the getItemState's return value changes.\n // This makes Options re-render only when their state actually change, not when any Option's state changes.\n const localContextValue = React.useMemo(() => ({\n dispatch,\n getItemState: localGetItemState\n }), [dispatch, localGetItemState]);\n return {\n contextValue: localContextValue\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _span;\nconst _excluded = [\"areOptionsEqual\", \"autoComplete\", \"autoFocus\", \"children\", \"defaultValue\", \"defaultListboxOpen\", \"disabled\", \"getSerializedValue\", \"listboxId\", \"listboxOpen\", \"multiple\", \"name\", \"required\", \"onChange\", \"onListboxOpenChange\", \"getOptionAsString\", \"renderValue\", \"placeholder\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useSelect } from '../useSelect';\nimport { useSlotProps } from '../utils';\nimport { Popup } from '../Unstable_Popup/Popup';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSelectUtilityClass } from './selectClasses';\nimport { defaultOptionStringifier } from '../useSelect/defaultOptionStringifier';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { SelectProvider } from '../useSelect/SelectProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction defaultRenderValue(selectedOptions) {\n var _selectedOptions$labe;\n if (Array.isArray(selectedOptions)) {\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: selectedOptions.map(o => o.label).join(', ')\n });\n }\n return (_selectedOptions$labe = selectedOptions == null ? void 0 : selectedOptions.label) != null ? _selectedOptions$labe : null;\n}\nfunction useUtilityClasses(ownerState) {\n const {\n active,\n disabled,\n open,\n focusVisible\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible', active && 'active', open && 'expanded'],\n listbox: ['listbox', disabled && 'disabled'],\n popup: ['popup']\n };\n return composeClasses(slots, useClassNamesOverride(getSelectUtilityClass));\n}\n\n/**\n * The foundation for building custom-styled select components.\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/)\n *\n * API:\n *\n * - [Select API](https://mui.com/base-ui/react-select/components-api/#select)\n */\nconst Select = /*#__PURE__*/React.forwardRef(function Select(props, forwardedRef) {\n var _slots$root, _slots$listbox, _slots$popup, _ref, _renderValue;\n const {\n areOptionsEqual,\n autoComplete,\n autoFocus,\n children,\n defaultValue,\n defaultListboxOpen = false,\n disabled: disabledProp,\n getSerializedValue,\n listboxId,\n listboxOpen: listboxOpenProp,\n multiple = false,\n name,\n required = false,\n onChange,\n onListboxOpenChange,\n getOptionAsString = defaultOptionStringifier,\n renderValue: renderValueProp,\n placeholder,\n slotProps = {},\n slots = {},\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const renderValue = renderValueProp != null ? renderValueProp : defaultRenderValue;\n const [buttonDefined, setButtonDefined] = React.useState(false);\n const buttonRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const Button = (_slots$root = slots.root) != null ? _slots$root : 'button';\n const ListboxRoot = (_slots$listbox = slots.listbox) != null ? _slots$listbox : 'ul';\n const PopupComponent = (_slots$popup = slots.popup) != null ? _slots$popup : 'div';\n const handleButtonRefChange = React.useCallback(element => {\n setButtonDefined(element != null);\n }, []);\n const handleButtonRef = useForkRef(forwardedRef, buttonRef, handleButtonRefChange);\n React.useEffect(() => {\n if (autoFocus) {\n buttonRef.current.focus();\n }\n }, [autoFocus]);\n const {\n buttonActive,\n buttonFocusVisible,\n contextValue,\n disabled,\n getButtonProps,\n getListboxProps,\n getHiddenInputProps,\n getOptionMetadata,\n value,\n open\n } = useSelect({\n name,\n required,\n getSerializedValue,\n areOptionsEqual,\n buttonRef: handleButtonRef,\n defaultOpen: defaultListboxOpen,\n defaultValue,\n disabled: disabledProp,\n listboxId,\n multiple,\n open: listboxOpenProp,\n onChange,\n onOpenChange: onListboxOpenChange,\n getOptionAsString,\n value: valueProp,\n componentName: 'Select'\n });\n const ownerState = _extends({}, props, {\n active: buttonActive,\n defaultListboxOpen,\n disabled,\n focusVisible: buttonFocusVisible,\n open,\n multiple,\n renderValue,\n value\n });\n const classes = useUtilityClasses(ownerState);\n const buttonProps = useSlotProps({\n elementType: Button,\n getSlotProps: getButtonProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root\n });\n const listboxProps = useSlotProps({\n elementType: ListboxRoot,\n getSlotProps: getListboxProps,\n externalSlotProps: slotProps.listbox,\n additionalProps: {\n ref: listboxRef\n },\n ownerState,\n className: classes.listbox\n });\n const popupProps = useSlotProps({\n elementType: PopupComponent,\n externalSlotProps: slotProps.popup,\n additionalProps: {\n anchor: buttonRef.current,\n keepMounted: true,\n open,\n placement: 'bottom-start',\n role: undefined\n },\n ownerState,\n className: classes.popup\n });\n let selectedOptionsMetadata;\n if (multiple) {\n selectedOptionsMetadata = value.map(v => getOptionMetadata(v)).filter(o => o !== undefined);\n } else {\n var _getOptionMetadata;\n selectedOptionsMetadata = (_getOptionMetadata = getOptionMetadata(value)) != null ? _getOptionMetadata : null;\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Button, _extends({}, buttonProps, {\n children: (_ref = (_renderValue = renderValue(selectedOptionsMetadata)) != null ? _renderValue : placeholder) != null ? _ref : // fall back to a zero-width space to prevent layout shift\n // from https://github.com/mui/material-ui/pull/24563\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n }))\n })), buttonDefined && /*#__PURE__*/_jsx(Popup, _extends({\n slots: {\n root: PopupComponent\n }\n }, popupProps, {\n children: /*#__PURE__*/_jsx(ListboxRoot, _extends({}, listboxProps, {\n children: /*#__PURE__*/_jsx(SelectProvider, {\n value: contextValue,\n children: children\n })\n }))\n })), /*#__PURE__*/_jsx(\"input\", _extends({}, getHiddenInputProps(), {\n autoComplete: autoComplete\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Select.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A function used to determine if two options' values are equal.\n * By default, reference equality is used.\n *\n * There is a performance impact when using the `areOptionsEqual` prop (proportional to the number of options).\n * Therefore, it's recommented to use the default reference equality comparison whenever possible.\n */\n areOptionsEqual: PropTypes.func,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the select element is focused during the first mount\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the select will be initially open.\n * @default false\n */\n defaultListboxOpen: PropTypes.bool,\n /**\n * The default selected value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the select is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * A function used to convert the option label to a string.\n * It's useful when labels are elements and need to be converted to plain text\n * to enable navigation using character keys on a keyboard.\n *\n * @default defaultOptionStringifier\n */\n getOptionAsString: PropTypes.func,\n /**\n * A function to convert the currently selected value to a string.\n * Used to set a value of a hidden input associated with the select,\n * so that the selected value can be posted with a form.\n */\n getSerializedValue: PropTypes.func,\n /**\n * `id` attribute of the listbox element.\n */\n listboxId: PropTypes.string,\n /**\n * Controls the open state of the select's listbox.\n * @default undefined\n */\n listboxOpen: PropTypes.bool,\n /**\n * If `true`, selecting multiple values is allowed.\n * This affects the type of the `value`, `defaultValue`, and `onChange` props.\n *\n * @default false\n */\n multiple: PropTypes.bool,\n /**\n * Name of the element. For example used by the server to identify the fields in form submits.\n */\n name: PropTypes.string,\n /**\n * Callback fired when an option is selected.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the component requests to be opened.\n * Use in controlled mode (see listboxOpen).\n */\n onListboxOpenChange: PropTypes.func,\n /**\n * Text to show when there is no selected value.\n */\n placeholder: PropTypes.node,\n /**\n * Function that customizes the rendering of the selected value.\n */\n renderValue: PropTypes.func,\n /**\n * If `true`, the Select cannot be empty when submitting form.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside the Input.\n * @default {}\n */\n slotProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n popup: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Select.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n listbox: PropTypes.elementType,\n popup: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The selected value.\n * Set to `null` to deselect all options.\n */\n value: PropTypes.any\n} : void 0;\nexport { Select };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect, visuallyHidden as visuallyHiddenStyle } from '@mui/utils';\nimport { useButton } from '../useButton';\nimport { SelectActionTypes } from './useSelect.types';\nimport { ListActionTypes, useList } from '../useList';\nimport { defaultOptionStringifier } from './defaultOptionStringifier';\nimport { useCompoundParent } from '../useCompound';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { selectReducer } from './selectReducer';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nfunction defaultFormValueProvider(selectedOption) {\n if (Array.isArray(selectedOption)) {\n if (selectedOption.length === 0) {\n return '';\n }\n return JSON.stringify(selectedOption.map(o => o.value));\n }\n if ((selectedOption == null ? void 0 : selectedOption.value) == null) {\n return '';\n }\n if (typeof selectedOption.value === 'string' || typeof selectedOption.value === 'number') {\n return selectedOption.value;\n }\n return JSON.stringify(selectedOption.value);\n}\n\n/**\n *\n * Demos:\n *\n * - [Select](https://mui.com/base-ui/react-select/#hooks)\n *\n * API:\n *\n * - [useSelect API](https://mui.com/base-ui/react-select/hooks-api/#use-select)\n */\nfunction useSelect(props) {\n const {\n areOptionsEqual,\n buttonRef: buttonRefProp,\n defaultOpen = false,\n defaultValue: defaultValueProp,\n disabled = false,\n listboxId: listboxIdProp,\n listboxRef: listboxRefProp,\n multiple = false,\n name,\n required,\n onChange,\n onHighlightChange,\n onOpenChange,\n open: openProp,\n options: optionsParam,\n getOptionAsString = defaultOptionStringifier,\n getSerializedValue = defaultFormValueProvider,\n value: valueProp,\n componentName = 'useSelect'\n } = props;\n const buttonRef = React.useRef(null);\n const handleButtonRef = useForkRef(buttonRefProp, buttonRef);\n const listboxRef = React.useRef(null);\n const listboxId = useId(listboxIdProp);\n let defaultValue;\n if (valueProp === undefined && defaultValueProp === undefined) {\n defaultValue = [];\n } else if (defaultValueProp !== undefined) {\n if (multiple) {\n defaultValue = defaultValueProp;\n } else {\n defaultValue = defaultValueProp == null ? [] : [defaultValueProp];\n }\n }\n const value = React.useMemo(() => {\n if (valueProp !== undefined) {\n if (multiple) {\n return valueProp;\n }\n return valueProp == null ? [] : [valueProp];\n }\n return undefined;\n }, [valueProp, multiple]);\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const options = React.useMemo(() => {\n if (optionsParam != null) {\n return new Map(optionsParam.map((option, index) => [option.value, {\n value: option.value,\n label: option.label,\n disabled: option.disabled,\n ref: /*#__PURE__*/React.createRef(),\n id: `${listboxId}_${index}`\n }]));\n }\n return subitems;\n }, [optionsParam, subitems, listboxId]);\n const handleListboxRef = useForkRef(listboxRefProp, listboxRef);\n const {\n getRootProps: getButtonRootProps,\n active: buttonActive,\n focusVisible: buttonFocusVisible,\n rootRef: mergedButtonRef\n } = useButton({\n disabled,\n rootRef: handleButtonRef\n });\n const optionValues = React.useMemo(() => Array.from(options.keys()), [options]);\n const getOptionByValue = React.useCallback(valueToGet => {\n // This can't be simply `options.get(valueToGet)` because of the `areOptionsEqual` prop.\n // If it's provided, we assume that the user wants to compare the options by value.\n if (areOptionsEqual !== undefined) {\n const similarValue = optionValues.find(optionValue => areOptionsEqual(optionValue, valueToGet));\n return options.get(similarValue);\n }\n return options.get(valueToGet);\n }, [options, areOptionsEqual, optionValues]);\n const isItemDisabled = React.useCallback(valueToCheck => {\n var _option$disabled;\n const option = getOptionByValue(valueToCheck);\n return (_option$disabled = option == null ? void 0 : option.disabled) != null ? _option$disabled : false;\n }, [getOptionByValue]);\n const stringifyOption = React.useCallback(valueToCheck => {\n const option = getOptionByValue(valueToCheck);\n if (!option) {\n return '';\n }\n return getOptionAsString(option);\n }, [getOptionByValue, getOptionAsString]);\n const controlledState = React.useMemo(() => ({\n selectedValues: value,\n open: openProp\n }), [value, openProp]);\n const getItemId = React.useCallback(itemValue => {\n var _options$get;\n return (_options$get = options.get(itemValue)) == null ? void 0 : _options$get.id;\n }, [options]);\n const handleSelectionChange = React.useCallback((event, newValues) => {\n if (multiple) {\n onChange == null || onChange(event, newValues);\n } else {\n var _newValues$;\n onChange == null || onChange(event, (_newValues$ = newValues[0]) != null ? _newValues$ : null);\n }\n }, [multiple, onChange]);\n const handleHighlightChange = React.useCallback((event, newValue) => {\n onHighlightChange == null || onHighlightChange(event, newValue != null ? newValue : null);\n }, [onHighlightChange]);\n const handleStateChange = React.useCallback((event, field, fieldValue) => {\n if (field === 'open') {\n onOpenChange == null || onOpenChange(fieldValue);\n if (fieldValue === false && (event == null ? void 0 : event.type) !== 'blur') {\n var _buttonRef$current;\n (_buttonRef$current = buttonRef.current) == null || _buttonRef$current.focus();\n }\n }\n }, [onOpenChange]);\n const getItemDomElement = React.useCallback(itemId => {\n var _subitems$get$ref$cur, _subitems$get;\n if (itemId == null) {\n return null;\n }\n return (_subitems$get$ref$cur = (_subitems$get = subitems.get(itemId)) == null ? void 0 : _subitems$get.ref.current) != null ? _subitems$get$ref$cur : null;\n }, [subitems]);\n const useListParameters = {\n getInitialState: () => {\n var _defaultValue;\n return {\n highlightedValue: null,\n selectedValues: (_defaultValue = defaultValue) != null ? _defaultValue : [],\n open: defaultOpen\n };\n },\n getItemId,\n controlledProps: controlledState,\n focusManagement: 'DOM',\n getItemDomElement,\n itemComparer: areOptionsEqual,\n isItemDisabled,\n rootRef: handleListboxRef,\n onChange: handleSelectionChange,\n onHighlightChange: handleHighlightChange,\n onStateChange: handleStateChange,\n reducerActionContext: React.useMemo(() => ({\n multiple\n }), [multiple]),\n items: optionValues,\n getItemAsString: stringifyOption,\n selectionMode: multiple ? 'multiple' : 'single',\n stateReducer: selectReducer,\n componentName\n };\n const {\n dispatch,\n getRootProps: getListboxRootProps,\n contextValue: listContextValue,\n state: {\n open,\n highlightedValue: highlightedOption,\n selectedValues: selectedOptions\n },\n rootRef: mergedListRootRef\n } = useList(useListParameters);\n\n // store the initial open state to prevent focus stealing\n // (the first option gets focused only when the select is opened by the user)\n const isInitiallyOpen = React.useRef(open);\n useEnhancedEffect(() => {\n if (open && highlightedOption !== null) {\n var _getOptionByValue;\n const optionRef = (_getOptionByValue = getOptionByValue(highlightedOption)) == null ? void 0 : _getOptionByValue.ref;\n if (!listboxRef.current || !(optionRef != null && optionRef.current)) {\n return;\n }\n if (!isInitiallyOpen.current) {\n optionRef.current.focus({\n preventScroll: true\n });\n }\n const listboxClientRect = listboxRef.current.getBoundingClientRect();\n const optionClientRect = optionRef.current.getBoundingClientRect();\n if (optionClientRect.top < listboxClientRect.top) {\n listboxRef.current.scrollTop -= listboxClientRect.top - optionClientRect.top;\n } else if (optionClientRect.bottom > listboxClientRect.bottom) {\n listboxRef.current.scrollTop += optionClientRect.bottom - listboxClientRect.bottom;\n }\n }\n }, [open, highlightedOption, getOptionByValue]);\n const getOptionMetadata = React.useCallback(optionValue => getOptionByValue(optionValue), [getOptionByValue]);\n const createHandleButtonClick = externalEventHandlers => event => {\n var _externalEventHandler;\n externalEventHandlers == null || (_externalEventHandler = externalEventHandlers.onClick) == null || _externalEventHandler.call(externalEventHandlers, event);\n if (!event.defaultMuiPrevented) {\n const action = {\n type: SelectActionTypes.buttonClick,\n event\n };\n dispatch(action);\n }\n };\n const createHandleButtonKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n dispatch({\n type: ListActionTypes.keyDown,\n key: event.key,\n event\n });\n }\n };\n const getButtonOwnRootProps = (otherHandlers = {}) => ({\n onClick: createHandleButtonClick(otherHandlers),\n onKeyDown: createHandleButtonKeyDown(otherHandlers)\n });\n const getSelectTriggerProps = (otherHandlers = {}) => {\n return _extends({}, otherHandlers, getButtonOwnRootProps(otherHandlers), {\n role: 'combobox',\n 'aria-expanded': open,\n 'aria-controls': listboxId\n });\n };\n const getButtonProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const combinedProps = combineHooksSlotProps(getSelectTriggerProps, getButtonRootProps);\n return _extends({}, externalProps, combinedProps(externalEventHandlers));\n };\n const createListboxHandleBlur = otherHandlers => event => {\n var _otherHandlers$onBlur, _listboxRef$current;\n (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if ((_listboxRef$current = listboxRef.current) != null && _listboxRef$current.contains(event.relatedTarget) || event.relatedTarget === buttonRef.current) {\n event.defaultMuiPrevented = true;\n }\n };\n const getOwnListboxHandlers = (otherHandlers = {}) => ({\n onBlur: createListboxHandleBlur(otherHandlers)\n });\n const getListboxProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getOwnListboxHandlers, getListboxRootProps);\n return _extends({\n id: listboxId,\n role: 'listbox',\n 'aria-multiselectable': multiple ? 'true' : undefined\n }, externalProps, getCombinedRootProps(externalEventHandlers));\n };\n React.useDebugValue({\n selectedOptions,\n highlightedOption,\n open\n });\n const contextValue = React.useMemo(() => _extends({}, listContextValue, compoundComponentContextValue), [listContextValue, compoundComponentContextValue]);\n let selectValue;\n if (props.multiple) {\n selectValue = selectedOptions;\n } else {\n selectValue = selectedOptions.length > 0 ? selectedOptions[0] : null;\n }\n let selectedOptionsMetadata;\n if (multiple) {\n selectedOptionsMetadata = selectValue.map(v => getOptionMetadata(v)).filter(o => o !== undefined);\n } else {\n var _getOptionMetadata;\n selectedOptionsMetadata = (_getOptionMetadata = getOptionMetadata(selectValue)) != null ? _getOptionMetadata : null;\n }\n const createHandleHiddenInputChange = externalEventHandlers => event => {\n var _externalEventHandler2;\n externalEventHandlers == null || (_externalEventHandler2 = externalEventHandlers.onChange) == null || _externalEventHandler2.call(externalEventHandlers, event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const option = options.get(event.target.value);\n\n // support autofill\n if (event.target.value === '') {\n dispatch({\n type: ListActionTypes.clearSelection\n });\n } else if (option !== undefined) {\n dispatch({\n type: SelectActionTypes.browserAutoFill,\n item: option.value,\n event\n });\n }\n };\n const getHiddenInputProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return _extends({\n name,\n tabIndex: -1,\n 'aria-hidden': true,\n required: required ? true : undefined,\n value: getSerializedValue(selectedOptionsMetadata),\n style: visuallyHiddenStyle\n }, externalProps, {\n onChange: createHandleHiddenInputChange(externalEventHandlers)\n });\n };\n return {\n buttonActive,\n buttonFocusVisible,\n buttonRef: mergedButtonRef,\n contextValue,\n disabled,\n dispatch,\n getButtonProps,\n getHiddenInputProps,\n getListboxProps,\n getOptionMetadata,\n listboxRef: mergedListRootRef,\n open,\n options: optionValues,\n value: selectValue,\n highlightedOption\n };\n}\nexport { useSelect };", "export const SelectActionTypes = {\n buttonClick: 'buttonClick',\n browserAutoFill: 'browserAutoFill'\n};", "const defaultOptionStringifier = option => {\n const {\n label,\n value\n } = option;\n if (typeof label === 'string') {\n return label;\n }\n if (typeof value === 'string') {\n return value;\n }\n\n // Fallback string representation\n return String(option);\n};\nexport { defaultOptionStringifier };", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { moveHighlight, listReducer, ListActionTypes, handleItemSelection } from '../useList';\nimport { SelectActionTypes } from './useSelect.types';\nexport function selectReducer(state, action) {\n const {\n open\n } = state;\n const {\n context: {\n selectionMode\n }\n } = action;\n if (action.type === SelectActionTypes.buttonClick) {\n var _state$selectedValues;\n const itemToHighlight = (_state$selectedValues = state.selectedValues[0]) != null ? _state$selectedValues : moveHighlight(null, 'start', action.context);\n return _extends({}, state, {\n open: !open,\n highlightedValue: !open ? itemToHighlight : null\n });\n }\n if (action.type === SelectActionTypes.browserAutoFill) {\n return handleItemSelection(action.item, state, action.context);\n }\n const newState = listReducer(state, action);\n switch (action.type) {\n case ListActionTypes.keyDown:\n if (state.open) {\n if (action.event.key === 'Escape') {\n return _extends({}, newState, {\n open: false\n });\n }\n } else {\n if (action.event.key === 'ArrowDown') {\n var _state$selectedValues2;\n return _extends({}, state, {\n open: true,\n highlightedValue: (_state$selectedValues2 = state.selectedValues[0]) != null ? _state$selectedValues2 : moveHighlight(null, 'start', action.context)\n });\n }\n if (action.event.key === 'ArrowUp') {\n var _state$selectedValues3;\n return _extends({}, state, {\n open: true,\n highlightedValue: (_state$selectedValues3 = state.selectedValues[0]) != null ? _state$selectedValues3 : moveHighlight(null, 'end', action.context)\n });\n }\n }\n break;\n case ListActionTypes.itemClick:\n if (selectionMode === 'single') {\n return _extends({}, newState, {\n open: false\n });\n }\n break;\n case ListActionTypes.blur:\n return _extends({}, newState, {\n open: false\n });\n default:\n return newState;\n }\n return newState;\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList/ListContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying Option components.\n *\n * @ignore - do not document.\n */\nexport function SelectProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Select';\nexport function getSelectUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const selectClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'button', 'listbox', 'popup', 'active', 'expanded', 'disabled', 'focusVisible']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"aria-label\", \"aria-valuetext\", \"aria-labelledby\", \"className\", \"disableSwap\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"orientation\", \"shiftStep\", \"scale\", \"step\", \"tabIndex\", \"track\", \"value\", \"valueLabelFormat\", \"isRtl\", \"defaultValue\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { isHostComponent } from '../utils/isHostComponent';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSliderUtilityClass } from './sliderClasses';\nimport { useSlider, valueToPercent } from '../useSlider';\nimport { useSlotProps } from '../utils/useSlotProps';\nimport { resolveComponentProps } from '../utils/resolveComponentProps';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\n\n// @ts-ignore\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction Identity(x) {\n return x;\n}\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n dragging,\n marked,\n orientation,\n track\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', dragging && 'dragging', marked && 'marked', orientation === 'vertical' && 'vertical', track === 'inverted' && 'trackInverted', track === false && 'trackFalse'],\n rail: ['rail'],\n track: ['track'],\n mark: ['mark'],\n markActive: ['markActive'],\n markLabel: ['markLabel'],\n markLabelActive: ['markLabelActive'],\n valueLabel: ['valueLabel'],\n thumb: ['thumb', disabled && 'disabled'],\n active: ['active'],\n disabled: ['disabled'],\n focusVisible: ['focusVisible']\n };\n return composeClasses(slots, useClassNamesOverride(getSliderUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/)\n *\n * API:\n *\n * - [Slider API](https://mui.com/base-ui/react-slider/components-api/#slider)\n */\nconst Slider = /*#__PURE__*/React.forwardRef(function Slider(props, forwardedRef) {\n var _slots$root, _slots$rail, _slots$track, _slots$thumb, _slots$mark, _slots$markLabel;\n const {\n 'aria-label': ariaLabel,\n 'aria-valuetext': ariaValuetext,\n 'aria-labelledby': ariaLabelledby,\n className,\n disableSwap = false,\n disabled = false,\n getAriaLabel,\n getAriaValueText,\n marks: marksProp = false,\n max = 100,\n min = 0,\n orientation = 'horizontal',\n shiftStep = 10,\n scale = Identity,\n step = 1,\n track = 'normal',\n valueLabelFormat = Identity,\n isRtl = false,\n defaultValue,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n // all props with defaults\n // consider extracting to hook an reusing the lint rule for the variants\n const partialOwnerState = _extends({}, props, {\n marks: marksProp,\n disabled,\n disableSwap,\n isRtl,\n defaultValue,\n max,\n min,\n orientation,\n scale,\n step,\n shiftStep,\n track,\n valueLabelFormat\n });\n const {\n axisProps,\n getRootProps,\n getHiddenInputProps,\n getThumbProps,\n active,\n axis,\n range,\n focusedThumbIndex,\n dragging,\n marks,\n values,\n trackOffset,\n trackLeap,\n getThumbStyle\n } = useSlider(_extends({}, partialOwnerState, {\n rootRef: forwardedRef\n }));\n const ownerState = _extends({}, partialOwnerState, {\n marked: marks.length > 0 && marks.some(mark => mark.label),\n dragging,\n focusedThumbIndex,\n activeThumbIndex: active\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'span';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: [classes.root, className]\n });\n const Rail = (_slots$rail = slots.rail) != null ? _slots$rail : 'span';\n const railProps = useSlotProps({\n elementType: Rail,\n externalSlotProps: slotProps.rail,\n ownerState,\n className: classes.rail\n });\n const Track = (_slots$track = slots.track) != null ? _slots$track : 'span';\n const trackProps = useSlotProps({\n elementType: Track,\n externalSlotProps: slotProps.track,\n additionalProps: {\n style: _extends({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap))\n },\n ownerState,\n className: classes.track\n });\n const Thumb = (_slots$thumb = slots.thumb) != null ? _slots$thumb : 'span';\n const thumbProps = useSlotProps({\n elementType: Thumb,\n getSlotProps: getThumbProps,\n externalSlotProps: slotProps.thumb,\n ownerState,\n skipResolvingSlotProps: true\n });\n const ValueLabel = slots.valueLabel;\n const valueLabelProps = useSlotProps({\n elementType: ValueLabel,\n externalSlotProps: slotProps.valueLabel,\n ownerState\n });\n const Mark = (_slots$mark = slots.mark) != null ? _slots$mark : 'span';\n const markProps = useSlotProps({\n elementType: Mark,\n externalSlotProps: slotProps.mark,\n ownerState,\n className: classes.mark\n });\n const MarkLabel = (_slots$markLabel = slots.markLabel) != null ? _slots$markLabel : 'span';\n const markLabelProps = useSlotProps({\n elementType: MarkLabel,\n externalSlotProps: slotProps.markLabel,\n ownerState\n });\n const Input = slots.input || 'input';\n const inputProps = useSlotProps({\n elementType: Input,\n getSlotProps: getHiddenInputProps,\n externalSlotProps: slotProps.input,\n ownerState\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(Rail, _extends({}, railProps)), /*#__PURE__*/_jsx(Track, _extends({}, trackProps)), marks.filter(mark => mark.value >= min && mark.value <= max).map((mark, index) => {\n const percent = valueToPercent(mark.value, min, max);\n const style = axisProps[axis].offset(percent);\n let markActive;\n if (track === false) {\n markActive = values.indexOf(mark.value) !== -1;\n } else {\n markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(Mark, _extends({\n \"data-index\": index\n }, markProps, !isHostComponent(Mark) && {\n markActive\n }, {\n style: _extends({}, style, markProps.style),\n className: clsx(markProps.className, markActive && classes.markActive)\n })), mark.label != null ? /*#__PURE__*/_jsx(MarkLabel, _extends({\n \"aria-hidden\": true,\n \"data-index\": index\n }, markLabelProps, !isHostComponent(MarkLabel) && {\n markLabelActive: markActive\n }, {\n style: _extends({}, style, markLabelProps.style),\n className: clsx(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),\n children: mark.label\n })) : null]\n }, index);\n }), values.map((value, index) => {\n const percent = valueToPercent(value, min, max);\n const style = axisProps[axis].offset(percent);\n const resolvedSlotProps = resolveComponentProps(slotProps.thumb, ownerState, {\n index,\n focused: focusedThumbIndex === index,\n active: active === index\n });\n return /*#__PURE__*/_jsxs(Thumb, _extends({\n \"data-index\": index\n }, thumbProps, resolvedSlotProps, {\n className: clsx(classes.thumb, thumbProps.className, resolvedSlotProps == null ? void 0 : resolvedSlotProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),\n style: _extends({}, style, getThumbStyle(index), thumbProps.style, resolvedSlotProps == null ? void 0 : resolvedSlotProps.style),\n children: [/*#__PURE__*/_jsx(Input, _extends({\n \"data-index\": index,\n \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n \"aria-valuenow\": scale(value),\n \"aria-labelledby\": ariaLabelledby,\n \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n value: values[index]\n }, inputProps)), ValueLabel ? /*#__PURE__*/_jsx(ValueLabel, _extends({}, !isHostComponent(ValueLabel) && {\n valueLabelFormat,\n index,\n disabled\n }, valueLabelProps, {\n children: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat\n })) : null]\n }), index);\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The label of the slider.\n */\n 'aria-label': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n if (range && props['aria-label'] != null) {\n return new Error('MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n }\n return null;\n }),\n /**\n * The id of the element containing a label for the slider.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A string value that provides a user-friendly name for the current value of the slider.\n */\n 'aria-valuetext': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n if (range && props['aria-valuetext'] != null) {\n return new Error('MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n }\n return null;\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.\n * @default false\n */\n disableSwap: PropTypes.bool,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n * This is important for screen reader users.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaLabel: PropTypes.func,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n * This is important for screen reader users.\n * @param {number} value The thumb label's value to format.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaValueText: PropTypes.func,\n /**\n * If `true` the Slider will be rendered right-to-left (with the lowest value on the right-hand side).\n * @default false\n */\n isRtl: PropTypes.bool,\n /**\n * Marks indicate predetermined values to which the user can move the slider.\n * If `true` the marks are spaced according the value of the `step` prop.\n * If an array, it should contain objects with `value` and an optional `label` keys.\n * @default false\n */\n marks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.node,\n value: PropTypes.number.isRequired\n })), PropTypes.bool]),\n /**\n * The maximum allowed value of the slider.\n * Should not be equal to min.\n * @default 100\n */\n max: PropTypes.number,\n /**\n * The minimum allowed value of the slider.\n * Should not be equal to max.\n * @default 0\n */\n min: PropTypes.number,\n /**\n * Name attribute of the hidden `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback function that is fired when the slider's value changed.\n *\n * @param {Event} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (any).\n * **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n * @param {number} activeThumb Index of the currently moved thumb.\n */\n onChange: PropTypes.func,\n /**\n * Callback function that is fired when the `mouseup` is triggered.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n */\n onChangeCommitted: PropTypes.func,\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * A transformation function, to change the scale of the slider.\n * @param {any} x\n * @returns {any}\n * @default function Identity(x) {\n * return x;\n * }\n */\n scale: PropTypes.func,\n /**\n * The granularity with which the slider can step through values when using Page Up/Page Down or Shift + Arrow Up/Arrow Down.\n * @default 10\n */\n shiftStep: PropTypes.number,\n /**\n * The props used for each slot inside the Slider.\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n mark: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n markLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n rail: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n thumb: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n track: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n valueLabel: PropTypes.oneOfType([PropTypes.any, PropTypes.func])\n }),\n /**\n * The components used for each slot inside the Slider.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n mark: PropTypes.elementType,\n markLabel: PropTypes.elementType,\n rail: PropTypes.elementType,\n root: PropTypes.elementType,\n thumb: PropTypes.elementType,\n track: PropTypes.elementType,\n valueLabel: PropTypes.elementType\n }),\n /**\n * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n * The `min` prop serves as the origin for the valid values.\n * We recommend (max - min) to be evenly divisible by the step.\n *\n * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n * @default 1\n */\n step: PropTypes.number,\n /**\n * Tab index attribute of the hidden `input` element.\n */\n tabIndex: PropTypes.number,\n /**\n * The track presentation:\n *\n * - `normal` the track will render a bar representing the slider value.\n * - `inverted` the track will render a bar representing the remaining slider value.\n * - `false` the track will render without a bar.\n * @default 'normal'\n */\n track: PropTypes.oneOf(['inverted', 'normal', false]),\n /**\n * The value of the slider.\n * For ranged sliders, provide an array with two values.\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n /**\n * The format function the value label's value.\n *\n * When a function is provided, it should have the following signature:\n *\n * - {number} value The value label's value to format\n * - {number} index The value label's index to format\n * @param {any} x\n * @returns {any}\n * @default function Identity(x) {\n * return x;\n * }\n */\n valueLabelFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string])\n} : void 0;\nexport { Slider };", "import { generateUtilityClasses } from '../generateUtilityClasses';\nimport { generateUtilityClass } from '../generateUtilityClass';\nconst COMPONENT_NAME = 'Slider';\nexport function getSliderUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const sliderClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'active', 'focusVisible', 'disabled', 'dragging', 'marked', 'vertical', 'trackInverted', 'trackFalse', 'rail', 'track', 'mark', 'markActive', 'markLabel', 'markLabelActive', 'thumb']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useControlled as useControlled, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible, visuallyHidden, clamp } from '@mui/utils';\nimport { areArraysEqual, extractEventHandlers } from '../utils';\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction asc(a, b) {\n return a - b;\n}\nfunction findClosest(values, currentValue) {\n var _values$reduce;\n const {\n index: closestIndex\n } = (_values$reduce = values.reduce((acc, value, index) => {\n const distance = Math.abs(currentValue - value);\n if (acc === null || distance < acc.distance || distance === acc.distance) {\n return {\n distance,\n index\n };\n }\n return acc;\n }, null)) != null ? _values$reduce : {};\n return closestIndex;\n}\nfunction trackFinger(event, touchId) {\n // The event is TouchEvent\n if (touchId.current !== undefined && event.changedTouches) {\n const touchEvent = event;\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n if (touch.identifier === touchId.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return false;\n }\n\n // The event is MouseEvent\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\nexport function valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\nfunction getDecimalPrecision(num) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\nfunction setValueIndex({\n values,\n newValue,\n index\n}) {\n const output = values.slice();\n output[index] = newValue;\n return output.sort(asc);\n}\nfunction focusThumb({\n sliderRef,\n activeIndex,\n setActive\n}) {\n var _sliderRef$current, _doc$activeElement;\n const doc = ownerDocument(sliderRef.current);\n if (!((_sliderRef$current = sliderRef.current) != null && _sliderRef$current.contains(doc.activeElement)) || Number(doc == null || (_doc$activeElement = doc.activeElement) == null ? void 0 : _doc$activeElement.getAttribute('data-index')) !== activeIndex) {\n var _sliderRef$current2;\n (_sliderRef$current2 = sliderRef.current) == null || _sliderRef$current2.querySelector(`[type=\"range\"][data-index=\"${activeIndex}\"]`).focus();\n }\n if (setActive) {\n setActive(activeIndex);\n }\n}\nfunction areValuesEqual(newValue, oldValue) {\n if (typeof newValue === 'number' && typeof oldValue === 'number') {\n return newValue === oldValue;\n }\n if (typeof newValue === 'object' && typeof oldValue === 'object') {\n return areArraysEqual(newValue, oldValue);\n }\n return false;\n}\nconst axisProps = {\n horizontal: {\n offset: percent => ({\n left: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n 'horizontal-reverse': {\n offset: percent => ({\n right: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n vertical: {\n offset: percent => ({\n bottom: `${percent}%`\n }),\n leap: percent => ({\n height: `${percent}%`\n })\n }\n};\nexport const Identity = x => x;\n\n// TODO: remove support for Safari < 13.\n// https://caniuse.com/#search=touch-action\n//\n// Safari, on iOS, supports touch action since v13.\n// Over 80% of the iOS phones are compatible\n// in August 2020.\n// Utilizing the CSS.supports method to check if touch-action is supported.\n// Since CSS.supports is supported on all but Edge@12 and IE and touch-action\n// is supported on both Edge@12 and IE if CSS.supports is not available that means that\n// touch-action will be supported\nlet cachedSupportsTouchActionNone;\nfunction doesSupportTouchActionNone() {\n if (cachedSupportsTouchActionNone === undefined) {\n if (typeof CSS !== 'undefined' && typeof CSS.supports === 'function') {\n cachedSupportsTouchActionNone = CSS.supports('touch-action', 'none');\n } else {\n cachedSupportsTouchActionNone = true;\n }\n }\n return cachedSupportsTouchActionNone;\n}\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/#hook)\n *\n * API:\n *\n * - [useSlider API](https://mui.com/base-ui/react-slider/hooks-api/#use-slider)\n */\nexport function useSlider(parameters) {\n const {\n 'aria-labelledby': ariaLabelledby,\n defaultValue,\n disabled = false,\n disableSwap = false,\n isRtl = false,\n marks: marksProp = false,\n max = 100,\n min = 0,\n name,\n onChange,\n onChangeCommitted,\n orientation = 'horizontal',\n rootRef: ref,\n scale = Identity,\n step = 1,\n shiftStep = 10,\n tabIndex,\n value: valueProp\n } = parameters;\n const touchId = React.useRef();\n // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n const [active, setActive] = React.useState(-1);\n const [open, setOpen] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const moveCount = React.useRef(0);\n const [valueDerived, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue != null ? defaultValue : min,\n name: 'Slider'\n });\n const handleChange = onChange && ((event, value, thumbIndex) => {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = event.nativeEvent || event;\n // @ts-ignore The nativeEvent is function, not object\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value,\n name\n }\n });\n onChange(clonedEvent, value, thumbIndex);\n });\n const range = Array.isArray(valueDerived);\n let values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n values = values.map(value => value == null ? min : clamp(value, min, max));\n const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_, index) => ({\n value: min + step * index\n })) : marksProp || [];\n const marksValues = marks.map(mark => mark.value);\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusedThumbIndex, setFocusedThumbIndex] = React.useState(-1);\n const sliderRef = React.useRef();\n const handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n const handleRef = useForkRef(ref, handleFocusRef);\n const createHandleHiddenInputFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n const index = Number(event.currentTarget.getAttribute('data-index'));\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusedThumbIndex(index);\n }\n setOpen(index);\n otherHandlers == null || (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n };\n const createHandleHiddenInputBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusedThumbIndex(-1);\n }\n setOpen(-1);\n otherHandlers == null || (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n };\n const changeValue = (event, valueInput) => {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n const marksIndex = marksValues.indexOf(value);\n let newValue = valueInput;\n if (marks && step == null) {\n const maxMarksValue = marksValues[marksValues.length - 1];\n if (newValue > maxMarksValue) {\n newValue = maxMarksValue;\n } else if (newValue < marksValues[0]) {\n newValue = marksValues[0];\n } else {\n newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];\n }\n }\n newValue = clamp(newValue, min, max);\n if (range) {\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index\n });\n let activeIndex = index;\n\n // Potentially swap the index if needed.\n if (!disableSwap) {\n activeIndex = newValue.indexOf(previousValue);\n }\n focusThumb({\n sliderRef,\n activeIndex\n });\n }\n setValueState(newValue);\n setFocusedThumbIndex(index);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, index);\n }\n if (onChangeCommitted) {\n onChangeCommitted(event, newValue);\n }\n };\n const createHandleHiddenInputKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n // The Shift + Up/Down keyboard shortcuts for moving the slider makes sense to be supported\n // only if the step is defined. If the step is null, this means tha the marks are used for specifying the valid values.\n if (step !== null) {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n let newValue = null;\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowDown') && event.shiftKey || event.key === 'PageDown') {\n newValue = Math.max(value - shiftStep, min);\n } else if ((event.key === 'ArrowRight' || event.key === 'ArrowUp') && event.shiftKey || event.key === 'PageUp') {\n newValue = Math.min(value + shiftStep, max);\n }\n if (newValue !== null) {\n changeValue(event, newValue);\n event.preventDefault();\n }\n }\n otherHandlers == null || (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n };\n useEnhancedEffect(() => {\n if (disabled && sliderRef.current.contains(document.activeElement)) {\n var _document$activeEleme;\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n // @ts-ignore\n (_document$activeEleme = document.activeElement) == null || _document$activeEleme.blur();\n }\n }, [disabled]);\n if (disabled && active !== -1) {\n setActive(-1);\n }\n if (disabled && focusedThumbIndex !== -1) {\n setFocusedThumbIndex(-1);\n }\n const createHandleHiddenInputChange = otherHandlers => event => {\n var _otherHandlers$onChan;\n (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event);\n // @ts-ignore\n changeValue(event, event.target.valueAsNumber);\n };\n const previousIndex = React.useRef();\n let axis = orientation;\n if (isRtl && orientation === 'horizontal') {\n axis += '-reverse';\n }\n const getFingerNewValue = ({\n finger,\n move = false\n }) => {\n const {\n current: slider\n } = sliderRef;\n const {\n width,\n height,\n bottom,\n left\n } = slider.getBoundingClientRect();\n let percent;\n if (axis.indexOf('vertical') === 0) {\n percent = (bottom - finger.y) / height;\n } else {\n percent = (finger.x - left) / width;\n }\n if (axis.indexOf('-reverse') !== -1) {\n percent = 1 - percent;\n }\n let newValue;\n newValue = percentToValue(percent, min, max);\n if (step) {\n newValue = roundValueToStep(newValue, step, min);\n } else {\n const closestIndex = findClosest(marksValues, newValue);\n newValue = marksValues[closestIndex];\n }\n newValue = clamp(newValue, min, max);\n let activeIndex = 0;\n if (range) {\n if (!move) {\n activeIndex = findClosest(values, newValue);\n } else {\n activeIndex = previousIndex.current;\n }\n\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[activeIndex - 1] || -Infinity, values[activeIndex + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index: activeIndex\n });\n\n // Potentially swap the index if needed.\n if (!(disableSwap && move)) {\n activeIndex = newValue.indexOf(previousValue);\n previousIndex.current = activeIndex;\n }\n }\n return {\n newValue,\n activeIndex\n };\n };\n const handleTouchMove = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n if (!finger) {\n return;\n }\n moveCount.current += 1;\n\n // Cancel move in case some other element consumed a mouseup event and it was not fired.\n // @ts-ignore buttons doesn't not exists on touch event\n if (nativeEvent.type === 'mousemove' && nativeEvent.buttons === 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleTouchEnd(nativeEvent);\n return;\n }\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n move: true\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n });\n const handleTouchEnd = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n setDragging(false);\n if (!finger) {\n return;\n }\n const {\n newValue\n } = getFingerNewValue({\n finger,\n move: true\n });\n setActive(-1);\n if (nativeEvent.type === 'touchend') {\n setOpen(-1);\n }\n if (onChangeCommitted) {\n onChangeCommitted(nativeEvent, newValue);\n }\n touchId.current = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n });\n const handleTouchStart = useEventCallback(nativeEvent => {\n if (disabled) {\n return;\n }\n // If touch-action: none; is not supported we need to prevent the scroll manually.\n if (!doesSupportTouchActionNone()) {\n nativeEvent.preventDefault();\n }\n const touch = nativeEvent.changedTouches[0];\n if (touch != null) {\n // A number that uniquely identifies the current finger in the touch session.\n touchId.current = touch.identifier;\n }\n const finger = trackFinger(nativeEvent, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('touchmove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('touchend', handleTouchEnd, {\n passive: true\n });\n });\n const stopListening = React.useCallback(() => {\n const doc = ownerDocument(sliderRef.current);\n doc.removeEventListener('mousemove', handleTouchMove);\n doc.removeEventListener('mouseup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n }, [handleTouchEnd, handleTouchMove]);\n React.useEffect(() => {\n const {\n current: slider\n } = sliderRef;\n slider.addEventListener('touchstart', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n return () => {\n slider.removeEventListener('touchstart', handleTouchStart);\n stopListening();\n };\n }, [stopListening, handleTouchStart]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous;\n (_otherHandlers$onMous = otherHandlers.onMouseDown) == null || _otherHandlers$onMous.call(otherHandlers, event);\n if (disabled) {\n return;\n }\n if (event.defaultPrevented) {\n return;\n }\n\n // Only handle left clicks\n if (event.button !== 0) {\n return;\n }\n\n // Avoid text selection\n event.preventDefault();\n const finger = trackFinger(event, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('mousemove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('mouseup', handleTouchEnd);\n };\n const trackOffset = valueToPercent(range ? values[0] : min, min, max);\n const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n const getRootProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseDown: createHandleMouseDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({}, externalProps, {\n ref: handleRef\n }, mergedEventHandlers);\n };\n const createHandleMouseOver = otherHandlers => event => {\n var _otherHandlers$onMous2;\n (_otherHandlers$onMous2 = otherHandlers.onMouseOver) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n const index = Number(event.currentTarget.getAttribute('data-index'));\n setOpen(index);\n };\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous3;\n (_otherHandlers$onMous3 = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous3.call(otherHandlers, event);\n setOpen(-1);\n };\n const getThumbProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseOver: createHandleMouseOver(externalHandlers || {}),\n onMouseLeave: createHandleMouseLeave(externalHandlers || {})\n };\n return _extends({}, externalProps, externalHandlers, ownEventHandlers);\n };\n const getThumbStyle = index => {\n return {\n // So the non active thumb doesn't show its label on hover.\n pointerEvents: active !== -1 && active !== index ? 'none' : undefined\n };\n };\n const getHiddenInputProps = (externalProps = {}) => {\n var _parameters$step;\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onChange: createHandleHiddenInputChange(externalHandlers || {}),\n onFocus: createHandleHiddenInputFocus(externalHandlers || {}),\n onBlur: createHandleHiddenInputBlur(externalHandlers || {}),\n onKeyDown: createHandleHiddenInputKeyDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({\n tabIndex,\n 'aria-labelledby': ariaLabelledby,\n 'aria-orientation': orientation,\n 'aria-valuemax': scale(max),\n 'aria-valuemin': scale(min),\n name,\n type: 'range',\n min: parameters.min,\n max: parameters.max,\n step: parameters.step === null && parameters.marks ? 'any' : (_parameters$step = parameters.step) != null ? _parameters$step : undefined,\n disabled\n }, externalProps, mergedEventHandlers, {\n style: _extends({}, visuallyHidden, {\n direction: isRtl ? 'rtl' : 'ltr',\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%'\n })\n });\n };\n return {\n active,\n axis: axis,\n axisProps,\n dragging,\n focusedThumbIndex,\n getHiddenInputProps,\n getRootProps,\n getThumbProps,\n marks: marks,\n open,\n range,\n rootRef: handleRef,\n trackLeap,\n trackOffset,\n values,\n getThumbStyle\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoHideDuration\", \"children\", \"disableWindowBlurListener\", \"exited\", \"onBlur\", \"onClose\", \"onFocus\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ClickAwayListener } from '../ClickAwayListener';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSnackbarUtilityClass } from './snackbarClasses';\nimport { useSnackbar } from '../useSnackbar';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, useClassNamesOverride(getSnackbarUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/)\n * - [Snackbar](https://mui.com/joy-ui/react-snackbar/)\n * - [Snackbar](https://mui.com/material-ui/react-snackbar/)\n *\n * API:\n *\n * - [Snackbar API](https://mui.com/base-ui/react-snackbar/components-api/#snackbar)\n */\nconst Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(props, forwardedRef) {\n const {\n autoHideDuration = null,\n children,\n disableWindowBlurListener = false,\n exited = true,\n onClose,\n open,\n resumeHideDuration,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses();\n const {\n getRootProps,\n onClickAway\n } = useSnackbar(_extends({}, props, {\n autoHideDuration,\n disableWindowBlurListener,\n onClose,\n open,\n resumeHideDuration\n }));\n const ownerState = props;\n const Root = slots.root || 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n externalSlotProps: slotProps.root,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const clickAwayListenerProps = useSlotProps({\n elementType: ClickAwayListener,\n externalSlotProps: slotProps.clickAwayListener,\n additionalProps: {\n onClickAway\n },\n ownerState\n });\n\n // ClickAwayListener doesn't support ownerState\n delete clickAwayListenerProps.ownerState;\n\n // So that we only render active snackbars.\n if (!open && exited) {\n return null;\n }\n return /*#__PURE__*/_jsx(ClickAwayListener, _extends({}, clickAwayListenerProps, {\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The number of milliseconds to wait before automatically calling the\n * `onClose` function. `onClose` should then set the state of the `open`\n * prop to hide the Snackbar. This behavior is disabled by default with\n * the `null` value.\n * @default null\n */\n autoHideDuration: PropTypes.number,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n * @default false\n */\n disableWindowBlurListener: PropTypes.bool,\n /**\n * The prop used to handle exited transition and unmount the component.\n * @default true\n */\n exited: PropTypes.bool,\n /**\n * Callback fired when the component requests to be closed.\n * Typically `onClose` is used to set state in the parent component,\n * which is used to control the `Snackbar` `open` prop.\n * The `reason` parameter can optionally be used to control the response to `onClose`,\n * for example ignoring `clickaway`.\n *\n * @param {React.SyntheticEvent<any> | Event} event The event source of the callback.\n * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`, or `\"escapeKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * The number of milliseconds to wait before dismissing after user interaction.\n * If `autoHideDuration` prop isn't specified, it does nothing.\n * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n * we default to `autoHideDuration / 2` ms.\n */\n resumeHideDuration: PropTypes.number,\n /**\n * The props used for each slot inside the Snackbar.\n * @default {}\n */\n slotProps: PropTypes.shape({\n clickAwayListener: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n children: PropTypes.element.isRequired,\n disableReactTree: PropTypes.bool,\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n onClickAway: PropTypes.func,\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n })]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Snackbar.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { Snackbar };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Snackbar';\nexport function getSnackbarUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const snackbarClasses = generateUtilityClasses(COMPONENT_NAME, ['root']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback, unstable_useTimeout as useTimeout } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\n/**\n * The basic building block for creating custom snackbar.\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/#hook)\n *\n * API:\n *\n * - [useSnackbar API](https://mui.com/base-ui/react-snackbar/hooks-api/#use-snackbar)\n */\nexport function useSnackbar(parameters = {}) {\n const {\n autoHideDuration = null,\n disableWindowBlurListener = false,\n onClose,\n open,\n resumeHideDuration\n } = parameters;\n const timerAutoHide = useTimeout();\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n function handleKeyDown(nativeEvent) {\n if (!nativeEvent.defaultPrevented) {\n // IE11, Edge (prior to using Blink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n onClose == null || onClose(nativeEvent, 'escapeKeyDown');\n }\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open, onClose]);\n const handleClose = useEventCallback((event, reason) => {\n onClose == null || onClose(event, reason);\n });\n const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n timerAutoHide.start(autoHideDurationParam, () => {\n handleClose(null, 'timeout');\n });\n });\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n return timerAutoHide.clear;\n }, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);\n const handleClickAway = event => {\n onClose == null || onClose(event, 'clickaway');\n };\n\n // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n const handlePause = timerAutoHide.clear;\n\n // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n const createHandleBlur = otherHandlers => event => {\n const onBlurCallback = otherHandlers.onBlur;\n onBlurCallback == null || onBlurCallback(event);\n handleResume();\n };\n const createHandleFocus = otherHandlers => event => {\n const onFocusCallback = otherHandlers.onFocus;\n onFocusCallback == null || onFocusCallback(event);\n handlePause();\n };\n const createMouseEnter = otherHandlers => event => {\n const onMouseEnterCallback = otherHandlers.onMouseEnter;\n onMouseEnterCallback == null || onMouseEnterCallback(event);\n handlePause();\n };\n const createMouseLeave = otherHandlers => event => {\n const onMouseLeaveCallback = otherHandlers.onMouseLeave;\n onMouseLeaveCallback == null || onMouseLeaveCallback(event);\n handleResume();\n };\n React.useEffect(() => {\n // TODO: window global should be refactored here\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n return undefined;\n }, [disableWindowBlurListener, open, handleResume, handlePause]);\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n return _extends({\n // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n // See https://github.com/mui/material-ui/issues/29080\n role: 'presentation'\n }, externalProps, externalEventHandlers, {\n onBlur: createHandleBlur(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onMouseEnter: createMouseEnter(externalEventHandlers),\n onMouseLeave: createMouseLeave(externalEventHandlers)\n });\n };\n return {\n getRootProps,\n onClickAway: handleClickAway\n };\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"checked\", \"defaultChecked\", \"disabled\", \"onBlur\", \"onChange\", \"onFocus\", \"onFocusVisible\", \"readOnly\", \"required\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSwitch } from '../useSwitch';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { getSwitchUtilityClass } from './switchClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n checked,\n disabled,\n focusVisible,\n readOnly\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', focusVisible && 'focusVisible', readOnly && 'readOnly'],\n thumb: ['thumb'],\n input: ['input'],\n track: ['track']\n };\n return composeClasses(slots, useClassNamesOverride(getSwitchUtilityClass));\n};\n\n/**\n * The foundation for building custom-styled switches.\n *\n * Demos:\n *\n * - [Switch](https://mui.com/base-ui/react-switch/)\n *\n * API:\n *\n * - [Switch API](https://mui.com/base-ui/react-switch/components-api/#switch)\n */\nconst Switch = /*#__PURE__*/React.forwardRef(function Switch(props, forwardedRef) {\n var _slots$root, _slots$thumb, _slots$input, _slots$track;\n const {\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n getInputProps,\n checked,\n disabled,\n focusVisible,\n readOnly\n } = useSwitch(props);\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n focusVisible,\n readOnly\n });\n const classes = useUtilityClasses(ownerState);\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'span';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const Thumb = (_slots$thumb = slots.thumb) != null ? _slots$thumb : 'span';\n const thumbProps = useSlotProps({\n elementType: Thumb,\n externalSlotProps: slotProps.thumb,\n ownerState,\n className: classes.thumb\n });\n const Input = (_slots$input = slots.input) != null ? _slots$input : 'input';\n const inputProps = useSlotProps({\n elementType: Input,\n getSlotProps: getInputProps,\n externalSlotProps: slotProps.input,\n ownerState,\n className: classes.input\n });\n const Track = slots.track === null ? () => null : (_slots$track = slots.track) != null ? _slots$track : 'span';\n const trackProps = useSlotProps({\n elementType: Track,\n externalSlotProps: slotProps.track,\n ownerState,\n className: classes.track\n });\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(Track, _extends({}, trackProps)), /*#__PURE__*/_jsx(Thumb, _extends({}, thumbProps)), /*#__PURE__*/_jsx(Input, _extends({}, inputProps))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Switch.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * Class name applied to the root element.\n */\n className: PropTypes.string,\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onFocusVisible: PropTypes.func,\n /**\n * If `true`, the component is read only.\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The props used for each slot inside the Switch.\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n thumb: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n track: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Switch.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType,\n thumb: PropTypes.elementType,\n track: PropTypes.oneOfType([PropTypes.elementType, PropTypes.oneOf([null])])\n })\n} : void 0;\nexport { Switch };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useControlled as useControlled, unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\n/**\n * The basic building block for creating custom switches.\n *\n * Demos:\n *\n * - [Switch](https://mui.com/base-ui/react-switch/#hook)\n *\n * API:\n *\n * - [useSwitch API](https://mui.com/base-ui/react-switch/hooks-api/#use-switch)\n */\nexport function useSwitch(props) {\n const {\n checked: checkedProp,\n defaultChecked,\n disabled,\n onBlur,\n onChange,\n onFocus,\n onFocusVisible,\n readOnly,\n required\n } = props;\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'Switch',\n state: 'checked'\n });\n const createHandleInputChange = otherProps => event => {\n var _otherProps$onChange;\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n setCheckedState(event.target.checked);\n onChange == null || onChange(event);\n (_otherProps$onChange = otherProps.onChange) == null || _otherProps$onChange.call(otherProps, event);\n };\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useEffect(() => {\n isFocusVisibleRef.current = focusVisible;\n }, [focusVisible, isFocusVisibleRef]);\n const inputRef = React.useRef(null);\n const createHandleFocus = otherProps => event => {\n var _otherProps$onFocus;\n // Fix for https://github.com/facebook/react/issues/7769\n if (!inputRef.current) {\n inputRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n onFocusVisible == null || onFocusVisible(event);\n }\n onFocus == null || onFocus(event);\n (_otherProps$onFocus = otherProps.onFocus) == null || _otherProps$onFocus.call(otherProps, event);\n };\n const createHandleBlur = otherProps => event => {\n var _otherProps$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n onBlur == null || onBlur(event);\n (_otherProps$onBlur = otherProps.onBlur) == null || _otherProps$onBlur.call(otherProps, event);\n };\n const handleInputRef = useForkRef(focusVisibleRef, inputRef);\n const getInputProps = (otherProps = {}) => _extends({\n checked: checkedProp,\n defaultChecked,\n disabled,\n readOnly,\n ref: handleInputRef,\n required,\n type: 'checkbox',\n role: 'switch',\n 'aria-checked': checkedProp\n }, otherProps, {\n onChange: createHandleInputChange(otherProps),\n onFocus: createHandleFocus(otherProps),\n onBlur: createHandleBlur(otherProps)\n });\n return {\n checked,\n disabled: Boolean(disabled),\n focusVisible,\n getInputProps,\n inputRef: handleInputRef,\n readOnly: Boolean(readOnly)\n };\n}", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Switch';\nexport function getSwitchUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const switchClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'input', 'track', 'thumb', 'checked', 'disabled', 'focusVisible', 'readOnly']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"colSpan\", \"count\", \"getItemAriaLabel\", \"labelDisplayedRows\", \"labelId\", \"labelRowsPerPage\", \"onPageChange\", \"onRowsPerPageChange\", \"page\", \"rowsPerPage\", \"rowsPerPageOptions\", \"selectId\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId, chainPropTypes, integerPropType } from '@mui/utils';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { isHostComponent } from '../utils/isHostComponent';\nimport { TablePaginationActions } from './TablePaginationActions';\nimport { getTablePaginationUtilityClass } from './tablePaginationClasses';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction defaultLabelDisplayedRows({\n from,\n to,\n count\n}) {\n return `${from}${to} of ${count !== -1 ? count : `more than ${to}`}`;\n}\nfunction defaultGetAriaLabel(type) {\n return `Go to ${type} page`;\n}\nconst useUtilityClasses = () => {\n const slots = {\n root: ['root'],\n toolbar: ['toolbar'],\n spacer: ['spacer'],\n selectLabel: ['selectLabel'],\n select: ['select'],\n input: ['input'],\n selectIcon: ['selectIcon'],\n menuItem: ['menuItem'],\n displayedRows: ['displayedRows'],\n actions: ['actions']\n };\n return composeClasses(slots, useClassNamesOverride(getTablePaginationUtilityClass));\n};\n\n/**\n * A pagination for tables.\n *\n * Demos:\n *\n * - [Table Pagination](https://mui.com/base-ui/react-table-pagination/)\n *\n * API:\n *\n * - [TablePagination API](https://mui.com/base-ui/react-table-pagination/components-api/#table-pagination)\n */\nconst TablePagination = /*#__PURE__*/React.forwardRef(function TablePagination(props, forwardedRef) {\n var _slots$root, _slots$select, _slots$actions, _slots$menuItem, _slots$selectLabel, _slots$displayedRows, _slots$toolbar, _slots$spacer;\n const {\n colSpan: colSpanProp,\n count,\n getItemAriaLabel = defaultGetAriaLabel,\n labelDisplayedRows = defaultLabelDisplayedRows,\n labelId: labelIdProp,\n labelRowsPerPage = 'Rows per page:',\n onPageChange,\n onRowsPerPageChange,\n page,\n rowsPerPage,\n rowsPerPageOptions = [10, 25, 50, 100],\n selectId: selectIdProp,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses();\n let colSpan;\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'td';\n if (Root === 'td' || !isHostComponent(Root)) {\n colSpan = colSpanProp || 1000; // col-span over everything\n }\n const getLabelDisplayedRowsTo = () => {\n if (count === -1) {\n return (page + 1) * rowsPerPage;\n }\n return rowsPerPage === -1 ? count : Math.min(count, (page + 1) * rowsPerPage);\n };\n const selectId = useId(selectIdProp);\n const labelId = useId(labelIdProp);\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n colSpan,\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n const Select = (_slots$select = slots.select) != null ? _slots$select : 'select';\n const selectProps = useSlotProps({\n elementType: Select,\n externalSlotProps: slotProps.select,\n additionalProps: {\n value: rowsPerPage,\n id: selectId,\n onChange: event => onRowsPerPageChange && onRowsPerPageChange(event),\n 'aria-label': rowsPerPage.toString(),\n 'aria-labelledby': [labelId, selectId].filter(Boolean).join(' ') || undefined\n },\n ownerState,\n className: classes.select\n });\n const Actions = (_slots$actions = slots.actions) != null ? _slots$actions : TablePaginationActions;\n const actionsProps = useSlotProps({\n elementType: Actions,\n externalSlotProps: slotProps.actions,\n additionalProps: {\n page,\n rowsPerPage,\n count,\n onPageChange,\n getItemAriaLabel\n },\n ownerState,\n className: classes.actions\n });\n const MenuItem = (_slots$menuItem = slots.menuItem) != null ? _slots$menuItem : 'option';\n const menuItemProps = useSlotProps({\n elementType: MenuItem,\n externalSlotProps: slotProps.menuItem,\n additionalProps: {\n value: undefined\n },\n ownerState,\n className: classes.menuItem\n });\n const SelectLabel = (_slots$selectLabel = slots.selectLabel) != null ? _slots$selectLabel : 'p';\n const selectLabelProps = useSlotProps({\n elementType: SelectLabel,\n externalSlotProps: slotProps.selectLabel,\n additionalProps: {\n id: labelId\n },\n ownerState,\n className: classes.selectLabel\n });\n const DisplayedRows = (_slots$displayedRows = slots.displayedRows) != null ? _slots$displayedRows : 'p';\n const displayedRowsProps = useSlotProps({\n elementType: DisplayedRows,\n externalSlotProps: slotProps.displayedRows,\n ownerState,\n className: classes.displayedRows\n });\n const Toolbar = (_slots$toolbar = slots.toolbar) != null ? _slots$toolbar : 'div';\n const toolbarProps = useSlotProps({\n elementType: Toolbar,\n externalSlotProps: slotProps.toolbar,\n ownerState,\n className: classes.toolbar\n });\n const Spacer = (_slots$spacer = slots.spacer) != null ? _slots$spacer : 'div';\n const spacerProps = useSlotProps({\n elementType: Spacer,\n externalSlotProps: slotProps.spacer,\n ownerState,\n className: classes.spacer\n });\n return /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: /*#__PURE__*/_jsxs(Toolbar, _extends({}, toolbarProps, {\n children: [/*#__PURE__*/_jsx(Spacer, _extends({}, spacerProps)), rowsPerPageOptions.length > 1 && /*#__PURE__*/_jsx(SelectLabel, _extends({}, selectLabelProps, {\n children: labelRowsPerPage\n })), rowsPerPageOptions.length > 1 && /*#__PURE__*/_jsx(Select, _extends({}, selectProps, {\n children: rowsPerPageOptions.map(rowsPerPageOption => /*#__PURE__*/_createElement(MenuItem, _extends({}, menuItemProps, {\n key: typeof rowsPerPageOption !== 'number' && rowsPerPageOption.label ? rowsPerPageOption.label : rowsPerPageOption,\n value: typeof rowsPerPageOption !== 'number' && rowsPerPageOption.value ? rowsPerPageOption.value : rowsPerPageOption\n }), typeof rowsPerPageOption !== 'number' && rowsPerPageOption.label ? rowsPerPageOption.label : rowsPerPageOption))\n })), /*#__PURE__*/_jsx(DisplayedRows, _extends({}, displayedRowsProps, {\n children: labelDisplayedRows({\n from: count === 0 ? 0 : page * rowsPerPage + 1,\n to: getLabelDisplayedRowsTo(),\n count: count === -1 ? -1 : count,\n page\n })\n })), /*#__PURE__*/_jsx(Actions, _extends({}, actionsProps))]\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TablePagination.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n colSpan: PropTypes.number,\n /**\n * The total number of rows.\n *\n * To enable server side pagination for an unknown number of items, provide -1.\n */\n count: PropTypes.number.isRequired,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n * This is important for screen reader users.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @param {string} type The link or button type to format ('first' | 'last' | 'next' | 'previous').\n * @returns {string}\n * @default function defaultGetAriaLabel(type: ItemAriaLabelType) {\n * return `Go to ${type} page`;\n * }\n */\n getItemAriaLabel: PropTypes.func,\n /**\n * Customize the displayed rows label. Invoked with a `{ from, to, count, page }`\n * object.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default function defaultLabelDisplayedRows({ from, to, count }: LabelDisplayedRowsArgs) {\n * return `${from}${to} of ${count !== -1 ? count : `more than ${to}`}`;\n * }\n */\n labelDisplayedRows: PropTypes.func,\n /**\n * Id of the label element within the pagination.\n */\n labelId: PropTypes.string,\n /**\n * Customize the rows per page label.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Rows per page:'\n */\n labelRowsPerPage: PropTypes.node,\n /**\n * Callback fired when the page is changed.\n *\n * @param {React.MouseEvent<HTMLButtonElement> | null} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onPageChange: PropTypes.func.isRequired,\n /**\n * Callback fired when the number of rows per page is changed.\n *\n * @param {React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>} event The event source of the callback.\n */\n onRowsPerPageChange: PropTypes.func,\n /**\n * The zero-based index of the current page.\n */\n page: chainPropTypes(integerPropType.isRequired, props => {\n const {\n count,\n page,\n rowsPerPage\n } = props;\n if (count === -1) {\n return null;\n }\n const newLastPage = Math.max(0, Math.ceil(count / rowsPerPage) - 1);\n if (page < 0 || page > newLastPage) {\n return new Error('MUI: The page prop of a TablePagination is out of range ' + `(0 to ${newLastPage}, but page is ${page}).`);\n }\n return null;\n }),\n /**\n * The number of rows per page.\n *\n * Set -1 to display all the rows.\n */\n rowsPerPage: integerPropType.isRequired,\n /**\n * Customizes the options of the rows per page select field. If less than two options are\n * available, no select field will be displayed.\n * Use -1 for the value with a custom label to show all the rows.\n * @default [10, 25, 50, 100]\n */\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.number.isRequired\n })]).isRequired),\n /**\n * Id of the select element within the pagination.\n */\n selectId: PropTypes.string,\n /**\n * The props used for each slot inside the TablePagination.\n * @default {}\n */\n slotProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n actions: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n displayedRows: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n menuItem: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n select: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n selectLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n spacer: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n toolbar: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the TablePagination.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n actions: PropTypes.elementType,\n displayedRows: PropTypes.elementType,\n menuItem: PropTypes.elementType,\n root: PropTypes.elementType,\n select: PropTypes.elementType,\n selectLabel: PropTypes.elementType,\n spacer: PropTypes.elementType,\n toolbar: PropTypes.elementType\n })\n} : void 0;\nexport { TablePagination };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"count\", \"getItemAriaLabel\", \"onPageChange\", \"page\", \"rowsPerPage\", \"showFirstButton\", \"showLastButton\", \"direction\", \"ownerState\", \"slotProps\", \"slots\"];\nvar _span, _span2, _span3, _span4;\nimport * as React from 'react';\nimport { useSlotProps } from '../utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction LastPageIconDefault() {\n return _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n children: '⇾|'\n }));\n}\nfunction FirstPageIconDefault() {\n return _span2 || (_span2 = /*#__PURE__*/_jsx(\"span\", {\n children: '|⇽'\n }));\n}\nfunction NextPageIconDefault() {\n return _span3 || (_span3 = /*#__PURE__*/_jsx(\"span\", {\n children: '⇾'\n }));\n}\nfunction BackPageIconDefault() {\n return _span4 || (_span4 = /*#__PURE__*/_jsx(\"span\", {\n children: '⇽'\n }));\n}\nfunction defaultGetAriaLabel(type) {\n return `Go to ${type} page`;\n}\n\n/**\n * @ignore - internal component.\n */\nconst TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePaginationActions(props, forwardedRef) {\n var _slots$root, _slots$firstButton, _slots$lastButton, _slots$nextButton, _slots$backButton, _slots$lastPageIcon, _slots$firstPageIcon, _slots$nextPageIcon, _slots$backPageIcon;\n const {\n count,\n getItemAriaLabel = defaultGetAriaLabel,\n onPageChange,\n page,\n rowsPerPage,\n showFirstButton = false,\n showLastButton = false,\n direction\n // @ts-ignore\n ,\n\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const handleFirstPageButtonClick = event => {\n onPageChange(event, 0);\n };\n const handleBackButtonClick = event => {\n onPageChange(event, page - 1);\n };\n const handleNextButtonClick = event => {\n onPageChange(event, page + 1);\n };\n const handleLastPageButtonClick = event => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n const Root = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState\n });\n const FirstButton = (_slots$firstButton = slots.firstButton) != null ? _slots$firstButton : 'button';\n const firstButtonProps = useSlotProps({\n elementType: FirstButton,\n externalSlotProps: slotProps.firstButton,\n additionalProps: {\n onClick: handleFirstPageButtonClick,\n disabled: page === 0,\n 'aria-label': getItemAriaLabel('first', page),\n title: getItemAriaLabel('first', page)\n },\n ownerState\n });\n const LastButton = (_slots$lastButton = slots.lastButton) != null ? _slots$lastButton : 'button';\n const lastButtonProps = useSlotProps({\n elementType: LastButton,\n externalSlotProps: slotProps.lastButton,\n additionalProps: {\n onClick: handleLastPageButtonClick,\n disabled: page >= Math.ceil(count / rowsPerPage) - 1,\n 'aria-label': getItemAriaLabel('last', page),\n title: getItemAriaLabel('last', page)\n },\n ownerState\n });\n const NextButton = (_slots$nextButton = slots.nextButton) != null ? _slots$nextButton : 'button';\n const nextButtonProps = useSlotProps({\n elementType: NextButton,\n externalSlotProps: slotProps.nextButton,\n additionalProps: {\n onClick: handleNextButtonClick,\n disabled: count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false,\n 'aria-label': getItemAriaLabel('next', page),\n title: getItemAriaLabel('next', page)\n },\n ownerState\n });\n const BackButton = (_slots$backButton = slots.backButton) != null ? _slots$backButton : 'button';\n const backButtonProps = useSlotProps({\n elementType: BackButton,\n externalSlotProps: slotProps.backButton,\n additionalProps: {\n onClick: handleBackButtonClick,\n disabled: page === 0,\n 'aria-label': getItemAriaLabel('previous', page),\n title: getItemAriaLabel('previous', page)\n },\n ownerState\n });\n const LastPageIcon = (_slots$lastPageIcon = slots.lastPageIcon) != null ? _slots$lastPageIcon : LastPageIconDefault;\n const FirstPageIcon = (_slots$firstPageIcon = slots.firstPageIcon) != null ? _slots$firstPageIcon : FirstPageIconDefault;\n const NextPageIcon = (_slots$nextPageIcon = slots.nextPageIcon) != null ? _slots$nextPageIcon : NextPageIconDefault;\n const BackPageIcon = (_slots$backPageIcon = slots.backPageIcon) != null ? _slots$backPageIcon : BackPageIconDefault;\n return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [showFirstButton && /*#__PURE__*/_jsx(FirstButton, _extends({}, firstButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(LastPageIcon, {}) : /*#__PURE__*/_jsx(FirstPageIcon, {})\n })), /*#__PURE__*/_jsx(BackButton, _extends({}, backButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(NextPageIcon, {}) : /*#__PURE__*/_jsx(BackPageIcon, {})\n })), /*#__PURE__*/_jsx(NextButton, _extends({}, nextButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(BackPageIcon, {}) : /*#__PURE__*/_jsx(NextPageIcon, {})\n })), showLastButton && /*#__PURE__*/_jsx(LastButton, _extends({}, lastButtonProps, {\n children: direction === 'rtl' ? /*#__PURE__*/_jsx(FirstPageIcon, {}) : /*#__PURE__*/_jsx(LastPageIcon, {})\n }))]\n }));\n});\nexport { TablePaginationActions };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'TablePagination';\nexport function getTablePaginationUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tablePaginationClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'toolbar', 'spacer', 'selectLabel', 'selectRoot', 'select', 'selectIcon', 'input', 'menuItem', 'displayedRows', 'actions']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"value\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { useTabPanel } from '../useTabPanel/useTabPanel';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n hidden\n } = ownerState;\n const slots = {\n root: ['root', hidden && 'hidden']\n };\n return composeClasses(slots, useClassNamesOverride(getTabPanelUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [TabPanel API](https://mui.com/base-ui/react-tabs/components-api/#tab-panel)\n */\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n hidden,\n getRootProps\n } = useTabPanel(props);\n const ownerState = _extends({}, props, {\n hidden\n });\n const classes = useUtilityClasses(ownerState);\n const TabPanelRoot = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const tabPanelRootProps = useSlotProps({\n elementType: TabPanelRoot,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n role: 'tabpanel',\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({}, tabPanelRootProps, {\n children: !hidden && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside the TabPanel.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the TabPanel.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the TabPanel. It will be shown when the Tab with the corresponding value is selected.\n * If not provided, it will fall back to the index of the panel.\n * It is recommended to explicitly provide it, as it's required for the tab panel to be rendered on the server.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport { TabPanel };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'TabPanel';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabPanelClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'hidden']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useTabsContext } from '../Tabs';\nimport { useCompoundItem } from '../useCompound';\nfunction tabPanelValueGenerator(otherTabPanelValues) {\n return otherTabPanelValues.size;\n}\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTabPanel API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tab-panel)\n */\nfunction useTabPanel(parameters) {\n const {\n value: valueParam,\n id: idParam,\n rootRef: externalRef\n } = parameters;\n const context = useTabsContext();\n if (context === null) {\n throw new Error('No TabContext provided');\n }\n const {\n value: selectedTabValue,\n getTabId\n } = context;\n const id = useId(idParam);\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, externalRef);\n const metadata = React.useMemo(() => ({\n id,\n ref\n }), [id]);\n const {\n id: value\n } = useCompoundItem(valueParam != null ? valueParam : tabPanelValueGenerator, metadata);\n const hidden = value !== selectedTabValue;\n const correspondingTabId = value !== undefined ? getTabId(value) : undefined;\n const getRootProps = (externalProps = {}) => {\n return _extends({\n 'aria-labelledby': correspondingTabId != null ? correspondingTabId : undefined,\n hidden,\n id: id != null ? id : undefined\n }, externalProps, {\n ref: handleRef\n });\n };\n return {\n hidden,\n getRootProps,\n rootRef: handleRef\n };\n}\nexport { useTabPanel };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"value\", \"defaultValue\", \"orientation\", \"direction\", \"onChange\", \"selectionFollowsFocus\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSlotProps } from '../utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getTabsUtilityClass } from './tabsClasses';\nimport { useTabs } from '../useTabs';\nimport { TabsProvider } from '../useTabs/TabsProvider';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n orientation\n } = ownerState;\n const slots = {\n root: ['root', orientation]\n };\n return composeClasses(slots, useClassNamesOverride(getTabsUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [Tabs API](https://mui.com/base-ui/react-tabs/components-api/#tabs)\n */\nconst Tabs = /*#__PURE__*/React.forwardRef(function Tabs(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n orientation = 'horizontal',\n direction = 'ltr',\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n orientation,\n direction\n });\n const {\n contextValue\n } = useTabs(ownerState);\n const classes = useUtilityClasses(ownerState);\n const TabsRoot = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const tabsRootProps = useSlotProps({\n elementType: TabsRoot,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabsRoot, _extends({}, tabsRootProps, {\n children: /*#__PURE__*/_jsx(TabsProvider, {\n value: contextValue,\n children: children\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tabs.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The direction of the text.\n * @default 'ltr'\n */\n direction: PropTypes.oneOf(['ltr', 'rtl']),\n /**\n * Callback invoked when new value is being set.\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * If `true` the selected tab changes on focus. Otherwise it only\n * changes on activation.\n */\n selectionFollowsFocus: PropTypes.bool,\n /**\n * The props used for each slot inside the Tabs.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Tabs.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The value of the currently selected `Tab`.\n * If you don't want any selected `Tab`, you can set this prop to `null`.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport { Tabs };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Tabs';\nexport function getTabsUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabsClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'horizontal', 'vertical']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useControlled as useControlled } from '@mui/utils';\nimport { useCompoundParent } from '../useCompound';\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTabs API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tabs)\n */\nfunction useTabs(parameters) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n orientation = 'horizontal',\n direction = 'ltr',\n selectionFollowsFocus = false\n } = parameters;\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: 'Tabs',\n state: 'value'\n });\n const onSelected = React.useCallback((event, newValue) => {\n setValue(newValue);\n onChange == null || onChange(event, newValue);\n }, [onChange, setValue]);\n const {\n subitems: tabPanels,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const tabIdLookup = React.useRef(() => undefined);\n const getTabPanelId = React.useCallback(tabValue => {\n var _tabPanels$get;\n return (_tabPanels$get = tabPanels.get(tabValue)) == null ? void 0 : _tabPanels$get.id;\n }, [tabPanels]);\n const getTabId = React.useCallback(tabPanelId => {\n return tabIdLookup.current(tabPanelId);\n }, []);\n const registerTabIdLookup = React.useCallback(lookupFunction => {\n tabIdLookup.current = lookupFunction;\n }, []);\n return {\n contextValue: _extends({\n direction,\n getTabId,\n getTabPanelId,\n onSelected,\n orientation,\n registerTabIdLookup,\n selectionFollowsFocus,\n value\n }, compoundComponentContextValue)\n };\n}\nexport { useTabs };", "'use client';\n\nimport * as React from 'react';\nimport { TabsContext } from '../Tabs/TabsContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying Tab and TabPanel components.\n *\n * @ignore - do not document.\n */\nexport function TabsProvider(props) {\n const {\n value: valueProp,\n children\n } = props;\n const {\n direction,\n getItemIndex,\n onSelected,\n orientation,\n registerItem,\n registerTabIdLookup,\n selectionFollowsFocus,\n totalSubitemCount,\n value,\n getTabId,\n getTabPanelId\n } = valueProp;\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n const tabsContextValue = React.useMemo(() => ({\n direction,\n getTabId,\n getTabPanelId,\n onSelected,\n orientation,\n registerTabIdLookup,\n selectionFollowsFocus,\n value\n }), [direction, getTabId, getTabPanelId, onSelected, orientation, registerTabIdLookup, selectionFollowsFocus, value]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(TabsContext.Provider, {\n value: tabsContextValue,\n children: children\n })\n });\n}", "import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst TabsContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n TabsContext.displayName = 'TabsContext';\n}\nexport function useTabsContext() {\n const context = React.useContext(TabsContext);\n if (context == null) {\n throw new Error('No TabsContext provided');\n }\n return context;\n}\nexport { TabsContext };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { useSlotProps } from '../utils';\nimport { getTabsListUtilityClass } from './tabsListClasses';\nimport { useTabsList } from '../useTabsList';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { TabsListProvider } from '../useTabsList/TabsListProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n orientation\n } = ownerState;\n const slots = {\n root: ['root', orientation]\n };\n return composeClasses(slots, useClassNamesOverride(getTabsListUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [TabsList API](https://mui.com/base-ui/react-tabs/components-api/#tabs-list)\n */\nconst TabsList = /*#__PURE__*/React.forwardRef(function TabsList(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n slotProps = {},\n slots = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n isRtl,\n orientation,\n getRootProps,\n contextValue\n } = useTabsList({\n rootRef: forwardedRef\n });\n const ownerState = _extends({}, props, {\n isRtl,\n orientation\n });\n const classes = useUtilityClasses(ownerState);\n const TabsListRoot = (_slots$root = slots.root) != null ? _slots$root : 'div';\n const tabsListRootProps = useSlotProps({\n elementType: TabsListRoot,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabsListProvider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(TabsListRoot, _extends({}, tabsListRootProps, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TabsList.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The props used for each slot inside the TabsList.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the TabsList.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n })\n} : void 0;\nexport { TabsList };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'TabsList';\nexport function getTabsListUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabsListClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'horizontal', 'vertical']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useTabsContext } from '../Tabs';\nimport { TabsListActionTypes } from './useTabsList.types';\nimport { useCompoundParent } from '../useCompound';\nimport { useList } from '../useList';\nimport { tabsListReducer } from './tabsListReducer';\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTabsList API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tabs-list)\n */\nfunction useTabsList(parameters) {\n var _selectedValues$;\n const {\n rootRef: externalRef\n } = parameters;\n const {\n direction = 'ltr',\n onSelected,\n orientation = 'horizontal',\n value,\n registerTabIdLookup,\n selectionFollowsFocus\n } = useTabsContext();\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const tabIdLookup = React.useCallback(tabValue => {\n var _subitems$get;\n return (_subitems$get = subitems.get(tabValue)) == null ? void 0 : _subitems$get.id;\n }, [subitems]);\n registerTabIdLookup(tabIdLookup);\n const subitemKeys = React.useMemo(() => Array.from(subitems.keys()), [subitems]);\n const getTabElement = React.useCallback(tabValue => {\n var _subitems$get$ref$cur, _subitems$get2;\n if (tabValue == null) {\n return null;\n }\n return (_subitems$get$ref$cur = (_subitems$get2 = subitems.get(tabValue)) == null ? void 0 : _subitems$get2.ref.current) != null ? _subitems$get$ref$cur : null;\n }, [subitems]);\n const isRtl = direction === 'rtl';\n let listOrientation;\n if (orientation === 'vertical') {\n listOrientation = 'vertical';\n } else {\n listOrientation = isRtl ? 'horizontal-rtl' : 'horizontal-ltr';\n }\n const handleChange = React.useCallback((event, newValue) => {\n var _newValue$;\n onSelected(event, (_newValue$ = newValue[0]) != null ? _newValue$ : null);\n }, [onSelected]);\n const controlledProps = React.useMemo(() => {\n if (value === undefined) {\n return {};\n }\n return value != null ? {\n selectedValues: [value]\n } : {\n selectedValues: []\n };\n }, [value]);\n const isItemDisabled = React.useCallback(item => {\n var _subitems$get$disable, _subitems$get3;\n return (_subitems$get$disable = (_subitems$get3 = subitems.get(item)) == null ? void 0 : _subitems$get3.disabled) != null ? _subitems$get$disable : false;\n }, [subitems]);\n const {\n contextValue: listContextValue,\n dispatch,\n getRootProps: getListboxRootProps,\n state: {\n highlightedValue,\n selectedValues\n },\n rootRef: mergedRootRef\n } = useList({\n controlledProps,\n disabledItemsFocusable: !selectionFollowsFocus,\n focusManagement: 'DOM',\n getItemDomElement: getTabElement,\n isItemDisabled,\n items: subitemKeys,\n rootRef: externalRef,\n onChange: handleChange,\n orientation: listOrientation,\n reducerActionContext: React.useMemo(() => ({\n selectionFollowsFocus: selectionFollowsFocus || false\n }), [selectionFollowsFocus]),\n selectionMode: 'single',\n stateReducer: tabsListReducer\n });\n React.useEffect(() => {\n if (value === undefined) {\n return;\n }\n\n // when a value changes externally, the highlighted value should be synced to it\n if (value != null) {\n dispatch({\n type: TabsListActionTypes.valueChange,\n value\n });\n }\n }, [dispatch, value]);\n const getRootProps = (externalProps = {}) => {\n return _extends({}, externalProps, getListboxRootProps(externalProps), {\n 'aria-orientation': orientation === 'vertical' ? 'vertical' : undefined,\n role: 'tablist'\n });\n };\n const contextValue = React.useMemo(() => _extends({}, compoundComponentContextValue, listContextValue), [compoundComponentContextValue, listContextValue]);\n return {\n contextValue,\n dispatch,\n getRootProps,\n highlightedValue,\n isRtl,\n orientation,\n rootRef: mergedRootRef,\n selectedValue: (_selectedValues$ = selectedValues[0]) != null ? _selectedValues$ : null\n };\n}\nexport { useTabsList };", "export const TabsListActionTypes = {\n valueChange: 'valueChange'\n};", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { listReducer, ListActionTypes, moveHighlight } from '../useList';\nimport { TabsListActionTypes } from './useTabsList.types';\nexport function tabsListReducer(state, action) {\n if (action.type === TabsListActionTypes.valueChange) {\n return _extends({}, state, {\n highlightedValue: action.value\n });\n }\n const newState = listReducer(state, action);\n const {\n context: {\n selectionFollowsFocus\n }\n } = action;\n if (action.type === ListActionTypes.itemsChange) {\n if (newState.selectedValues.length > 0) {\n return _extends({}, newState, {\n highlightedValue: newState.selectedValues[0]\n });\n }\n moveHighlight(null, 'reset', action.context);\n }\n if (selectionFollowsFocus && newState.highlightedValue != null) {\n return _extends({}, newState, {\n selectedValues: [newState.highlightedValue]\n });\n }\n return newState;\n}", "'use client';\n\nimport * as React from 'react';\nimport { ListContext } from '../useList/ListContext';\nimport { CompoundComponentContext } from '../useCompound';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying Tab components.\n *\n * @ignore - do not document.\n */\nexport function TabsListProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"children\", \"disabled\", \"onChange\", \"onClick\", \"onFocus\", \"slotProps\", \"slots\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getTabUtilityClass } from './tabClasses';\nimport { useTab } from '../useTab';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n selected,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', disabled && 'disabled']\n };\n return composeClasses(slots, useClassNamesOverride(getTabUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/)\n *\n * API:\n *\n * - [Tab API](https://mui.com/base-ui/react-tabs/components-api/#tab)\n */\nconst Tab = /*#__PURE__*/React.forwardRef(function Tab(props, forwardedRef) {\n var _slots$root;\n const {\n children,\n disabled = false,\n slotProps = {},\n slots = {},\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const tabRef = React.useRef();\n const handleRef = useForkRef(tabRef, forwardedRef);\n const {\n active,\n highlighted,\n selected,\n getRootProps\n } = useTab(_extends({}, props, {\n rootRef: handleRef,\n value\n }));\n const ownerState = _extends({}, props, {\n active,\n disabled,\n highlighted,\n selected\n });\n const classes = useUtilityClasses(ownerState);\n const TabRoot = (_slots$root = slots.root) != null ? _slots$root : 'button';\n const tabRootProps = useSlotProps({\n elementType: TabRoot,\n getSlotProps: getRootProps,\n externalSlotProps: slotProps.root,\n externalForwardedProps: other,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState,\n className: classes.root\n });\n return /*#__PURE__*/_jsx(TabRoot, _extends({}, tabRootProps, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A ref for imperative actions. It currently only supports `focusVisible()` action.\n */\n action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.shape({\n focusVisible: PropTypes.func.isRequired\n })\n })]),\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * Callback invoked when new value is being set.\n */\n onChange: PropTypes.func,\n /**\n * The props used for each slot inside the Tab.\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Tab.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * You can provide your own value. Otherwise, it falls back to the child position index.\n */\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport { Tab };", "import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Tab';\nexport function getTabUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const tabClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'selected', 'disabled']);", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useId as useId, unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { useTabsContext } from '../Tabs';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\nimport { useCompoundItem } from '../useCompound';\nimport { useListItem } from '../useList';\nimport { useButton } from '../useButton';\nimport { combineHooksSlotProps } from '../utils/combineHooksSlotProps';\nfunction tabValueGenerator(otherTabValues) {\n return otherTabValues.size;\n}\n\n/**\n *\n * Demos:\n *\n * - [Tabs](https://mui.com/base-ui/react-tabs/#hooks)\n *\n * API:\n *\n * - [useTab API](https://mui.com/base-ui/react-tabs/hooks-api/#use-tab)\n */\nfunction useTab(parameters) {\n const {\n value: valueParam,\n rootRef: externalRef,\n disabled = false,\n id: idParam\n } = parameters;\n const tabRef = React.useRef(null);\n const id = useId(idParam);\n const {\n value: selectedValue,\n selectionFollowsFocus,\n getTabPanelId\n } = useTabsContext();\n const tabMetadata = React.useMemo(() => ({\n disabled,\n ref: tabRef,\n id\n }), [disabled, tabRef, id]);\n const {\n id: value,\n index,\n totalItemCount: totalTabsCount\n } = useCompoundItem(valueParam != null ? valueParam : tabValueGenerator, tabMetadata);\n const {\n getRootProps: getTabProps,\n highlighted,\n selected\n } = useListItem({\n item: value\n });\n const {\n getRootProps: getButtonProps,\n rootRef: buttonRefHandler,\n active,\n focusVisible,\n setFocusVisible\n } = useButton({\n disabled,\n focusableWhenDisabled: !selectionFollowsFocus,\n type: 'button'\n });\n const handleRef = useForkRef(tabRef, externalRef, buttonRefHandler);\n const tabPanelId = value !== undefined ? getTabPanelId(value) : undefined;\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n const getCombinedRootProps = combineHooksSlotProps(getTabProps, getButtonProps);\n return _extends({}, externalProps, getCombinedRootProps(externalEventHandlers), {\n role: 'tab',\n 'aria-controls': tabPanelId,\n 'aria-selected': selected,\n id,\n ref: handleRef\n });\n };\n return {\n getRootProps,\n active,\n focusVisible,\n highlighted,\n index,\n rootRef: handleRef,\n // the `selected` state isn't set on the server (it relies on effects to be calculated),\n // so we fall back to checking the `value` prop with the selectedValue from the TabsContext\n selected: selected || value === selectedValue,\n setFocusVisible,\n totalTabsCount\n };\n}\nexport { useTab };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"enterAnimationName\", \"enterClassName\", \"exitAnimationName\", \"exitClassName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTransitionStateManager } from '../useTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/)\n *\n * API:\n *\n * - [CssAnimation API](https://mui.com/base-ui/react-transitions/components-api/#css-animation)\n */\nfunction CssAnimation(props) {\n const {\n children,\n className,\n enterAnimationName,\n enterClassName,\n exitAnimationName,\n exitClassName\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n requestedEnter,\n onExited\n } = useTransitionStateManager();\n const hasExited = React.useRef(true);\n React.useEffect(() => {\n if (requestedEnter && hasExited.current) {\n hasExited.current = false;\n }\n }, [requestedEnter]);\n const handleAnimationEnd = React.useCallback(event => {\n if (event.animationName === exitAnimationName) {\n onExited();\n hasExited.current = true;\n } else if (event.animationName === enterAnimationName) {\n hasExited.current = false;\n }\n }, [onExited, exitAnimationName, enterAnimationName]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n onAnimationEnd: handleAnimationEnd,\n className: clsx(className, requestedEnter ? enterClassName : exitClassName)\n }, other, {\n children: children\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? CssAnimation.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n enterAnimationName: PropTypes.string,\n enterClassName: PropTypes.string,\n exitAnimationName: PropTypes.string,\n exitClassName: PropTypes.string\n} : void 0;\nexport { CssAnimation };", "'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"lastTransitionedPropertyOnExit\", \"enterClassName\", \"exitClassName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { useTransitionStateManager } from '../useTransition';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A utility component that hooks up to the Base UI transitions API and\n * applies a CSS transition to its children when necessary.\n *\n * Demos:\n *\n * - [Transitions](https://mui.com/base-ui/react-transitions/)\n *\n * API:\n *\n * - [CssTransition API](https://mui.com/base-ui/react-transitions/components-api/#css-transition)\n */\nconst CssTransition = /*#__PURE__*/React.forwardRef(function CssTransition(props, forwardedRef) {\n const {\n children,\n className,\n lastTransitionedPropertyOnExit,\n enterClassName,\n exitClassName\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n requestedEnter,\n onExited\n } = useTransitionStateManager();\n const [isEntering, setIsEntering] = React.useState(false);\n\n // The `isEntering` state (which is used to determine the right CSS class to apply)\n // is updated slightly (one animation frame) after the `requestedEnter` state is updated.\n // Thanks to this, elements that are mounted will have their enter transition applied\n // (if the `enterClassName` was applied when the element was mounted, the transition would not be fired).\n React.useEffect(() => {\n if (requestedEnter) {\n requestAnimationFrame(() => {\n setIsEntering(true);\n });\n } else {\n setIsEntering(false);\n }\n }, [requestedEnter]);\n const handleTransitionEnd = React.useCallback(event => {\n if (!requestedEnter && (lastTransitionedPropertyOnExit == null || event.propertyName === lastTransitionedPropertyOnExit)) {\n onExited();\n }\n }, [onExited, requestedEnter, lastTransitionedPropertyOnExit]);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n onTransitionEnd: handleTransitionEnd,\n className: clsx(className, isEntering ? enterClassName : exitClassName)\n }, other, {\n ref: forwardedRef,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CssTransition.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n enterClassName: PropTypes.string,\n exitClassName: PropTypes.string,\n lastTransitionedPropertyOnEnter: PropTypes.string,\n lastTransitionedPropertyOnExit: PropTypes.string\n} : void 0;\nexport { CssTransition };", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport { inputBaseClasses } from '../InputBase';\nexport function getOutlinedInputUtilityClass(slot) {\n return generateUtilityClass('MuiOutlinedInput', slot);\n}\nconst outlinedInputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiOutlinedInput', ['root', 'notchedOutline', 'input']));\nexport default outlinedInputClasses;"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,YAAuB;AACvB,wBAAsB;AACtB;AAGA,yBAA4B;AAC5B,SAAS,oBAAoB,WAAW;AACtC,SAAO,UAAU,UAAU,CAAC,EAAE,YAAY;AAC5C;AACA,SAAS,qBAAqB,OAAO,KAAK;AACxC,SAAO,IAAI,gBAAgB,cAAc,MAAM,WAAW,IAAI,gBAAgB,eAAe,MAAM;AACrG;AAaA,SAAS,kBAAkB,OAAO;AAChC,QAAM;AAAA,IACJ;AAAA,IACA,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb;AAAA,IACA,aAAa;AAAA,EACf,IAAI;AACJ,QAAM,WAAiB,aAAO,KAAK;AACnC,QAAM,UAAgB,aAAO,IAAI;AACjC,QAAM,eAAqB,aAAO,KAAK;AACvC,QAAM,oBAA0B,aAAO,KAAK;AAC5C,EAAM,gBAAU,MAAM;AAGpB,eAAW,MAAM;AACf,mBAAa,UAAU;AAAA,IACzB,GAAG,CAAC;AACJ,WAAO,MAAM;AACX,mBAAa,UAAU;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,CAAC;AACL,QAAM,YAAY;AAAA;AAAA,IAElB,SAAS;AAAA,IAAK;AAAA,EAAO;AAQrB,QAAM,kBAAkB,yBAAiB,WAAS;AAGhD,UAAM,kBAAkB,kBAAkB;AAC1C,sBAAkB,UAAU;AAC5B,UAAM,MAAM,cAAc,QAAQ,OAAO;AAKzC,QAAI,CAAC,aAAa,WAAW,CAAC,QAAQ,WAAW,aAAa,SAAS,qBAAqB,OAAO,GAAG,GAAG;AACvG;AAAA,IACF;AAGA,QAAI,SAAS,SAAS;AACpB,eAAS,UAAU;AACnB;AAAA,IACF;AACA,QAAI;AAGJ,QAAI,MAAM,cAAc;AACtB,kBAAY,MAAM,aAAa,EAAE,QAAQ,QAAQ,OAAO,IAAI;AAAA,IAC9D,OAAO;AACL,kBAAY,CAAC,IAAI,gBAAgB;AAAA;AAAA,QAEjC,MAAM;AAAA,MAAM,KAAK,QAAQ,QAAQ;AAAA;AAAA,QAEjC,MAAM;AAAA,MAAM;AAAA,IACd;AACA,QAAI,CAAC,cAAc,oBAAoB,CAAC,kBAAkB;AACxD,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF,CAAC;AAGD,QAAM,wBAAwB,iBAAe,WAAS;AACpD,sBAAkB,UAAU;AAC5B,UAAM,uBAAuB,SAAS,MAAM,WAAW;AACvD,QAAI,sBAAsB;AACxB,2BAAqB,KAAK;AAAA,IAC5B;AAAA,EACF;AACA,QAAM,gBAAgB;AAAA,IACpB,KAAK;AAAA,EACP;AACA,MAAI,eAAe,OAAO;AACxB,kBAAc,UAAU,IAAI,sBAAsB,UAAU;AAAA,EAC9D;AACA,EAAM,gBAAU,MAAM;AACpB,QAAI,eAAe,OAAO;AACxB,YAAM,mBAAmB,oBAAoB,UAAU;AACvD,YAAM,MAAM,cAAc,QAAQ,OAAO;AACzC,YAAM,kBAAkB,MAAM;AAC5B,iBAAS,UAAU;AAAA,MACrB;AACA,UAAI,iBAAiB,kBAAkB,eAAe;AACtD,UAAI,iBAAiB,aAAa,eAAe;AACjD,aAAO,MAAM;AACX,YAAI,oBAAoB,kBAAkB,eAAe;AACzD,YAAI,oBAAoB,aAAa,eAAe;AAAA,MACtD;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,iBAAiB,UAAU,CAAC;AAChC,MAAI,eAAe,OAAO;AACxB,kBAAc,UAAU,IAAI,sBAAsB,UAAU;AAAA,EAC9D;AACA,EAAM,gBAAU,MAAM;AACpB,QAAI,eAAe,OAAO;AACxB,YAAM,mBAAmB,oBAAoB,UAAU;AACvD,YAAM,MAAM,cAAc,QAAQ,OAAO;AACzC,UAAI,iBAAiB,kBAAkB,eAAe;AACtD,aAAO,MAAM;AACX,YAAI,oBAAoB,kBAAkB,eAAe;AAAA,MAC3D;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,iBAAiB,UAAU,CAAC;AAChC,aAAoB,mBAAAA,KAAW,gBAAU;AAAA,IACvC,UAA6B,mBAAa,UAAU,aAAa;AAAA,EACnE,CAAC;AACH;AACA,OAAwC,kBAAkB,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3F,UAAU,4BAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9B,kBAAkB,kBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK5B,YAAY,kBAAAA,QAAU,MAAM,CAAC,WAAW,eAAe,aAAa,iBAAiB,eAAe,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,EAI1G,aAAa,kBAAAA,QAAU,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAK5B,YAAY,kBAAAA,QAAU,MAAM,CAAC,cAAc,gBAAgB,KAAK,CAAC;AACnE,IAAI;AACJ,IAAI,MAAuC;AAEzC,oBAAkB,WAAgB,IAAI,UAAU,kBAAkB,SAAS;AAC7E;;;AC5KA,IAAAC,SAAuB;AACvB,IAAAC,qBAAsB;AACtB;AACA,IAAAC,sBAA4B;AAC5B,IAAAA,sBAA8B;AAE9B,IAAM,qBAAqB,CAAC,SAAS,UAAU,YAAY,WAAW,UAAU,cAAc,mBAAmB,mBAAmB,kDAAkD,EAAE,KAAK,GAAG;AAChM,SAAS,YAAY,MAAM;AACzB,QAAM,eAAe,SAAS,KAAK,aAAa,UAAU,KAAK,IAAI,EAAE;AACrE,MAAI,CAAC,OAAO,MAAM,YAAY,GAAG;AAC/B,WAAO;AAAA,EACT;AAUA,MAAI,KAAK,oBAAoB,WAAW,KAAK,aAAa,WAAW,KAAK,aAAa,WAAW,KAAK,aAAa,cAAc,KAAK,aAAa,UAAU,MAAM,MAAM;AACxK,WAAO;AAAA,EACT;AACA,SAAO,KAAK;AACd;AACA,SAAS,mBAAmB,MAAM;AAChC,MAAI,KAAK,YAAY,WAAW,KAAK,SAAS,SAAS;AACrD,WAAO;AAAA,EACT;AACA,MAAI,CAAC,KAAK,MAAM;AACd,WAAO;AAAA,EACT;AACA,QAAM,WAAW,cAAY,KAAK,cAAc,cAAc,sBAAsB,QAAQ,EAAE;AAC9F,MAAI,SAAS,SAAS,UAAU,KAAK,IAAI,YAAY;AACrD,MAAI,CAAC,QAAQ;AACX,aAAS,SAAS,UAAU,KAAK,IAAI,IAAI;AAAA,EAC3C;AACA,SAAO,WAAW;AACpB;AACA,SAAS,gCAAgC,MAAM;AAC7C,MAAI,KAAK,YAAY,KAAK,YAAY,WAAW,KAAK,SAAS,YAAY,mBAAmB,IAAI,GAAG;AACnG,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,SAAS,mBAAmB,MAAM;AAChC,QAAM,kBAAkB,CAAC;AACzB,QAAM,kBAAkB,CAAC;AACzB,QAAM,KAAK,KAAK,iBAAiB,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,MAAM;AACzE,UAAM,eAAe,YAAY,IAAI;AACrC,QAAI,iBAAiB,MAAM,CAAC,gCAAgC,IAAI,GAAG;AACjE;AAAA,IACF;AACA,QAAI,iBAAiB,GAAG;AACtB,sBAAgB,KAAK,IAAI;AAAA,IAC3B,OAAO;AACL,sBAAgB,KAAK;AAAA,QACnB,eAAe;AAAA,QACf,UAAU;AAAA,QACV;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,SAAO,gBAAgB,KAAK,CAAC,GAAG,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,OAAK,EAAE,IAAI,EAAE,OAAO,eAAe;AACxK;AACA,SAAS,mBAAmB;AAC1B,SAAO;AACT;AAaA,SAAS,UAAU,OAAO;AACxB,QAAM;AAAA,IACJ;AAAA,IACA,mBAAmB;AAAA,IACnB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,cAAc;AAAA,IACd,YAAY;AAAA,IACZ;AAAA,EACF,IAAI;AACJ,QAAM,yBAA+B,cAAO,KAAK;AACjD,QAAM,gBAAsB,cAAO,IAAI;AACvC,QAAM,cAAoB,cAAO,IAAI;AACrC,QAAM,gBAAsB,cAAO,IAAI;AACvC,QAAM,wBAA8B,cAAO,IAAI;AAG/C,QAAM,YAAkB,cAAO,KAAK;AACpC,QAAM,UAAgB,cAAO,IAAI;AAEjC,QAAM,YAAY,WAAW,SAAS,KAAK,OAAO;AAClD,QAAM,cAAoB,cAAO,IAAI;AACrC,EAAM,iBAAU,MAAM;AAEpB,QAAI,CAAC,QAAQ,CAAC,QAAQ,SAAS;AAC7B;AAAA,IACF;AACA,cAAU,UAAU,CAAC;AAAA,EACvB,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAC3B,EAAM,iBAAU,MAAM;AAEpB,QAAI,CAAC,QAAQ,CAAC,QAAQ,SAAS;AAC7B;AAAA,IACF;AACA,UAAM,MAAM,cAAc,QAAQ,OAAO;AACzC,QAAI,CAAC,QAAQ,QAAQ,SAAS,IAAI,aAAa,GAAG;AAChD,UAAI,CAAC,QAAQ,QAAQ,aAAa,UAAU,GAAG;AAC7C,YAAI,MAAuC;AACzC,kBAAQ,MAAM,CAAC,sDAAsD,2FAAgG,EAAE,KAAK,IAAI,CAAC;AAAA,QACnL;AACA,gBAAQ,QAAQ,aAAa,YAAY,IAAI;AAAA,MAC/C;AACA,UAAI,UAAU,SAAS;AACrB,gBAAQ,QAAQ,MAAM;AAAA,MACxB;AAAA,IACF;AACA,WAAO,MAAM;AAEX,UAAI,CAAC,qBAAqB;AAKxB,YAAI,cAAc,WAAW,cAAc,QAAQ,OAAO;AACxD,iCAAuB,UAAU;AACjC,wBAAc,QAAQ,MAAM;AAAA,QAC9B;AACA,sBAAc,UAAU;AAAA,MAC1B;AAAA,IACF;AAAA,EAIF,GAAG,CAAC,IAAI,CAAC;AACT,EAAM,iBAAU,MAAM;AAEpB,QAAI,CAAC,QAAQ,CAAC,QAAQ,SAAS;AAC7B;AAAA,IACF;AACA,UAAM,MAAM,cAAc,QAAQ,OAAO;AACzC,UAAM,YAAY,iBAAe;AAC/B,kBAAY,UAAU;AACtB,UAAI,uBAAuB,CAAC,UAAU,KAAK,YAAY,QAAQ,OAAO;AACpE;AAAA,MACF;AAIA,UAAI,IAAI,kBAAkB,QAAQ,WAAW,YAAY,UAAU;AAGjE,+BAAuB,UAAU;AACjC,YAAI,YAAY,SAAS;AACvB,sBAAY,QAAQ,MAAM;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AACA,UAAM,UAAU,MAAM;AACpB,YAAM,cAAc,QAAQ;AAI5B,UAAI,gBAAgB,MAAM;AACxB;AAAA,MACF;AACA,UAAI,CAAC,IAAI,SAAS,KAAK,CAAC,UAAU,KAAK,uBAAuB,SAAS;AACrE,+BAAuB,UAAU;AACjC;AAAA,MACF;AAGA,UAAI,YAAY,SAAS,IAAI,aAAa,GAAG;AAC3C;AAAA,MACF;AAGA,UAAI,uBAAuB,IAAI,kBAAkB,cAAc,WAAW,IAAI,kBAAkB,YAAY,SAAS;AACnH;AAAA,MACF;AAGA,UAAI,IAAI,kBAAkB,sBAAsB,SAAS;AACvD,8BAAsB,UAAU;AAAA,MAClC,WAAW,sBAAsB,YAAY,MAAM;AACjD;AAAA,MACF;AACA,UAAI,CAAC,UAAU,SAAS;AACtB;AAAA,MACF;AACA,UAAI,WAAW,CAAC;AAChB,UAAI,IAAI,kBAAkB,cAAc,WAAW,IAAI,kBAAkB,YAAY,SAAS;AAC5F,mBAAW,YAAY,QAAQ,OAAO;AAAA,MACxC;AAIA,UAAI,SAAS,SAAS,GAAG;AACvB,YAAI,sBAAsB;AAC1B,cAAM,aAAa,UAAU,uBAAuB,YAAY,YAAY,OAAO,SAAS,qBAAqB,eAAe,wBAAwB,YAAY,YAAY,OAAO,SAAS,sBAAsB,SAAS,KAAK;AACpO,cAAM,YAAY,SAAS,CAAC;AAC5B,cAAM,gBAAgB,SAAS,SAAS,SAAS,CAAC;AAClD,YAAI,OAAO,cAAc,YAAY,OAAO,kBAAkB,UAAU;AACtE,cAAI,YAAY;AACd,0BAAc,MAAM;AAAA,UACtB,OAAO;AACL,sBAAU,MAAM;AAAA,UAClB;AAAA,QACF;AAAA,MAEF,OAAO;AACL,oBAAY,MAAM;AAAA,MACpB;AAAA,IACF;AACA,QAAI,iBAAiB,WAAW,OAAO;AACvC,QAAI,iBAAiB,WAAW,WAAW,IAAI;AAQ/C,UAAM,WAAW,YAAY,MAAM;AACjC,UAAI,IAAI,iBAAiB,IAAI,cAAc,YAAY,QAAQ;AAC7D,gBAAQ;AAAA,MACV;AAAA,IACF,GAAG,EAAE;AACL,WAAO,MAAM;AACX,oBAAc,QAAQ;AACtB,UAAI,oBAAoB,WAAW,OAAO;AAC1C,UAAI,oBAAoB,WAAW,WAAW,IAAI;AAAA,IACpD;AAAA,EACF,GAAG,CAAC,kBAAkB,qBAAqB,qBAAqB,WAAW,MAAM,WAAW,CAAC;AAC7F,QAAM,UAAU,WAAS;AACvB,QAAI,cAAc,YAAY,MAAM;AAClC,oBAAc,UAAU,MAAM;AAAA,IAChC;AACA,cAAU,UAAU;AACpB,0BAAsB,UAAU,MAAM;AACtC,UAAM,uBAAuB,SAAS,MAAM;AAC5C,QAAI,sBAAsB;AACxB,2BAAqB,KAAK;AAAA,IAC5B;AAAA,EACF;AACA,QAAM,sBAAsB,WAAS;AACnC,QAAI,cAAc,YAAY,MAAM;AAClC,oBAAc,UAAU,MAAM;AAAA,IAChC;AACA,cAAU,UAAU;AAAA,EACtB;AACA,aAAoB,oBAAAC,MAAY,iBAAU;AAAA,IACxC,UAAU,KAAc,oBAAAC,KAAK,OAAO;AAAA,MAClC,UAAU,OAAO,IAAI;AAAA,MACrB,SAAS;AAAA,MACT,KAAK;AAAA,MACL,eAAe;AAAA,IACjB,CAAC,GAAsB,oBAAa,UAAU;AAAA,MAC5C,KAAK;AAAA,MACL;AAAA,IACF,CAAC,OAAgB,oBAAAA,KAAK,OAAO;AAAA,MAC3B,UAAU,OAAO,IAAI;AAAA,MACrB,SAAS;AAAA,MACT,KAAK;AAAA,MACL,eAAe;AAAA,IACjB,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,OAAwC,UAAU,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUV,kBAAkB,mBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5B,qBAAqB,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,qBAAqB,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,aAAa,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUvB,WAAW,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,MAAM,mBAAAA,QAAU,KAAK;AACvB,IAAI;AACJ,IAAI,MAAuC;AAEzC,YAAU,WAAgB,IAAI,UAAU,UAAU,SAAS;AAC7D;;;AClVA;AAEA,SAAS,cAAc,WAAW;AAChC,QAAM,MAAM,cAAc,SAAS;AACnC,MAAI,IAAI,SAAS,WAAW;AAC1B,WAAO,YAAY,SAAS,EAAE,aAAa,IAAI,gBAAgB;AAAA,EACjE;AACA,SAAO,UAAU,eAAe,UAAU;AAC5C;AACO,SAAS,WAAW,SAAS,MAAM;AACxC,MAAI,MAAM;AACR,YAAQ,aAAa,eAAe,MAAM;AAAA,EAC5C,OAAO;AACL,YAAQ,gBAAgB,aAAa;AAAA,EACvC;AACF;AACA,SAAS,gBAAgB,SAAS;AAChC,SAAO,SAAS,YAAY,OAAO,EAAE,iBAAiB,OAAO,EAAE,cAAc,EAAE,KAAK;AACtF;AACA,SAAS,+BAA+B,SAAS;AAI/C,QAAM,oBAAoB,CAAC,YAAY,UAAU,SAAS,QAAQ,OAAO,QAAQ,YAAY,WAAW,OAAO,YAAY,SAAS,QAAQ,UAAU,OAAO;AAC7J,QAAM,qBAAqB,kBAAkB,QAAQ,QAAQ,OAAO,MAAM;AAC1E,QAAM,gBAAgB,QAAQ,YAAY,WAAW,QAAQ,aAAa,MAAM,MAAM;AACtF,SAAO,sBAAsB;AAC/B;AACA,SAAS,mBAAmB,WAAW,cAAc,gBAAgB,mBAAmB,MAAM;AAC5F,QAAM,YAAY,CAAC,cAAc,gBAAgB,GAAG,iBAAiB;AACrE,GAAC,EAAE,QAAQ,KAAK,UAAU,UAAU,aAAW;AAC7C,UAAM,uBAAuB,UAAU,QAAQ,OAAO,MAAM;AAC5D,UAAM,wBAAwB,CAAC,+BAA+B,OAAO;AACrE,QAAI,wBAAwB,uBAAuB;AACjD,iBAAW,SAAS,IAAI;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;AACA,SAAS,YAAY,OAAO,UAAU;AACpC,MAAI,MAAM;AACV,QAAM,KAAK,CAAC,MAAMC,WAAU;AAC1B,QAAI,SAAS,IAAI,GAAG;AAClB,YAAMA;AACN,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,CAAC;AACD,SAAO;AACT;AACA,SAAS,gBAAgB,eAAe,OAAO;AAC7C,QAAM,eAAe,CAAC;AACtB,QAAM,YAAY,cAAc;AAChC,MAAI,CAAC,MAAM,mBAAmB;AAC5B,QAAI,cAAc,SAAS,GAAG;AAE5B,YAAM,gBAAgB,iBAAiB,cAAc,SAAS,CAAC;AAC/D,mBAAa,KAAK;AAAA,QAChB,OAAO,UAAU,MAAM;AAAA,QACvB,UAAU;AAAA,QACV,IAAI;AAAA,MACN,CAAC;AAED,gBAAU,MAAM,eAAe,GAAG,gBAAgB,SAAS,IAAI,aAAa;AAG5E,YAAM,gBAAgB,cAAc,SAAS,EAAE,iBAAiB,YAAY;AAC5E,OAAC,EAAE,QAAQ,KAAK,eAAe,aAAW;AACxC,qBAAa,KAAK;AAAA,UAChB,OAAO,QAAQ,MAAM;AAAA,UACrB,UAAU;AAAA,UACV,IAAI;AAAA,QACN,CAAC;AACD,gBAAQ,MAAM,eAAe,GAAG,gBAAgB,OAAO,IAAI,aAAa;AAAA,MAC1E,CAAC;AAAA,IACH;AACA,QAAI;AACJ,QAAI,UAAU,sBAAsB,kBAAkB;AACpD,wBAAkB,cAAc,SAAS,EAAE;AAAA,IAC7C,OAAO;AAGL,YAAM,SAAS,UAAU;AACzB,YAAM,kBAAkB,YAAY,SAAS;AAC7C,yBAAmB,UAAU,OAAO,SAAS,OAAO,cAAc,UAAU,gBAAgB,iBAAiB,MAAM,EAAE,cAAc,WAAW,SAAS;AAAA,IACzJ;AAIA,iBAAa,KAAK;AAAA,MAChB,OAAO,gBAAgB,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,IAAI;AAAA,IACN,GAAG;AAAA,MACD,OAAO,gBAAgB,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,IAAI;AAAA,IACN,GAAG;AAAA,MACD,OAAO,gBAAgB,MAAM;AAAA,MAC7B,UAAU;AAAA,MACV,IAAI;AAAA,IACN,CAAC;AACD,oBAAgB,MAAM,WAAW;AAAA,EACnC;AACA,QAAM,UAAU,MAAM;AACpB,iBAAa,QAAQ,CAAC;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAAM;AACJ,UAAI,OAAO;AACT,WAAG,MAAM,YAAY,UAAU,KAAK;AAAA,MACtC,OAAO;AACL,WAAG,MAAM,eAAe,QAAQ;AAAA,MAClC;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;AACA,SAAS,kBAAkB,WAAW;AACpC,QAAM,iBAAiB,CAAC;AACxB,GAAC,EAAE,QAAQ,KAAK,UAAU,UAAU,aAAW;AAC7C,QAAI,QAAQ,aAAa,aAAa,MAAM,QAAQ;AAClD,qBAAe,KAAK,OAAO;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAQO,IAAM,eAAN,MAAmB;AAAA,EACxB,cAAc;AACZ,SAAK,aAAa;AAClB,SAAK,SAAS;AACd,SAAK,SAAS,CAAC;AACf,SAAK,aAAa,CAAC;AAAA,EACrB;AAAA,EACA,IAAI,OAAO,WAAW;AACpB,QAAI,aAAa,KAAK,OAAO,QAAQ,KAAK;AAC1C,QAAI,eAAe,IAAI;AACrB,aAAO;AAAA,IACT;AACA,iBAAa,KAAK,OAAO;AACzB,SAAK,OAAO,KAAK,KAAK;AAGtB,QAAI,MAAM,UAAU;AAClB,iBAAW,MAAM,UAAU,KAAK;AAAA,IAClC;AACA,UAAM,iBAAiB,kBAAkB,SAAS;AAClD,uBAAmB,WAAW,MAAM,OAAO,MAAM,UAAU,gBAAgB,IAAI;AAC/E,UAAM,iBAAiB,YAAY,KAAK,YAAY,UAAQ,KAAK,cAAc,SAAS;AACxF,QAAI,mBAAmB,IAAI;AACzB,WAAK,WAAW,cAAc,EAAE,OAAO,KAAK,KAAK;AACjD,aAAO;AAAA,IACT;AACA,SAAK,WAAW,KAAK;AAAA,MACnB,QAAQ,CAAC,KAAK;AAAA,MACd;AAAA,MACA,SAAS;AAAA,MACT;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EACA,MAAM,OAAO,OAAO;AAClB,UAAM,iBAAiB,YAAY,KAAK,YAAY,UAAQ,KAAK,OAAO,QAAQ,KAAK,MAAM,EAAE;AAC7F,UAAM,gBAAgB,KAAK,WAAW,cAAc;AACpD,QAAI,CAAC,cAAc,SAAS;AAC1B,oBAAc,UAAU,gBAAgB,eAAe,KAAK;AAAA,IAC9D;AAAA,EACF;AAAA,EACA,OAAO,OAAO,kBAAkB,MAAM;AACpC,UAAM,aAAa,KAAK,OAAO,QAAQ,KAAK;AAC5C,QAAI,eAAe,IAAI;AACrB,aAAO;AAAA,IACT;AACA,UAAM,iBAAiB,YAAY,KAAK,YAAY,UAAQ,KAAK,OAAO,QAAQ,KAAK,MAAM,EAAE;AAC7F,UAAM,gBAAgB,KAAK,WAAW,cAAc;AACpD,kBAAc,OAAO,OAAO,cAAc,OAAO,QAAQ,KAAK,GAAG,CAAC;AAClE,SAAK,OAAO,OAAO,YAAY,CAAC;AAGhC,QAAI,cAAc,OAAO,WAAW,GAAG;AAErC,UAAI,cAAc,SAAS;AACzB,sBAAc,QAAQ;AAAA,MACxB;AACA,UAAI,MAAM,UAAU;AAElB,mBAAW,MAAM,UAAU,eAAe;AAAA,MAC5C;AACA,yBAAmB,cAAc,WAAW,MAAM,OAAO,MAAM,UAAU,cAAc,gBAAgB,KAAK;AAC5G,WAAK,WAAW,OAAO,gBAAgB,CAAC;AAAA,IAC1C,OAAO;AAEL,YAAM,UAAU,cAAc,OAAO,cAAc,OAAO,SAAS,CAAC;AAIpE,UAAI,QAAQ,UAAU;AACpB,mBAAW,QAAQ,UAAU,KAAK;AAAA,MACpC;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EACA,WAAW,OAAO;AAChB,WAAO,KAAK,OAAO,SAAS,KAAK,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC,MAAM;AAAA,EAC3E;AACF;;;AClNA,IAAAC,SAAuB;AACvB,IAAAC,qBAAsB;AACtB;AACA,IAAAC,sBAA4B;AAmB5B,SAAS,MAAM,OAAO;AACpB,QAAM;AAAA,IACJ;AAAA,IACA,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,IAAI;AACJ,QAAM,CAAC,cAAc,eAAe,IAAU,gBAAS,KAAK;AAC5D,4BAAkB,MAAM;AACtB,QAAI,CAAC,OAAO;AACV,sBAAgB,IAAI;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AACV,EAAM,iBAAU,MAAM;AACpB,QAAI,OAAO;AACT,sBAAgB,IAAI;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAGV,aAAoB,oBAAAC,KAAW,iBAAU;AAAA,IACvC,UAAU,eAAe,WAAW;AAAA,EACtC,CAAC;AACH;AACA,OAAwC,MAAM,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/E,UAAU,mBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB,OAAO,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,UAAU,mBAAAA,QAAU;AACtB,IAAI;AACJ,IAAI,MAAuC;AAEzC,QAAM,WAAgB,IAAI,UAAU,MAAM,SAAS;AACrD;;;ACrEA;AACA;AAEA,IAAAC,SAAuB;AACvB,IAAAC,qBAAsB;AACtB;AACA,IAAAC,sBAA4B;AAC5B,IAAAA,sBAA8B;AAL9B,IAAM,YAAY,CAAC,YAAY,WAAW,WAAW,SAAS,OAAO;AAMrE,SAAS,cAAc,OAAO;AAC5B,SAAO,SAAS,OAAO,EAAE,KAAK;AAChC;AACA,IAAM,SAAS;AAAA,EACb,QAAQ;AAAA;AAAA,IAEN,YAAY;AAAA;AAAA,IAEZ,UAAU;AAAA;AAAA,IAEV,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,MAAM;AAAA;AAAA,IAEN,WAAW;AAAA,EACb;AACF;AACA,SAAS,QAAQ,KAAK;AACpB,SAAO,QAAQ,UAAa,QAAQ,QAAQ,OAAO,KAAK,GAAG,EAAE,WAAW,KAAK,IAAI,qBAAqB,KAAK,CAAC,IAAI;AAClH;AAaA,IAAM,mBAAsC,kBAAW,SAASC,kBAAiB,OAAO,cAAc;AACpG,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACF,IAAI,OACJ,QAAQ,8BAA8B,OAAO,SAAS;AACxD,QAAM;AAAA,IACJ,SAAS;AAAA,EACX,IAAU,cAAO,SAAS,IAAI;AAC9B,QAAM,WAAiB,cAAO,IAAI;AAClC,QAAM,YAAY,WAAW,cAAc,QAAQ;AACnD,QAAM,YAAkB,cAAO,IAAI;AACnC,QAAM,0BAAgC,mBAAY,MAAM;AACtD,UAAM,QAAQ,SAAS;AACvB,UAAM,kBAAkB,YAAY,KAAK;AACzC,UAAM,gBAAgB,gBAAgB,iBAAiB,KAAK;AAG5D,QAAI,cAAc,UAAU,OAAO;AACjC,aAAO;AAAA,QACL,kBAAkB;AAAA,QAClB,aAAa;AAAA,MACf;AAAA,IACF;AACA,UAAM,eAAe,UAAU;AAC/B,iBAAa,MAAM,QAAQ,cAAc;AACzC,iBAAa,QAAQ,MAAM,SAAS,MAAM,eAAe;AACzD,QAAI,aAAa,MAAM,MAAM,EAAE,MAAM,MAAM;AAIzC,mBAAa,SAAS;AAAA,IACxB;AACA,UAAM,YAAY,cAAc;AAChC,UAAM,UAAU,cAAc,cAAc,aAAa,IAAI,cAAc,cAAc,UAAU;AACnG,UAAM,SAAS,cAAc,cAAc,iBAAiB,IAAI,cAAc,cAAc,cAAc;AAG1G,UAAM,cAAc,aAAa;AAGjC,iBAAa,QAAQ;AACrB,UAAM,kBAAkB,aAAa;AAGrC,QAAI,cAAc;AAClB,QAAI,SAAS;AACX,oBAAc,KAAK,IAAI,OAAO,OAAO,IAAI,iBAAiB,WAAW;AAAA,IACvE;AACA,QAAI,SAAS;AACX,oBAAc,KAAK,IAAI,OAAO,OAAO,IAAI,iBAAiB,WAAW;AAAA,IACvE;AACA,kBAAc,KAAK,IAAI,aAAa,eAAe;AAGnD,UAAM,mBAAmB,eAAe,cAAc,eAAe,UAAU,SAAS;AACxF,UAAM,cAAc,KAAK,IAAI,cAAc,WAAW,KAAK;AAC3D,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,SAAS,MAAM,WAAW,CAAC;AACxC,QAAM,aAAmB,mBAAY,MAAM;AACzC,UAAM,iBAAiB,wBAAwB;AAC/C,QAAI,QAAQ,cAAc,GAAG;AAC3B;AAAA,IACF;AACA,UAAM,QAAQ,SAAS;AACvB,UAAM,MAAM,SAAS,GAAG,eAAe,gBAAgB;AACvD,UAAM,MAAM,WAAW,eAAe,cAAc,WAAW;AAAA,EACjE,GAAG,CAAC,uBAAuB,CAAC;AAC5B,4BAAkB,MAAM;AACtB,UAAM,eAAe,MAAM;AACzB,iBAAW;AAAA,IACb;AAKA,QAAI;AACJ,UAAM,kBAAkB,MAAM;AAC5B,2BAAqB,GAAG;AACxB,YAAM,sBAAsB,MAAM;AAChC,qBAAa;AAAA,MACf,CAAC;AAAA,IACH;AACA,UAAM,uBAAuB,SAAS,YAAY;AAClD,UAAM,QAAQ,SAAS;AACvB,UAAM,kBAAkB,YAAY,KAAK;AACzC,oBAAgB,iBAAiB,UAAU,oBAAoB;AAC/D,QAAI;AACJ,QAAI,OAAO,mBAAmB,aAAa;AACzC,uBAAiB,IAAI,eAAe,QAAkC,kBAAkB,YAAY;AACpG,qBAAe,QAAQ,KAAK;AAAA,IAC9B;AACA,WAAO,MAAM;AACX,2BAAqB,MAAM;AAC3B,2BAAqB,GAAG;AACxB,sBAAgB,oBAAoB,UAAU,oBAAoB;AAClE,UAAI,gBAAgB;AAClB,uBAAe,WAAW;AAAA,MAC5B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,yBAAyB,UAAU,CAAC;AACxC,4BAAkB,MAAM;AACtB,eAAW;AAAA,EACb,CAAC;AACD,QAAM,eAAe,WAAS;AAC5B,QAAI,CAAC,cAAc;AACjB,iBAAW;AAAA,IACb;AACA,QAAI,UAAU;AACZ,eAAS,KAAK;AAAA,IAChB;AAAA,EACF;AACA,aAAoB,oBAAAC,MAAY,iBAAU;AAAA,IACxC,UAAU,KAAc,oBAAAC,KAAK,YAAY,SAAS;AAAA,MAChD;AAAA,MACA,UAAU;AAAA,MACV,KAAK;AAAA,MAGL,MAAM;AAAA,MACN;AAAA,IACF,GAAG,KAAK,CAAC,OAAgB,oBAAAA,KAAK,YAAY;AAAA,MACxC,eAAe;AAAA,MACf,WAAW,MAAM;AAAA,MACjB,UAAU;AAAA,MACV,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,SAAS,CAAC,GAAG,OAAO,QAAQ,OAAO;AAAA,QACxC,YAAY;AAAA,QACZ,eAAe;AAAA,MACjB,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH,CAAC;AACD,OAAwC,iBAAiB,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1F,WAAW,mBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,SAAS,mBAAAA,QAAU,UAAU,CAAC,mBAAAA,QAAU,QAAQ,mBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjE,SAAS,mBAAAA,QAAU,UAAU,CAAC,mBAAAA,QAAU,QAAQ,mBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,EAIjE,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,aAAa,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIvB,OAAO,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIjB,OAAO,mBAAAA,QAAU,UAAU,CAAC,mBAAAA,QAAU,QAAQ,mBAAAA,QAAU,MAAM,GAAG,mBAAAA,QAAU,QAAQ,mBAAAA,QAAU,MAAM,CAAC;AACtG,IAAI;;;ACtNJ;AACA,IAAAC,SAAuB;AACvB;AAIA,SAAS,gBAAgB,QAAQ;AAC/B,SAAO,OAAO,OAAO,cAAc,cAAc,OAAO,UAAU,KAAK,EAAE,QAAQ,oBAAoB,EAAE,IAAI;AAC7G;AACO,SAAS,oBAAoB,SAAS,CAAC,GAAG;AAC/C,QAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,OAAO;AAAA,EACT,IAAI;AACJ,SAAO,CAAC,SAAS;AAAA,IACf;AAAA,IACA;AAAA,EACF,MAAM;AACJ,QAAI,QAAQ,OAAO,WAAW,KAAK,IAAI;AACvC,QAAI,YAAY;AACd,cAAQ,MAAM,YAAY;AAAA,IAC5B;AACA,QAAI,eAAe;AACjB,cAAQ,gBAAgB,KAAK;AAAA,IAC/B;AACA,UAAM,kBAAkB,CAAC,QAAQ,UAAU,QAAQ,OAAO,YAAU;AAClE,UAAI,aAAa,aAAa,gBAAgB,MAAM;AACpD,UAAI,YAAY;AACd,oBAAY,UAAU,YAAY;AAAA,MACpC;AACA,UAAI,eAAe;AACjB,oBAAY,gBAAgB,SAAS;AAAA,MACvC;AACA,aAAO,cAAc,UAAU,UAAU,QAAQ,KAAK,MAAM,IAAI,UAAU,QAAQ,KAAK,IAAI;AAAA,IAC7F,CAAC;AACD,WAAO,OAAO,UAAU,WAAW,gBAAgB,MAAM,GAAG,KAAK,IAAI;AAAA,EACvE;AACF;AAGA,SAAS,UAAU,OAAO,MAAM;AAC9B,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;AACxC,QAAI,KAAK,MAAM,CAAC,CAAC,GAAG;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AACA,IAAM,uBAAuB,oBAAoB;AAGjD,IAAM,WAAW;AACjB,IAAM,kCAAkC,gBAAc;AACpD,MAAI;AACJ,SAAO,WAAW,YAAY,UAAU,wBAAwB,WAAW,QAAQ,kBAAkB,OAAO,SAAS,sBAAsB,SAAS,SAAS,aAAa;AAC5K;AACO,SAAS,gBAAgB,OAAO;AACrC,QAAM;AAAA;AAAA,IAEJ,oCAAoC;AAAA;AAAA,IAEpC,2BAA2B;AAAA,IAC3B,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,cAAc,CAAC,MAAM;AAAA,IACrB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,eAAe,MAAM,WAAW,CAAC,IAAI;AAAA,IACrC,mBAAmB;AAAA,IACnB,uBAAuB;AAAA,IACvB,UAAU;AAAA,IACV,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,gBAAgB,qBAAqB,YAAU;AAC7C,UAAI;AACJ,cAAQ,gBAAgB,OAAO,UAAU,OAAO,gBAAgB;AAAA,IAClE;AAAA,IACA;AAAA,IACA,oBAAoB,CAAC,MAAM;AAAA,IAC3B,IAAI;AAAA,IACJ,qBAAqB;AAAA,IACrB,YAAY;AAAA,IACZ,uBAAuB,CAAC,QAAQC,WAAU,WAAWA;AAAA,IACrD,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,cAAc;AAAA,IACd;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB,CAAC,MAAM;AAAA,IACvB,OAAO;AAAA,EACT,IAAI;AACJ,QAAM,KAAK,MAAM,MAAM;AACvB,MAAI,iBAAiB;AACrB,mBAAiB,YAAU;AACzB,UAAM,cAAc,mBAAmB,MAAM;AAC7C,QAAI,OAAO,gBAAgB,UAAU;AACnC,UAAI,MAAuC;AACzC,cAAM,kBAAkB,gBAAgB,SAAY,cAAc,GAAG,OAAO,WAAW,KAAK,WAAW;AACvG,gBAAQ,MAAM,yCAAyC,aAAa,aAAa,eAAe,4BAA4B,KAAK,UAAU,MAAM,CAAC,GAAG;AAAA,MACvJ;AACA,aAAO,OAAO,WAAW;AAAA,IAC3B;AACA,WAAO;AAAA,EACT;AACA,QAAM,cAAoB,cAAO,KAAK;AACtC,QAAM,aAAmB,cAAO,IAAI;AACpC,QAAM,WAAiB,cAAO,IAAI;AAClC,QAAM,aAAmB,cAAO,IAAI;AACpC,QAAM,CAAC,UAAU,WAAW,IAAU,gBAAS,IAAI;AACnD,QAAM,CAAC,YAAY,aAAa,IAAU,gBAAS,EAAE;AACrD,QAAM,qBAAqB,gBAAgB,IAAI;AAC/C,QAAM,sBAA4B,cAAO,kBAAkB;AAC3D,QAAM,CAAC,OAAO,aAAa,IAAI,cAAc;AAAA,IAC3C,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM;AAAA,EACR,CAAC;AACD,QAAM,CAAC,YAAY,kBAAkB,IAAI,cAAc;AAAA,IACrD,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACT,CAAC;AACD,QAAM,CAAC,SAAS,UAAU,IAAU,gBAAS,KAAK;AAClD,QAAM,kBAAwB,mBAAY,CAAC,OAAO,aAAa;AAG7D,UAAM,mBAAmB,WAAW,MAAM,SAAS,SAAS,SAAS,aAAa;AAClF,QAAI,CAAC,oBAAoB,CAAC,aAAa;AACrC;AAAA,IACF;AACA,QAAI;AACJ,QAAI,UAAU;AACZ,sBAAgB;AAAA,IAClB,WAAW,YAAY,MAAM;AAC3B,sBAAgB;AAAA,IAClB,OAAO;AACL,YAAM,cAAc,eAAe,QAAQ;AAC3C,sBAAgB,OAAO,gBAAgB,WAAW,cAAc;AAAA,IAClE;AACA,QAAI,eAAe,eAAe;AAChC;AAAA,IACF;AACA,uBAAmB,aAAa;AAChC,QAAI,eAAe;AACjB,oBAAc,OAAO,eAAe,OAAO;AAAA,IAC7C;AAAA,EACF,GAAG,CAAC,gBAAgB,YAAY,UAAU,eAAe,oBAAoB,aAAa,KAAK,CAAC;AAChG,QAAM,CAAC,MAAM,YAAY,IAAI,cAAc;AAAA,IACzC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACT,CAAC;AACD,QAAM,CAAC,eAAe,gBAAgB,IAAU,gBAAS,IAAI;AAC7D,QAAM,4BAA4B,CAAC,YAAY,SAAS,QAAQ,eAAe,eAAe,KAAK;AACnG,QAAM,YAAY,QAAQ,CAAC;AAC3B,QAAM,kBAAkB,YAAY;AAAA,IAAc,QAAQ,OAAO,YAAU;AACzE,UAAI,0BAA0B,WAAW,QAAQ,CAAC,KAAK,GAAG,KAAK,YAAU,WAAW,QAAQ,qBAAqB,QAAQ,MAAM,CAAC,GAAG;AACjI,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAAA;AAAA;AAAA,IAGD;AAAA,MACE,YAAY,6BAA6B,gBAAgB,KAAK;AAAA,MAC9D;AAAA,IACF;AAAA,EAAC,IAAI,CAAC;AACN,QAAM,gBAAgB,yBAAiB;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,EAAM,iBAAU,MAAM;AACpB,UAAM,cAAc,UAAU,cAAc;AAC5C,QAAI,WAAW,CAAC,aAAa;AAC3B;AAAA,IACF;AAGA,QAAI,YAAY,CAAC,aAAa;AAC5B;AAAA,IACF;AACA,oBAAgB,MAAM,KAAK;AAAA,EAC7B,GAAG,CAAC,OAAO,iBAAiB,SAAS,cAAc,OAAO,QAAQ,CAAC;AACnE,QAAM,mBAAmB,QAAQ,gBAAgB,SAAS,KAAK,CAAC;AAChE,MAAI,MAAuC;AACzC,QAAI,UAAU,QAAQ,CAAC,YAAY,QAAQ,SAAS,GAAG;AACrD,YAAM,gBAAgB,WAAW,QAAQ,CAAC,KAAK,GAAG,OAAO,YAAU,CAAC,QAAQ,KAAK,YAAU,qBAAqB,QAAQ,MAAM,CAAC,CAAC;AAChI,UAAI,aAAa,SAAS,GAAG;AAC3B,gBAAQ,KAAK,CAAC,8BAA8B,aAAa,gBAAgB,oCAAoC,aAAa,SAAS,IAAI,KAAK,UAAU,YAAY,IAAI,KAAK,UAAU,aAAa,CAAC,CAAC,CAAC,OAAO,6EAA6E,EAAE,KAAK,IAAI,CAAC;AAAA,MACvS;AAAA,IACF;AAAA,EACF;AACA,QAAM,WAAW,yBAAiB,gBAAc;AAC9C,QAAI,eAAe,IAAI;AACrB,eAAS,QAAQ,MAAM;AAAA,IACzB,OAAO;AACL,eAAS,cAAc,oBAAoB,UAAU,IAAI,EAAE,MAAM;AAAA,IACnE;AAAA,EACF,CAAC;AAGD,EAAM,iBAAU,MAAM;AACpB,QAAI,YAAY,aAAa,MAAM,SAAS,GAAG;AAC7C,oBAAc,EAAE;AAChB,eAAS,EAAE;AAAA,IACb;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,YAAY,QAAQ,CAAC;AAC1C,WAAS,iBAAiBC,QAAO,WAAW;AAC1C,QAAI,CAAC,WAAW,WAAWA,SAAQ,KAAKA,UAAS,gBAAgB,QAAQ;AACvE,aAAO;AAAA,IACT;AACA,QAAI,YAAYA;AAChB,WAAO,MAAM;AACX,YAAM,SAAS,WAAW,QAAQ,cAAc,uBAAuB,SAAS,IAAI;AAGpF,YAAM,oBAAoB,yBAAyB,QAAQ,CAAC,UAAU,OAAO,YAAY,OAAO,aAAa,eAAe,MAAM;AAClI,UAAI,UAAU,OAAO,aAAa,UAAU,KAAK,CAAC,mBAAmB;AAEnE,eAAO;AAAA,MACT;AAIA,UAAI,cAAc,QAAQ;AACxB,qBAAa,YAAY,KAAK,gBAAgB;AAAA,MAChD,OAAO;AACL,qBAAa,YAAY,IAAI,gBAAgB,UAAU,gBAAgB;AAAA,MACzE;AAIA,UAAI,cAAcA,QAAO;AACvB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,QAAM,sBAAsB,yBAAiB,CAAC;AAAA,IAC5C;AAAA,IACA,OAAAA;AAAA,IACA,SAAS;AAAA,EACX,MAAM;AACJ,wBAAoB,UAAUA;AAG9B,QAAIA,WAAU,IAAI;AAChB,eAAS,QAAQ,gBAAgB,uBAAuB;AAAA,IAC1D,OAAO;AACL,eAAS,QAAQ,aAAa,yBAAyB,GAAG,EAAE,WAAWA,MAAK,EAAE;AAAA,IAChF;AACA,QAAI,mBAAmB;AACrB,wBAAkB,OAAOA,WAAU,KAAK,OAAO,gBAAgBA,MAAK,GAAG,MAAM;AAAA,IAC/E;AACA,QAAI,CAAC,WAAW,SAAS;AACvB;AAAA,IACF;AACA,UAAM,OAAO,WAAW,QAAQ,cAAc,mBAAmB,wBAAwB,UAAU;AACnG,QAAI,MAAM;AACR,WAAK,UAAU,OAAO,GAAG,wBAAwB,UAAU;AAC3D,WAAK,UAAU,OAAO,GAAG,wBAAwB,eAAe;AAAA,IAClE;AACA,QAAI,cAAc,WAAW;AAC7B,QAAI,WAAW,QAAQ,aAAa,MAAM,MAAM,WAAW;AACzD,oBAAc,WAAW,QAAQ,cAAc,cAAc,kBAAkB;AAAA,IACjF;AAGA,QAAI,CAAC,aAAa;AAChB;AAAA,IACF;AACA,QAAIA,WAAU,IAAI;AAChB,kBAAY,YAAY;AACxB;AAAA,IACF;AACA,UAAM,SAAS,WAAW,QAAQ,cAAc,uBAAuBA,MAAK,IAAI;AAChF,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AACA,WAAO,UAAU,IAAI,GAAG,wBAAwB,UAAU;AAC1D,QAAI,WAAW,YAAY;AACzB,aAAO,UAAU,IAAI,GAAG,wBAAwB,eAAe;AAAA,IACjE;AAOA,QAAI,YAAY,eAAe,YAAY,gBAAgB,WAAW,WAAW,WAAW,SAAS;AACnG,YAAM,UAAU;AAChB,YAAM,eAAe,YAAY,eAAe,YAAY;AAC5D,YAAM,gBAAgB,QAAQ,YAAY,QAAQ;AAClD,UAAI,gBAAgB,cAAc;AAChC,oBAAY,YAAY,gBAAgB,YAAY;AAAA,MACtD,WAAW,QAAQ,YAAY,QAAQ,gBAAgB,UAAU,MAAM,KAAK,YAAY,WAAW;AACjG,oBAAY,YAAY,QAAQ,YAAY,QAAQ,gBAAgB,UAAU,MAAM;AAAA,MACtF;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,yBAAyB,yBAAiB,CAAC;AAAA,IAC/C;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,SAAS;AAAA,EACX,MAAM;AACJ,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AACA,UAAM,eAAe,MAAM;AACzB,YAAM,WAAW,gBAAgB,SAAS;AAC1C,UAAI,SAAS,SAAS;AACpB,eAAO;AAAA,MACT;AACA,UAAI,SAAS,SAAS;AACpB,eAAO;AAAA,MACT;AACA,UAAI,SAAS,OAAO;AAClB,eAAO;AAAA,MACT;AACA,YAAM,WAAW,oBAAoB,UAAU;AAC/C,UAAI,WAAW,GAAG;AAChB,YAAI,aAAa,MAAM,oBAAoB;AACzC,iBAAO;AAAA,QACT;AACA,YAAI,mBAAmB,oBAAoB,YAAY,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG;AAC/E,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AACA,UAAI,WAAW,UAAU;AACvB,YAAI,aAAa,WAAW,KAAK,oBAAoB;AACnD,iBAAO;AAAA,QACT;AACA,YAAI,mBAAmB,KAAK,IAAI,IAAI,IAAI,GAAG;AACzC,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AACA,UAAM,YAAY,iBAAiB,aAAa,GAAG,SAAS;AAC5D,wBAAoB;AAAA,MAClB,OAAO;AAAA,MACP;AAAA,MACA;AAAA,IACF,CAAC;AAGD,QAAI,gBAAgB,SAAS,SAAS;AACpC,UAAI,cAAc,IAAI;AACpB,iBAAS,QAAQ,QAAQ;AAAA,MAC3B,OAAO;AACL,cAAM,SAAS,eAAe,gBAAgB,SAAS,CAAC;AACxD,iBAAS,QAAQ,QAAQ;AAIzB,cAAMA,SAAQ,OAAO,YAAY,EAAE,QAAQ,WAAW,YAAY,CAAC;AACnE,YAAIA,WAAU,KAAK,WAAW,SAAS,GAAG;AACxC,mBAAS,QAAQ,kBAAkB,WAAW,QAAQ,OAAO,MAAM;AAAA,QACrE;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACD,QAAM,oCAAoC,MAAM;AAC9C,UAAM,cAAc,CAAC,QAAQ,WAAW;AACtC,YAAM,SAAS,SAAS,eAAe,MAAM,IAAI;AACjD,YAAM,SAAS,SAAS,eAAe,MAAM,IAAI;AACjD,aAAO,WAAW;AAAA,IACpB;AACA,QAAI,oBAAoB,YAAY,MAAM,cAAc,mBAAmB,cAAc,gBAAgB,WAAW,gBAAgB,UAAU,cAAc,eAAe,eAAe,WAAW,MAAM,WAAW,cAAc,MAAM,UAAU,cAAc,MAAM,MAAM,CAAC,KAAK,MAAM,eAAe,MAAM,CAAC,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,YAAY,cAAc,OAAO,KAAK,IAAI;AACtX,YAAM,4BAA4B,cAAc,gBAAgB,oBAAoB,OAAO;AAC3F,UAAI,2BAA2B;AAC7B,eAAO,UAAU,iBAAiB,YAAU;AAC1C,iBAAO,eAAe,MAAM,MAAM,eAAe,yBAAyB;AAAA,QAC5E,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAM,uBAA6B,mBAAY,MAAM;AACnD,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AAIA,UAAM,iCAAiC,kCAAkC;AACzE,QAAI,mCAAmC,IAAI;AACzC,0BAAoB,UAAU;AAC9B;AAAA,IACF;AACA,UAAM,YAAY,WAAW,MAAM,CAAC,IAAI;AAGxC,QAAI,gBAAgB,WAAW,KAAK,aAAa,MAAM;AACrD,6BAAuB;AAAA,QACrB,MAAM;AAAA,MACR,CAAC;AACD;AAAA,IACF;AACA,QAAI,CAAC,WAAW,SAAS;AACvB;AAAA,IACF;AAGA,QAAI,aAAa,MAAM;AACrB,YAAM,gBAAgB,gBAAgB,oBAAoB,OAAO;AAGjE,UAAI,YAAY,iBAAiB,UAAU,OAAO,SAAO,qBAAqB,eAAe,GAAG,CAAC,MAAM,IAAI;AACzG;AAAA,MACF;AACA,YAAM,YAAY,UAAU,iBAAiB,gBAAc,qBAAqB,YAAY,SAAS,CAAC;AACtG,UAAI,cAAc,IAAI;AACpB,+BAAuB;AAAA,UACrB,MAAM;AAAA,QACR,CAAC;AAAA,MACH,OAAO;AACL,4BAAoB;AAAA,UAClB,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA;AAAA,IACF;AAGA,QAAI,oBAAoB,WAAW,gBAAgB,SAAS,GAAG;AAC7D,0BAAoB;AAAA,QAClB,OAAO,gBAAgB,SAAS;AAAA,MAClC,CAAC;AACD;AAAA,IACF;AAGA,wBAAoB;AAAA,MAClB,OAAO,oBAAoB;AAAA,IAC7B,CAAC;AAAA,EAGH,GAAG;AAAA;AAAA,IAEH,gBAAgB;AAAA;AAAA;AAAA,IAGhB,WAAW,QAAQ;AAAA,IAAO;AAAA,IAAuB;AAAA,IAAwB;AAAA,IAAqB;AAAA,IAAW;AAAA,IAAY;AAAA,EAAQ,CAAC;AAC9H,QAAM,mBAAmB,yBAAiB,UAAQ;AAChD,WAAO,YAAY,IAAI;AACvB,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,yBAAqB;AAAA,EACvB,CAAC;AACD,MAAI,MAAuC;AAEzC,IAAM,iBAAU,MAAM;AACpB,UAAI,CAAC,SAAS,WAAW,SAAS,QAAQ,aAAa,SAAS;AAC9D,YAAI,SAAS,WAAW,SAAS,QAAQ,aAAa,YAAY;AAChE,kBAAQ,KAAK,CAAC,sCAAsC,aAAa,8BAA8B,8EAA8E,uGAAuG,mFAAmF,EAAE,KAAK,IAAI,CAAC;AAAA,QACrX,OAAO;AACL,kBAAQ,MAAM,CAAC,6DAA6D,SAAS,OAAO,4CAA4C,YAAY,aAAa,8BAA8B,IAAI,kBAAkB,oBAAoB,qHAAqH,8DAA8D,EAAE,KAAK,IAAI,CAAC;AAAA,QAC1a;AAAA,MACF;AAAA,IACF,GAAG,CAAC,aAAa,CAAC;AAAA,EACpB;AACA,EAAM,iBAAU,MAAM;AACpB,yBAAqB;AAAA,EACvB,GAAG,CAAC,oBAAoB,CAAC;AACzB,QAAM,aAAa,WAAS;AAC1B,QAAI,MAAM;AACR;AAAA,IACF;AACA,iBAAa,IAAI;AACjB,qBAAiB,IAAI;AACrB,QAAI,QAAQ;AACV,aAAO,KAAK;AAAA,IACd;AAAA,EACF;AACA,QAAM,cAAc,CAAC,OAAO,WAAW;AACrC,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,iBAAa,KAAK;AAClB,QAAI,SAAS;AACX,cAAQ,OAAO,MAAM;AAAA,IACvB;AAAA,EACF;AACA,QAAM,cAAc,CAAC,OAAO,UAAU,QAAQ,YAAY;AACxD,QAAI,UAAU;AACZ,UAAI,MAAM,WAAW,SAAS,UAAU,MAAM,MAAM,CAAC,KAAK,MAAM,QAAQ,SAAS,CAAC,CAAC,GAAG;AACpF;AAAA,MACF;AAAA,IACF,WAAW,UAAU,UAAU;AAC7B;AAAA,IACF;AACA,QAAI,UAAU;AACZ,eAAS,OAAO,UAAU,QAAQ,OAAO;AAAA,IAC3C;AACA,kBAAc,QAAQ;AAAA,EACxB;AACA,QAAM,UAAgB,cAAO,KAAK;AAClC,QAAM,iBAAiB,CAAC,OAAO,QAAQ,aAAa,gBAAgB,SAAS,cAAc;AACzF,QAAI,SAAS;AACb,QAAI,WAAW;AACf,QAAI,UAAU;AACZ,iBAAW,MAAM,QAAQ,KAAK,IAAI,MAAM,MAAM,IAAI,CAAC;AACnD,UAAI,MAAuC;AACzC,cAAM,UAAU,SAAS,OAAO,SAAO,qBAAqB,QAAQ,GAAG,CAAC;AACxE,YAAI,QAAQ,SAAS,GAAG;AACtB,kBAAQ,MAAM,CAAC,+CAA+C,aAAa,6CAA6C,0EAA0E,QAAQ,MAAM,WAAW,EAAE,KAAK,IAAI,CAAC;AAAA,QACzO;AAAA,MACF;AACA,YAAM,YAAY,UAAU,UAAU,eAAa,qBAAqB,QAAQ,SAAS,CAAC;AAC1F,UAAI,cAAc,IAAI;AACpB,iBAAS,KAAK,MAAM;AAAA,MACtB,WAAW,WAAW,YAAY;AAChC,iBAAS,OAAO,WAAW,CAAC;AAC5B,iBAAS;AAAA,MACX;AAAA,IACF;AACA,oBAAgB,OAAO,QAAQ;AAC/B,gBAAY,OAAO,UAAU,QAAQ;AAAA,MACnC;AAAA,IACF,CAAC;AACD,QAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,MAAM,UAAU;AACzE,kBAAY,OAAO,MAAM;AAAA,IAC3B;AACA,QAAI,iBAAiB,QAAQ,iBAAiB,WAAW,QAAQ,WAAW,iBAAiB,WAAW,CAAC,QAAQ,SAAS;AACxH,eAAS,QAAQ,KAAK;AAAA,IACxB;AAAA,EACF;AACA,WAAS,cAAcA,QAAO,WAAW;AACvC,QAAIA,WAAU,IAAI;AAChB,aAAO;AAAA,IACT;AACA,QAAI,YAAYA;AAChB,WAAO,MAAM;AAEX,UAAI,cAAc,UAAU,cAAc,MAAM,UAAU,cAAc,cAAc,cAAc,IAAI;AACtG,eAAO;AAAA,MACT;AACA,YAAM,SAAS,SAAS,cAAc,oBAAoB,SAAS,IAAI;AAGvE,UAAI,CAAC,UAAU,CAAC,OAAO,aAAa,UAAU,KAAK,OAAO,YAAY,OAAO,aAAa,eAAe,MAAM,QAAQ;AACrH,qBAAa,cAAc,SAAS,IAAI;AAAA,MAC1C,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,QAAM,iBAAiB,CAAC,OAAO,cAAc;AAC3C,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AACA,QAAI,eAAe,IAAI;AACrB,kBAAY,OAAO,aAAa;AAAA,IAClC;AACA,QAAI,UAAU;AACd,QAAI,eAAe,IAAI;AACrB,UAAI,eAAe,MAAM,cAAc,YAAY;AACjD,kBAAU,MAAM,SAAS;AAAA,MAC3B;AAAA,IACF,OAAO;AACL,iBAAW,cAAc,SAAS,IAAI;AACtC,UAAI,UAAU,GAAG;AACf,kBAAU;AAAA,MACZ;AACA,UAAI,YAAY,MAAM,QAAQ;AAC5B,kBAAU;AAAA,MACZ;AAAA,IACF;AACA,cAAU,cAAc,SAAS,SAAS;AAC1C,kBAAc,OAAO;AACrB,aAAS,OAAO;AAAA,EAClB;AACA,QAAM,cAAc,WAAS;AAC3B,gBAAY,UAAU;AACtB,uBAAmB,EAAE;AACrB,QAAI,eAAe;AACjB,oBAAc,OAAO,IAAI,OAAO;AAAA,IAClC;AACA,gBAAY,OAAO,WAAW,CAAC,IAAI,MAAM,OAAO;AAAA,EAClD;AACA,QAAMC,iBAAgB,WAAS,WAAS;AACtC,QAAI,MAAM,WAAW;AACnB,YAAM,UAAU,KAAK;AAAA,IACvB;AACA,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,QAAI,eAAe,MAAM,CAAC,aAAa,YAAY,EAAE,QAAQ,MAAM,GAAG,MAAM,IAAI;AAC9E,oBAAc,EAAE;AAChB,eAAS,EAAE;AAAA,IACb;AAGA,QAAI,MAAM,UAAU,KAAK;AACvB,cAAQ,MAAM,KAAK;AAAA,QACjB,KAAK;AACH,cAAI,aAAa,mBAAmB;AAElC,kBAAM,eAAe;AACrB,mCAAuB;AAAA,cACrB,MAAM;AAAA,cACN,WAAW;AAAA,cACX,QAAQ;AAAA,cACR;AAAA,YACF,CAAC;AAAA,UACH;AACA;AAAA,QACF,KAAK;AACH,cAAI,aAAa,mBAAmB;AAElC,kBAAM,eAAe;AACrB,mCAAuB;AAAA,cACrB,MAAM;AAAA,cACN,WAAW;AAAA,cACX,QAAQ;AAAA,cACR;AAAA,YACF,CAAC;AAAA,UACH;AACA;AAAA,QACF,KAAK;AAEH,gBAAM,eAAe;AACrB,iCAAuB;AAAA,YACrB,MAAM,CAAC;AAAA,YACP,WAAW;AAAA,YACX,QAAQ;AAAA,YACR;AAAA,UACF,CAAC;AACD,qBAAW,KAAK;AAChB;AAAA,QACF,KAAK;AAEH,gBAAM,eAAe;AACrB,iCAAuB;AAAA,YACrB,MAAM;AAAA,YACN,WAAW;AAAA,YACX,QAAQ;AAAA,YACR;AAAA,UACF,CAAC;AACD,qBAAW,KAAK;AAChB;AAAA,QACF,KAAK;AAEH,gBAAM,eAAe;AACrB,iCAAuB;AAAA,YACrB,MAAM;AAAA,YACN,WAAW;AAAA,YACX,QAAQ;AAAA,YACR;AAAA,UACF,CAAC;AACD,qBAAW,KAAK;AAChB;AAAA,QACF,KAAK;AAEH,gBAAM,eAAe;AACrB,iCAAuB;AAAA,YACrB,MAAM;AAAA,YACN,WAAW;AAAA,YACX,QAAQ;AAAA,YACR;AAAA,UACF,CAAC;AACD,qBAAW,KAAK;AAChB;AAAA,QACF,KAAK;AACH,yBAAe,OAAO,UAAU;AAChC;AAAA,QACF,KAAK;AACH,yBAAe,OAAO,MAAM;AAC5B;AAAA,QACF,KAAK;AACH,cAAI,oBAAoB,YAAY,MAAM,WAAW;AACnD,kBAAM,SAAS,gBAAgB,oBAAoB,OAAO;AAC1D,kBAAM,WAAW,oBAAoB,kBAAkB,MAAM,IAAI;AAGjE,kBAAM,eAAe;AACrB,gBAAI,UAAU;AACZ;AAAA,YACF;AACA,2BAAe,OAAO,QAAQ,cAAc;AAG5C,gBAAI,cAAc;AAChB,uBAAS,QAAQ,kBAAkB,SAAS,QAAQ,MAAM,QAAQ,SAAS,QAAQ,MAAM,MAAM;AAAA,YACjG;AAAA,UACF,WAAW,YAAY,eAAe,MAAM,8BAA8B,OAAO;AAC/E,gBAAI,UAAU;AAEZ,oBAAM,eAAe;AAAA,YACvB;AACA,2BAAe,OAAO,YAAY,gBAAgB,UAAU;AAAA,UAC9D;AACA;AAAA,QACF,KAAK;AACH,cAAI,WAAW;AAEb,kBAAM,eAAe;AAErB,kBAAM,gBAAgB;AACtB,wBAAY,OAAO,QAAQ;AAAA,UAC7B,WAAW,kBAAkB,eAAe,MAAM,YAAY,MAAM,SAAS,IAAI;AAE/E,kBAAM,eAAe;AAErB,kBAAM,gBAAgB;AACtB,wBAAY,KAAK;AAAA,UACnB;AACA;AAAA,QACF,KAAK;AAEH,cAAI,YAAY,CAAC,YAAY,eAAe,MAAM,MAAM,SAAS,GAAG;AAClE,kBAAMD,SAAQ,eAAe,KAAK,MAAM,SAAS,IAAI;AACrD,kBAAM,WAAW,MAAM,MAAM;AAC7B,qBAAS,OAAOA,QAAO,CAAC;AACxB,wBAAY,OAAO,UAAU,gBAAgB;AAAA,cAC3C,QAAQ,MAAMA,MAAK;AAAA,YACrB,CAAC;AAAA,UACH;AACA;AAAA,QACF,KAAK;AAEH,cAAI,YAAY,CAAC,YAAY,eAAe,MAAM,MAAM,SAAS,KAAK,eAAe,IAAI;AACvF,kBAAMA,SAAQ;AACd,kBAAM,WAAW,MAAM,MAAM;AAC7B,qBAAS,OAAOA,QAAO,CAAC;AACxB,wBAAY,OAAO,UAAU,gBAAgB;AAAA,cAC3C,QAAQ,MAAMA,MAAK;AAAA,YACrB,CAAC;AAAA,UACH;AACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,QAAM,cAAc,WAAS;AAC3B,eAAW,IAAI;AACf,QAAI,eAAe,CAAC,YAAY,SAAS;AACvC,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AACA,QAAME,cAAa,WAAS;AAE1B,QAAI,kCAAkC,UAAU,GAAG;AACjD,eAAS,QAAQ,MAAM;AACvB;AAAA,IACF;AACA,eAAW,KAAK;AAChB,eAAW,UAAU;AACrB,gBAAY,UAAU;AACtB,QAAI,cAAc,oBAAoB,YAAY,MAAM,WAAW;AACjE,qBAAe,OAAO,gBAAgB,oBAAoB,OAAO,GAAG,MAAM;AAAA,IAC5E,WAAW,cAAc,YAAY,eAAe,IAAI;AACtD,qBAAe,OAAO,YAAY,QAAQ,UAAU;AAAA,IACtD,WAAW,aAAa;AACtB,sBAAgB,OAAO,KAAK;AAAA,IAC9B;AACA,gBAAY,OAAO,MAAM;AAAA,EAC3B;AACA,QAAMC,qBAAoB,WAAS;AACjC,UAAM,WAAW,MAAM,OAAO;AAC9B,QAAI,eAAe,UAAU;AAC3B,yBAAmB,QAAQ;AAC3B,uBAAiB,KAAK;AACtB,UAAI,eAAe;AACjB,sBAAc,OAAO,UAAU,OAAO;AAAA,MACxC;AAAA,IACF;AACA,QAAI,aAAa,IAAI;AACnB,UAAI,CAAC,oBAAoB,CAAC,UAAU;AAClC,oBAAY,OAAO,MAAM,OAAO;AAAA,MAClC;AAAA,IACF,OAAO;AACL,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AACA,QAAM,wBAAwB,WAAS;AACrC,UAAMH,SAAQ,OAAO,MAAM,cAAc,aAAa,mBAAmB,CAAC;AAC1E,QAAI,oBAAoB,YAAYA,QAAO;AACzC,0BAAoB;AAAA,QAClB;AAAA,QACA,OAAAA;AAAA,QACA,QAAQ;AAAA,MACV,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,yBAAyB,WAAS;AACtC,wBAAoB;AAAA,MAClB;AAAA,MACA,OAAO,OAAO,MAAM,cAAc,aAAa,mBAAmB,CAAC;AAAA,MACnE,QAAQ;AAAA,IACV,CAAC;AACD,YAAQ,UAAU;AAAA,EACpB;AACA,QAAM,oBAAoB,WAAS;AACjC,UAAMA,SAAQ,OAAO,MAAM,cAAc,aAAa,mBAAmB,CAAC;AAC1E,mBAAe,OAAO,gBAAgBA,MAAK,GAAG,cAAc;AAC5D,YAAQ,UAAU;AAAA,EACpB;AACA,QAAM,kBAAkB,CAAAA,WAAS,WAAS;AACxC,UAAM,WAAW,MAAM,MAAM;AAC7B,aAAS,OAAOA,QAAO,CAAC;AACxB,gBAAY,OAAO,UAAU,gBAAgB;AAAA,MAC3C,QAAQ,MAAMA,MAAK;AAAA,IACrB,CAAC;AAAA,EACH;AACA,QAAM,uBAAuB,WAAS;AACpC,QAAI,MAAM;AACR,kBAAY,OAAO,aAAa;AAAA,IAClC,OAAO;AACL,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAGA,QAAM,kBAAkB,WAAS;AAE/B,QAAI,CAAC,MAAM,cAAc,SAAS,MAAM,MAAM,GAAG;AAC/C;AAAA,IACF;AACA,QAAI,MAAM,OAAO,aAAa,IAAI,MAAM,IAAI;AAC1C,YAAM,eAAe;AAAA,IACvB;AAAA,EACF;AAGA,QAAM,cAAc,WAAS;AAE3B,QAAI,CAAC,MAAM,cAAc,SAAS,MAAM,MAAM,GAAG;AAC/C;AAAA,IACF;AACA,aAAS,QAAQ,MAAM;AACvB,QAAI,iBAAiB,WAAW,WAAW,SAAS,QAAQ,eAAe,SAAS,QAAQ,mBAAmB,GAAG;AAChH,eAAS,QAAQ,OAAO;AAAA,IAC1B;AACA,eAAW,UAAU;AAAA,EACvB;AACA,QAAM,uBAAuB,WAAS;AACpC,QAAI,CAAC,iBAAiB,eAAe,MAAM,CAAC,OAAO;AACjD,2BAAqB,KAAK;AAAA,IAC5B;AAAA,EACF;AACA,MAAI,QAAQ,YAAY,WAAW,SAAS;AAC5C,UAAQ,UAAU,WAAW,MAAM,SAAS,IAAI,UAAU;AAC1D,MAAI,iBAAiB;AACrB,MAAI,SAAS;AAEX,UAAM,UAAU,oBAAI,IAAI;AACxB,QAAI,OAAO;AACX,qBAAiB,gBAAgB,OAAO,CAAC,KAAK,QAAQA,WAAU;AAC9D,YAAM,QAAQ,QAAQ,MAAM;AAC5B,UAAI,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,EAAE,UAAU,OAAO;AACzD,YAAI,IAAI,SAAS,CAAC,EAAE,QAAQ,KAAK,MAAM;AAAA,MACzC,OAAO;AACL,YAAI,MAAuC;AACzC,cAAI,QAAQ,IAAI,KAAK,KAAK,CAAC,MAAM;AAC/B,oBAAQ,KAAK,qEAAqE,aAAa,gCAAgC,8EAA8E;AAC7M,mBAAO;AAAA,UACT;AACA,kBAAQ,IAAI,OAAO,IAAI;AAAA,QACzB;AACA,YAAI,KAAK;AAAA,UACP,KAAKA;AAAA,UACL,OAAAA;AAAA,UACA;AAAA,UACA,SAAS,CAAC,MAAM;AAAA,QAClB,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT,GAAG,CAAC,CAAC;AAAA,EACP;AACA,MAAI,gBAAgB,SAAS;AAC3B,IAAAE,YAAW;AAAA,EACb;AACA,SAAO;AAAA,IACL,cAAc,CAAC,QAAQ,CAAC,MAAM,SAAS;AAAA,MACrC,aAAa,mBAAmB,GAAG,EAAE,aAAa;AAAA,IACpD,GAAG,OAAO;AAAA,MACR,WAAWD,eAAc,KAAK;AAAA,MAC9B,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,IACD,oBAAoB,OAAO;AAAA,MACzB,IAAI,GAAG,EAAE;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,eAAe,OAAO;AAAA,MACpB;AAAA,MACA,OAAO;AAAA,MACP,QAAQC;AAAA,MACR,SAAS;AAAA,MACT,UAAUC;AAAA,MACV,aAAa;AAAA;AAAA;AAAA,MAGb,yBAAyB,YAAY,KAAK;AAAA,MAC1C,qBAAqB,eAAe,SAAS;AAAA,MAC7C,iBAAiB,mBAAmB,GAAG,EAAE,aAAa;AAAA,MACtD,iBAAiB;AAAA;AAAA;AAAA,MAGjB,cAAc;AAAA,MACd,KAAK;AAAA,MACL,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,eAAe,OAAO;AAAA,MACpB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,wBAAwB,OAAO;AAAA,MAC7B,UAAU;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa,CAAC;AAAA,MACZ,OAAAH;AAAA,IACF,MAAM,SAAS;AAAA,MACb,KAAKA;AAAA,MACL,kBAAkBA;AAAA,MAClB,UAAU;AAAA,IACZ,GAAG,CAAC,YAAY;AAAA,MACd,UAAU,gBAAgBA,MAAK;AAAA,IACjC,CAAC;AAAA,IACD,iBAAiB,OAAO;AAAA,MACtB,MAAM;AAAA,MACN,IAAI,GAAG,EAAE;AAAA,MACT,mBAAmB,GAAG,EAAE;AAAA,MACxB,KAAK;AAAA,MACL,aAAa,WAAS;AAEpB,cAAM,eAAe;AAAA,MACvB;AAAA,IACF;AAAA,IACA,gBAAgB,CAAC;AAAA,MACf,OAAAA;AAAA,MACA;AAAA,IACF,MAAM;AACJ,UAAI;AACJ,YAAM,YAAY,WAAW,QAAQ,CAAC,KAAK,GAAG,KAAK,YAAU,UAAU,QAAQ,qBAAqB,QAAQ,MAAM,CAAC;AACnH,YAAM,WAAW,oBAAoB,kBAAkB,MAAM,IAAI;AACjE,aAAO;AAAA,QACL,MAAM,gBAAgB,gBAAgB,OAAO,SAAS,aAAa,MAAM,MAAM,OAAO,gBAAgB,eAAe,MAAM;AAAA,QAC3H,UAAU;AAAA,QACV,MAAM;AAAA,QACN,IAAI,GAAG,EAAE,WAAWA,MAAK;AAAA,QACzB,aAAa;AAAA,QACb,SAAS;AAAA,QACT,cAAc;AAAA,QACd,qBAAqBA;AAAA,QACrB,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,MACnB;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,aAAa;AAAA,IACvB;AAAA,IACA,SAAS,WAAW,eAAe;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ACh+BA;AACA,IAAAI,SAAuB;AACvB,IAAAC,qBAAsB;AAEtB;AACA;AACA,IAAAC,sBAA4B;AAC5B,SAAS,aAAa,OAAO;AAC3B,aAAoB,oBAAAC,KAAK,sBAAoB,SAAS,CAAC,GAAG,OAAO;AAAA,IAC/D,cAAc;AAAA,IACd,SAAS;AAAA,EACX,CAAC,CAAC;AACJ;AACA,OAAwC,aAAa,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQtF,QAAQ,mBAAAC,QAAgD,UAAU,CAAC,mBAAAA,QAAU,OAAO,mBAAAA,QAAU,MAAM,mBAAAA,QAAU,QAAQ,mBAAAA,QAAU,QAAQ,mBAAAA,QAAU,QAAQ,mBAAAA,QAAU,IAAI,CAAC;AAC3K,IAAI;AACJ,IAAOC,wBAAQ;;;ACzBf;AACA;AACO,SAAS,yBAAyB,MAAM;AAC7C,SAAO,qBAAqB,gBAAgB,IAAI;AAClD;AACA,IAAM,mBAAmB,uBAAuB,gBAAgB,CAAC,QAAQ,eAAe,WAAW,YAAY,gBAAgB,cAAc,SAAS,aAAa,aAAa,kBAAkB,aAAa,eAAe,YAAY,SAAS,kBAAkB,kBAAkB,mBAAmB,qBAAqB,mBAAmB,kBAAkB,CAAC;AACrW,IAAO,2BAAQ;;;ACJf;AACA;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;AACA;AACA;;;ACRA;AACA;AAEA,IAAAC,SAAuB;AACvB,IAAAC,qBAAsB;;;ACJtB;AAWO,SAAS,SAAS,YAAY;AACnC,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,WAAW,gBAAgB;AAAA,IAC3B,KAAK,UAAU;AAAA,IACf,WAAW;AAAA,EACb,IAAI;AACJ,QAAM,YAAY,yBAAiB;AAAA,IACjC,cAAc;AAAA,IACd,KAAK;AAAA,EACP,CAAC;AACD,MAAI,YAAY;AAChB,MAAI,kBAAkB,SAAS,qBAAqB,KAAK,CAAC,UAAU;AAClE,gBAAY;AAAA,EACd;AACA,QAAM;AAAA,IACJ;AAAA,IACA,KAAAC,OAAM;AAAA,EACR,IAAI,YAAY,YAAY;AAC5B,QAAM,eAAe,gBAAgB,OAAO,YAAY,IAAIA,OAAM,GAAGA,IAAG,MAAM;AAC9E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,KAAAA;AAAA,IACA;AAAA,EACF;AACF;;;ACrCA,IAAM,iBAAiB;AAChB,SAAS,qBAAqB,MAAM;AACzC,SAAOC,sBAAqB,gBAAgB,IAAI;AAClD;AACO,IAAM,eAAeC,wBAAuB,gBAAgB,CAAC,QAAQ,SAAS,WAAW,CAAC;;;AFMjG,IAAAC,sBAA4B;AAC5B,IAAAA,sBAA8B;AAT9B,IAAMC,aAAY,CAAC,gBAAgB,YAAY,aAAa,OAAO,aAAa,SAAS,UAAU;AAUnG,IAAM,oBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,MAAM;AAAA,IACb,OAAO,CAAC,SAAS,aAAa,WAAW;AAAA,EAC3C;AACA,SAAO,eAAe,OAAO,sBAAsB,oBAAoB,CAAC;AAC1E;AAWA,IAAM,QAA2B,kBAAW,SAASC,OAAM,OAAO,cAAc;AAC9E,MAAI,aAAa;AACjB,QAAM;AAAA,IACF;AAAA,IACA,KAAK,UAAU;AAAA,IACf,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,WAAW;AAAA,EACb,IAAI,OACJ,QAAQ,8BAA8B,OAAOD,UAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA,KAAAE;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,SAAS,SAAS,CAAC,GAAG,OAAO;AAAA,IAC/B,KAAK;AAAA,EACP,CAAC,CAAC;AACF,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA,KAAAA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAU,kBAAkB,UAAU;AAC5C,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,kBAAkB,eAAe,MAAM,UAAU,OAAO,eAAe;AAC7E,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,oBAAAC,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACtD,UAAU,CAAC,cAAuB,oBAAAC,KAAK,gBAAgB,SAAS,CAAC,GAAG,YAAY;AAAA,MAC9E,UAAU;AAAA,IACZ,CAAC,CAAC,CAAC;AAAA,EACL,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,MAAM,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/E,cAAc,mBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIxB,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,WAAW,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,KAAK,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKf,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,WAAW,mBAAAA,QAAU,MAAM;AAAA,IACzB,OAAO,mBAAAA,QAAU,UAAU,CAAC,mBAAAA,QAAU,MAAM,mBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,MAAM,mBAAAA,QAAU,UAAU,CAAC,mBAAAA,QAAU,MAAM,mBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,mBAAAA,QAAU,MAAM;AAAA,IACrB,OAAO,mBAAAA,QAAU;AAAA,IACjB,MAAM,mBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AG9HJ;AACA;AAEA,IAAAC,SAAuB;AACvB,IAAAC,qBAAsB;;;ACJtB,IAAMC,kBAAiB;AAChB,SAAS,sBAAsB,MAAM;AAC1C,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,gBAAgBE,wBAAuBF,iBAAgB,CAAC,QAAQ,UAAU,YAAY,cAAc,CAAC;;;ACJlH;AACA,IAAAG,SAAuB;AACvB;AAaO,SAAS,UAAU,aAAa,CAAC,GAAG;AACzC,QAAM;AAAA,IACJ,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,EACnB,IAAI;AACJ,QAAM,YAAkB,cAAO;AAC/B,QAAM,CAAC,QAAQ,SAAS,IAAU,gBAAS,KAAK;AAChD,QAAM;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,KAAK;AAAA,EACP,IAAI,kBAAkB;AACtB,QAAM,CAAC,cAAc,eAAe,IAAU,gBAAS,KAAK;AAC5D,MAAI,YAAY,CAAC,yBAAyB,cAAc;AACtD,oBAAgB,KAAK;AAAA,EACvB;AACA,EAAM,iBAAU,MAAM;AACpB,sBAAkB,UAAU;AAAA,EAC9B,GAAG,CAAC,cAAc,iBAAiB,CAAC;AACpC,QAAM,CAAC,iBAAiB,qBAAqB,IAAI,mBAAmB;AAAA,IAClE,iBAAiB,uBAAuB,OAAO,sBAAsB,QAAQ,KAAK,MAAM;AAAA,IACxF,eAAe;AAAA,EACjB,CAAC;AACD,QAAM,yBAAyB,mBAAiB,WAAS;AACvD,QAAI;AACJ,QAAI,cAAc;AAChB,YAAM,eAAe;AAAA,IACvB;AACA,KAAC,wBAAwB,cAAc,iBAAiB,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,EACjH;AACA,QAAM,mBAAmB,mBAAiB,WAAS;AACjD,QAAI;AACJ,sBAAkB,KAAK;AACvB,QAAI,kBAAkB,YAAY,OAAO;AACvC,sBAAgB,KAAK;AAAA,IACvB;AACA,KAAC,wBAAwB,cAAc,WAAW,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,EAC3G;AACA,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,QAAI;AAEJ,QAAI,CAAC,UAAU,SAAS;AACtB,gBAAU,UAAU,MAAM;AAAA,IAC5B;AACA,uBAAmB,KAAK;AACxB,QAAI,kBAAkB,YAAY,MAAM;AACtC,UAAI;AACJ,sBAAgB,IAAI;AACpB,OAAC,wBAAwB,cAAc,mBAAmB,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,IACnH;AACA,KAAC,yBAAyB,cAAc,YAAY,QAAQ,uBAAuB,KAAK,eAAe,KAAK;AAAA,EAC9G;AACA,QAAM,iBAAiB,MAAM;AAC3B,UAAM,SAAS,UAAU;AACzB,WAAO,oBAAoB,YAAY,oBAAoB,WAAW,CAAC,UAAU,UAAU,OAAO,EAAE,SAAS,UAAU,OAAO,SAAS,OAAO,IAAI,KAAK,oBAAoB,QAAQ,UAAU,OAAO,SAAS,OAAO;AAAA,EACtN;AACA,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,QAAI,CAAC,UAAU;AACb,UAAI;AACJ,OAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,IAC5G;AAAA,EACF;AACA,QAAM,wBAAwB,mBAAiB,WAAS;AACtD,QAAI;AACJ,QAAI,CAAC,UAAU;AACb,gBAAU,IAAI;AACd,eAAS,iBAAiB,WAAW,MAAM;AACzC,kBAAU,KAAK;AAAA,MACjB,GAAG;AAAA,QACD,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AACA,KAAC,yBAAyB,cAAc,gBAAgB,QAAQ,uBAAuB,KAAK,eAAe,KAAK;AAAA,EAClH;AACA,QAAM,sBAAsB,mBAAiB,WAAS;AACpD,QAAI;AACJ,KAAC,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC5G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,QAAI,MAAM,WAAW,MAAM,iBAAiB,CAAC,eAAe,KAAK,MAAM,QAAQ,KAAK;AAClF,YAAM,eAAe;AAAA,IACvB;AACA,QAAI,MAAM,WAAW,MAAM,iBAAiB,MAAM,QAAQ,OAAO,CAAC,UAAU;AAC1E,gBAAU,IAAI;AAAA,IAChB;AAGA,QAAI,MAAM,WAAW,MAAM,iBAAiB,CAAC,eAAe,KAAK,MAAM,QAAQ,WAAW,CAAC,UAAU;AACnG,UAAI;AACJ,OAAC,yBAAyB,cAAc,YAAY,QAAQ,uBAAuB,KAAK,eAAe,KAAK;AAC5G,YAAM,eAAe;AAAA,IACvB;AAAA,EACF;AACA,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,QAAI;AAIJ,QAAI,MAAM,WAAW,MAAM,eAAe;AACxC,gBAAU,KAAK;AAAA,IACjB;AACA,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAG1G,QAAI,MAAM,WAAW,MAAM,iBAAiB,CAAC,eAAe,KAAK,CAAC,YAAY,MAAM,QAAQ,OAAO,CAAC,MAAM,qBAAqB;AAC7H,UAAI;AACJ,OAAC,yBAAyB,cAAc,YAAY,QAAQ,uBAAuB,KAAK,eAAe,KAAK;AAAA,IAC9G;AAAA,EACF;AACA,QAAM,YAAY,WAAW,uBAAuB,aAAa,iBAAiB,SAAS;AAC3F,QAAM,cAAc,CAAC;AACrB,MAAI,aAAa,QAAW;AAC1B,gBAAY,WAAW;AAAA,EACzB;AACA,MAAI,oBAAoB,UAAU;AAChC,gBAAY,OAAO,QAAQ,OAAO,OAAO;AACzC,QAAI,uBAAuB;AACzB,kBAAY,eAAe,IAAI;AAAA,IACjC,OAAO;AACL,kBAAY,WAAW;AAAA,IACzB;AAAA,EACF,WAAW,oBAAoB,SAAS;AACtC,QAAI,QAAQ,CAAC,UAAU,UAAU,OAAO,EAAE,SAAS,IAAI,GAAG;AACxD,UAAI,uBAAuB;AACzB,oBAAY,eAAe,IAAI;AAAA,MACjC,OAAO;AACL,oBAAY,WAAW;AAAA,MACzB;AAAA,IACF;AAAA,EACF,WAAW,oBAAoB,IAAI;AACjC,QAAI,CAAC,QAAQ,CAAC,IAAI;AAChB,kBAAY,OAAO;AACnB,kBAAY,WAAW,YAAY,OAAO,WAAW;AAAA,IACvD;AACA,QAAI,UAAU;AACZ,kBAAY,eAAe,IAAI;AAC/B,kBAAY,WAAW,wBAAwB,YAAY,OAAO,WAAW,IAAI;AAAA,IACnF;AAAA,EACF;AACA,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,wBAAwB,SAAS,CAAC,GAAG,qBAAqB,UAAU,GAAG,qBAAqB,aAAa,CAAC;AAChH,UAAM,QAAQ,SAAS;AAAA,MACrB;AAAA,IACF,GAAG,uBAAuB,aAAa,eAAe;AAAA,MACpD,QAAQ,iBAAiB,qBAAqB;AAAA,MAC9C,SAAS,kBAAkB,qBAAqB;AAAA,MAChD,SAAS,kBAAkB,qBAAqB;AAAA,MAChD,WAAW,oBAAoB,qBAAqB;AAAA,MACpD,SAAS,kBAAkB,qBAAqB;AAAA,MAChD,aAAa,sBAAsB,qBAAqB;AAAA,MACxD,cAAc,uBAAuB,qBAAqB;AAAA,MAC1D,KAAK;AAAA,IACP,CAAC;AAKD,WAAO,MAAM;AACb,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX;AACF;;;AFpLA,IAAAC,uBAA4B;AAR5B,IAAMC,aAAY,CAAC,UAAU,YAAY,YAAY,yBAAyB,kBAAkB,aAAa,SAAS,iBAAiB;AASvI,IAAMC,qBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,gBAAgB,gBAAgB,UAAU,QAAQ;AAAA,EAC3F;AACA,SAAO,eAAe,OAAO,sBAAsB,qBAAqB,CAAC;AAC3E;AAYA,IAAM,SAA4B,kBAAW,SAASC,QAAO,OAAO,cAAc;AAChF,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,IACxB,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,iBAAiB,sBAAsB;AAAA,EACzC,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,UAAS;AACxD,QAAM,YAAkB,cAAO;AAC/B,MAAI,kBAAkB;AACtB,MAAI,OAAO,MAAM,SAAS,UAAU;AAClC,sBAAkB,MAAM;AAAA,EAC1B,WAAW,MAAM,QAAQ,MAAM,IAAI;AACjC,sBAAkB;AAAA,EACpB;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,UAAU,SAAS,CAAC,GAAG,OAAO;AAAA,IAChC;AAAA,IACA;AAAA,EACF,CAAC,CAAC;AACF,EAAM,2BAAoB,QAAQ,OAAO;AAAA,IACvC,cAAc,MAAM;AAClB,sBAAgB,IAAI;AACpB,gBAAU,QAAQ,MAAM;AAAA,IAC1B;AAAA,EACF,IAAI,CAAC,eAAe,CAAC;AACrB,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,mBAAkB,UAAU;AAC5C,QAAM,iBAAiB,MAAM,QAAQ,MAAM,KAAK,MAAM;AACtD,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,wBAAwB;AAAA,IACxB,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACrD;AAAA,EACF,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,OAAO,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhF,QAAQ,mBAAAC,QAAU,UAAU,CAAC,mBAAAA,QAAU,MAAM,mBAAAA,QAAU,MAAM;AAAA,IAC3D,SAAS,mBAAAA,QAAU,MAAM;AAAA,MACvB,cAAc,mBAAAA,QAAU,KAAK;AAAA,IAC/B,CAAC;AAAA,EACH,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAIH,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,uBAAuB,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIjC,MAAM,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,gBAAgB,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK1B,iBAAiB,mBAAAA,QAAgD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjE,WAAW,mBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,mBAAAA,QAAU,UAAU,CAAC,mBAAAA,QAAU,MAAM,mBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,mBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,mBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,IAAI,mBAAAA,QAAU;AAChB,IAAI;;;AGxJJ,IAAAC,UAAuB;AACvB,IAAAC,qBAAsB;AACtB;;;ACJA,IAAAC,UAAuB;AACvB,IAAM,kBAAqC,sBAAc,IAAI;AAC7D,IAAI,MAAuC;AACzC,kBAAgB,cAAc;AAChC;;;ACFA,IAAAC,UAAuB;;;ACAvB;AACA,IAAAC,UAAuB;AACvB,SAAS,SAAS,GAAG,GAAG;AACtB,SAAO,MAAM;AACf;AACA,IAAM,eAAe,CAAC;AACtB,IAAM,OAAO,MAAM;AAAC;AAMpB,SAAS,mBAAmB,eAAe,iBAAiB;AAC1D,QAAM,iBAAiB,SAAS,CAAC,GAAG,aAAa;AACjD,SAAO,KAAK,eAAe,EAAE,QAAQ,SAAO;AAC1C,QAAI,gBAAgB,GAAG,MAAM,QAAW;AACtC,qBAAe,GAAG,IAAI,gBAAgB,GAAG;AAAA,IAC3C;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAMA,SAAS,wBAAwB,YAAY;AAC3C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,2BAAiC,eAAO,YAAY;AAC1D,EAAM,kBAAU,MAAM;AACpB,QAAI,cAAc,YAAY,MAAM;AAElC;AAAA,IACF;AACA,UAAM,gBAAgB,mBAAmB,yBAAyB,SAAS,eAAe;AAC1F,WAAO,KAAK,SAAS,EAAE,QAAQ,SAAO;AACpC,UAAI;AAEJ,YAAM,iBAAiB,sBAAsB,eAAe,GAAG,MAAM,OAAO,sBAAsB;AAClG,YAAM,gBAAgB,UAAU,GAAG;AACnC,YAAM,oBAAoB,cAAc,GAAG;AAC3C,UAAI,qBAAqB,QAAQ,iBAAiB,QAAQ,qBAAqB,QAAQ,iBAAiB,QAAQ,qBAAqB,QAAQ,iBAAiB,QAAQ,CAAC,cAAc,eAAe,iBAAiB,GAAG;AACtN,YAAI,QAAQ;AACZ,yBAAiB,QAAQ,eAAe,SAAS,cAAc,QAAQ,UAAU,OAAO,SAAS,MAAM,KAAK,gBAAgB,QAAQ,cAAc,QAAQ,SAAS,OAAO,QAAQ,IAAI,SAAS;AAAA,MACjM;AAAA,IACF,CAAC;AACD,6BAAyB,UAAU;AACnC,kBAAc,UAAU;AAAA,EAC1B,GAAG,CAAC,0BAA0B,WAAW,eAAe,eAAe,gBAAgB,eAAe,CAAC;AACzG;AA0BO,SAAS,uBAAuB,YAAY;AACjD,QAAM,gBAAsB,eAAO,IAAI;AACvC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB;AAAA,IACA,gBAAgB;AAAA,EAClB,IAAI;AACJ,QAAM,qBAA2B,eAAO,eAAe;AACvD,MAAI,MAAuC;AAEzC,IAAM,kBAAU,MAAM;AACpB,aAAO,KAAK,eAAe,EAAE,QAAQ,SAAO;AAC1C,YAAI,mBAAmB,QAAQ,GAAG,MAAM,UAAa,gBAAgB,GAAG,MAAM,QAAW;AACvF,kBAAQ,MAAM,2BAA2B,gBAAgB,OAAO,aAAa,eAAe,aAAa,sDAAsD,GAAG,EAAE;AAAA,QACtK;AACA,YAAI,mBAAmB,QAAQ,GAAG,MAAM,UAAa,gBAAgB,GAAG,MAAM,QAAW;AACvF,kBAAQ,MAAM,2BAA2B,gBAAgB,OAAO,aAAa,eAAe,aAAa,uDAAuD,GAAG,EAAE;AAAA,QACvK;AAAA,MACF,CAAC;AAAA,IACH,GAAG,CAAC,iBAAiB,aAAa,CAAC;AAAA,EACrC;AAGA,QAAM,6BAAmC,oBAAY,CAAC,OAAO,WAAW;AACtE,kBAAc,UAAU;AACxB,UAAM,kBAAkB,mBAAmB,OAAO,eAAe;AACjE,UAAM,WAAW,QAAQ,iBAAiB,MAAM;AAChD,WAAO;AAAA,EACT,GAAG,CAAC,iBAAiB,OAAO,CAAC;AAC7B,QAAM,CAAC,WAAW,QAAQ,IAAU,mBAAW,4BAA4B,YAAY;AAGvF,QAAM,sBAA4B,oBAAY,YAAU;AACtD,aAAS,SAAS,CAAC,GAAG,QAAQ;AAAA,MAC5B,SAAS;AAAA,IACX,CAAC,CAAC;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAClB,0BAAwB;AAAA,IACtB;AAAA,IACA;AAAA,IACA,gBAAgB,kBAAkB,OAAO,iBAAiB;AAAA,IAC1D,eAAe,iBAAiB,OAAO,gBAAgB;AAAA,IACvD;AAAA,IACA;AAAA,EACF,CAAC;AACD,SAAO,CAAC,mBAAmB,WAAW,eAAe,GAAG,mBAAmB;AAC7E;;;ACtIO,IAAM,sBAAsB;AAAA,EACjC,MAAM;AAAA,EACN,eAAe;AAAA,EACf,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AACT;;;ACLO,SAAS,gBAAgB,OAAO,QAAQ;AAC7C,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,oBAAoB;AACvB,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,OAAO;AAAA,MACvB;AAAA,IACF,KAAK,oBAAoB;AACvB,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,OAAO;AAAA,MACvB;AAAA,IACF,KAAK,oBAAoB;AACvB,aAAO;AAAA,QACL,MAAM,CAAC,MAAM;AAAA,QACb,cAAc,OAAO;AAAA,MACvB;AAAA,IACF,KAAK,oBAAoB;AACvB,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,OAAO;AAAA,MACvB;AAAA,IACF,KAAK,oBAAoB;AACvB,aAAO;AAAA,QACL,MAAM;AAAA,QACN,cAAc,OAAO;AAAA,MACvB;AAAA,IACF;AACE,YAAM,IAAI,MAAM,kBAAkB;AAAA,EACtC;AACF;;;AHdO,SAAS,YAAY,aAAa,CAAC,GAAG;AAC3C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB,IAAI;AACJ,QAAM,CAAC,SAAS,UAAU,IAAU,iBAAS,EAAE;AAC/C,QAAM,CAAC,gBAAgB,iBAAiB,IAAU,iBAAS,IAAI;AAC/D,QAAM,iBAAuB,eAAO,IAAI;AACxC,QAAM,oBAA0B,oBAAY,CAAC,OAAO,OAAO,OAAO,WAAW;AAC3E,QAAI,UAAU,QAAQ;AACpB,sBAAgB,QAAQ,aAAa,OAAO,KAAK;AAAA,IACnD;AACA,mBAAe,UAAU;AAAA,EAC3B,GAAG,CAAC,YAAY,CAAC;AACjB,QAAM,kBAAwB,gBAAQ,MAAM,aAAa,SAAY;AAAA,IACnE,MAAM;AAAA,EACR,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAClB,QAAM,CAAC,OAAO,QAAQ,IAAI,uBAAuB;AAAA,IAC/C;AAAA,IACA,cAAc,cAAc;AAAA,MAC1B,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,IAAI;AAAA,MACF,MAAM;AAAA,MACN,cAAc;AAAA,IAChB;AAAA,IACA,eAAe;AAAA,IACf,SAAS;AAAA,IACT;AAAA,EACF,CAAC;AACD,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,QAAQ,eAAe,YAAY,QAAQ,eAAe,YAAY,oBAAoB,MAAM;AACzG,wBAAkB,QAAQ,eAAe,MAAM;AAAA,IACjD;AAAA,EACF,GAAG,CAAC,MAAM,MAAM,cAAc,CAAC;AAC/B,QAAM,eAAe;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA,MAAM,MAAM;AAAA,EACd;AACF;;;AFjDA,IAAAC,uBAA4B;AAC5B,SAAS,SAAS,OAAO;AACvB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,aAAoB,qBAAAC,KAAK,gBAAgB,UAAU;AAAA,IACjD,OAAO;AAAA,IACP;AAAA,EACF,CAAC;AACH;AACA,OAAwC,SAAS,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlF,UAAU,mBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,aAAa,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIvB,cAAc,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,MAAM,mBAAAA,QAAU;AAClB,IAAI;AACJ,IAAI,MAAuC;AAEzC,WAAS,WAAgB,IAAI,UAAU,SAAS,SAAS;AAC3D;;;AM7DA;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,qBAAsB;AACtB;;;ACPA,IAAAC,UAAuB;AAIvB,IAAM,qBAAwC,sBAAc,MAAS;AACrE,IAAI,MAAuC;AACzC,qBAAmB,cAAc;AACnC;;;ACLA,IAAMC,kBAAiB;AAChB,SAAS,2BAA2B,MAAM;AAC/C,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,qBAAqBE,wBAAuBF,iBAAgB,CAAC,QAAQ,YAAY,SAAS,UAAU,WAAW,UAAU,CAAC;;;AFOvI,IAAAG,uBAA4B;AAT5B,IAAMC,aAAY,CAAC,gBAAgB,YAAY,YAAY,SAAS,YAAY,YAAY,aAAa,SAAS,OAAO;AAUzH,SAAS,SAAS,OAAO;AACvB,SAAO,SAAS,QAAQ,EAAE,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,MAAM,UAAU;AACrF;AACA,SAASC,mBAAkB,YAAY;AACrC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,WAAW,WAAW,SAAS,SAAS,UAAU,UAAU,YAAY,UAAU;AAAA,EAC3H;AACA,SAAO,eAAe,OAAO,sBAAsB,0BAA0B,CAAC;AAChF;AAuCA,IAAM,cAAiC,mBAAW,SAASC,aAAY,OAAO,cAAc;AAC1F,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,QAAQ;AAAA,IACR;AAAA,IACA,WAAW;AAAA,IACX,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,OAAO;AAAA,EACT,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,UAAS;AACxD,QAAM,CAAC,OAAO,QAAQ,IAAI,cAAc;AAAA,IACtC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACT,CAAC;AACD,QAAM,SAAS,SAAS,KAAK;AAC7B,QAAM,CAAC,cAAc,UAAU,IAAU,iBAAS,KAAK;AACvD,QAAM,UAAU,gBAAgB,CAAC;AACjC,EAAM,kBAAU,MAAM,WAAW,eAAa,WAAW,QAAQ,SAAS,GAAG,CAAC,QAAQ,CAAC;AACvF,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,eAAqB,gBAAQ,MAAM;AACvC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,MAAM;AACZ,mBAAW,KAAK;AAAA,MAClB;AAAA,MACA,UAAU,WAAS;AACjB,iBAAS,MAAM,OAAO,KAAK;AAC3B,oBAAY,QAAQ,SAAS,KAAK;AAAA,MACpC;AAAA,MACA,SAAS,MAAM;AACb,mBAAW,IAAI;AAAA,MACjB;AAAA,MACA;AAAA,MACA,OAAO,SAAS,OAAO,QAAQ;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,UAAU,OAAO,QAAQ,SAAS,UAAU,UAAU,UAAU,KAAK,CAAC;AAC1E,QAAM,UAAUC,mBAAkB,UAAU;AAC5C,QAAM,iBAAiB,MAAM;AAC3B,QAAI,OAAO,aAAa,YAAY;AAClC,aAAO,SAAS,YAAY;AAAA,IAC9B;AACA,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL,UAAU,eAAe;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,KAAK,mBAAmB,UAAU;AAAA,IACpD,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,MAAM,SAAS,CAAC,GAAG,SAAS,CAAC;AAAA,EAC3D,CAAC;AACH,CAAC;AACD,OAAwC,YAAY,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrF,UAAU,mBAAAC,QAAgD,UAAU,CAAC,mBAAAA,QAAU,MAAM,mBAAAA,QAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,EAIpG,WAAW,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,cAAc,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,OAAO,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIjB,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,UAAU,mBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,WAAW,mBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,mBAAAA,QAAU,UAAU,CAAC,mBAAAA,QAAU,MAAM,mBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,mBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,mBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,OAAO,mBAAAA,QAAU;AACnB,IAAI;;;AGpMJ,IAAAC,UAAuB;AAYhB,SAAS,wBAAwB;AACtC,SAAa,mBAAW,kBAAkB;AAC5C;;;ACdA;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,kBAAiB;AAChB,SAAS,qBAAqB,MAAM;AACzC,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,eAAeE,wBAAuBF,iBAAgB,CAAC,QAAQ,eAAe,WAAW,YAAY,SAAS,aAAa,SAAS,kBAAkB,mBAAmB,gBAAgB,YAAY,CAAC;;;ACJnN;AACA;AACA,IAAAG,UAAuB;AACvB;AAaO,SAAS,SAAS,aAAa,CAAC,GAAG;AACxC,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,UAAU,eAAe;AAAA,IACzB,OAAO,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,eAAe;AAAA,IACzB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,IAAI;AACJ,QAAM,qBAAqB,sBAAsB;AACjD,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI,oBAAoB;AACtB,QAAI,uBAAuB,uBAAuB;AAClD,mBAAe;AACf,gBAAY,wBAAwB,mBAAmB,aAAa,OAAO,wBAAwB;AACnG,aAAS,wBAAwB,mBAAmB,UAAU,OAAO,wBAAwB;AAC7F,gBAAY,wBAAwB,mBAAmB,aAAa,OAAO,wBAAwB;AACnG,YAAQ,mBAAmB;AAC3B,QAAI,MAAuC;AACzC,YAAM,oBAAoB,CAAC,gBAAgB,YAAY,SAAS,YAAY,OAAO,EAAE,OAAO,UAAQ,WAAW,IAAI,MAAM,MAAS;AAClI,UAAI,kBAAkB,SAAS,GAAG;AAChC,gBAAQ,KAAK,CAAC,qEAAqE,6EAA6E,kBAAkB,kBAAkB,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,MAC9N;AAAA,IACF;AAAA,EACF,OAAO;AACL,mBAAe;AACf,eAAW;AACX,YAAQ;AACR,eAAW;AACX,YAAQ;AAAA,EACV;AACA,QAAM;AAAA,IACJ,SAAS;AAAA,EACX,IAAU,eAAO,SAAS,IAAI;AAC9B,QAAM,wBAA8B,oBAAY,cAAY;AAC1D,QAAI,MAAuC;AACzC,UAAI,YAAY,SAAS,aAAa,WAAW,CAAC,SAAS,OAAO;AAChE,gBAAQ,MAAM,CAAC,iEAAiE,kDAAkD,6DAA6D,EAAE,KAAK,IAAI,CAAC;AAAA,MAC7M;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AACL,QAAM,WAAiB,eAAO,IAAI;AAClC,QAAM,iBAAiB,WAAW,UAAU,cAAc,qBAAqB;AAC/E,QAAM,CAAC,SAAS,UAAU,IAAU,iBAAS,KAAK;AAIlD,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,sBAAsB,YAAY,SAAS;AAC9C,iBAAW,KAAK;AAGhB,gBAAU,QAAQ,OAAO;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,oBAAoB,UAAU,SAAS,MAAM,CAAC;AAClD,QAAM,cAAc,mBAAiB,WAAS;AAC5C,QAAI;AAGJ,QAAI,sBAAsB,QAAQ,mBAAmB,UAAU;AAC7D,YAAM,gBAAgB;AACtB;AAAA,IACF;AACA,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC1G,QAAI,sBAAsB,mBAAmB,SAAS;AACpD,UAAI;AACJ,4BAAsB,SAAS,wBAAwB,mBAAmB,YAAY,QAAQ,sBAAsB,KAAK,kBAAkB;AAAA,IAC7I,OAAO;AACL,iBAAW,IAAI;AAAA,IACjB;AAAA,EACF;AACA,QAAMC,cAAa,mBAAiB,WAAS;AAC3C,QAAI;AACJ,KAAC,wBAAwB,cAAc,WAAW,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AACzG,QAAI,sBAAsB,mBAAmB,QAAQ;AACnD,yBAAmB,OAAO;AAAA,IAC5B,OAAO;AACL,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AACA,QAAM,eAAe,mBAAiB,CAAC,UAAU,SAAS;AACxD,QAAI,wBAAwB;AAC5B,QAAI,CAAC,cAAc;AACjB,YAAM,UAAU,MAAM,UAAU,SAAS;AACzC,UAAI,WAAW,MAAM;AACnB,cAAM,IAAI,MAAM,OAAwC,0KAA0K,sBAAuB,EAAE,CAAC;AAAA,MAC9P;AAAA,IACF;AACA,0BAAsB,SAAS,yBAAyB,mBAAmB,aAAa,QAAQ,uBAAuB,KAAK,oBAAoB,KAAK;AAGrJ,KAAC,wBAAwB,cAAc,aAAa,QAAQ,sBAAsB,KAAK,eAAe,OAAO,GAAG,IAAI;AAAA,EACtH;AACA,QAAM,cAAc,mBAAiB,WAAS;AAC5C,QAAI;AACJ,QAAI,SAAS,WAAW,MAAM,kBAAkB,MAAM,QAAQ;AAC5D,eAAS,QAAQ,MAAM;AAAA,IACzB;AACA,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,EAC5G;AACA,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAE3C,UAAM,qBAAqB,qBAAqB,YAAY,CAAC,UAAU,YAAY,SAAS,CAAC;AAC7F,UAAM,wBAAwB,SAAS,CAAC,GAAG,oBAAoB,qBAAqB,aAAa,CAAC;AAClG,WAAO,SAAS,CAAC,GAAG,eAAe,uBAAuB;AAAA,MACxD,SAAS,YAAY,qBAAqB;AAAA,IAC5C,CAAC;AAAA,EACH;AACA,QAAM,gBAAgB,CAAC,gBAAgB,CAAC,MAAM;AAC5C,UAAM,qBAAqB;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,wBAAwB,SAAS,CAAC,GAAG,oBAAoB,qBAAqB,aAAa,CAAC;AAClG,UAAM,sBAAsB,SAAS,CAAC,GAAG,uBAAuB;AAAA,MAC9D,QAAQA,YAAW,qBAAqB;AAAA,MACxC,UAAU,aAAa,qBAAqB;AAAA,MAC5C,SAAS,YAAY,qBAAqB;AAAA,IAC5C,CAAC;AACD,WAAO,SAAS,CAAC,GAAG,qBAAqB;AAAA,MACvC,gBAAgB,SAAS;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,GAAG,eAAe;AAAA,MAChB,KAAK;AAAA,IACP,GAAG,mBAAmB;AAAA,EACxB;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACF;AACF;;;AFzJA,IAAAC,uBAA4B;AAC5B,IAAAA,uBAA8B;AAV9B,IAAMC,aAAY,CAAC,oBAAoB,cAAc,mBAAmB,gBAAgB,aAAa,aAAa,gBAAgB,YAAY,gBAAgB,SAAS,MAAM,aAAa,QAAQ,WAAW,YAAY,aAAa,WAAW,WAAW,UAAU,eAAe,YAAY,YAAY,kBAAkB,SAAS,QAAQ,QAAQ,aAAa,SAAS,WAAW,SAAS;AAWlY,IAAMC,qBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,SAAS,SAAS,WAAW,WAAW,QAAQ,kBAAkB,KAAK,eAAe,aAAa,aAAa,QAAQ,cAAc,KAAK,gBAAgB,QAAQ,YAAY,KAAK,YAAY;AAAA,IACvO,OAAO,CAAC,SAAS,YAAY,YAAY,aAAa,WAAW;AAAA,EACnE;AACA,SAAO,eAAe,OAAO,sBAAsB,oBAAoB,CAAC;AAC1E;AAYA,IAAM,QAA2B,mBAAW,SAASC,OAAM,OAAO,cAAc;AAC9E,MAAI,aAAa,iBAAiB;AAClC,QAAM;AAAA,IACF,oBAAoB;AAAA,IACpB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT;AAAA,IACA;AAAA,EACF,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,UAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,IAAI,SAAS;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,OAAO,CAAC,YAAY,YAAY,OAAO,WAAW,SAAS;AACjE,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC,UAAU;AAAA,IACV,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,mBAAkB,UAAU;AAC5C,QAAM,iBAAiB;AAAA,IACrB,oBAAoB;AAAA,IACpB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,CAAC,QAAQ,MAAM,SAAS;AAAA,EACrC,CAAC;AACD,QAAM,iBAAiB,aAAa,kBAAkB,MAAM,aAAa,OAAO,kBAAkB,cAAc,eAAe,MAAM,UAAU,OAAO,eAAe;AACrK,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,cAAc,mBAAiB;AAC7B,aAAO,cAAc,SAAS,CAAC,GAAG,gBAAgB,aAAa,CAAC;AAAA,IAClE;AAAA,IACA,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB,SAAS;AAAA,MACxB,MAAM,YAAY,OAAO;AAAA,IAC3B,GAAG,aAAa,CAAC,gBAAgB,cAAc,KAAK;AAAA,MAClD,SAAS,QAAQ;AAAA,MACjB,SAAS,QAAQ;AAAA,IACnB,CAAC;AAAA,IACD;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,MAAI,MAAuC;AACzC,QAAI,WAAW;AACb,UAAI,MAAM;AACR,YAAI,WAAW,SAAS;AACtB,kBAAQ,KAAK,0FAA0F;AAAA,QACzG;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,aAAoB,qBAAAE,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACtD,UAAU,CAAC,oBAA6B,qBAAAC,KAAK,gBAAgB,SAAS,CAAC,GAAG,UAAU,CAAC,GAAG,YAAY;AAAA,EACtG,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,MAAM,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/E,oBAAoB,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAI9B,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIxB,mBAAmB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIxB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIjB,IAAI,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAId,UAAU,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM;AAAA,IAC7D,SAAS,oBAAAA,QAAU;AAAA,EACrB,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAIH,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,QAAQ,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIlB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,IAChB,UAAU,oBAAAA,QAAU;AAAA,EACtB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,gBAAgB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK1B,MAAM,oBAAAA,QAAgD,MAAM,CAAC,UAAU,YAAY,SAAS,QAAQ,kBAAkB,SAAS,QAAQ,UAAU,SAAS,SAAS,UAAU,YAAY,SAAS,SAAS,SAAS,UAAU,UAAU,OAAO,QAAQ,QAAQ,OAAO,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,EAI7Q,OAAO,oBAAAA,QAAU;AACnB,IAAI;;;AGnTJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;;;ACLA,IAAMC,kBAAiB;AAChB,SAAS,oBAAoB,MAAM;AACxC,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,cAAcE,wBAAuBF,iBAAgB,CAAC,QAAQ,WAAW,UAAU,CAAC;;;ACJjG;AACA,IAAAG,UAAuB;AACvB;;;ACJA;;;ACEA;AACA,IAAAC,UAAuB;AACvB;;;ACJO,IAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,gBAAgB;AAClB;;;ACXA;AAaA,SAAS,yBAAyB,cAAc,iBAAiB,OAAO,sBAAsB,gBAAgB,YAAY;AACxH,MAAI,MAAM,WAAW,KAAK,CAAC,wBAAwB,MAAM,MAAM,CAAC,MAAM,cAAc,eAAe,MAAM,SAAS,CAAC,GAAG;AACpH,WAAO;AAAA,EACT;AACA,MAAI,YAAY;AAChB,aAAS;AAEP,QAAI,CAAC,cAAc,oBAAoB,UAAU,cAAc,MAAM,UAAU,CAAC,cAAc,oBAAoB,cAAc,cAAc,IAAI;AAChJ,aAAO;AAAA,IACT;AACA,UAAM,oBAAoB,uBAAuB,QAAQ,eAAe,MAAM,SAAS,GAAG,SAAS;AACnG,QAAI,mBAAmB;AACrB,mBAAa,oBAAoB,SAAS,IAAI;AAC9C,UAAI,YAAY;AACd,qBAAa,YAAY,MAAM,UAAU,MAAM;AAAA,MACjD;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAWO,SAAS,cAAc,4BAA4BC,SAAQ,SAAS;AACzE,MAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAKJ,QAAM,0BAA0B,oBAAoB,QAAQ,IAAI;AAChE,QAAM,WAAW,MAAM,SAAS;AAChC,QAAM,6BAA6B,8BAA8B,OAAO,KAAK,MAAM,UAAU,UAAQ,aAAa,MAAM,0BAA0B,CAAC;AACnJ,MAAI;AACJ,MAAI;AACJ,MAAI,aAAa,CAAC;AAClB,UAAQA,SAAQ;AAAA,IACd,KAAK;AACH,UAAI,4BAA4B,IAAI;AAClC,eAAO;AAAA,MACT;AACA,2BAAqB;AACrB,wBAAkB;AAClB,mBAAa;AACb;AAAA,IACF,KAAK;AACH,2BAAqB;AACrB,wBAAkB;AAClB,mBAAa;AACb;AAAA,IACF,KAAK;AACH,2BAAqB;AACrB,wBAAkB;AAClB,mBAAa;AACb;AAAA,IACF,SACE;AACE,YAAM,WAAW,6BAA6BA;AAC9C,UAAI,WAAW,GAAG;AAChB,YAAI,CAAC,cAAc,+BAA+B,MAAM,KAAK,IAAIA,OAAM,IAAI,GAAG;AAC5E,+BAAqB;AACrB,4BAAkB;AAAA,QACpB,OAAO;AACL,+BAAqB;AACrB,4BAAkB;AAAA,QACpB;AAAA,MACF,WAAW,WAAW,UAAU;AAC9B,YAAI,CAAC,cAAc,KAAK,IAAIA,OAAM,IAAI,GAAG;AACvC,+BAAqB;AACrB,4BAAkB;AAAA,QACpB,OAAO;AACL,+BAAqB;AACrB,4BAAkB;AAAA,QACpB;AAAA,MACF,OAAO;AACL,6BAAqB;AACrB,0BAAkBA,WAAU,IAAI,SAAS;AAAA,MAC3C;AAAA,IACF;AAAA,EACJ;AACA,QAAM,YAAY,yBAAyB,oBAAoB,iBAAiB,OAAO,wBAAwB,gBAAgB,UAAU;AAGzI,MAAI,cAAc,MAAM,+BAA+B,QAAQ,CAAC,eAAe,4BAA4B,0BAA0B,GAAG;AACtI,WAAO;AAAA,EACT;AACA,UAAQ,mBAAmB,MAAM,SAAS,MAAM,OAAO,mBAAmB;AAC5E;AAYO,SAAS,gBAAgB,MAAM,gBAAgB,eAAe,cAAc;AACjF,MAAI,kBAAkB,QAAQ;AAC5B,WAAO,CAAC;AAAA,EACV;AACA,MAAI,kBAAkB,UAAU;AAE9B,QAAI,aAAa,eAAe,CAAC,GAAG,IAAI,GAAG;AACzC,aAAO;AAAA,IACT;AACA,WAAO,CAAC,IAAI;AAAA,EACd;AAGA,MAAI,eAAe,KAAK,QAAM,aAAa,IAAI,IAAI,CAAC,GAAG;AACrD,WAAO,eAAe,OAAO,QAAM,CAAC,aAAa,IAAI,IAAI,CAAC;AAAA,EAC5D;AAGA,SAAO,CAAC,GAAG,gBAAgB,IAAI;AACjC;AAUO,SAAS,oBAAoB,MAAM,OAAO,SAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,YAAY,MAAM,UAAU,OAAK,aAAa,MAAM,CAAC,CAAC;AAC5D,MAAI,eAAe,MAAM,SAAS,GAAG;AACnC,WAAO;AAAA,EACT;AAGA,QAAM,oBAAoB,gBAAgB,MAAM,gBAAgB,eAAe,YAAY;AAC3F,SAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IACzB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EACpB,CAAC;AACH;AACA,SAAS,cAAc,KAAK,OAAO,SAAS;AAC1C,QAAM,0BAA0B,MAAM;AACtC,QAAM;AAAA,IACJ;AAAA,IACA,UAAAC;AAAA,EACF,IAAI;AACJ,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyB,SAAS,OAAO;AAAA,MAC3E,CAAC;AAAA,IACH,KAAK;AACH,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyB,OAAO,OAAO;AAAA,MACzE,CAAC;AAAA,IACH,KAAK;AACH,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyB,CAACA,WAAU,OAAO;AAAA,MAC7E,CAAC;AAAA,IACH,KAAK;AACH,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyBA,WAAU,OAAO;AAAA,MAC5E,CAAC;AAAA,IACH,KAAK;AACH,UAAI,gBAAgB,YAAY;AAC9B;AAAA,MACF;AACA,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyB,IAAI,OAAO;AAAA,MACtE,CAAC;AAAA,IACH,KAAK;AACH,UAAI,gBAAgB,YAAY;AAC9B;AAAA,MACF;AACA,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyB,GAAG,OAAO;AAAA,MACrE,CAAC;AAAA,IACH,KAAK,aACH;AACE,UAAI,gBAAgB,YAAY;AAC9B;AAAA,MACF;AACA,YAAMD,UAAS,gBAAgB,mBAAmB,KAAK;AACvD,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyBA,SAAQ,OAAO;AAAA,MAC1E,CAAC;AAAA,IACH;AAAA,IACF,KAAK,cACH;AACE,UAAI,gBAAgB,YAAY;AAC9B;AAAA,MACF;AACA,YAAMA,UAAS,gBAAgB,mBAAmB,IAAI;AACtD,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB,cAAc,yBAAyBA,SAAQ,OAAO;AAAA,MAC1E,CAAC;AAAA,IACH;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,UAAI,MAAM,qBAAqB,MAAM;AACnC,eAAO;AAAA,MACT;AACA,aAAO,oBAAoB,MAAM,kBAAkB,OAAO,OAAO;AAAA,IACnE;AACE;AAAA,EACJ;AACA,SAAO;AACT;AACA,SAAS,WAAW,OAAO,SAAS;AAClC,MAAI,QAAQ,oBAAoB,OAAO;AACrC,WAAO;AAAA,EACT;AACA,SAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IACzB,kBAAkB;AAAA,EACpB,CAAC;AACH;AACA,SAAS,oBAAoB,WAAW,cAAc,eAAe;AACnE,MAAI;AACJ,QAAM,QAAQ,iBAAiB,cAAc,SAAS,MAAM,OAAO,SAAS,eAAe,KAAK,EAAE,YAAY;AAC9G,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAE9B,WAAO;AAAA,EACT;AACA,SAAO,KAAK,QAAQ,YAAY,MAAM;AACxC;AACA,SAAS,qBAAqB,OAAO,cAAc,SAAS;AAC1D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,uBAAuB,aAAa,SAAS;AACnD,MAAI,WAAW,uBAAuB,MAAM,mBAAmB,cAAc,MAAM,kBAAkB,GAAG,OAAO;AAC/G,WAASE,SAAQ,GAAGA,SAAQ,MAAM,QAAQA,UAAS,GAAG;AAEpD,QAAI,CAAC,YAAY,CAAC,wBAAwB,MAAM,qBAAqB,UAAU;AAC7E,aAAO;AAAA,IACT;AACA,QAAI,oBAAoB,UAAU,cAAc,eAAe,MAAM,CAAC,eAAe,UAAU,MAAM,QAAQ,QAAQ,CAAC,KAAK,yBAAyB;AAElJ,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,kBAAkB;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,eAAW,cAAc,UAAU,GAAG,OAAO;AAAA,EAC/C;AAGA,SAAO;AACT;AACA,SAAS,kBAAkB,OAAO,eAAe,OAAO,SAAS;AAC/D,MAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,MAAI,sBAAsB;AAC1B,MAAI,MAAM,oBAAoB,MAAM;AAClC,QAAI;AACJ,2BAAuB,cAAc,MAAM,KAAK,UAAQ,aAAa,MAAM,MAAM,gBAAgB,CAAC,MAAM,OAAO,cAAc;AAAA,EAC/H,WAAW,oBAAoB,SAAS,cAAc,WAAW,GAAG;AAClE,0BAAsB,cAAc,MAAM,SAAS,OAAO;AAAA,EAC5D;AAGA,QAAM,kBAAkB,wBAAwB,MAAM,mBAAmB,OAAO,wBAAwB,CAAC;AACzG,QAAM,oBAAoB,eAAe,OAAO,mBAAiB,MAAM,KAAK,UAAQ,aAAa,MAAM,aAAa,CAAC,CAAC;AACtH,SAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IACzB,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,EAClB,CAAC;AACH;AACA,SAAS,qBAAqB,OAAO,SAAS;AAC5C,SAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IACzB,kBAAkB,cAAc,MAAM,SAAS,OAAO;AAAA,EACxD,CAAC;AACH;AACA,SAAS,oBAAoB,OAAO,SAAS;AAC3C,SAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IACzB,kBAAkB,cAAc,MAAM,OAAO,OAAO;AAAA,EACtD,CAAC;AACH;AACA,SAAS,qBAAqB,OAAO,SAAS;AAC5C,SAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IACzB,gBAAgB,CAAC;AAAA,IACjB,kBAAkB,cAAc,MAAM,SAAS,OAAO;AAAA,EACxD,CAAC;AACH;AACO,SAAS,YAAY,OAAO,QAAQ;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,UAAQ,MAAM;AAAA,IACZ,KAAK,gBAAgB;AACnB,aAAO,cAAc,OAAO,KAAK,OAAO,OAAO;AAAA,IACjD,KAAK,gBAAgB;AACnB,aAAO,oBAAoB,OAAO,MAAM,OAAO,OAAO;AAAA,IACxD,KAAK,gBAAgB;AACnB,aAAO,WAAW,OAAO,OAAO;AAAA,IAClC,KAAK,gBAAgB;AACnB,aAAO,qBAAqB,OAAO,OAAO,cAAc,OAAO;AAAA,IACjE,KAAK,gBAAgB;AACnB,aAAO,kBAAkB,OAAO,OAAO,OAAO,eAAe,OAAO,OAAO;AAAA,IAC7E,KAAK,gBAAgB;AACnB,aAAO,qBAAqB,OAAO,OAAO;AAAA,IAC5C,KAAK,gBAAgB;AACnB,aAAO,oBAAoB,OAAO,OAAO;AAAA,IAC3C,KAAK,gBAAgB;AACnB,aAAO,qBAAqB,OAAO,OAAO;AAAA,IAC5C;AACE,aAAO;AAAA,EACX;AACF;;;AC/VA,IAAAC,UAAuB;AACvB,IAAM,gCAAgC;AAW/B,SAAS,kBAAkB,UAAU;AAC1C,QAAM,kBAAwB,eAAO;AAAA,IACnC,cAAc;AAAA,IACd,UAAU;AAAA,EACZ,CAAC;AACD,SAAa,oBAAY,WAAS;AAChC,QAAI,MAAM,IAAI,WAAW,KAAK,MAAM,QAAQ,KAAK;AAC/C,YAAM,eAAe,gBAAgB;AACrC,YAAM,WAAW,MAAM,IAAI,YAAY;AACvC,YAAM,cAAc,YAAY,IAAI;AACpC,UAAI,aAAa,aAAa,SAAS,KAAK,aAAa,YAAY,cAAc,aAAa,WAAW,+BAA+B;AACxI,qBAAa,eAAe;AAAA,MAC9B,WAAW,aAAa,aAAa,WAAW,KAAK,aAAa,aAAa,cAAc;AAE3F,qBAAa,gBAAgB;AAAA,MAC/B;AACA,mBAAa,WAAW;AACxB,eAAS,aAAa,cAAc,KAAK;AAAA,IAC3C;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AACf;;;AHvBA,IAAMC,gBAAe,CAAC;AACtB,IAAMC,QAAO,MAAM;AAAC;AACpB,IAAM,sBAAsB,CAAC,SAAS,YAAY,YAAY;AAC9D,IAAM,wBAAwB,MAAM;AACpC,IAAM,yBAAyB,UAAQ,OAAO,SAAS,WAAW,OAAO,OAAO,IAAI;AACpF,IAAM,yBAAyB,OAAO;AAAA,EACpC,kBAAkB;AAAA,EAClB,gBAAgB,CAAC;AACnB;AAqBA,SAAS,QAAQ,QAAQ;AACvB,QAAM;AAAA,IACJ,kBAAkBD;AAAA,IAClB,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,gBAAgBC;AAAA,IAChB;AAAA,IACA,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,UAAAC,YAAW;AAAA,IACX,uBAAuBF;AAAA,IACvB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB,IAAI;AACJ,MAAI,MAAuC;AACzC,QAAI,oBAAoB,SAAS,qBAAqB,MAAM;AAC1D,YAAM,IAAI,MAAM,0FAA0F;AAAA,IAC5G;AACA,QAAI,oBAAoB,sBAAsB,aAAa,MAAM;AAC/D,YAAM,IAAI,MAAM,+FAA+F;AAAA,IACjH;AAAA,EACF;AACA,QAAM,UAAgB,eAAO,IAAI;AACjC,QAAM,YAAY,WAAW,iBAAiB,OAAO;AACrD,QAAM,wBAA8B,oBAAY,CAAC,OAAO,OAAO,WAAW;AACxE,yBAAqB,QAAQ,kBAAkB,OAAO,OAAO,MAAM;AACnE,QAAI,oBAAoB,SAAS,SAAS,SAAS,WAAW,gBAAgB,aAAa,WAAW,gBAAgB,WAAW,WAAW,gBAAgB,iBAAiB;AAC3K,UAAI;AACJ,2BAAqB,SAAS,qBAAqB,kBAAkB,KAAK,MAAM,QAAQ,mBAAmB,MAAM;AAAA,IACnH;AAAA,EACF,GAAG,CAAC,mBAAmB,mBAAmB,eAAe,CAAC;AAC1D,QAAM,iBAAuB,gBAAQ,OAAO;AAAA,IAC1C,kBAAkB;AAAA,IAClB,gBAAgB,CAAC,cAAc,iBAAiB,eAAe,cAAc,cAAc,YAAY;AAAA,EACzG,IAAI,CAAC,YAAY,CAAC;AAGlB,QAAM,oBAA0B,oBAAY,CAAC,OAAO,OAAO,OAAO,QAAQG,WAAU;AAClF,qBAAiB,QAAQ,cAAc,OAAO,OAAO,OAAO,QAAQA,MAAK;AACzE,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,8BAAsB,OAAO,OAAO,MAAM;AAC1C;AAAA,MACF,KAAK;AACH,oBAAY,QAAQ,SAAS,OAAO,OAAO,MAAM;AACjD;AAAA,MACF;AACE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,uBAAuB,UAAU,aAAa,CAAC;AAInD,QAAM,oBAA0B,gBAAQ,MAAM;AAC5C,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,MACnB;AAAA,MACA,UAAAD;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,wBAAwB,iBAAiB,iBAAiB,gBAAgB,cAAc,OAAO,iBAAiB,uBAAuB,aAAaA,WAAU,eAAe,cAAc,CAAC;AAChM,QAAM,eAAe,gBAAgB;AACrC,QAAM,UAAU,mBAAmB,OAAO,kBAAkB;AAC5D,QAAM,gBAAsB,gBAAQ,MAAM,SAAS,CAAC,GAAG,sBAAsB,iBAAiB,GAAG,CAAC,sBAAsB,iBAAiB,CAAC;AAC1I,QAAM,CAAC,OAAO,QAAQ,IAAI,uBAAuB;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,EACF,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAME,wBAAuB,kBAAkB,CAAC,cAAc,UAAU,SAAS;AAAA,IAC/E,MAAM,gBAAgB;AAAA,IACtB;AAAA,IACA;AAAA,EACF,CAAC,CAAC;AACF,QAAM,gBAAsB,eAAO,CAAC,CAAC;AACrC,EAAM,kBAAU,MAAM;AAGpB,QAAI,eAAe,cAAc,SAAS,OAAO,YAAY,GAAG;AAC9D;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,gBAAgB;AAAA,MACtB,OAAO;AAAA,MACP;AAAA,MACA,eAAe,cAAc;AAAA,IAC/B,CAAC;AACD,kBAAc,UAAU;AACxB,qBAAiB,QAAQ,cAAc,KAAK;AAAA,EAC9C,GAAG,CAAC,OAAO,cAAc,UAAU,aAAa,CAAC;AACjD,QAAM,sBAAsB,sBAAoB,WAAS;AACvD,QAAI;AACJ,KAAC,wBAAwB,iBAAiB,cAAc,QAAQ,sBAAsB,KAAK,kBAAkB,KAAK;AAClH,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,UAAM,uBAAuB,CAAC,QAAQ,OAAO,UAAU,UAAU;AACjE,QAAI,gBAAgB,YAAY;AAC9B,2BAAqB,KAAK,WAAW,WAAW;AAAA,IAClD,OAAO;AACL,2BAAqB,KAAK,aAAa,YAAY;AAAA,IACrD;AACA,QAAI,oBAAoB,oBAAoB;AAK1C,2BAAqB,KAAK,KAAK,OAAO;AAAA,IACxC;AACA,QAAI,qBAAqB,SAAS,MAAM,GAAG,GAAG;AAC5C,YAAM,eAAe;AAAA,IACvB;AACA,aAAS;AAAA,MACP,MAAM,gBAAgB;AAAA,MACtB,KAAK,MAAM;AAAA,MACX;AAAA,IACF,CAAC;AACD,IAAAA,sBAAqB,KAAK;AAAA,EAC5B;AACA,QAAM,mBAAmB,sBAAoB,WAAS;AACpD,QAAI,uBAAuB;AAC3B,KAAC,wBAAwB,iBAAiB,WAAW,QAAQ,sBAAsB,KAAK,kBAAkB,KAAK;AAC/G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,SAAK,mBAAmB,QAAQ,YAAY,QAAQ,iBAAiB,SAAS,MAAM,aAAa,GAAG;AAElG;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,gBAAgB;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,WAAO,SAAS,CAAC,GAAG,eAAe;AAAA,MACjC,yBAAyB,oBAAoB,sBAAsB,oBAAoB,OAAO,UAAU,gBAAgB,IAAI;AAAA,MAC5H,UAAU,oBAAoB,QAAQ,KAAK;AAAA,MAC3C,KAAK;AAAA,IACP,GAAG,uBAAuB;AAAA,MACxB,QAAQ,iBAAiB,qBAAqB;AAAA,MAC9C,WAAW,oBAAoB,qBAAqB;AAAA,IACtD,CAAC;AAAA,EACH;AACA,QAAM,eAAqB,oBAAY,UAAQ;AAC7C,UAAM,YAAY,kBAAkB,OAAO,iBAAiB,CAAC,GAAG,KAAK,WAAS,SAAS,QAAQ,aAAa,MAAM,KAAK,CAAC;AACxH,UAAM,cAAc,oBAAoB,QAAQ,aAAa,MAAM,gBAAgB;AACnF,UAAM,YAAY,oBAAoB;AACtC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,cAAc,gBAAgB,kBAAkB,eAAe,CAAC;AACpE,QAAM,eAAqB,gBAAQ,OAAO;AAAA,IACxC;AAAA,IACA;AAAA,EACF,IAAI,CAAC,UAAU,YAAY,CAAC;AAC5B,EAAM,sBAAc;AAAA,IAClB;AAAA,EACF,CAAC;AACD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACF;AACF;;;AI1OA;AACA,IAAAC,UAAuB;;;ACHvB,IAAAC,UAAuB;AAChB,IAAM,cAAiC,sBAAc,IAAI;AAChE,IAAI,MAAuC;AACzC,cAAY,cAAc;AAC5B;;;ADWO,SAAS,YAAY,YAAY;AACtC,QAAM;AAAA,IACJ,0BAA0B;AAAA,IAC1B;AAAA,EACF,IAAI;AACJ,QAAM,cAAoB,mBAAW,WAAW;AAChD,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,aAAa,IAAI;AACrB,QAAM,oBAA0B,oBAAY,sBAAoB,WAAS;AACvE,QAAI;AACJ,KAAC,wBAAwB,iBAAiB,YAAY,QAAQ,sBAAsB,KAAK,kBAAkB,KAAK;AAChH,QAAI,MAAM,kBAAkB;AAC1B;AAAA,IACF;AACA,QAAI,MAAuC;AACzC,UAAI,SAAS,QAAW;AACtB,cAAM,IAAI,MAAM,CAAC,2DAA2D,sEAAsE,EAAE,KAAK,IAAI,CAAC;AAAA,MAChK;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,gBAAgB;AAAA,MACtB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,UAAU,IAAI,CAAC;AACnB,QAAM,0BAAgC,oBAAY,sBAAoB,WAAS;AAC7E,QAAI;AACJ,KAAC,wBAAwB,iBAAiB,gBAAgB,QAAQ,sBAAsB,KAAK,kBAAkB,KAAK;AACpH,QAAI,MAAM,kBAAkB;AAC1B;AAAA,IACF;AACA,QAAI,MAAuC;AACzC,UAAI,SAAS,QAAW;AACtB,cAAM,IAAI,MAAM,CAAC,2DAA2D,sEAAsE,EAAE,KAAK,IAAI,CAAC;AAAA,MAChK;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,gBAAgB;AAAA,MACtB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,UAAU,IAAI,CAAC;AACnB,MAAI;AACJ,MAAI,WAAW;AACb,eAAW,cAAc,IAAI;AAAA,EAC/B;AACA,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,WAAO,SAAS,CAAC,GAAG,eAAe;AAAA,MACjC,SAAS,kBAAkB,qBAAqB;AAAA,MAChD,eAAe,0BAA0B,wBAAwB,qBAAqB,IAAI;AAAA,MAC1F;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ALlFO,SAAS,YAAY,OAAO,QAAQ;AACzC,MAAI,OAAO,SAAS,gBAAgB,WAAW;AAC7C,WAAO,SAAS,CAAC,GAAG,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,IAC3B,CAAC;AAAA,EACH;AACA,QAAM,WAAW,YAAY,OAAO,MAAM;AAG1C,MAAI,SAAS,qBAAqB,QAAQ,OAAO,QAAQ,MAAM,SAAS,GAAG;AACzE,WAAO,SAAS,CAAC,GAAG,UAAU;AAAA,MAC5B,kBAAkB,OAAO,QAAQ,MAAM,CAAC;AAAA,IAC1C,CAAC;AAAA,EACH;AACA,MAAI,OAAO,SAAS,gBAAgB,SAAS;AAC3C,QAAI,OAAO,MAAM,QAAQ,UAAU;AACjC,aAAO,SAAS,CAAC,GAAG,UAAU;AAAA,QAC5B,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,OAAO,SAAS,gBAAgB,MAAM;AACxC,QAAI;AACJ,QAAI,GAAG,wBAAwB,OAAO,QAAQ,WAAW,YAAY,QAAQ,sBAAsB,SAAS,OAAO,MAAM,aAAa,IAAI;AACxI,UAAI,wBAAwB;AAG5B,YAAM,aAAa,yBAAyB,OAAO,QAAQ,WAAW,YAAY,OAAO,SAAS,uBAAuB,aAAa,IAAI;AAC1I,YAAM,gBAAgB,wBAAwB,OAAO,MAAM,kBAAkB,OAAO,SAAS,sBAAsB,aAAa,eAAe;AAC/I,UAAI,aAAa,gBAAgB,cAAc,cAAc;AAC3D,eAAO;AAAA,MACT;AACA,aAAO,SAAS,CAAC,GAAG,UAAU;AAAA,QAC5B,MAAM;AAAA,QACN,kBAAkB,OAAO,QAAQ,MAAM,CAAC;AAAA,MAC1C,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;;;AOvCA,IAAAC,UAAuB;AAChB,IAAM,2BAA8C,sBAAc,IAAI;AAC7E,IAAI,MAAuC;AACzC,2BAAyB,cAAc;AACzC;AAIA,SAAS,aAAa,UAAU;AAC9B,QAAM,gBAAgB,MAAM,KAAK,SAAS,KAAK,CAAC,EAAE,IAAI,SAAO;AAC3D,UAAM,UAAU,SAAS,IAAI,GAAG;AAChC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACD,gBAAc,KAAK,CAAC,GAAG,MAAM;AAC3B,UAAM,QAAQ,EAAE,QAAQ,IAAI;AAC5B,UAAM,QAAQ,EAAE,QAAQ,IAAI;AAC5B,QAAI,UAAU,QAAQ,UAAU,QAAQ,UAAU,OAAO;AACvD,aAAO;AAAA,IACT;AAGA,WAAO,MAAM,wBAAwB,KAAK,IAAI,KAAK,8BAA8B,IAAI;AAAA,EACvF,CAAC;AACD,SAAO,IAAI,IAAI,cAAc,IAAI,UAAQ,CAAC,KAAK,KAAK,KAAK,OAAO,CAAC,CAAC;AACpE;AAcO,SAAS,oBAAoB;AAClC,QAAM,CAAC,UAAU,WAAW,IAAU,iBAAS,oBAAI,IAAI,CAAC;AACxD,QAAM,cAAoB,eAAO,oBAAI,IAAI,CAAC;AAC1C,QAAM,iBAAuB,oBAAY,SAASC,gBAAe,IAAI;AACnE,gBAAY,QAAQ,OAAO,EAAE;AAC7B,gBAAY,mBAAiB;AAC3B,YAAM,WAAW,IAAI,IAAI,aAAa;AACtC,eAAS,OAAO,EAAE;AAClB,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AACL,QAAM,eAAqB,oBAAY,SAASC,cAAa,IAAI,MAAM;AACrE,QAAI;AACJ,QAAI,OAAO,OAAO,YAAY;AAC5B,8BAAwB,GAAG,YAAY,OAAO;AAAA,IAChD,OAAO;AACL,8BAAwB;AAAA,IAC1B;AACA,gBAAY,QAAQ,IAAI,qBAAqB;AAC7C,gBAAY,mBAAiB;AAC3B,YAAM,WAAW,IAAI,IAAI,aAAa;AACtC,eAAS,IAAI,uBAAuB,IAAI;AACxC,aAAO;AAAA,IACT,CAAC;AACD,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,YAAY,MAAM,eAAe,qBAAqB;AAAA,IACxD;AAAA,EACF,GAAG,CAAC,cAAc,CAAC;AACnB,QAAM,iBAAuB,gBAAQ,MAAM,aAAa,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAC7E,QAAM,eAAqB,oBAAY,SAASC,cAAa,IAAI;AAC/D,WAAO,MAAM,KAAK,eAAe,KAAK,CAAC,EAAE,QAAQ,EAAE;AAAA,EACrD,GAAG,CAAC,cAAc,CAAC;AACnB,QAAM,eAAqB,gBAAQ,OAAO;AAAA,IACxC;AAAA,IACA;AAAA,IACA,mBAAmB,SAAS;AAAA,EAC9B,IAAI,CAAC,cAAc,cAAc,SAAS,IAAI,CAAC;AAC/C,SAAO;AAAA,IACL;AAAA,IACA,UAAU;AAAA,EACZ;AACF;;;ACnFA,IAAAC,UAAuB;AACvB;AAaO,SAAS,gBAAgB,IAAI,cAAc;AAChD,QAAM,UAAgB,mBAAW,wBAAwB;AACzD,MAAI,YAAY,MAAM;AACpB,UAAM,IAAI,MAAM,yDAAyD;AAAA,EAC3E;AACA,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,CAAC,cAAc,eAAe,IAAU,iBAAS,OAAO,OAAO,aAAa,SAAY,EAAE;AAChG,4BAAkB,MAAM;AACtB,UAAM;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA,IACF,IAAI,aAAa,IAAI,YAAY;AACjC,oBAAgB,UAAU;AAC1B,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,cAAc,EAAE,CAAC;AACnC,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,OAAO,iBAAiB,SAAY,QAAQ,aAAa,YAAY,IAAI;AAAA,IACzE,gBAAgB,QAAQ;AAAA,EAC1B;AACF;;;ACtCA;AAeO,SAAS,sBAAsB,eAAe,gBAAgB;AACnE,SAAO,SAAS,iBAAiB,WAAW,CAAC,GAAG;AAC9C,UAAM,cAAc,SAAS,CAAC,GAAG,UAAU,cAAc,QAAQ,CAAC;AAClE,UAAM,SAAS,SAAS,CAAC,GAAG,aAAa,eAAe,WAAW,CAAC;AACpE,WAAO;AAAA,EACT;AACF;;;AVTA,IAAM,wBAAwB;AAAA,EAC5B,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,SAAS;AAAA,EACT,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,gBAAgB;AAClB;AAYO,SAAS,QAAQ,aAAa,CAAC,GAAG;AACvC,MAAI,QAAQ;AACZ,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA,IAAI;AAAA,IACJ,yBAAyB;AAAA,IACzB,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAClB,IAAI;AACJ,QAAM,UAAgB,eAAO,IAAI;AACjC,QAAM,YAAY,WAAW,SAAS,cAAc;AACpD,QAAM,aAAa,SAAS,MAAM,OAAO,MAAM,OAAO,SAAS;AAC/D,QAAM;AAAA,IACJ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACF,KAAK,oBAA0B,mBAAW,eAAe,MAAM,OAAO,oBAAoB;AAI1F,QAAM,kBAAwB,eAAO,IAAI;AACzC,QAAM;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,EAChB,IAAI,kBAAkB;AACtB,QAAM,cAAoB,gBAAQ,MAAM,MAAM,KAAK,SAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/E,QAAM,oBAA0B,oBAAY,YAAU;AACpD,QAAI,uBAAuB;AAC3B,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,YAAQ,yBAAyB,gBAAgB,SAAS,IAAI,MAAM,MAAM,OAAO,SAAS,cAAc,IAAI,YAAY,OAAO,wBAAwB;AAAA,EACzJ,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,iBAAuB,oBAAY,QAAM;AAC7C,QAAI;AACJ,YAAQ,YAAY,SAAS,iBAAiB,SAAS,IAAI,EAAE,MAAM,OAAO,SAAS,eAAe,aAAa;AAAA,EACjH,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,kBAAwB,oBAAY,QAAM;AAC9C,QAAI,gBAAgB;AACpB,aAAS,iBAAiB,SAAS,IAAI,EAAE,MAAM,OAAO,SAAS,eAAe,YAAY,iBAAiB,SAAS,IAAI,EAAE,MAAM,SAAS,iBAAiB,eAAe,IAAI,YAAY,OAAO,SAAS,eAAe;AAAA,EAC1N,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,uBAA6B,gBAAQ,OAAO;AAAA,IAChD,YAAY;AAAA,EACd,IAAI,CAAC,OAAO,CAAC;AACb,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,cAAc;AAAA,IACd,cAAc;AAAA,IACd,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,SAAS;AAAA,EACX,IAAI,QAAQ;AAAA,IACV;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA,iBAAiB,OAAO;AAAA,MACtB,gBAAgB,CAAC;AAAA,MACjB,kBAAkB;AAAA,IACpB;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,cAAc;AAAA,IACd;AAAA,EACF,CAAC;AACD,4BAAkB,MAAM;AACtB,kBAAc,SAAS;AAAA,EACzB,GAAG,CAAC,WAAW,aAAa,CAAC;AAC7B,4BAAkB,MAAM;AACtB,QAAI,SAAS,gBAAgB,OAAO,SAAS,aAAa,UAAU,aAAa,aAAa,QAAQ,WAAW;AAC/G,mBAAa;AAAA,QACX,MAAM,gBAAgB;AAAA,QACtB,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,MAAM,cAAc,YAAY,CAAC;AACrC,EAAM,kBAAU,MAAM;AACpB,QAAI,QAAQ,aAAa,oBAAoB,CAAC,gBAAgB,SAAS;AACrE,UAAI;AACJ,OAAC,iBAAiB,SAAS,IAAI,gBAAgB,MAAM,SAAS,iBAAiB,eAAe,QAAQ,SAAS,iBAAiB,eAAe,YAAY,QAAQ,eAAe,MAAM;AAAA,IAC1L;AAAA,EACF,GAAG,CAAC,MAAM,WAAW,kBAAkB,UAAU,WAAW,CAAC;AAC7D,EAAM,kBAAU,MAAM;AACpB,QAAI;AAEJ,SAAK,mBAAmB,QAAQ,YAAY,QAAQ,iBAAiB,SAAS,SAAS,aAAa,KAAK,qBAAqB,MAAM;AAClI,UAAI;AACJ,kBAAY,SAAS,iBAAiB,SAAS,IAAI,gBAAgB,MAAM,SAAS,iBAAiB,eAAe,IAAI,YAAY,QAAQ,eAAe,MAAM;AAAA,IACjK;AAAA,EACF,GAAG,CAAC,kBAAkB,QAAQ,CAAC;AAC/B,QAAM,mBAAmB,mBAAiB,WAAS;AACjD,QAAI,uBAAuB;AAC3B,KAAC,wBAAwB,cAAc,WAAW,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AACzG,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,SAAK,oBAAoB,QAAQ,YAAY,QAAQ,kBAAkB,SAAS,MAAM,aAAa,KAAK,MAAM,kBAAkB,gBAAgB;AAC9I;AAAA,IACF;AACA,iBAAa;AAAA,MACX,MAAM,oBAAoB;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,sBAAsB,mBAAiB,WAAS;AACpD,QAAI;AACJ,KAAC,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC5G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,QAAI,MAAM,QAAQ,UAAU;AAC1B,mBAAa;AAAA,QACX,MAAM,oBAAoB;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,wBAAwB,CAAC,gBAAgB,CAAC,OAAO;AAAA,IACrD,QAAQ,iBAAiB,aAAa;AAAA,IACtC,WAAW,oBAAoB,aAAa;AAAA,EAC9C;AACA,QAAM,kBAAkB,CAAC,gBAAgB,CAAC,MAAM;AAC9C,UAAM,uBAAuB,sBAAsB,uBAAuB,gBAAgB;AAC1F,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,WAAO,SAAS,CAAC,GAAG,eAAe,uBAAuB,qBAAqB,qBAAqB,GAAG;AAAA,MACrG,IAAI;AAAA,MACJ,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,EAAM,sBAAc;AAAA,IAClB;AAAA,IACA;AAAA,EACF,CAAC;AACD,SAAO;AAAA,IACL,cAAc,SAAS,CAAC,GAAG,+BAA+B,gBAAgB;AAAA,IAC1E,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACF;AACF;;;AW3LA,IAAAC,UAAuB;AAGvB,IAAAC,uBAA4B;AAMrB,SAAS,aAAa,OAAO;AAClC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,mBAAyB,gBAAQ,OAAO;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,UAAU,cAAc,YAAY,CAAC;AAC1C,QAAM,gCAAsC,gBAAQ,OAAO;AAAA,IACzD;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,cAAc,cAAc,iBAAiB,CAAC;AACnD,aAAoB,qBAAAC,KAAK,yBAAyB,UAAU;AAAA,IAC1D,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,YAAY,UAAU;AAAA,MAChD,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;;ACtCA;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACDtB,IAAM,QAAQ,CAAC,OAAO,SAAS,UAAU,MAAM;AAC/C,IAAM,aAAa,CAAC,SAAS,KAAK;AAClC,IAAM,aAA0B,MAAM,OAAO,CAAC,KAAK,SAAS,IAAI,OAAO,MAAM,OAAO,MAAM,WAAW,CAAC,GAAG,OAAO,MAAM,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;AACxI,IAAM,MAAM,KAAK;AACjB,IAAM,MAAM,KAAK;AACjB,IAAM,QAAQ,KAAK;AACnB,IAAM,QAAQ,KAAK;AACnB,IAAM,eAAe,QAAM;AAAA,EACzB,GAAG;AAAA,EACH,GAAG;AACL;AACA,IAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP;AACA,IAAM,uBAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,KAAK;AACP;AACA,SAAS,MAAM,OAAO,OAAO,KAAK;AAChC,SAAO,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC;AACnC;AACA,SAAS,SAAS,OAAO,OAAO;AAC9B,SAAO,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AACtD;AACA,SAAS,QAAQ,WAAW;AAC1B,SAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AACA,SAAS,aAAa,WAAW;AAC/B,SAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AACA,SAAS,gBAAgB,MAAM;AAC7B,SAAO,SAAS,MAAM,MAAM;AAC9B;AACA,SAAS,cAAc,MAAM;AAC3B,SAAO,SAAS,MAAM,WAAW;AACnC;AACA,SAAS,YAAY,WAAW;AAC9B,SAAO,CAAC,OAAO,QAAQ,EAAE,SAAS,QAAQ,SAAS,CAAC,IAAI,MAAM;AAChE;AACA,SAAS,iBAAiB,WAAW;AACnC,SAAO,gBAAgB,YAAY,SAAS,CAAC;AAC/C;AACA,SAAS,kBAAkB,WAAW,OAAO,KAAK;AAChD,MAAI,QAAQ,QAAQ;AAClB,UAAM;AAAA,EACR;AACA,QAAM,YAAY,aAAa,SAAS;AACxC,QAAM,gBAAgB,iBAAiB,SAAS;AAChD,QAAM,SAAS,cAAc,aAAa;AAC1C,MAAI,oBAAoB,kBAAkB,MAAM,eAAe,MAAM,QAAQ,WAAW,UAAU,SAAS,cAAc,UAAU,WAAW;AAC9I,MAAI,MAAM,UAAU,MAAM,IAAI,MAAM,SAAS,MAAM,GAAG;AACpD,wBAAoB,qBAAqB,iBAAiB;AAAA,EAC5D;AACA,SAAO,CAAC,mBAAmB,qBAAqB,iBAAiB,CAAC;AACpE;AACA,SAAS,sBAAsB,WAAW;AACxC,QAAM,oBAAoB,qBAAqB,SAAS;AACxD,SAAO,CAAC,8BAA8B,SAAS,GAAG,mBAAmB,8BAA8B,iBAAiB,CAAC;AACvH;AACA,SAAS,8BAA8B,WAAW;AAChD,SAAO,UAAU,QAAQ,cAAc,eAAa,qBAAqB,SAAS,CAAC;AACrF;AACA,SAAS,YAAY,MAAM,SAAS,KAAK;AACvC,QAAM,KAAK,CAAC,QAAQ,OAAO;AAC3B,QAAM,KAAK,CAAC,SAAS,MAAM;AAC3B,QAAM,KAAK,CAAC,OAAO,QAAQ;AAC3B,QAAM,KAAK,CAAC,UAAU,KAAK;AAC3B,UAAQ,MAAM;AAAA,IACZ,KAAK;AAAA,IACL,KAAK;AACH,UAAI;AAAK,eAAO,UAAU,KAAK;AAC/B,aAAO,UAAU,KAAK;AAAA,IACxB,KAAK;AAAA,IACL,KAAK;AACH,aAAO,UAAU,KAAK;AAAA,IACxB;AACE,aAAO,CAAC;AAAA,EACZ;AACF;AACA,SAAS,0BAA0B,WAAW,eAAe,WAAW,KAAK;AAC3E,QAAM,YAAY,aAAa,SAAS;AACxC,MAAI,OAAO,YAAY,QAAQ,SAAS,GAAG,cAAc,SAAS,GAAG;AACrE,MAAI,WAAW;AACb,WAAO,KAAK,IAAI,UAAQ,OAAO,MAAM,SAAS;AAC9C,QAAI,eAAe;AACjB,aAAO,KAAK,OAAO,KAAK,IAAI,6BAA6B,CAAC;AAAA,IAC5D;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,qBAAqB,WAAW;AACvC,SAAO,UAAU,QAAQ,0BAA0B,UAAQ,gBAAgB,IAAI,CAAC;AAClF;AACA,SAAS,oBAAoB,SAAS;AACpC,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,GAAG;AAAA,EACL;AACF;AACA,SAAS,iBAAiB,SAAS;AACjC,SAAO,OAAO,YAAY,WAAW,oBAAoB,OAAO,IAAI;AAAA,IAClE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AACF;AACA,SAAS,iBAAiB,MAAM;AAC9B,SAAO;AAAA,IACL,GAAG;AAAA,IACH,KAAK,KAAK;AAAA,IACV,MAAM,KAAK;AAAA,IACX,OAAO,KAAK,IAAI,KAAK;AAAA,IACrB,QAAQ,KAAK,IAAI,KAAK;AAAA,EACxB;AACF;;;AC3HA,SAAS,2BAA2B,MAAM,WAAW,KAAK;AACxD,MAAI;AAAA,IACF;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,WAAW,YAAY,SAAS;AACtC,QAAM,gBAAgB,iBAAiB,SAAS;AAChD,QAAM,cAAc,cAAc,aAAa;AAC/C,QAAM,OAAO,QAAQ,SAAS;AAC9B,QAAM,aAAa,aAAa;AAChC,QAAM,UAAU,UAAU,IAAI,UAAU,QAAQ,IAAI,SAAS,QAAQ;AACrE,QAAM,UAAU,UAAU,IAAI,UAAU,SAAS,IAAI,SAAS,SAAS;AACvE,QAAM,cAAc,UAAU,WAAW,IAAI,IAAI,SAAS,WAAW,IAAI;AACzE,MAAI;AACJ,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,UAAU,IAAI,SAAS;AAAA,MAC5B;AACA;AAAA,IACF,KAAK;AACH,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,UAAU,IAAI,UAAU;AAAA,MAC7B;AACA;AAAA,IACF,KAAK;AACH,eAAS;AAAA,QACP,GAAG,UAAU,IAAI,UAAU;AAAA,QAC3B,GAAG;AAAA,MACL;AACA;AAAA,IACF,KAAK;AACH,eAAS;AAAA,QACP,GAAG,UAAU,IAAI,SAAS;AAAA,QAC1B,GAAG;AAAA,MACL;AACA;AAAA,IACF;AACE,eAAS;AAAA,QACP,GAAG,UAAU;AAAA,QACb,GAAG,UAAU;AAAA,MACf;AAAA,EACJ;AACA,UAAQ,aAAa,SAAS,GAAG;AAAA,IAC/B,KAAK;AACH,aAAO,aAAa,KAAK,eAAe,OAAO,aAAa,KAAK;AACjE;AAAA,IACF,KAAK;AACH,aAAO,aAAa,KAAK,eAAe,OAAO,aAAa,KAAK;AACjE;AAAA,EACJ;AACA,SAAO;AACT;AASA,IAAM,kBAAkB,OAAO,WAAW,UAAU,WAAW;AAC7D,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,aAAa,CAAC;AAAA,IACd,UAAAC;AAAA,EACF,IAAI;AACJ,QAAM,kBAAkB,WAAW,OAAO,OAAO;AACjD,QAAM,MAAM,OAAOA,UAAS,SAAS,OAAO,SAASA,UAAS,MAAM,QAAQ;AAC5E,MAAI,QAAQ,MAAMA,UAAS,gBAAgB;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI;AAAA,IACF;AAAA,IACA;AAAA,EACF,IAAI,2BAA2B,OAAO,WAAW,GAAG;AACpD,MAAI,oBAAoB;AACxB,MAAI,iBAAiB,CAAC;AACtB,MAAI,aAAa;AACjB,WAAS,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;AAC/C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,gBAAgB,CAAC;AACrB,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF,IAAI,MAAM,GAAG;AAAA,MACX;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAAA;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,QAAI,SAAS,OAAO,QAAQ;AAC5B,QAAI,SAAS,OAAO,QAAQ;AAC5B,qBAAiB;AAAA,MACf,GAAG;AAAA,MACH,CAAC,IAAI,GAAG;AAAA,QACN,GAAG,eAAe,IAAI;AAAA,QACtB,GAAG;AAAA,MACL;AAAA,IACF;AACA,QAAI,SAAS,cAAc,IAAI;AAC7B;AACA,UAAI,OAAO,UAAU,UAAU;AAC7B,YAAI,MAAM,WAAW;AACnB,8BAAoB,MAAM;AAAA,QAC5B;AACA,YAAI,MAAM,OAAO;AACf,kBAAQ,MAAM,UAAU,OAAO,MAAMA,UAAS,gBAAgB;AAAA,YAC5D;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC,IAAI,MAAM;AAAA,QACb;AACA,SAAC;AAAA,UACC;AAAA,UACA;AAAA,QACF,IAAI,2BAA2B,OAAO,mBAAmB,GAAG;AAAA,MAC9D;AACA,UAAI;AAAA,IACN;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACF;AACF;AAUA,eAAe,eAAe,OAAO,SAAS;AAC5C,MAAI;AACJ,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAC;AAAA,EACb;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,UAAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU;AAAA,EACZ,IAAI,SAAS,SAAS,KAAK;AAC3B,QAAM,gBAAgB,iBAAiB,OAAO;AAC9C,QAAM,aAAa,mBAAmB,aAAa,cAAc;AACjE,QAAM,UAAU,SAAS,cAAc,aAAa,cAAc;AAClE,QAAM,qBAAqB,iBAAiB,MAAMA,UAAS,gBAAgB;AAAA,IACzE,WAAW,wBAAwB,OAAOA,UAAS,aAAa,OAAO,SAASA,UAAS,UAAU,OAAO,OAAO,OAAO,wBAAwB,QAAQ,UAAU,QAAQ,kBAAmB,OAAOA,UAAS,sBAAsB,OAAO,SAASA,UAAS,mBAAmB,SAAS,QAAQ;AAAA,IAChS;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,CAAC;AACF,QAAM,OAAO,mBAAmB,aAAa;AAAA,IAC3C,GAAG,MAAM;AAAA,IACT;AAAA,IACA;AAAA,EACF,IAAI,MAAM;AACV,QAAM,eAAe,OAAOA,UAAS,mBAAmB,OAAO,SAASA,UAAS,gBAAgB,SAAS,QAAQ;AAClH,QAAM,cAAe,OAAOA,UAAS,aAAa,OAAO,SAASA,UAAS,UAAU,YAAY,KAAO,OAAOA,UAAS,YAAY,OAAO,SAASA,UAAS,SAAS,YAAY,MAAO;AAAA,IACvL,GAAG;AAAA,IACH,GAAG;AAAA,EACL,IAAI;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACA,QAAM,oBAAoB,iBAAiBA,UAAS,wDAAwD,MAAMA,UAAS,sDAAsD;AAAA,IAC/K;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,IAAI,IAAI;AACT,SAAO;AAAA,IACL,MAAM,mBAAmB,MAAM,kBAAkB,MAAM,cAAc,OAAO,YAAY;AAAA,IACxF,SAAS,kBAAkB,SAAS,mBAAmB,SAAS,cAAc,UAAU,YAAY;AAAA,IACpG,OAAO,mBAAmB,OAAO,kBAAkB,OAAO,cAAc,QAAQ,YAAY;AAAA,IAC5F,QAAQ,kBAAkB,QAAQ,mBAAmB,QAAQ,cAAc,SAAS,YAAY;AAAA,EAClG;AACF;AAiMA,IAAM,OAAO,SAAU,SAAS;AAC9B,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAC;AAAA,EACb;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,GAAG,OAAO;AACd,UAAI,uBAAuB;AAC3B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAAC;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM;AAAA,QACJ,UAAU,gBAAgB;AAAA,QAC1B,WAAW,iBAAiB;AAAA,QAC5B,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,4BAA4B;AAAA,QAC5B,gBAAgB;AAAA,QAChB,GAAG;AAAA,MACL,IAAI,SAAS,SAAS,KAAK;AAM3B,WAAK,wBAAwB,eAAe,UAAU,QAAQ,sBAAsB,iBAAiB;AACnG,eAAO,CAAC;AAAA,MACV;AACA,YAAM,OAAO,QAAQ,SAAS;AAC9B,YAAM,kBAAkB,QAAQ,gBAAgB,MAAM;AACtD,YAAM,MAAM,OAAOA,UAAS,SAAS,OAAO,SAASA,UAAS,MAAM,SAAS,QAAQ;AACrF,YAAM,qBAAqB,gCAAgC,mBAAmB,CAAC,gBAAgB,CAAC,qBAAqB,gBAAgB,CAAC,IAAI,sBAAsB,gBAAgB;AAChL,UAAI,CAAC,+BAA+B,8BAA8B,QAAQ;AACxE,2BAAmB,KAAK,GAAG,0BAA0B,kBAAkB,eAAe,2BAA2B,GAAG,CAAC;AAAA,MACvH;AACA,YAAMC,cAAa,CAAC,kBAAkB,GAAG,kBAAkB;AAC3D,YAAM,WAAW,MAAM,eAAe,OAAO,qBAAqB;AAClE,YAAM,YAAY,CAAC;AACnB,UAAI,kBAAkB,uBAAuB,eAAe,SAAS,OAAO,SAAS,qBAAqB,cAAc,CAAC;AACzH,UAAI,eAAe;AACjB,kBAAU,KAAK,SAAS,IAAI,CAAC;AAAA,MAC/B;AACA,UAAI,gBAAgB;AAClB,cAAMC,SAAQ,kBAAkB,WAAW,OAAO,GAAG;AACrD,kBAAU,KAAK,SAASA,OAAM,CAAC,CAAC,GAAG,SAASA,OAAM,CAAC,CAAC,CAAC;AAAA,MACvD;AACA,sBAAgB,CAAC,GAAG,eAAe;AAAA,QACjC;AAAA,QACA;AAAA,MACF,CAAC;AAGD,UAAI,CAAC,UAAU,MAAM,CAAAC,UAAQA,SAAQ,CAAC,GAAG;AACvC,YAAI,uBAAuB;AAC3B,cAAM,eAAe,wBAAwB,eAAe,SAAS,OAAO,SAAS,sBAAsB,UAAU,KAAK;AAC1H,cAAM,gBAAgBF,YAAW,SAAS;AAC1C,YAAI,eAAe;AAEjB,iBAAO;AAAA,YACL,MAAM;AAAA,cACJ,OAAO;AAAA,cACP,WAAW;AAAA,YACb;AAAA,YACA,OAAO;AAAA,cACL,WAAW;AAAA,YACb;AAAA,UACF;AAAA,QACF;AAIA,YAAI,kBAAkB,wBAAwB,cAAc,OAAO,OAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,SAAS,sBAAsB;AAG1L,YAAI,CAAC,gBAAgB;AACnB,kBAAQ,kBAAkB;AAAA,YACxB,KAAK,WACH;AACE,kBAAI;AACJ,oBAAMG,cAAa,wBAAwB,cAAc,IAAI,OAAK,CAAC,EAAE,WAAW,EAAE,UAAU,OAAO,CAAAC,cAAYA,YAAW,CAAC,EAAE,OAAO,CAAC,KAAKA,cAAa,MAAMA,WAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,SAAS,sBAAsB,CAAC;AACtP,kBAAID,YAAW;AACb,iCAAiBA;AAAA,cACnB;AACA;AAAA,YACF;AAAA,YACF,KAAK;AACH,+BAAiB;AACjB;AAAA,UACJ;AAAA,QACF;AACA,YAAI,cAAc,gBAAgB;AAChC,iBAAO;AAAA,YACL,OAAO;AAAA,cACL,WAAW;AAAA,YACb;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,aAAO,CAAC;AAAA,IACV;AAAA,EACF;AACF;AA6MA,eAAe,qBAAqB,OAAO,SAAS;AAClD,QAAM;AAAA,IACJ;AAAA,IACA,UAAAE;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,MAAM,OAAOA,UAAS,SAAS,OAAO,SAASA,UAAS,MAAM,SAAS,QAAQ;AACrF,QAAM,OAAO,QAAQ,SAAS;AAC9B,QAAM,YAAY,aAAa,SAAS;AACxC,QAAM,aAAa,YAAY,SAAS,MAAM;AAC9C,QAAM,gBAAgB,CAAC,QAAQ,KAAK,EAAE,SAAS,IAAI,IAAI,KAAK;AAC5D,QAAM,iBAAiB,OAAO,aAAa,KAAK;AAChD,QAAM,WAAW,SAAS,SAAS,KAAK;AACxC,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,OAAO,aAAa,WAAW;AAAA,IACjC,UAAU;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,EACjB,IAAI;AAAA,IACF,UAAU;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,IACf,GAAG;AAAA,EACL;AACA,MAAI,aAAa,OAAO,kBAAkB,UAAU;AAClD,gBAAY,cAAc,QAAQ,gBAAgB,KAAK;AAAA,EACzD;AACA,SAAO,aAAa;AAAA,IAClB,GAAG,YAAY;AAAA,IACf,GAAG,WAAW;AAAA,EAChB,IAAI;AAAA,IACF,GAAG,WAAW;AAAA,IACd,GAAG,YAAY;AAAA,EACjB;AACF;AASA,IAAM,SAAS,SAAU,SAAS;AAChC,MAAI,YAAY,QAAQ;AACtB,cAAU;AAAA,EACZ;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,GAAG,OAAO;AACd,UAAI,uBAAuB;AAC3B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM,aAAa,MAAM,qBAAqB,OAAO,OAAO;AAI5D,UAAI,gBAAgB,wBAAwB,eAAe,WAAW,OAAO,SAAS,sBAAsB,eAAe,wBAAwB,eAAe,UAAU,QAAQ,sBAAsB,iBAAiB;AACzN,eAAO,CAAC;AAAA,MACV;AACA,aAAO;AAAA,QACL,GAAG,IAAI,WAAW;AAAA,QAClB,GAAG,IAAI,WAAW;AAAA,QAClB,MAAM;AAAA,UACJ,GAAG;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAOA,IAAM,QAAQ,SAAU,SAAS;AAC/B,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAC;AAAA,EACb;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,GAAG,OAAO;AACd,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACF,IAAI;AACJ,YAAM;AAAA,QACJ,UAAU,gBAAgB;AAAA,QAC1B,WAAW,iBAAiB;AAAA,QAC5B,UAAU;AAAA,UACR,IAAI,UAAQ;AACV,gBAAI;AAAA,cACF,GAAAC;AAAA,cACA,GAAAC;AAAA,YACF,IAAI;AACJ,mBAAO;AAAA,cACL,GAAAD;AAAA,cACA,GAAAC;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA,GAAG;AAAA,MACL,IAAI,SAAS,SAAS,KAAK;AAC3B,YAAM,SAAS;AAAA,QACb;AAAA,QACA;AAAA,MACF;AACA,YAAM,WAAW,MAAM,eAAe,OAAO,qBAAqB;AAClE,YAAM,YAAY,YAAY,QAAQ,SAAS,CAAC;AAChD,YAAM,WAAW,gBAAgB,SAAS;AAC1C,UAAI,gBAAgB,OAAO,QAAQ;AACnC,UAAI,iBAAiB,OAAO,SAAS;AACrC,UAAI,eAAe;AACjB,cAAM,UAAU,aAAa,MAAM,QAAQ;AAC3C,cAAM,UAAU,aAAa,MAAM,WAAW;AAC9C,cAAMC,OAAM,gBAAgB,SAAS,OAAO;AAC5C,cAAMC,OAAM,gBAAgB,SAAS,OAAO;AAC5C,wBAAgB,MAAMD,MAAK,eAAeC,IAAG;AAAA,MAC/C;AACA,UAAI,gBAAgB;AAClB,cAAM,UAAU,cAAc,MAAM,QAAQ;AAC5C,cAAM,UAAU,cAAc,MAAM,WAAW;AAC/C,cAAMD,OAAM,iBAAiB,SAAS,OAAO;AAC7C,cAAMC,OAAM,iBAAiB,SAAS,OAAO;AAC7C,yBAAiB,MAAMD,MAAK,gBAAgBC,IAAG;AAAA,MACjD;AACA,YAAM,gBAAgB,QAAQ,GAAG;AAAA,QAC/B,GAAG;AAAA,QACH,CAAC,QAAQ,GAAG;AAAA,QACZ,CAAC,SAAS,GAAG;AAAA,MACf,CAAC;AACD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,MAAM;AAAA,UACJ,GAAG,cAAc,IAAI;AAAA,UACrB,GAAG,cAAc,IAAI;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACr2BA,SAAS,YAAY,MAAM;AACzB,MAAI,OAAO,IAAI,GAAG;AAChB,YAAQ,KAAK,YAAY,IAAI,YAAY;AAAA,EAC3C;AAIA,SAAO;AACT;AACA,SAAS,UAAU,MAAM;AACvB,MAAI;AACJ,UAAQ,QAAQ,SAAS,sBAAsB,KAAK,kBAAkB,OAAO,SAAS,oBAAoB,gBAAgB;AAC5H;AACA,SAAS,mBAAmB,MAAM;AAChC,MAAI;AACJ,UAAQ,QAAQ,OAAO,IAAI,IAAI,KAAK,gBAAgB,KAAK,aAAa,OAAO,aAAa,OAAO,SAAS,KAAK;AACjH;AACA,SAAS,OAAO,OAAO;AACrB,SAAO,iBAAiB,QAAQ,iBAAiB,UAAU,KAAK,EAAE;AACpE;AACA,SAAS,UAAU,OAAO;AACxB,SAAO,iBAAiB,WAAW,iBAAiB,UAAU,KAAK,EAAE;AACvE;AACA,SAAS,cAAc,OAAO;AAC5B,SAAO,iBAAiB,eAAe,iBAAiB,UAAU,KAAK,EAAE;AAC3E;AACA,SAAS,aAAa,OAAO;AAE3B,MAAI,OAAO,eAAe,aAAa;AACrC,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,cAAc,iBAAiB,UAAU,KAAK,EAAE;AAC1E;AACA,SAAS,kBAAkB,SAAS;AAClC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,iBAAiB,OAAO;AAC5B,SAAO,kCAAkC,KAAK,WAAW,YAAY,SAAS,KAAK,CAAC,CAAC,UAAU,UAAU,EAAE,SAAS,OAAO;AAC7H;AACA,SAAS,eAAe,SAAS;AAC/B,SAAO,CAAC,SAAS,MAAM,IAAI,EAAE,SAAS,YAAY,OAAO,CAAC;AAC5D;AACA,SAAS,kBAAkB,SAAS;AAClC,QAAM,SAAS,SAAS;AACxB,QAAM,MAAM,iBAAiB,OAAO;AAGpC,SAAO,IAAI,cAAc,UAAU,IAAI,gBAAgB,WAAW,IAAI,gBAAgB,IAAI,kBAAkB,WAAW,UAAU,CAAC,WAAW,IAAI,iBAAiB,IAAI,mBAAmB,SAAS,UAAU,CAAC,WAAW,IAAI,SAAS,IAAI,WAAW,SAAS,UAAU,CAAC,aAAa,eAAe,QAAQ,EAAE,KAAK,YAAU,IAAI,cAAc,IAAI,SAAS,KAAK,CAAC,KAAK,CAAC,SAAS,UAAU,UAAU,SAAS,EAAE,KAAK,YAAU,IAAI,WAAW,IAAI,SAAS,KAAK,CAAC;AACnc;AACA,SAAS,mBAAmB,SAAS;AACnC,MAAI,cAAc,cAAc,OAAO;AACvC,SAAO,cAAc,WAAW,KAAK,CAAC,sBAAsB,WAAW,GAAG;AACxE,QAAI,kBAAkB,WAAW,GAAG;AAClC,aAAO;AAAA,IACT,OAAO;AACL,oBAAc,cAAc,WAAW;AAAA,IACzC;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,WAAW;AAClB,MAAI,OAAO,QAAQ,eAAe,CAAC,IAAI;AAAU,WAAO;AACxD,SAAO,IAAI,SAAS,2BAA2B,MAAM;AACvD;AACA,SAAS,sBAAsB,MAAM;AACnC,SAAO,CAAC,QAAQ,QAAQ,WAAW,EAAE,SAAS,YAAY,IAAI,CAAC;AACjE;AACA,SAAS,iBAAiB,SAAS;AACjC,SAAO,UAAU,OAAO,EAAE,iBAAiB,OAAO;AACpD;AACA,SAAS,cAAc,SAAS;AAC9B,MAAI,UAAU,OAAO,GAAG;AACtB,WAAO;AAAA,MACL,YAAY,QAAQ;AAAA,MACpB,WAAW,QAAQ;AAAA,IACrB;AAAA,EACF;AACA,SAAO;AAAA,IACL,YAAY,QAAQ;AAAA,IACpB,WAAW,QAAQ;AAAA,EACrB;AACF;AACA,SAAS,cAAc,MAAM;AAC3B,MAAI,YAAY,IAAI,MAAM,QAAQ;AAChC,WAAO;AAAA,EACT;AACA,QAAM;AAAA;AAAA,IAEN,KAAK;AAAA,IAEL,KAAK;AAAA,IAEL,aAAa,IAAI,KAAK,KAAK;AAAA,IAE3B,mBAAmB,IAAI;AAAA;AACvB,SAAO,aAAa,MAAM,IAAI,OAAO,OAAO;AAC9C;AACA,SAAS,2BAA2B,MAAM;AACxC,QAAM,aAAa,cAAc,IAAI;AACrC,MAAI,sBAAsB,UAAU,GAAG;AACrC,WAAO,KAAK,gBAAgB,KAAK,cAAc,OAAO,KAAK;AAAA,EAC7D;AACA,MAAI,cAAc,UAAU,KAAK,kBAAkB,UAAU,GAAG;AAC9D,WAAO;AAAA,EACT;AACA,SAAO,2BAA2B,UAAU;AAC9C;AACA,SAAS,qBAAqB,MAAM,MAAM,iBAAiB;AACzD,MAAI;AACJ,MAAI,SAAS,QAAQ;AACnB,WAAO,CAAC;AAAA,EACV;AACA,MAAI,oBAAoB,QAAQ;AAC9B,sBAAkB;AAAA,EACpB;AACA,QAAM,qBAAqB,2BAA2B,IAAI;AAC1D,QAAM,SAAS,yBAAyB,uBAAuB,KAAK,kBAAkB,OAAO,SAAS,qBAAqB;AAC3H,QAAM,MAAM,UAAU,kBAAkB;AACxC,MAAI,QAAQ;AACV,WAAO,KAAK,OAAO,KAAK,IAAI,kBAAkB,CAAC,GAAG,kBAAkB,kBAAkB,IAAI,qBAAqB,CAAC,GAAG,IAAI,gBAAgB,kBAAkB,qBAAqB,IAAI,YAAY,IAAI,CAAC,CAAC;AAAA,EACtM;AACA,SAAO,KAAK,OAAO,oBAAoB,qBAAqB,oBAAoB,CAAC,GAAG,eAAe,CAAC;AACtG;;;ACvHA,SAAS,iBAAiB,SAAS;AACjC,QAAM,MAAM,iBAAiB,OAAO;AAGpC,MAAI,QAAQ,WAAW,IAAI,KAAK,KAAK;AACrC,MAAI,SAAS,WAAW,IAAI,MAAM,KAAK;AACvC,QAAM,YAAY,cAAc,OAAO;AACvC,QAAM,cAAc,YAAY,QAAQ,cAAc;AACtD,QAAM,eAAe,YAAY,QAAQ,eAAe;AACxD,QAAM,iBAAiB,MAAM,KAAK,MAAM,eAAe,MAAM,MAAM,MAAM;AACzE,MAAI,gBAAgB;AAClB,YAAQ;AACR,aAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAEA,SAAS,cAAc,SAAS;AAC9B,SAAO,CAAC,UAAU,OAAO,IAAI,QAAQ,iBAAiB;AACxD;AAEA,SAAS,SAAS,SAAS;AACzB,QAAM,aAAa,cAAc,OAAO;AACxC,MAAI,CAAC,cAAc,UAAU,GAAG;AAC9B,WAAO,aAAa,CAAC;AAAA,EACvB;AACA,QAAM,OAAO,WAAW,sBAAsB;AAC9C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,iBAAiB,UAAU;AAC/B,MAAI,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,SAAS;AAC/C,MAAI,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,UAAU;AAIjD,MAAI,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,GAAG;AAC7B,QAAI;AAAA,EACN;AACA,MAAI,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,GAAG;AAC7B,QAAI;AAAA,EACN;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAM,YAAyB,aAAa,CAAC;AAC7C,SAAS,iBAAiB,SAAS;AACjC,QAAM,MAAM,UAAU,OAAO;AAC7B,MAAI,CAAC,SAAS,KAAK,CAAC,IAAI,gBAAgB;AACtC,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,GAAG,IAAI,eAAe;AAAA,IACtB,GAAG,IAAI,eAAe;AAAA,EACxB;AACF;AACA,SAAS,uBAAuB,SAAS,SAAS,sBAAsB;AACtE,MAAI,YAAY,QAAQ;AACtB,cAAU;AAAA,EACZ;AACA,MAAI,CAAC,wBAAwB,WAAW,yBAAyB,UAAU,OAAO,GAAG;AACnF,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,sBAAsB,SAAS,cAAc,iBAAiB,cAAc;AACnF,MAAI,iBAAiB,QAAQ;AAC3B,mBAAe;AAAA,EACjB;AACA,MAAI,oBAAoB,QAAQ;AAC9B,sBAAkB;AAAA,EACpB;AACA,QAAM,aAAa,QAAQ,sBAAsB;AACjD,QAAM,aAAa,cAAc,OAAO;AACxC,MAAI,QAAQ,aAAa,CAAC;AAC1B,MAAI,cAAc;AAChB,QAAI,cAAc;AAChB,UAAI,UAAU,YAAY,GAAG;AAC3B,gBAAQ,SAAS,YAAY;AAAA,MAC/B;AAAA,IACF,OAAO;AACL,cAAQ,SAAS,OAAO;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,gBAAgB,uBAAuB,YAAY,iBAAiB,YAAY,IAAI,iBAAiB,UAAU,IAAI,aAAa,CAAC;AACvI,MAAI,KAAK,WAAW,OAAO,cAAc,KAAK,MAAM;AACpD,MAAI,KAAK,WAAW,MAAM,cAAc,KAAK,MAAM;AACnD,MAAI,QAAQ,WAAW,QAAQ,MAAM;AACrC,MAAI,SAAS,WAAW,SAAS,MAAM;AACvC,MAAI,YAAY;AACd,UAAM,MAAM,UAAU,UAAU;AAChC,UAAM,YAAY,gBAAgB,UAAU,YAAY,IAAI,UAAU,YAAY,IAAI;AACtF,QAAI,aAAa;AACjB,QAAI,gBAAgB,WAAW;AAC/B,WAAO,iBAAiB,gBAAgB,cAAc,YAAY;AAChE,YAAM,cAAc,SAAS,aAAa;AAC1C,YAAM,aAAa,cAAc,sBAAsB;AACvD,YAAM,MAAM,iBAAiB,aAAa;AAC1C,YAAM,OAAO,WAAW,QAAQ,cAAc,aAAa,WAAW,IAAI,WAAW,KAAK,YAAY;AACtG,YAAM,MAAM,WAAW,OAAO,cAAc,YAAY,WAAW,IAAI,UAAU,KAAK,YAAY;AAClG,WAAK,YAAY;AACjB,WAAK,YAAY;AACjB,eAAS,YAAY;AACrB,gBAAU,YAAY;AACtB,WAAK;AACL,WAAK;AACL,mBAAa,UAAU,aAAa;AACpC,sBAAgB,WAAW;AAAA,IAC7B;AAAA,EACF;AACA,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAEA,IAAM,oBAAoB,CAAC,iBAAiB,QAAQ;AACpD,SAAS,WAAW,UAAU;AAC5B,SAAO,kBAAkB,KAAK,cAAY;AACxC,QAAI;AACF,aAAO,SAAS,QAAQ,QAAQ;AAAA,IAClC,SAAS,GAAG;AACV,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;AAEA,SAAS,sDAAsD,MAAM;AACnE,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,UAAU,aAAa;AAC7B,QAAM,kBAAkB,mBAAmB,YAAY;AACvD,QAAM,WAAW,WAAW,WAAW,SAAS,QAAQ,IAAI;AAC5D,MAAI,iBAAiB,mBAAmB,YAAY,SAAS;AAC3D,WAAO;AAAA,EACT;AACA,MAAI,SAAS;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACA,MAAI,QAAQ,aAAa,CAAC;AAC1B,QAAM,UAAU,aAAa,CAAC;AAC9B,QAAM,0BAA0B,cAAc,YAAY;AAC1D,MAAI,2BAA2B,CAAC,2BAA2B,CAAC,SAAS;AACnE,QAAI,YAAY,YAAY,MAAM,UAAU,kBAAkB,eAAe,GAAG;AAC9E,eAAS,cAAc,YAAY;AAAA,IACrC;AACA,QAAI,cAAc,YAAY,GAAG;AAC/B,YAAM,aAAa,sBAAsB,YAAY;AACrD,cAAQ,SAAS,YAAY;AAC7B,cAAQ,IAAI,WAAW,IAAI,aAAa;AACxC,cAAQ,IAAI,WAAW,IAAI,aAAa;AAAA,IAC1C;AAAA,EACF;AACA,SAAO;AAAA,IACL,OAAO,KAAK,QAAQ,MAAM;AAAA,IAC1B,QAAQ,KAAK,SAAS,MAAM;AAAA,IAC5B,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,aAAa,MAAM,IAAI,QAAQ;AAAA,IAC5D,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,YAAY,MAAM,IAAI,QAAQ;AAAA,EAC7D;AACF;AAEA,SAAS,eAAe,SAAS;AAC/B,SAAO,MAAM,KAAK,QAAQ,eAAe,CAAC;AAC5C;AAEA,SAAS,oBAAoB,SAAS;AAGpC,SAAO,sBAAsB,mBAAmB,OAAO,CAAC,EAAE,OAAO,cAAc,OAAO,EAAE;AAC1F;AAIA,SAAS,gBAAgB,SAAS;AAChC,QAAM,OAAO,mBAAmB,OAAO;AACvC,QAAM,SAAS,cAAc,OAAO;AACpC,QAAM,OAAO,QAAQ,cAAc;AACnC,QAAM,QAAQ,IAAI,KAAK,aAAa,KAAK,aAAa,KAAK,aAAa,KAAK,WAAW;AACxF,QAAM,SAAS,IAAI,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,YAAY;AAC7F,MAAI,IAAI,CAAC,OAAO,aAAa,oBAAoB,OAAO;AACxD,QAAM,IAAI,CAAC,OAAO;AAClB,MAAI,iBAAiB,IAAI,EAAE,cAAc,OAAO;AAC9C,SAAK,IAAI,KAAK,aAAa,KAAK,WAAW,IAAI;AAAA,EACjD;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,gBAAgB,SAAS,UAAU;AAC1C,QAAM,MAAM,UAAU,OAAO;AAC7B,QAAM,OAAO,mBAAmB,OAAO;AACvC,QAAM,iBAAiB,IAAI;AAC3B,MAAI,QAAQ,KAAK;AACjB,MAAI,SAAS,KAAK;AAClB,MAAI,IAAI;AACR,MAAI,IAAI;AACR,MAAI,gBAAgB;AAClB,YAAQ,eAAe;AACvB,aAAS,eAAe;AACxB,UAAM,sBAAsB,SAAS;AACrC,QAAI,CAAC,uBAAuB,uBAAuB,aAAa,SAAS;AACvE,UAAI,eAAe;AACnB,UAAI,eAAe;AAAA,IACrB;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAGA,SAAS,2BAA2B,SAAS,UAAU;AACrD,QAAM,aAAa,sBAAsB,SAAS,MAAM,aAAa,OAAO;AAC5E,QAAM,MAAM,WAAW,MAAM,QAAQ;AACrC,QAAM,OAAO,WAAW,OAAO,QAAQ;AACvC,QAAM,QAAQ,cAAc,OAAO,IAAI,SAAS,OAAO,IAAI,aAAa,CAAC;AACzE,QAAM,QAAQ,QAAQ,cAAc,MAAM;AAC1C,QAAM,SAAS,QAAQ,eAAe,MAAM;AAC5C,QAAM,IAAI,OAAO,MAAM;AACvB,QAAM,IAAI,MAAM,MAAM;AACtB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AACA,SAAS,kCAAkC,SAAS,kBAAkB,UAAU;AAC9E,MAAI;AACJ,MAAI,qBAAqB,YAAY;AACnC,WAAO,gBAAgB,SAAS,QAAQ;AAAA,EAC1C,WAAW,qBAAqB,YAAY;AAC1C,WAAO,gBAAgB,mBAAmB,OAAO,CAAC;AAAA,EACpD,WAAW,UAAU,gBAAgB,GAAG;AACtC,WAAO,2BAA2B,kBAAkB,QAAQ;AAAA,EAC9D,OAAO;AACL,UAAM,gBAAgB,iBAAiB,OAAO;AAC9C,WAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG,iBAAiB,IAAI,cAAc;AAAA,MACtC,GAAG,iBAAiB,IAAI,cAAc;AAAA,IACxC;AAAA,EACF;AACA,SAAO,iBAAiB,IAAI;AAC9B;AACA,SAAS,yBAAyB,SAAS,UAAU;AACnD,QAAM,aAAa,cAAc,OAAO;AACxC,MAAI,eAAe,YAAY,CAAC,UAAU,UAAU,KAAK,sBAAsB,UAAU,GAAG;AAC1F,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,UAAU,EAAE,aAAa,WAAW,yBAAyB,YAAY,QAAQ;AAC3G;AAKA,SAAS,4BAA4B,SAAS,OAAO;AACnD,QAAM,eAAe,MAAM,IAAI,OAAO;AACtC,MAAI,cAAc;AAChB,WAAO;AAAA,EACT;AACA,MAAI,SAAS,qBAAqB,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,QAAM,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM;AAC9G,MAAI,sCAAsC;AAC1C,QAAM,iBAAiB,iBAAiB,OAAO,EAAE,aAAa;AAC9D,MAAI,cAAc,iBAAiB,cAAc,OAAO,IAAI;AAG5D,SAAO,UAAU,WAAW,KAAK,CAAC,sBAAsB,WAAW,GAAG;AACpE,UAAM,gBAAgB,iBAAiB,WAAW;AAClD,UAAM,0BAA0B,kBAAkB,WAAW;AAC7D,QAAI,CAAC,2BAA2B,cAAc,aAAa,SAAS;AAClE,4CAAsC;AAAA,IACxC;AACA,UAAM,wBAAwB,iBAAiB,CAAC,2BAA2B,CAAC,sCAAsC,CAAC,2BAA2B,cAAc,aAAa,YAAY,CAAC,CAAC,uCAAuC,CAAC,YAAY,OAAO,EAAE,SAAS,oCAAoC,QAAQ,KAAK,kBAAkB,WAAW,KAAK,CAAC,2BAA2B,yBAAyB,SAAS,WAAW;AACzZ,QAAI,uBAAuB;AAEzB,eAAS,OAAO,OAAO,cAAY,aAAa,WAAW;AAAA,IAC7D,OAAO;AAEL,4CAAsC;AAAA,IACxC;AACA,kBAAc,cAAc,WAAW;AAAA,EACzC;AACA,QAAM,IAAI,SAAS,MAAM;AACzB,SAAO;AACT;AAIA,SAAS,gBAAgB,MAAM;AAC7B,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,2BAA2B,aAAa,sBAAsB,4BAA4B,SAAS,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,QAAQ;AACtI,QAAM,oBAAoB,CAAC,GAAG,0BAA0B,YAAY;AACpE,QAAM,wBAAwB,kBAAkB,CAAC;AACjD,QAAM,eAAe,kBAAkB,OAAO,CAAC,SAAS,qBAAqB;AAC3E,UAAM,OAAO,kCAAkC,SAAS,kBAAkB,QAAQ;AAClF,YAAQ,MAAM,IAAI,KAAK,KAAK,QAAQ,GAAG;AACvC,YAAQ,QAAQ,IAAI,KAAK,OAAO,QAAQ,KAAK;AAC7C,YAAQ,SAAS,IAAI,KAAK,QAAQ,QAAQ,MAAM;AAChD,YAAQ,OAAO,IAAI,KAAK,MAAM,QAAQ,IAAI;AAC1C,WAAO;AAAA,EACT,GAAG,kCAAkC,SAAS,uBAAuB,QAAQ,CAAC;AAC9E,SAAO;AAAA,IACL,OAAO,aAAa,QAAQ,aAAa;AAAA,IACzC,QAAQ,aAAa,SAAS,aAAa;AAAA,IAC3C,GAAG,aAAa;AAAA,IAChB,GAAG,aAAa;AAAA,EAClB;AACF;AAEA,SAAS,cAAc,SAAS;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,iBAAiB,OAAO;AAC5B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,8BAA8B,SAAS,cAAc,UAAU;AACtE,QAAM,0BAA0B,cAAc,YAAY;AAC1D,QAAM,kBAAkB,mBAAmB,YAAY;AACvD,QAAM,UAAU,aAAa;AAC7B,QAAM,OAAO,sBAAsB,SAAS,MAAM,SAAS,YAAY;AACvE,MAAI,SAAS;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACA,QAAM,UAAU,aAAa,CAAC;AAC9B,MAAI,2BAA2B,CAAC,2BAA2B,CAAC,SAAS;AACnE,QAAI,YAAY,YAAY,MAAM,UAAU,kBAAkB,eAAe,GAAG;AAC9E,eAAS,cAAc,YAAY;AAAA,IACrC;AACA,QAAI,yBAAyB;AAC3B,YAAM,aAAa,sBAAsB,cAAc,MAAM,SAAS,YAAY;AAClF,cAAQ,IAAI,WAAW,IAAI,aAAa;AACxC,cAAQ,IAAI,WAAW,IAAI,aAAa;AAAA,IAC1C,WAAW,iBAAiB;AAC1B,cAAQ,IAAI,oBAAoB,eAAe;AAAA,IACjD;AAAA,EACF;AACA,QAAM,IAAI,KAAK,OAAO,OAAO,aAAa,QAAQ;AAClD,QAAM,IAAI,KAAK,MAAM,OAAO,YAAY,QAAQ;AAChD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,EACf;AACF;AAEA,SAAS,oBAAoB,SAAS,UAAU;AAC9C,MAAI,CAAC,cAAc,OAAO,KAAK,iBAAiB,OAAO,EAAE,aAAa,SAAS;AAC7E,WAAO;AAAA,EACT;AACA,MAAI,UAAU;AACZ,WAAO,SAAS,OAAO;AAAA,EACzB;AACA,SAAO,QAAQ;AACjB;AAIA,SAAS,gBAAgB,SAAS,UAAU;AAC1C,QAAMC,UAAS,UAAU,OAAO;AAChC,MAAI,CAAC,cAAc,OAAO,KAAK,WAAW,OAAO,GAAG;AAClD,WAAOA;AAAA,EACT;AACA,MAAI,eAAe,oBAAoB,SAAS,QAAQ;AACxD,SAAO,gBAAgB,eAAe,YAAY,KAAK,iBAAiB,YAAY,EAAE,aAAa,UAAU;AAC3G,mBAAe,oBAAoB,cAAc,QAAQ;AAAA,EAC3D;AACA,MAAI,iBAAiB,YAAY,YAAY,MAAM,UAAU,YAAY,YAAY,MAAM,UAAU,iBAAiB,YAAY,EAAE,aAAa,YAAY,CAAC,kBAAkB,YAAY,IAAI;AAC9L,WAAOA;AAAA,EACT;AACA,SAAO,gBAAgB,mBAAmB,OAAO,KAAKA;AACxD;AAEA,IAAM,kBAAkB,eAAgB,MAAM;AAC5C,QAAM,oBAAoB,KAAK,mBAAmB;AAClD,QAAM,kBAAkB,KAAK;AAC7B,SAAO;AAAA,IACL,WAAW,8BAA8B,KAAK,WAAW,MAAM,kBAAkB,KAAK,QAAQ,GAAG,KAAK,QAAQ;AAAA,IAC9G,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAI,MAAM,gBAAgB,KAAK,QAAQ;AAAA,IACzC;AAAA,EACF;AACF;AAEA,SAAS,MAAM,SAAS;AACtB,SAAO,iBAAiB,OAAO,EAAE,cAAc;AACjD;AAEA,IAAM,WAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGA,SAAS,YAAY,SAAS,QAAQ;AACpC,MAAI,KAAK;AACT,MAAI;AACJ,QAAM,OAAO,mBAAmB,OAAO;AACvC,WAAS,UAAU;AACjB,QAAI;AACJ,iBAAa,SAAS;AACtB,KAAC,MAAM,OAAO,QAAQ,IAAI,WAAW;AACrC,SAAK;AAAA,EACP;AACA,WAAS,QAAQ,MAAM,WAAW;AAChC,QAAI,SAAS,QAAQ;AACnB,aAAO;AAAA,IACT;AACA,QAAI,cAAc,QAAQ;AACxB,kBAAY;AAAA,IACd;AACA,YAAQ;AACR,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,QAAQ,sBAAsB;AAClC,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,QAAI,CAAC,SAAS,CAAC,QAAQ;AACrB;AAAA,IACF;AACA,UAAM,WAAW,MAAM,GAAG;AAC1B,UAAM,aAAa,MAAM,KAAK,eAAe,OAAO,MAAM;AAC1D,UAAM,cAAc,MAAM,KAAK,gBAAgB,MAAM,OAAO;AAC5D,UAAM,YAAY,MAAM,IAAI;AAC5B,UAAM,aAAa,CAAC,WAAW,QAAQ,CAAC,aAAa,QAAQ,CAAC,cAAc,QAAQ,CAAC,YAAY;AACjG,UAAM,UAAU;AAAA,MACd;AAAA,MACA,WAAW,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK;AAAA,IAC1C;AACA,QAAI,gBAAgB;AACpB,aAAS,cAAc,SAAS;AAC9B,YAAM,QAAQ,QAAQ,CAAC,EAAE;AACzB,UAAI,UAAU,WAAW;AACvB,YAAI,CAAC,eAAe;AAClB,iBAAO,QAAQ;AAAA,QACjB;AACA,YAAI,CAAC,OAAO;AACV,sBAAY,WAAW,MAAM;AAC3B,oBAAQ,OAAO,IAAI;AAAA,UACrB,GAAG,GAAG;AAAA,QACR,OAAO;AACL,kBAAQ,OAAO,KAAK;AAAA,QACtB;AAAA,MACF;AACA,sBAAgB;AAAA,IAClB;AAIA,QAAI;AACF,WAAK,IAAI,qBAAqB,eAAe;AAAA,QAC3C,GAAG;AAAA;AAAA,QAEH,MAAM,KAAK;AAAA,MACb,CAAC;AAAA,IACH,SAAS,GAAG;AACV,WAAK,IAAI,qBAAqB,eAAe,OAAO;AAAA,IACtD;AACA,OAAG,QAAQ,OAAO;AAAA,EACpB;AACA,UAAQ,IAAI;AACZ,SAAO;AACT;AAUA,SAAS,WAAW,WAAW,UAAU,QAAQ,SAAS;AACxD,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAC;AAAA,EACb;AACA,QAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,gBAAgB,OAAO,mBAAmB;AAAA,IAC1C,cAAc,OAAO,yBAAyB;AAAA,IAC9C,iBAAiB;AAAA,EACnB,IAAI;AACJ,QAAM,cAAc,cAAc,SAAS;AAC3C,QAAM,YAAY,kBAAkB,iBAAiB,CAAC,GAAI,cAAc,qBAAqB,WAAW,IAAI,CAAC,GAAI,GAAG,qBAAqB,QAAQ,CAAC,IAAI,CAAC;AACvJ,YAAU,QAAQ,cAAY;AAC5B,sBAAkB,SAAS,iBAAiB,UAAU,QAAQ;AAAA,MAC5D,SAAS;AAAA,IACX,CAAC;AACD,sBAAkB,SAAS,iBAAiB,UAAU,MAAM;AAAA,EAC9D,CAAC;AACD,QAAM,YAAY,eAAe,cAAc,YAAY,aAAa,MAAM,IAAI;AAClF,MAAI,iBAAiB;AACrB,MAAI,iBAAiB;AACrB,MAAI,eAAe;AACjB,qBAAiB,IAAI,eAAe,UAAQ;AAC1C,UAAI,CAAC,UAAU,IAAI;AACnB,UAAI,cAAc,WAAW,WAAW,eAAe,gBAAgB;AAGrE,uBAAe,UAAU,QAAQ;AACjC,6BAAqB,cAAc;AACnC,yBAAiB,sBAAsB,MAAM;AAC3C,cAAI;AACJ,WAAC,kBAAkB,mBAAmB,QAAQ,gBAAgB,QAAQ,QAAQ;AAAA,QAChF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT,CAAC;AACD,QAAI,eAAe,CAAC,gBAAgB;AAClC,qBAAe,QAAQ,WAAW;AAAA,IACpC;AACA,mBAAe,QAAQ,QAAQ;AAAA,EACjC;AACA,MAAI;AACJ,MAAI,cAAc,iBAAiB,sBAAsB,SAAS,IAAI;AACtE,MAAI,gBAAgB;AAClB,cAAU;AAAA,EACZ;AACA,WAAS,YAAY;AACnB,UAAM,cAAc,sBAAsB,SAAS;AACnD,QAAI,gBAAgB,YAAY,MAAM,YAAY,KAAK,YAAY,MAAM,YAAY,KAAK,YAAY,UAAU,YAAY,SAAS,YAAY,WAAW,YAAY,SAAS;AAC/K,aAAO;AAAA,IACT;AACA,kBAAc;AACd,cAAU,sBAAsB,SAAS;AAAA,EAC3C;AACA,SAAO;AACP,SAAO,MAAM;AACX,QAAI;AACJ,cAAU,QAAQ,cAAY;AAC5B,wBAAkB,SAAS,oBAAoB,UAAU,MAAM;AAC/D,wBAAkB,SAAS,oBAAoB,UAAU,MAAM;AAAA,IACjE,CAAC;AACD,iBAAa,QAAQ,UAAU;AAC/B,KAAC,mBAAmB,mBAAmB,QAAQ,iBAAiB,WAAW;AAC3E,qBAAiB;AACjB,QAAI,gBAAgB;AAClB,2BAAqB,OAAO;AAAA,IAC9B;AAAA,EACF;AACF;AAeA,IAAMC,SAAQ;AAQd,IAAMC,QAAO;AAwCb,IAAMC,mBAAkB,CAAC,WAAW,UAAU,YAAY;AAIxD,QAAM,QAAQ,oBAAI,IAAI;AACtB,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,GAAG;AAAA,EACL;AACA,QAAM,oBAAoB;AAAA,IACxB,GAAG,cAAc;AAAA,IACjB,IAAI;AAAA,EACN;AACA,SAAO,gBAAkB,WAAW,UAAU;AAAA,IAC5C,GAAG;AAAA,IACH,UAAU;AAAA,EACZ,CAAC;AACH;;;AClqBA,IAAAC,UAAuB;AACvB,mBAA2C;AAC3C,eAA0B;AAwC1B,IAAI,QAAQ,OAAO,aAAa,cAAc,+BAAkB;AAIhE,SAAS,UAAU,GAAG,GAAG;AACvB,MAAI,MAAM,GAAG;AACX,WAAO;AAAA,EACT;AACA,MAAI,OAAO,MAAM,OAAO,GAAG;AACzB,WAAO;AAAA,EACT;AACA,MAAI,OAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAE,SAAS,GAAG;AAC5D,WAAO;AAAA,EACT;AACA,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI,KAAK,KAAK,OAAO,MAAM,UAAU;AACnC,QAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,eAAS,EAAE;AACX,UAAI,WAAW,EAAE;AAAQ,eAAO;AAChC,WAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,YAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG;AAC1B,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,OAAO,KAAK,CAAC;AACpB,aAAS,KAAK;AACd,QAAI,WAAW,OAAO,KAAK,CAAC,EAAE,QAAQ;AACpC,aAAO;AAAA,IACT;AACA,SAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,UAAI,CAAC,CAAC,EAAE,eAAe,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG;AACvC,eAAO;AAAA,MACT;AAAA,IACF;AACA,SAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,YAAM,MAAM,KAAK,CAAC;AAClB,UAAI,QAAQ,YAAY,EAAE,UAAU;AAClC;AAAA,MACF;AACA,UAAI,CAAC,UAAU,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG;AAC9B,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGA,SAAO,MAAM,KAAK,MAAM;AAC1B;AAEA,SAAS,OAAO,SAAS;AACvB,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ,cAAc,eAAe;AACjD,SAAO,IAAI,oBAAoB;AACjC;AAEA,SAAS,WAAW,SAAS,OAAO;AAClC,QAAM,MAAM,OAAO,OAAO;AAC1B,SAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;AACnC;AAEA,SAAS,aAAa,OAAO;AAC3B,QAAM,MAAY,eAAO,KAAK;AAC9B,QAAM,MAAM;AACV,QAAI,UAAU;AAAA,EAChB,CAAC;AACD,SAAO;AACT;AAMA,SAAS,YAAY,SAAS;AAC5B,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAC;AAAA,EACb;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,aAAa,CAAC;AAAA,IACd,UAAAC;AAAA,IACA,UAAU;AAAA,MACR,WAAW;AAAA,MACX,UAAU;AAAA,IACZ,IAAI,CAAC;AAAA,IACL,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,CAAC,MAAM,OAAO,IAAU,iBAAS;AAAA,IACrC,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,gBAAgB,CAAC;AAAA,IACjB,cAAc;AAAA,EAChB,CAAC;AACD,QAAM,CAAC,kBAAkB,mBAAmB,IAAU,iBAAS,UAAU;AACzE,MAAI,CAAC,UAAU,kBAAkB,UAAU,GAAG;AAC5C,wBAAoB,UAAU;AAAA,EAChC;AACA,QAAM,CAAC,YAAY,aAAa,IAAU,iBAAS,IAAI;AACvD,QAAM,CAAC,WAAW,YAAY,IAAU,iBAAS,IAAI;AACrD,QAAM,eAAqB,oBAAY,UAAQ;AAC7C,QAAI,SAAS,aAAa,SAAS;AACjC,mBAAa,UAAU;AACvB,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,CAAC;AACL,QAAM,cAAoB,oBAAY,UAAQ;AAC5C,QAAI,SAAS,YAAY,SAAS;AAChC,kBAAY,UAAU;AACtB,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,CAAC;AACL,QAAM,cAAc,qBAAqB;AACzC,QAAM,aAAa,oBAAoB;AACvC,QAAM,eAAqB,eAAO,IAAI;AACtC,QAAM,cAAoB,eAAO,IAAI;AACrC,QAAM,UAAgB,eAAO,IAAI;AACjC,QAAM,0BAA0B,wBAAwB;AACxD,QAAM,0BAA0B,aAAa,oBAAoB;AACjE,QAAM,cAAc,aAAaA,SAAQ;AACzC,QAAM,SAAe,oBAAY,MAAM;AACrC,QAAI,CAAC,aAAa,WAAW,CAAC,YAAY,SAAS;AACjD;AAAA,IACF;AACA,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IACd;AACA,QAAI,YAAY,SAAS;AACvB,aAAO,WAAW,YAAY;AAAA,IAChC;AACA,IAAAC,iBAAgB,aAAa,SAAS,YAAY,SAAS,MAAM,EAAE,KAAK,CAAAC,UAAQ;AAC9E,YAAM,WAAW;AAAA,QACf,GAAGA;AAAA,QACH,cAAc;AAAA,MAChB;AACA,UAAI,aAAa,WAAW,CAAC,UAAU,QAAQ,SAAS,QAAQ,GAAG;AACjE,gBAAQ,UAAU;AAClB,QAAS,mBAAU,MAAM;AACvB,kBAAQ,QAAQ;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,WAAW,UAAU,WAAW,CAAC;AACvD,QAAM,MAAM;AACV,QAAI,SAAS,SAAS,QAAQ,QAAQ,cAAc;AAClD,cAAQ,QAAQ,eAAe;AAC/B,cAAQ,CAAAA,WAAS;AAAA,QACf,GAAGA;AAAA,QACH,cAAc;AAAA,MAChB,EAAE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,QAAM,eAAqB,eAAO,KAAK;AACvC,QAAM,MAAM;AACV,iBAAa,UAAU;AACvB,WAAO,MAAM;AACX,mBAAa,UAAU;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,QAAM,MAAM;AACV,QAAI;AAAa,mBAAa,UAAU;AACxC,QAAI;AAAY,kBAAY,UAAU;AACtC,QAAI,eAAe,YAAY;AAC7B,UAAI,wBAAwB,SAAS;AACnC,eAAO,wBAAwB,QAAQ,aAAa,YAAY,MAAM;AAAA,MACxE;AACA,aAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,aAAa,YAAY,QAAQ,yBAAyB,uBAAuB,CAAC;AACtF,QAAM,OAAa,gBAAQ,OAAO;AAAA,IAChC,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACF,IAAI,CAAC,cAAc,WAAW,CAAC;AAC/B,QAAM,WAAiB,gBAAQ,OAAO;AAAA,IACpC,WAAW;AAAA,IACX,UAAU;AAAA,EACZ,IAAI,CAAC,aAAa,UAAU,CAAC;AAC7B,QAAM,iBAAuB,gBAAQ,MAAM;AACzC,UAAM,gBAAgB;AAAA,MACpB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AACA,QAAI,CAAC,SAAS,UAAU;AACtB,aAAO;AAAA,IACT;AACA,UAAM,IAAI,WAAW,SAAS,UAAU,KAAK,CAAC;AAC9C,UAAM,IAAI,WAAW,SAAS,UAAU,KAAK,CAAC;AAC9C,QAAI,WAAW;AACb,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,eAAe,IAAI,SAAS,IAAI;AAAA,QAC3C,GAAI,OAAO,SAAS,QAAQ,KAAK,OAAO;AAAA,UACtC,YAAY;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,EACF,GAAG,CAAC,UAAU,WAAW,SAAS,UAAU,KAAK,GAAG,KAAK,CAAC,CAAC;AAC3D,SAAa,gBAAQ,OAAO;AAAA,IAC1B,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,MAAM,QAAQ,MAAM,UAAU,cAAc,CAAC;AACpD;;;ALtQA;;;AMNA,IAAMC,kBAAiB;AAChB,SAAS,qBAAqB,MAAM;AACzC,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,eAAeE,wBAAuBF,iBAAgB,CAAC,QAAQ,MAAM,CAAC;;;ACJnF,IAAAG,UAAuB;;;ACFvB,IAAAC,UAAuB;AAChB,IAAM,oBAAuC,sBAAc,IAAI;AACtE,IAAI,MAAuC;AACzC,oBAAkB,cAAc;AAClC;;;ADYO,SAAS,4BAA4B;AAC1C,QAAM,oBAA0B,mBAAW,iBAAiB;AAC5D,MAAI,CAAC,mBAAmB;AACtB,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,EAAM,kBAAU,MAAM;AACpB,WAAO,mBAAmB;AAAA,EAC5B,GAAG,CAAC,kBAAkB,CAAC;AACvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AE/BA,IAAAC,UAAuB;AAYhB,SAAS,qBAAqB,cAAc;AACjD,QAAM,CAAC,wBAAwB,yBAAyB,IAAU,iBAAS,IAAI;AAC/E,QAAM,2BAAiC,eAAO,KAAK;AACnD,QAAM,wBAA8B,eAAO,CAAC;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAU,iBAAS,KAAK;AAC9D,QAAM,uBAA6B,eAAO,YAAY;AACtD,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC;AAAA,IAEL,sBAAsB,UAAU;AAAA,IAEhC,qBAAqB,YAAY,cAAc;AAC7C,+BAAyB,UAAU;AACnC,gCAA0B,KAAK;AAAA,IACjC;AACA,yBAAqB,UAAU;AAAA,EACjC,GAAG,CAAC,YAAY,CAAC;AACjB,QAAM,eAAqB,oBAAY,MAAM;AAC3C,6BAAyB,UAAU;AACnC,8BAA0B,IAAI;AAAA,EAChC,GAAG,CAAC,CAAC;AACL,QAAM,qBAA2B,oBAAY,MAAM;AACjD,0BAAsB,WAAW;AACjC,qBAAiB,IAAI;AACrB,WAAO,MAAM;AACX,4BAAsB,WAAW;AACjC,UAAI,sBAAsB,YAAY,GAAG;AACvC,yBAAiB,KAAK;AAAA,MACxB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AACL,MAAI;AACJ,MAAI,CAAC,eAAe;AAElB,gBAAY,CAAC;AAAA,EACf,WAAW,cAAc;AACvB,gBAAY;AAAA,EACd,OAAO;AACL,gBAAY,CAAC,yBAAyB,WAAW;AAAA,EACnD;AACA,QAAM,eAAqB,gBAAQ,OAAO;AAAA,IACxC,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACF,IAAI,CAAC,cAAc,cAAc,oBAAoB,SAAS,CAAC;AAC/D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AChEA,IAAAC,UAAuB;AAChB,IAAM,eAAkC,sBAAc,IAAI;AACjE,IAAI,MAAuC;AACzC,eAAa,cAAc;AAC7B;;;AVYA,IAAAC,uBAA4B;AAZ5B,IAAMC,aAAY,CAAC,UAAU,YAAY,aAAa,iBAAiB,eAAe,cAAc,UAAU,QAAQ,aAAa,aAAa,SAAS,UAAU;AAanK,SAASC,mBAAkB,YAAY;AACrC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,QAAQ,MAAM;AAAA,EAC/B;AACA,SAAO,eAAe,OAAO,sBAAsB,oBAAoB,CAAC;AAC1E;AACA,SAAS,cAAc,QAAQ;AAC7B,SAAO,OAAO,WAAW,aAAa,OAAO,IAAI;AACnD;AAYA,IAAM,QAA2B,mBAAW,SAASC,OAAM,OAAO,cAAc;AAC9E,MAAI;AACJ,QAAM;AAAA,IACF,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd;AAAA,IACA,QAAQ,aAAa;AAAA,IACrB,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,WAAW;AAAA,EACb,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,UAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EACb,IAAI,YAAY;AAAA,IACd,UAAU;AAAA,MACR,WAAW,cAAc,UAAU;AAAA,IACrC;AAAA,IACA;AAAA,IACA,YAAY,cAAc,OAAO,aAAa,CAAC,OAAO,cAAc,OAAO,aAAa,CAAC,GAAGG,MAAK,GAAGC,OAAM,CAAC;AAAA,IAC3G;AAAA,IACA;AAAA,IACA,sBAAsB,CAAC,cAAc,aAAa;AAAA,EACpD,CAAC;AACD,QAAM,YAAY,WAAW,KAAK,aAAa,YAAY;AAC3D,4BAAkB,MAAM;AACtB,QAAI,eAAe,QAAQ,SAAS,aAAa,SAAS,UAAU;AAClE,YAAM,UAAU,WAAW,SAAS,WAAW,SAAS,UAAU,MAAM;AACxE,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,GAAG,CAAC,aAAa,MAAM,UAAU,MAAM,CAAC;AACxC,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,EACb,IAAI,qBAAqB,IAAI;AAC7B,QAAM,aAAa,eAAe,sBAAsB,WAAW;AACnE,QAAM,UAAUH,mBAAkB,UAAU;AAC5C,QAAM,QAAQ,cAAc,SAAS,OAAO,SAAS,MAAM,SAAS,OAAO,cAAc;AACzF,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB;AAAA,IACA,WAAW,QAAQ;AAAA,IACnB,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO,SAAS,CAAC,GAAG,gBAAgB;AAAA,QAClC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,QAAM,oBAA0B,gBAAQ,OAAO;AAAA,IAC7C,WAAW;AAAA,EACb,IAAI,CAAC,cAAc,CAAC;AACpB,QAAM,eAAe,eAAe,CAAC;AACrC,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AACA,aAAoB,qBAAAI,KAAK,QAAQ;AAAA,IAC/B;AAAA,IACA;AAAA,IACA,cAAuB,qBAAAA,KAAK,aAAa,UAAU;AAAA,MACjD,OAAO;AAAA,MACP,cAAuB,qBAAAA,KAAK,kBAAkB,UAAU;AAAA,QACtD,OAAO;AAAA,QACP,cAAuB,qBAAAA,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,UACxD;AAAA,QACF,CAAC,CAAC;AAAA,MACJ,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH,CAAC;AACD,OAAwC,MAAM,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU/E,QAAQ,oBAAAC,QAAgD,UAAU,CAAC,iBAAiB,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,EAIrH,UAAU,oBAAAA,QAAgD,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpG,WAAW,oBAAAA,QAAgD,UAAU,CAAC,iBAAiB,oBAAAA,QAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtG,eAAe,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASzB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvB,YAAY,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,CAAC,KAAK,CAAC,GAAG,oBAAAA,QAAU,MAAM;AAAA,IAC3F,IAAI,oBAAAA,QAAU,KAAK;AAAA,IACnB,MAAM,oBAAAA,QAAU,OAAO;AAAA,IACvB,SAAS,oBAAAA,QAAU;AAAA,EACrB,CAAC,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQJ,QAAQ,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM;AAAA,IAC7E,eAAe,oBAAAA,QAAU;AAAA,IACzB,WAAW,oBAAAA,QAAU;AAAA,IACrB,UAAU,oBAAAA,QAAU;AAAA,EACtB,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOhB,WAAW,oBAAAA,QAAU,MAAM,CAAC,cAAc,gBAAgB,UAAU,YAAY,cAAc,QAAQ,aAAa,eAAe,SAAS,WAAW,aAAa,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzK,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,UAAU,oBAAAA,QAAU,MAAM,CAAC,YAAY,OAAO,CAAC;AACjD,IAAI;;;AdnNJ,IAAAC,uBAA4B;AAZ5B,IAAMC,aAAY,CAAC,WAAW,UAAU,YAAY,iBAAiB,aAAa,OAAO;AAazF,SAASC,mBAAkB,YAAY;AACrC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,QAAQ,UAAU;AAAA,IACjC,SAAS,CAAC,WAAW,QAAQ,UAAU;AAAA,EACzC;AACA,SAAO,eAAe,OAAO,sBAAsB,mBAAmB,CAAC;AACzE;AAYA,IAAM,OAA0B,mBAAW,SAASC,MAAK,OAAO,cAAc;AAC5E,MAAI,aAAa;AACjB,QAAM;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,UAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,QAAQ;AAAA,IACV;AAAA,IACA,eAAe;AAAA,EACjB,CAAC;AACD,QAAM,SAAS,cAAc,OAAO,aAAa;AACjD,EAAM,4BAAoB,SAAS,OAAO;AAAA,IACxC;AAAA,IACA,gBAAgB,MAAM,SAAS;AAAA,MAC7B,MAAM,gBAAgB;AAAA,MACtB,OAAO;AAAA,IACT,CAAC;AAAA,EACH,IAAI,CAAC,QAAQ,CAAC;AACd,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,mBAAkB,UAAU;AAC5C,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,WAAW,QAAQ;AAAA,IACnB;AAAA,EACF,CAAC;AACD,QAAM,WAAW,iBAAiB,MAAM,YAAY,OAAO,iBAAiB;AAC5E,QAAM,eAAe,aAAa;AAAA,IAChC,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,WAAW,QAAQ;AAAA,IACnB;AAAA,EACF,CAAC;AACD,MAAI,SAAS,QAAQ,UAAU,MAAM;AACnC,eAAoB,qBAAAE,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,MACrD,cAAuB,qBAAAA,KAAK,SAAS,SAAS,CAAC,GAAG,cAAc;AAAA,QAC9D,cAAuB,qBAAAA,KAAK,cAAc;AAAA,UACxC,OAAO;AAAA,UACP;AAAA,QACF,CAAC;AAAA,MACH,CAAC,CAAC;AAAA,IACJ,CAAC,CAAC;AAAA,EACJ;AACA,aAAoB,qBAAAA,KAAK,OAAO,SAAS;AAAA,IACvC,aAAa;AAAA,EACf,GAAG,WAAW;AAAA,IACZ;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA,cAAuB,qBAAAA,KAAK,SAAS,SAAS,CAAC,GAAG,cAAc;AAAA,MAC9D,cAAuB,qBAAAA,KAAK,cAAc;AAAA,QACxC,OAAO;AAAA,QACP;AAAA,MACF,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,KAAK,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9E,SAAS;AAAA;AAAA;AAAA;AAAA,EAIT,QAAQ,oBAAAC,QAAgD,UAAU,CAAC,iBAAiB,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,EAIrH,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,eAAe,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,SAAS,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC/D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,SAAS,oBAAAA,QAAU;AAAA,IACnB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AyB7JJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB;AACA,IAAAC,UAAuB;AACvB;AAiBO,SAAS,cAAc,aAAa,CAAC,GAAG;AAC7C,QAAM;AAAA,IACJ,WAAW;AAAA,IACX;AAAA,IACA,SAAS;AAAA,EACX,IAAI;AACJ,QAAM,cAAoB,mBAAW,eAAe;AACpD,MAAI,gBAAgB,MAAM;AACxB,UAAM,IAAI,MAAM,2CAA2C;AAAA,EAC7D;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,SAAS;AAAA,IACT;AAAA,EACF,IAAI,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACD,QAAM,YAAY,WAAW,eAAe,eAAe;AAC3D,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,QAAI;AACJ,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC1G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,oBAAoB;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,sBAAsB,mBAAiB,WAAS;AACpD,QAAI;AACJ,KAAC,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC5G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,QAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,WAAW;AACxD,YAAM,eAAe;AACrB,eAAS;AAAA,QACP,MAAM,oBAAoB;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,kBAAkB,CAAC,gBAAgB,CAAC,OAAO;AAAA,IAC/C,SAAS,kBAAkB,aAAa;AAAA,IACxC,WAAW,oBAAoB,aAAa;AAAA,EAC9C;AACA,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,UAAM,mBAAmB,sBAAsB,iBAAiB,kBAAkB;AAClF,WAAO,SAAS;AAAA,MACd,iBAAiB;AAAA,MACjB,iBAAiB,MAAM;AAAA,MACvB,iBAAiB;AAAA,IACnB,GAAG,eAAe,uBAAuB,iBAAiB,qBAAqB,GAAG;AAAA,MAChF,UAAU;AAAA;AAAA,MAEV,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,MAAM,MAAM;AAAA,IACZ,SAAS;AAAA,EACX;AACF;;;AC7FA,IAAMC,kBAAiB;AAChB,SAAS,0BAA0B,MAAM;AAC9C,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,oBAAoBE,wBAAuBF,iBAAgB,CAAC,QAAQ,UAAU,YAAY,UAAU,CAAC;;;AFMlH,IAAAG,uBAA4B;AAR5B,IAAMC,aAAY,CAAC,YAAY,YAAY,SAAS,SAAS,aAAa,uBAAuB;AASjG,IAAMC,qBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,UAAU,UAAU,QAAQ,UAAU;AAAA,EAC/E;AACA,SAAO,eAAe,OAAO,sBAAsB,yBAAyB,CAAC;AAC/E;AAYA,IAAM,aAAgC,mBAAW,SAASC,YAAW,OAAO,cAAc;AACxF,QAAM;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,QAAQ,CAAC;AAAA,IACT,YAAY,CAAC;AAAA,IACb,wBAAwB;AAAA,EAC1B,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,UAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACD,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,mBAAkB,UAAU;AAC5C,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,wBAAwB;AAAA,IACxB,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,KAAK;AAAA,MACL,MAAM;AAAA,IACR;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACrD;AAAA,EACF,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,WAAW,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQpF,UAAU,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,uBAAuB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIjC,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AGrHJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,kBAAiB;AAChB,SAAS,wBAAwB,MAAM;AAC5C,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,kBAAkBE,wBAAuBF,iBAAgB,CAAC,QAAQ,YAAY,cAAc,CAAC;;;ACJ1G;AACA,IAAAG,UAAuB;AACvB;AAQA,SAAS,YAAY,cAAc;AACjC,SAAO,aAAa,aAAa,IAAI;AACvC;AACA,IAAMC,yBAAwB;AAAA,EAC5B,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,SAAS;AAAA,EACT,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,gBAAgB;AAClB;AAYO,SAAS,YAAY,QAAQ;AAClC,MAAI;AACJ,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,IAAI;AAAA,IACJ,SAAS;AAAA,IACT;AAAA,IACA,sBAAsB;AAAA,EACxB,IAAI;AACJ,QAAM,KAAK,MAAM,OAAO;AACxB,QAAM,UAAgB,eAAO,IAAI;AACjC,QAAM,eAAqB,gBAAQ,OAAO;AAAA,IACxC;AAAA,IACA,IAAI,MAAM,OAAO,KAAK;AAAA,IACtB;AAAA,IACA,KAAK;AAAA,EACP,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;AACzB,QAAM;AAAA,IACJ;AAAA,EACF,KAAK,oBAA0B,mBAAW,eAAe,MAAM,OAAO,oBAAoBA;AAC1F,QAAM;AAAA,IACJ,cAAc;AAAA,IACd;AAAA,EACF,IAAI,YAAY;AAAA,IACd,MAAM;AAAA,IACN,yBAAyB,CAAC;AAAA,EAC5B,CAAC;AACD,QAAM;AAAA,IACJ,OAAAC;AAAA,IACA;AAAA,EACF,IAAI,gBAAgB,MAAM,OAAO,KAAK,aAAa,YAAY;AAC/D,QAAM;AAAA,IACJ,cAAc;AAAA,IACd;AAAA,IACA,SAAS;AAAA,EACX,IAAI,UAAU;AAAA,IACZ;AAAA,IACA,uBAAuB;AAAA,EACzB,CAAC;AACD,QAAM,YAAY,WAAW,kBAAkB,aAAa,OAAO;AACnE,EAAM,sBAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,QAAI;AACJ,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC1G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,oBAAoB;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,SAAS,CAAC,GAAG,eAAe;AAAA,IACzE,SAAS,kBAAkB,aAAa;AAAA,EAC1C,CAAC;AACD,WAAS,aAAa,gBAAgB,CAAC,GAAG;AACxC,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,UAAM,uBAAuB,sBAAsB,gBAAgB,sBAAsB,gBAAgB,gBAAgB,CAAC;AAC1H,WAAO,SAAS,CAAC,GAAG,eAAe,uBAAuB,qBAAqB,qBAAqB,GAAG;AAAA,MACrG;AAAA,MACA,KAAK;AAAA,MACL,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAIA,MAAI,OAAO,QAAW;AACpB,WAAO;AAAA,MACL;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA,aAAa;AAAA,MACb,OAAO;AAAA,MACP,gBAAgB;AAAA,MAChB,SAAS;AAAA,IACX;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAAA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX;AACF;;;AC/HA,IAAAC,UAAuB;AACvB;AAiBO,SAAS,6BAA6B,IAAI;AAC/C,QAAM,cAAoB,mBAAW,WAAW;AAChD,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACxD;AACA,QAAM,SAAS,MAAM,EAAE;AACvB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,MAAI;AACJ,MAAI,UAAU,MAAM;AAClB,gBAAY,aAAa,MAAM;AAAA,EACjC,OAAO;AACL,gBAAY;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,MACb,UAAU;AAAA,IACZ;AAAA,EACF;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAIJ,QAAM,oBAA0B,oBAAY,eAAa;AACvD,QAAI,cAAc,QAAQ;AACxB,YAAM,IAAI,MAAM,CAAC,oEAAoE,cAAc,SAAS,UAAU,MAAM,IAAI,yGAAyG,EAAE,KAAK,IAAI,CAAC;AAAA,IACvP;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,aAAa,UAAU,WAAW,MAAM,CAAC;AAK7C,QAAM,oBAA0B,gBAAQ,OAAO;AAAA,IAC7C;AAAA,IACA,cAAc;AAAA,EAChB,IAAI,CAAC,UAAU,iBAAiB,CAAC;AACjC,SAAO;AAAA,IACL,cAAc;AAAA,IACd,IAAI;AAAA,EACN;AACF;;;AHzDA,IAAAC,uBAA4B;AAT5B,IAAMC,aAAY,CAAC,YAAY,YAAY,SAAS,MAAM,aAAa,OAAO;AAU9E,SAASC,mBAAkB,YAAY;AACrC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,gBAAgB,cAAc;AAAA,EACvE;AACA,SAAO,eAAe,OAAO,sBAAsB,uBAAuB,CAAC;AAC7E;AACA,IAAM,gBAAmC,aAAyB,mBAAW,SAAS,SAAS,OAAO,cAAc;AAClH,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA,UAAU,eAAe;AAAA,IACzB;AAAA,IACA;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOD,UAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT;AAAA,EACF,CAAC;AACD,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,mBAAkB,UAAU;AAC5C,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,WAAW,QAAQ;AAAA,IACnB;AAAA,EACF,CAAC;AACD,aAAoB,qBAAAC,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACrD;AAAA,EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAaF,IAAMC,YAA8B,mBAAW,SAASA,UAAS,OAAO,KAAK;AAC3E,QAAM;AAAA,IACJ,IAAI;AAAA,EACN,IAAI;AAMJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,6BAA6B,MAAM;AACvC,aAAoB,qBAAAD,KAAK,YAAY,UAAU;AAAA,IAC7C,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,eAAe,SAAS,CAAC,GAAG,OAAO;AAAA,MAC7D;AAAA,MACA;AAAA,IACF,CAAC,CAAC;AAAA,EACJ,CAAC;AACH,CAAC;AACD,OAAwCC,UAAS,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlF,UAAU,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB,qBAAqB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK/B,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIjB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AIhJJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;;;ACLA;AACA,IAAAC,UAAuB;AACvB;AAGA,SAAS,aAAa,WAAW;AAC/B,SAAO,OAAO,cAAc,aAAa,UAAU,IAAI;AACzD;AACA,SAAS,iBAAiB,UAAU;AAClC,SAAO,WAAW,SAAS,MAAM,eAAe,IAAI,IAAI;AAC1D;AAIA,IAAM,iBAAiB,IAAI,aAAa;AAWjC,SAAS,SAAS,YAAY;AACnC,QAAM;AAAA,IACJ;AAAA,IACA,uBAAuB;AAAA,IACvB,oBAAoB;AAAA;AAAA,IAEpB,UAAU;AAAA,IACV,uBAAuB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,QAAc,eAAO,CAAC,CAAC;AAC7B,QAAM,eAAqB,eAAO,IAAI;AACtC,QAAM,WAAiB,eAAO,IAAI;AAClC,QAAM,YAAY,WAAW,UAAU,OAAO;AAC9C,QAAM,CAAC,QAAQ,SAAS,IAAU,iBAAS,CAAC,IAAI;AAChD,QAAM,gBAAgB,iBAAiB,QAAQ;AAC/C,MAAI,iBAAiB;AACrB,MAAI,WAAW,aAAa,MAAM,WAAW,WAAW,aAAa,MAAM,OAAO;AAChF,qBAAiB;AAAA,EACnB;AACA,QAAM,SAAS,MAAM,cAAc,aAAa,OAAO;AACvD,QAAM,WAAW,MAAM;AACrB,UAAM,QAAQ,WAAW,SAAS;AAClC,UAAM,QAAQ,QAAQ,aAAa;AACnC,WAAO,MAAM;AAAA,EACf;AACA,QAAM,gBAAgB,MAAM;AAC1B,YAAQ,MAAM,SAAS,GAAG;AAAA,MACxB;AAAA,IACF,CAAC;AAGD,QAAI,SAAS,SAAS;AACpB,eAAS,QAAQ,YAAY;AAAA,IAC/B;AAAA,EACF;AACA,QAAM,aAAa,yBAAiB,MAAM;AACxC,UAAM,oBAAoB,aAAa,SAAS,KAAK,OAAO,EAAE;AAC9D,YAAQ,IAAI,SAAS,GAAG,iBAAiB;AAGzC,QAAI,SAAS,SAAS;AACpB,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AACD,QAAM,aAAmB,oBAAY,MAAM,QAAQ,WAAW,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AACpF,QAAM,kBAAkB,yBAAiB,UAAQ;AAC/C,iBAAa,UAAU;AACvB,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,QAAI,QAAQ,WAAW,GAAG;AACxB,oBAAc;AAAA,IAChB,WAAW,SAAS,SAAS;AAC3B,iBAAW,SAAS,SAAS,cAAc;AAAA,IAC7C;AAAA,EACF,CAAC;AACD,QAAM,cAAoB,oBAAY,MAAM;AAC1C,YAAQ,OAAO,SAAS,GAAG,cAAc;AAAA,EAC3C,GAAG,CAAC,gBAAgB,OAAO,CAAC;AAC5B,EAAM,kBAAU,MAAM;AACpB,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAChB,EAAM,kBAAU,MAAM;AACpB,QAAI,MAAM;AACR,iBAAW;AAAA,IACb,WAAW,CAAC,iBAAiB,CAAC,sBAAsB;AAClD,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,aAAa,eAAe,sBAAsB,UAAU,CAAC;AACvE,QAAM,sBAAsB,mBAAiB,WAAS;AACpD,QAAI;AACJ,KAAC,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAQ5G,QAAI,MAAM,QAAQ,YAAY,MAAM,UAAU;AAAA,IAE9C,CAAC,WAAW,GAAG;AACb;AAAA,IACF;AACA,QAAI,CAAC,sBAAsB;AAEzB,YAAM,gBAAgB;AACtB,UAAI,SAAS;AACX,gBAAQ,OAAO,eAAe;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACA,QAAM,4BAA4B,mBAAiB,WAAS;AAC1D,QAAI;AACJ,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC1G,QAAI,MAAM,WAAW,MAAM,eAAe;AACxC;AAAA,IACF;AACA,QAAI,SAAS;AACX,cAAQ,OAAO,eAAe;AAAA,IAChC;AAAA,EACF;AACA,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,qBAAqB,qBAAqB,UAAU;AAG1D,WAAO,mBAAmB;AAC1B,WAAO,mBAAmB;AAC1B,UAAM,wBAAwB,SAAS,CAAC,GAAG,oBAAoB,aAAa;AAC5E,WAAO,SAAS;AAAA,MACd,MAAM;AAAA,IACR,GAAG,uBAAuB;AAAA,MACxB,WAAW,oBAAoB,qBAAqB;AAAA,MACpD,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AACA,QAAM,mBAAmB,CAAC,gBAAgB,CAAC,MAAM;AAC/C,UAAM,wBAAwB;AAC9B,WAAO,SAAS;AAAA,MACd,eAAe;AAAA,IACjB,GAAG,uBAAuB;AAAA,MACxB,SAAS,0BAA0B,qBAAqB;AAAA,MACxD;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,qBAAqB,MAAM;AAC/B,UAAM,cAAc,MAAM;AACxB,gBAAU,KAAK;AACf,UAAI,mBAAmB;AACrB,0BAAkB;AAAA,MACpB;AAAA,IACF;AACA,UAAM,eAAe,MAAM;AACzB,gBAAU,IAAI;AACd,UAAI,oBAAoB;AACtB,2BAAmB;AAAA,MACrB;AACA,UAAI,sBAAsB;AACxB,oBAAY;AAAA,MACd;AAAA,IACF;AACA,WAAO;AAAA,MACL,SAAS,sBAAsB,aAAa,YAAY,OAAO,SAAS,SAAS,MAAM,OAAO;AAAA,MAC9F,UAAU,sBAAsB,cAAc,YAAY,OAAO,SAAS,SAAS,MAAM,QAAQ;AAAA,IACnG;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC/LA,IAAMC,kBAAiB;AAChB,SAAS,qBAAqB,MAAM;AACzC,SAAOC,sBAAqBD,iBAAgB,IAAI;AAClD;AACO,IAAM,eAAeE,wBAAuBF,iBAAgB,CAAC,QAAQ,UAAU,UAAU,CAAC;;;AFSjG,IAAAG,uBAA4B;AAC5B,IAAAA,uBAA8B;AAZ9B,IAAMC,cAAY,CAAC,YAAY,wBAAwB,aAAa,oBAAoB,uBAAuB,wBAAwB,iBAAiB,uBAAuB,qBAAqB,gBAAgB,eAAe,mBAAmB,WAAW,aAAa,QAAQ,qBAAqB,sBAAsB,aAAa,OAAO;AAarV,IAAMC,qBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,CAAC,QAAQ,UAAU,QAAQ;AAAA,IAC1C,UAAU,CAAC,UAAU;AAAA,EACvB;AACA,SAAO,eAAe,OAAO,sBAAsB,oBAAoB,CAAC;AAC1E;AAuBA,IAAM,QAA2B,mBAAW,SAASC,OAAM,OAAO,cAAc;AAC9E,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA,uBAAuB;AAAA,IACvB;AAAA,IACA,mBAAmB;AAAA,IACnB,sBAAsB;AAAA,IACtB,uBAAuB;AAAA,IACvB,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,eAAe;AAAA,IACf,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM,oBAAoB,SAAS,CAAC,GAAG,OAAO;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,SAAS,SAAS,CAAC,GAAG,mBAAmB;AAAA,IAC3C,SAAS;AAAA,EACX,CAAC,CAAC;AACF,QAAM,aAAa,SAAS,CAAC,GAAG,mBAAmB;AAAA,IACjD;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,mBAAkB,UAAU;AAC5C,QAAM,aAAa,CAAC;AACpB,MAAI,SAAS,MAAM,aAAa,QAAW;AACzC,eAAW,WAAW;AAAA,EACxB;AAGA,MAAI,eAAe;AACjB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,mBAAmB;AACvB,eAAW,UAAU;AACrB,eAAW,WAAW;AAAA,EACxB;AACA,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,WAAW,QAAQ;AAAA,IACnB;AAAA,EACF,CAAC;AACD,QAAM,oBAAoB,MAAM;AAChC,QAAM,gBAAgB,aAAa;AAAA,IACjC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,cAAc,mBAAiB;AAC7B,aAAO,iBAAiB,SAAS,CAAC,GAAG,eAAe;AAAA,QAClD,SAAS,OAAK;AACZ,cAAI,iBAAiB;AACnB,4BAAgB,CAAC;AAAA,UACnB;AACA,cAAI,iBAAiB,QAAQ,cAAc,SAAS;AAClD,0BAAc,QAAQ,CAAC;AAAA,UACzB;AAAA,QACF;AAAA,MACF,CAAC,CAAC;AAAA,IACJ;AAAA,IACA,WAAW,QAAQ;AAAA,IACnB;AAAA,EACF,CAAC;AACD,MAAI,CAAC,eAAe,CAAC,SAAS,CAAC,iBAAiB,SAAS;AACvD,WAAO;AAAA,EACT;AACA,aAAoB,qBAAAE,KAAK,QAAQ;AAAA,IAC/B,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA,cAAuB,qBAAAC,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,MACzD,UAAU,CAAC,CAAC,gBAAgB,wBAAiC,qBAAAD,KAAK,mBAAmB,SAAS,CAAC,GAAG,aAAa,CAAC,IAAI,UAAmB,qBAAAA,KAAK,WAAW;AAAA,QACrJ;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA,UAA6B,qBAAa,UAAU,UAAU;AAAA,MAChE,CAAC,CAAC;AAAA,IACJ,CAAC,CAAC;AAAA,EACJ,CAAC;AACH,CAAC;AACD,OAAwC,MAAM,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/E,UAAU,4BAAoB;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9B,sBAAsB,oBAAAE,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWhC,WAAW,oBAAAA,QAAgD,UAAU,CAAC,iBAAiB,oBAAAA,QAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUtG,kBAAkB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ5B,qBAAqB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK/B,sBAAsB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhC,eAAe,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzB,qBAAqB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK/B,mBAAmB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK7B,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvB,iBAAiB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,mBAAmB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI7B,oBAAoB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI9B,MAAM,oBAAAA,QAAU,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,UAAU,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAChE,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,UAAU,oBAAAA,QAAU;AAAA,IACpB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AGlRJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,mBAAiB;AAChB,SAAS,2BAA2B,MAAM;AAC/C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,qBAAqBE,wBAAuBF,kBAAgB,CAAC,QAAQ,eAAe,WAAW,YAAY,YAAY,SAAS,SAAS,mBAAmB,mBAAmB,gBAAgB,YAAY,CAAC;;;ACJzN;AACA;AACA,IAAAG,UAAuB;AACvB;;;ACLO,IAAM,yBAAyB;AAAA,EACpC,OAAO;AAAA,EACP,aAAa;AAAA,EACb,WAAW;AAAA,EACX,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,iBAAiB;AACnB;;;ACRA;;;ACAA;AACO,SAAS,cAAc,KAAKC,OAAM,OAAO,kBAAkBC,OAAM,OAAO,kBAAkB,WAAW,KAAK;AAC/G,MAAI,OAAO,MAAM,QAAQ,GAAG;AAC1B,WAAO,cAAM,KAAKD,MAAKC,IAAG;AAAA,EAC5B;AACA,QAAM,OAAO,YAAY;AACzB,QAAM,YAAY,MAAM;AACxB,QAAM,aAAa,KAAK,KAAK,SAAS;AACtC,MAAI,KAAK,IAAI,SAAS,IAAI,OAAO,GAAG;AAClC,WAAO,cAAM,MAAM,cAAc,OAAO,KAAK,IAAI,SAAS,IAAID,MAAKC,IAAG;AAAA,EACxE;AACA,SAAO,cAAM,MAAM,aAAa,KAAK,IAAI,SAAS,GAAGD,MAAKC,IAAG;AAC/D;AACO,SAAS,SAAS,KAAK;AAC5B,SAAO,OAAO,QAAQ,YAAY,CAAC,OAAO,MAAM,GAAG,KAAK,OAAO,SAAS,GAAG;AAC7E;;;ADZA,SAAS,iBAAiB,UAAU,SAAS;AAC3C,QAAM;AAAA,IACJ,KAAAC;AAAA,IACA,KAAAC;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,eAAe,aAAa,OAAO,OAAO,cAAc,UAAUD,MAAKC,MAAK,IAAI;AACtF,QAAM,gBAAgB,iBAAiB,OAAO,KAAK,OAAO,YAAY;AACtE,SAAO;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF;AACA,SAAS,UAAU,OAAO,SAAS,WAAW,YAAY;AACxD,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,KAAAD;AAAA,IACA,KAAAC;AAAA,EACF,IAAI;AACJ,MAAI,SAAS,KAAK,GAAG;AACnB,WAAO;AAAA,MACL,IAAI,SAAS,QAAQ,OAAO,OAAO,KAAK;AAAA,MACxC,MAAM,SAAS,QAAQ,OAAO,OAAO,KAAK;AAAA,IAC5C,EAAE,SAAS;AAAA,EACb;AACA,SAAO;AAAA,IACL,IAAID,QAAO,OAAOA,OAAM;AAAA,IACxB,MAAMC,QAAO,OAAOA,OAAM;AAAA,EAC5B,EAAE,SAAS;AACb;AACA,SAAS,YAAY,OAAO,SAAS,YAAY;AAC/C,QAAM;AAAA,IACJ,uBAAAC;AAAA,EACF,IAAI;AACJ,QAAM,sBAAsBA,uBAAsB,UAAU;AAC5D,QAAM,oBAAoB,wBAAwB,MAAM,wBAAwB,MAAM,OAAO,SAAS,qBAAqB,EAAE;AAC7H,QAAM,gBAAgB,iBAAiB,mBAAmB,OAAO;AACjE,SAAO,SAAS,CAAC,GAAG,OAAO,aAAa;AAC1C;AACA,SAAS,kBAAkB,OAAO,SAAS,YAAY;AACrD,QAAM;AAAA,IACJ,uBAAAA;AAAA,EACF,IAAI;AACJ,QAAM,sBAAsBA,uBAAsB,UAAU;AAC5D,MAAI,oBAAoB,MAAM,UAAU,KAAK,wBAAwB,MAAM,wBAAwB,KAAK;AACtG,WAAO,SAAS,CAAC,GAAG,OAAO;AAAA,MACzB,YAAY;AAAA,IACd,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAIA,SAAS,WAAW,OAAO,SAAS,iBAAiB,WAAW;AAC9D,QAAM,aAAa,kBAAkB,QAAQ,kBAAkB;AAC/D,QAAM,WAAW,UAAU,OAAO,SAAS,WAAW,UAAU;AAChE,QAAM,gBAAgB,iBAAiB,UAAU,OAAO;AACxD,SAAO,SAAS,CAAC,GAAG,OAAO,aAAa;AAC1C;AACA,SAAS,iBAAiB,OAAO,SAAS,IAAI;AAC5C,QAAM,WAAW,QAAQ,EAAE;AAC3B,MAAI,CAAC,SAAS,QAAQ,GAAG;AACvB,WAAO;AAAA,EACT;AACA,SAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IACzB,OAAO;AAAA,IACP,YAAY,OAAO,QAAQ;AAAA,EAC7B,CAAC;AACH;AACO,SAAS,mBAAmB,OAAO,QAAQ;AAChD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,UAAQ,MAAM;AAAA,IACZ,KAAK,uBAAuB;AAC1B,aAAO,YAAY,OAAO,SAAS,OAAO,UAAU;AAAA,IACtD,KAAK,uBAAuB;AAC1B,aAAO,kBAAkB,OAAO,SAAS,OAAO,UAAU;AAAA,IAC5D,KAAK,uBAAuB;AAC1B,aAAO,WAAW,OAAO,SAAS,OAAO,iBAAiB,IAAI;AAAA,IAChE,KAAK,uBAAuB;AAC1B,aAAO,WAAW,OAAO,SAAS,OAAO,iBAAiB,MAAM;AAAA,IAClE,KAAK,uBAAuB;AAC1B,aAAO,iBAAiB,OAAO,SAAS,KAAK;AAAA,IAC/C,KAAK,uBAAuB;AAC1B,aAAO,iBAAiB,OAAO,SAAS,KAAK;AAAA,IAC/C,KAAK,uBAAuB;AAC1B,aAAO,SAAS,CAAC,GAAG,OAAO;AAAA,QACzB,YAAY,OAAO,MAAM,KAAK;AAAA,MAChC,CAAC;AAAA,IACH;AACE,aAAO;AAAA,EACX;AACF;;;AFzFA,IAAM,YAAY,CAAC,WAAW,aAAa,UAAU,UAAU;AAC/D,IAAM,iBAAiB,CAAC,GAAG,WAAW,QAAQ,KAAK;AAC5C,SAAS,sBAAsB,GAAG;AACvC,SAAO,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC;AACxC;AAYO,SAAS,eAAe,YAAY;AACzC,MAAI;AACJ,QAAM;AAAA,IACJ,KAAAC;AAAA,IACA,KAAAC;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB,cAAc;AAAA,IACd,UAAU,eAAe;AAAA,IACzB,OAAO,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,eAAe;AAAA,IACzB,UAAU,eAAe;AAAA,IACzB,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB,IAAI;AAGJ,QAAM,qBAAqB,sBAAsB;AACjD,QAAM;AAAA,IACJ,SAAS;AAAA,EACX,IAAU,eAAO,aAAa,IAAI;AAClC,QAAM,wBAA8B,oBAAY,cAAY;AAC1D,QAAI,MAAuC;AACzC,UAAI,YAAY,SAAS,aAAa,WAAW,CAAC,SAAS,OAAO;AAChE,gBAAQ,MAAM,CAAC,iEAAiE,kDAAkD,6DAA6D,EAAE,KAAK,IAAI,CAAC;AAAA,MAC7M;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AACL,QAAM,WAAiB,eAAO,IAAI;AAClC,QAAM,iBAAiB,WAAW,UAAU,cAAc,qBAAqB;AAC/E,QAAM,UAAU,MAAM,WAAW;AACjC,QAAM,CAAC,SAAS,UAAU,IAAU,iBAAS,KAAK;AAClD,QAAM,oBAA0B,oBAAY,CAAC,OAAO,OAAO,YAAY,WAAW;AAChF,QAAI,UAAU,WAAW,OAAO,eAAe,UAAU;AACvD,cAAQ,QAAQ;AAAA,QAEd,KAAK;AACH,sBAAY,QAAQ,SAAS,OAAO,UAAU;AAC9C;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,sBAAY,QAAQ,SAAS,OAAO,UAAU;AAC9C;AAAA,QACF;AACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,2BAAiC,gBAAQ,MAAM;AACnD,WAAO;AAAA,MACL,KAAAD;AAAA,MACA,KAAAC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAACD,MAAKC,MAAK,MAAM,eAAe,CAAC;AACpC,QAAM,gBAAgB,OAAO,aAAa,OAAO,YAAY,qBAAqB,OAAO,OAAO;AAChG,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,YAAY,eAAe,OAAO,YAAY,IAAI;AAAA,EACpD;AACA,QAAM,kBAAwB,gBAAQ,OAAO;AAAA,IAC3C,OAAO;AAAA,EACT,IAAI,CAAC,SAAS,CAAC;AACf,QAAM,CAAC,OAAO,QAAQ,IAAI,uBAAuB;AAAA,IAC/C,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB;AAAA,IACA,eAAe;AAAA,IACf,eAAqB,gBAAQ,MAAM,0BAA0B,CAAC,wBAAwB,CAAC;AAAA,IACvF;AAAA,EACF,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,sBAAsB,gBAAgB,SAAS;AAClD,iBAAW,KAAK;AAChB,gBAAU,QAAQ,OAAO;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,oBAAoB,cAAc,SAAS,MAAM,CAAC;AACtD,EAAM,kBAAU,MAAM;AACpB,QAAI,gBAAgB,SAAS,KAAK,GAAG;AACnC,eAAS;AAAA,QACP,MAAM,uBAAuB;AAAA,MAC/B,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,YAAY,CAAC;AAClC,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,QAAI;AACJ,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC1G,QAAI,MAAM,uBAAuB,MAAM,kBAAkB;AACvD;AAAA,IACF;AACA,QAAI,sBAAsB,mBAAmB,SAAS;AACpD,UAAI;AACJ,4BAAsB,SAAS,wBAAwB,mBAAmB,YAAY,QAAQ,sBAAsB,KAAK,kBAAkB;AAAA,IAC7I;AACA,eAAW,IAAI;AAAA,EACjB;AACA,QAAM,0BAA0B,mBAAiB,WAAS;AACxD,QAAI,wBAAwB;AAC5B,QAAI,CAAC,gBAAgB,MAAM,WAAW,MAAM;AAC1C,YAAM,IAAI,MAAM,OAAwC,0KAA0K,sBAAuB,EAAE,CAAC;AAAA,IAC9P;AACA,0BAAsB,SAAS,yBAAyB,mBAAmB,aAAa,QAAQ,uBAAuB,KAAK,oBAAoB,KAAK;AACrJ,KAAC,wBAAwB,cAAc,kBAAkB,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAChH,QAAI,MAAM,uBAAuB,MAAM,kBAAkB;AACvD;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,uBAAuB;AAAA,MAC7B;AAAA,MACA,YAAY,MAAM,cAAc;AAAA,IAClC,CAAC;AAAA,EACH;AACA,QAAM,mBAAmB,mBAAiB,WAAS;AACjD,QAAI;AACJ,0BAAsB,QAAQ,mBAAmB,OAAO;AACxD,KAAC,wBAAwB,cAAc,WAAW,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AACzG,QAAI,MAAM,uBAAuB,MAAM,kBAAkB;AACvD;AAAA,IACF;AACA,aAAS;AAAA,MACP,MAAM,uBAAuB;AAAA,MAC7B;AAAA,MACA,YAAY,MAAM,cAAc;AAAA,IAClC,CAAC;AACD,eAAW,KAAK;AAAA,EAClB;AACA,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,QAAI;AACJ,KAAC,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC1G,QAAI,MAAM,uBAAuB,MAAM,kBAAkB;AACvD;AAAA,IACF;AACA,QAAI,SAAS,WAAW,MAAM,kBAAkB,MAAM,QAAQ;AAC5D,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACA,QAAMC,cAAa,eAAa,WAAS;AACvC,UAAM,kBAAkB,QAAQ,MAAM,QAAQ;AAC9C,UAAM,aAAa;AAAA,MACjB,IAAI,uBAAuB;AAAA,MAC3B,MAAM,uBAAuB;AAAA,IAC/B,EAAE,SAAS;AACX,aAAS;AAAA,MACP,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,sBAAsB,mBAAiB,WAAS;AACpD,QAAI;AACJ,KAAC,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC5G,QAAI,MAAM,uBAAuB,MAAM,kBAAkB;AACvD;AAAA,IACF;AAGA,QAAI,eAAe,SAAS,MAAM,GAAG,GAAG;AACtC,YAAM,eAAe;AAAA,IACvB;AACA,YAAQ,MAAM,KAAK;AAAA,MACjB,KAAK;AACH,iBAAS;AAAA,UACP,MAAM,uBAAuB;AAAA,UAC7B;AAAA,UACA,iBAAiB,CAAC,CAAC,MAAM;AAAA,QAC3B,CAAC;AACD;AAAA,MACF,KAAK;AACH,iBAAS;AAAA,UACP,MAAM,uBAAuB;AAAA,UAC7B;AAAA,UACA,iBAAiB,CAAC,CAAC,MAAM;AAAA,QAC3B,CAAC;AACD;AAAA,MACF,KAAK;AACH,iBAAS;AAAA,UACP,MAAM,uBAAuB;AAAA,UAC7B;AAAA,UACA,iBAAiB;AAAA,QACnB,CAAC;AACD;AAAA,MACF,KAAK;AACH,iBAAS;AAAA,UACP,MAAM,uBAAuB;AAAA,UAC7B;AAAA,UACA,iBAAiB;AAAA,QACnB,CAAC;AACD;AAAA,MACF,KAAK;AACH,iBAAS;AAAA,UACP,MAAM,uBAAuB;AAAA,UAC7B;AAAA,QACF,CAAC;AACD;AAAA,MACF,KAAK;AACH,iBAAS;AAAA,UACP,MAAM,uBAAuB;AAAA,UAC7B;AAAA,QACF,CAAC;AACD;AAAA,MACF;AACE;AAAA,IACJ;AAAA,EACF;AACA,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,qBAAqB,qBAAqB,YAAY;AAAA;AAAA,MAE5D;AAAA,MAAU;AAAA,MAAiB;AAAA,MAAW;AAAA,IAAU,CAAC;AACjD,UAAM,wBAAwB,SAAS,CAAC,GAAG,oBAAoB,qBAAqB,aAAa,CAAC;AAClG,WAAO,SAAS,CAAC,GAAG,eAAe,uBAAuB;AAAA,MACxD,SAAS,kBAAkB,qBAAqB;AAAA,IAClD,CAAC;AAAA,EACH;AACA,QAAM,gBAAgB,CAAC,gBAAgB,CAAC,MAAM;AAC5C,QAAI;AACJ,UAAM,qBAAqB;AAAA,MACzB;AAAA,MACA;AAAA;AAAA,MAEA,UAAU;AAAA,IACZ;AACA,UAAM,wBAAwB,SAAS,CAAC,GAAG,oBAAoB,qBAAqB,eAAe;AAAA;AAAA,MAEnG;AAAA;AAAA,IAEA,CAAC,CAAC;AACF,UAAM,sBAAsB,SAAS,CAAC,GAAG,uBAAuB;AAAA,MAC9D,SAAS,kBAAkB,qBAAqB;AAAA;AAAA,MAEhD,UAAU,wBAAwB,SAAS,CAAC,GAAG,uBAAuB;AAAA,QACpE,eAAe,sBAAsB;AAAA,MACvC,CAAC,CAAC;AAAA,MACF,QAAQ,iBAAiB,qBAAqB;AAAA,MAC9C,WAAW,oBAAoB,qBAAqB;AAAA,IACtD,CAAC;AACD,UAAM,gBAAgB,QAAQ,UAAU,aAAa,UAAU,OAAO,QAAQ;AAI9E,WAAO,cAAc;AACrB,WAAO,SAAS;AAAA,MACd,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,gBAAgB,aAAa;AAAA,MAC7B,cAAc;AAAA,MACd,OAAO;AAAA,MACP,iBAAiB;AAAA,MACjB,kBAAkB,OAAO,YAAY;AAAA,MACrC,iBAAiBF;AAAA,MACjB,iBAAiBC;AAAA,MACjB,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,UAAU;AAAA,IACZ,GAAG,eAAe;AAAA,MAChB,KAAK;AAAA,IACP,GAAG,mBAAmB;AAAA,EACxB;AACA,QAAM,+BAA+B,WAAS;AAC5C,UAAM,eAAe;AACrB,QAAI,SAAS,SAAS;AACpB,eAAS,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACA,QAAM,2BAA2B;AAAA,IAC/B,iBAAiB;AAAA,IACjB,UAAU;AAAA,EACZ;AACA,QAAM,sBAAsB,iBAAiB,SAAS,KAAK,IAAI,UAAUA,QAAO,OAAOA,OAAM,OAAO,oBAAoB;AACxH,QAAM,0BAA0B,CAAC,gBAAgB,CAAC,MAAM;AACtD,WAAO,SAAS,CAAC,GAAG,eAAe,0BAA0B;AAAA,MAC3D,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,aAAa;AAAA,MACb,SAASC,YAAW,IAAI;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,QAAM,sBAAsB,iBAAiB,SAAS,KAAK,IAAI,UAAUF,QAAO,OAAOA,OAAM,OAAO,oBAAoB;AACxH,QAAM,0BAA0B,CAAC,gBAAgB,CAAC,MAAM;AACtD,WAAO,SAAS,CAAC,GAAG,eAAe,0BAA0B;AAAA,MAC3D,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,aAAa;AAAA,MACb,SAASE,YAAW,MAAM;AAAA,IAC5B,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AF9UA,IAAAC,uBAA4B;AAC5B,IAAAA,uBAA8B;AAT9B,IAAMC,cAAY,CAAC,aAAa,gBAAgB,YAAY,gBAAgB,SAAS,MAAM,OAAO,OAAO,UAAU,iBAAiB,WAAW,YAAY,eAAe,YAAY,YAAY,mBAAmB,kBAAkB,QAAQ,SAAS,aAAa,OAAO;AAU5Q,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,SAAS,SAAS,WAAW,WAAW,YAAY,YAAY,QAAQ,kBAAkB,KAAK,eAAe,QAAQ,cAAc,KAAK,gBAAgB,QAAQ,YAAY,KAAK,YAAY;AAAA,IACrO,OAAO,CAAC,SAAS,YAAY,YAAY,YAAY,UAAU;AAAA,IAC/D,iBAAiB,CAAC,mBAAmB,uBAAuB,UAAU;AAAA,IACtE,iBAAiB,CAAC,mBAAmB,uBAAuB,UAAU;AAAA,EACxE;AACA,SAAO,eAAe,OAAO,sBAAsB,0BAA0B,CAAC;AAChF;AAYA,IAAM,cAAiC,mBAAW,SAASC,aAAY,OAAO,cAAc;AAC1F,MAAI,aAAa,cAAc,uBAAuB;AACtD,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAAC;AAAA,IACA,KAAAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,OAAO,8BAA8B,OAAOJ,WAAS;AACvD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,eAAe;AAAA,IACjB,KAAAI;AAAA,IACA,KAAAD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,eAAe;AAAA,EACjB,CAAC;AACD,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC,UAAU;AAAA,IACV,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUF,oBAAkB,UAAU;AAC5C,QAAM,4BAA4B;AAAA,IAChC;AAAA,EACF;AACA,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,CAAC,QAAQ,MAAM,SAAS;AAAA,EACrC,CAAC;AACD,QAAMI,UAAS,eAAe,MAAM,UAAU,OAAO,eAAe;AACpE,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAaA;AAAA,IACb,cAAc,mBAAiB,cAAc,SAAS,CAAC,GAAG,2BAA2B,aAAa,CAAC;AAAA,IACnG,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,mBAAmB,wBAAwB,MAAM,oBAAoB,OAAO,wBAAwB;AAC1G,QAAM,uBAAuB,aAAa;AAAA,IACxC,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,mBAAmB,wBAAwB,MAAM,oBAAoB,OAAO,wBAAwB;AAC1G,QAAM,uBAAuB,aAAa;AAAA,IACxC,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAC,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACtD,UAAU,KAAc,qBAAAC,KAAK,iBAAiB,SAAS,CAAC,GAAG,oBAAoB,CAAC,OAAgB,qBAAAA,KAAK,iBAAiB,SAAS,CAAC,GAAG,oBAAoB,CAAC,GAAG,oBAA6B,qBAAAA,KAAKF,QAAO,SAAS,CAAC,GAAG,UAAU,CAAC,GAAG,YAAY;AAAA,EAC7O,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,YAAY,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrF,UAAU,oBAAAG,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIxB,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIjB,IAAI,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAId,KAAK,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIf,KAAK,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIf,QAAQ,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASlB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,eAAe,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIzB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,iBAAiB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK3B,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,iBAAiB,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IACvE,iBAAiB,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IACvE,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,iBAAiB,oBAAAA,QAAU;AAAA,IAC3B,iBAAiB,oBAAAA,QAAU;AAAA,IAC3B,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,gBAAgB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI1B,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhB,OAAO,oBAAAA,QAAU;AACnB,IAAI;;;AMhRJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,mBAAiB;AAChB,SAAS,2BAA2B,MAAM;AAC/C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,qBAAqBE,wBAAuBF,kBAAgB,CAAC,QAAQ,YAAY,SAAS,MAAM,CAAC;;;ADK9G,IAAAG,uBAA4B;AAC5B,IAAAA,uBAA8B;AAR9B,IAAMC,cAAY,CAAC,YAAY,aAAa,OAAO;AASnD,SAASC,oBAAkB,UAAU;AACnC,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,UAAU;AAAA,IACrC,OAAO,CAAC,OAAO;AAAA,IACf,MAAM,CAAC,MAAM;AAAA,EACf;AACA,SAAO,eAAe,OAAO,sBAAsB,0BAA0B,CAAC;AAChF;AAaA,IAAM,cAAiC,mBAAW,SAASC,aAAY,OAAO,cAAc;AAC1F,QAAM;AAAA,IACF,WAAW;AAAA,IACX,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM,QAAQ,SAAS,OAAO,SAAS,MAAM,SAAS;AACtD,QAAM,SAAS,SAAS,OAAO,SAAS,MAAM,UAAU;AACxD,QAAM,QAAQ,SAAS,OAAO,SAAS,MAAM,SAAS;AACtD,QAAM,UAAUC,oBAAkB,QAAQ;AAC1C,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA,YAAY;AAAA,IACZ,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,YAAY;AAAA,IACZ,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,YAAY;AAAA,IACZ,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACtD,UAAU,KAAc,qBAAAC,KAAK,OAAO,SAAS,CAAC,GAAG,YAAY;AAAA,MAC3D,UAAU,MAAM;AAAA,IAClB,CAAC,CAAC,OAAgB,qBAAAA,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,MACnD,UAAU,MAAM;AAAA,IAClB,CAAC,CAAC,CAAC;AAAA,EACL,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,YAAY,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrF,UAAU,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC5D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,IAChB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AEjHJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;;;ACLA,IAAMC,mBAAiB;AAChB,SAAS,sBAAsB,MAAM;AAC1C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,gBAAgBE,wBAAuBF,kBAAgB,CAAC,QAAQ,YAAY,YAAY,aAAa,CAAC;;;ACJnH;AACA,IAAAG,UAAuB;AACvB;AAgBO,SAAS,UAAU,QAAQ;AAChC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,IAAI;AAAA,EACN,IAAI;AACJ,QAAM;AAAA,IACJ,cAAc;AAAA,IACd;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAAA,IACd,MAAM;AAAA,EACR,CAAC;AACD,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,SAAS;AAAA,EACX,IAAI,UAAU;AAAA,IACZ;AAAA,IACA,uBAAuB;AAAA,EACzB,CAAC;AACD,QAAM,KAAK,MAAM,OAAO;AACxB,QAAM,YAAkB,eAAO,IAAI;AACnC,QAAM,eAAqB,gBAAQ,OAAO;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,EACF,IAAI,CAAC,UAAU,OAAO,OAAO,EAAE,CAAC;AAChC,QAAM;AAAA,IACJ,OAAAC;AAAA,EACF,IAAI,gBAAgB,OAAO,YAAY;AACvC,QAAM,YAAY,WAAW,gBAAgB,WAAW,gBAAgB;AACxE,QAAM,sBAAsB,mBAAiB,WAAS;AACpD,QAAI;AACJ,KAAC,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC5G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,QAAI,CAAC,KAAK,OAAO,EAAE,SAAS,MAAM,GAAG,GAAG;AACtC,YAAM,sBAAsB;AAAA,IAC9B;AAAA,EACF;AACA,QAAM,iBAAiB,CAAC,gBAAgB,CAAC,OAAO;AAAA,IAC9C,WAAW,oBAAoB,aAAa;AAAA,EAC9C;AACA,SAAO;AAAA,IACL,cAAc,CAAC,gBAAgB,CAAC,MAAM;AACpC,YAAM,wBAAwB,qBAAqB,aAAa;AAChE,YAAM,uBAAuB,sBAAsB,kBAAkB,sBAAsB,gBAAgB,cAAc,CAAC;AAC1H,aAAO,SAAS,CAAC,GAAG,eAAe,uBAAuB,qBAAqB,qBAAqB,GAAG;AAAA,QACrG;AAAA,QACA,KAAK;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,IACA;AAAA,IACA,OAAAA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX;AACF;;;AClFA,IAAAC,UAAuB;AAiBhB,SAAS,2BAA2B,OAAO;AAChD,QAAM,cAAoB,mBAAW,WAAW;AAChD,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACtD;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,aAAa,KAAK;AAItB,QAAM,oBAA0B,oBAAY,eAAa;AACvD,QAAI,cAAc,OAAO;AACvB,YAAM,IAAI,MAAM,CAAC,gEAAgE,qGAAqG,EAAE,KAAK,IAAI,CAAC;AAAA,IACpM;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,aAAa,UAAU,WAAW,KAAK,CAAC;AAK5C,QAAM,oBAA0B,gBAAQ,OAAO;AAAA,IAC7C;AAAA,IACA,cAAc;AAAA,EAChB,IAAI,CAAC,UAAU,iBAAiB,CAAC;AACjC,SAAO;AAAA,IACL,cAAc;AAAA,EAChB;AACF;;;AH3CA,IAAAC,uBAA4B;AAV5B,IAAMC,cAAY,CAAC,YAAY,YAAY,SAAS,aAAa,SAAS,OAAO;AAWjF,SAASC,oBAAkB,YAAY;AACrC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,eAAe,eAAe,YAAY,UAAU;AAAA,EAC7F;AACA,SAAO,eAAe,OAAO,sBAAsB,qBAAqB,CAAC;AAC3E;AACA,IAAM,cAAiC,aAAyB,mBAAW,SAAS,OAAO,OAAO,cAAc;AAC9G,MAAI,aAAa;AACjB,QAAM;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT;AAAA,EACF,IAAI,OACJ,QAAQ,8BAA8B,OAAOD,WAAS;AACxD,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAkB,eAAO,IAAI;AACnC,QAAM,cAAc,WAAW,WAAW,YAAY;AAItD,QAAM,gBAAgB,SAAS,OAAO,QAAQ,OAAO,aAAa,WAAW,YAAY,qBAAqB,UAAU,YAAY,SAAS,qBAAqB,mBAAmB,gBAAgB,OAAO,SAAS,mBAAmB,KAAK;AAC7O,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAAE;AAAA,EACF,IAAI,UAAU;AAAA,IACZ;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT;AAAA,EACF,CAAC;AACD,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA,OAAAA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUD,oBAAkB,UAAU;AAC5C,QAAM,YAAY,aAAa;AAAA,IAC7B,cAAc;AAAA,IACd,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,WAAW,QAAQ;AAAA,IACnB;AAAA,EACF,CAAC;AACD,aAAoB,qBAAAE,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACrD;AAAA,EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAaF,IAAMC,UAA4B,mBAAW,SAASA,QAAO,OAAO,KAAK;AACvE,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AAMJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,2BAA2B,KAAK;AACpC,aAAoB,qBAAAD,KAAK,YAAY,UAAU;AAAA,IAC7C,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,MAC3D;AAAA,IACF,CAAC,CAAC;AAAA,EACJ,CAAC;AACH,CAAC;AACD,OAAwCC,QAAO,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhF,UAAU,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,OAAO,oBAAAA,QAAU,IAAI;AACvB,IAAI;;;AIjJJ;AACA;AAGA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;;;ACNA;AACA,IAAAC,UAAuB;AACvB;;;ACJO,IAAM,oBAAoB;AAAA,EAC/B,aAAa;AAAA,EACb,iBAAiB;AACnB;;;ACHA,IAAM,2BAA2B,YAAU;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AAGA,SAAO,OAAO,MAAM;AACtB;;;ACdA;AAGO,SAAS,cAAc,OAAO,QAAQ;AAC3C,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ,SAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF,IAAI;AACJ,MAAI,OAAO,SAAS,kBAAkB,aAAa;AACjD,QAAI;AACJ,UAAM,mBAAmB,wBAAwB,MAAM,eAAe,CAAC,MAAM,OAAO,wBAAwB,cAAc,MAAM,SAAS,OAAO,OAAO;AACvJ,WAAO,SAAS,CAAC,GAAG,OAAO;AAAA,MACzB,MAAM,CAAC;AAAA,MACP,kBAAkB,CAAC,OAAO,kBAAkB;AAAA,IAC9C,CAAC;AAAA,EACH;AACA,MAAI,OAAO,SAAS,kBAAkB,iBAAiB;AACrD,WAAO,oBAAoB,OAAO,MAAM,OAAO,OAAO,OAAO;AAAA,EAC/D;AACA,QAAM,WAAW,YAAY,OAAO,MAAM;AAC1C,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,gBAAgB;AACnB,UAAI,MAAM,MAAM;AACd,YAAI,OAAO,MAAM,QAAQ,UAAU;AACjC,iBAAO,SAAS,CAAC,GAAG,UAAU;AAAA,YAC5B,MAAM;AAAA,UACR,CAAC;AAAA,QACH;AAAA,MACF,OAAO;AACL,YAAI,OAAO,MAAM,QAAQ,aAAa;AACpC,cAAI;AACJ,iBAAO,SAAS,CAAC,GAAG,OAAO;AAAA,YACzB,MAAM;AAAA,YACN,mBAAmB,yBAAyB,MAAM,eAAe,CAAC,MAAM,OAAO,yBAAyB,cAAc,MAAM,SAAS,OAAO,OAAO;AAAA,UACrJ,CAAC;AAAA,QACH;AACA,YAAI,OAAO,MAAM,QAAQ,WAAW;AAClC,cAAI;AACJ,iBAAO,SAAS,CAAC,GAAG,OAAO;AAAA,YACzB,MAAM;AAAA,YACN,mBAAmB,yBAAyB,MAAM,eAAe,CAAC,MAAM,OAAO,yBAAyB,cAAc,MAAM,OAAO,OAAO,OAAO;AAAA,UACnJ,CAAC;AAAA,QACH;AAAA,MACF;AACA;AAAA,IACF,KAAK,gBAAgB;AACnB,UAAI,kBAAkB,UAAU;AAC9B,eAAO,SAAS,CAAC,GAAG,UAAU;AAAA,UAC5B,MAAM;AAAA,QACR,CAAC;AAAA,MACH;AACA;AAAA,IACF,KAAK,gBAAgB;AACnB,aAAO,SAAS,CAAC,GAAG,UAAU;AAAA,QAC5B,MAAM;AAAA,MACR,CAAC;AAAA,IACH;AACE,aAAO;AAAA,EACX;AACA,SAAO;AACT;;;AHnDA,SAAS,yBAAyB,gBAAgB;AAChD,MAAI,MAAM,QAAQ,cAAc,GAAG;AACjC,QAAI,eAAe,WAAW,GAAG;AAC/B,aAAO;AAAA,IACT;AACA,WAAO,KAAK,UAAU,eAAe,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,EACxD;AACA,OAAK,kBAAkB,OAAO,SAAS,eAAe,UAAU,MAAM;AACpE,WAAO;AAAA,EACT;AACA,MAAI,OAAO,eAAe,UAAU,YAAY,OAAO,eAAe,UAAU,UAAU;AACxF,WAAO,eAAe;AAAA,EACxB;AACA,SAAO,KAAK,UAAU,eAAe,KAAK;AAC5C;AAYA,SAAS,UAAU,OAAO;AACxB,QAAM;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,IACd,WAAW;AAAA,IACX,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,SAAS;AAAA,IACT,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,OAAO;AAAA,IACP,gBAAgB;AAAA,EAClB,IAAI;AACJ,QAAM,YAAkB,eAAO,IAAI;AACnC,QAAM,kBAAkB,WAAW,eAAe,SAAS;AAC3D,QAAM,aAAmB,eAAO,IAAI;AACpC,QAAM,YAAY,MAAM,aAAa;AACrC,MAAI;AACJ,MAAI,cAAc,UAAa,qBAAqB,QAAW;AAC7D,mBAAe,CAAC;AAAA,EAClB,WAAW,qBAAqB,QAAW;AACzC,QAAI,UAAU;AACZ,qBAAe;AAAA,IACjB,OAAO;AACL,qBAAe,oBAAoB,OAAO,CAAC,IAAI,CAAC,gBAAgB;AAAA,IAClE;AAAA,EACF;AACA,QAAM,QAAc,gBAAQ,MAAM;AAChC,QAAI,cAAc,QAAW;AAC3B,UAAI,UAAU;AACZ,eAAO;AAAA,MACT;AACA,aAAO,aAAa,OAAO,CAAC,IAAI,CAAC,SAAS;AAAA,IAC5C;AACA,WAAO;AAAA,EACT,GAAG,CAAC,WAAW,QAAQ,CAAC;AACxB,QAAM;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,EAChB,IAAI,kBAAkB;AACtB,QAAM,UAAgB,gBAAQ,MAAM;AAClC,QAAI,gBAAgB,MAAM;AACxB,aAAO,IAAI,IAAI,aAAa,IAAI,CAAC,QAAQC,WAAU,CAAC,OAAO,OAAO;AAAA,QAChE,OAAO,OAAO;AAAA,QACd,OAAO,OAAO;AAAA,QACd,UAAU,OAAO;AAAA,QACjB,KAAwB,kBAAU;AAAA,QAClC,IAAI,GAAG,SAAS,IAAIA,MAAK;AAAA,MAC3B,CAAC,CAAC,CAAC;AAAA,IACL;AACA,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,UAAU,SAAS,CAAC;AACtC,QAAM,mBAAmB,WAAW,gBAAgB,UAAU;AAC9D,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,SAAS;AAAA,EACX,IAAI,UAAU;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACD,QAAM,eAAqB,gBAAQ,MAAM,MAAM,KAAK,QAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9E,QAAM,mBAAyB,oBAAY,gBAAc;AAGvD,QAAI,oBAAoB,QAAW;AACjC,YAAM,eAAe,aAAa,KAAK,iBAAe,gBAAgB,aAAa,UAAU,CAAC;AAC9F,aAAO,QAAQ,IAAI,YAAY;AAAA,IACjC;AACA,WAAO,QAAQ,IAAI,UAAU;AAAA,EAC/B,GAAG,CAAC,SAAS,iBAAiB,YAAY,CAAC;AAC3C,QAAM,iBAAuB,oBAAY,kBAAgB;AACvD,QAAI;AACJ,UAAM,SAAS,iBAAiB,YAAY;AAC5C,YAAQ,mBAAmB,UAAU,OAAO,SAAS,OAAO,aAAa,OAAO,mBAAmB;AAAA,EACrG,GAAG,CAAC,gBAAgB,CAAC;AACrB,QAAM,kBAAwB,oBAAY,kBAAgB;AACxD,UAAM,SAAS,iBAAiB,YAAY;AAC5C,QAAI,CAAC,QAAQ;AACX,aAAO;AAAA,IACT;AACA,WAAO,kBAAkB,MAAM;AAAA,EACjC,GAAG,CAAC,kBAAkB,iBAAiB,CAAC;AACxC,QAAM,kBAAwB,gBAAQ,OAAO;AAAA,IAC3C,gBAAgB;AAAA,IAChB,MAAM;AAAA,EACR,IAAI,CAAC,OAAO,QAAQ,CAAC;AACrB,QAAM,YAAkB,oBAAY,eAAa;AAC/C,QAAI;AACJ,YAAQ,eAAe,QAAQ,IAAI,SAAS,MAAM,OAAO,SAAS,aAAa;AAAA,EACjF,GAAG,CAAC,OAAO,CAAC;AACZ,QAAM,wBAA8B,oBAAY,CAAC,OAAO,cAAc;AACpE,QAAI,UAAU;AACZ,kBAAY,QAAQ,SAAS,OAAO,SAAS;AAAA,IAC/C,OAAO;AACL,UAAI;AACJ,kBAAY,QAAQ,SAAS,QAAQ,cAAc,UAAU,CAAC,MAAM,OAAO,cAAc,IAAI;AAAA,IAC/F;AAAA,EACF,GAAG,CAAC,UAAU,QAAQ,CAAC;AACvB,QAAM,wBAA8B,oBAAY,CAAC,OAAO,aAAa;AACnE,yBAAqB,QAAQ,kBAAkB,OAAO,YAAY,OAAO,WAAW,IAAI;AAAA,EAC1F,GAAG,CAAC,iBAAiB,CAAC;AACtB,QAAM,oBAA0B,oBAAY,CAAC,OAAO,OAAO,eAAe;AACxE,QAAI,UAAU,QAAQ;AACpB,sBAAgB,QAAQ,aAAa,UAAU;AAC/C,UAAI,eAAe,UAAU,SAAS,OAAO,SAAS,MAAM,UAAU,QAAQ;AAC5E,YAAI;AACJ,SAAC,qBAAqB,UAAU,YAAY,QAAQ,mBAAmB,MAAM;AAAA,MAC/E;AAAA,IACF;AAAA,EACF,GAAG,CAAC,YAAY,CAAC;AACjB,QAAM,oBAA0B,oBAAY,YAAU;AACpD,QAAI,uBAAuB;AAC3B,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,YAAQ,yBAAyB,gBAAgB,SAAS,IAAI,MAAM,MAAM,OAAO,SAAS,cAAc,IAAI,YAAY,OAAO,wBAAwB;AAAA,EACzJ,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,oBAAoB;AAAA,IACxB,iBAAiB,MAAM;AACrB,UAAI;AACJ,aAAO;AAAA,QACL,kBAAkB;AAAA,QAClB,iBAAiB,gBAAgB,iBAAiB,OAAO,gBAAgB,CAAC;AAAA,QAC1E,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,sBAA4B,gBAAQ,OAAO;AAAA,MACzC;AAAA,IACF,IAAI,CAAC,QAAQ,CAAC;AAAA,IACd,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,eAAe,WAAW,aAAa;AAAA,IACvC,cAAc;AAAA,IACd;AAAA,EACF;AACA,QAAM;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,IACd,cAAc;AAAA,IACd,OAAO;AAAA,MACL;AAAA,MACA,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,IAClB;AAAA,IACA,SAAS;AAAA,EACX,IAAI,QAAQ,iBAAiB;AAI7B,QAAM,kBAAwB,eAAO,IAAI;AACzC,4BAAkB,MAAM;AACtB,QAAI,QAAQ,sBAAsB,MAAM;AACtC,UAAI;AACJ,YAAM,aAAa,oBAAoB,iBAAiB,iBAAiB,MAAM,OAAO,SAAS,kBAAkB;AACjH,UAAI,CAAC,WAAW,WAAW,EAAE,aAAa,QAAQ,UAAU,UAAU;AACpE;AAAA,MACF;AACA,UAAI,CAAC,gBAAgB,SAAS;AAC5B,kBAAU,QAAQ,MAAM;AAAA,UACtB,eAAe;AAAA,QACjB,CAAC;AAAA,MACH;AACA,YAAM,oBAAoB,WAAW,QAAQ,sBAAsB;AACnE,YAAM,mBAAmB,UAAU,QAAQ,sBAAsB;AACjE,UAAI,iBAAiB,MAAM,kBAAkB,KAAK;AAChD,mBAAW,QAAQ,aAAa,kBAAkB,MAAM,iBAAiB;AAAA,MAC3E,WAAW,iBAAiB,SAAS,kBAAkB,QAAQ;AAC7D,mBAAW,QAAQ,aAAa,iBAAiB,SAAS,kBAAkB;AAAA,MAC9E;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,mBAAmB,gBAAgB,CAAC;AAC9C,QAAM,oBAA0B,oBAAY,iBAAe,iBAAiB,WAAW,GAAG,CAAC,gBAAgB,CAAC;AAC5G,QAAM,0BAA0B,2BAAyB,WAAS;AAChE,QAAI;AACJ,6BAAyB,SAAS,wBAAwB,sBAAsB,YAAY,QAAQ,sBAAsB,KAAK,uBAAuB,KAAK;AAC3J,QAAI,CAAC,MAAM,qBAAqB;AAC9B,YAAM,SAAS;AAAA,QACb,MAAM,kBAAkB;AAAA,QACxB;AAAA,MACF;AACA,eAAS,MAAM;AAAA,IACjB;AAAA,EACF;AACA,QAAM,4BAA4B,mBAAiB,WAAS;AAC1D,QAAI;AACJ,KAAC,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC5G,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,QAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,WAAW;AACxD,YAAM,eAAe;AACrB,eAAS;AAAA,QACP,MAAM,gBAAgB;AAAA,QACtB,KAAK,MAAM;AAAA,QACX;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,wBAAwB,CAAC,gBAAgB,CAAC,OAAO;AAAA,IACrD,SAAS,wBAAwB,aAAa;AAAA,IAC9C,WAAW,0BAA0B,aAAa;AAAA,EACpD;AACA,QAAM,wBAAwB,CAAC,gBAAgB,CAAC,MAAM;AACpD,WAAO,SAAS,CAAC,GAAG,eAAe,sBAAsB,aAAa,GAAG;AAAA,MACvE,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACnB,CAAC;AAAA,EACH;AACA,QAAM,iBAAiB,CAAC,gBAAgB,CAAC,MAAM;AAC7C,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,UAAM,gBAAgB,sBAAsB,uBAAuB,kBAAkB;AACrF,WAAO,SAAS,CAAC,GAAG,eAAe,cAAc,qBAAqB,CAAC;AAAA,EACzE;AACA,QAAM,0BAA0B,mBAAiB,WAAS;AACxD,QAAI,uBAAuB;AAC3B,KAAC,wBAAwB,cAAc,WAAW,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AACzG,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,SAAK,sBAAsB,WAAW,YAAY,QAAQ,oBAAoB,SAAS,MAAM,aAAa,KAAK,MAAM,kBAAkB,UAAU,SAAS;AACxJ,YAAM,sBAAsB;AAAA,IAC9B;AAAA,EACF;AACA,QAAM,wBAAwB,CAAC,gBAAgB,CAAC,OAAO;AAAA,IACrD,QAAQ,wBAAwB,aAAa;AAAA,EAC/C;AACA,QAAM,kBAAkB,CAAC,gBAAgB,CAAC,MAAM;AAC9C,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,UAAM,uBAAuB,sBAAsB,uBAAuB,mBAAmB;AAC7F,WAAO,SAAS;AAAA,MACd,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,wBAAwB,WAAW,SAAS;AAAA,IAC9C,GAAG,eAAe,qBAAqB,qBAAqB,CAAC;AAAA,EAC/D;AACA,EAAM,sBAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,eAAqB,gBAAQ,MAAM,SAAS,CAAC,GAAG,kBAAkB,6BAA6B,GAAG,CAAC,kBAAkB,6BAA6B,CAAC;AACzJ,MAAI;AACJ,MAAI,MAAM,UAAU;AAClB,kBAAc;AAAA,EAChB,OAAO;AACL,kBAAc,gBAAgB,SAAS,IAAI,gBAAgB,CAAC,IAAI;AAAA,EAClE;AACA,MAAI;AACJ,MAAI,UAAU;AACZ,8BAA0B,YAAY,IAAI,OAAK,kBAAkB,CAAC,CAAC,EAAE,OAAO,OAAK,MAAM,MAAS;AAAA,EAClG,OAAO;AACL,QAAI;AACJ,+BAA2B,qBAAqB,kBAAkB,WAAW,MAAM,OAAO,qBAAqB;AAAA,EACjH;AACA,QAAM,gCAAgC,2BAAyB,WAAS;AACtE,QAAI;AACJ,6BAAyB,SAAS,yBAAyB,sBAAsB,aAAa,QAAQ,uBAAuB,KAAK,uBAAuB,KAAK;AAC9J,QAAI,MAAM,qBAAqB;AAC7B;AAAA,IACF;AACA,UAAM,SAAS,QAAQ,IAAI,MAAM,OAAO,KAAK;AAG7C,QAAI,MAAM,OAAO,UAAU,IAAI;AAC7B,eAAS;AAAA,QACP,MAAM,gBAAgB;AAAA,MACxB,CAAC;AAAA,IACH,WAAW,WAAW,QAAW;AAC/B,eAAS;AAAA,QACP,MAAM,kBAAkB;AAAA,QACxB,MAAM,OAAO;AAAA,QACb;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,QAAM,sBAAsB,CAAC,gBAAgB,CAAC,MAAM;AAClD,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,WAAO,SAAS;AAAA,MACd;AAAA,MACA,UAAU;AAAA,MACV,eAAe;AAAA,MACf,UAAU,WAAW,OAAO;AAAA,MAC5B,OAAO,mBAAmB,uBAAuB;AAAA,MACjD,OAAO;AAAA,IACT,GAAG,eAAe;AAAA,MAChB,UAAU,8BAA8B,qBAAqB;AAAA,IAC/D,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,IACT,OAAO;AAAA,IACP;AAAA,EACF;AACF;;;AI5WA,IAAAC,UAAuB;AAGvB,IAAAC,uBAA4B;AAMrB,SAAS,eAAe,OAAO;AACpC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,mBAAyB,gBAAQ,OAAO;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,UAAU,cAAc,YAAY,CAAC;AAC1C,QAAM,gCAAsC,gBAAQ,OAAO;AAAA,IACzD;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,cAAc,cAAc,iBAAiB,CAAC;AACnD,aAAoB,qBAAAC,KAAK,yBAAyB,UAAU;AAAA,IAC1D,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,YAAY,UAAU;AAAA,MAChD,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;;ACtCA,IAAMC,mBAAiB;AAChB,SAAS,sBAAsB,MAAM;AAC1C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,gBAAgBE,wBAAuBF,kBAAgB,CAAC,QAAQ,UAAU,WAAW,SAAS,UAAU,YAAY,YAAY,cAAc,CAAC;;;ANW5J,IAAAG,uBAA4B;AAC5B,IAAAA,uBAA8B;AAd9B,IAAI;AACJ,IAAMC,cAAY,CAAC,mBAAmB,gBAAgB,aAAa,YAAY,gBAAgB,sBAAsB,YAAY,sBAAsB,aAAa,eAAe,YAAY,QAAQ,YAAY,YAAY,uBAAuB,qBAAqB,eAAe,eAAe,aAAa,SAAS,OAAO;AActU,SAAS,mBAAmB,iBAAiB;AAC3C,MAAI;AACJ,MAAI,MAAM,QAAQ,eAAe,GAAG;AAClC,eAAoB,qBAAAC,KAAW,kBAAU;AAAA,MACvC,UAAU,gBAAgB,IAAI,OAAK,EAAE,KAAK,EAAE,KAAK,IAAI;AAAA,IACvD,CAAC;AAAA,EACH;AACA,UAAQ,wBAAwB,mBAAmB,OAAO,SAAS,gBAAgB,UAAU,OAAO,wBAAwB;AAC9H;AACA,SAASC,oBAAkB,YAAY;AACrC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,gBAAgB,gBAAgB,UAAU,UAAU,QAAQ,UAAU;AAAA,IAC7G,SAAS,CAAC,WAAW,YAAY,UAAU;AAAA,IAC3C,OAAO,CAAC,OAAO;AAAA,EACjB;AACA,SAAO,eAAe,OAAO,sBAAsB,qBAAqB,CAAC;AAC3E;AAaA,IAAM,SAA4B,mBAAW,SAASC,QAAO,OAAO,cAAc;AAChF,MAAI,aAAa,gBAAgB,cAAc,MAAM;AACrD,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,qBAAqB;AAAA,IACrB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,WAAW;AAAA,IACX;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,aAAa;AAAA,IACb;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT,OAAO;AAAA,EACT,IAAI,OACJ,QAAQ,8BAA8B,OAAOH,WAAS;AACxD,QAAM,cAAc,mBAAmB,OAAO,kBAAkB;AAChE,QAAM,CAAC,eAAe,gBAAgB,IAAU,iBAAS,KAAK;AAC9D,QAAM,YAAkB,eAAO,IAAI;AACnC,QAAM,aAAmB,eAAO,IAAI;AACpC,QAAMI,WAAU,cAAc,MAAM,SAAS,OAAO,cAAc;AAClE,QAAM,eAAe,iBAAiB,MAAM,YAAY,OAAO,iBAAiB;AAChF,QAAM,kBAAkB,eAAe,MAAM,UAAU,OAAO,eAAe;AAC7E,QAAM,wBAA8B,oBAAY,aAAW;AACzD,qBAAiB,WAAW,IAAI;AAAA,EAClC,GAAG,CAAC,CAAC;AACL,QAAM,kBAAkB,WAAW,cAAc,WAAW,qBAAqB;AACjF,EAAM,kBAAU,MAAM;AACpB,QAAI,WAAW;AACb,gBAAU,QAAQ,MAAM;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,UAAU;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,aAAa;AAAA,IACb;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,OAAO;AAAA,IACP,eAAe;AAAA,EACjB,CAAC;AACD,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUF,oBAAkB,UAAU;AAC5C,QAAM,cAAc,aAAa;AAAA,IAC/B,aAAaE;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,eAAe,aAAa;AAAA,IAChC,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,QAAQ,UAAU;AAAA,MAClB,aAAa;AAAA,MACb;AAAA,MACA,WAAW;AAAA,MACX,MAAM;AAAA,IACR;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,MAAI;AACJ,MAAI,UAAU;AACZ,8BAA0B,MAAM,IAAI,OAAK,kBAAkB,CAAC,CAAC,EAAE,OAAO,OAAK,MAAM,MAAS;AAAA,EAC5F,OAAO;AACL,QAAI;AACJ,+BAA2B,qBAAqB,kBAAkB,KAAK,MAAM,OAAO,qBAAqB;AAAA,EAC3G;AACA,aAAoB,qBAAAC,MAAY,kBAAU;AAAA,IACxC,UAAU,KAAc,qBAAAJ,KAAKG,SAAQ,SAAS,CAAC,GAAG,aAAa;AAAA,MAC7D,WAAW,QAAQ,eAAe,YAAY,uBAAuB,MAAM,OAAO,eAAe,gBAAgB,OAAO;AAAA;AAAA;AAAA,QAExH,UAAU,YAAqB,qBAAAH,KAAK,QAAQ;AAAA,UAC1C,WAAW;AAAA,UACX,UAAU;AAAA,QACZ,CAAC;AAAA;AAAA,IACH,CAAC,CAAC,GAAG,qBAA8B,qBAAAA,KAAK,OAAO,SAAS;AAAA,MACtD,OAAO;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF,GAAG,YAAY;AAAA,MACb,cAAuB,qBAAAA,KAAK,aAAa,SAAS,CAAC,GAAG,cAAc;AAAA,QAClE,cAAuB,qBAAAA,KAAK,gBAAgB;AAAA,UAC1C,OAAO;AAAA,UACP;AAAA,QACF,CAAC;AAAA,MACH,CAAC,CAAC;AAAA,IACJ,CAAC,CAAC,OAAgB,qBAAAA,KAAK,SAAS,SAAS,CAAC,GAAG,oBAAoB,GAAG;AAAA,MAClE;AAAA,IACF,CAAC,CAAC,CAAC;AAAA,EACL,CAAC;AACH,CAAC;AACD,OAAwC,OAAO,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYhF,iBAAiB,oBAAAK,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3B,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,oBAAoB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI9B,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQpB,mBAAmB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,oBAAoB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI9B,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,qBAAqB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI/B,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIvB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,WAAW,oBAAAA,QAAgD,MAAM;AAAA,IAC/D,SAAS,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC/D,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAgD,MAAM;AAAA,IAC3D,SAAS,oBAAAA,QAAU;AAAA,IACnB,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,oBAAAA,QAAU;AACnB,IAAI;;;AOlUJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;AACA;;;ACNA,IAAMC,mBAAiB;AAChB,SAAS,sBAAsB,MAAM;AAC1C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,gBAAgBE,wBAAuBF,kBAAgB,CAAC,QAAQ,UAAU,gBAAgB,YAAY,YAAY,UAAU,YAAY,iBAAiB,cAAc,QAAQ,SAAS,QAAQ,cAAc,aAAa,mBAAmB,OAAO,CAAC;;;ACJnQ;AACA,IAAAG,UAAuB;AACvB;AAEA,IAAM,mCAAmC;AACzC,SAAS,IAAI,GAAG,GAAG;AACjB,SAAO,IAAI;AACb;AACA,SAAS,YAAY,QAAQ,cAAc;AACzC,MAAI;AACJ,QAAM;AAAA,IACJ,OAAO;AAAA,EACT,KAAK,iBAAiB,OAAO,OAAO,CAAC,KAAK,OAAOC,WAAU;AACzD,UAAM,WAAW,KAAK,IAAI,eAAe,KAAK;AAC9C,QAAI,QAAQ,QAAQ,WAAW,IAAI,YAAY,aAAa,IAAI,UAAU;AACxE,aAAO;AAAA,QACL;AAAA,QACA,OAAAA;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,IAAI,MAAM,OAAO,iBAAiB,CAAC;AACtC,SAAO;AACT;AACA,SAAS,YAAY,OAAO,SAAS;AAEnC,MAAI,QAAQ,YAAY,UAAa,MAAM,gBAAgB;AACzD,UAAM,aAAa;AACnB,aAAS,IAAI,GAAG,IAAI,WAAW,eAAe,QAAQ,KAAK,GAAG;AAC5D,YAAM,QAAQ,WAAW,eAAe,CAAC;AACzC,UAAI,MAAM,eAAe,QAAQ,SAAS;AACxC,eAAO;AAAA,UACL,GAAG,MAAM;AAAA,UACT,GAAG,MAAM;AAAA,QACX;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGA,SAAO;AAAA,IACL,GAAG,MAAM;AAAA,IACT,GAAG,MAAM;AAAA,EACX;AACF;AACO,SAAS,eAAe,OAAOC,MAAKC,MAAK;AAC9C,UAAQ,QAAQD,QAAO,OAAOC,OAAMD;AACtC;AACA,SAAS,eAAe,SAASA,MAAKC,MAAK;AACzC,UAAQA,OAAMD,QAAO,UAAUA;AACjC;AACA,SAAS,oBAAoB,KAAK;AAGhC,MAAI,KAAK,IAAI,GAAG,IAAI,GAAG;AACrB,UAAM,QAAQ,IAAI,cAAc,EAAE,MAAM,IAAI;AAC5C,UAAM,qBAAqB,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAChD,YAAQ,qBAAqB,mBAAmB,SAAS,KAAK,SAAS,MAAM,CAAC,GAAG,EAAE;AAAA,EACrF;AACA,QAAM,cAAc,IAAI,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC;AAC/C,SAAO,cAAc,YAAY,SAAS;AAC5C;AACA,SAAS,iBAAiB,OAAO,MAAMA,MAAK;AAC1C,QAAM,UAAU,KAAK,OAAO,QAAQA,QAAO,IAAI,IAAI,OAAOA;AAC1D,SAAO,OAAO,QAAQ,QAAQ,oBAAoB,IAAI,CAAC,CAAC;AAC1D;AACA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,OAAAD;AACF,GAAG;AACD,QAAM,SAAS,OAAO,MAAM;AAC5B,SAAOA,MAAK,IAAI;AAChB,SAAO,OAAO,KAAK,GAAG;AACxB;AACA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AACF,GAAG;AACD,MAAI,oBAAoB;AACxB,QAAM,MAAM,cAAc,UAAU,OAAO;AAC3C,MAAI,GAAG,qBAAqB,UAAU,YAAY,QAAQ,mBAAmB,SAAS,IAAI,aAAa,MAAM,OAAO,OAAO,SAAS,qBAAqB,IAAI,kBAAkB,OAAO,SAAS,mBAAmB,aAAa,YAAY,CAAC,MAAM,aAAa;AAC7P,QAAI;AACJ,KAAC,sBAAsB,UAAU,YAAY,QAAQ,oBAAoB,cAAc,8BAA8B,WAAW,IAAI,EAAE,MAAM;AAAA,EAC9I;AACA,MAAI,WAAW;AACb,cAAU,WAAW;AAAA,EACvB;AACF;AACA,SAAS,eAAe,UAAU,UAAU;AAC1C,MAAI,OAAO,aAAa,YAAY,OAAO,aAAa,UAAU;AAChE,WAAO,aAAa;AAAA,EACtB;AACA,MAAI,OAAO,aAAa,YAAY,OAAO,aAAa,UAAU;AAChE,WAAO,eAAe,UAAU,QAAQ;AAAA,EAC1C;AACA,SAAO;AACT;AACA,IAAM,YAAY;AAAA,EAChB,YAAY;AAAA,IACV,QAAQ,cAAY;AAAA,MAClB,MAAM,GAAG,OAAO;AAAA,IAClB;AAAA,IACA,MAAM,cAAY;AAAA,MAChB,OAAO,GAAG,OAAO;AAAA,IACnB;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,QAAQ,cAAY;AAAA,MAClB,OAAO,GAAG,OAAO;AAAA,IACnB;AAAA,IACA,MAAM,cAAY;AAAA,MAChB,OAAO,GAAG,OAAO;AAAA,IACnB;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,cAAY;AAAA,MAClB,QAAQ,GAAG,OAAO;AAAA,IACpB;AAAA,IACA,MAAM,cAAY;AAAA,MAChB,QAAQ,GAAG,OAAO;AAAA,IACpB;AAAA,EACF;AACF;AACO,IAAM,WAAW,OAAK;AAY7B,IAAI;AACJ,SAAS,6BAA6B;AACpC,MAAI,kCAAkC,QAAW;AAC/C,QAAI,OAAO,QAAQ,eAAe,OAAO,IAAI,aAAa,YAAY;AACpE,sCAAgC,IAAI,SAAS,gBAAgB,MAAM;AAAA,IACrE,OAAO;AACL,sCAAgC;AAAA,IAClC;AAAA,EACF;AACA,SAAO;AACT;AAWO,SAAS,UAAU,YAAY;AACpC,QAAM;AAAA,IACJ,mBAAmB;AAAA,IACnB;AAAA,IACA,WAAW;AAAA,IACX,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,OAAO,YAAY;AAAA,IACnB,KAAAE,OAAM;AAAA,IACN,KAAAD,OAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA,OAAO;AAAA,EACT,IAAI;AACJ,QAAM,UAAgB,eAAO;AAI7B,QAAM,CAAC,QAAQ,SAAS,IAAU,iBAAS,EAAE;AAC7C,QAAM,CAAC,MAAM,OAAO,IAAU,iBAAS,EAAE;AACzC,QAAM,CAAC,UAAU,WAAW,IAAU,iBAAS,KAAK;AACpD,QAAM,YAAkB,eAAO,CAAC;AAChC,QAAM,CAAC,cAAc,aAAa,IAAI,cAAc;AAAA,IAClD,YAAY;AAAA,IACZ,SAAS,gBAAgB,OAAO,eAAeA;AAAA,IAC/C,MAAM;AAAA,EACR,CAAC;AACD,QAAM,eAAe,aAAa,CAAC,OAAO,OAAO,eAAe;AAK9D,UAAM,cAAc,MAAM,eAAe;AAEzC,UAAM,cAAc,IAAI,YAAY,YAAY,YAAY,MAAM,WAAW;AAC7E,WAAO,eAAe,aAAa,UAAU;AAAA,MAC3C,UAAU;AAAA,MACV,OAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AACD,aAAS,aAAa,OAAO,UAAU;AAAA,EACzC;AACA,QAAM,QAAQ,MAAM,QAAQ,YAAY;AACxC,MAAI,SAAS,QAAQ,aAAa,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,YAAY;AACnE,WAAS,OAAO,IAAI,WAAS,SAAS,OAAOA,OAAM,cAAM,OAAOA,MAAKC,IAAG,CAAC;AACzE,QAAM,QAAQ,cAAc,QAAQ,SAAS,OAAO,CAAC,GAAG,MAAM,KAAK,OAAOA,OAAMD,QAAO,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAGD,YAAW;AAAA,IACpH,OAAOC,OAAM,OAAOD;AAAA,EACtB,EAAE,IAAI,aAAa,CAAC;AACpB,QAAM,cAAc,MAAM,IAAI,UAAQ,KAAK,KAAK;AAChD,QAAM;AAAA,IACJ;AAAA,IACA,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,KAAK;AAAA,EACP,IAAI,kBAAkB;AACtB,QAAM,CAAC,mBAAmB,oBAAoB,IAAU,iBAAS,EAAE;AACnE,QAAM,YAAkB,eAAO;AAC/B,QAAM,iBAAiB,WAAW,iBAAiB,SAAS;AAC5D,QAAM,YAAY,WAAW,KAAK,cAAc;AAChD,QAAM,+BAA+B,mBAAiB,WAAS;AAC7D,QAAI;AACJ,UAAMA,SAAQ,OAAO,MAAM,cAAc,aAAa,YAAY,CAAC;AACnE,uBAAmB,KAAK;AACxB,QAAI,kBAAkB,YAAY,MAAM;AACtC,2BAAqBA,MAAK;AAAA,IAC5B;AACA,YAAQA,MAAK;AACb,qBAAiB,SAAS,wBAAwB,cAAc,YAAY,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,EACrI;AACA,QAAM,8BAA8B,mBAAiB,WAAS;AAC5D,QAAI;AACJ,sBAAkB,KAAK;AACvB,QAAI,kBAAkB,YAAY,OAAO;AACvC,2BAAqB,EAAE;AAAA,IACzB;AACA,YAAQ,EAAE;AACV,qBAAiB,SAAS,wBAAwB,cAAc,WAAW,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,EACpI;AACA,QAAM,cAAc,CAAC,OAAO,eAAe;AACzC,UAAMA,SAAQ,OAAO,MAAM,cAAc,aAAa,YAAY,CAAC;AACnE,UAAM,QAAQ,OAAOA,MAAK;AAC1B,UAAM,aAAa,YAAY,QAAQ,KAAK;AAC5C,QAAI,WAAW;AACf,QAAI,SAAS,QAAQ,MAAM;AACzB,YAAM,gBAAgB,YAAY,YAAY,SAAS,CAAC;AACxD,UAAI,WAAW,eAAe;AAC5B,mBAAW;AAAA,MACb,WAAW,WAAW,YAAY,CAAC,GAAG;AACpC,mBAAW,YAAY,CAAC;AAAA,MAC1B,OAAO;AACL,mBAAW,WAAW,QAAQ,YAAY,aAAa,CAAC,IAAI,YAAY,aAAa,CAAC;AAAA,MACxF;AAAA,IACF;AACA,eAAW,cAAM,UAAUC,MAAKC,IAAG;AACnC,QAAI,OAAO;AAET,UAAI,aAAa;AACf,mBAAW,cAAM,UAAU,OAAOF,SAAQ,CAAC,KAAK,WAAW,OAAOA,SAAQ,CAAC,KAAK,QAAQ;AAAA,MAC1F;AACA,YAAM,gBAAgB;AACtB,iBAAW,cAAc;AAAA,QACvB;AAAA,QACA;AAAA,QACA,OAAAA;AAAA,MACF,CAAC;AACD,UAAI,cAAcA;AAGlB,UAAI,CAAC,aAAa;AAChB,sBAAc,SAAS,QAAQ,aAAa;AAAA,MAC9C;AACA,iBAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AACA,kBAAc,QAAQ;AACtB,yBAAqBA,MAAK;AAC1B,QAAI,gBAAgB,CAAC,eAAe,UAAU,YAAY,GAAG;AAC3D,mBAAa,OAAO,UAAUA,MAAK;AAAA,IACrC;AACA,QAAI,mBAAmB;AACrB,wBAAkB,OAAO,QAAQ;AAAA,IACnC;AAAA,EACF;AACA,QAAM,iCAAiC,mBAAiB,WAAS;AAC/D,QAAI;AAGJ,QAAI,SAAS,MAAM;AACjB,YAAMA,SAAQ,OAAO,MAAM,cAAc,aAAa,YAAY,CAAC;AACnE,YAAM,QAAQ,OAAOA,MAAK;AAC1B,UAAI,WAAW;AACf,WAAK,MAAM,QAAQ,eAAe,MAAM,QAAQ,gBAAgB,MAAM,YAAY,MAAM,QAAQ,YAAY;AAC1G,mBAAW,KAAK,IAAI,QAAQ,WAAWC,IAAG;AAAA,MAC5C,YAAY,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,cAAc,MAAM,YAAY,MAAM,QAAQ,UAAU;AAC9G,mBAAW,KAAK,IAAI,QAAQ,WAAWC,IAAG;AAAA,MAC5C;AACA,UAAI,aAAa,MAAM;AACrB,oBAAY,OAAO,QAAQ;AAC3B,cAAM,eAAe;AAAA,MACvB;AAAA,IACF;AACA,qBAAiB,SAAS,wBAAwB,cAAc,cAAc,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAAA,EACvI;AACA,4BAAkB,MAAM;AACtB,QAAI,YAAY,UAAU,QAAQ,SAAS,SAAS,aAAa,GAAG;AAClE,UAAI;AAKJ,OAAC,wBAAwB,SAAS,kBAAkB,QAAQ,sBAAsB,KAAK;AAAA,IACzF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,YAAY,WAAW,IAAI;AAC7B,cAAU,EAAE;AAAA,EACd;AACA,MAAI,YAAY,sBAAsB,IAAI;AACxC,yBAAqB,EAAE;AAAA,EACzB;AACA,QAAM,gCAAgC,mBAAiB,WAAS;AAC9D,QAAI;AACJ,KAAC,wBAAwB,cAAc,aAAa,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAE3G,gBAAY,OAAO,MAAM,OAAO,aAAa;AAAA,EAC/C;AACA,QAAM,gBAAsB,eAAO;AACnC,MAAI,OAAO;AACX,MAAI,SAAS,gBAAgB,cAAc;AACzC,YAAQ;AAAA,EACV;AACA,QAAM,oBAAoB,CAAC;AAAA,IACzB;AAAA,IACA,OAAO;AAAA,EACT,MAAM;AACJ,UAAM;AAAA,MACJ,SAAS;AAAA,IACX,IAAI;AACJ,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,OAAO,sBAAsB;AACjC,QAAI;AACJ,QAAI,KAAK,QAAQ,UAAU,MAAM,GAAG;AAClC,iBAAW,SAAS,OAAO,KAAK;AAAA,IAClC,OAAO;AACL,iBAAW,OAAO,IAAI,QAAQ;AAAA,IAChC;AACA,QAAI,KAAK,QAAQ,UAAU,MAAM,IAAI;AACnC,gBAAU,IAAI;AAAA,IAChB;AACA,QAAI;AACJ,eAAW,eAAe,SAASD,MAAKC,IAAG;AAC3C,QAAI,MAAM;AACR,iBAAW,iBAAiB,UAAU,MAAMD,IAAG;AAAA,IACjD,OAAO;AACL,YAAM,eAAe,YAAY,aAAa,QAAQ;AACtD,iBAAW,YAAY,YAAY;AAAA,IACrC;AACA,eAAW,cAAM,UAAUA,MAAKC,IAAG;AACnC,QAAI,cAAc;AAClB,QAAI,OAAO;AACT,UAAI,CAAC,MAAM;AACT,sBAAc,YAAY,QAAQ,QAAQ;AAAA,MAC5C,OAAO;AACL,sBAAc,cAAc;AAAA,MAC9B;AAGA,UAAI,aAAa;AACf,mBAAW,cAAM,UAAU,OAAO,cAAc,CAAC,KAAK,WAAW,OAAO,cAAc,CAAC,KAAK,QAAQ;AAAA,MACtG;AACA,YAAM,gBAAgB;AACtB,iBAAW,cAAc;AAAA,QACvB;AAAA,QACA;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAGD,UAAI,EAAE,eAAe,OAAO;AAC1B,sBAAc,SAAS,QAAQ,aAAa;AAC5C,sBAAc,UAAU;AAAA,MAC1B;AAAA,IACF;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,kBAAkB,yBAAiB,iBAAe;AACtD,UAAM,SAAS,YAAY,aAAa,OAAO;AAC/C,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AACA,cAAU,WAAW;AAIrB,QAAI,YAAY,SAAS,eAAe,YAAY,YAAY,GAAG;AAEjE,qBAAe,WAAW;AAC1B;AAAA,IACF;AACA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI,kBAAkB;AAAA,MACpB;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AACD,eAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,kBAAc,QAAQ;AACtB,QAAI,CAAC,YAAY,UAAU,UAAU,kCAAkC;AACrE,kBAAY,IAAI;AAAA,IAClB;AACA,QAAI,gBAAgB,CAAC,eAAe,UAAU,YAAY,GAAG;AAC3D,mBAAa,aAAa,UAAU,WAAW;AAAA,IACjD;AAAA,EACF,CAAC;AACD,QAAM,iBAAiB,yBAAiB,iBAAe;AACrD,UAAM,SAAS,YAAY,aAAa,OAAO;AAC/C,gBAAY,KAAK;AACjB,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AACA,UAAM;AAAA,MACJ;AAAA,IACF,IAAI,kBAAkB;AAAA,MACpB;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AACD,cAAU,EAAE;AACZ,QAAI,YAAY,SAAS,YAAY;AACnC,cAAQ,EAAE;AAAA,IACZ;AACA,QAAI,mBAAmB;AACrB,wBAAkB,aAAa,QAAQ;AAAA,IACzC;AACA,YAAQ,UAAU;AAGlB,kBAAc;AAAA,EAChB,CAAC;AACD,QAAM,mBAAmB,yBAAiB,iBAAe;AACvD,QAAI,UAAU;AACZ;AAAA,IACF;AAEA,QAAI,CAAC,2BAA2B,GAAG;AACjC,kBAAY,eAAe;AAAA,IAC7B;AACA,UAAM,QAAQ,YAAY,eAAe,CAAC;AAC1C,QAAI,SAAS,MAAM;AAEjB,cAAQ,UAAU,MAAM;AAAA,IAC1B;AACA,UAAM,SAAS,YAAY,aAAa,OAAO;AAC/C,QAAI,WAAW,OAAO;AACpB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,kBAAkB;AAAA,QACpB;AAAA,MACF,CAAC;AACD,iBAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,oBAAc,QAAQ;AACtB,UAAI,gBAAgB,CAAC,eAAe,UAAU,YAAY,GAAG;AAC3D,qBAAa,aAAa,UAAU,WAAW;AAAA,MACjD;AAAA,IACF;AACA,cAAU,UAAU;AACpB,UAAM,MAAM,cAAc,UAAU,OAAO;AAC3C,QAAI,iBAAiB,aAAa,iBAAiB;AAAA,MACjD,SAAS;AAAA,IACX,CAAC;AACD,QAAI,iBAAiB,YAAY,gBAAgB;AAAA,MAC/C,SAAS;AAAA,IACX,CAAC;AAAA,EACH,CAAC;AACD,QAAM,gBAAsB,oBAAY,MAAM;AAC5C,UAAM,MAAM,cAAc,UAAU,OAAO;AAC3C,QAAI,oBAAoB,aAAa,eAAe;AACpD,QAAI,oBAAoB,WAAW,cAAc;AACjD,QAAI,oBAAoB,aAAa,eAAe;AACpD,QAAI,oBAAoB,YAAY,cAAc;AAAA,EACpD,GAAG,CAAC,gBAAgB,eAAe,CAAC;AACpC,EAAM,kBAAU,MAAM;AACpB,UAAM;AAAA,MACJ,SAAS;AAAA,IACX,IAAI;AACJ,WAAO,iBAAiB,cAAc,kBAAkB;AAAA,MACtD,SAAS,2BAA2B;AAAA,IACtC,CAAC;AACD,WAAO,MAAM;AACX,aAAO,oBAAoB,cAAc,gBAAgB;AACzD,oBAAc;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,eAAe,gBAAgB,CAAC;AACpC,EAAM,kBAAU,MAAM;AACpB,QAAI,UAAU;AACZ,oBAAc;AAAA,IAChB;AAAA,EACF,GAAG,CAAC,UAAU,aAAa,CAAC;AAC5B,QAAM,wBAAwB,mBAAiB,WAAS;AACtD,QAAI;AACJ,KAAC,wBAAwB,cAAc,gBAAgB,QAAQ,sBAAsB,KAAK,eAAe,KAAK;AAC9G,QAAI,UAAU;AACZ;AAAA,IACF;AACA,QAAI,MAAM,kBAAkB;AAC1B;AAAA,IACF;AAGA,QAAI,MAAM,WAAW,GAAG;AACtB;AAAA,IACF;AAGA,UAAM,eAAe;AACrB,UAAM,SAAS,YAAY,OAAO,OAAO;AACzC,QAAI,WAAW,OAAO;AACpB,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACF,IAAI,kBAAkB;AAAA,QACpB;AAAA,MACF,CAAC;AACD,iBAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,oBAAc,QAAQ;AACtB,UAAI,gBAAgB,CAAC,eAAe,UAAU,YAAY,GAAG;AAC3D,qBAAa,OAAO,UAAU,WAAW;AAAA,MAC3C;AAAA,IACF;AACA,cAAU,UAAU;AACpB,UAAM,MAAM,cAAc,UAAU,OAAO;AAC3C,QAAI,iBAAiB,aAAa,iBAAiB;AAAA,MACjD,SAAS;AAAA,IACX,CAAC;AACD,QAAI,iBAAiB,WAAW,cAAc;AAAA,EAChD;AACA,QAAM,cAAc,eAAe,QAAQ,OAAO,CAAC,IAAID,MAAKA,MAAKC,IAAG;AACpE,QAAM,YAAY,eAAe,OAAO,OAAO,SAAS,CAAC,GAAGD,MAAKC,IAAG,IAAI;AACxE,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,mBAAmB,qBAAqB,aAAa;AAC3D,UAAM,mBAAmB;AAAA,MACvB,aAAa,sBAAsB,oBAAoB,CAAC,CAAC;AAAA,IAC3D;AACA,UAAM,sBAAsB,SAAS,CAAC,GAAG,kBAAkB,gBAAgB;AAC3E,WAAO,SAAS,CAAC,GAAG,eAAe;AAAA,MACjC,KAAK;AAAA,IACP,GAAG,mBAAmB;AAAA,EACxB;AACA,QAAM,wBAAwB,mBAAiB,WAAS;AACtD,QAAI;AACJ,KAAC,yBAAyB,cAAc,gBAAgB,QAAQ,uBAAuB,KAAK,eAAe,KAAK;AAChH,UAAMF,SAAQ,OAAO,MAAM,cAAc,aAAa,YAAY,CAAC;AACnE,YAAQA,MAAK;AAAA,EACf;AACA,QAAM,yBAAyB,mBAAiB,WAAS;AACvD,QAAI;AACJ,KAAC,yBAAyB,cAAc,iBAAiB,QAAQ,uBAAuB,KAAK,eAAe,KAAK;AACjH,YAAQ,EAAE;AAAA,EACZ;AACA,QAAM,gBAAgB,CAAC,gBAAgB,CAAC,MAAM;AAC5C,UAAM,mBAAmB,qBAAqB,aAAa;AAC3D,UAAM,mBAAmB;AAAA,MACvB,aAAa,sBAAsB,oBAAoB,CAAC,CAAC;AAAA,MACzD,cAAc,uBAAuB,oBAAoB,CAAC,CAAC;AAAA,IAC7D;AACA,WAAO,SAAS,CAAC,GAAG,eAAe,kBAAkB,gBAAgB;AAAA,EACvE;AACA,QAAM,gBAAgB,CAAAA,WAAS;AAC7B,WAAO;AAAA;AAAA,MAEL,eAAe,WAAW,MAAM,WAAWA,SAAQ,SAAS;AAAA,IAC9D;AAAA,EACF;AACA,QAAM,sBAAsB,CAAC,gBAAgB,CAAC,MAAM;AAClD,QAAI;AACJ,UAAM,mBAAmB,qBAAqB,aAAa;AAC3D,UAAM,mBAAmB;AAAA,MACvB,UAAU,8BAA8B,oBAAoB,CAAC,CAAC;AAAA,MAC9D,SAAS,6BAA6B,oBAAoB,CAAC,CAAC;AAAA,MAC5D,QAAQ,4BAA4B,oBAAoB,CAAC,CAAC;AAAA,MAC1D,WAAW,+BAA+B,oBAAoB,CAAC,CAAC;AAAA,IAClE;AACA,UAAM,sBAAsB,SAAS,CAAC,GAAG,kBAAkB,gBAAgB;AAC3E,WAAO,SAAS;AAAA,MACd;AAAA,MACA,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,MACpB,iBAAiB,MAAME,IAAG;AAAA,MAC1B,iBAAiB,MAAMD,IAAG;AAAA,MAC1B;AAAA,MACA,MAAM;AAAA,MACN,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,MAAM,WAAW,SAAS,QAAQ,WAAW,QAAQ,SAAS,mBAAmB,WAAW,SAAS,OAAO,mBAAmB;AAAA,MAC/H;AAAA,IACF,GAAG,eAAe,qBAAqB;AAAA,MACrC,OAAO,SAAS,CAAC,GAAG,wBAAgB;AAAA,QAClC,WAAW,QAAQ,QAAQ;AAAA;AAAA,QAE3B,OAAO;AAAA,QACP,QAAQ;AAAA,MACV,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AF3nBA,IAAAE,uBAA4B;AAC5B,IAAAA,uBAA8B;AAf9B,IAAMC,cAAY,CAAC,cAAc,kBAAkB,mBAAmB,aAAa,eAAe,YAAY,gBAAgB,oBAAoB,SAAS,OAAO,OAAO,QAAQ,YAAY,qBAAqB,eAAe,aAAa,SAAS,QAAQ,YAAY,SAAS,SAAS,oBAAoB,SAAS,gBAAgB,aAAa,OAAO;AAgB9V,SAASC,UAAS,GAAG;AACnB,SAAO;AACT;AACA,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,YAAY,YAAY,UAAU,UAAU,gBAAgB,cAAc,YAAY,UAAU,cAAc,iBAAiB,UAAU,SAAS,YAAY;AAAA,IACrM,MAAM,CAAC,MAAM;AAAA,IACb,OAAO,CAAC,OAAO;AAAA,IACf,MAAM,CAAC,MAAM;AAAA,IACb,YAAY,CAAC,YAAY;AAAA,IACzB,WAAW,CAAC,WAAW;AAAA,IACvB,iBAAiB,CAAC,iBAAiB;AAAA,IACnC,YAAY,CAAC,YAAY;AAAA,IACzB,OAAO,CAAC,SAAS,YAAY,UAAU;AAAA,IACvC,QAAQ,CAAC,QAAQ;AAAA,IACjB,UAAU,CAAC,UAAU;AAAA,IACrB,cAAc,CAAC,cAAc;AAAA,EAC/B;AACA,SAAO,eAAe,OAAO,sBAAsB,qBAAqB,CAAC;AAC3E;AAYA,IAAM,SAA4B,mBAAW,SAASC,QAAO,OAAO,cAAc;AAChF,MAAI,aAAa,aAAa,cAAc,cAAc,aAAa;AACvE,QAAM;AAAA,IACF,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB;AAAA,IACA,cAAc;AAAA,IACd,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,OAAO,YAAY;AAAA,IACnB,KAAAC,OAAM;AAAA,IACN,KAAAC,OAAM;AAAA,IACN,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,QAAQJ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,mBAAmBA;AAAA,IACnB,QAAQ;AAAA,IACR;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOD,WAAS;AAIxD,QAAM,oBAAoB,SAAS,CAAC,GAAG,OAAO;AAAA,IAC5C,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAAI;AAAA,IACA,KAAAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM;AAAA,IACJ,WAAAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,UAAU,SAAS,CAAC,GAAG,mBAAmB;AAAA,IAC5C,SAAS;AAAA,EACX,CAAC,CAAC;AACF,QAAM,aAAa,SAAS,CAAC,GAAG,mBAAmB;AAAA,IACjD,QAAQ,MAAM,SAAS,KAAK,MAAM,KAAK,UAAQ,KAAK,KAAK;AAAA,IACzD;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,EACpB,CAAC;AACD,QAAM,UAAUJ,oBAAkB,UAAU;AAC5C,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB;AAAA,IACA,WAAW,CAAC,QAAQ,MAAM,SAAS;AAAA,EACrC,CAAC;AACD,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,SAAS,eAAe,MAAM,UAAU,OAAO,eAAe;AACpE,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,OAAO,SAAS,CAAC,GAAGI,WAAU,IAAI,EAAE,OAAO,WAAW,GAAGA,WAAU,IAAI,EAAE,KAAK,SAAS,CAAC;AAAA,IAC1F;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,SAAS,eAAe,MAAM,UAAU,OAAO,eAAe;AACpE,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,wBAAwB;AAAA,EAC1B,CAAC;AACD,QAAM,aAAa,MAAM;AACzB,QAAM,kBAAkB,aAAa;AAAA,IACnC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,aAAa,mBAAmB,MAAM,cAAc,OAAO,mBAAmB;AACpF,QAAM,iBAAiB,aAAa;AAAA,IAClC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,QAAMC,SAAQ,MAAM,SAAS;AAC7B,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAaA;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,aAAoB,qBAAAC,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACtD,UAAU,KAAc,qBAAAC,KAAK,MAAM,SAAS,CAAC,GAAG,SAAS,CAAC,OAAgB,qBAAAA,KAAK,OAAO,SAAS,CAAC,GAAG,UAAU,CAAC,GAAG,MAAM,OAAO,UAAQ,KAAK,SAASJ,QAAO,KAAK,SAASD,IAAG,EAAE,IAAI,CAAC,MAAMM,WAAU;AACjM,YAAM,UAAU,eAAe,KAAK,OAAOL,MAAKD,IAAG;AACnD,YAAM,QAAQE,WAAU,IAAI,EAAE,OAAO,OAAO;AAC5C,UAAI;AACJ,UAAI,UAAU,OAAO;AACnB,qBAAa,OAAO,QAAQ,KAAK,KAAK,MAAM;AAAA,MAC9C,OAAO;AACL,qBAAa,UAAU,aAAa,QAAQ,KAAK,SAAS,OAAO,CAAC,KAAK,KAAK,SAAS,OAAO,OAAO,SAAS,CAAC,IAAI,KAAK,SAAS,OAAO,CAAC,MAAM,UAAU,eAAe,QAAQ,KAAK,SAAS,OAAO,CAAC,KAAK,KAAK,SAAS,OAAO,OAAO,SAAS,CAAC,IAAI,KAAK,SAAS,OAAO,CAAC;AAAA,MAC3Q;AACA,iBAAoB,qBAAAE,MAAY,kBAAU;AAAA,QACxC,UAAU,KAAc,qBAAAC,KAAK,MAAM,SAAS;AAAA,UAC1C,cAAcC;AAAA,QAChB,GAAG,WAAW,CAAC,gBAAgB,IAAI,KAAK;AAAA,UACtC;AAAA,QACF,GAAG;AAAA,UACD,OAAO,SAAS,CAAC,GAAG,OAAO,UAAU,KAAK;AAAA,UAC1C,WAAW,aAAK,UAAU,WAAW,cAAc,QAAQ,UAAU;AAAA,QACvE,CAAC,CAAC,GAAG,KAAK,SAAS,WAAoB,qBAAAD,KAAK,WAAW,SAAS;AAAA,UAC9D,eAAe;AAAA,UACf,cAAcC;AAAA,QAChB,GAAG,gBAAgB,CAAC,gBAAgB,SAAS,KAAK;AAAA,UAChD,iBAAiB;AAAA,QACnB,GAAG;AAAA,UACD,OAAO,SAAS,CAAC,GAAG,OAAO,eAAe,KAAK;AAAA,UAC/C,WAAW,aAAK,QAAQ,WAAW,eAAe,WAAW,cAAc,QAAQ,eAAe;AAAA,UAClG,UAAU,KAAK;AAAA,QACjB,CAAC,CAAC,IAAI,IAAI;AAAA,MACZ,GAAGA,MAAK;AAAA,IACV,CAAC,GAAG,OAAO,IAAI,CAAC,OAAOA,WAAU;AAC/B,YAAM,UAAU,eAAe,OAAOL,MAAKD,IAAG;AAC9C,YAAM,QAAQE,WAAU,IAAI,EAAE,OAAO,OAAO;AAC5C,YAAM,oBAAoB,sBAAsB,UAAU,OAAO,YAAY;AAAA,QAC3E,OAAAI;AAAA,QACA,SAAS,sBAAsBA;AAAA,QAC/B,QAAQ,WAAWA;AAAA,MACrB,CAAC;AACD,iBAAoB,qBAAAF,MAAM,OAAO,SAAS;AAAA,QACxC,cAAcE;AAAA,MAChB,GAAG,YAAY,mBAAmB;AAAA,QAChC,WAAW,aAAK,QAAQ,OAAO,WAAW,WAAW,qBAAqB,OAAO,SAAS,kBAAkB,WAAW,WAAWA,UAAS,QAAQ,QAAQ,sBAAsBA,UAAS,QAAQ,YAAY;AAAA,QAC9M,OAAO,SAAS,CAAC,GAAG,OAAO,cAAcA,MAAK,GAAG,WAAW,OAAO,qBAAqB,OAAO,SAAS,kBAAkB,KAAK;AAAA,QAC/H,UAAU,KAAc,qBAAAD,KAAKF,QAAO,SAAS;AAAA,UAC3C,cAAcG;AAAA,UACd,cAAc,eAAe,aAAaA,MAAK,IAAI;AAAA,UACnD,iBAAiB,MAAM,KAAK;AAAA,UAC5B,mBAAmB;AAAA,UACnB,kBAAkB,mBAAmB,iBAAiB,MAAM,KAAK,GAAGA,MAAK,IAAI;AAAA,UAC7E,OAAO,OAAOA,MAAK;AAAA,QACrB,GAAG,UAAU,CAAC,GAAG,iBAA0B,qBAAAD,KAAK,YAAY,SAAS,CAAC,GAAG,CAAC,gBAAgB,UAAU,KAAK;AAAA,UACvG;AAAA,UACA,OAAAC;AAAA,UACA;AAAA,QACF,GAAG,iBAAiB;AAAA,UAClB,UAAU,OAAO,qBAAqB,aAAa,iBAAiB,MAAM,KAAK,GAAGA,MAAK,IAAI;AAAA,QAC7F,CAAC,CAAC,IAAI,IAAI;AAAA,MACZ,CAAC,GAAGA,MAAK;AAAA,IACX,CAAC,CAAC;AAAA,EACJ,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,OAAO,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhF,cAAc,eAAe,oBAAAC,QAAU,QAAQ,WAAS;AACtD,UAAM,QAAQ,MAAM,QAAQ,MAAM,SAAS,MAAM,YAAY;AAC7D,QAAI,SAAS,MAAM,YAAY,KAAK,MAAM;AACxC,aAAO,IAAI,MAAM,iGAAiG;AAAA,IACpH;AACA,WAAO;AAAA,EACT,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,mBAAmB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI7B,kBAAkB,eAAe,oBAAAA,QAAU,QAAQ,WAAS;AAC1D,UAAM,QAAQ,MAAM,QAAQ,MAAM,SAAS,MAAM,YAAY;AAC7D,QAAI,SAAS,MAAM,gBAAgB,KAAK,MAAM;AAC5C,aAAO,IAAI,MAAM,yGAAyG;AAAA,IAC5H;AACA,WAAO;AAAA,EACT,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,cAAc,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,GAAG,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzF,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQxB,kBAAkB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK5B,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM;AAAA,IAC5D,OAAO,oBAAAA,QAAU;AAAA,IACjB,OAAO,oBAAAA,QAAU,OAAO;AAAA,EAC1B,CAAC,CAAC,GAAG,oBAAAA,QAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB,KAAK,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf,KAAK,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIf,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpB,mBAAmB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK7B,aAAa,oBAAAA,QAAU,MAAM,CAAC,cAAc,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC5D,WAAW,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IACjE,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC5D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC5D,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,YAAY,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,KAAK,oBAAAA,QAAU,IAAI,CAAC;AAAA,EACjE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,IAChB,WAAW,oBAAAA,QAAU;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,IAChB,MAAM,oBAAAA,QAAU;AAAA,IAChB,OAAO,oBAAAA,QAAU;AAAA,IACjB,OAAO,oBAAAA,QAAU;AAAA,IACjB,YAAY,oBAAAA,QAAU;AAAA,EACxB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASpB,OAAO,oBAAAA,QAAU,MAAM,CAAC,YAAY,UAAU,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpD,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,GAAG,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAclF,kBAAkB,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAC1E,IAAI;;;AGxbJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,mBAAiB;AAChB,SAAS,wBAAwB,MAAM;AAC5C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,kBAAkBE,wBAAuBF,kBAAgB,CAAC,MAAM,CAAC;;;ACJ9E;AACA,IAAAG,UAAuB;AACvB;AAaO,SAAS,YAAY,aAAa,CAAC,GAAG;AAC3C,QAAM;AAAA,IACJ,mBAAmB;AAAA,IACnB,4BAA4B;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,gBAAgB,WAAW;AACjC,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAKA,aAASC,eAAc,aAAa;AAClC,UAAI,CAAC,YAAY,kBAAkB;AAEjC,YAAI,YAAY,QAAQ,YAAY,YAAY,QAAQ,OAAO;AAE7D,qBAAW,QAAQ,QAAQ,aAAa,eAAe;AAAA,QACzD;AAAA,MACF;AAAA,IACF;AACA,aAAS,iBAAiB,WAAWA,cAAa;AAClD,WAAO,MAAM;AACX,eAAS,oBAAoB,WAAWA,cAAa;AAAA,IACvD;AAAA,EACF,GAAG,CAAC,MAAM,OAAO,CAAC;AAClB,QAAM,cAAc,yBAAiB,CAAC,OAAO,WAAW;AACtD,eAAW,QAAQ,QAAQ,OAAO,MAAM;AAAA,EAC1C,CAAC;AACD,QAAM,mBAAmB,yBAAiB,2BAAyB;AACjE,QAAI,CAAC,WAAW,yBAAyB,MAAM;AAC7C;AAAA,IACF;AACA,kBAAc,MAAM,uBAAuB,MAAM;AAC/C,kBAAY,MAAM,SAAS;AAAA,IAC7B,CAAC;AAAA,EACH,CAAC;AACD,EAAM,kBAAU,MAAM;AACpB,QAAI,MAAM;AACR,uBAAiB,gBAAgB;AAAA,IACnC;AACA,WAAO,cAAc;AAAA,EACvB,GAAG,CAAC,MAAM,kBAAkB,kBAAkB,aAAa,CAAC;AAC5D,QAAM,kBAAkB,WAAS;AAC/B,eAAW,QAAQ,QAAQ,OAAO,WAAW;AAAA,EAC/C;AAIA,QAAM,cAAc,cAAc;AAIlC,QAAM,eAAqB,oBAAY,MAAM;AAC3C,QAAI,oBAAoB,MAAM;AAC5B,uBAAiB,sBAAsB,OAAO,qBAAqB,mBAAmB,GAAG;AAAA,IAC3F;AAAA,EACF,GAAG,CAAC,kBAAkB,oBAAoB,gBAAgB,CAAC;AAC3D,QAAM,mBAAmB,mBAAiB,WAAS;AACjD,UAAM,iBAAiB,cAAc;AACrC,sBAAkB,QAAQ,eAAe,KAAK;AAC9C,iBAAa;AAAA,EACf;AACA,QAAM,oBAAoB,mBAAiB,WAAS;AAClD,UAAM,kBAAkB,cAAc;AACtC,uBAAmB,QAAQ,gBAAgB,KAAK;AAChD,gBAAY;AAAA,EACd;AACA,QAAM,mBAAmB,mBAAiB,WAAS;AACjD,UAAM,uBAAuB,cAAc;AAC3C,4BAAwB,QAAQ,qBAAqB,KAAK;AAC1D,gBAAY;AAAA,EACd;AACA,QAAM,mBAAmB,mBAAiB,WAAS;AACjD,UAAM,uBAAuB,cAAc;AAC3C,4BAAwB,QAAQ,qBAAqB,KAAK;AAC1D,iBAAa;AAAA,EACf;AACA,EAAM,kBAAU,MAAM;AAEpB,QAAI,CAAC,6BAA6B,MAAM;AACtC,aAAO,iBAAiB,SAAS,YAAY;AAC7C,aAAO,iBAAiB,QAAQ,WAAW;AAC3C,aAAO,MAAM;AACX,eAAO,oBAAoB,SAAS,YAAY;AAChD,eAAO,oBAAoB,QAAQ,WAAW;AAAA,MAChD;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,2BAA2B,MAAM,cAAc,WAAW,CAAC;AAC/D,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,wBAAwB,SAAS,CAAC,GAAG,qBAAqB,UAAU,GAAG,qBAAqB,aAAa,CAAC;AAChH,WAAO,SAAS;AAAA;AAAA;AAAA,MAGd,MAAM;AAAA,IACR,GAAG,eAAe,uBAAuB;AAAA,MACvC,QAAQ,iBAAiB,qBAAqB;AAAA,MAC9C,SAAS,kBAAkB,qBAAqB;AAAA,MAChD,cAAc,iBAAiB,qBAAqB;AAAA,MACpD,cAAc,iBAAiB,qBAAqB;AAAA,IACtD,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA,aAAa;AAAA,EACf;AACF;;;AFpHA,IAAAC,uBAA4B;AAT5B,IAAMC,cAAY,CAAC,oBAAoB,YAAY,6BAA6B,UAAU,UAAU,WAAW,WAAW,gBAAgB,gBAAgB,QAAQ,sBAAsB,aAAa,OAAO;AAU5M,IAAMC,sBAAoB,MAAM;AAC9B,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,MAAM;AAAA,EACf;AACA,SAAO,eAAe,OAAO,sBAAsB,uBAAuB,CAAC;AAC7E;AAaA,IAAM,WAA8B,mBAAW,SAASC,UAAS,OAAO,cAAc;AACpF,QAAM;AAAA,IACF,mBAAmB;AAAA,IACnB;AAAA,IACA,4BAA4B;AAAA,IAC5B,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM,UAAUC,oBAAkB;AAClC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,YAAY,SAAS,CAAC,GAAG,OAAO;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC,CAAC;AACF,QAAM,aAAa;AACnB,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,wBAAwB;AAAA,IACxB,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,yBAAyB,aAAa;AAAA,IAC1C,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,EACF,CAAC;AAGD,SAAO,uBAAuB;AAG9B,MAAI,CAAC,QAAQ,QAAQ;AACnB,WAAO;AAAA,EACT;AACA,aAAoB,qBAAAE,KAAK,mBAAmB,SAAS,CAAC,GAAG,wBAAwB;AAAA,IAC/E,cAAuB,qBAAAA,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,MACxD;AAAA,IACF,CAAC,CAAC;AAAA,EACJ,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,SAAS,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYlF,kBAAkB,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAI5B,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,2BAA2B,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrC,QAAQ,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWlB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOhB,oBAAoB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9B,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,mBAAmB,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM;AAAA,MACtE,UAAU,oBAAAA,QAAU,QAAQ;AAAA,MAC5B,kBAAkB,oBAAAA,QAAU;AAAA,MAC5B,YAAY,oBAAAA,QAAU,MAAM,CAAC,WAAW,eAAe,aAAa,iBAAiB,eAAe,KAAK,CAAC;AAAA,MAC1G,aAAa,oBAAAA,QAAU;AAAA,MACvB,YAAY,oBAAAA,QAAU,MAAM,CAAC,cAAc,gBAAgB,KAAK,CAAC;AAAA,IACnE,CAAC,CAAC,CAAC;AAAA,IACH,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AGhKJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB;AACA,IAAAC,UAAuB;AACvB;AAYO,SAAS,UAAU,OAAO;AAC/B,QAAM;AAAA,IACJ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,CAAC,SAAS,eAAe,IAAI,cAAc;AAAA,IAC/C,YAAY;AAAA,IACZ,SAAS,QAAQ,cAAc;AAAA,IAC/B,MAAM;AAAA,IACN,OAAO;AAAA,EACT,CAAC;AACD,QAAM,0BAA0B,gBAAc,WAAS;AACrD,QAAI;AAEJ,QAAI,MAAM,YAAY,kBAAkB;AACtC;AAAA,IACF;AACA,oBAAgB,MAAM,OAAO,OAAO;AACpC,gBAAY,QAAQ,SAAS,KAAK;AAClC,KAAC,uBAAuB,WAAW,aAAa,QAAQ,qBAAqB,KAAK,YAAY,KAAK;AAAA,EACrG;AACA,QAAM;AAAA,IACJ;AAAA,IACA,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,KAAK;AAAA,EACP,IAAI,kBAAkB;AACtB,QAAM,CAAC,cAAc,eAAe,IAAU,iBAAS,KAAK;AAC5D,MAAI,YAAY,cAAc;AAC5B,oBAAgB,KAAK;AAAA,EACvB;AACA,EAAM,kBAAU,MAAM;AACpB,sBAAkB,UAAU;AAAA,EAC9B,GAAG,CAAC,cAAc,iBAAiB,CAAC;AACpC,QAAM,WAAiB,eAAO,IAAI;AAClC,QAAM,oBAAoB,gBAAc,WAAS;AAC/C,QAAI;AAEJ,QAAI,CAAC,SAAS,SAAS;AACrB,eAAS,UAAU,MAAM;AAAA,IAC3B;AACA,uBAAmB,KAAK;AACxB,QAAI,kBAAkB,YAAY,MAAM;AACtC,sBAAgB,IAAI;AACpB,wBAAkB,QAAQ,eAAe,KAAK;AAAA,IAChD;AACA,eAAW,QAAQ,QAAQ,KAAK;AAChC,KAAC,sBAAsB,WAAW,YAAY,QAAQ,oBAAoB,KAAK,YAAY,KAAK;AAAA,EAClG;AACA,QAAM,mBAAmB,gBAAc,WAAS;AAC9C,QAAI;AACJ,sBAAkB,KAAK;AACvB,QAAI,kBAAkB,YAAY,OAAO;AACvC,sBAAgB,KAAK;AAAA,IACvB;AACA,cAAU,QAAQ,OAAO,KAAK;AAC9B,KAAC,qBAAqB,WAAW,WAAW,QAAQ,mBAAmB,KAAK,YAAY,KAAK;AAAA,EAC/F;AACA,QAAM,iBAAiB,WAAW,iBAAiB,QAAQ;AAC3D,QAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,SAAS;AAAA,IAClD,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,gBAAgB;AAAA,EAClB,GAAG,YAAY;AAAA,IACb,UAAU,wBAAwB,UAAU;AAAA,IAC5C,SAAS,kBAAkB,UAAU;AAAA,IACrC,QAAQ,iBAAiB,UAAU;AAAA,EACrC,CAAC;AACD,SAAO;AAAA,IACL;AAAA,IACA,UAAU,QAAQ,QAAQ;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,UAAU,QAAQ,QAAQ;AAAA,EAC5B;AACF;;;ACvGA,IAAMC,mBAAiB;AAChB,SAAS,sBAAsB,MAAM;AAC1C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,gBAAgBE,wBAAuBF,kBAAgB,CAAC,QAAQ,SAAS,SAAS,SAAS,WAAW,YAAY,gBAAgB,UAAU,CAAC;;;AFM1J,IAAAG,uBAA4B;AAC5B,IAAAA,uBAA8B;AAT9B,IAAMC,cAAY,CAAC,WAAW,kBAAkB,YAAY,UAAU,YAAY,WAAW,kBAAkB,YAAY,YAAY,aAAa,OAAO;AAU3J,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,WAAW,WAAW,YAAY,YAAY,gBAAgB,gBAAgB,YAAY,UAAU;AAAA,IACnH,OAAO,CAAC,OAAO;AAAA,IACf,OAAO,CAAC,OAAO;AAAA,IACf,OAAO,CAAC,OAAO;AAAA,EACjB;AACA,SAAO,eAAe,OAAO,sBAAsB,qBAAqB,CAAC;AAC3E;AAaA,IAAM,SAA4B,mBAAW,SAASC,QAAO,OAAO,cAAc;AAChF,MAAI,aAAa,cAAc,cAAc;AAC7C,QAAM;AAAA,IACF,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,UAAU,KAAK;AACnB,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,oBAAkB,UAAU;AAC5C,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,SAAS,eAAe,MAAM,UAAU,OAAO,eAAe;AACpE,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAME,UAAS,eAAe,MAAM,UAAU,OAAO,eAAe;AACpE,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAaA;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,QAAQ,MAAM,UAAU,OAAO,MAAM,QAAQ,eAAe,MAAM,UAAU,OAAO,eAAe;AACxG,QAAM,aAAa,aAAa;AAAA,IAC9B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAC,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACtD,UAAU,KAAc,qBAAAC,KAAK,OAAO,SAAS,CAAC,GAAG,UAAU,CAAC,OAAgB,qBAAAA,KAAK,OAAO,SAAS,CAAC,GAAG,UAAU,CAAC,OAAgB,qBAAAA,KAAKF,QAAO,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC;AAAA,EACvK,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,OAAO,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhF,SAAS,oBAAAG,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,gBAAgB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI1B,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,QAAQ,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,gBAAgB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI1B,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC5D,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC7D,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC/D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAgD,MAAM;AAAA,IAC3D,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,IAChB,OAAO,oBAAAA,QAAU;AAAA,IACjB,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,aAAa,oBAAAA,QAAU,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAAA,EAC7E,CAAC;AACH,IAAI;;;AGvKJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;;;ACLA;AACA;AAGA,IAAAC,UAAuB;AAEvB,IAAAC,uBAA4B;AAC5B,IAAAA,uBAA8B;AAL9B,IAAMC,cAAY,CAAC,SAAS,oBAAoB,gBAAgB,QAAQ,eAAe,mBAAmB,kBAAkB,aAAa,cAAc,aAAa,OAAO;AAC3K,IAAIC;AAAJ,IAAWC;AAAX,IAAmB;AAAnB,IAA2B;AAK3B,SAAS,sBAAsB;AAC7B,SAAOD,WAAUA,aAAqB,qBAAAE,KAAK,QAAQ;AAAA,IACjD,UAAU;AAAA,EACZ,CAAC;AACH;AACA,SAAS,uBAAuB;AAC9B,SAAOD,YAAWA,cAAsB,qBAAAC,KAAK,QAAQ;AAAA,IACnD,UAAU;AAAA,EACZ,CAAC;AACH;AACA,SAAS,sBAAsB;AAC7B,SAAO,WAAW,aAAsB,qBAAAA,KAAK,QAAQ;AAAA,IACnD,UAAU;AAAA,EACZ,CAAC;AACH;AACA,SAAS,sBAAsB;AAC7B,SAAO,WAAW,aAAsB,qBAAAA,KAAK,QAAQ;AAAA,IACnD,UAAU;AAAA,EACZ,CAAC;AACH;AACA,SAAS,oBAAoB,MAAM;AACjC,SAAO,SAAS,IAAI;AACtB;AAKA,IAAM,yBAA4C,mBAAW,SAASC,wBAAuB,OAAO,cAAc;AAChH,MAAI,aAAa,oBAAoB,mBAAmB,mBAAmB,mBAAmB,qBAAqB,sBAAsB,qBAAqB;AAC9J,QAAM;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB;AAAA,IAIA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOJ,WAAS;AACxD,QAAM,aAAa;AACnB,QAAM,6BAA6B,WAAS;AAC1C,iBAAa,OAAO,CAAC;AAAA,EACvB;AACA,QAAM,wBAAwB,WAAS;AACrC,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AACA,QAAM,wBAAwB,WAAS;AACrC,iBAAa,OAAO,OAAO,CAAC;AAAA,EAC9B;AACA,QAAM,4BAA4B,WAAS;AACzC,iBAAa,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,WAAW,IAAI,CAAC,CAAC;AAAA,EACrE;AACA,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,eAAe,qBAAqB,MAAM,gBAAgB,OAAO,qBAAqB;AAC5F,QAAM,mBAAmB,aAAa;AAAA,IACpC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,UAAU,SAAS;AAAA,MACnB,cAAc,iBAAiB,SAAS,IAAI;AAAA,MAC5C,OAAO,iBAAiB,SAAS,IAAI;AAAA,IACvC;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,cAAc,oBAAoB,MAAM,eAAe,OAAO,oBAAoB;AACxF,QAAM,kBAAkB,aAAa;AAAA,IACnC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,UAAU,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI;AAAA,MACnD,cAAc,iBAAiB,QAAQ,IAAI;AAAA,MAC3C,OAAO,iBAAiB,QAAQ,IAAI;AAAA,IACtC;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,cAAc,oBAAoB,MAAM,eAAe,OAAO,oBAAoB;AACxF,QAAM,kBAAkB,aAAa;AAAA,IACnC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,UAAU,UAAU,KAAK,QAAQ,KAAK,KAAK,QAAQ,WAAW,IAAI,IAAI;AAAA,MACtE,cAAc,iBAAiB,QAAQ,IAAI;AAAA,MAC3C,OAAO,iBAAiB,QAAQ,IAAI;AAAA,IACtC;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,cAAc,oBAAoB,MAAM,eAAe,OAAO,oBAAoB;AACxF,QAAM,kBAAkB,aAAa;AAAA,IACnC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,UAAU,SAAS;AAAA,MACnB,cAAc,iBAAiB,YAAY,IAAI;AAAA,MAC/C,OAAO,iBAAiB,YAAY,IAAI;AAAA,IAC1C;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,gBAAgB,sBAAsB,MAAM,iBAAiB,OAAO,sBAAsB;AAChG,QAAM,iBAAiB,uBAAuB,MAAM,kBAAkB,OAAO,uBAAuB;AACpG,QAAM,gBAAgB,sBAAsB,MAAM,iBAAiB,OAAO,sBAAsB;AAChG,QAAM,gBAAgB,sBAAsB,MAAM,iBAAiB,OAAO,sBAAsB;AAChG,aAAoB,qBAAAK,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACtD,UAAU,CAAC,uBAAgC,qBAAAF,KAAK,aAAa,SAAS,CAAC,GAAG,kBAAkB;AAAA,MAC1F,UAAU,cAAc,YAAqB,qBAAAA,KAAK,cAAc,CAAC,CAAC,QAAiB,qBAAAA,KAAK,eAAe,CAAC,CAAC;AAAA,IAC3G,CAAC,CAAC,OAAgB,qBAAAA,KAAK,YAAY,SAAS,CAAC,GAAG,iBAAiB;AAAA,MAC/D,UAAU,cAAc,YAAqB,qBAAAA,KAAK,cAAc,CAAC,CAAC,QAAiB,qBAAAA,KAAK,cAAc,CAAC,CAAC;AAAA,IAC1G,CAAC,CAAC,OAAgB,qBAAAA,KAAK,YAAY,SAAS,CAAC,GAAG,iBAAiB;AAAA,MAC/D,UAAU,cAAc,YAAqB,qBAAAA,KAAK,cAAc,CAAC,CAAC,QAAiB,qBAAAA,KAAK,cAAc,CAAC,CAAC;AAAA,IAC1G,CAAC,CAAC,GAAG,sBAA+B,qBAAAA,KAAK,YAAY,SAAS,CAAC,GAAG,iBAAiB;AAAA,MACjF,UAAU,cAAc,YAAqB,qBAAAA,KAAK,eAAe,CAAC,CAAC,QAAiB,qBAAAA,KAAK,cAAc,CAAC,CAAC;AAAA,IAC3G,CAAC,CAAC,CAAC;AAAA,EACL,CAAC,CAAC;AACJ,CAAC;;;AC3ID,IAAMG,mBAAiB;AAChB,SAAS,+BAA+B,MAAM;AACnD,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,yBAAyBE,wBAAuBF,kBAAgB,CAAC,QAAQ,WAAW,UAAU,eAAe,cAAc,UAAU,cAAc,SAAS,YAAY,iBAAiB,SAAS,CAAC;;;AFQhN,IAAAG,uBAA4B;AAC5B,IAAAC,gBAAgD;AAChD,IAAAD,uBAA8B;AAZ9B,IAAME,cAAY,CAAC,WAAW,SAAS,oBAAoB,sBAAsB,WAAW,oBAAoB,gBAAgB,uBAAuB,QAAQ,eAAe,sBAAsB,YAAY,aAAa,OAAO;AAapO,SAAS,0BAA0B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAAG;AACD,SAAO,GAAG,IAAI,IAAI,EAAE,OAAO,UAAU,KAAK,QAAQ,aAAa,EAAE,EAAE;AACrE;AACA,SAASC,qBAAoB,MAAM;AACjC,SAAO,SAAS,IAAI;AACtB;AACA,IAAMC,sBAAoB,MAAM;AAC9B,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,MAAM;AAAA,IACb,SAAS,CAAC,SAAS;AAAA,IACnB,QAAQ,CAAC,QAAQ;AAAA,IACjB,aAAa,CAAC,aAAa;AAAA,IAC3B,QAAQ,CAAC,QAAQ;AAAA,IACjB,OAAO,CAAC,OAAO;AAAA,IACf,YAAY,CAAC,YAAY;AAAA,IACzB,UAAU,CAAC,UAAU;AAAA,IACrB,eAAe,CAAC,eAAe;AAAA,IAC/B,SAAS,CAAC,SAAS;AAAA,EACrB;AACA,SAAO,eAAe,OAAO,sBAAsB,8BAA8B,CAAC;AACpF;AAaA,IAAM,kBAAqC,mBAAW,SAASC,iBAAgB,OAAO,cAAc;AAClG,MAAI,aAAa,eAAe,gBAAgB,iBAAiB,oBAAoB,sBAAsB,gBAAgB;AAC3H,QAAM;AAAA,IACF,SAAS;AAAA,IACT;AAAA,IACA,mBAAmBF;AAAA,IACnB,qBAAqB;AAAA,IACrB,SAAS;AAAA,IACT,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,qBAAqB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,IACrC,UAAU;AAAA,IACV,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOD,WAAS;AACxD,QAAM,aAAa;AACnB,QAAM,UAAUE,oBAAkB;AAClC,MAAI;AACJ,QAAM,QAAQ,cAAc,MAAM,SAAS,OAAO,cAAc;AAChE,MAAI,SAAS,QAAQ,CAAC,gBAAgB,IAAI,GAAG;AAC3C,cAAU,eAAe;AAAA,EAC3B;AACA,QAAM,0BAA0B,MAAM;AACpC,QAAI,UAAU,IAAI;AAChB,cAAQ,OAAO,KAAK;AAAA,IACtB;AACA,WAAO,gBAAgB,KAAK,QAAQ,KAAK,IAAI,QAAQ,OAAO,KAAK,WAAW;AAAA,EAC9E;AACA,QAAM,WAAW,MAAM,YAAY;AACnC,QAAM,UAAU,MAAM,WAAW;AACjC,QAAM,YAAY,aAAa;AAAA,IAC7B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf;AAAA,MACA,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAME,WAAU,gBAAgB,MAAM,WAAW,OAAO,gBAAgB;AACxE,QAAM,cAAc,aAAa;AAAA,IAC/B,aAAaA;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,OAAO;AAAA,MACP,IAAI;AAAA,MACJ,UAAU,WAAS,uBAAuB,oBAAoB,KAAK;AAAA,MACnE,cAAc,YAAY,SAAS;AAAA,MACnC,mBAAmB,CAAC,SAAS,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,KAAK;AAAA,IACtE;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,WAAW,iBAAiB,MAAM,YAAY,OAAO,iBAAiB;AAC5E,QAAM,eAAe,aAAa;AAAA,IAChC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAMC,aAAY,kBAAkB,MAAM,aAAa,OAAO,kBAAkB;AAChF,QAAM,gBAAgB,aAAa;AAAA,IACjC,aAAaA;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,OAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,eAAe,qBAAqB,MAAM,gBAAgB,OAAO,qBAAqB;AAC5F,QAAM,mBAAmB,aAAa;AAAA,IACpC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,iBAAiB;AAAA,MACf,IAAI;AAAA,IACN;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,iBAAiB,uBAAuB,MAAM,kBAAkB,OAAO,uBAAuB;AACpG,QAAM,qBAAqB,aAAa;AAAA,IACtC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,WAAW,iBAAiB,MAAM,YAAY,OAAO,iBAAiB;AAC5E,QAAM,eAAe,aAAa;AAAA,IAChC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,UAAU,gBAAgB,MAAM,WAAW,OAAO,gBAAgB;AACxE,QAAM,cAAc,aAAa;AAAA,IAC/B,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAC,KAAK,MAAM,SAAS,CAAC,GAAG,WAAW;AAAA,IACrD,cAAuB,qBAAAC,MAAM,SAAS,SAAS,CAAC,GAAG,cAAc;AAAA,MAC/D,UAAU,KAAc,qBAAAD,KAAK,QAAQ,SAAS,CAAC,GAAG,WAAW,CAAC,GAAG,mBAAmB,SAAS,SAAkB,qBAAAA,KAAK,aAAa,SAAS,CAAC,GAAG,kBAAkB;AAAA,QAC9J,UAAU;AAAA,MACZ,CAAC,CAAC,GAAG,mBAAmB,SAAS,SAAkB,qBAAAA,KAAKF,SAAQ,SAAS,CAAC,GAAG,aAAa;AAAA,QACxF,UAAU,mBAAmB,IAAI,2BAAkC,cAAAI,eAAeH,WAAU,SAAS,CAAC,GAAG,eAAe;AAAA,UACtH,KAAK,OAAO,sBAAsB,YAAY,kBAAkB,QAAQ,kBAAkB,QAAQ;AAAA,UAClG,OAAO,OAAO,sBAAsB,YAAY,kBAAkB,QAAQ,kBAAkB,QAAQ;AAAA,QACtG,CAAC,GAAG,OAAO,sBAAsB,YAAY,kBAAkB,QAAQ,kBAAkB,QAAQ,iBAAiB,CAAC;AAAA,MACrH,CAAC,CAAC,OAAgB,qBAAAC,KAAK,eAAe,SAAS,CAAC,GAAG,oBAAoB;AAAA,QACrE,UAAU,mBAAmB;AAAA,UAC3B,MAAM,UAAU,IAAI,IAAI,OAAO,cAAc;AAAA,UAC7C,IAAI,wBAAwB;AAAA,UAC5B,OAAO,UAAU,KAAK,KAAK;AAAA,UAC3B;AAAA,QACF,CAAC;AAAA,MACH,CAAC,CAAC,OAAgB,qBAAAA,KAAK,SAAS,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;AAAA,IAC7D,CAAC,CAAC;AAAA,EACJ,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,gBAAgB,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzF,SAAS,oBAAAG,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnB,OAAO,oBAAAA,QAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYxB,kBAAkB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU5B,oBAAoB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI9B,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOnB,kBAAkB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5B,cAAc,oBAAAA,QAAU,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,qBAAqB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI/B,MAAM,eAAe,wBAAgB,YAAY,WAAS;AACxD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AACJ,QAAI,UAAU,IAAI;AAChB,aAAO;AAAA,IACT;AACA,UAAM,cAAc,KAAK,IAAI,GAAG,KAAK,KAAK,QAAQ,WAAW,IAAI,CAAC;AAClE,QAAI,OAAO,KAAK,OAAO,aAAa;AAClC,aAAO,IAAI,MAAM,iEAAsE,WAAW,iBAAiB,IAAI,IAAI;AAAA,IAC7H;AACA,WAAO;AAAA,EACT,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,aAAa,wBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO7B,oBAAoB,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM;AAAA,IAC3F,OAAO,oBAAAA,QAAU,OAAO;AAAA,IACxB,OAAO,oBAAAA,QAAU,OAAO;AAAA,EAC1B,CAAC,CAAC,CAAC,EAAE,UAAU;AAAA;AAAA;AAAA;AAAA,EAIf,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,WAAW,oBAAAA,QAAgD,MAAM;AAAA,IAC/D,SAAS,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC/D,eAAe,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IACrE,UAAU,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAChE,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC5D,QAAQ,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC9D,aAAa,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IACnE,QAAQ,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,IAC9D,SAAS,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EACjE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,SAAS,oBAAAA,QAAU;AAAA,IACnB,eAAe,oBAAAA,QAAU;AAAA,IACzB,UAAU,oBAAAA,QAAU;AAAA,IACpB,MAAM,oBAAAA,QAAU;AAAA,IAChB,QAAQ,oBAAAA,QAAU;AAAA,IAClB,aAAa,oBAAAA,QAAU;AAAA,IACvB,QAAQ,oBAAAA,QAAU;AAAA,IAClB,SAAS,oBAAAA,QAAU;AAAA,EACrB,CAAC;AACH,IAAI;;;AG1TJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,mBAAiB;AAChB,SAAS,wBAAwB,MAAM;AAC5C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,kBAAkBE,wBAAuBF,kBAAgB,CAAC,QAAQ,QAAQ,CAAC;;;ACJxF;AACA,IAAAG,UAAuB;AACvB;;;ACFA;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,mBAAiB;AAChB,SAAS,oBAAoB,MAAM;AACxC,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,cAAcE,wBAAuBF,kBAAgB,CAAC,QAAQ,cAAc,UAAU,CAAC;;;ACJpG;AACA,IAAAG,UAAuB;AACvB;AAYA,SAAS,QAAQ,YAAY;AAC3B,QAAM;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,wBAAwB;AAAA,EAC1B,IAAI;AACJ,QAAM,CAAC,OAAO,QAAQ,IAAI,cAAc;AAAA,IACtC,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,EACT,CAAC;AACD,QAAM,aAAmB,oBAAY,CAAC,OAAO,aAAa;AACxD,aAAS,QAAQ;AACjB,gBAAY,QAAQ,SAAS,OAAO,QAAQ;AAAA,EAC9C,GAAG,CAAC,UAAU,QAAQ,CAAC;AACvB,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,cAAc;AAAA,EAChB,IAAI,kBAAkB;AACtB,QAAM,cAAoB,eAAO,MAAM,MAAS;AAChD,QAAM,gBAAsB,oBAAY,cAAY;AAClD,QAAI;AACJ,YAAQ,iBAAiB,UAAU,IAAI,QAAQ,MAAM,OAAO,SAAS,eAAe;AAAA,EACtF,GAAG,CAAC,SAAS,CAAC;AACd,QAAM,WAAiB,oBAAY,gBAAc;AAC/C,WAAO,YAAY,QAAQ,UAAU;AAAA,EACvC,GAAG,CAAC,CAAC;AACL,QAAM,sBAA4B,oBAAY,oBAAkB;AAC9D,gBAAY,UAAU;AAAA,EACxB,GAAG,CAAC,CAAC;AACL,SAAO;AAAA,IACL,cAAc,SAAS;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,GAAG,6BAA6B;AAAA,EAClC;AACF;;;AC5DA,IAAAC,UAAuB;;;ACFvB,IAAAC,UAAuB;AAIvB,IAAM,cAAiC,sBAAc,IAAI;AACzD,IAAI,MAAuC;AACzC,cAAY,cAAc;AAC5B;AACO,SAAS,iBAAiB;AAC/B,QAAM,UAAgB,mBAAW,WAAW;AAC5C,MAAI,WAAW,MAAM;AACnB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AACA,SAAO;AACT;;;ADTA,IAAAC,uBAA4B;AAMrB,SAAS,aAAa,OAAO;AAClC,QAAM;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,gCAAsC,gBAAQ,OAAO;AAAA,IACzD;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,cAAc,cAAc,iBAAiB,CAAC;AACnD,QAAM,mBAAyB,gBAAQ,OAAO;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,WAAW,UAAU,eAAe,YAAY,aAAa,qBAAqB,uBAAuB,KAAK,CAAC;AACpH,aAAoB,qBAAAC,KAAK,yBAAyB,UAAU;AAAA,IAC1D,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,YAAY,UAAU;AAAA,MAChD,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;;AHtCA,IAAAC,uBAA4B;AAT5B,IAAMC,cAAY,CAAC,YAAY,SAAS,gBAAgB,eAAe,aAAa,YAAY,yBAAyB,aAAa,OAAO;AAU7I,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,WAAW;AAAA,EAC5B;AACA,SAAO,eAAe,OAAO,sBAAsB,mBAAmB,CAAC;AACzE;AAYA,IAAM,OAA0B,mBAAW,SAASC,MAAK,OAAO,cAAc;AAC5E,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,EACF,IAAI,QAAQ,UAAU;AACtB,QAAM,UAAUC,oBAAkB,UAAU;AAC5C,QAAM,YAAY,cAAc,MAAM,SAAS,OAAO,cAAc;AACpE,QAAM,gBAAgB,aAAa;AAAA,IACjC,aAAa;AAAA,IACb,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,KAAK,UAAU,SAAS,CAAC,GAAG,eAAe;AAAA,IAC7D,cAAuB,qBAAAA,KAAK,cAAc;AAAA,MACxC,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,KAAK,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9E,UAAU,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,cAAc,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtE,WAAW,oBAAAA,QAAU,MAAM,CAAC,OAAO,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA,EAIzC,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,aAAa,oBAAAA,QAAU,MAAM,CAAC,cAAc,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvD,uBAAuB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjC,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKD,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,CAAC;AACjE,IAAI;;;ADvHJ,SAAS,uBAAuB,qBAAqB;AACnD,SAAO,oBAAoB;AAC7B;AAYA,SAAS,YAAY,YAAY;AAC/B,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,IAAI;AAAA,IACJ,SAAS;AAAA,EACX,IAAI;AACJ,QAAM,UAAU,eAAe;AAC/B,MAAI,YAAY,MAAM;AACpB,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACA,QAAM;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,EACF,IAAI;AACJ,QAAM,KAAK,MAAM,OAAO;AACxB,QAAM,MAAY,eAAO,IAAI;AAC7B,QAAM,YAAY,WAAW,KAAK,WAAW;AAC7C,QAAM,WAAiB,gBAAQ,OAAO;AAAA,IACpC;AAAA,IACA;AAAA,EACF,IAAI,CAAC,EAAE,CAAC;AACR,QAAM;AAAA,IACJ,IAAI;AAAA,EACN,IAAI,gBAAgB,cAAc,OAAO,aAAa,wBAAwB,QAAQ;AACtF,QAAM,SAAS,UAAU;AACzB,QAAM,qBAAqB,UAAU,SAAY,SAAS,KAAK,IAAI;AACnE,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,WAAO,SAAS;AAAA,MACd,mBAAmB,sBAAsB,OAAO,qBAAqB;AAAA,MACrE;AAAA,MACA,IAAI,MAAM,OAAO,KAAK;AAAA,IACxB,GAAG,eAAe;AAAA,MAChB,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EACX;AACF;;;AFjDA,IAAAC,uBAA4B;AAR5B,IAAMC,cAAY,CAAC,YAAY,SAAS,aAAa,OAAO;AAS5D,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,UAAU,QAAQ;AAAA,EACnC;AACA,SAAO,eAAe,OAAO,sBAAsB,uBAAuB,CAAC;AAC7E;AAWA,IAAM,WAA8B,mBAAW,SAASC,UAAS,OAAO,cAAc;AACpF,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,YAAY,KAAK;AACrB,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,oBAAkB,UAAU;AAC5C,QAAM,gBAAgB,cAAc,MAAM,SAAS,OAAO,cAAc;AACxE,QAAM,oBAAoB,aAAa;AAAA,IACrC,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,KAAK,cAAc,SAAS,CAAC,GAAG,mBAAmB;AAAA,IACrE,UAAU,CAAC,UAAU;AAAA,EACvB,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,SAAS,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlF,UAAU,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,CAAC;AACjE,IAAI;;;AQjGJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;;;ACJtB,IAAMC,mBAAiB;AAChB,SAAS,wBAAwB,MAAM;AAC5C,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,kBAAkBE,wBAAuBF,kBAAgB,CAAC,QAAQ,cAAc,UAAU,CAAC;;;ACJxG;AACA,IAAAG,UAAuB;;;ACHhB,IAAM,sBAAsB;AAAA,EACjC,aAAa;AACf;;;ACFA;AAGO,SAAS,gBAAgB,OAAO,QAAQ;AAC7C,MAAI,OAAO,SAAS,oBAAoB,aAAa;AACnD,WAAO,SAAS,CAAC,GAAG,OAAO;AAAA,MACzB,kBAAkB,OAAO;AAAA,IAC3B,CAAC;AAAA,EACH;AACA,QAAM,WAAW,YAAY,OAAO,MAAM;AAC1C,QAAM;AAAA,IACJ,SAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF,IAAI;AACJ,MAAI,OAAO,SAAS,gBAAgB,aAAa;AAC/C,QAAI,SAAS,eAAe,SAAS,GAAG;AACtC,aAAO,SAAS,CAAC,GAAG,UAAU;AAAA,QAC5B,kBAAkB,SAAS,eAAe,CAAC;AAAA,MAC7C,CAAC;AAAA,IACH;AACA,kBAAc,MAAM,SAAS,OAAO,OAAO;AAAA,EAC7C;AACA,MAAI,yBAAyB,SAAS,oBAAoB,MAAM;AAC9D,WAAO,SAAS,CAAC,GAAG,UAAU;AAAA,MAC5B,gBAAgB,CAAC,SAAS,gBAAgB;AAAA,IAC5C,CAAC;AAAA,EACH;AACA,SAAO;AACT;;;AFTA,SAAS,YAAY,YAAY;AAC/B,MAAI;AACJ,QAAM;AAAA,IACJ,SAAS;AAAA,EACX,IAAI;AACJ,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,eAAe;AACnB,QAAM;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,EAChB,IAAI,kBAAkB;AACtB,QAAM,cAAoB,oBAAY,cAAY;AAChD,QAAI;AACJ,YAAQ,gBAAgB,SAAS,IAAI,QAAQ,MAAM,OAAO,SAAS,cAAc;AAAA,EACnF,GAAG,CAAC,QAAQ,CAAC;AACb,sBAAoB,WAAW;AAC/B,QAAM,cAAoB,gBAAQ,MAAM,MAAM,KAAK,SAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/E,QAAM,gBAAsB,oBAAY,cAAY;AAClD,QAAI,uBAAuB;AAC3B,QAAI,YAAY,MAAM;AACpB,aAAO;AAAA,IACT;AACA,YAAQ,yBAAyB,iBAAiB,SAAS,IAAI,QAAQ,MAAM,OAAO,SAAS,eAAe,IAAI,YAAY,OAAO,wBAAwB;AAAA,EAC7J,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,QAAQ,cAAc;AAC5B,MAAI;AACJ,MAAI,gBAAgB,YAAY;AAC9B,sBAAkB;AAAA,EACpB,OAAO;AACL,sBAAkB,QAAQ,mBAAmB;AAAA,EAC/C;AACA,QAAM,eAAqB,oBAAY,CAAC,OAAO,aAAa;AAC1D,QAAI;AACJ,eAAW,QAAQ,aAAa,SAAS,CAAC,MAAM,OAAO,aAAa,IAAI;AAAA,EAC1E,GAAG,CAAC,UAAU,CAAC;AACf,QAAM,kBAAwB,gBAAQ,MAAM;AAC1C,QAAI,UAAU,QAAW;AACvB,aAAO,CAAC;AAAA,IACV;AACA,WAAO,SAAS,OAAO;AAAA,MACrB,gBAAgB,CAAC,KAAK;AAAA,IACxB,IAAI;AAAA,MACF,gBAAgB,CAAC;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AACV,QAAM,iBAAuB,oBAAY,UAAQ;AAC/C,QAAI,uBAAuB;AAC3B,YAAQ,yBAAyB,iBAAiB,SAAS,IAAI,IAAI,MAAM,OAAO,SAAS,eAAe,aAAa,OAAO,wBAAwB;AAAA,EACtJ,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM;AAAA,IACJ,cAAc;AAAA,IACd;AAAA,IACA,cAAc;AAAA,IACd,OAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,EACX,IAAI,QAAQ;AAAA,IACV;AAAA,IACA,wBAAwB,CAAC;AAAA,IACzB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,IACb,sBAA4B,gBAAQ,OAAO;AAAA,MACzC,uBAAuB,yBAAyB;AAAA,IAClD,IAAI,CAAC,qBAAqB,CAAC;AAAA,IAC3B,eAAe;AAAA,IACf,cAAc;AAAA,EAChB,CAAC;AACD,EAAM,kBAAU,MAAM;AACpB,QAAI,UAAU,QAAW;AACvB;AAAA,IACF;AAGA,QAAI,SAAS,MAAM;AACjB,eAAS;AAAA,QACP,MAAM,oBAAoB;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,UAAU,KAAK,CAAC;AACpB,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,WAAO,SAAS,CAAC,GAAG,eAAe,oBAAoB,aAAa,GAAG;AAAA,MACrE,oBAAoB,gBAAgB,aAAa,aAAa;AAAA,MAC9D,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,QAAM,eAAqB,gBAAQ,MAAM,SAAS,CAAC,GAAG,+BAA+B,gBAAgB,GAAG,CAAC,+BAA+B,gBAAgB,CAAC;AACzJ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,gBAAgB,mBAAmB,eAAe,CAAC,MAAM,OAAO,mBAAmB;AAAA,EACrF;AACF;;;AGhIA,IAAAC,UAAuB;AAGvB,IAAAC,uBAA4B;AAMrB,SAAS,iBAAiB,OAAO;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,mBAAyB,gBAAQ,OAAO;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,UAAU,cAAc,YAAY,CAAC;AAC1C,QAAM,gCAAsC,gBAAQ,OAAO;AAAA,IACzD;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,CAAC,cAAc,cAAc,iBAAiB,CAAC;AACnD,aAAoB,qBAAAC,KAAK,yBAAyB,UAAU;AAAA,IAC1D,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,YAAY,UAAU;AAAA,MAChD,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;;AL3BA,IAAAC,uBAA4B;AAT5B,IAAMC,cAAY,CAAC,YAAY,aAAa,OAAO;AAUnD,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,WAAW;AAAA,EAC5B;AACA,SAAO,eAAe,OAAO,sBAAsB,uBAAuB,CAAC;AAC7E;AAYA,IAAM,WAA8B,mBAAW,SAASC,UAAS,OAAO,cAAc;AACpF,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,EACX,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAAA,IACd,SAAS;AAAA,EACX,CAAC;AACD,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,oBAAkB,UAAU;AAC5C,QAAM,gBAAgB,cAAc,MAAM,SAAS,OAAO,cAAc;AACxE,QAAM,oBAAoB,aAAa;AAAA,IACrC,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,KAAK,kBAAkB;AAAA,IACzC,OAAO;AAAA,IACP,cAAuB,qBAAAA,KAAK,cAAc,SAAS,CAAC,GAAG,mBAAmB;AAAA,MACxE;AAAA,IACF,CAAC,CAAC;AAAA,EACJ,CAAC;AACH,CAAC;AACD,OAAwC,SAAS,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlF,UAAU,oBAAAC,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AACH,IAAI;;;AMjGJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;;;ACLA,IAAMC,mBAAiB;AAChB,SAAS,mBAAmB,MAAM;AACvC,SAAOC,sBAAqBD,kBAAgB,IAAI;AAClD;AACO,IAAM,aAAaE,wBAAuBF,kBAAgB,CAAC,QAAQ,YAAY,UAAU,CAAC;;;ACJjG;AACA,IAAAG,UAAuB;AACvB;AAOA,SAAS,kBAAkB,gBAAgB;AACzC,SAAO,eAAe;AACxB;AAYA,SAAS,OAAO,YAAY;AAC1B,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,IAAI;AAAA,EACN,IAAI;AACJ,QAAM,SAAe,eAAO,IAAI;AAChC,QAAM,KAAK,MAAM,OAAO;AACxB,QAAM;AAAA,IACJ,OAAO;AAAA,IACP;AAAA,IACA;AAAA,EACF,IAAI,eAAe;AACnB,QAAM,cAAoB,gBAAQ,OAAO;AAAA,IACvC;AAAA,IACA,KAAK;AAAA,IACL;AAAA,EACF,IAAI,CAAC,UAAU,QAAQ,EAAE,CAAC;AAC1B,QAAM;AAAA,IACJ,IAAI;AAAA,IACJ,OAAAC;AAAA,IACA,gBAAgB;AAAA,EAClB,IAAI,gBAAgB,cAAc,OAAO,aAAa,mBAAmB,WAAW;AACpF,QAAM;AAAA,IACJ,cAAc;AAAA,IACd;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAAA,IACd,MAAM;AAAA,EACR,CAAC;AACD,QAAM;AAAA,IACJ,cAAc;AAAA,IACd,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,UAAU;AAAA,IACZ;AAAA,IACA,uBAAuB,CAAC;AAAA,IACxB,MAAM;AAAA,EACR,CAAC;AACD,QAAM,YAAY,WAAW,QAAQ,aAAa,gBAAgB;AAClE,QAAM,aAAa,UAAU,SAAY,cAAc,KAAK,IAAI;AAChE,QAAM,eAAe,CAAC,gBAAgB,CAAC,MAAM;AAC3C,UAAM,wBAAwB,qBAAqB,aAAa;AAChE,UAAM,uBAAuB,sBAAsB,aAAa,cAAc;AAC9E,WAAO,SAAS,CAAC,GAAG,eAAe,qBAAqB,qBAAqB,GAAG;AAAA,MAC9E,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB;AAAA,MACA,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAAA;AAAA,IACA,SAAS;AAAA;AAAA;AAAA,IAGT,UAAU,YAAY,UAAU;AAAA,IAChC;AAAA,IACA;AAAA,EACF;AACF;;;AFhFA,IAAAC,uBAA4B;AAT5B,IAAMC,cAAY,CAAC,UAAU,YAAY,YAAY,YAAY,WAAW,WAAW,aAAa,SAAS,OAAO;AAUpH,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,YAAY,YAAY,YAAY,UAAU;AAAA,EAC/D;AACA,SAAO,eAAe,OAAO,sBAAsB,kBAAkB,CAAC;AACxE;AAWA,IAAM,MAAyB,mBAAW,SAASC,KAAI,OAAO,cAAc;AAC1E,MAAI;AACJ,QAAM;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT;AAAA,EACF,IAAI,OACJ,QAAQ,8BAA8B,OAAOF,WAAS;AACxD,QAAM,SAAe,eAAO;AAC5B,QAAM,YAAY,WAAW,QAAQ,YAAY;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,OAAO,SAAS,CAAC,GAAG,OAAO;AAAA,IAC7B,SAAS;AAAA,IACT;AAAA,EACF,CAAC,CAAC;AACF,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUC,oBAAkB,UAAU;AAC5C,QAAM,WAAW,cAAc,MAAM,SAAS,OAAO,cAAc;AACnE,QAAM,eAAe,aAAa;AAAA,IAChC,aAAa;AAAA,IACb,cAAc;AAAA,IACd,mBAAmB,UAAU;AAAA,IAC7B,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,MACf,KAAK;AAAA,IACP;AAAA,IACA;AAAA,IACA,WAAW,QAAQ;AAAA,EACrB,CAAC;AACD,aAAoB,qBAAAE,KAAK,SAAS,SAAS,CAAC,GAAG,cAAc;AAAA,IAC3D;AAAA,EACF,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,IAAI,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ7E,QAAQ,oBAAAC,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM;AAAA,IAC3D,SAAS,oBAAAA,QAAU,MAAM;AAAA,MACvB,cAAc,oBAAAA,QAAU,KAAK;AAAA,IAC/B,CAAC;AAAA,EACH,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAIH,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA,EAC9D,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,OAAO,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,CAAC;AACjE,IAAI;;;AGzHJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;AAEA,IAAAC,uBAA4B;AAL5B,IAAMC,cAAY,CAAC,YAAY,aAAa,sBAAsB,kBAAkB,qBAAqB,eAAe;AAgBxH,SAAS,aAAa,OAAO;AAC3B,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,OACJ,QAAQ,8BAA8B,OAAOA,WAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B;AAC9B,QAAM,YAAkB,eAAO,IAAI;AACnC,EAAM,kBAAU,MAAM;AACpB,QAAI,kBAAkB,UAAU,SAAS;AACvC,gBAAU,UAAU;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,cAAc,CAAC;AACnB,QAAM,qBAA2B,oBAAY,WAAS;AACpD,QAAI,MAAM,kBAAkB,mBAAmB;AAC7C,eAAS;AACT,gBAAU,UAAU;AAAA,IACtB,WAAW,MAAM,kBAAkB,oBAAoB;AACrD,gBAAU,UAAU;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,UAAU,mBAAmB,kBAAkB,CAAC;AACpD,aAAoB,qBAAAC,KAAK,OAAO,SAAS;AAAA,IACvC,gBAAgB;AAAA,IAChB,WAAW,aAAK,WAAW,iBAAiB,iBAAiB,aAAa;AAAA,EAC5E,GAAG,OAAO;AAAA,IACR;AAAA,EACF,CAAC,CAAC;AACJ;AACA,OAAwC,aAAa,YAAY;AAAA,EAC/D,UAAU,oBAAAC,QAAU;AAAA,EACpB,WAAW,oBAAAA,QAAU;AAAA,EACrB,oBAAoB,oBAAAA,QAAU;AAAA,EAC9B,gBAAgB,oBAAAA,QAAU;AAAA,EAC1B,mBAAmB,oBAAAA,QAAU;AAAA,EAC7B,eAAe,oBAAAA,QAAU;AAC3B,IAAI;;;AC5DJ;AACA;AAEA,IAAAC,UAAuB;AACvB,IAAAC,sBAAsB;AACtB;AAEA,IAAAC,uBAA4B;AAL5B,IAAMC,cAAY,CAAC,YAAY,aAAa,kCAAkC,kBAAkB,eAAe;AAkB/G,IAAM,gBAAmC,mBAAW,SAASC,eAAc,OAAO,cAAc;AAC9F,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,OACJ,QAAQ,8BAA8B,OAAOD,WAAS;AACxD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B;AAC9B,QAAM,CAAC,YAAY,aAAa,IAAU,iBAAS,KAAK;AAMxD,EAAM,kBAAU,MAAM;AACpB,QAAI,gBAAgB;AAClB,4BAAsB,MAAM;AAC1B,sBAAc,IAAI;AAAA,MACpB,CAAC;AAAA,IACH,OAAO;AACL,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,cAAc,CAAC;AACnB,QAAM,sBAA4B,oBAAY,WAAS;AACrD,QAAI,CAAC,mBAAmB,kCAAkC,QAAQ,MAAM,iBAAiB,iCAAiC;AACxH,eAAS;AAAA,IACX;AAAA,EACF,GAAG,CAAC,UAAU,gBAAgB,8BAA8B,CAAC;AAC7D,aAAoB,qBAAAE,KAAK,OAAO,SAAS;AAAA,IACvC,iBAAiB;AAAA,IACjB,WAAW,aAAK,WAAW,aAAa,iBAAiB,aAAa;AAAA,EACxE,GAAG,OAAO;AAAA,IACR,KAAK;AAAA,IACL;AAAA,EACF,CAAC,CAAC;AACJ,CAAC;AACD,OAAwC,cAAc,YAAY;AAAA,EAChE,UAAU,oBAAAC,QAAU;AAAA,EACpB,WAAW,oBAAAA,QAAU;AAAA,EACrB,gBAAgB,oBAAAA,QAAU;AAAA,EAC1B,eAAe,oBAAAA,QAAU;AAAA,EACzB,iCAAiC,oBAAAA,QAAU;AAAA,EAC3C,gCAAgC,oBAAAA,QAAU;AAC5C,IAAI;;;AxGzDJ;AAIA;AACA;AACA;AACA;AACA;AAIA,IAAAC,uBAA4B;AAC5B,IAAAA,uBAA8B;AArB9B,IAAMC,cAAY,CAAC,oBAAoB,gBAAgB,aAAa,aAAa,SAAS,cAAc,mBAAmB,gBAAgB,YAAY,gCAAgC,gBAAgB,SAAS,aAAa,MAAM,kBAAkB,cAAc,YAAY,UAAU,WAAW,WAAW,aAAa,QAAQ,UAAU,YAAY,WAAW,WAAW,aAAa,WAAW,eAAe,YAAY,gBAAgB,QAAQ,QAAQ,aAAa,SAAS,kBAAkB,QAAQ,OAAO;AAsBnf,IAAM,wBAAwB,CAAC,OAAOC,YAAW;AACtD,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,SAAO,CAACA,QAAO,MAAM,WAAW,eAAeA,QAAO,aAAa,WAAW,kBAAkBA,QAAO,cAAc,WAAW,gBAAgBA,QAAO,YAAY,WAAW,SAASA,QAAO,OAAO,WAAW,SAAS,WAAWA,QAAO,WAAW,WAAW,aAAaA,QAAO,WAAW,WAAW,SAASA,QAAO,QAAQ,mBAAW,WAAW,KAAK,CAAC,EAAE,GAAG,WAAW,aAAaA,QAAO,WAAW,WAAW,eAAeA,QAAO,WAAW;AAC5b;AACO,IAAM,yBAAyB,CAAC,OAAOA,YAAW;AACvD,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,SAAO,CAACA,QAAO,OAAO,WAAW,SAAS,WAAWA,QAAO,gBAAgB,WAAW,aAAaA,QAAO,gBAAgB,WAAW,SAAS,YAAYA,QAAO,iBAAiB,WAAW,kBAAkBA,QAAO,mBAAmB,WAAW,gBAAgBA,QAAO,iBAAiB,WAAW,eAAeA,QAAO,gBAAgB;AAChV;AACA,IAAMC,sBAAoB,gBAAc;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAAC;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,QAAQ;AAAA,IACZ,MAAM,CAAC,QAAQ,QAAQ,mBAAW,KAAK,CAAC,IAAI,YAAY,YAAY,SAAS,SAAS,aAAa,aAAa,WAAW,WAAW,eAAe,eAAeA,SAAQA,UAAS,YAAY,OAAO,mBAAWA,KAAI,CAAC,IAAI,aAAa,aAAa,kBAAkB,gBAAgB,gBAAgB,cAAc,eAAe,eAAe,YAAY,UAAU;AAAA,IAC1W,OAAO,CAAC,SAAS,YAAY,YAAY,SAAS,YAAY,mBAAmB,aAAa,kBAAkBA,UAAS,WAAW,kBAAkB,eAAe,oBAAoB,kBAAkB,qBAAqB,gBAAgB,mBAAmB,YAAY,UAAU;AAAA,EAC3R;AACA,SAAO,eAAe,OAAO,0BAA0B,OAAO;AAChE;AACO,IAAM,gBAAgB,eAAO,OAAO;AAAA,EACzC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,mBAAmB;AACrB,CAAC,EAAE,CAAC;AAAA,EACF;AAAA,EACA;AACF,MAAM,SAAS,CAAC,GAAG,MAAM,WAAW,OAAO;AAAA,EACzC,QAAQ,MAAM,QAAQ,OAAO,QAAQ,KAAK;AAAA,EAC1C,YAAY;AAAA;AAAA,EAEZ,WAAW;AAAA;AAAA,EAEX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,CAAC,KAAK,yBAAiB,QAAQ,EAAE,GAAG;AAAA,IAClC,QAAQ,MAAM,QAAQ,OAAO,QAAQ,KAAK;AAAA,IAC1C,QAAQ;AAAA,EACV;AACF,GAAG,WAAW,aAAa,SAAS;AAAA,EAClC,SAAS;AACX,GAAG,WAAW,SAAS,WAAW;AAAA,EAChC,YAAY;AACd,CAAC,GAAG,WAAW,aAAa;AAAA,EAC1B,OAAO;AACT,CAAC,CAAC;AACK,IAAM,qBAAqB,eAAO,SAAS;AAAA,EAChD,MAAM;AAAA,EACN,MAAM;AAAA,EACN,mBAAmB;AACrB,CAAC,EAAE,CAAC;AAAA,EACF;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,MAAM,QAAQ,SAAS;AACrC,QAAM,cAAc,SAAS;AAAA,IAC3B,OAAO;AAAA,EACT,GAAG,MAAM,OAAO;AAAA,IACd,SAAS,MAAM,KAAK,QAAQ;AAAA,EAC9B,IAAI;AAAA,IACF,SAAS,QAAQ,OAAO;AAAA,EAC1B,GAAG;AAAA,IACD,YAAY,MAAM,YAAY,OAAO,WAAW;AAAA,MAC9C,UAAU,MAAM,YAAY,SAAS;AAAA,IACvC,CAAC;AAAA,EACH,CAAC;AACD,QAAM,oBAAoB;AAAA,IACxB,SAAS;AAAA,EACX;AACA,QAAM,qBAAqB,MAAM,OAAO;AAAA,IACtC,SAAS,MAAM,KAAK,QAAQ;AAAA,EAC9B,IAAI;AAAA,IACF,SAAS,QAAQ,OAAO;AAAA,EAC1B;AACA,SAAO,SAAS;AAAA,IACd,MAAM;AAAA,IACN,eAAe;AAAA,IACf,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA;AAAA,IAER,QAAQ;AAAA;AAAA,IAER,yBAAyB;AAAA,IACzB,SAAS;AAAA;AAAA,IAET,UAAU;AAAA,IACV,OAAO;AAAA;AAAA,IAEP,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,gCAAgC;AAAA,IAChC,uBAAuB;AAAA;AAAA,IAEvB,2BAA2B;AAAA;AAAA,IAE3B,4BAA4B;AAAA;AAAA,IAE5B,WAAW;AAAA,MACT,SAAS;AAAA,IACX;AAAA;AAAA,IAEA,aAAa;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,gCAAgC;AAAA;AAAA,MAE9B,kBAAkB;AAAA,IACpB;AAAA;AAAA,IAEA,CAAC,+BAA+B,yBAAiB,WAAW,IAAI,GAAG;AAAA,MACjE,gCAAgC;AAAA,MAChC,uBAAuB;AAAA;AAAA,MAEvB,2BAA2B;AAAA;AAAA,MAE3B,4BAA4B;AAAA;AAAA,MAE5B,sCAAsC;AAAA,MACtC,6BAA6B;AAAA;AAAA,MAE7B,iCAAiC;AAAA;AAAA,MAEjC,kCAAkC;AAAA;AAAA,IACpC;AAAA,IACA,CAAC,KAAK,yBAAiB,QAAQ,EAAE,GAAG;AAAA,MAClC,SAAS;AAAA;AAAA,MAET,sBAAsB,MAAM,QAAQ,OAAO,QAAQ,KAAK;AAAA;AAAA,IAC1D;AAAA,IACA,sBAAsB;AAAA,MACpB,mBAAmB;AAAA,MACnB,eAAe;AAAA,IACjB;AAAA,EACF,GAAG,WAAW,SAAS,WAAW;AAAA,IAChC,YAAY;AAAA,EACd,GAAG,WAAW,aAAa;AAAA,IACzB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,EACd,GAAG,WAAW,SAAS,YAAY;AAAA;AAAA,IAEjC,eAAe;AAAA,EACjB,CAAC;AACH,CAAC;AACD,IAAM,wBAAiC,qBAAAC,KAAKC,uBAAc;AAAA,EACxD,QAAQ;AAAA,IACN,4BAA4B;AAAA,MAC1B,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,mCAAmC;AAAA,MACjC,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAOD,IAAM,YAA+B,mBAAW,SAASC,WAAU,SAAS,KAAK;AAC/E,MAAI;AACJ,QAAM,QAAQ,cAAc;AAAA,IAC1B,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAC;AACD,QAAM;AAAA,IACF,oBAAoB;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,IACd,kBAAkB,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,iBAAiB;AAAA,IACjB,YAAY,iBAAiB,CAAC;AAAA,IAC9B,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,CAAC;AAAA,IACb,QAAQ,CAAC;AAAA,IACT;AAAA,IACA,OAAO;AAAA,IACP,OAAO;AAAA,EACT,IAAI,OACJ,QAAQ,8BAA8B,OAAON,WAAS;AACxD,QAAM,QAAQ,eAAe,SAAS,OAAO,eAAe,QAAQ;AACpE,QAAM;AAAA,IACJ,SAAS;AAAA,EACX,IAAU,eAAO,SAAS,IAAI;AAC9B,QAAM,WAAiB,eAAO;AAC9B,QAAM,wBAA8B,oBAAY,cAAY;AAC1D,QAAI,MAAuC;AACzC,UAAI,YAAY,SAAS,aAAa,WAAW,CAAC,SAAS,OAAO;AAChE,gBAAQ,MAAM,CAAC,oEAAoE,kDAAkD,6DAA6D,EAAE,KAAK,IAAI,CAAC;AAAA,MAChN;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AACL,QAAM,iBAAiB,mBAAW,UAAU,cAAc,eAAe,KAAK,qBAAqB;AACnG,QAAM,CAAC,SAAS,UAAU,IAAU,iBAAS,KAAK;AAClD,QAAM,iBAAiB,eAAe;AACtC,MAAI,MAAuC;AAEzC,IAAM,kBAAU,MAAM;AACpB,UAAI,gBAAgB;AAClB,eAAO,eAAe,eAAe;AAAA,MACvC;AACA,aAAO;AAAA,IACT,GAAG,CAAC,cAAc,CAAC;AAAA,EACrB;AACA,QAAM,MAAM,iBAAiB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,QAAQ,CAAC,SAAS,YAAY,SAAS,eAAe,QAAQ,YAAY,QAAQ;AAAA,EACpF,CAAC;AACD,MAAI,UAAU,iBAAiB,eAAe,UAAU;AAIxD,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,kBAAkB,YAAY,SAAS;AAC1C,iBAAW,KAAK;AAChB,UAAI,QAAQ;AACV,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,GAAG,CAAC,gBAAgB,UAAU,SAAS,MAAM,CAAC;AAC9C,QAAM,WAAW,kBAAkB,eAAe;AAClD,QAAM,UAAU,kBAAkB,eAAe;AACjD,QAAM,aAAmB,oBAAY,SAAO;AAC1C,QAAI,SAAS,GAAG,GAAG;AACjB,UAAI,UAAU;AACZ,iBAAS;AAAA,MACX;AAAA,IACF,WAAW,SAAS;AAClB,cAAQ;AAAA,IACV;AAAA,EACF,GAAG,CAAC,UAAU,OAAO,CAAC;AACtB,EAAAO,2BAAkB,MAAM;AACtB,QAAI,cAAc;AAChB,iBAAW;AAAA,QACT;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,OAAO,YAAY,YAAY,CAAC;AACpC,QAAM,cAAc,WAAS;AAG3B,QAAI,IAAI,UAAU;AAChB,YAAM,gBAAgB;AACtB;AAAA,IACF;AACA,QAAI,SAAS;AACX,cAAQ,KAAK;AAAA,IACf;AACA,QAAI,eAAe,SAAS;AAC1B,qBAAe,QAAQ,KAAK;AAAA,IAC9B;AACA,QAAI,kBAAkB,eAAe,SAAS;AAC5C,qBAAe,QAAQ,KAAK;AAAA,IAC9B,OAAO;AACL,iBAAW,IAAI;AAAA,IACjB;AAAA,EACF;AACA,QAAMC,cAAa,WAAS;AAC1B,QAAI,QAAQ;AACV,aAAO,KAAK;AAAA,IACd;AACA,QAAI,eAAe,QAAQ;AACzB,qBAAe,OAAO,KAAK;AAAA,IAC7B;AACA,QAAI,kBAAkB,eAAe,QAAQ;AAC3C,qBAAe,OAAO,KAAK;AAAA,IAC7B,OAAO;AACL,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AACA,QAAM,eAAe,CAAC,UAAU,SAAS;AACvC,QAAI,CAAC,cAAc;AACjB,YAAM,UAAU,MAAM,UAAU,SAAS;AACzC,UAAI,WAAW,MAAM;AACnB,cAAM,IAAI,MAAM,OAAwC,6KAA6K,sBAAuB,CAAC,CAAC;AAAA,MAChQ;AACA,iBAAW;AAAA,QACT,OAAO,QAAQ;AAAA,MACjB,CAAC;AAAA,IACH;AACA,QAAI,eAAe,UAAU;AAC3B,qBAAe,SAAS,OAAO,GAAG,IAAI;AAAA,IACxC;AAGA,QAAI,UAAU;AACZ,eAAS,OAAO,GAAG,IAAI;AAAA,IACzB;AAAA,EACF;AAIA,EAAM,kBAAU,MAAM;AACpB,eAAW,SAAS,OAAO;AAAA,EAE7B,GAAG,CAAC,CAAC;AACL,QAAM,cAAc,WAAS;AAC3B,QAAI,SAAS,WAAW,MAAM,kBAAkB,MAAM,QAAQ;AAC5D,eAAS,QAAQ,MAAM;AAAA,IACzB;AACA,QAAI,SAAS;AACX,cAAQ,KAAK;AAAA,IACf;AAAA,EACF;AACA,MAAI,iBAAiB;AACrB,MAAI,aAAa;AACjB,MAAI,aAAa,mBAAmB,SAAS;AAC3C,QAAI,MAAM;AACR,UAAI,MAAuC;AACzC,YAAI,WAAW,SAAS;AACtB,kBAAQ,KAAK,0FAA0F;AAAA,QACzG;AAAA,MACF;AACA,mBAAa,SAAS;AAAA,QACpB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,MACX,GAAG,UAAU;AAAA,IACf,OAAO;AACL,mBAAa,SAAS;AAAA,QACpB,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF,GAAG,UAAU;AAAA,IACf;AACA,qBAAiB;AAAA,EACnB;AACA,QAAM,iBAAiB,WAAS;AAE9B,eAAW,MAAM,kBAAkB,yBAAyB,SAAS,UAAU;AAAA,MAC7E,OAAO;AAAA,IACT,CAAC;AAAA,EACH;AACA,EAAM,kBAAU,MAAM;AACpB,QAAI,gBAAgB;AAClB,qBAAe,gBAAgB,QAAQ,cAAc,CAAC;AAAA,IACxD;AAAA,EACF,GAAG,CAAC,gBAAgB,cAAc,CAAC;AACnC,QAAM,aAAa,SAAS,CAAC,GAAG,OAAO;AAAA,IACrC,OAAO,IAAI,SAAS;AAAA,IACpB,UAAU,IAAI;AAAA,IACd;AAAA,IACA,OAAO,IAAI;AAAA,IACX,SAAS,IAAI;AAAA,IACb,aAAa;AAAA,IACb;AAAA,IACA,aAAa,IAAI;AAAA,IACjB;AAAA,IACA,MAAM,IAAI;AAAA,IACV;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,UAAUN,oBAAkB,UAAU;AAC5C,QAAM,OAAO,MAAM,QAAQ,WAAW,QAAQ;AAC9C,QAAM,YAAY,UAAU,QAAQ,gBAAgB,QAAQ,CAAC;AAC7D,QAAMO,SAAQ,MAAM,SAAS,WAAW,SAAS;AACjD,eAAa,SAAS,CAAC,GAAG,aAAa,mBAAmB,UAAU,UAAU,OAAO,mBAAmB,gBAAgB,KAAK;AAC7H,aAAoB,qBAAAC,MAAY,kBAAU;AAAA,IACxC,UAAU,CAAC,CAAC,gCAAgC,uBAAgC,qBAAAA,MAAM,MAAM,SAAS,CAAC,GAAG,WAAW,CAAC,gBAAgB,IAAI,KAAK;AAAA,MACxI,YAAY,SAAS,CAAC,GAAG,YAAY,UAAU,UAAU;AAAA,IAC3D,GAAG;AAAA,MACD;AAAA,MACA,SAAS;AAAA,IACX,GAAG,OAAO;AAAA,MACR,WAAW,aAAK,QAAQ,MAAM,UAAU,WAAW,WAAW,YAAY,uBAAuB;AAAA,MACjG,UAAU,CAAC,oBAA6B,qBAAAN,KAAK,2BAAmB,UAAU;AAAA,QACxE,OAAO;AAAA,QACP,cAAuB,qBAAAA,KAAKK,QAAO,SAAS;AAAA,UAC1C;AAAA,UACA,gBAAgB,IAAI;AAAA,UACpB,oBAAoB;AAAA,UACpB;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,IAAI;AAAA,UACd;AAAA,UACA,kBAAkB;AAAA,UAClB;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,IAAI;AAAA,UACd;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,GAAG,YAAY,CAAC,gBAAgBA,MAAK,KAAK;AAAA,UACxC,IAAI;AAAA,UACJ,YAAY,SAAS,CAAC,GAAG,YAAY,WAAW,UAAU;AAAA,QAC5D,GAAG;AAAA,UACD,KAAK;AAAA,UACL,WAAW,aAAK,QAAQ,OAAO,WAAW,WAAW,YAAY,uBAAuB;AAAA,UACxF,QAAQD;AAAA,UACR,UAAU;AAAA,UACV,SAAS;AAAA,QACX,CAAC,CAAC;AAAA,MACJ,CAAC,GAAG,cAAc,eAAe,aAAa,SAAS,CAAC,GAAG,KAAK;AAAA,QAC9D;AAAA,MACF,CAAC,CAAC,IAAI,IAAI;AAAA,IACZ,CAAC,CAAC,CAAC;AAAA,EACL,CAAC;AACH,CAAC;AACD,OAAwC,UAAU,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnF,oBAAoB,oBAAAG,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9B,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIxB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrB,OAAO,oBAAAA,QAAgD,UAAU,CAAC,oBAAAA,QAAU,MAAM,CAAC,WAAW,aAAa,SAAS,QAAQ,WAAW,SAAS,CAAC,GAAG,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrK,YAAY,oBAAAA,QAAU,MAAM;AAAA,IAC1B,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUD,iBAAiB,oBAAAA,QAAU,MAAM;AAAA,IAC/B,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB,8BAA8B,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIxC,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,OAAO,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,IAAI,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMd,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhB,YAAY,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAItB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,QAAQ,oBAAAA,QAAU,MAAM,CAAC,SAAS,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,EAIzC,SAAS,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,EAIjE,SAAS,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjE,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhB,QAAQ,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,WAAW,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIrB,SAAS,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAInB,aAAa,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKvB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,cAAc,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxB,UAAU,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,MAAM,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,EAI9D,MAAM,oBAAAA,QAAgD,UAAU,CAAC,oBAAAA,QAAU,MAAM,CAAC,UAAU,OAAO,CAAC,GAAG,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASxH,WAAW,oBAAAA,QAAU,MAAM;AAAA,IACzB,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQD,OAAO,oBAAAA,QAAU,MAAM;AAAA,IACrB,OAAO,oBAAAA,QAAU;AAAA,IACjB,MAAM,oBAAAA,QAAU;AAAA,EAClB,CAAC;AAAA;AAAA;AAAA;AAAA,EAID,gBAAgB,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAI1B,IAAI,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,UAAU,CAAC,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,QAAQ,oBAAAA,QAAU,IAAI,CAAC,CAAC,GAAG,oBAAAA,QAAU,MAAM,oBAAAA,QAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtJ,MAAM,oBAAAA,QAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,OAAO,oBAAAA,QAAU;AACnB,IAAI;AACJ,IAAO,oBAAQ;;;AyGrsBf;AACA;AACA;AAEO,SAAS,6BAA6B,MAAM;AACjD,SAAO,qBAAqB,oBAAoB,IAAI;AACtD;AACA,IAAM,uBAAuB,SAAS,CAAC,GAAG,0BAAkB,uBAAuB,oBAAoB,CAAC,QAAQ,kBAAkB,OAAO,CAAC,CAAC;AAC3I,IAAO,+BAAQ;",
"names": ["_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "_jsxs", "_jsx", "PropTypes", "index", "React", "import_prop_types", "import_jsx_runtime", "_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "TextareaAutosize", "_jsxs", "_jsx", "PropTypes", "React", "value", "index", "handleKeyDown", "handleBlur", "handleInputChange", "React", "import_prop_types", "import_jsx_runtime", "_jsx", "PropTypes", "GlobalStyles_default", "React", "import_prop_types", "React", "import_prop_types", "max", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "Badge", "max", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Button", "_jsx", "PropTypes", "React", "import_prop_types", "React", "React", "React", "import_jsx_runtime", "_jsx", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "FormControl", "_jsx", "PropTypes", "React", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "handleBlur", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Input", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "offset", "pageSize", "index", "React", "EMPTY_OBJECT", "NOOP", "pageSize", "state", "handleTextNavigation", "React", "React", "React", "deregisterItem", "registerItem", "getItemIndex", "React", "React", "import_jsx_runtime", "_jsx", "React", "import_prop_types", "platform", "platform", "placements", "sides", "side", "placement", "overflow", "platform", "x", "y", "min", "max", "window", "shift", "flip", "computePosition", "React", "platform", "computePosition", "data", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "React", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Popup", "flip", "shift", "_jsx", "PropTypes", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Menu", "_jsx", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "MenuButton", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "FALLBACK_MENU_CONTEXT", "index", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "_jsx", "MenuItem", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Modal", "_jsx", "_jsxs", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "min", "max", "min", "max", "getInputValueAsString", "min", "max", "handleStep", "import_jsx_runtime", "_excluded", "useUtilityClasses", "NumberInput", "max", "min", "Input", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "OptionGroup", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "index", "React", "import_jsx_runtime", "_excluded", "useUtilityClasses", "index", "_jsx", "Option", "PropTypes", "React", "import_prop_types", "React", "index", "React", "import_jsx_runtime", "_jsx", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "_jsx", "useUtilityClasses", "Select", "Button", "_jsxs", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "index", "min", "max", "import_jsx_runtime", "_excluded", "Identity", "useUtilityClasses", "Slider", "max", "min", "axisProps", "Input", "_jsxs", "_jsx", "index", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "handleKeyDown", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Snackbar", "_jsx", "PropTypes", "React", "import_prop_types", "React", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Switch", "Input", "_jsxs", "_jsx", "PropTypes", "React", "import_prop_types", "React", "import_jsx_runtime", "_excluded", "_span", "_span2", "_jsx", "TablePaginationActions", "_jsxs", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "import_jsx_runtime", "import_react", "_excluded", "defaultGetAriaLabel", "useUtilityClasses", "TablePagination", "Select", "MenuItem", "_jsx", "_jsxs", "_createElement", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "React", "import_jsx_runtime", "_jsx", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Tabs", "_jsx", "PropTypes", "import_jsx_runtime", "_excluded", "useUtilityClasses", "TabPanel", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "React", "import_jsx_runtime", "_jsx", "import_jsx_runtime", "_excluded", "useUtilityClasses", "TabsList", "_jsx", "PropTypes", "React", "import_prop_types", "COMPONENT_NAME", "generateUtilityClass", "generateUtilityClasses", "React", "index", "import_jsx_runtime", "_excluded", "useUtilityClasses", "Tab", "_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "_excluded", "_jsx", "PropTypes", "React", "import_prop_types", "import_jsx_runtime", "_excluded", "CssTransition", "_jsx", "PropTypes", "import_jsx_runtime", "_excluded", "styles", "useUtilityClasses", "size", "_jsx", "GlobalStyles_default", "InputBase", "useEnhancedEffect_default", "handleBlur", "Input", "_jsxs", "PropTypes"]
}