@uva-glass/component-library 3.55.1 → 3.55.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Accordion-BpnBHYIx.js +69 -0
- package/dist/Accordion-BpnBHYIx.js.map +1 -0
- package/dist/AccordionCard-BXy-plB7.js +43 -0
- package/dist/AccordionCard-BXy-plB7.js.map +1 -0
- package/dist/ActionList-O9w1hqNg.js +95 -0
- package/dist/ActionList-O9w1hqNg.js.map +1 -0
- package/dist/AddCatalogueLinkForm-Cy6fPNvN.js +117 -0
- package/dist/AddCatalogueLinkForm-Cy6fPNvN.js.map +1 -0
- package/dist/AppStatusBar-Bca0KFDR.js +20 -0
- package/dist/AppStatusBar-Bca0KFDR.js.map +1 -0
- package/dist/Attention-Bq5UU9I8.js +13 -0
- package/dist/Attention-Bq5UU9I8.js.map +1 -0
- package/dist/Backdrop-D8AHeuBn.js +10 -0
- package/dist/Backdrop-D8AHeuBn.js.map +1 -0
- package/dist/Button.module-DJlNwQUj.js +16 -0
- package/dist/Button.module-DJlNwQUj.js.map +1 -0
- package/dist/ButtonGroup-DR80lTLz.js +21 -0
- package/dist/ButtonGroup-DR80lTLz.js.map +1 -0
- package/dist/Card-DMFyuTmy.js +32 -0
- package/dist/Card-DMFyuTmy.js.map +1 -0
- package/dist/Checkbox-D6-b_4dC.js +12 -0
- package/dist/Checkbox-D6-b_4dC.js.map +1 -0
- package/dist/CheckboxButtonBar-CalU0IYK.js +79 -0
- package/dist/CheckboxButtonBar-CalU0IYK.js.map +1 -0
- package/dist/Chip-DJHvFToV.js +22 -0
- package/dist/Chip-DJHvFToV.js.map +1 -0
- package/dist/ClipboardButton-geHjMl2J.js +43 -0
- package/dist/ClipboardButton-geHjMl2J.js.map +1 -0
- package/dist/Column-BwKEOOuL.js +84 -0
- package/dist/Column-BwKEOOuL.js.map +1 -0
- package/dist/Container-BLjtYDqq.js +31 -0
- package/dist/Container-BLjtYDqq.js.map +1 -0
- package/dist/ControlsButton-zemVxTlg.js +64 -0
- package/dist/ControlsButton-zemVxTlg.js.map +1 -0
- package/dist/CopyableText-DkyhZ6wk.js +57 -0
- package/dist/CopyableText-DkyhZ6wk.js.map +1 -0
- package/dist/Drawer-Ggofac6y.js +77 -0
- package/dist/Drawer-Ggofac6y.js.map +1 -0
- package/dist/EmptyStateDataDisplay-D0QiI8nE.js +46 -0
- package/dist/EmptyStateDataDisplay-D0QiI8nE.js.map +1 -0
- package/dist/ExpandableInfoPanel-CnBVVNlJ.js +58 -0
- package/dist/ExpandableInfoPanel-CnBVVNlJ.js.map +1 -0
- package/dist/FeedbackBar-ByKp32HE.js +43 -0
- package/dist/FeedbackBar-ByKp32HE.js.map +1 -0
- package/dist/FeedbackBox-Bu7uB9DP.js +29 -0
- package/dist/FeedbackBox-Bu7uB9DP.js.map +1 -0
- package/dist/FieldHint-D0HtbTnt.js +16 -0
- package/dist/FieldHint-D0HtbTnt.js.map +1 -0
- package/dist/Fieldset-CoNu_Owa.js +23 -0
- package/dist/Fieldset-CoNu_Owa.js.map +1 -0
- package/dist/Flyout-DEpzfZOC.js +18 -0
- package/dist/Flyout-DEpzfZOC.js.map +1 -0
- package/dist/FormField-BZSoQdp9.js +21 -0
- package/dist/FormField-BZSoQdp9.js.map +1 -0
- package/dist/HorizontalList-C22DaDz-.js +20 -0
- package/dist/HorizontalList-C22DaDz-.js.map +1 -0
- package/dist/IconButton-CWCMH9uf.js +24 -0
- package/dist/IconButton-CWCMH9uf.js.map +1 -0
- package/dist/InfoBanner-DyznQLGr.js +13 -0
- package/dist/InfoBanner-DyznQLGr.js.map +1 -0
- package/dist/InfoMessage-I-VlwxVc.js +19 -0
- package/dist/InfoMessage-I-VlwxVc.js.map +1 -0
- package/dist/Input-Bn-arMaC.js +25 -0
- package/dist/Input-Bn-arMaC.js.map +1 -0
- package/dist/InputField-BWAy19w9.js +51 -0
- package/dist/InputField-BWAy19w9.js.map +1 -0
- package/dist/Label-o0BcWTUS.js +21 -0
- package/dist/Label-o0BcWTUS.js.map +1 -0
- package/dist/Lexical.prod-DCGjHGxG.js +5235 -0
- package/dist/Lexical.prod-DCGjHGxG.js.map +1 -0
- package/dist/LexicalClipboard.prod-CGG14aoP.js +248 -0
- package/dist/LexicalClipboard.prod-CGG14aoP.js.map +1 -0
- package/dist/LexicalComposerContext.prod-Ca-YN_fj.js +22 -0
- package/dist/LexicalComposerContext.prod-Ca-YN_fj.js.map +1 -0
- package/dist/LexicalExtension.prod-DWt1IjPF.js +854 -0
- package/dist/LexicalExtension.prod-DWt1IjPF.js.map +1 -0
- package/dist/LexicalLink.prod-Dy1gE75H.js +665 -0
- package/dist/LexicalLink.prod-Dy1gE75H.js.map +1 -0
- package/dist/LexicalList.prod-D9R0L7cu.js +760 -0
- package/dist/LexicalList.prod-D9R0L7cu.js.map +1 -0
- package/dist/LexicalTable.prod-C2FP47Lm.js +1991 -0
- package/dist/LexicalTable.prod-C2FP47Lm.js.map +1 -0
- package/dist/LexicalUtils.prod-BzrjMu6t.js +242 -0
- package/dist/LexicalUtils.prod-BzrjMu6t.js.map +1 -0
- package/dist/LinkContextMenu-DZlKfbg1.js +101 -0
- package/dist/LinkContextMenu-DZlKfbg1.js.map +1 -0
- package/dist/MenuLink-Cm1yZO_5.js +21 -0
- package/dist/MenuLink-Cm1yZO_5.js.map +1 -0
- package/dist/MetaDataBar-C4QO9oBV.js +23 -0
- package/dist/MetaDataBar-C4QO9oBV.js.map +1 -0
- package/dist/MetaDataList-CAR1HTYs.js +24 -0
- package/dist/MetaDataList-CAR1HTYs.js.map +1 -0
- package/dist/ModalDialog-HUkDdAJ-.js +114 -0
- package/dist/ModalDialog-HUkDdAJ-.js.map +1 -0
- package/dist/MultiSelectBox-Cuh_o-A1.js +189 -0
- package/dist/MultiSelectBox-Cuh_o-A1.js.map +1 -0
- package/dist/MultiSelectItem-BF5xRjz5.js +36 -0
- package/dist/MultiSelectItem-BF5xRjz5.js.map +1 -0
- package/dist/Notification-CIhsHuF0.js +68 -0
- package/dist/Notification-CIhsHuF0.js.map +1 -0
- package/dist/OverlayCloseButton-rttFbAM_.js +22 -0
- package/dist/OverlayCloseButton-rttFbAM_.js.map +1 -0
- package/dist/OverlayStepBar-CjaoYdsh.js +45 -0
- package/dist/OverlayStepBar-CjaoYdsh.js.map +1 -0
- package/dist/PageOverlay-D_wG2oie.js +108 -0
- package/dist/PageOverlay-D_wG2oie.js.map +1 -0
- package/dist/PasteHandlerPlugin-DUdocSHB.js +235 -0
- package/dist/PasteHandlerPlugin-DUdocSHB.js.map +1 -0
- package/dist/Periods-BYETtB6R.js +40 -0
- package/dist/Periods-BYETtB6R.js.map +1 -0
- package/dist/ProgrammeCard-76gG7ksx.js +27 -0
- package/dist/ProgrammeCard-76gG7ksx.js.map +1 -0
- package/dist/RadioButton-Bto2p5B9.js +35 -0
- package/dist/RadioButton-Bto2p5B9.js.map +1 -0
- package/dist/RadioGroup-JeTjVp5B.js +50 -0
- package/dist/RadioGroup-JeTjVp5B.js.map +1 -0
- package/dist/Repeater-BhkTEUai.js +22 -0
- package/dist/Repeater-BhkTEUai.js.map +1 -0
- package/dist/RteEditor.module-Jk80F1FA.js +42 -0
- package/dist/RteEditor.module-Jk80F1FA.js.map +1 -0
- package/dist/SearchField.module-BgxjHaPG.js +19 -0
- package/dist/SearchField.module-BgxjHaPG.js.map +1 -0
- package/dist/SectionNotification-CQqwPTqP.js +14 -0
- package/dist/SectionNotification-CQqwPTqP.js.map +1 -0
- package/dist/SelectListbox.module-HaPs1CLD.js +30 -0
- package/dist/SelectListbox.module-HaPs1CLD.js.map +1 -0
- package/dist/Slider-BlLyrET9.js +102 -0
- package/dist/Slider-BlLyrET9.js.map +1 -0
- package/dist/Sortable.module-BTUOSbOU.js +27 -0
- package/dist/Sortable.module-BTUOSbOU.js.map +1 -0
- package/dist/SortableProvider-Dc7hwkb5.js +147 -0
- package/dist/SortableProvider-Dc7hwkb5.js.map +1 -0
- package/dist/Spinner-D8tWqg9j.js +31 -0
- package/dist/Spinner-D8tWqg9j.js.map +1 -0
- package/dist/StatusBage-DQDOF5-U.js +13 -0
- package/dist/StatusBage-DQDOF5-U.js.map +1 -0
- package/dist/StatusPill-DM7n3I4W.js +30 -0
- package/dist/StatusPill-DM7n3I4W.js.map +1 -0
- package/dist/TableCellContextMenu-D0IMQr3E.js +119 -0
- package/dist/TableCellContextMenu-D0IMQr3E.js.map +1 -0
- package/dist/TableCellResizerPlugin-BGolbi44.js +208 -0
- package/dist/TableCellResizerPlugin-BGolbi44.js.map +1 -0
- package/dist/TextArea-DqKIpOfT.js +68 -0
- package/dist/TextArea-DqKIpOfT.js.map +1 -0
- package/dist/ToggleSwitch-C7z7JVtx.js +51 -0
- package/dist/ToggleSwitch-C7z7JVtx.js.map +1 -0
- package/dist/Tooltip-BzB3jznk.js +80 -0
- package/dist/Tooltip-BzB3jznk.js.map +1 -0
- package/dist/VarIndicator-C-GueOZD.js +50 -0
- package/dist/VarIndicator-C-GueOZD.js.map +1 -0
- package/dist/WeekSelector.module-BLPrVYgn.js +18 -0
- package/dist/WeekSelector.module-BLPrVYgn.js.map +1 -0
- package/dist/__mocks__/svgrMock.js +12 -9
- package/dist/__mocks__/svgrMock.js.map +1 -1
- package/dist/assets/Accordion.css +1 -1
- package/dist/assets/AccordionCard.css +1 -1
- package/dist/assets/ActionList.css +1 -1
- package/dist/assets/AddCatalogueLinkForm.css +1 -1
- package/dist/assets/AppStatusBar.css +1 -1
- package/dist/assets/Attention.css +1 -1
- package/dist/assets/Backdrop.css +1 -1
- package/dist/assets/Backdrop2.css +1 -1
- package/dist/assets/Button.css +1 -1
- package/dist/assets/ButtonGroup.css +1 -1
- package/dist/assets/Card.css +1 -1
- package/dist/assets/Checkbox.css +1 -1
- package/dist/assets/CheckboxButtonBar.css +1 -1
- package/dist/assets/Chip.css +1 -1
- package/dist/assets/ClipboardButton.css +1 -1
- package/dist/assets/Column.css +1 -1
- package/dist/assets/Container.css +1 -1
- package/dist/assets/ControlsButton.css +1 -1
- package/dist/assets/CopyableText.css +1 -1
- package/dist/assets/Drawer.css +1 -1
- package/dist/assets/EmptyStateDataDisplay.css +1 -1
- package/dist/assets/ExpandableInfoPanel.css +1 -1
- package/dist/assets/FeedbackBar.css +1 -1
- package/dist/assets/FeedbackBox.css +1 -1
- package/dist/assets/Fieldset.css +1 -1
- package/dist/assets/Flyout.css +1 -1
- package/dist/assets/FormField.css +1 -1
- package/dist/assets/GridRow.css +1 -1
- package/dist/assets/HorizontalList.css +1 -1
- package/dist/assets/Icon.css +1 -1
- package/dist/assets/IconButton.css +1 -1
- package/dist/assets/InfoBanner.css +1 -1
- package/dist/assets/InfoMessage.css +1 -1
- package/dist/assets/Input.css +1 -1
- package/dist/assets/InputField.css +1 -1
- package/dist/assets/Label.css +1 -1
- package/dist/assets/LinkContextMenu.css +1 -1
- package/dist/assets/MenuLink.css +1 -1
- package/dist/assets/MenuLink2.css +1 -1
- package/dist/assets/MetaDataBar.css +1 -1
- package/dist/assets/MetaDataList.css +1 -1
- package/dist/assets/ModalDialog.css +1 -1
- package/dist/assets/MultiSelectBox.css +1 -1
- package/dist/assets/MultiSelectItem.css +1 -1
- package/dist/assets/Notification.css +1 -1
- package/dist/assets/OverlayCloseButton.css +1 -1
- package/dist/assets/OverlayStepBar.css +1 -1
- package/dist/assets/PageOverlay.css +1 -1
- package/dist/assets/Periods.css +1 -1
- package/dist/assets/ProgrammeCard.css +1 -1
- package/dist/assets/RadioButton.css +1 -1
- package/dist/assets/RadioButton2.css +1 -1
- package/dist/assets/RadioGroup.css +1 -1
- package/dist/assets/RteEditor.css +1 -1
- package/dist/assets/SearchField.css +1 -1
- package/dist/assets/SectionNotification.css +1 -1
- package/dist/assets/SelectListbox.css +1 -1
- package/dist/assets/Slider.css +1 -1
- package/dist/assets/Sortable.css +1 -1
- package/dist/assets/Spinner.css +1 -1
- package/dist/assets/StatusBage.css +1 -1
- package/dist/assets/StatusPill.css +1 -1
- package/dist/assets/TableCellContextMenu.css +1 -1
- package/dist/assets/TextArea.css +1 -1
- package/dist/assets/ToggleSwitch.css +1 -1
- package/dist/assets/Tooltip.css +1 -1
- package/dist/assets/VarIndicator.css +1 -1
- package/dist/assets/WeekSelector.css +1 -1
- package/dist/assets/components.css +1 -0
- package/dist/chunk-DeC0fbbY.js +23 -0
- package/dist/chunk-OPOZOKLO-CXKdjnjn.js +8448 -0
- package/dist/chunk-OPOZOKLO-CXKdjnjn.js.map +1 -0
- package/dist/client-C0JVBgoR.js +18953 -0
- package/dist/client-C0JVBgoR.js.map +1 -0
- package/dist/clsx-BD2qMUU1.js +18 -0
- package/dist/clsx-BD2qMUU1.js.map +1 -0
- package/dist/components/Accordion/Accordion.js +2 -94
- package/dist/components/Accordion/Accordion.stories.js +30 -32
- package/dist/components/Accordion/Accordion.stories.js.map +1 -1
- package/dist/components/Accordion/Accordion.test.js +49 -27
- package/dist/components/Accordion/Accordion.test.js.map +1 -1
- package/dist/components/Accordion/index.js +2 -5
- package/dist/components/AccordionCard/AccordionCard.js +2 -58
- package/dist/components/AccordionCard/AccordionCard.stories.js +31 -32
- package/dist/components/AccordionCard/AccordionCard.stories.js.map +1 -1
- package/dist/components/AccordionCard/AccordionCard.test.js +54 -31
- package/dist/components/AccordionCard/AccordionCard.test.js.map +1 -1
- package/dist/components/AccordionCard/index.js +2 -5
- package/dist/components/ActionList/ActionList.js +2 -83
- package/dist/components/ActionList/ActionList.stories.js +49 -38
- package/dist/components/ActionList/ActionList.stories.js.map +1 -1
- package/dist/components/ActionList/ActionList.test.js +97 -57
- package/dist/components/ActionList/ActionList.test.js.map +1 -1
- package/dist/components/ActionList/index.js +2 -5
- package/dist/components/AppStatusBar/AppStatusBar.js +2 -13
- package/dist/components/AppStatusBar/AppStatusBar.stories.js +25 -26
- package/dist/components/AppStatusBar/AppStatusBar.stories.js.map +1 -1
- package/dist/components/AppStatusBar/AppStatusBar.test.js +17 -8
- package/dist/components/AppStatusBar/AppStatusBar.test.js.map +1 -1
- package/dist/components/AppStatusBar/index.js +2 -5
- package/dist/components/Attention/Attention.js +2 -12
- package/dist/components/Attention/Attention.stories.js +18 -16
- package/dist/components/Attention/Attention.stories.js.map +1 -1
- package/dist/components/Attention/Attention.test.js +14 -8
- package/dist/components/Attention/Attention.test.js.map +1 -1
- package/dist/components/Attention/index.js +2 -5
- package/dist/components/Backdrop/Backdrop.js +2 -8
- package/dist/components/Backdrop/Backdrop.stories.js +32 -28
- package/dist/components/Backdrop/Backdrop.stories.js.map +1 -1
- package/dist/components/Backdrop/Backdrop.test.js +13 -7
- package/dist/components/Backdrop/Backdrop.test.js.map +1 -1
- package/dist/components/Backdrop/index.js +2 -5
- package/dist/components/ButtonGroup/ButtonGroup.js +2 -26
- package/dist/components/ButtonGroup/ButtonGroup.stories.js +29 -39
- package/dist/components/ButtonGroup/ButtonGroup.stories.js.map +1 -1
- package/dist/components/ButtonGroup/index.js +2 -5
- package/dist/components/Buttons/Button.js +16 -22
- package/dist/components/Buttons/Button.js.map +1 -1
- package/dist/components/Buttons/Button.stories.js +43 -56
- package/dist/components/Buttons/Button.stories.js.map +1 -1
- package/dist/components/Buttons/Button.test.js +60 -33
- package/dist/components/Buttons/Button.test.js.map +1 -1
- package/dist/components/Buttons/LinkButton.js +14 -11
- package/dist/components/Buttons/LinkButton.js.map +1 -1
- package/dist/components/Buttons/LinkButton.stories.js +41 -57
- package/dist/components/Buttons/LinkButton.stories.js.map +1 -1
- package/dist/components/Buttons/LinkButton.test.js +71 -65
- package/dist/components/Buttons/LinkButton.test.js.map +1 -1
- package/dist/components/Buttons/MenuButton.js +18 -15
- package/dist/components/Buttons/MenuButton.js.map +1 -1
- package/dist/components/Buttons/MenuButton.stories.js +45 -61
- package/dist/components/Buttons/MenuButton.stories.js.map +1 -1
- package/dist/components/Buttons/MenuButton.test.js +70 -64
- package/dist/components/Buttons/MenuButton.test.js.map +1 -1
- package/dist/components/Buttons/index.js +4 -9
- package/dist/components/Card/Card.js +2 -39
- package/dist/components/Card/Card.stories.js +42 -49
- package/dist/components/Card/Card.stories.js.map +1 -1
- package/dist/components/Card/Card.test.js +14 -8
- package/dist/components/Card/Card.test.js.map +1 -1
- package/dist/components/Card/index.js +2 -5
- package/dist/components/Checkbox/Checkbox.js +2 -9
- package/dist/components/Checkbox/Checkbox.stories.js +44 -41
- package/dist/components/Checkbox/Checkbox.stories.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.test.js +21 -15
- package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
- package/dist/components/Checkbox/index.js +2 -5
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +2 -114
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js +277 -310
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.stories.js.map +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js +71 -85
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.test.js.map +1 -1
- package/dist/components/CheckboxButtonBar/index.js +2 -5
- package/dist/components/CheckboxTree/CheckboxTree.js +3 -172
- package/dist/components/CheckboxTree/CheckboxTree.stories.js +89 -139
- package/dist/components/CheckboxTree/CheckboxTree.stories.js.map +1 -1
- package/dist/components/CheckboxTree/index.js +3 -5
- package/dist/components/Chip/Chip.js +2 -14
- package/dist/components/Chip/Chip.stories.js +24 -28
- package/dist/components/Chip/Chip.stories.js.map +1 -1
- package/dist/components/Chip/index.js +2 -5
- package/dist/components/ControlsButton/ControlsButton.js +2 -82
- package/dist/components/ControlsButton/ControlsButton.stories.js +98 -122
- package/dist/components/ControlsButton/ControlsButton.stories.js.map +1 -1
- package/dist/components/ControlsButton/index.js +2 -5
- package/dist/components/CopyableText/CopyableText.js +2 -64
- package/dist/components/CopyableText/CopyableText.stories.js +36 -35
- package/dist/components/CopyableText/CopyableText.stories.js.map +1 -1
- package/dist/components/CopyableText/index.js +2 -5
- package/dist/components/Drawer/Drawer.js +2 -62
- package/dist/components/Drawer/Drawer.stories.js +49 -68
- package/dist/components/Drawer/Drawer.stories.js.map +1 -1
- package/dist/components/Drawer/index.js +2 -5
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.js +2 -50
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js +17 -18
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.stories.js.map +1 -1
- package/dist/components/EmptyStateDataDisplay/index.js +2 -5
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js +2 -57
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js +57 -50
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.stories.js.map +1 -1
- package/dist/components/ExpandableInfoPanel/index.js +2 -5
- package/dist/components/FeedbackBar/FeedbackBar.js +2 -30
- package/dist/components/FeedbackBar/FeedbackBar.stories.js +30 -33
- package/dist/components/FeedbackBar/FeedbackBar.stories.js.map +1 -1
- package/dist/components/FeedbackBar/FeedbackBar.test.js +18 -12
- package/dist/components/FeedbackBar/FeedbackBar.test.js.map +1 -1
- package/dist/components/FeedbackBar/index.js +2 -5
- package/dist/components/FeedbackBox/FeedbackBox.js +2 -31
- package/dist/components/FeedbackBox/FeedbackBox.stories.js +30 -34
- package/dist/components/FeedbackBox/FeedbackBox.stories.js.map +1 -1
- package/dist/components/FeedbackBox/index.js +2 -5
- package/dist/components/FieldHint/FieldHint.js +2 -15
- package/dist/components/FieldHint/FieldHint.stories.js +27 -35
- package/dist/components/FieldHint/FieldHint.stories.js.map +1 -1
- package/dist/components/FieldHint/index.js +2 -5
- package/dist/components/Fieldset/Fieldset.js +2 -32
- package/dist/components/Fieldset/Fieldset.stories.js +40 -46
- package/dist/components/Fieldset/Fieldset.stories.js.map +1 -1
- package/dist/components/Fieldset/index.js +2 -5
- package/dist/components/FormField/FormField.js +2 -23
- package/dist/components/FormField/FormField.stories.js +40 -45
- package/dist/components/FormField/FormField.stories.js.map +1 -1
- package/dist/components/FormField/index.js +2 -5
- package/dist/components/FormInput/FormInput.js +3 -79
- package/dist/components/FormInput/FormInput.stories.js +60 -40
- package/dist/components/FormInput/FormInput.stories.js.map +1 -1
- package/dist/components/FormInput/index.js +3 -5
- package/dist/components/GridRow/Column/Column.js +2 -7
- package/dist/components/GridRow/Column/index.js +2 -5
- package/dist/components/GridRow/GridRow.js +27 -38
- package/dist/components/GridRow/GridRow.js.map +1 -1
- package/dist/components/GridRow/GridRow.stories.js +198 -95
- package/dist/components/GridRow/GridRow.stories.js.map +1 -1
- package/dist/components/GridRow/index.js +2 -5
- package/dist/components/HorizontalList/HorizontalList.js +2 -13
- package/dist/components/HorizontalList/HorizontalList.stories.js +44 -46
- package/dist/components/HorizontalList/HorizontalList.stories.js.map +1 -1
- package/dist/components/HorizontalList/index.js +2 -5
- package/dist/components/Icon/Icon.js +16 -9
- package/dist/components/Icon/Icon.js.map +1 -1
- package/dist/components/Icon/Icon.stories.js +47 -50
- package/dist/components/Icon/Icon.stories.js.map +1 -1
- package/dist/components/Icon/icons/index.js +2 -672
- package/dist/components/Icon/index.js +2 -5
- package/dist/components/IconButton/IconButton.js +2 -28
- package/dist/components/IconButton/IconButton.stories.js +55 -58
- package/dist/components/IconButton/IconButton.stories.js.map +1 -1
- package/dist/components/IconButton/index.js +2 -5
- package/dist/components/InfoBanner/InfoBanner.js +2 -12
- package/dist/components/InfoBanner/InfoBanner.stories.js +18 -22
- package/dist/components/InfoBanner/InfoBanner.stories.js.map +1 -1
- package/dist/components/InfoBanner/index.js +2 -5
- package/dist/components/InfoMessage/InfoMessage.js +2 -23
- package/dist/components/InfoMessage/InfoMessage.stories.js +21 -26
- package/dist/components/InfoMessage/InfoMessage.stories.js.map +1 -1
- package/dist/components/InfoMessage/index.js +2 -5
- package/dist/components/Input/Input.js +2 -28
- package/dist/components/Input/Input.stories.js +31 -50
- package/dist/components/Input/Input.stories.js.map +1 -1
- package/dist/components/Input/index.js +2 -5
- package/dist/components/InputField/InputField.js +2 -70
- package/dist/components/InputField/InputField.stories.js +81 -109
- package/dist/components/InputField/InputField.stories.js.map +1 -1
- package/dist/components/InputField/index.js +2 -5
- package/dist/components/Label/Label.js +2 -24
- package/dist/components/Label/Label.stories.js +26 -37
- package/dist/components/Label/Label.stories.js.map +1 -1
- package/dist/components/Label/Label.test.js +35 -20
- package/dist/components/Label/Label.test.js.map +1 -1
- package/dist/components/Label/index.js +2 -5
- package/dist/components/MenuLink/MenuLink.js +2 -25
- package/dist/components/MenuLink/MenuLink.stories.js +64 -27
- package/dist/components/MenuLink/MenuLink.stories.js.map +1 -1
- package/dist/components/MenuLink/index.js +2 -5
- package/dist/components/MetaDataBar/MetaDataBar.js +2 -13
- package/dist/components/MetaDataBar/MetaDataBar.stories.js +20 -20
- package/dist/components/MetaDataBar/MetaDataBar.stories.js.map +1 -1
- package/dist/components/MetaDataBar/MetaDataBar.test.js +26 -16
- package/dist/components/MetaDataBar/MetaDataBar.test.js.map +1 -1
- package/dist/components/MetaDataBar/index.js +2 -5
- package/dist/components/MetaDataList/MetaDataList.js +2 -14
- package/dist/components/MetaDataList/MetaDataList.stories.js +21 -23
- package/dist/components/MetaDataList/MetaDataList.stories.js.map +1 -1
- package/dist/components/MetaDataList/index.js +2 -5
- package/dist/components/ModalDialog/ModalDialog.js +2 -130
- package/dist/components/ModalDialog/ModalDialog.stories.js +80 -93
- package/dist/components/ModalDialog/ModalDialog.stories.js.map +1 -1
- package/dist/components/ModalDialog/index.js +2 -5
- package/dist/components/MultiSelect/MultiSelect.js +3 -8
- package/dist/components/MultiSelect/MultiSelect.stories.js +83 -93
- package/dist/components/MultiSelect/MultiSelect.stories.js.map +1 -1
- package/dist/components/MultiSelect/components/MultiSelectHeader.js +3 -34
- package/dist/components/MultiSelect/components/MultiSelectItem.js +2 -9
- package/dist/components/MultiSelect/index.js +3 -5
- package/dist/components/MultiSelectBox/MultiSelectBox.js +2 -207
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js +101 -70
- package/dist/components/MultiSelectBox/MultiSelectBox.stories.js.map +1 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js +54 -29
- package/dist/components/MultiSelectBox/MultiSelectBox.test.js.map +1 -1
- package/dist/components/MultiSelectBox/index.js +2 -5
- package/dist/components/Notification/Notification.js +2 -58
- package/dist/components/Notification/Notification.stories.js +43 -40
- package/dist/components/Notification/Notification.stories.js.map +1 -1
- package/dist/components/Notification/Notification.test.js +24 -10
- package/dist/components/Notification/Notification.test.js.map +1 -1
- package/dist/components/Notification/index.js +2 -5
- package/dist/components/OverlayCloseButton/OverlayCloseButton.js +2 -25
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js +30 -29
- package/dist/components/OverlayCloseButton/OverlayCloseButton.stories.js.map +1 -1
- package/dist/components/OverlayCloseButton/index.js +2 -5
- package/dist/components/OverlayStepBar/OverlayStepBar.js +2 -57
- package/dist/components/OverlayStepBar/OverlayStepBar.stories.js +44 -49
- package/dist/components/OverlayStepBar/OverlayStepBar.stories.js.map +1 -1
- package/dist/components/OverlayStepBar/index.js +2 -5
- package/dist/components/PageOverlay/PageOverlay.js +2 -114
- package/dist/components/PageOverlay/PageOverlay.stories.js +155 -163
- package/dist/components/PageOverlay/PageOverlay.stories.js.map +1 -1
- package/dist/components/PageOverlay/index.js +2 -5
- package/dist/components/PeriodSelector/PeriodSelector.js +3 -96
- package/dist/components/PeriodSelector/PeriodSelector.stories.js +27 -24
- package/dist/components/PeriodSelector/PeriodSelector.stories.js.map +1 -1
- package/dist/components/PeriodSelector/index.js +3 -5
- package/dist/components/Periods/Periods.js +2 -46
- package/dist/components/Periods/Periods.stories.js +53 -60
- package/dist/components/Periods/Periods.stories.js.map +1 -1
- package/dist/components/Periods/index.js +2 -5
- package/dist/components/ProgrammeCard/ProgrammeCard.js +2 -29
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +71 -80
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js.map +1 -1
- package/dist/components/ProgrammeCard/index.js +2 -5
- package/dist/components/RadioButton/RadioButton.js +2 -26
- package/dist/components/RadioButton/RadioButton.stories.js +30 -40
- package/dist/components/RadioButton/RadioButton.stories.js.map +1 -1
- package/dist/components/RadioButton/index.js +2 -5
- package/dist/components/RadioGroup/RadioGroup.js +2 -52
- package/dist/components/RadioGroup/RadioGroup.stories.js +39 -46
- package/dist/components/RadioGroup/RadioGroup.stories.js.map +1 -1
- package/dist/components/RadioGroup/Radiogroup.test.js +46 -22
- package/dist/components/RadioGroup/Radiogroup.test.js.map +1 -1
- package/dist/components/RadioGroup/index.js +2 -5
- package/dist/components/RadioTabSelector/RadioTabSelector.js +3 -94
- package/dist/components/RadioTabSelector/RadioTabSelector.stories.js +76 -74
- package/dist/components/RadioTabSelector/RadioTabSelector.stories.js.map +1 -1
- package/dist/components/RadioTabSelector/index.js +3 -5
- package/dist/components/Repeater/Repeater.js +2 -19
- package/dist/components/Repeater/Repeater.stories.js +32 -42
- package/dist/components/Repeater/Repeater.stories.js.map +1 -1
- package/dist/components/Repeater/index.js +2 -5
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js +3 -43
- package/dist/components/RteEditor/EditorHeader/index.js +3 -5
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +45 -47
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/index.js +2 -5
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js +2 -108
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js +2 -5
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js +150 -194
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/CourseCataloguePlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/index.js +2 -5
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +3 -81
- package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js +3 -5
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +3 -38
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js +2 -95
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +3 -217
- package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js +2 -12
- package/dist/components/RteEditor/Plugins/LinkPlugin/index.js +3 -5
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +75 -83
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js.map +1 -1
- package/dist/components/RteEditor/Plugins/ListPlugin/index.js +2 -5
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js +2 -31
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js +2 -5
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js +2 -14
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js +2 -5
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +3 -36
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js +2 -133
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/index.js +2 -5
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +3 -42
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js +69 -92
- package/dist/components/RteEditor/Plugins/TablePlugin/helpers.js.map +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js +4 -7
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +3 -90
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js +3 -5
- package/dist/components/RteEditor/Plugins/index.js +7 -21
- package/dist/components/RteEditor/Providers/LanguageProvider.js +22 -17
- package/dist/components/RteEditor/Providers/LanguageProvider.js.map +1 -1
- package/dist/components/RteEditor/RteEditor.js +3 -871
- package/dist/components/RteEditor/RteEditor.stories.js +160 -207
- package/dist/components/RteEditor/RteEditor.stories.js.map +1 -1
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js +41 -40
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js.map +1 -1
- package/dist/components/RteEditor/UvaTheme/index.js +2 -5
- package/dist/components/RteEditor/helpers.js +33 -40
- package/dist/components/RteEditor/helpers.js.map +1 -1
- package/dist/components/RteEditor/hooks/components/Flyout.js +2 -11
- package/dist/components/RteEditor/hooks/useFlyout.js +35 -23
- package/dist/components/RteEditor/hooks/useFlyout.js.map +1 -1
- package/dist/components/RteEditor/hooks/useTranslation.js +9 -8
- package/dist/components/RteEditor/hooks/useTranslation.js.map +1 -1
- package/dist/components/RteEditor/index.js +3 -6
- package/dist/components/RteEditor/mockCatalogueSearchData.js +484 -484
- package/dist/components/RteEditor/mockCatalogueSearchData.js.map +1 -1
- package/dist/components/RteEditor/mockRteContent.js +6 -100
- package/dist/components/RteEditor/mockRteContent.js.map +1 -1
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js +98 -122
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/CourseCatalogueNode.js.map +1 -1
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/index.js +2 -11
- package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js +58 -72
- package/dist/components/RteEditor/nodes/TableWrapperNode/TableWrapperNode.js.map +1 -1
- package/dist/components/RteEditor/nodes/TableWrapperNode/index.js +2 -10
- package/dist/components/RteEditor/nodes/index.js +3 -18
- package/dist/components/RteEditor/translations.js +216 -215
- package/dist/components/RteEditor/translations.js.map +1 -1
- package/dist/components/SearchField/SearchField.js +104 -105
- package/dist/components/SearchField/SearchField.js.map +1 -1
- package/dist/components/SearchField/SearcheField.stories.js +89 -118
- package/dist/components/SearchField/SearcheField.stories.js.map +1 -1
- package/dist/components/SearchField/components/ResultOptionBox.js +19 -12
- package/dist/components/SearchField/components/ResultOptionBox.js.map +1 -1
- package/dist/components/SearchField/components/ResultsOption.js +50 -55
- package/dist/components/SearchField/components/ResultsOption.js.map +1 -1
- package/dist/components/SearchField/index.js +2 -5
- package/dist/components/SearchField/mockData.js +136 -135
- package/dist/components/SearchField/mockData.js.map +1 -1
- package/dist/components/SectionNotification/SectionNotification.js +2 -18
- package/dist/components/SectionNotification/SectionNotification.stories.js +21 -24
- package/dist/components/SectionNotification/SectionNotification.stories.js.map +1 -1
- package/dist/components/SectionNotification/index.js +2 -5
- package/dist/components/SelectListbox/SelectListBox.stories.js +3415 -248
- package/dist/components/SelectListbox/SelectListBox.stories.js.map +1 -1
- package/dist/components/SelectListbox/SelectListbox.js +45 -56
- package/dist/components/SelectListbox/SelectListbox.js.map +1 -1
- package/dist/components/SelectListbox/SelectProvider.js +42 -43
- package/dist/components/SelectListbox/SelectProvider.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectButton.js +63 -77
- package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectContainer.js +22 -21
- package/dist/components/SelectListbox/components/SelectContainer.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectOption.js +69 -66
- package/dist/components/SelectListbox/components/SelectOption.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectOptionBox.js +28 -30
- package/dist/components/SelectListbox/components/SelectOptionBox.js.map +1 -1
- package/dist/components/SelectListbox/index.js +2 -5
- package/dist/components/Slider/Slider.js +2 -113
- package/dist/components/Slider/Slider.stories.js +59 -38
- package/dist/components/Slider/Slider.stories.js.map +1 -1
- package/dist/components/Slider/index.js +2 -5
- package/dist/components/Sortable/Sortable.js +25 -41
- package/dist/components/Sortable/Sortable.js.map +1 -1
- package/dist/components/Sortable/Sortable.stories.js +79 -59
- package/dist/components/Sortable/Sortable.stories.js.map +1 -1
- package/dist/components/Sortable/SortableProvider.js +2 -10
- package/dist/components/Sortable/actions.js +24 -32
- package/dist/components/Sortable/actions.js.map +1 -1
- package/dist/components/Sortable/components/SortableContainer.js +2 -9
- package/dist/components/Sortable/components/SortableHandle.js +13 -9
- package/dist/components/Sortable/components/SortableHandle.js.map +1 -1
- package/dist/components/Sortable/components/SortableItem.js +103 -113
- package/dist/components/Sortable/components/SortableItem.js.map +1 -1
- package/dist/components/Sortable/constants.js +6 -14
- package/dist/components/Sortable/constants.js.map +1 -1
- package/dist/components/Sortable/index.js +1 -4
- package/dist/components/Sortable/sortableReducer.js +76 -90
- package/dist/components/Sortable/sortableReducer.js.map +1 -1
- package/dist/components/Spinner/Spinner.js +2 -22
- package/dist/components/Spinner/Spinner.stories.js +21 -26
- package/dist/components/Spinner/Spinner.stories.js.map +1 -1
- package/dist/components/Spinner/index.js +2 -5
- package/dist/components/StatusBadge/StatusBadge.stories.js +18 -21
- package/dist/components/StatusBadge/StatusBadge.stories.js.map +1 -1
- package/dist/components/StatusBadge/StatusBadge.test.js +19 -10
- package/dist/components/StatusBadge/StatusBadge.test.js.map +1 -1
- package/dist/components/StatusBadge/StatusBage.js +2 -10
- package/dist/components/StatusBadge/index.js +2 -5
- package/dist/components/StatusPill/StatusPill.js +2 -35
- package/dist/components/StatusPill/StatusPill.stories.js +20 -20
- package/dist/components/StatusPill/StatusPill.stories.js.map +1 -1
- package/dist/components/StatusPill/index.js +2 -5
- package/dist/components/TextArea/TextArea.js +2 -65
- package/dist/components/TextArea/TextArea.stories.js +30 -31
- package/dist/components/TextArea/TextArea.stories.js.map +1 -1
- package/dist/components/TextArea/TextArea.test.js +38 -22
- package/dist/components/TextArea/TextArea.test.js.map +1 -1
- package/dist/components/TextArea/index.js +2 -5
- package/dist/components/ToggleSwitch/ToggleSwitch.js +2 -66
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js +20 -26
- package/dist/components/ToggleSwitch/ToggleSwitch.stories.js.map +1 -1
- package/dist/components/ToggleSwitch/index.js +2 -5
- package/dist/components/Tooltip/Tooltip.js +2 -75
- package/dist/components/Tooltip/Tooltip.stories.js +27 -32
- package/dist/components/Tooltip/Tooltip.stories.js.map +1 -1
- package/dist/components/Tooltip/index.js +2 -5
- package/dist/components/VarIndicator/VarIndicator.js +2 -62
- package/dist/components/VarIndicator/VarIndicator.stories.js +31 -30
- package/dist/components/VarIndicator/VarIndicator.stories.js.map +1 -1
- package/dist/components/VarIndicator/VarIndicator.test.js +72 -54
- package/dist/components/VarIndicator/VarIndicator.test.js.map +1 -1
- package/dist/components/VarIndicator/index.js +2 -5
- package/dist/components/WeekSelector/WeekSelector.js +89 -97
- package/dist/components/WeekSelector/WeekSelector.js.map +1 -1
- package/dist/components/WeekSelector/WeekSelector.stories.js +146 -191
- package/dist/components/WeekSelector/WeekSelector.stories.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorButton.js +20 -22
- package/dist/components/WeekSelector/components/WeekSelectorButton.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOption.js +72 -85
- package/dist/components/WeekSelector/components/WeekSelectorOption.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js +30 -17
- package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js.map +1 -1
- package/dist/components/WeekSelector/index.js +2 -5
- package/dist/components/WeekSelector/mockdata.js +470 -469
- package/dist/components/WeekSelector/mockdata.js.map +1 -1
- package/dist/components/hooks/useDebounce.js +17 -16
- package/dist/components/hooks/useDebounce.js.map +1 -1
- package/dist/components/hooks/useOnClickOutside.js +15 -14
- package/dist/components/hooks/useOnClickOutside.js.map +1 -1
- package/dist/components/hooks/usePositionedFloaters.js +66 -71
- package/dist/components/hooks/usePositionedFloaters.js.map +1 -1
- package/dist/components/hooks/useResponsive.js +36 -32
- package/dist/components/hooks/useResponsive.js.map +1 -1
- package/dist/components/index.js +64 -139
- package/dist/components-DVUYdcHS.js +1992 -0
- package/dist/components-DVUYdcHS.js.map +1 -0
- package/dist/dist-D6qYwmKD.js +2005 -0
- package/dist/dist-D6qYwmKD.js.map +1 -0
- package/dist/esm-Cmy7DlsJ.js +2781 -0
- package/dist/esm-Cmy7DlsJ.js.map +1 -0
- package/dist/helpers-DcFTH1J1.js +34 -0
- package/dist/helpers-DcFTH1J1.js.map +1 -0
- package/dist/icons-TRhI-4V6.js +2681 -0
- package/dist/icons-TRhI-4V6.js.map +1 -0
- package/dist/index.js +64 -139
- package/dist/lib-6BbFZdI7.js +5595 -0
- package/dist/lib-6BbFZdI7.js.map +1 -0
- package/dist/react-18-PI4Gvl2f.js +43 -0
- package/dist/react-18-PI4Gvl2f.js.map +1 -0
- package/dist/react.esm-Cev8dB-E.js +3297 -0
- package/dist/react.esm-Cev8dB-E.js.map +1 -0
- package/dist/setupTests.js +1226 -36
- package/dist/setupTests.js.map +1 -1
- package/dist/storyComponents/ClipboardButton/ClipboardButton.js +2 -45
- package/dist/storyComponents/ClipboardButton/index.js +2 -5
- package/dist/storyComponents/Container/Container.js +2 -40
- package/dist/storyComponents/Container/index.js +2 -5
- package/dist/storybook__react.d.js +6939 -7524
- package/dist/storybook__react.d.js.map +1 -1
- package/dist/test-CPFNM-bL.js +21586 -0
- package/dist/test-CPFNM-bL.js.map +1 -0
- package/dist/test-utils-BSs0eZfL.js +21 -0
- package/dist/test-utils-BSs0eZfL.js.map +1 -0
- package/dist/types/UserInterface.js +0 -2
- package/dist/vite-env.d.js +0 -2
- package/package.json +22 -22
- package/dist/Button.module-S1-6tV9o.js +0 -16
- package/dist/Button.module-S1-6tV9o.js.map +0 -1
- package/dist/Column-BL3dsYxn.js +0 -101
- package/dist/Column-BL3dsYxn.js.map +0 -1
- package/dist/Lexical.prod-o6Eq_uLx.js +0 -5202
- package/dist/Lexical.prod-o6Eq_uLx.js.map +0 -1
- package/dist/LexicalClipboard.prod-CnUrf2_p.js +0 -265
- package/dist/LexicalClipboard.prod-CnUrf2_p.js.map +0 -1
- package/dist/LexicalComposerContext.prod-DOyoZx0P.js +0 -22
- package/dist/LexicalComposerContext.prod-DOyoZx0P.js.map +0 -1
- package/dist/LexicalExtension.prod-CanXuzFO.js +0 -551
- package/dist/LexicalExtension.prod-CanXuzFO.js.map +0 -1
- package/dist/LexicalLink.prod-DAVbKER8.js +0 -561
- package/dist/LexicalLink.prod-DAVbKER8.js.map +0 -1
- package/dist/LexicalList.prod-C6cknPBV.js +0 -632
- package/dist/LexicalList.prod-C6cknPBV.js.map +0 -1
- package/dist/LexicalSelection.prod-B8GGrzJ3.js +0 -116
- package/dist/LexicalSelection.prod-B8GGrzJ3.js.map +0 -1
- package/dist/LexicalTable.prod-upbwOtcE.js +0 -1892
- package/dist/LexicalTable.prod-upbwOtcE.js.map +0 -1
- package/dist/LexicalUtils.prod-CF7x-KWm.js +0 -134
- package/dist/LexicalUtils.prod-CF7x-KWm.js.map +0 -1
- package/dist/MultiSelectItem-BzBmsKof.js +0 -24
- package/dist/MultiSelectItem-BzBmsKof.js.map +0 -1
- package/dist/RteEditor.module-CoTOIw5i.js +0 -41
- package/dist/RteEditor.module-CoTOIw5i.js.map +0 -1
- package/dist/SearchField.module-CMUEgX7d.js +0 -17
- package/dist/SearchField.module-CMUEgX7d.js.map +0 -1
- package/dist/SelectListbox.module-CXqMuXRB.js +0 -29
- package/dist/SelectListbox.module-CXqMuXRB.js.map +0 -1
- package/dist/Sortable.module-DCVXxKnw.js +0 -26
- package/dist/Sortable.module-DCVXxKnw.js.map +0 -1
- package/dist/SortableProvider-BbwlEPIr.js +0 -160
- package/dist/SortableProvider-BbwlEPIr.js.map +0 -1
- package/dist/TableCellResizerPlugin-qMtSAoKT.js +0 -248
- package/dist/TableCellResizerPlugin-qMtSAoKT.js.map +0 -1
- package/dist/TablePlugin-BRZcXq73.js +0 -308
- package/dist/TablePlugin-BRZcXq73.js.map +0 -1
- package/dist/WeekSelector.module-Clco7jTs.js +0 -17
- package/dist/WeekSelector.module-Clco7jTs.js.map +0 -1
- package/dist/_commonjsHelpers-DaMA6jEr.js +0 -9
- package/dist/_commonjsHelpers-DaMA6jEr.js.map +0 -1
- package/dist/assets/CheckboxTree.css +0 -1
- package/dist/assets/EditorHeader.css +0 -1
- package/dist/assets/FormInput.css +0 -1
- package/dist/assets/PeriodSelector.css +0 -1
- package/dist/assets/RadioTabSelector.css +0 -1
- package/dist/assets/TablePlugin.css +0 -1
- package/dist/chunk-OPOZOKLO-nJkI9rUN.js +0 -4508
- package/dist/chunk-OPOZOKLO-nJkI9rUN.js.map +0 -1
- package/dist/client-D5eE1v54.js +0 -27222
- package/dist/client-D5eE1v54.js.map +0 -1
- package/dist/clsx-OuTLNxxd.js +0 -17
- package/dist/clsx-OuTLNxxd.js.map +0 -1
- package/dist/components/Accordion/Accordion.js.map +0 -1
- package/dist/components/Accordion/index.js.map +0 -1
- package/dist/components/AccordionCard/AccordionCard.js.map +0 -1
- package/dist/components/AccordionCard/index.js.map +0 -1
- package/dist/components/ActionList/ActionList.js.map +0 -1
- package/dist/components/ActionList/index.js.map +0 -1
- package/dist/components/AppStatusBar/AppStatusBar.js.map +0 -1
- package/dist/components/AppStatusBar/index.js.map +0 -1
- package/dist/components/Attention/Attention.js.map +0 -1
- package/dist/components/Attention/index.js.map +0 -1
- package/dist/components/Backdrop/Backdrop.js.map +0 -1
- package/dist/components/Backdrop/index.js.map +0 -1
- package/dist/components/ButtonGroup/ButtonGroup.js.map +0 -1
- package/dist/components/ButtonGroup/index.js.map +0 -1
- package/dist/components/Buttons/index.js.map +0 -1
- package/dist/components/Card/Card.js.map +0 -1
- package/dist/components/Card/index.js.map +0 -1
- package/dist/components/Checkbox/Checkbox.js.map +0 -1
- package/dist/components/Checkbox/index.js.map +0 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js.map +0 -1
- package/dist/components/CheckboxButtonBar/index.js.map +0 -1
- package/dist/components/CheckboxTree/CheckboxTree.js.map +0 -1
- package/dist/components/CheckboxTree/index.js.map +0 -1
- package/dist/components/Chip/Chip.js.map +0 -1
- package/dist/components/Chip/index.js.map +0 -1
- package/dist/components/ControlsButton/ControlsButton.js.map +0 -1
- package/dist/components/ControlsButton/index.js.map +0 -1
- package/dist/components/CopyableText/CopyableText.js.map +0 -1
- package/dist/components/CopyableText/index.js.map +0 -1
- package/dist/components/Drawer/Drawer.js.map +0 -1
- package/dist/components/Drawer/index.js.map +0 -1
- package/dist/components/EmptyStateDataDisplay/EmptyStateDataDisplay.js.map +0 -1
- package/dist/components/EmptyStateDataDisplay/index.js.map +0 -1
- package/dist/components/ExpandableInfoPanel/ExpandableInfoPanel.js.map +0 -1
- package/dist/components/ExpandableInfoPanel/index.js.map +0 -1
- package/dist/components/FeedbackBar/FeedbackBar.js.map +0 -1
- package/dist/components/FeedbackBar/index.js.map +0 -1
- package/dist/components/FeedbackBox/FeedbackBox.js.map +0 -1
- package/dist/components/FeedbackBox/index.js.map +0 -1
- package/dist/components/FieldHint/FieldHint.js.map +0 -1
- package/dist/components/FieldHint/index.js.map +0 -1
- package/dist/components/Fieldset/Fieldset.js.map +0 -1
- package/dist/components/Fieldset/index.js.map +0 -1
- package/dist/components/FormField/FormField.js.map +0 -1
- package/dist/components/FormField/index.js.map +0 -1
- package/dist/components/FormInput/FormInput.js.map +0 -1
- package/dist/components/FormInput/index.js.map +0 -1
- package/dist/components/GridRow/Column/Column.js.map +0 -1
- package/dist/components/GridRow/Column/index.js.map +0 -1
- package/dist/components/GridRow/index.js.map +0 -1
- package/dist/components/HorizontalList/HorizontalList.js.map +0 -1
- package/dist/components/HorizontalList/index.js.map +0 -1
- package/dist/components/Icon/icons/index.js.map +0 -1
- package/dist/components/Icon/index.js.map +0 -1
- package/dist/components/IconButton/IconButton.js.map +0 -1
- package/dist/components/IconButton/index.js.map +0 -1
- package/dist/components/InfoBanner/InfoBanner.js.map +0 -1
- package/dist/components/InfoBanner/index.js.map +0 -1
- package/dist/components/InfoMessage/InfoMessage.js.map +0 -1
- package/dist/components/InfoMessage/index.js.map +0 -1
- package/dist/components/Input/Input.js.map +0 -1
- package/dist/components/Input/index.js.map +0 -1
- package/dist/components/InputField/InputField.js.map +0 -1
- package/dist/components/InputField/index.js.map +0 -1
- package/dist/components/Label/Label.js.map +0 -1
- package/dist/components/Label/index.js.map +0 -1
- package/dist/components/MenuLink/MenuLink.js.map +0 -1
- package/dist/components/MenuLink/index.js.map +0 -1
- package/dist/components/MetaDataBar/MetaDataBar.js.map +0 -1
- package/dist/components/MetaDataBar/index.js.map +0 -1
- package/dist/components/MetaDataList/MetaDataList.js.map +0 -1
- package/dist/components/MetaDataList/index.js.map +0 -1
- package/dist/components/ModalDialog/ModalDialog.js.map +0 -1
- package/dist/components/ModalDialog/index.js.map +0 -1
- package/dist/components/MultiSelect/MultiSelect.js.map +0 -1
- package/dist/components/MultiSelect/components/MultiSelectHeader.js.map +0 -1
- package/dist/components/MultiSelect/components/MultiSelectItem.js.map +0 -1
- package/dist/components/MultiSelect/index.js.map +0 -1
- package/dist/components/MultiSelectBox/MultiSelectBox.js.map +0 -1
- package/dist/components/MultiSelectBox/index.js.map +0 -1
- package/dist/components/Notification/Notification.js.map +0 -1
- package/dist/components/Notification/index.js.map +0 -1
- package/dist/components/OverlayCloseButton/OverlayCloseButton.js.map +0 -1
- package/dist/components/OverlayCloseButton/index.js.map +0 -1
- package/dist/components/OverlayStepBar/OverlayStepBar.js.map +0 -1
- package/dist/components/OverlayStepBar/index.js.map +0 -1
- package/dist/components/PageOverlay/PageOverlay.js.map +0 -1
- package/dist/components/PageOverlay/index.js.map +0 -1
- package/dist/components/PeriodSelector/PeriodSelector.js.map +0 -1
- package/dist/components/PeriodSelector/index.js.map +0 -1
- package/dist/components/Periods/Periods.js.map +0 -1
- package/dist/components/Periods/index.js.map +0 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.js.map +0 -1
- package/dist/components/ProgrammeCard/index.js.map +0 -1
- package/dist/components/RadioButton/RadioButton.js.map +0 -1
- package/dist/components/RadioButton/index.js.map +0 -1
- package/dist/components/RadioGroup/RadioGroup.js.map +0 -1
- package/dist/components/RadioGroup/index.js.map +0 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.js.map +0 -1
- package/dist/components/RadioTabSelector/index.js.map +0 -1
- package/dist/components/Repeater/Repeater.js.map +0 -1
- package/dist/components/Repeater/index.js.map +0 -1
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js.map +0 -1
- package/dist/components/RteEditor/EditorHeader/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/AddCatalogueLinkForm.js.map +0 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/AddCatalogueLinkForm/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/CourseCataloguePlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js.map +0 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js.map +0 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js.map +0 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js.map +0 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/helpers.js.map +0 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/ListPlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/PasteHandlerPlugin.js.map +0 -1
- package/dist/components/RteEditor/Plugins/PasteHandlerPlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/TableCellResizerPlugin.js.map +0 -1
- package/dist/components/RteEditor/Plugins/TableCellResizerPlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js.map +0 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/TableCellContextMenu.js.map +0 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TableCellContextMenu/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js.map +0 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js.map +0 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/index.js.map +0 -1
- package/dist/components/RteEditor/Plugins/index.js.map +0 -1
- package/dist/components/RteEditor/RteEditor.js.map +0 -1
- package/dist/components/RteEditor/UvaTheme/index.js.map +0 -1
- package/dist/components/RteEditor/hooks/components/Flyout.js.map +0 -1
- package/dist/components/RteEditor/index.js.map +0 -1
- package/dist/components/RteEditor/nodes/CourseCatalogueNode/index.js.map +0 -1
- package/dist/components/RteEditor/nodes/TableWrapperNode/index.js.map +0 -1
- package/dist/components/RteEditor/nodes/index.js.map +0 -1
- package/dist/components/SearchField/index.js.map +0 -1
- package/dist/components/SectionNotification/SectionNotification.js.map +0 -1
- package/dist/components/SectionNotification/index.js.map +0 -1
- package/dist/components/SelectListbox/index.js.map +0 -1
- package/dist/components/Slider/Slider.js.map +0 -1
- package/dist/components/Slider/index.js.map +0 -1
- package/dist/components/Sortable/SortableProvider.js.map +0 -1
- package/dist/components/Sortable/components/SortableContainer.js.map +0 -1
- package/dist/components/Sortable/index.js.map +0 -1
- package/dist/components/Spinner/Spinner.js.map +0 -1
- package/dist/components/Spinner/index.js.map +0 -1
- package/dist/components/StatusBadge/StatusBage.js.map +0 -1
- package/dist/components/StatusBadge/index.js.map +0 -1
- package/dist/components/StatusPill/StatusPill.js.map +0 -1
- package/dist/components/StatusPill/index.js.map +0 -1
- package/dist/components/TextArea/TextArea.js.map +0 -1
- package/dist/components/TextArea/index.js.map +0 -1
- package/dist/components/ToggleSwitch/ToggleSwitch.js.map +0 -1
- package/dist/components/ToggleSwitch/index.js.map +0 -1
- package/dist/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/components/Tooltip/index.js.map +0 -1
- package/dist/components/VarIndicator/VarIndicator.js.map +0 -1
- package/dist/components/VarIndicator/index.js.map +0 -1
- package/dist/components/WeekSelector/index.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/index-B_q_4aBT.js +0 -24946
- package/dist/index-B_q_4aBT.js.map +0 -1
- package/dist/index-CULNJwuI.js +0 -2355
- package/dist/index-CULNJwuI.js.map +0 -1
- package/dist/index-D6WVIfcJ.js +0 -6039
- package/dist/index-D6WVIfcJ.js.map +0 -1
- package/dist/index-YdDr6J97.js +0 -3099
- package/dist/index-YdDr6J97.js.map +0 -1
- package/dist/index-yEhaxKq-.js +0 -238
- package/dist/index-yEhaxKq-.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/react-18-CxCoNkIN.js +0 -41
- package/dist/react-18-CxCoNkIN.js.map +0 -1
- package/dist/react.esm-C68fQMAi.js +0 -4237
- package/dist/react.esm-C68fQMAi.js.map +0 -1
- package/dist/storyComponents/ClipboardButton/ClipboardButton.js.map +0 -1
- package/dist/storyComponents/ClipboardButton/index.js.map +0 -1
- package/dist/storyComponents/Container/Container.js.map +0 -1
- package/dist/storyComponents/Container/index.js.map +0 -1
- package/dist/test-utils-BcpWLsLH.js +0 -56
- package/dist/test-utils-BcpWLsLH.js.map +0 -1
- package/dist/types/UserInterface.js.map +0 -1
- package/dist/vite-env.d.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-YdDr6J97.js","sources":["../node_modules/@testing-library/user-event/dist/esm/utils/misc/isElementType.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/getWindow.js","../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/Blob.js","../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/FileList.js","../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/DataTransfer.js","../node_modules/@testing-library/user-event/dist/esm/utils/dataTransfer/Clipboard.js","../node_modules/@testing-library/user-event/dist/esm/utils/focus/selector.js","../node_modules/@testing-library/user-event/dist/esm/utils/focus/isFocusable.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/cloneEvent.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/isDisabled.js","../node_modules/@testing-library/user-event/dist/esm/utils/focus/getActiveElement.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/findClosest.js","../node_modules/@testing-library/user-event/dist/esm/utils/edit/isContentEditable.js","../node_modules/@testing-library/user-event/dist/esm/utils/click/isClickableInput.js","../node_modules/@testing-library/user-event/dist/esm/utils/edit/isEditable.js","../node_modules/@testing-library/user-event/dist/esm/utils/focus/selection.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/updateSelectionOnFocus.js","../node_modules/@testing-library/user-event/dist/esm/event/wrapEvent.js","../node_modules/@testing-library/user-event/dist/esm/event/focus.js","../node_modules/@testing-library/user-event/dist/esm/event/behavior/registry.js","../node_modules/@testing-library/user-event/dist/esm/event/behavior/click.js","../node_modules/@testing-library/user-event/dist/esm/document/UI.js","../node_modules/@testing-library/user-event/dist/esm/utils/edit/timeValue.js","../node_modules/@testing-library/user-event/dist/esm/utils/edit/maxLength.js","../node_modules/@testing-library/user-event/dist/esm/utils/focus/cursor.js","../node_modules/@testing-library/user-event/dist/esm/document/trackValue.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/getTargetTypeAndSelection.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/getInputRange.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/setSelection.js","../node_modules/@testing-library/user-event/dist/esm/event/input.js","../node_modules/@testing-library/user-event/dist/esm/event/behavior/cut.js","../node_modules/@testing-library/user-event/dist/esm/document/getValueOrTextContent.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/isVisible.js","../node_modules/@testing-library/user-event/dist/esm/utils/focus/getTabDestination.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/moveSelection.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/selectAll.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/setSelectionRange.js","../node_modules/@testing-library/user-event/dist/esm/event/radio.js","../node_modules/@testing-library/user-event/dist/esm/event/behavior/keydown.js","../node_modules/@testing-library/user-event/dist/esm/event/behavior/keypress.js","../node_modules/@testing-library/user-event/dist/esm/event/behavior/keyup.js","../node_modules/@testing-library/user-event/dist/esm/event/behavior/paste.js","../node_modules/@testing-library/user-event/dist/esm/event/eventMap.js","../node_modules/@testing-library/user-event/dist/esm/event/createEvent.js","../node_modules/@testing-library/user-event/dist/esm/event/dispatchEvent.js","../node_modules/@testing-library/user-event/dist/esm/document/patchFocus.js","../node_modules/@testing-library/user-event/dist/esm/document/interceptor.js","../node_modules/@testing-library/user-event/dist/esm/document/prepareDocument.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/getDocumentFromNode.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/level.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/wait.js","../node_modules/@testing-library/user-event/dist/esm/options.js","../node_modules/@testing-library/user-event/dist/esm/system/keyboard.js","../node_modules/@testing-library/user-event/dist/esm/keyboard/keyMap.js","../node_modules/@testing-library/user-event/dist/esm/pointer/keyMap.js","../node_modules/@testing-library/user-event/dist/esm/system/pointer/buttons.js","../node_modules/@testing-library/user-event/dist/esm/system/pointer/device.js","../node_modules/@testing-library/user-event/dist/esm/utils/misc/getTreeDiff.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/resolveCaretPosition.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/setSelectionPerMouse.js","../node_modules/@testing-library/user-event/dist/esm/event/selection/modifySelectionPerMouse.js","../node_modules/@testing-library/user-event/dist/esm/system/pointer/shared.js","../node_modules/@testing-library/user-event/dist/esm/system/pointer/mouse.js","../node_modules/@testing-library/user-event/dist/esm/utils/pointer/cssPointerEvents.js","../node_modules/@testing-library/user-event/dist/esm/system/pointer/pointer.js","../node_modules/@testing-library/user-event/dist/esm/system/pointer/index.js","../node_modules/@testing-library/user-event/dist/esm/system/index.js","../node_modules/@testing-library/user-event/dist/esm/convenience/click.js","../node_modules/@testing-library/user-event/dist/esm/convenience/hover.js","../node_modules/@testing-library/user-event/dist/esm/convenience/tab.js","../node_modules/@testing-library/user-event/dist/esm/utils/keyDef/readNextDescriptor.js","../node_modules/@testing-library/user-event/dist/esm/keyboard/parseKeyDef.js","../node_modules/@testing-library/user-event/dist/esm/keyboard/index.js","../node_modules/@testing-library/user-event/dist/esm/document/copySelection.js","../node_modules/@testing-library/user-event/dist/esm/clipboard/copy.js","../node_modules/@testing-library/user-event/dist/esm/clipboard/cut.js","../node_modules/@testing-library/user-event/dist/esm/clipboard/paste.js","../node_modules/@testing-library/user-event/dist/esm/pointer/parseKeyDef.js","../node_modules/@testing-library/user-event/dist/esm/pointer/index.js","../node_modules/@testing-library/user-event/dist/esm/utility/clear.js","../node_modules/@testing-library/user-event/dist/esm/utility/selectOptions.js","../node_modules/@testing-library/user-event/dist/esm/utility/type.js","../node_modules/@testing-library/user-event/dist/esm/utils/edit/setFiles.js","../node_modules/@testing-library/user-event/dist/esm/utility/upload.js","../node_modules/@testing-library/user-event/dist/esm/setup/api.js","../node_modules/@testing-library/user-event/dist/esm/setup/wrapAsync.js","../node_modules/@testing-library/user-event/dist/esm/setup/setup.js","../node_modules/@testing-library/user-event/dist/esm/setup/directApi.js","../node_modules/@testing-library/user-event/dist/esm/setup/index.js"],"sourcesContent":["function isElementType(element, tag, props) {\n if (element.namespaceURI && element.namespaceURI !== 'http://www.w3.org/1999/xhtml') {\n return false;\n }\n tag = Array.isArray(tag) ? tag : [\n tag\n ];\n // tagName is uppercase in HTMLDocument and lowercase in XMLDocument\n if (!tag.includes(element.tagName.toLowerCase())) {\n return false;\n }\n if (props) {\n return Object.entries(props).every(([k, v])=>element[k] === v);\n }\n return true;\n}\n\nexport { isElementType };\n","function getWindow(node) {\n var _node_ownerDocument;\n if (isDocument(node) && node.defaultView) {\n return node.defaultView;\n } else if ((_node_ownerDocument = node.ownerDocument) === null || _node_ownerDocument === undefined ? undefined : _node_ownerDocument.defaultView) {\n return node.ownerDocument.defaultView;\n }\n throw new Error(`Could not determine window of node. Node was ${describe(node)}`);\n}\nfunction isDocument(node) {\n return node.nodeType === 9;\n}\nfunction describe(val) {\n return typeof val === 'function' ? `function ${val.name}` : val === null ? 'null' : String(val);\n}\n\nexport { getWindow };\n","// jsdom does not implement Blob.text()\nfunction readBlobText(blob, FileReader) {\n return new Promise((res, rej)=>{\n const fr = new FileReader();\n fr.onerror = rej;\n fr.onabort = rej;\n fr.onload = ()=>{\n res(String(fr.result));\n };\n fr.readAsText(blob);\n });\n}\n\nexport { readBlobText };\n","// FileList can not be created per constructor.\nfunction createFileList(window, files) {\n const list = {\n ...files,\n length: files.length,\n item: (index)=>list[index],\n [Symbol.iterator]: function* nextFile() {\n for(let i = 0; i < list.length; i++){\n yield list[i];\n }\n }\n };\n list.constructor = window.FileList;\n // guard for environments without FileList\n /* istanbul ignore else */ if (window.FileList) {\n Object.setPrototypeOf(list, window.FileList.prototype);\n }\n Object.freeze(list);\n return list;\n}\n\nexport { createFileList };\n","import { createFileList } from './FileList.js';\n\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n// DataTransfer is not implemented in jsdom.\n// DataTransfer with FileList is being created by the browser on certain events.\nclass DataTransferItemStub {\n getAsFile() {\n return this.file;\n }\n getAsString(callback) {\n if (typeof this.data === 'string') {\n callback(this.data);\n }\n }\n /* istanbul ignore next */ webkitGetAsEntry() {\n throw new Error('not implemented');\n }\n constructor(dataOrFile, type){\n _define_property(this, \"kind\", undefined);\n _define_property(this, \"type\", undefined);\n _define_property(this, \"file\", null);\n _define_property(this, \"data\", undefined);\n if (typeof dataOrFile === 'string') {\n this.kind = 'string';\n this.type = String(type);\n this.data = dataOrFile;\n } else {\n this.kind = 'file';\n this.type = dataOrFile.type;\n this.file = dataOrFile;\n }\n }\n}\nclass DataTransferItemListStub extends Array {\n add(...args) {\n const item = new DataTransferItemStub(args[0], args[1]);\n this.push(item);\n return item;\n }\n clear() {\n this.splice(0, this.length);\n }\n remove(index) {\n this.splice(index, 1);\n }\n}\nfunction getTypeMatcher(type, exact) {\n const [group, sub] = type.split('/');\n const isGroup = !sub || sub === '*';\n return (item)=>{\n return exact ? item.type === (isGroup ? group : type) : isGroup ? item.type.startsWith(`${group}/`) : item.type === group;\n };\n}\nfunction createDataTransferStub(window) {\n return new class DataTransferStub {\n getData(format) {\n var _this_items_find;\n const match = (_this_items_find = this.items.find(getTypeMatcher(format, true))) !== null && _this_items_find !== undefined ? _this_items_find : this.items.find(getTypeMatcher(format, false));\n let text = '';\n match === null || match === undefined ? undefined : match.getAsString((t)=>{\n text = t;\n });\n return text;\n }\n setData(format, data) {\n const matchIndex = this.items.findIndex(getTypeMatcher(format, true));\n const item = new DataTransferItemStub(data, format);\n if (matchIndex >= 0) {\n this.items.splice(matchIndex, 1, item);\n } else {\n this.items.push(item);\n }\n }\n clearData(format) {\n if (format) {\n const matchIndex = this.items.findIndex(getTypeMatcher(format, true));\n if (matchIndex >= 0) {\n this.items.remove(matchIndex);\n }\n } else {\n this.items.clear();\n }\n }\n get types() {\n const t = [];\n if (this.files.length) {\n t.push('Files');\n }\n this.items.forEach((i)=>t.push(i.type));\n Object.freeze(t);\n return t;\n }\n /* istanbul ignore next */ setDragImage() {}\n constructor(){\n _define_property(this, \"dropEffect\", 'none');\n _define_property(this, \"effectAllowed\", 'uninitialized');\n _define_property(this, \"items\", new DataTransferItemListStub());\n _define_property(this, \"files\", createFileList(window, []));\n }\n }();\n}\nfunction createDataTransfer(window, files = []) {\n // Use real DataTransfer if available\n const dt = typeof window.DataTransfer === 'undefined' ? createDataTransferStub(window) : /* istanbul ignore next */ new window.DataTransfer();\n Object.defineProperty(dt, 'files', {\n get: ()=>createFileList(window, files)\n });\n return dt;\n}\nasync function getBlobFromDataTransferItem(window, item) {\n if (item.kind === 'file') {\n return item.getAsFile();\n }\n return new window.Blob([\n await new Promise((r)=>item.getAsString(r))\n ], {\n type: item.type\n });\n}\n\nexport { createDataTransfer, getBlobFromDataTransferItem };\n","import { getWindow } from '../misc/getWindow.js';\nimport { readBlobText } from './Blob.js';\nimport { createDataTransfer, getBlobFromDataTransferItem } from './DataTransfer.js';\n\n// Clipboard is not available in jsdom\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n// MDN lists string|Blob|Promise<Blob|string> as possible types in ClipboardItemData\n// lib.dom.d.ts lists only Promise<Blob|string>\n// https://developer.mozilla.org/en-US/docs/Web/API/ClipboardItem/ClipboardItem#syntax\nfunction createClipboardItem(window, ...blobs) {\n const dataMap = Object.fromEntries(blobs.map((b)=>[\n typeof b === 'string' ? 'text/plain' : b.type,\n Promise.resolve(b)\n ]));\n // use real ClipboardItem if available\n /* istanbul ignore if */ if (typeof window.ClipboardItem !== 'undefined') {\n return new window.ClipboardItem(dataMap);\n }\n return new class ClipboardItem {\n get types() {\n return Array.from(Object.keys(this.data));\n }\n async getType(type) {\n const value = await this.data[type];\n if (!value) {\n throw new Error(`${type} is not one of the available MIME types on this item.`);\n }\n return value instanceof window.Blob ? value : new window.Blob([\n value\n ], {\n type\n });\n }\n constructor(d){\n _define_property(this, \"data\", undefined);\n this.data = d;\n }\n }(dataMap);\n}\nconst ClipboardStubControl = Symbol('Manage ClipboardSub');\nfunction createClipboardStub(window, control) {\n return Object.assign(new class Clipboard extends window.EventTarget {\n async read() {\n return Array.from(this.items);\n }\n async readText() {\n let text = '';\n for (const item of this.items){\n const type = item.types.includes('text/plain') ? 'text/plain' : item.types.find((t)=>t.startsWith('text/'));\n if (type) {\n text += await item.getType(type).then((b)=>readBlobText(b, window.FileReader));\n }\n }\n return text;\n }\n async write(data) {\n this.items = data;\n }\n async writeText(text) {\n this.items = [\n createClipboardItem(window, text)\n ];\n }\n constructor(...args){\n super(...args), _define_property(this, \"items\", []);\n }\n }(), {\n [ClipboardStubControl]: control\n });\n}\nfunction isClipboardStub(clipboard) {\n return !!(clipboard === null || clipboard === undefined ? undefined : clipboard[ClipboardStubControl]);\n}\nfunction attachClipboardStubToView(window) {\n if (isClipboardStub(window.navigator.clipboard)) {\n return window.navigator.clipboard[ClipboardStubControl];\n }\n const realClipboard = Object.getOwnPropertyDescriptor(window.navigator, 'clipboard');\n let stub;\n const control = {\n resetClipboardStub: ()=>{\n stub = createClipboardStub(window, control);\n },\n detachClipboardStub: ()=>{\n /* istanbul ignore if */ if (realClipboard) {\n Object.defineProperty(window.navigator, 'clipboard', realClipboard);\n } else {\n Object.defineProperty(window.navigator, 'clipboard', {\n value: undefined,\n configurable: true\n });\n }\n }\n };\n stub = createClipboardStub(window, control);\n Object.defineProperty(window.navigator, 'clipboard', {\n get: ()=>stub,\n configurable: true\n });\n return stub[ClipboardStubControl];\n}\nfunction resetClipboardStubOnView(window) {\n if (isClipboardStub(window.navigator.clipboard)) {\n window.navigator.clipboard[ClipboardStubControl].resetClipboardStub();\n }\n}\nfunction detachClipboardStubFromView(window) {\n if (isClipboardStub(window.navigator.clipboard)) {\n window.navigator.clipboard[ClipboardStubControl].detachClipboardStub();\n }\n}\nasync function readDataTransferFromClipboard(document) {\n const window = document.defaultView;\n const clipboard = window === null || window === undefined ? undefined : window.navigator.clipboard;\n const items = clipboard && await clipboard.read();\n if (!items) {\n throw new Error('The Clipboard API is unavailable.');\n }\n const dt = createDataTransfer(window);\n for (const item of items){\n for (const type of item.types){\n dt.setData(type, await item.getType(type).then((b)=>readBlobText(b, window.FileReader)));\n }\n }\n return dt;\n}\nasync function writeDataTransferToClipboard(document, clipboardData) {\n const window = getWindow(document);\n const clipboard = window.navigator.clipboard;\n const items = [];\n for(let i = 0; i < clipboardData.items.length; i++){\n const dtItem = clipboardData.items[i];\n const blob = await getBlobFromDataTransferItem(window, dtItem);\n items.push(createClipboardItem(window, blob));\n }\n const written = clipboard && await clipboard.write(items).then(()=>true, // Can happen with other implementations that e.g. require permissions\n /* istanbul ignore next */ ()=>false);\n if (!written) {\n throw new Error('The Clipboard API is unavailable.');\n }\n}\nconst g = globalThis;\n/* istanbul ignore else */ if (typeof g.afterEach === 'function') {\n g.afterEach(()=>resetClipboardStubOnView(globalThis.window));\n}\n/* istanbul ignore else */ if (typeof g.afterAll === 'function') {\n g.afterAll(()=>detachClipboardStubFromView(globalThis.window));\n}\n\nexport { attachClipboardStubToView, createClipboardItem, detachClipboardStubFromView, readDataTransferFromClipboard, resetClipboardStubOnView, writeDataTransferToClipboard };\n","const FOCUSABLE_SELECTOR = [\n 'input:not([type=hidden]):not([disabled])',\n 'button:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[contenteditable=\"\"]',\n '[contenteditable=\"true\"]',\n 'a[href]',\n '[tabindex]:not([disabled])'\n].join(', ');\n\nexport { FOCUSABLE_SELECTOR };\n","import { FOCUSABLE_SELECTOR } from './selector.js';\n\nfunction isFocusable(element) {\n return element.matches(FOCUSABLE_SELECTOR);\n}\n\nexport { isFocusable };\n","function cloneEvent(event) {\n return new event.constructor(event.type, event);\n}\n\nexport { cloneEvent };\n","import { isElementType } from './isElementType.js';\n\n// This should probably just rely on the :disabled pseudo-class, but JSDOM doesn't implement it properly.\nfunction isDisabled(element) {\n for(let el = element; el; el = el.parentElement){\n if (isElementType(el, [\n 'button',\n 'input',\n 'select',\n 'textarea',\n 'optgroup',\n 'option'\n ])) {\n if (el.hasAttribute('disabled')) {\n return true;\n }\n } else if (isElementType(el, 'fieldset')) {\n var _el_querySelector;\n if (el.hasAttribute('disabled') && !((_el_querySelector = el.querySelector(':scope > legend')) === null || _el_querySelector === undefined ? undefined : _el_querySelector.contains(element))) {\n return true;\n }\n } else if (el.tagName.includes('-')) {\n if (el.constructor.formAssociated && el.hasAttribute('disabled')) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport { isDisabled };\n","import { isDisabled } from '../misc/isDisabled.js';\n\nfunction getActiveElement(document) {\n const activeElement = document.activeElement;\n if (activeElement === null || activeElement === undefined ? undefined : activeElement.shadowRoot) {\n return getActiveElement(activeElement.shadowRoot);\n } else {\n // Browser does not yield disabled elements as document.activeElement - jsdom does\n if (isDisabled(activeElement)) {\n return document.ownerDocument ? /* istanbul ignore next */ document.ownerDocument.body : document.body;\n }\n return activeElement;\n }\n}\nfunction getActiveElementOrBody(document) {\n var _getActiveElement;\n return (_getActiveElement = getActiveElement(document)) !== null && _getActiveElement !== undefined ? _getActiveElement : /* istanbul ignore next */ document.body;\n}\n\nexport { getActiveElement, getActiveElementOrBody };\n","function findClosest(element, callback) {\n let el = element;\n do {\n if (callback(el)) {\n return el;\n }\n el = el.parentElement;\n }while (el && el !== element.ownerDocument.body)\n return undefined;\n}\n\nexport { findClosest };\n","//jsdom is not supporting isContentEditable\nfunction isContentEditable(element) {\n return element.hasAttribute('contenteditable') && (element.getAttribute('contenteditable') == 'true' || element.getAttribute('contenteditable') == '');\n}\n/**\n * If a node is a contenteditable or inside one, return that element.\n */ function getContentEditable(node) {\n const element = getElement(node);\n return element && (element.closest('[contenteditable=\"\"]') || element.closest('[contenteditable=\"true\"]'));\n}\nfunction getElement(node) {\n return node.nodeType === 1 ? node : node.parentElement;\n}\n\nexport { getContentEditable, isContentEditable };\n","import { isElementType } from '../misc/isElementType.js';\n\nvar clickableInputTypes = /*#__PURE__*/ function(clickableInputTypes) {\n clickableInputTypes[\"button\"] = \"button\";\n clickableInputTypes[\"color\"] = \"color\";\n clickableInputTypes[\"file\"] = \"file\";\n clickableInputTypes[\"image\"] = \"image\";\n clickableInputTypes[\"reset\"] = \"reset\";\n clickableInputTypes[\"submit\"] = \"submit\";\n clickableInputTypes[\"checkbox\"] = \"checkbox\";\n clickableInputTypes[\"radio\"] = \"radio\";\n return clickableInputTypes;\n}(clickableInputTypes || {});\nfunction isClickableInput(element) {\n return isElementType(element, 'button') || isElementType(element, 'input') && element.type in clickableInputTypes;\n}\n\nexport { isClickableInput };\n","import { isElementType } from '../misc/isElementType.js';\nimport { isContentEditable } from './isContentEditable.js';\n\nfunction isEditable(element) {\n return isEditableInputOrTextArea(element) && !element.readOnly || isContentEditable(element);\n}\nvar editableInputTypes = /*#__PURE__*/ function(editableInputTypes) {\n editableInputTypes[\"text\"] = \"text\";\n editableInputTypes[\"date\"] = \"date\";\n editableInputTypes[\"datetime-local\"] = \"datetime-local\";\n editableInputTypes[\"email\"] = \"email\";\n editableInputTypes[\"month\"] = \"month\";\n editableInputTypes[\"number\"] = \"number\";\n editableInputTypes[\"password\"] = \"password\";\n editableInputTypes[\"search\"] = \"search\";\n editableInputTypes[\"tel\"] = \"tel\";\n editableInputTypes[\"time\"] = \"time\";\n editableInputTypes[\"url\"] = \"url\";\n editableInputTypes[\"week\"] = \"week\";\n return editableInputTypes;\n}(editableInputTypes || {});\nfunction isEditableInputOrTextArea(element) {\n return isElementType(element, 'textarea') || isElementType(element, 'input') && element.type in editableInputTypes;\n}\n\nexport { isEditable, isEditableInputOrTextArea };\n","import { isClickableInput } from '../click/isClickableInput.js';\nimport { isEditableInputOrTextArea } from '../edit/isEditable.js';\n\n/**\n * Determine if the element has its own selection implementation\n * and does not interact with the Document Selection API.\n */ function hasOwnSelection(node) {\n return isElement(node) && isEditableInputOrTextArea(node);\n}\nfunction hasNoSelection(node) {\n return isElement(node) && isClickableInput(node);\n}\nfunction isElement(node) {\n return node.nodeType === 1;\n}\n\nexport { hasNoSelection, hasOwnSelection };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { getContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\n\n// The browser implementation seems to have changed.\n// When focus is inside <input type=\"text\"/>,\n// Chrome updates Selection to be collapsed at the position of the input element.\n// TODO: update implementation to match that of current browsers\n/**\n * Reset the Document Selection when moving focus into an element\n * with own selection implementation.\n */ function updateSelectionOnFocus(element) {\n const selection = element.ownerDocument.getSelection();\n /* istanbul ignore if */ if (!(selection === null || selection === undefined ? undefined : selection.focusNode)) {\n return;\n }\n // If the focus moves inside an element with own selection implementation,\n // the document selection will be this element.\n // But if the focused element is inside a contenteditable,\n // 1) a collapsed selection will be retained.\n // 2) other selections will be replaced by a cursor\n // 2.a) at the start of the first child if it is a text node\n // 2.b) at the start of the contenteditable.\n if (hasOwnSelection(element)) {\n const contenteditable = getContentEditable(selection.focusNode);\n if (contenteditable) {\n if (!selection.isCollapsed) {\n var _contenteditable_firstChild;\n const focusNode = ((_contenteditable_firstChild = contenteditable.firstChild) === null || _contenteditable_firstChild === undefined ? undefined : _contenteditable_firstChild.nodeType) === 3 ? contenteditable.firstChild : contenteditable;\n selection.setBaseAndExtent(focusNode, 0, focusNode, 0);\n }\n } else {\n selection.setBaseAndExtent(element, 0, element, 0);\n }\n }\n}\n\nexport { updateSelectionOnFocus };\n","import { getConfig } from '@testing-library/dom';\n\nfunction wrapEvent(cb, _element) {\n return getConfig().eventWrapper(cb);\n}\n\nexport { wrapEvent };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getActiveElement } from '../utils/focus/getActiveElement.js';\nimport { isFocusable } from '../utils/focus/isFocusable.js';\nimport { findClosest } from '../utils/misc/findClosest.js';\nimport { updateSelectionOnFocus } from './selection/updateSelectionOnFocus.js';\nimport { wrapEvent } from './wrapEvent.js';\n\n// Browsers do not dispatch FocusEvent if the document does not have focus.\n// TODO: simulate FocusEvent in browsers\n/**\n * Focus closest focusable element.\n */ function focusElement(element) {\n const target = findClosest(element, isFocusable);\n const activeElement = getActiveElement(element.ownerDocument);\n if ((target !== null && target !== undefined ? target : element.ownerDocument.body) === activeElement) {\n return;\n } else if (target) {\n wrapEvent(()=>target.focus());\n } else {\n wrapEvent(()=>activeElement === null || activeElement === undefined ? undefined : activeElement.blur());\n }\n updateSelectionOnFocus(target !== null && target !== undefined ? target : element.ownerDocument.body);\n}\nfunction blurElement(element) {\n if (!isFocusable(element)) return;\n const wasActive = getActiveElement(element.ownerDocument) === element;\n if (!wasActive) return;\n wrapEvent(()=>element.blur());\n}\n\nexport { blurElement, focusElement };\n","const behavior = {};\n\nexport { behavior };\n","import { isElementType } from '../../utils/misc/isElementType.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../../utils/misc/getWindow.js';\nimport { isFocusable } from '../../utils/focus/isFocusable.js';\nimport { cloneEvent } from '../../utils/misc/cloneEvent.js';\nimport { focusElement, blurElement } from '../focus.js';\nimport { behavior } from './registry.js';\n\nbehavior.click = (event, target, instance)=>{\n const context = target.closest('button,input,label,select,textarea');\n const control = context && isElementType(context, 'label') && context.control;\n if (control && control !== target) {\n return ()=>{\n if (isFocusable(control)) {\n focusElement(control);\n instance.dispatchEvent(control, cloneEvent(event));\n }\n };\n } else if (isElementType(target, 'input', {\n type: 'file'\n })) {\n return ()=>{\n // blur fires when the file selector pops up\n blurElement(target);\n target.dispatchEvent(new (getWindow(target)).Event('fileDialog'));\n // focus fires after the file selector has been closed\n focusElement(target);\n };\n }\n};\n","const UIValue = Symbol('Displayed value in UI');\nconst UISelection = Symbol('Displayed selection in UI');\nconst InitialValue = Symbol('Initial value to compare on blur');\nfunction isUIValue(value) {\n return typeof value === 'object' && UIValue in value;\n}\nfunction isUISelectionStart(start) {\n return !!start && typeof start === 'object' && UISelection in start;\n}\nfunction setUIValue(element, value) {\n if (element[InitialValue] === undefined) {\n element[InitialValue] = element.value;\n }\n element[UIValue] = value;\n // eslint-disable-next-line no-new-wrappers\n element.value = Object.assign(new String(value), {\n [UIValue]: true\n });\n}\nfunction getUIValue(element) {\n return element[UIValue] === undefined ? element.value : String(element[UIValue]);\n}\n/** Flag the IDL value as clean. This does not change the value.*/ function setUIValueClean(element) {\n element[UIValue] = undefined;\n}\nfunction clearInitialValue(element) {\n element[InitialValue] = undefined;\n}\nfunction getInitialValue(element) {\n return element[InitialValue];\n}\nfunction setUISelectionRaw(element, selection) {\n element[UISelection] = selection;\n}\nfunction setUISelection(element, { focusOffset: focusOffsetParam, anchorOffset: anchorOffsetParam = focusOffsetParam }, mode = 'replace') {\n const valueLength = getUIValue(element).length;\n const sanitizeOffset = (o)=>Math.max(0, Math.min(valueLength, o));\n const anchorOffset = mode === 'replace' || element[UISelection] === undefined ? sanitizeOffset(anchorOffsetParam) : element[UISelection].anchorOffset;\n const focusOffset = sanitizeOffset(focusOffsetParam);\n const startOffset = Math.min(anchorOffset, focusOffset);\n const endOffset = Math.max(anchorOffset, focusOffset);\n element[UISelection] = {\n anchorOffset,\n focusOffset\n };\n if (element.selectionStart === startOffset && element.selectionEnd === endOffset) {\n return;\n }\n // eslint-disable-next-line no-new-wrappers\n const startObj = Object.assign(new Number(startOffset), {\n [UISelection]: true\n });\n try {\n element.setSelectionRange(startObj, endOffset);\n } catch {\n // DOMException for invalid state is expected when calling this\n // on an element without support for setSelectionRange\n }\n}\nfunction getUISelection(element) {\n var _element_selectionStart, _element_selectionEnd, _element_UISelection;\n const sel = (_element_UISelection = element[UISelection]) !== null && _element_UISelection !== undefined ? _element_UISelection : {\n anchorOffset: (_element_selectionStart = element.selectionStart) !== null && _element_selectionStart !== undefined ? _element_selectionStart : 0,\n focusOffset: (_element_selectionEnd = element.selectionEnd) !== null && _element_selectionEnd !== undefined ? _element_selectionEnd : 0\n };\n return {\n ...sel,\n startOffset: Math.min(sel.anchorOffset, sel.focusOffset),\n endOffset: Math.max(sel.anchorOffset, sel.focusOffset)\n };\n}\nfunction hasUISelection(element) {\n return !!element[UISelection];\n}\n/** Flag the IDL selection as clean. This does not change the selection. */ function setUISelectionClean(element) {\n element[UISelection] = undefined;\n}\n\nexport { clearInitialValue, getInitialValue, getUISelection, getUIValue, hasUISelection, isUISelectionStart, isUIValue, setUISelection, setUISelectionClean, setUISelectionRaw, setUIValue, setUIValueClean };\n","const parseInt = globalThis.parseInt;\nfunction buildTimeValue(value) {\n const onlyDigitsValue = value.replace(/\\D/g, '');\n if (onlyDigitsValue.length < 2) {\n return value;\n }\n const firstDigit = parseInt(onlyDigitsValue[0], 10);\n const secondDigit = parseInt(onlyDigitsValue[1], 10);\n if (firstDigit >= 3 || firstDigit === 2 && secondDigit >= 4) {\n let index;\n if (firstDigit >= 3) {\n index = 1;\n } else {\n index = 2;\n }\n return build(onlyDigitsValue, index);\n }\n if (value.length === 2) {\n return value;\n }\n return build(onlyDigitsValue, 2);\n}\nfunction build(onlyDigitsValue, index) {\n const hours = onlyDigitsValue.slice(0, index);\n const validHours = Math.min(parseInt(hours, 10), 23);\n const minuteCharacters = onlyDigitsValue.slice(index);\n const parsedMinutes = parseInt(minuteCharacters, 10);\n const validMinutes = Math.min(parsedMinutes, 59);\n return `${validHours.toString().padStart(2, '0')}:${validMinutes.toString().padStart(2, '0')}`;\n}\nfunction isValidDateOrTimeValue(element, value) {\n const clone = element.cloneNode();\n clone.value = value;\n return clone.value === value;\n}\n\nexport { buildTimeValue, isValidDateOrTimeValue };\n","import { isElementType } from '../misc/isElementType.js';\n\nvar maxLengthSupportedTypes = /*#__PURE__*/ function(maxLengthSupportedTypes) {\n maxLengthSupportedTypes[\"email\"] = \"email\";\n maxLengthSupportedTypes[\"password\"] = \"password\";\n maxLengthSupportedTypes[\"search\"] = \"search\";\n maxLengthSupportedTypes[\"telephone\"] = \"telephone\";\n maxLengthSupportedTypes[\"text\"] = \"text\";\n maxLengthSupportedTypes[\"url\"] = \"url\";\n return maxLengthSupportedTypes;\n}(maxLengthSupportedTypes || {});\n// can't use .maxLength property because of a jsdom bug:\n// https://github.com/jsdom/jsdom/issues/2927\nfunction getMaxLength(element) {\n var _element_getAttribute;\n const attr = (_element_getAttribute = element.getAttribute('maxlength')) !== null && _element_getAttribute !== undefined ? _element_getAttribute : '';\n return /^\\d+$/.test(attr) && Number(attr) >= 0 ? Number(attr) : undefined;\n}\nfunction supportsMaxLength(element) {\n return isElementType(element, 'textarea') || isElementType(element, 'input') && element.type in maxLengthSupportedTypes;\n}\n\nexport { getMaxLength, supportsMaxLength };\n","import { isContentEditable } from '../edit/isContentEditable.js';\nimport { isElementType } from '../misc/isElementType.js';\n\nfunction getNextCursorPosition(node, offset, direction, inputType) {\n // The behavior at text node zero offset is inconsistent.\n // When walking backwards:\n // Firefox always moves to zero offset and jumps over last offset.\n // Chrome jumps over zero offset per default but over last offset when Shift is pressed.\n // The cursor always moves to zero offset if the focus area (contenteditable or body) ends there.\n // When walking forward both ignore zero offset.\n // When walking over input elements the cursor moves before or after that element.\n // When walking over line breaks the cursor moves inside any following text node.\n if (isTextNode(node) && offset + direction >= 0 && offset + direction <= node.nodeValue.length) {\n return {\n node,\n offset: offset + direction\n };\n }\n const nextNode = getNextCharacterContentNode(node, offset, direction);\n if (nextNode) {\n if (isTextNode(nextNode)) {\n return {\n node: nextNode,\n offset: direction > 0 ? Math.min(1, nextNode.nodeValue.length) : Math.max(nextNode.nodeValue.length - 1, 0)\n };\n } else if (isElementType(nextNode, 'br')) {\n const nextPlusOne = getNextCharacterContentNode(nextNode, undefined, direction);\n if (!nextPlusOne) {\n // The behavior when there is no possible cursor position beyond the line break is inconsistent.\n // In Chrome outside of contenteditable moving before a leading line break is possible.\n // A leading line break can still be removed per deleteContentBackward.\n // A trailing line break on the other hand is not removed by deleteContentForward.\n if (direction < 0 && inputType === 'deleteContentBackward') {\n return {\n node: nextNode.parentNode,\n offset: getOffset(nextNode)\n };\n }\n return undefined;\n } else if (isTextNode(nextPlusOne)) {\n return {\n node: nextPlusOne,\n offset: direction > 0 ? 0 : nextPlusOne.nodeValue.length\n };\n } else if (direction < 0 && isElementType(nextPlusOne, 'br')) {\n return {\n node: nextNode.parentNode,\n offset: getOffset(nextNode)\n };\n } else {\n return {\n node: nextPlusOne.parentNode,\n offset: getOffset(nextPlusOne) + (direction > 0 ? 0 : 1)\n };\n }\n } else {\n return {\n node: nextNode.parentNode,\n offset: getOffset(nextNode) + (direction > 0 ? 1 : 0)\n };\n }\n }\n}\nfunction getNextCharacterContentNode(node, offset, direction) {\n const nextOffset = Number(offset) + (direction < 0 ? -1 : 0);\n if (offset !== undefined && isElement(node) && nextOffset >= 0 && nextOffset < node.children.length) {\n node = node.children[nextOffset];\n }\n return walkNodes(node, direction === 1 ? 'next' : 'previous', isTreatedAsCharacterContent);\n}\nfunction isTreatedAsCharacterContent(node) {\n if (isTextNode(node)) {\n return true;\n }\n if (isElement(node)) {\n if (isElementType(node, [\n 'input',\n 'textarea'\n ])) {\n return node.type !== 'hidden';\n } else if (isElementType(node, 'br')) {\n return true;\n }\n }\n return false;\n}\nfunction getOffset(node) {\n let i = 0;\n while(node.previousSibling){\n i++;\n node = node.previousSibling;\n }\n return i;\n}\nfunction isElement(node) {\n return node.nodeType === 1;\n}\nfunction isTextNode(node) {\n return node.nodeType === 3;\n}\nfunction walkNodes(node, direction, callback) {\n for(;;){\n var _node_ownerDocument;\n const sibling = node[`${direction}Sibling`];\n if (sibling) {\n node = getDescendant(sibling, direction === 'next' ? 'first' : 'last');\n if (callback(node)) {\n return node;\n }\n } else if (node.parentNode && (!isElement(node.parentNode) || !isContentEditable(node.parentNode) && node.parentNode !== ((_node_ownerDocument = node.ownerDocument) === null || _node_ownerDocument === undefined ? undefined : _node_ownerDocument.body))) {\n node = node.parentNode;\n } else {\n break;\n }\n }\n}\nfunction getDescendant(node, direction) {\n while(node.hasChildNodes()){\n node = node[`${direction}Child`];\n }\n return node;\n}\n\nexport { getNextCursorPosition };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { setUIValueClean, setUISelection, hasUISelection } from './UI.js';\n\nconst TrackChanges = Symbol('Track programmatic changes for React workaround');\n// When the input event happens in the browser, React executes all event handlers\n// and if they change state of a controlled value, nothing happens.\n// But when we trigger the event handlers in test environment with React@17,\n// the changes are rolled back before the state update is applied.\n// This results in a reset cursor.\n// There might be a better way to work around if we figure out\n// why the batched update is executed differently in our test environment.\nfunction isReact17Element(element) {\n return Object.getOwnPropertyNames(element).some((k)=>k.startsWith('__react')) && getWindow(element).REACT_VERSION === 17;\n}\nfunction startTrackValue(element) {\n if (!isReact17Element(element)) {\n return;\n }\n element[TrackChanges] = {\n previousValue: String(element.value),\n tracked: []\n };\n}\nfunction trackOrSetValue(element, v) {\n var _element_TrackChanges_tracked, _element_TrackChanges;\n (_element_TrackChanges = element[TrackChanges]) === null || _element_TrackChanges === undefined ? undefined : (_element_TrackChanges_tracked = _element_TrackChanges.tracked) === null || _element_TrackChanges_tracked === undefined ? undefined : _element_TrackChanges_tracked.push(v);\n if (!element[TrackChanges]) {\n setUIValueClean(element);\n setUISelection(element, {\n focusOffset: v.length\n });\n }\n}\nfunction commitValueAfterInput(element, cursorOffset) {\n var _changes_tracked;\n const changes = element[TrackChanges];\n element[TrackChanges] = undefined;\n if (!(changes === null || changes === undefined ? undefined : (_changes_tracked = changes.tracked) === null || _changes_tracked === undefined ? undefined : _changes_tracked.length)) {\n return;\n }\n const isJustReactStateUpdate = changes.tracked.length === 2 && changes.tracked[0] === changes.previousValue && changes.tracked[1] === element.value;\n if (!isJustReactStateUpdate) {\n setUIValueClean(element);\n }\n if (hasUISelection(element)) {\n setUISelection(element, {\n focusOffset: isJustReactStateUpdate ? cursorOffset : element.value.length\n });\n }\n}\n\nexport { commitValueAfterInput, startTrackValue, trackOrSetValue };\n","import { getUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\n\n/**\n * Determine which selection logic and selection ranges to consider.\n */ function getTargetTypeAndSelection(node) {\n const element = getElement(node);\n if (element && hasOwnSelection(element)) {\n return {\n type: 'input',\n selection: getUISelection(element)\n };\n }\n const selection = element === null || element === undefined ? undefined : element.ownerDocument.getSelection();\n // It is possible to extend a single-range selection into a contenteditable.\n // This results in the range acting like a range outside of contenteditable.\n const isCE = getContentEditable(node) && (selection === null || selection === undefined ? undefined : selection.anchorNode) && getContentEditable(selection.anchorNode);\n return {\n type: isCE ? 'contenteditable' : 'default',\n selection\n };\n}\nfunction getElement(node) {\n return node.nodeType === 1 ? node : node.parentElement;\n}\n\nexport { getTargetTypeAndSelection };\n","import { getTargetTypeAndSelection } from './getTargetTypeAndSelection.js';\n\n/**\n * Get the range that would be overwritten by input.\n */ function getInputRange(focusNode) {\n const typeAndSelection = getTargetTypeAndSelection(focusNode);\n if (typeAndSelection.type === 'input') {\n return typeAndSelection.selection;\n } else if (typeAndSelection.type === 'contenteditable') {\n var _typeAndSelection_selection;\n // Multi-range on contenteditable edits the first selection instead of the last\n return (_typeAndSelection_selection = typeAndSelection.selection) === null || _typeAndSelection_selection === undefined ? undefined : _typeAndSelection_selection.getRangeAt(0);\n }\n}\n\nexport { getInputRange };\n","import { setUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getTargetTypeAndSelection } from './getTargetTypeAndSelection.js';\n\n/**\n * Set the selection\n */ function setSelection({ focusNode, focusOffset, anchorNode = focusNode, anchorOffset = focusOffset }) {\n var _anchorNode_ownerDocument_getSelection, _anchorNode_ownerDocument;\n const typeAndSelection = getTargetTypeAndSelection(focusNode);\n if (typeAndSelection.type === 'input') {\n return setUISelection(focusNode, {\n anchorOffset,\n focusOffset\n });\n }\n (_anchorNode_ownerDocument = anchorNode.ownerDocument) === null || _anchorNode_ownerDocument === undefined ? undefined : (_anchorNode_ownerDocument_getSelection = _anchorNode_ownerDocument.getSelection()) === null || _anchorNode_ownerDocument_getSelection === undefined ? undefined : _anchorNode_ownerDocument_getSelection.setBaseAndExtent(anchorNode, anchorOffset, focusNode, focusOffset);\n}\n\nexport { setSelection };\n","import { setUIValue, clearInitialValue, getUIValue } from '../document/UI.js';\nimport { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { isValidDateOrTimeValue, buildTimeValue } from '../utils/edit/timeValue.js';\nimport { supportsMaxLength, getMaxLength } from '../utils/edit/maxLength.js';\nimport { getNextCursorPosition } from '../utils/focus/cursor.js';\nimport { commitValueAfterInput } from '../document/trackValue.js';\nimport { getInputRange } from './selection/getInputRange.js';\nimport { setSelection } from './selection/setSelection.js';\n\nfunction isDateOrTime(element) {\n return isElementType(element, 'input') && [\n 'date',\n 'time'\n ].includes(element.type);\n}\nfunction input(instance, element, data, inputType = 'insertText') {\n const inputRange = getInputRange(element);\n /* istanbul ignore if */ if (!inputRange) {\n return;\n }\n // There is no `beforeinput` event on `date` and `time` input\n if (!isDateOrTime(element)) {\n const unprevented = instance.dispatchUIEvent(element, 'beforeinput', {\n inputType,\n data\n });\n if (!unprevented) {\n return;\n }\n }\n if ('startContainer' in inputRange) {\n editContenteditable(instance, element, inputRange, data, inputType);\n } else {\n editInputElement(instance, element, inputRange, data, inputType);\n }\n}\nfunction editContenteditable(instance, element, inputRange, data, inputType) {\n let del = false;\n if (!inputRange.collapsed) {\n del = true;\n inputRange.deleteContents();\n } else if ([\n 'deleteContentBackward',\n 'deleteContentForward'\n ].includes(inputType)) {\n const nextPosition = getNextCursorPosition(inputRange.startContainer, inputRange.startOffset, inputType === 'deleteContentBackward' ? -1 : 1, inputType);\n if (nextPosition) {\n del = true;\n const delRange = inputRange.cloneRange();\n if (delRange.comparePoint(nextPosition.node, nextPosition.offset) < 0) {\n delRange.setStart(nextPosition.node, nextPosition.offset);\n } else {\n delRange.setEnd(nextPosition.node, nextPosition.offset);\n }\n delRange.deleteContents();\n }\n }\n if (data) {\n if (inputRange.endContainer.nodeType === 3) {\n const offset = inputRange.endOffset;\n inputRange.endContainer.insertData(offset, data);\n inputRange.setStart(inputRange.endContainer, offset + data.length);\n inputRange.setEnd(inputRange.endContainer, offset + data.length);\n } else {\n const text = element.ownerDocument.createTextNode(data);\n inputRange.insertNode(text);\n inputRange.setStart(text, data.length);\n inputRange.setEnd(text, data.length);\n }\n }\n if (del || data) {\n instance.dispatchUIEvent(element, 'input', {\n inputType\n });\n }\n}\nfunction editInputElement(instance, element, inputRange, data, inputType) {\n let dataToInsert = data;\n if (supportsMaxLength(element)) {\n const maxLength = getMaxLength(element);\n if (maxLength !== undefined && data.length > 0) {\n const spaceUntilMaxLength = maxLength - element.value.length;\n if (spaceUntilMaxLength > 0) {\n dataToInsert = data.substring(0, spaceUntilMaxLength);\n } else {\n return;\n }\n }\n }\n const { newValue, newOffset, oldValue } = calculateNewValue(dataToInsert, element, inputRange, inputType);\n if (newValue === oldValue && newOffset === inputRange.startOffset && newOffset === inputRange.endOffset) {\n return;\n }\n if (isElementType(element, 'input', {\n type: 'number'\n }) && !isValidNumberInput(newValue)) {\n return;\n }\n setUIValue(element, newValue);\n setSelection({\n focusNode: element,\n anchorOffset: newOffset,\n focusOffset: newOffset\n });\n if (isDateOrTime(element)) {\n if (isValidDateOrTimeValue(element, newValue)) {\n commitInput(instance, element, newOffset, {});\n instance.dispatchUIEvent(element, 'change');\n clearInitialValue(element);\n }\n } else {\n commitInput(instance, element, newOffset, {\n data,\n inputType\n });\n }\n}\nfunction calculateNewValue(inputData, node, { startOffset, endOffset }, inputType) {\n const value = getUIValue(node);\n const prologEnd = Math.max(0, startOffset === endOffset && inputType === 'deleteContentBackward' ? startOffset - 1 : startOffset);\n const prolog = value.substring(0, prologEnd);\n const epilogStart = Math.min(value.length, startOffset === endOffset && inputType === 'deleteContentForward' ? startOffset + 1 : endOffset);\n const epilog = value.substring(epilogStart, value.length);\n let newValue = `${prolog}${inputData}${epilog}`;\n let newOffset = prologEnd + inputData.length;\n if (isElementType(node, 'input', {\n type: 'time'\n })) {\n const builtValue = buildTimeValue(newValue);\n if (builtValue !== '' && isValidDateOrTimeValue(node, builtValue)) {\n newValue = builtValue;\n newOffset = builtValue.length;\n }\n }\n return {\n oldValue: value,\n newValue,\n newOffset\n };\n}\nfunction commitInput(instance, element, newOffset, inputInit) {\n instance.dispatchUIEvent(element, 'input', inputInit);\n commitValueAfterInput(element, newOffset);\n}\nfunction isValidNumberInput(value) {\n var _value_match, _value_match1;\n // the browser allows some invalid input but not others\n // it allows up to two '-' at any place before any 'e' or one directly following 'e'\n // it allows one '.' at any place before e\n const valueParts = value.split('e', 2);\n return !(/[^\\d.\\-e]/.test(value) || Number((_value_match = value.match(/-/g)) === null || _value_match === undefined ? undefined : _value_match.length) > 2 || Number((_value_match1 = value.match(/\\./g)) === null || _value_match1 === undefined ? undefined : _value_match1.length) > 1 || valueParts[1] && !/^-?\\d*$/.test(valueParts[1]));\n}\n\nexport { input };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { input } from '../input.js';\nimport { behavior } from './registry.js';\n\nbehavior.cut = (event, target, instance)=>{\n return ()=>{\n if (isEditable(target)) {\n input(instance, target, '', 'deleteByCut');\n }\n };\n};\n","import '../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../utils/edit/isContentEditable.js';\nimport { getUIValue } from './UI.js';\n\nfunction getValueOrTextContent(element) {\n // istanbul ignore if\n if (!element) {\n return null;\n }\n if (isContentEditable(element)) {\n return element.textContent;\n }\n return getUIValue(element);\n}\n\nexport { getValueOrTextContent };\n","import { getWindow } from './getWindow.js';\n\nfunction isVisible(element) {\n const window = getWindow(element);\n for(let el = element; el === null || el === undefined ? undefined : el.ownerDocument; el = el.parentElement){\n const { display, visibility } = window.getComputedStyle(el);\n if (display === 'none') {\n return false;\n }\n if (visibility === 'hidden') {\n return false;\n }\n }\n return true;\n}\n\nexport { isVisible };\n","import { isDisabled } from '../misc/isDisabled.js';\nimport { isElementType } from '../misc/isElementType.js';\nimport { isVisible } from '../misc/isVisible.js';\nimport { FOCUSABLE_SELECTOR } from './selector.js';\n\nfunction getTabDestination(activeElement, shift) {\n const document = activeElement.ownerDocument;\n const focusableElements = document.querySelectorAll(FOCUSABLE_SELECTOR);\n const enabledElements = Array.from(focusableElements).filter((el)=>el === activeElement || !(Number(el.getAttribute('tabindex')) < 0 || isDisabled(el)));\n // tabindex has no effect if the active element has negative tabindex\n if (Number(activeElement.getAttribute('tabindex')) >= 0) {\n enabledElements.sort((a, b)=>{\n const i = Number(a.getAttribute('tabindex'));\n const j = Number(b.getAttribute('tabindex'));\n if (i === j) {\n return 0;\n } else if (i === 0) {\n return 1;\n } else if (j === 0) {\n return -1;\n }\n return i - j;\n });\n }\n const checkedRadio = {};\n let prunedElements = [\n document.body\n ];\n const activeRadioGroup = isElementType(activeElement, 'input', {\n type: 'radio'\n }) ? activeElement.name : undefined;\n enabledElements.forEach((currentElement)=>{\n const el = currentElement;\n // For radio groups keep only the active radio\n // If there is no active radio, keep only the checked radio\n // If there is no checked radio, treat like everything else\n if (isElementType(el, 'input', {\n type: 'radio'\n }) && el.name) {\n // If the active element is part of the group, add only that\n if (el === activeElement) {\n prunedElements.push(el);\n return;\n } else if (el.name === activeRadioGroup) {\n return;\n }\n // If we stumble upon a checked radio, remove the others\n if (el.checked) {\n prunedElements = prunedElements.filter((e)=>!isElementType(e, 'input', {\n type: 'radio',\n name: el.name\n }));\n prunedElements.push(el);\n checkedRadio[el.name] = el;\n return;\n }\n // If we already found the checked one, skip\n if (typeof checkedRadio[el.name] !== 'undefined') {\n return;\n }\n }\n prunedElements.push(el);\n });\n for(let index = prunedElements.findIndex((el)=>el === activeElement);;){\n index += shift ? -1 : 1;\n // loop at overflow\n if (index === prunedElements.length) {\n index = 0;\n } else if (index === -1) {\n index = prunedElements.length - 1;\n }\n if (prunedElements[index] === activeElement || prunedElements[index] === document.body || isVisible(prunedElements[index])) {\n return prunedElements[index];\n }\n }\n}\n\nexport { getTabDestination };\n","import { getUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getNextCursorPosition } from '../../utils/focus/cursor.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { setSelection } from './setSelection.js';\n\n/**\n * Move the selection\n */ function moveSelection(node, direction) {\n // TODO: implement shift\n if (hasOwnSelection(node)) {\n const selection = getUISelection(node);\n setSelection({\n focusNode: node,\n focusOffset: selection.startOffset === selection.endOffset ? selection.focusOffset + direction : direction < 0 ? selection.startOffset : selection.endOffset\n });\n } else {\n const selection = node.ownerDocument.getSelection();\n if (!(selection === null || selection === undefined ? undefined : selection.focusNode)) {\n return;\n }\n if (selection.isCollapsed) {\n const nextPosition = getNextCursorPosition(selection.focusNode, selection.focusOffset, direction);\n if (nextPosition) {\n setSelection({\n focusNode: nextPosition.node,\n focusOffset: nextPosition.offset\n });\n }\n } else {\n selection[direction < 0 ? 'collapseToStart' : 'collapseToEnd']();\n }\n }\n}\n\nexport { moveSelection };\n","import { getUIValue, getUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { getContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { setSelection } from './setSelection.js';\n\n/**\n * Expand a selection like the browser does when pressing Ctrl+A.\n */ function selectAll(target) {\n if (hasOwnSelection(target)) {\n return setSelection({\n focusNode: target,\n anchorOffset: 0,\n focusOffset: getUIValue(target).length\n });\n }\n var _getContentEditable;\n const focusNode = (_getContentEditable = getContentEditable(target)) !== null && _getContentEditable !== undefined ? _getContentEditable : target.ownerDocument.body;\n setSelection({\n focusNode,\n anchorOffset: 0,\n focusOffset: focusNode.childNodes.length\n });\n}\nfunction isAllSelected(target) {\n if (hasOwnSelection(target)) {\n return getUISelection(target).startOffset === 0 && getUISelection(target).endOffset === getUIValue(target).length;\n }\n var _getContentEditable;\n const focusNode = (_getContentEditable = getContentEditable(target)) !== null && _getContentEditable !== undefined ? _getContentEditable : target.ownerDocument.body;\n const selection = target.ownerDocument.getSelection();\n return (selection === null || selection === undefined ? undefined : selection.anchorNode) === focusNode && selection.focusNode === focusNode && selection.anchorOffset === 0 && selection.focusOffset === focusNode.childNodes.length;\n}\n\nexport { isAllSelected, selectAll };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { setSelection } from './setSelection.js';\n\n/**\n * Backward-compatible selection.\n *\n * Handles input elements and contenteditable if it only contains a single text node.\n */ function setSelectionRange(element, anchorOffset, focusOffset) {\n var _element_firstChild;\n if (hasOwnSelection(element)) {\n return setSelection({\n focusNode: element,\n anchorOffset,\n focusOffset\n });\n }\n /* istanbul ignore else */ if (isContentEditable(element) && ((_element_firstChild = element.firstChild) === null || _element_firstChild === undefined ? undefined : _element_firstChild.nodeType) === 3) {\n return setSelection({\n focusNode: element.firstChild,\n anchorOffset,\n focusOffset\n });\n }\n /* istanbul ignore next */ throw new Error('Not implemented. The result of this interaction is unreliable.');\n}\n\nexport { setSelectionRange };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { focusElement } from './focus.js';\n\nfunction walkRadio(instance, el, direction) {\n const window = getWindow(el);\n const group = Array.from(el.ownerDocument.querySelectorAll(el.name ? `input[type=\"radio\"][name=\"${window.CSS.escape(el.name)}\"]` : `input[type=\"radio\"][name=\"\"], input[type=\"radio\"]:not([name])`));\n for(let i = group.findIndex((e)=>e === el) + direction;; i += direction){\n if (!group[i]) {\n i = direction > 0 ? 0 : group.length - 1;\n }\n if (group[i] === el) {\n return;\n }\n if (isDisabled(group[i])) {\n continue;\n }\n focusElement(group[i]);\n instance.dispatchUIEvent(group[i], 'click');\n return;\n }\n}\n\nexport { walkRadio };\n","import { getUIValue, setUISelection } from '../../document/UI.js';\nimport { getValueOrTextContent } from '../../document/getValueOrTextContent.js';\nimport { isElementType } from '../../utils/misc/isElementType.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { getTabDestination } from '../../utils/focus/getTabDestination.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\nimport { focusElement } from '../focus.js';\nimport { input } from '../input.js';\nimport { moveSelection } from '../selection/moveSelection.js';\nimport { selectAll } from '../selection/selectAll.js';\nimport { setSelectionRange } from '../selection/setSelectionRange.js';\nimport { walkRadio } from '../radio.js';\nimport { behavior } from './registry.js';\n\nbehavior.keydown = (event, target, instance)=>{\n var _keydownBehavior_event_key;\n var _keydownBehavior_event_key1;\n return (_keydownBehavior_event_key1 = (_keydownBehavior_event_key = keydownBehavior[event.key]) === null || _keydownBehavior_event_key === undefined ? undefined : _keydownBehavior_event_key.call(keydownBehavior, event, target, instance)) !== null && _keydownBehavior_event_key1 !== undefined ? _keydownBehavior_event_key1 : combinationBehavior(event, target, instance);\n};\nconst keydownBehavior = {\n ArrowDown: (event, target, instance)=>{\n /* istanbul ignore else */ if (isElementType(target, 'input', {\n type: 'radio'\n })) {\n return ()=>walkRadio(instance, target, 1);\n }\n },\n ArrowLeft: (event, target, instance)=>{\n if (isElementType(target, 'input', {\n type: 'radio'\n })) {\n return ()=>walkRadio(instance, target, -1);\n }\n return ()=>moveSelection(target, -1);\n },\n ArrowRight: (event, target, instance)=>{\n if (isElementType(target, 'input', {\n type: 'radio'\n })) {\n return ()=>walkRadio(instance, target, 1);\n }\n return ()=>moveSelection(target, 1);\n },\n ArrowUp: (event, target, instance)=>{\n /* istanbul ignore else */ if (isElementType(target, 'input', {\n type: 'radio'\n })) {\n return ()=>walkRadio(instance, target, -1);\n }\n },\n Backspace: (event, target, instance)=>{\n if (isEditable(target)) {\n return ()=>{\n input(instance, target, '', 'deleteContentBackward');\n };\n }\n },\n Delete: (event, target, instance)=>{\n if (isEditable(target)) {\n return ()=>{\n input(instance, target, '', 'deleteContentForward');\n };\n }\n },\n End: (event, target)=>{\n if (isElementType(target, [\n 'input',\n 'textarea'\n ]) || isContentEditable(target)) {\n return ()=>{\n var _getValueOrTextContent;\n var _getValueOrTextContent_length;\n const newPos = (_getValueOrTextContent_length = (_getValueOrTextContent = getValueOrTextContent(target)) === null || _getValueOrTextContent === undefined ? undefined : _getValueOrTextContent.length) !== null && _getValueOrTextContent_length !== undefined ? _getValueOrTextContent_length : /* istanbul ignore next */ 0;\n setSelectionRange(target, newPos, newPos);\n };\n }\n },\n Home: (event, target)=>{\n if (isElementType(target, [\n 'input',\n 'textarea'\n ]) || isContentEditable(target)) {\n return ()=>{\n setSelectionRange(target, 0, 0);\n };\n }\n },\n PageDown: (event, target)=>{\n if (isElementType(target, [\n 'input'\n ])) {\n return ()=>{\n const newPos = getUIValue(target).length;\n setSelectionRange(target, newPos, newPos);\n };\n }\n },\n PageUp: (event, target)=>{\n if (isElementType(target, [\n 'input'\n ])) {\n return ()=>{\n setSelectionRange(target, 0, 0);\n };\n }\n },\n Tab: (event, target, instance)=>{\n return ()=>{\n const dest = getTabDestination(target, instance.system.keyboard.modifiers.Shift);\n focusElement(dest);\n if (hasOwnSelection(dest)) {\n setUISelection(dest, {\n anchorOffset: 0,\n focusOffset: dest.value.length\n });\n }\n };\n }\n};\nconst combinationBehavior = (event, target, instance)=>{\n if (event.code === 'KeyA' && instance.system.keyboard.modifiers.Control) {\n return ()=>selectAll(target);\n }\n};\n","import { isElementType } from '../../utils/misc/isElementType.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { isContentEditable } from '../../utils/edit/isContentEditable.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { input } from '../input.js';\nimport { behavior } from './registry.js';\n\nbehavior.keypress = (event, target, instance)=>{\n if (event.key === 'Enter') {\n if (isElementType(target, 'button') || isElementType(target, 'input') && ClickInputOnEnter.includes(target.type) || isElementType(target, 'a') && Boolean(target.href)) {\n return ()=>{\n instance.dispatchUIEvent(target, 'click');\n };\n } else if (isElementType(target, 'input')) {\n const form = target.form;\n const submit = form === null || form === undefined ? undefined : form.querySelector('input[type=\"submit\"], button:not([type]), button[type=\"submit\"]');\n if (submit) {\n return ()=>instance.dispatchUIEvent(submit, 'click');\n } else if (form && SubmitSingleInputOnEnter.includes(target.type) && form.querySelectorAll('input').length === 1) {\n return ()=>instance.dispatchUIEvent(form, 'submit');\n } else {\n return;\n }\n }\n }\n if (isEditable(target)) {\n const inputType = event.key === 'Enter' ? isContentEditable(target) && !instance.system.keyboard.modifiers.Shift ? 'insertParagraph' : 'insertLineBreak' : 'insertText';\n const inputData = event.key === 'Enter' ? '\\n' : event.key;\n return ()=>input(instance, target, inputData, inputType);\n }\n};\nconst ClickInputOnEnter = [\n 'button',\n 'color',\n 'file',\n 'image',\n 'reset',\n 'submit'\n];\nconst SubmitSingleInputOnEnter = [\n 'email',\n 'month',\n 'password',\n 'search',\n 'tel',\n 'text',\n 'url',\n 'week'\n];\n","import { isClickableInput } from '../../utils/click/isClickableInput.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { behavior } from './registry.js';\n\nbehavior.keyup = (event, target, instance)=>{\n var _keyupBehavior_event_key;\n return (_keyupBehavior_event_key = keyupBehavior[event.key]) === null || _keyupBehavior_event_key === undefined ? undefined : _keyupBehavior_event_key.call(keyupBehavior, event, target, instance);\n};\nconst keyupBehavior = {\n ' ': (event, target, instance)=>{\n if (isClickableInput(target)) {\n return ()=>instance.dispatchUIEvent(target, 'click');\n }\n }\n};\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { isEditable } from '../../utils/edit/isEditable.js';\nimport { input } from '../input.js';\nimport { behavior } from './registry.js';\n\nbehavior.paste = (event, target, instance)=>{\n if (isEditable(target)) {\n return ()=>{\n var _event_clipboardData;\n const insertData = (_event_clipboardData = event.clipboardData) === null || _event_clipboardData === undefined ? undefined : _event_clipboardData.getData('text');\n if (insertData) {\n input(instance, target, insertData, 'insertFromPaste');\n }\n };\n }\n};\n","const eventMap = {\n auxclick: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n beforeinput: {\n EventType: 'InputEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n blur: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n click: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n contextmenu: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n copy: {\n EventType: 'ClipboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n change: {\n EventType: 'Event',\n defaultInit: {\n bubbles: true,\n cancelable: false\n }\n },\n cut: {\n EventType: 'ClipboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n dblclick: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n focus: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n focusin: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n focusout: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n keydown: {\n EventType: 'KeyboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n keypress: {\n EventType: 'KeyboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n keyup: {\n EventType: 'KeyboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n paste: {\n EventType: 'ClipboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n input: {\n EventType: 'InputEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n mousedown: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseenter: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n mouseleave: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n mousemove: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseout: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseover: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseup: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n pointerover: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n pointerenter: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n pointerdown: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n pointermove: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n pointerup: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n pointercancel: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n pointerout: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n pointerleave: {\n EventType: 'PointerEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n submit: {\n EventType: 'Event',\n defaultInit: {\n bubbles: true,\n cancelable: true\n }\n }\n};\nfunction getEventClass(type) {\n return eventMap[type].EventType;\n}\nconst mouseEvents = [\n 'MouseEvent',\n 'PointerEvent'\n];\nfunction isMouseEvent(type) {\n return mouseEvents.includes(getEventClass(type));\n}\nfunction isKeyboardEvent(type) {\n return getEventClass(type) === 'KeyboardEvent';\n}\n\nexport { eventMap, isKeyboardEvent, isMouseEvent };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { eventMap } from './eventMap.js';\n\nconst eventInitializer = {\n ClipboardEvent: [\n initClipboardEvent\n ],\n Event: [],\n FocusEvent: [\n initUIEvent,\n initFocusEvent\n ],\n InputEvent: [\n initUIEvent,\n initInputEvent\n ],\n MouseEvent: [\n initUIEvent,\n initUIEventModifiers,\n initMouseEvent\n ],\n PointerEvent: [\n initUIEvent,\n initUIEventModifiers,\n initMouseEvent,\n initPointerEvent\n ],\n KeyboardEvent: [\n initUIEvent,\n initUIEventModifiers,\n initKeyboardEvent\n ]\n};\nfunction createEvent(type, target, init) {\n const window = getWindow(target);\n const { EventType, defaultInit } = eventMap[type];\n const event = new (getEventConstructors(window))[EventType](type, defaultInit);\n eventInitializer[EventType].forEach((f)=>f(event, init !== null && init !== undefined ? init : {}));\n return event;\n}\n/* istanbul ignore next */ function getEventConstructors(window) {\n var _window_Event;\n /* eslint-disable @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-extraneous-class */ const Event = (_window_Event = window.Event) !== null && _window_Event !== undefined ? _window_Event : class Event {\n };\n var _window_AnimationEvent;\n const AnimationEvent = (_window_AnimationEvent = window.AnimationEvent) !== null && _window_AnimationEvent !== undefined ? _window_AnimationEvent : class AnimationEvent extends Event {\n };\n var _window_ClipboardEvent;\n const ClipboardEvent = (_window_ClipboardEvent = window.ClipboardEvent) !== null && _window_ClipboardEvent !== undefined ? _window_ClipboardEvent : class ClipboardEvent extends Event {\n };\n var _window_PopStateEvent;\n const PopStateEvent = (_window_PopStateEvent = window.PopStateEvent) !== null && _window_PopStateEvent !== undefined ? _window_PopStateEvent : class PopStateEvent extends Event {\n };\n var _window_ProgressEvent;\n const ProgressEvent = (_window_ProgressEvent = window.ProgressEvent) !== null && _window_ProgressEvent !== undefined ? _window_ProgressEvent : class ProgressEvent extends Event {\n };\n var _window_TransitionEvent;\n const TransitionEvent = (_window_TransitionEvent = window.TransitionEvent) !== null && _window_TransitionEvent !== undefined ? _window_TransitionEvent : class TransitionEvent extends Event {\n };\n var _window_UIEvent;\n const UIEvent = (_window_UIEvent = window.UIEvent) !== null && _window_UIEvent !== undefined ? _window_UIEvent : class UIEvent extends Event {\n };\n var _window_CompositionEvent;\n const CompositionEvent = (_window_CompositionEvent = window.CompositionEvent) !== null && _window_CompositionEvent !== undefined ? _window_CompositionEvent : class CompositionEvent extends UIEvent {\n };\n var _window_FocusEvent;\n const FocusEvent = (_window_FocusEvent = window.FocusEvent) !== null && _window_FocusEvent !== undefined ? _window_FocusEvent : class FocusEvent extends UIEvent {\n };\n var _window_InputEvent;\n const InputEvent = (_window_InputEvent = window.InputEvent) !== null && _window_InputEvent !== undefined ? _window_InputEvent : class InputEvent extends UIEvent {\n };\n var _window_KeyboardEvent;\n const KeyboardEvent = (_window_KeyboardEvent = window.KeyboardEvent) !== null && _window_KeyboardEvent !== undefined ? _window_KeyboardEvent : class KeyboardEvent extends UIEvent {\n };\n var _window_MouseEvent;\n const MouseEvent = (_window_MouseEvent = window.MouseEvent) !== null && _window_MouseEvent !== undefined ? _window_MouseEvent : class MouseEvent extends UIEvent {\n };\n var _window_DragEvent;\n const DragEvent = (_window_DragEvent = window.DragEvent) !== null && _window_DragEvent !== undefined ? _window_DragEvent : class DragEvent extends MouseEvent {\n };\n var _window_PointerEvent;\n const PointerEvent = (_window_PointerEvent = window.PointerEvent) !== null && _window_PointerEvent !== undefined ? _window_PointerEvent : class PointerEvent extends MouseEvent {\n };\n var _window_TouchEvent;\n const TouchEvent = (_window_TouchEvent = window.TouchEvent) !== null && _window_TouchEvent !== undefined ? _window_TouchEvent : class TouchEvent extends UIEvent {\n };\n /* eslint-enable @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-extraneous-class */ return {\n Event,\n AnimationEvent,\n ClipboardEvent,\n PopStateEvent,\n ProgressEvent,\n TransitionEvent,\n UIEvent,\n CompositionEvent,\n FocusEvent,\n InputEvent,\n KeyboardEvent,\n MouseEvent,\n DragEvent,\n PointerEvent,\n TouchEvent\n };\n}\nfunction assignProps(obj, props) {\n for (const [key, value] of Object.entries(props)){\n Object.defineProperty(obj, key, {\n get: ()=>value !== null && value !== undefined ? value : null\n });\n }\n}\nfunction sanitizeNumber(n) {\n return Number(n !== null && n !== undefined ? n : 0);\n}\nfunction initClipboardEvent(event, { clipboardData }) {\n assignProps(event, {\n clipboardData\n });\n}\nfunction initFocusEvent(event, { relatedTarget }) {\n assignProps(event, {\n relatedTarget\n });\n}\nfunction initInputEvent(event, { data, inputType, isComposing }) {\n assignProps(event, {\n data,\n isComposing: Boolean(isComposing),\n inputType: String(inputType)\n });\n}\nfunction initUIEvent(event, { view, detail }) {\n assignProps(event, {\n view,\n detail: sanitizeNumber(detail !== null && detail !== undefined ? detail : 0)\n });\n}\nfunction initUIEventModifiers(event, { altKey, ctrlKey, metaKey, shiftKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierNumLock, modifierScrollLock, modifierSymbol, modifierSymbolLock }) {\n assignProps(event, {\n altKey: Boolean(altKey),\n ctrlKey: Boolean(ctrlKey),\n metaKey: Boolean(metaKey),\n shiftKey: Boolean(shiftKey),\n getModifierState (k) {\n return Boolean({\n Alt: altKey,\n AltGraph: modifierAltGraph,\n CapsLock: modifierCapsLock,\n Control: ctrlKey,\n Fn: modifierFn,\n FnLock: modifierFnLock,\n Meta: metaKey,\n NumLock: modifierNumLock,\n ScrollLock: modifierScrollLock,\n Shift: shiftKey,\n Symbol: modifierSymbol,\n SymbolLock: modifierSymbolLock\n }[k]);\n }\n });\n}\nfunction initKeyboardEvent(event, { key, code, location, repeat, isComposing, charCode }) {\n assignProps(event, {\n key: String(key),\n code: String(code),\n location: sanitizeNumber(location),\n repeat: Boolean(repeat),\n isComposing: Boolean(isComposing),\n charCode\n });\n}\nfunction initMouseEvent(event, { x, y, screenX, screenY, clientX = x, clientY = y, button, buttons, relatedTarget, offsetX, offsetY, pageX, pageY }) {\n assignProps(event, {\n screenX: sanitizeNumber(screenX),\n screenY: sanitizeNumber(screenY),\n clientX: sanitizeNumber(clientX),\n x: sanitizeNumber(clientX),\n clientY: sanitizeNumber(clientY),\n y: sanitizeNumber(clientY),\n button: sanitizeNumber(button),\n buttons: sanitizeNumber(buttons),\n relatedTarget,\n offsetX: sanitizeNumber(offsetX),\n offsetY: sanitizeNumber(offsetY),\n pageX: sanitizeNumber(pageX),\n pageY: sanitizeNumber(pageY)\n });\n}\nfunction initPointerEvent(event, { pointerId, width, height, pressure, tangentialPressure, tiltX, tiltY, twist, pointerType, isPrimary }) {\n assignProps(event, {\n pointerId: sanitizeNumber(pointerId),\n width: sanitizeNumber(width !== null && width !== undefined ? width : 1),\n height: sanitizeNumber(height !== null && height !== undefined ? height : 1),\n pressure: sanitizeNumber(pressure),\n tangentialPressure: sanitizeNumber(tangentialPressure),\n tiltX: sanitizeNumber(tiltX),\n tiltY: sanitizeNumber(tiltY),\n twist: sanitizeNumber(twist),\n pointerType: String(pointerType),\n isPrimary: Boolean(isPrimary)\n });\n}\n\nexport { createEvent };\n","import './behavior/click.js';\nimport './behavior/cut.js';\nimport './behavior/keydown.js';\nimport './behavior/keypress.js';\nimport './behavior/keyup.js';\nimport './behavior/paste.js';\nimport { behavior } from './behavior/registry.js';\nimport { wrapEvent } from './wrapEvent.js';\nimport { isMouseEvent, isKeyboardEvent } from './eventMap.js';\nimport { createEvent } from './createEvent.js';\n\nfunction dispatchUIEvent(target, type, init, preventDefault = false) {\n if (isMouseEvent(type) || isKeyboardEvent(type)) {\n init = {\n ...init,\n ...this.system.getUIEventModifiers()\n };\n }\n const event = createEvent(type, target, init);\n return dispatchEvent.call(this, target, event, preventDefault);\n}\nfunction dispatchEvent(target, event, preventDefault = false) {\n var _behavior_type;\n const type = event.type;\n const behaviorImplementation = preventDefault ? ()=>{} : (_behavior_type = behavior[type]) === null || _behavior_type === undefined ? undefined : _behavior_type.call(behavior, event, target, this);\n if (behaviorImplementation) {\n event.preventDefault();\n let defaultPrevented = false;\n Object.defineProperty(event, 'defaultPrevented', {\n get: ()=>defaultPrevented\n });\n Object.defineProperty(event, 'preventDefault', {\n value: ()=>{\n defaultPrevented = event.cancelable;\n }\n });\n wrapEvent(()=>target.dispatchEvent(event));\n if (!defaultPrevented) {\n behaviorImplementation();\n }\n return !defaultPrevented;\n }\n return wrapEvent(()=>target.dispatchEvent(event));\n}\nfunction dispatchDOMEvent(target, type, init) {\n const event = createEvent(type, target, init);\n wrapEvent(()=>target.dispatchEvent(event));\n}\n\nexport { dispatchDOMEvent, dispatchEvent, dispatchUIEvent };\n","import { dispatchDOMEvent } from '../event/dispatchEvent.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { getActiveElement } from '../utils/focus/getActiveElement.js';\nimport '@testing-library/dom';\n\nconst patched = Symbol('patched focus/blur methods');\nfunction patchFocus(HTMLElement) {\n if (HTMLElement.prototype[patched]) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { focus, blur } = HTMLElement.prototype;\n Object.defineProperties(HTMLElement.prototype, {\n focus: {\n configurable: true,\n get: ()=>patchedFocus\n },\n blur: {\n configurable: true,\n get: ()=>patchedBlur\n },\n [patched]: {\n configurable: true,\n get: ()=>({\n focus,\n blur\n })\n }\n });\n let activeCall;\n function patchedFocus(options) {\n if (this.ownerDocument.visibilityState !== 'hidden') {\n return focus.call(this, options);\n }\n const blurred = getActiveTarget(this.ownerDocument);\n if (blurred === this) {\n return;\n }\n const thisCall = Symbol('focus call');\n activeCall = thisCall;\n if (blurred) {\n blur.call(blurred);\n dispatchDOMEvent(blurred, 'blur', {\n relatedTarget: this\n });\n dispatchDOMEvent(blurred, 'focusout', {\n relatedTarget: activeCall === thisCall ? this : null\n });\n }\n if (activeCall === thisCall) {\n focus.call(this, options);\n dispatchDOMEvent(this, 'focus', {\n relatedTarget: blurred\n });\n }\n if (activeCall === thisCall) {\n dispatchDOMEvent(this, 'focusin', {\n relatedTarget: blurred\n });\n }\n }\n function patchedBlur() {\n if (this.ownerDocument.visibilityState !== 'hidden') {\n return blur.call(this);\n }\n const blurred = getActiveTarget(this.ownerDocument);\n if (blurred !== this) {\n return;\n }\n const thisCall = Symbol('blur call');\n activeCall = thisCall;\n blur.call(this);\n dispatchDOMEvent(blurred, 'blur', {\n relatedTarget: null\n });\n dispatchDOMEvent(blurred, 'focusout', {\n relatedTarget: null\n });\n }\n}\nfunction getActiveTarget(document) {\n const active = getActiveElement(document);\n return (active === null || active === undefined ? undefined : active.tagName) === 'BODY' ? null : active;\n}\nfunction restoreFocus(HTMLElement) {\n if (HTMLElement.prototype[patched]) {\n const { focus, blur } = HTMLElement.prototype[patched];\n Object.defineProperties(HTMLElement.prototype, {\n focus: {\n configurable: true,\n get: ()=>focus\n },\n blur: {\n configurable: true,\n get: ()=>blur\n }\n });\n }\n}\n\nexport { patchFocus, restoreFocus };\n","import { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { startTrackValue, trackOrSetValue } from './trackValue.js';\nimport { setUISelectionClean, setUISelectionRaw, getUIValue, setUIValueClean, isUIValue, isUISelectionStart } from './UI.js';\n\nconst Interceptor = Symbol('Interceptor for programmatical calls');\nfunction prepareInterceptor(element, propName, interceptorImpl) {\n const prototypeDescriptor = Object.getOwnPropertyDescriptor(element.constructor.prototype, propName);\n const objectDescriptor = Object.getOwnPropertyDescriptor(element, propName);\n const target = (prototypeDescriptor === null || prototypeDescriptor === undefined ? undefined : prototypeDescriptor.set) ? 'set' : 'value';\n /* istanbul ignore if */ if (typeof (prototypeDescriptor === null || prototypeDescriptor === undefined ? undefined : prototypeDescriptor[target]) !== 'function' || prototypeDescriptor[target][Interceptor]) {\n throw new Error(`Element ${element.tagName} does not implement \"${String(propName)}\".`);\n }\n function intercept(...args) {\n const { applyNative = false, realArgs, then } = interceptorImpl.call(this, ...args);\n const realFunc = (!applyNative && objectDescriptor || prototypeDescriptor)[target];\n if (target === 'set') {\n realFunc.call(this, realArgs);\n } else {\n realFunc.call(this, ...realArgs);\n }\n then === null || then === undefined ? undefined : then();\n }\n intercept[Interceptor] = Interceptor;\n Object.defineProperty(element, propName, {\n ...objectDescriptor !== null && objectDescriptor !== undefined ? objectDescriptor : prototypeDescriptor,\n [target]: intercept\n });\n}\nfunction prepareValueInterceptor(element) {\n prepareInterceptor(element, 'value', function interceptorImpl(v) {\n const isUI = isUIValue(v);\n if (isUI) {\n startTrackValue(this);\n }\n return {\n applyNative: !!isUI,\n realArgs: sanitizeValue(this, v),\n then: isUI ? undefined : ()=>trackOrSetValue(this, String(v))\n };\n });\n}\nfunction sanitizeValue(element, v) {\n // Workaround for JSDOM\n if (isElementType(element, 'input', {\n type: 'number'\n }) && String(v) !== '' && !Number.isNaN(Number(v))) {\n // Setting value to \"1.\" results in `null` in JSDOM\n return String(Number(v));\n }\n return String(v);\n}\nfunction prepareSelectionInterceptor(element) {\n prepareInterceptor(element, 'setSelectionRange', function interceptorImpl(start, ...others) {\n const isUI = isUISelectionStart(start);\n return {\n applyNative: !!isUI,\n realArgs: [\n Number(start),\n ...others\n ],\n then: ()=>isUI ? undefined : setUISelectionClean(element)\n };\n });\n prepareInterceptor(element, 'selectionStart', function interceptorImpl(v) {\n return {\n realArgs: v,\n then: ()=>setUISelectionClean(element)\n };\n });\n prepareInterceptor(element, 'selectionEnd', function interceptorImpl(v) {\n return {\n realArgs: v,\n then: ()=>setUISelectionClean(element)\n };\n });\n prepareInterceptor(element, 'select', function interceptorImpl() {\n return {\n realArgs: [],\n then: ()=>setUISelectionRaw(element, {\n anchorOffset: 0,\n focusOffset: getUIValue(element).length\n })\n };\n });\n}\nfunction prepareRangeTextInterceptor(element) {\n prepareInterceptor(element, 'setRangeText', function interceptorImpl(...realArgs) {\n return {\n realArgs,\n then: ()=>{\n setUIValueClean(element);\n setUISelectionClean(element);\n }\n };\n });\n}\n\nexport { prepareInterceptor, prepareRangeTextInterceptor, prepareSelectionInterceptor, prepareValueInterceptor };\n","import { dispatchDOMEvent } from '../event/dispatchEvent.js';\nimport { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { getInitialValue, clearInitialValue } from './UI.js';\nimport '@testing-library/dom';\nimport { prepareValueInterceptor, prepareSelectionInterceptor, prepareRangeTextInterceptor } from './interceptor.js';\n\nconst isPrepared = Symbol('Node prepared with document state workarounds');\nfunction prepareDocument(document) {\n if (document[isPrepared]) {\n return;\n }\n document.addEventListener('focus', (e)=>{\n const el = e.target;\n prepareElement(el);\n }, {\n capture: true,\n passive: true\n });\n // Our test environment defaults to `document.body` as `activeElement`.\n // In other environments this might be `null` when preparing.\n // istanbul ignore else\n if (document.activeElement) {\n prepareElement(document.activeElement);\n }\n document.addEventListener('blur', (e)=>{\n const el = e.target;\n const initialValue = getInitialValue(el);\n if (initialValue !== undefined) {\n if (el.value !== initialValue) {\n dispatchDOMEvent(el, 'change');\n }\n clearInitialValue(el);\n }\n }, {\n capture: true,\n passive: true\n });\n document[isPrepared] = isPrepared;\n}\nfunction prepareElement(el) {\n if (el[isPrepared]) {\n return;\n }\n if (isElementType(el, [\n 'input',\n 'textarea'\n ])) {\n prepareValueInterceptor(el);\n prepareSelectionInterceptor(el);\n prepareRangeTextInterceptor(el);\n }\n el[isPrepared] = isPrepared;\n}\n\nexport { prepareDocument };\n","function getDocumentFromNode(el) {\n return isDocument(el) ? el : el.ownerDocument;\n}\nfunction isDocument(node) {\n return node.nodeType === 9;\n}\n\nexport { getDocumentFromNode };\n","var ApiLevel = /*#__PURE__*/ function(ApiLevel) {\n ApiLevel[ApiLevel[\"Trigger\"] = 2] = \"Trigger\";\n ApiLevel[ApiLevel[\"Call\"] = 1] = \"Call\";\n return ApiLevel;\n}({});\nfunction setLevelRef(instance, level) {\n instance.levelRefs[level] = {};\n}\nfunction getLevelRef(instance, level) {\n return instance.levelRefs[level];\n}\n\nexport { ApiLevel, getLevelRef, setLevelRef };\n","function wait(config) {\n const delay = config.delay;\n if (typeof delay !== 'number') {\n return;\n }\n return Promise.all([\n new Promise((resolve)=>globalThis.setTimeout(()=>resolve(), delay)),\n config.advanceTimers(delay)\n ]);\n}\n\nexport { wait };\n","var PointerEventsCheckLevel = /*#__PURE__*/ function(PointerEventsCheckLevel) {\n /**\n * Check pointer events on every user interaction that triggers a bunch of events.\n * E.g. once for releasing a mouse button even though this triggers `pointerup`, `mouseup`, `click`, etc...\n */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"EachTrigger\"] = 4] = \"EachTrigger\";\n /** Check each target once per call to pointer (related) API */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"EachApiCall\"] = 2] = \"EachApiCall\";\n /** Check each event target once */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"EachTarget\"] = 1] = \"EachTarget\";\n /** No pointer events check */ PointerEventsCheckLevel[PointerEventsCheckLevel[\"Never\"] = 0] = \"Never\";\n return PointerEventsCheckLevel;\n}({});\n\nexport { PointerEventsCheckLevel };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { getActiveElementOrBody } from '../utils/focus/getActiveElement.js';\n\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar DOM_KEY_LOCATION = /*#__PURE__*/ function(DOM_KEY_LOCATION) {\n DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"STANDARD\"] = 0] = \"STANDARD\";\n DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"LEFT\"] = 1] = \"LEFT\";\n DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"RIGHT\"] = 2] = \"RIGHT\";\n DOM_KEY_LOCATION[DOM_KEY_LOCATION[\"NUMPAD\"] = 3] = \"NUMPAD\";\n return DOM_KEY_LOCATION;\n}({});\nconst modifierKeys = [\n 'Alt',\n 'AltGraph',\n 'Control',\n 'Fn',\n 'Meta',\n 'Shift',\n 'Symbol'\n];\nfunction isModifierKey(key) {\n return modifierKeys.includes(key);\n}\nconst modifierLocks = [\n 'CapsLock',\n 'FnLock',\n 'NumLock',\n 'ScrollLock',\n 'SymbolLock'\n];\nfunction isModifierLock(key) {\n return modifierLocks.includes(key);\n}\nclass KeyboardHost {\n isKeyPressed(keyDef) {\n return this.pressed.has(String(keyDef.code));\n }\n getPressedKeys() {\n return this.pressed.values().map((p)=>p.keyDef);\n }\n /** Press a key */ async keydown(instance, keyDef) {\n const key = String(keyDef.key);\n const code = String(keyDef.code);\n const target = getActiveElementOrBody(instance.config.document);\n this.setKeydownTarget(target);\n this.pressed.add(code, keyDef);\n if (isModifierKey(key)) {\n this.modifiers[key] = true;\n }\n const unprevented = instance.dispatchUIEvent(target, 'keydown', {\n key,\n code\n });\n if (isModifierLock(key) && !this.modifiers[key]) {\n this.modifiers[key] = true;\n this.modifierLockStart[key] = true;\n }\n if (unprevented) {\n this.pressed.setUnprevented(code);\n }\n if (unprevented && this.hasKeyPress(key)) {\n instance.dispatchUIEvent(getActiveElementOrBody(instance.config.document), 'keypress', {\n key,\n code,\n charCode: keyDef.key === 'Enter' ? 13 : String(keyDef.key).charCodeAt(0)\n });\n }\n }\n /** Release a key */ async keyup(instance, keyDef) {\n const key = String(keyDef.key);\n const code = String(keyDef.code);\n const unprevented = this.pressed.isUnprevented(code);\n this.pressed.delete(code);\n if (isModifierKey(key) && !this.pressed.values().find((p)=>p.keyDef.key === key)) {\n this.modifiers[key] = false;\n }\n instance.dispatchUIEvent(getActiveElementOrBody(instance.config.document), 'keyup', {\n key,\n code\n }, !unprevented);\n if (isModifierLock(key) && this.modifiers[key]) {\n if (this.modifierLockStart[key]) {\n this.modifierLockStart[key] = false;\n } else {\n this.modifiers[key] = false;\n }\n }\n }\n setKeydownTarget(target) {\n if (target !== this.lastKeydownTarget) {\n this.carryChar = '';\n }\n this.lastKeydownTarget = target;\n }\n hasKeyPress(key) {\n return (key.length === 1 || key === 'Enter') && !this.modifiers.Control && !this.modifiers.Alt;\n }\n constructor(system){\n _define_property(this, \"system\", undefined);\n _define_property(this, \"modifiers\", {\n Alt: false,\n AltGraph: false,\n CapsLock: false,\n Control: false,\n Fn: false,\n FnLock: false,\n Meta: false,\n NumLock: false,\n ScrollLock: false,\n Shift: false,\n Symbol: false,\n SymbolLock: false\n });\n _define_property(this, \"pressed\", new class {\n add(code, keyDef) {\n var _this_registry, _code;\n var _;\n (_ = (_this_registry = this.registry)[_code = code]) !== null && _ !== undefined ? _ : _this_registry[_code] = {\n keyDef,\n unpreventedDefault: false\n };\n }\n has(code) {\n return !!this.registry[code];\n }\n setUnprevented(code) {\n const o = this.registry[code];\n if (o) {\n o.unpreventedDefault = true;\n }\n }\n isUnprevented(code) {\n var _this_registry_code;\n return !!((_this_registry_code = this.registry[code]) === null || _this_registry_code === undefined ? undefined : _this_registry_code.unpreventedDefault);\n }\n delete(code) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.registry[code];\n }\n values() {\n return Object.values(this.registry);\n }\n constructor(){\n _define_property(this, \"registry\", {});\n }\n }());\n _define_property(this, \"carryChar\", '');\n _define_property(this, \"lastKeydownTarget\", undefined);\n _define_property(this, \"modifierLockStart\", {});\n this.system = system;\n }\n}\n\nexport { DOM_KEY_LOCATION, KeyboardHost };\n","import { DOM_KEY_LOCATION } from '../system/keyboard.js';\n\n/**\n * Mapping for a default US-104-QWERTY keyboard\n */ const defaultKeyMap = [\n // alphanumeric block - writing system\n ...'0123456789'.split('').map((c)=>({\n code: `Digit${c}`,\n key: c\n })),\n ...')!@#$%^&*('.split('').map((c, i)=>({\n code: `Digit${i}`,\n key: c,\n shiftKey: true\n })),\n ...'abcdefghijklmnopqrstuvwxyz'.split('').map((c)=>({\n code: `Key${c.toUpperCase()}`,\n key: c\n })),\n ...'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('').map((c)=>({\n code: `Key${c}`,\n key: c,\n shiftKey: true\n })),\n {\n code: 'BracketLeft',\n key: '['\n },\n {\n code: 'BracketLeft',\n key: '{',\n shiftKey: true\n },\n {\n code: 'BracketRight',\n key: ']'\n },\n {\n code: 'BracketRight',\n key: '}',\n shiftKey: true\n },\n // alphanumeric block - functional\n {\n code: 'Space',\n key: ' '\n },\n {\n code: 'AltLeft',\n key: 'Alt',\n location: DOM_KEY_LOCATION.LEFT\n },\n {\n code: 'AltRight',\n key: 'Alt',\n location: DOM_KEY_LOCATION.RIGHT\n },\n {\n code: 'ShiftLeft',\n key: 'Shift',\n location: DOM_KEY_LOCATION.LEFT\n },\n {\n code: 'ShiftRight',\n key: 'Shift',\n location: DOM_KEY_LOCATION.RIGHT\n },\n {\n code: 'ControlLeft',\n key: 'Control',\n location: DOM_KEY_LOCATION.LEFT\n },\n {\n code: 'ControlRight',\n key: 'Control',\n location: DOM_KEY_LOCATION.RIGHT\n },\n {\n code: 'MetaLeft',\n key: 'Meta',\n location: DOM_KEY_LOCATION.LEFT\n },\n {\n code: 'MetaRight',\n key: 'Meta',\n location: DOM_KEY_LOCATION.RIGHT\n },\n {\n code: 'OSLeft',\n key: 'OS',\n location: DOM_KEY_LOCATION.LEFT\n },\n {\n code: 'OSRight',\n key: 'OS',\n location: DOM_KEY_LOCATION.RIGHT\n },\n {\n code: 'ContextMenu',\n key: 'ContextMenu'\n },\n {\n code: 'Tab',\n key: 'Tab'\n },\n {\n code: 'CapsLock',\n key: 'CapsLock'\n },\n {\n code: 'Backspace',\n key: 'Backspace'\n },\n {\n code: 'Enter',\n key: 'Enter'\n },\n // function\n {\n code: 'Escape',\n key: 'Escape'\n },\n // arrows\n {\n code: 'ArrowUp',\n key: 'ArrowUp'\n },\n {\n code: 'ArrowDown',\n key: 'ArrowDown'\n },\n {\n code: 'ArrowLeft',\n key: 'ArrowLeft'\n },\n {\n code: 'ArrowRight',\n key: 'ArrowRight'\n },\n // control pad\n {\n code: 'Home',\n key: 'Home'\n },\n {\n code: 'End',\n key: 'End'\n },\n {\n code: 'Delete',\n key: 'Delete'\n },\n {\n code: 'PageUp',\n key: 'PageUp'\n },\n {\n code: 'PageDown',\n key: 'PageDown'\n },\n // Special keys that are not part of a default US-layout but included for specific behavior\n {\n code: 'Fn',\n key: 'Fn'\n },\n {\n code: 'Symbol',\n key: 'Symbol'\n },\n {\n code: 'AltRight',\n key: 'AltGraph'\n }\n];\n\nexport { defaultKeyMap };\n","const defaultKeyMap = [\n {\n name: 'MouseLeft',\n pointerType: 'mouse',\n button: 'primary'\n },\n {\n name: 'MouseRight',\n pointerType: 'mouse',\n button: 'secondary'\n },\n {\n name: 'MouseMiddle',\n pointerType: 'mouse',\n button: 'auxiliary'\n },\n {\n name: 'TouchA',\n pointerType: 'touch'\n },\n {\n name: 'TouchB',\n pointerType: 'touch'\n },\n {\n name: 'TouchC',\n pointerType: 'touch'\n }\n];\n\nexport { defaultKeyMap };\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nclass Buttons {\n getButtons() {\n let v = 0;\n for (const button of Object.keys(this.pressed)){\n // eslint-disable-next-line no-bitwise\n v |= 2 ** Number(button);\n }\n return v;\n }\n down(keyDef) {\n const button = getMouseButtonId(keyDef.button);\n if (button in this.pressed) {\n this.pressed[button].push(keyDef);\n return undefined;\n }\n this.pressed[button] = [\n keyDef\n ];\n return button;\n }\n up(keyDef) {\n const button = getMouseButtonId(keyDef.button);\n if (button in this.pressed) {\n this.pressed[button] = this.pressed[button].filter((k)=>k.name !== keyDef.name);\n if (this.pressed[button].length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.pressed[button];\n return button;\n }\n }\n return undefined;\n }\n constructor(){\n _define_property(this, \"pressed\", {});\n }\n}\nconst MouseButton = {\n primary: 0,\n secondary: 1,\n auxiliary: 2,\n back: 3,\n X1: 3,\n forward: 4,\n X2: 4\n};\nfunction getMouseButtonId(button = 0) {\n if (button in MouseButton) {\n return MouseButton[button];\n }\n return Number(button);\n}\n// On the `MouseEvent.button` property auxiliary and secondary button are flipped compared to `MouseEvent.buttons`.\nconst MouseButtonFlip = {\n 1: 2,\n 2: 1\n};\nfunction getMouseEventButton(button) {\n button = getMouseButtonId(button);\n if (button in MouseButtonFlip) {\n return MouseButtonFlip[button];\n }\n return button;\n}\n\nexport { Buttons, MouseButton, MouseButtonFlip, getMouseButtonId, getMouseEventButton };\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nclass Device {\n get countPressed() {\n return this.pressedKeys.size;\n }\n isPressed(keyDef) {\n return this.pressedKeys.has(keyDef.name);\n }\n addPressed(keyDef) {\n return this.pressedKeys.add(keyDef.name);\n }\n removePressed(keyDef) {\n return this.pressedKeys.delete(keyDef.name);\n }\n constructor(){\n _define_property(this, \"pressedKeys\", new Set());\n }\n}\n\nexport { Device };\n","function getTreeDiff(a, b) {\n const treeA = [];\n for(let el = a; el; el = el.parentElement){\n treeA.push(el);\n }\n const treeB = [];\n for(let el = b; el; el = el.parentElement){\n treeB.push(el);\n }\n let i = 0;\n for(;; i++){\n if (i >= treeA.length || i >= treeB.length || treeA[treeA.length - 1 - i] !== treeB[treeB.length - 1 - i]) {\n break;\n }\n }\n return [\n treeA.slice(0, treeA.length - i),\n treeB.slice(0, treeB.length - i),\n treeB.slice(treeB.length - i)\n ];\n}\n\nexport { getTreeDiff };\n","import { getUIValue } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { hasOwnSelection } from '../../utils/focus/selection.js';\n\nfunction resolveCaretPosition({ target, node, offset }) {\n if (hasOwnSelection(target)) {\n return {\n node: target,\n offset: offset !== null && offset !== undefined ? offset : getUIValue(target).length\n };\n } else if (node) {\n return {\n node,\n offset: offset !== null && offset !== undefined ? offset : node.nodeType === 3 ? node.nodeValue.length : node.childNodes.length\n };\n }\n return findNodeAtTextOffset(target, offset);\n}\nfunction findNodeAtTextOffset(node, offset, isRoot = true) {\n // When clicking after the content the browser behavior can be complicated:\n // 1. If there is textContent after the last element child,\n // the cursor is moved there.\n // 2. If there is textContent in the last element child,\n // the browser moves the cursor to the last non-empty text node inside this element.\n // 3. Otherwise the cursor is moved to the end of the target.\n let i = offset === undefined ? node.childNodes.length - 1 : 0;\n const step = offset === undefined ? -1 : 1;\n while(offset === undefined ? i >= (isRoot ? Math.max(node.childNodes.length - 1, 0) : 0) : i <= node.childNodes.length){\n if (offset && i === node.childNodes.length) {\n throw new Error('The given offset is out of bounds.');\n }\n const c = node.childNodes.item(i);\n const text = String(c.textContent);\n if (text.length) {\n if (offset !== undefined && text.length < offset) {\n offset -= text.length;\n } else if (c.nodeType === 1) {\n return findNodeAtTextOffset(c, offset, false);\n } else {\n // The pre-commit hooks keeps changing this\n // See https://github.com/kentcdodds/kcd-scripts/issues/218\n /* istanbul ignore else */ // eslint-disable-next-line no-lonely-if\n if (c.nodeType === 3) {\n return {\n node: c,\n offset: offset !== null && offset !== undefined ? offset : c.nodeValue.length\n };\n }\n }\n }\n i += step;\n }\n return {\n node,\n offset: node.childNodes.length\n };\n}\n\nexport { resolveCaretPosition };\n","import { getUIValue, setUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { hasNoSelection, hasOwnSelection } from '../../utils/focus/selection.js';\nimport { resolveCaretPosition } from './resolveCaretPosition.js';\n\nfunction setSelectionPerMouseDown({ document, target, clickCount, node, offset }) {\n if (hasNoSelection(target)) {\n return;\n }\n const targetHasOwnSelection = hasOwnSelection(target);\n // On non-input elements the text selection per multiple click\n // can extend beyond the target boundaries.\n // The exact mechanism what is considered in the same line is unclear.\n // Looks it might be every inline element.\n // TODO: Check what might be considered part of the same line of text.\n const text = String(targetHasOwnSelection ? getUIValue(target) : target.textContent);\n const [start, end] = node ? // which elements might be considered in the same line of text.\n // TODO: support expanding initial range on multiple clicks if node is given\n [\n offset,\n offset\n ] : getTextRange(text, offset, clickCount);\n // TODO: implement modifying selection per shift/ctrl+mouse\n if (targetHasOwnSelection) {\n setUISelection(target, {\n anchorOffset: start !== null && start !== undefined ? start : text.length,\n focusOffset: end !== null && end !== undefined ? end : text.length\n });\n return {\n node: target,\n start: start !== null && start !== undefined ? start : 0,\n end: end !== null && end !== undefined ? end : text.length\n };\n } else {\n const { node: startNode, offset: startOffset } = resolveCaretPosition({\n target,\n node,\n offset: start\n });\n const { node: endNode, offset: endOffset } = resolveCaretPosition({\n target,\n node,\n offset: end\n });\n const range = target.ownerDocument.createRange();\n try {\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n } catch (e) {\n throw new Error('The given offset is out of bounds.');\n }\n const selection = document.getSelection();\n selection === null || selection === undefined ? undefined : selection.removeAllRanges();\n selection === null || selection === undefined ? undefined : selection.addRange(range.cloneRange());\n return range;\n }\n}\nfunction getTextRange(text, pos, clickCount) {\n if (clickCount % 3 === 1 || text.length === 0) {\n return [\n pos,\n pos\n ];\n }\n const textPos = pos !== null && pos !== undefined ? pos : text.length;\n if (clickCount % 3 === 2) {\n return [\n textPos - text.substr(0, pos).match(/(\\w+|\\s+|\\W)?$/)[0].length,\n pos === undefined ? pos : pos + text.substr(pos).match(/^(\\w+|\\s+|\\W)?/)[0].length\n ];\n }\n // triple click\n return [\n textPos - text.substr(0, pos).match(/[^\\r\\n]*$/)[0].length,\n pos === undefined ? pos : pos + text.substr(pos).match(/^[^\\r\\n]*/)[0].length\n ];\n}\n\nexport { setSelectionPerMouseDown };\n","import { setUISelection } from '../../document/UI.js';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { resolveCaretPosition } from './resolveCaretPosition.js';\n\nfunction modifySelectionPerMouseMove(selectionRange, { document, target, node, offset }) {\n const selectionFocus = resolveCaretPosition({\n target,\n node,\n offset\n });\n if ('node' in selectionRange) {\n // When the mouse is dragged outside of an input/textarea,\n // the selection is extended to the beginning or end of the input\n // depending on pointer position.\n // TODO: extend selection according to pointer position\n /* istanbul ignore else */ if (selectionFocus.node === selectionRange.node) {\n const anchorOffset = selectionFocus.offset < selectionRange.start ? selectionRange.end : selectionRange.start;\n const focusOffset = selectionFocus.offset > selectionRange.end || selectionFocus.offset < selectionRange.start ? selectionFocus.offset : selectionRange.end;\n setUISelection(selectionRange.node, {\n anchorOffset,\n focusOffset\n });\n }\n } else {\n const range = selectionRange.cloneRange();\n const cmp = range.comparePoint(selectionFocus.node, selectionFocus.offset);\n if (cmp < 0) {\n range.setStart(selectionFocus.node, selectionFocus.offset);\n } else if (cmp > 0) {\n range.setEnd(selectionFocus.node, selectionFocus.offset);\n }\n const selection = document.getSelection();\n selection === null || selection === undefined ? undefined : selection.removeAllRanges();\n selection === null || selection === undefined ? undefined : selection.addRange(range.cloneRange());\n }\n}\n\nexport { modifySelectionPerMouseMove };\n","function isDifferentPointerPosition(positionA, positionB) {\n var _positionA_coords, _positionB_coords, _positionA_coords1, _positionB_coords1, _positionA_coords2, _positionB_coords2, _positionA_coords3, _positionB_coords3, _positionA_coords4, _positionB_coords4, _positionA_coords5, _positionB_coords5, _positionA_coords6, _positionB_coords6, _positionA_coords7, _positionB_coords7, _positionA_coords8, _positionB_coords8, _positionA_coords9, _positionB_coords9, _positionA_caret, _positionB_caret, _positionA_caret1, _positionB_caret1;\n return positionA.target !== positionB.target || ((_positionA_coords = positionA.coords) === null || _positionA_coords === undefined ? undefined : _positionA_coords.x) !== ((_positionB_coords = positionB.coords) === null || _positionB_coords === undefined ? undefined : _positionB_coords.x) || ((_positionA_coords1 = positionA.coords) === null || _positionA_coords1 === undefined ? undefined : _positionA_coords1.y) !== ((_positionB_coords1 = positionB.coords) === null || _positionB_coords1 === undefined ? undefined : _positionB_coords1.y) || ((_positionA_coords2 = positionA.coords) === null || _positionA_coords2 === undefined ? undefined : _positionA_coords2.clientX) !== ((_positionB_coords2 = positionB.coords) === null || _positionB_coords2 === undefined ? undefined : _positionB_coords2.clientX) || ((_positionA_coords3 = positionA.coords) === null || _positionA_coords3 === undefined ? undefined : _positionA_coords3.clientY) !== ((_positionB_coords3 = positionB.coords) === null || _positionB_coords3 === undefined ? undefined : _positionB_coords3.clientY) || ((_positionA_coords4 = positionA.coords) === null || _positionA_coords4 === undefined ? undefined : _positionA_coords4.offsetX) !== ((_positionB_coords4 = positionB.coords) === null || _positionB_coords4 === undefined ? undefined : _positionB_coords4.offsetX) || ((_positionA_coords5 = positionA.coords) === null || _positionA_coords5 === undefined ? undefined : _positionA_coords5.offsetY) !== ((_positionB_coords5 = positionB.coords) === null || _positionB_coords5 === undefined ? undefined : _positionB_coords5.offsetY) || ((_positionA_coords6 = positionA.coords) === null || _positionA_coords6 === undefined ? undefined : _positionA_coords6.pageX) !== ((_positionB_coords6 = positionB.coords) === null || _positionB_coords6 === undefined ? undefined : _positionB_coords6.pageX) || ((_positionA_coords7 = positionA.coords) === null || _positionA_coords7 === undefined ? undefined : _positionA_coords7.pageY) !== ((_positionB_coords7 = positionB.coords) === null || _positionB_coords7 === undefined ? undefined : _positionB_coords7.pageY) || ((_positionA_coords8 = positionA.coords) === null || _positionA_coords8 === undefined ? undefined : _positionA_coords8.screenX) !== ((_positionB_coords8 = positionB.coords) === null || _positionB_coords8 === undefined ? undefined : _positionB_coords8.screenX) || ((_positionA_coords9 = positionA.coords) === null || _positionA_coords9 === undefined ? undefined : _positionA_coords9.screenY) !== ((_positionB_coords9 = positionB.coords) === null || _positionB_coords9 === undefined ? undefined : _positionB_coords9.screenY) || ((_positionA_caret = positionA.caret) === null || _positionA_caret === undefined ? undefined : _positionA_caret.node) !== ((_positionB_caret = positionB.caret) === null || _positionB_caret === undefined ? undefined : _positionB_caret.node) || ((_positionA_caret1 = positionA.caret) === null || _positionA_caret1 === undefined ? undefined : _positionA_caret1.offset) !== ((_positionB_caret1 = positionB.caret) === null || _positionB_caret1 === undefined ? undefined : _positionB_caret1.offset);\n}\n\nexport { isDifferentPointerPosition };\n","import '../../event/behavior/click.js';\nimport '../../event/behavior/cut.js';\nimport '../../event/behavior/keydown.js';\nimport '../../event/behavior/keypress.js';\nimport '../../event/behavior/keyup.js';\nimport '../../event/behavior/paste.js';\nimport '@testing-library/dom';\nimport '../../utils/dataTransfer/Clipboard.js';\nimport { isDisabled } from '../../utils/misc/isDisabled.js';\nimport { getTreeDiff } from '../../utils/misc/getTreeDiff.js';\nimport { focusElement } from '../../event/focus.js';\nimport { setSelectionPerMouseDown } from '../../event/selection/setSelectionPerMouse.js';\nimport { modifySelectionPerMouseMove } from '../../event/selection/modifySelectionPerMouse.js';\nimport { getMouseEventButton, Buttons } from './buttons.js';\nimport { isDifferentPointerPosition } from './shared.js';\n\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n/**\n * This object is the single \"virtual\" mouse that might be controlled by multiple different pointer devices.\n */ class Mouse {\n move(instance, position, /** Whether `preventDefault()` has been called on the `pointerdown` event */ isPrevented) {\n const prevPosition = this.position;\n const prevTarget = this.getTarget(instance);\n this.position = position;\n if (!isDifferentPointerPosition(prevPosition, position)) {\n return;\n }\n const nextTarget = this.getTarget(instance);\n const init = this.getEventInit('mousemove');\n const [leave, enter] = getTreeDiff(prevTarget, nextTarget);\n return {\n leave: ()=>{\n if (prevTarget !== nextTarget) {\n instance.dispatchUIEvent(prevTarget, 'mouseout', init);\n leave.forEach((el)=>instance.dispatchUIEvent(el, 'mouseleave', init));\n }\n },\n enter: ()=>{\n if (prevTarget !== nextTarget) {\n instance.dispatchUIEvent(nextTarget, 'mouseover', init);\n enter.forEach((el)=>instance.dispatchUIEvent(el, 'mouseenter', init));\n }\n },\n move: ()=>{\n if (isPrevented) {\n return;\n }\n instance.dispatchUIEvent(nextTarget, 'mousemove', init);\n this.modifySelecting(instance);\n }\n };\n }\n down(instance, keyDef, /** Whether `preventDefault()` has been called on the `pointerdown` event */ isPrevented) {\n const button = this.buttons.down(keyDef);\n if (button === undefined) {\n return;\n }\n const target = this.getTarget(instance);\n this.buttonDownTarget[button] = target;\n const init = this.getEventInit('mousedown', keyDef.button);\n const disabled = isDisabled(target);\n if (!isPrevented && (disabled || instance.dispatchUIEvent(target, 'mousedown', init))) {\n this.startSelecting(instance, init.detail);\n focusElement(target);\n }\n if (!disabled && getMouseEventButton(keyDef.button) === 2) {\n instance.dispatchUIEvent(target, 'contextmenu', this.getEventInit('contextmenu', keyDef.button));\n }\n }\n up(instance, keyDef, /** Whether `preventDefault()` has been called on the `pointerdown` event */ isPrevented) {\n const button = this.buttons.up(keyDef);\n if (button === undefined) {\n return;\n }\n const target = this.getTarget(instance);\n if (!isDisabled(target)) {\n if (!isPrevented) {\n const mouseUpInit = this.getEventInit('mouseup', keyDef.button);\n instance.dispatchUIEvent(target, 'mouseup', mouseUpInit);\n this.endSelecting();\n }\n const clickTarget = getTreeDiff(this.buttonDownTarget[button], target)[2][0];\n if (clickTarget) {\n const init = this.getEventInit('click', keyDef.button);\n if (init.detail) {\n instance.dispatchUIEvent(clickTarget, init.button === 0 ? 'click' : 'auxclick', init);\n if (init.button === 0 && init.detail === 2) {\n instance.dispatchUIEvent(clickTarget, 'dblclick', {\n ...this.getEventInit('dblclick', keyDef.button),\n detail: init.detail\n });\n }\n }\n }\n }\n }\n resetClickCount() {\n this.clickCount.reset();\n }\n getEventInit(type, button) {\n const init = {\n ...this.position.coords\n };\n init.button = getMouseEventButton(button);\n init.buttons = this.buttons.getButtons();\n if (type === 'mousedown') {\n init.detail = this.clickCount.getOnDown(init.button);\n } else if (type === 'mouseup') {\n init.detail = this.clickCount.getOnUp(init.button);\n } else if (type === 'click' || type === 'auxclick') {\n init.detail = this.clickCount.incOnClick(init.button);\n }\n return init;\n }\n getTarget(instance) {\n var _this_position_target;\n return (_this_position_target = this.position.target) !== null && _this_position_target !== undefined ? _this_position_target : instance.config.document.body;\n }\n startSelecting(instance, clickCount) {\n var _this_position_caret, _this_position_caret1;\n // TODO: support extending range (shift)\n this.selecting = setSelectionPerMouseDown({\n document: instance.config.document,\n target: this.getTarget(instance),\n node: (_this_position_caret = this.position.caret) === null || _this_position_caret === undefined ? undefined : _this_position_caret.node,\n offset: (_this_position_caret1 = this.position.caret) === null || _this_position_caret1 === undefined ? undefined : _this_position_caret1.offset,\n clickCount\n });\n }\n modifySelecting(instance) {\n var _this_position_caret, _this_position_caret1;\n if (!this.selecting) {\n return;\n }\n modifySelectionPerMouseMove(this.selecting, {\n document: instance.config.document,\n target: this.getTarget(instance),\n node: (_this_position_caret = this.position.caret) === null || _this_position_caret === undefined ? undefined : _this_position_caret.node,\n offset: (_this_position_caret1 = this.position.caret) === null || _this_position_caret1 === undefined ? undefined : _this_position_caret1.offset\n });\n }\n endSelecting() {\n this.selecting = undefined;\n }\n constructor(){\n _define_property(this, \"position\", {});\n _define_property(this, \"buttons\", new Buttons());\n _define_property(this, \"selecting\", undefined);\n _define_property(this, \"buttonDownTarget\", {});\n // According to spec the `detail` on click events should be the number\n // of *consecutive* clicks with a specific button.\n // On `mousedown` and `mouseup` it should be this number increased by one.\n // But the browsers don't implement it this way.\n // If another button is pressed,\n // in Webkit: the `mouseup` on the previously pressed button has `detail: 0` and no `click`/`auxclick`.\n // in Gecko: the `mouseup` and click events have the same detail as the `mousedown`.\n // If there is a delay while a button is pressed,\n // the `mouseup` and `click` are normal, but a following `mousedown` starts a new click count.\n // We'll follow the minimal implementation of Webkit.\n _define_property(this, \"clickCount\", new class {\n incOnClick(button) {\n const current = this.down[button] === undefined ? undefined : Number(this.down[button]) + 1;\n this.count = this.count[button] === undefined ? {} : {\n [button]: Number(this.count[button]) + 1\n };\n return current;\n }\n getOnDown(button) {\n var _this_count_button;\n this.down = {\n [button]: (_this_count_button = this.count[button]) !== null && _this_count_button !== undefined ? _this_count_button : 0\n };\n var _this_count_button1;\n this.count = {\n [button]: (_this_count_button1 = this.count[button]) !== null && _this_count_button1 !== undefined ? _this_count_button1 : 0\n };\n return Number(this.count[button]) + 1;\n }\n getOnUp(button) {\n return this.down[button] === undefined ? undefined : Number(this.down[button]) + 1;\n }\n reset() {\n this.count = {};\n }\n constructor(){\n _define_property(this, \"down\", {});\n _define_property(this, \"count\", {});\n }\n }());\n }\n}\n\nexport { Mouse };\n","import { PointerEventsCheckLevel } from '../../options.js';\nimport { getWindow } from '../misc/getWindow.js';\nimport { isElementType } from '../misc/isElementType.js';\nimport { ApiLevel, getLevelRef } from '../misc/level.js';\n\nfunction hasPointerEvents(instance, element) {\n var _checkPointerEvents;\n return ((_checkPointerEvents = checkPointerEvents(instance, element)) === null || _checkPointerEvents === undefined ? undefined : _checkPointerEvents.pointerEvents) !== 'none';\n}\nfunction closestPointerEventsDeclaration(element) {\n const window = getWindow(element);\n for(let el = element, tree = []; el === null || el === undefined ? undefined : el.ownerDocument; el = el.parentElement){\n tree.push(el);\n const pointerEvents = window.getComputedStyle(el).pointerEvents;\n if (pointerEvents && ![\n 'inherit',\n 'unset'\n ].includes(pointerEvents)) {\n return {\n pointerEvents,\n tree\n };\n }\n }\n return undefined;\n}\nconst PointerEventsCheck = Symbol('Last check for pointer-events');\nfunction checkPointerEvents(instance, element) {\n const lastCheck = element[PointerEventsCheck];\n const needsCheck = instance.config.pointerEventsCheck !== PointerEventsCheckLevel.Never && (!lastCheck || hasBitFlag(instance.config.pointerEventsCheck, PointerEventsCheckLevel.EachApiCall) && lastCheck[ApiLevel.Call] !== getLevelRef(instance, ApiLevel.Call) || hasBitFlag(instance.config.pointerEventsCheck, PointerEventsCheckLevel.EachTrigger) && lastCheck[ApiLevel.Trigger] !== getLevelRef(instance, ApiLevel.Trigger));\n if (!needsCheck) {\n return lastCheck === null || lastCheck === undefined ? undefined : lastCheck.result;\n }\n const declaration = closestPointerEventsDeclaration(element);\n element[PointerEventsCheck] = {\n [ApiLevel.Call]: getLevelRef(instance, ApiLevel.Call),\n [ApiLevel.Trigger]: getLevelRef(instance, ApiLevel.Trigger),\n result: declaration\n };\n return declaration;\n}\nfunction assertPointerEvents(instance, element) {\n const declaration = checkPointerEvents(instance, element);\n if ((declaration === null || declaration === undefined ? undefined : declaration.pointerEvents) === 'none') {\n throw new Error([\n `Unable to perform pointer interaction as the element ${declaration.tree.length > 1 ? 'inherits' : 'has'} \\`pointer-events: none\\`:`,\n '',\n printTree(declaration.tree)\n ].join('\\n'));\n }\n}\nfunction printTree(tree) {\n return tree.reverse().map((el, i)=>[\n ''.padEnd(i),\n el.tagName,\n el.id && `#${el.id}`,\n el.hasAttribute('data-testid') && `(testId=${el.getAttribute('data-testid')})`,\n getLabelDescr(el),\n tree.length > 1 && i === 0 && ' <-- This element declared `pointer-events: none`',\n tree.length > 1 && i === tree.length - 1 && ' <-- Asserted pointer events here'\n ].filter(Boolean).join('')).join('\\n');\n}\nfunction getLabelDescr(element) {\n var _element_labels;\n let label;\n if (element.hasAttribute('aria-label')) {\n label = element.getAttribute('aria-label');\n } else if (element.hasAttribute('aria-labelledby')) {\n var _element_ownerDocument_getElementById_textContent, _element_ownerDocument_getElementById;\n label = (_element_ownerDocument_getElementById = element.ownerDocument.getElementById(element.getAttribute('aria-labelledby'))) === null || _element_ownerDocument_getElementById === undefined ? undefined : (_element_ownerDocument_getElementById_textContent = _element_ownerDocument_getElementById.textContent) === null || _element_ownerDocument_getElementById_textContent === undefined ? undefined : _element_ownerDocument_getElementById_textContent.trim();\n } else if (isElementType(element, [\n 'button',\n 'input',\n 'meter',\n 'output',\n 'progress',\n 'select',\n 'textarea'\n ]) && ((_element_labels = element.labels) === null || _element_labels === undefined ? undefined : _element_labels.length)) {\n label = Array.from(element.labels).map((el)=>{\n var _el_textContent;\n return (_el_textContent = el.textContent) === null || _el_textContent === undefined ? undefined : _el_textContent.trim();\n }).join('|');\n } else if (isElementType(element, 'button')) {\n var _element_textContent;\n label = (_element_textContent = element.textContent) === null || _element_textContent === undefined ? undefined : _element_textContent.trim();\n }\n label = label === null || label === undefined ? undefined : label.replace(/\\n/g, ' ');\n if (Number(label === null || label === undefined ? undefined : label.length) > 30) {\n label = `${label === null || label === undefined ? undefined : label.substring(0, 29)}…`;\n }\n return label ? `(label=${label})` : '';\n}\n// With the eslint rule and prettier the bitwise operation isn't nice to read\nfunction hasBitFlag(conf, flag) {\n // eslint-disable-next-line no-bitwise\n return (conf & flag) > 0;\n}\n\nexport { assertPointerEvents, hasPointerEvents };\n","import '../../utils/dataTransfer/Clipboard.js';\nimport { getTreeDiff } from '../../utils/misc/getTreeDiff.js';\nimport { assertPointerEvents, hasPointerEvents } from '../../utils/pointer/cssPointerEvents.js';\nimport { isDifferentPointerPosition } from './shared.js';\nimport { getMouseEventButton } from './buttons.js';\n\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nclass Pointer {\n init(instance) {\n const target = this.getTarget(instance);\n const [, enter] = getTreeDiff(null, target);\n const init = this.getEventInit();\n assertPointerEvents(instance, target);\n instance.dispatchUIEvent(target, 'pointerover', init);\n enter.forEach((el)=>instance.dispatchUIEvent(el, 'pointerenter', init));\n return this;\n }\n move(instance, position) {\n const prevPosition = this.position;\n const prevTarget = this.getTarget(instance);\n this.position = position;\n if (!isDifferentPointerPosition(prevPosition, position)) {\n return;\n }\n const nextTarget = this.getTarget(instance);\n const init = this.getEventInit(-1);\n const [leave, enter] = getTreeDiff(prevTarget, nextTarget);\n return {\n leave: ()=>{\n if (hasPointerEvents(instance, prevTarget)) {\n if (prevTarget !== nextTarget) {\n instance.dispatchUIEvent(prevTarget, 'pointerout', init);\n leave.forEach((el)=>instance.dispatchUIEvent(el, 'pointerleave', init));\n }\n }\n },\n enter: ()=>{\n assertPointerEvents(instance, nextTarget);\n if (prevTarget !== nextTarget) {\n instance.dispatchUIEvent(nextTarget, 'pointerover', init);\n enter.forEach((el)=>instance.dispatchUIEvent(el, 'pointerenter', init));\n }\n },\n move: ()=>{\n instance.dispatchUIEvent(nextTarget, 'pointermove', init);\n }\n };\n }\n down(instance, button = 0) {\n if (this.isDown) {\n return;\n }\n const target = this.getTarget(instance);\n assertPointerEvents(instance, target);\n this.isDown = true;\n this.isPrevented = !instance.dispatchUIEvent(target, 'pointerdown', this.getEventInit(button));\n }\n up(instance, button = 0) {\n if (!this.isDown) {\n return;\n }\n const target = this.getTarget(instance);\n assertPointerEvents(instance, target);\n this.isPrevented = false;\n this.isDown = false;\n instance.dispatchUIEvent(target, 'pointerup', this.getEventInit(button));\n }\n release(instance) {\n const target = this.getTarget(instance);\n const [leave] = getTreeDiff(target, null);\n const init = this.getEventInit();\n // Currently there is no PointerEventsCheckLevel that would\n // make this check not use the *asserted* cached value from `up`.\n /* istanbul ignore else */ if (hasPointerEvents(instance, target)) {\n instance.dispatchUIEvent(target, 'pointerout', init);\n leave.forEach((el)=>instance.dispatchUIEvent(el, 'pointerleave', init));\n }\n this.isCancelled = true;\n }\n getTarget(instance) {\n var _this_position_target;\n return (_this_position_target = this.position.target) !== null && _this_position_target !== undefined ? _this_position_target : instance.config.document.body;\n }\n getEventInit(/**\n * The `button` that caused the event.\n *\n * This should be `-1` if the event is not caused by a button or touch/pen contact,\n * e.g. a moving pointer.\n */ button) {\n return {\n ...this.position.coords,\n pointerId: this.pointerId,\n pointerType: this.pointerType,\n isPrimary: this.isPrimary,\n button: getMouseEventButton(button),\n buttons: this.buttons.getButtons()\n };\n }\n constructor({ pointerId, pointerType, isPrimary }, buttons){\n _define_property(this, \"pointerId\", undefined);\n _define_property(this, \"pointerType\", undefined);\n _define_property(this, \"isPrimary\", undefined);\n _define_property(this, \"buttons\", undefined);\n _define_property(this, \"isMultitouch\", false);\n _define_property(this, \"isCancelled\", false);\n _define_property(this, \"isDown\", false);\n _define_property(this, \"isPrevented\", false);\n _define_property(this, \"position\", {});\n this.pointerId = pointerId;\n this.pointerType = pointerType;\n this.isPrimary = isPrimary;\n this.isMultitouch = !isPrimary;\n this.buttons = buttons;\n }\n}\n\nexport { Pointer };\n","import { Buttons } from './buttons.js';\nimport { Device } from './device.js';\nimport { Mouse } from './mouse.js';\nimport { Pointer } from './pointer.js';\n\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nclass PointerHost {\n isKeyPressed(keyDef) {\n return this.devices.get(keyDef.pointerType).isPressed(keyDef);\n }\n async press(instance, keyDef, position) {\n this.devices.get(keyDef.pointerType).addPressed(keyDef);\n this.buttons.down(keyDef);\n const pointerName = this.getPointerName(keyDef);\n const pointer = keyDef.pointerType === 'touch' ? this.pointers.new(pointerName, keyDef.pointerType, this.buttons) : this.pointers.get(pointerName);\n // TODO: deprecate the following implicit setting of position\n pointer.position = position;\n if (pointer.pointerType !== 'touch') {\n this.mouse.position = position;\n }\n if (pointer.pointerType === 'touch') {\n pointer.init(instance);\n }\n pointer.down(instance, keyDef.button);\n if (pointer.pointerType !== 'touch') {\n this.mouse.down(instance, keyDef, pointer.isPrevented);\n }\n }\n async move(instance, pointerName, position) {\n const pointer = this.pointers.get(pointerName);\n // In (some?) browsers this order of events can be observed.\n // This interweaving of events is probably unnecessary.\n // While the order of mouse (or pointer) events is defined per spec,\n // the order in which they interweave/follow on a user interaction depends on the implementation.\n const pointermove = pointer.move(instance, position);\n const mousemove = pointer.pointerType === 'touch' ? undefined : this.mouse.move(instance, position, pointer.isPrevented);\n pointermove === null || pointermove === undefined ? undefined : pointermove.leave();\n mousemove === null || mousemove === undefined ? undefined : mousemove.leave();\n pointermove === null || pointermove === undefined ? undefined : pointermove.enter();\n mousemove === null || mousemove === undefined ? undefined : mousemove.enter();\n pointermove === null || pointermove === undefined ? undefined : pointermove.move();\n mousemove === null || mousemove === undefined ? undefined : mousemove.move();\n }\n async release(instance, keyDef, position) {\n const device = this.devices.get(keyDef.pointerType);\n device.removePressed(keyDef);\n this.buttons.up(keyDef);\n const pointer = this.pointers.get(this.getPointerName(keyDef));\n const isPrevented = pointer.isPrevented;\n // TODO: deprecate the following implicit setting of position\n pointer.position = position;\n if (pointer.pointerType !== 'touch') {\n this.mouse.position = position;\n }\n if (device.countPressed === 0) {\n pointer.up(instance, keyDef.button);\n }\n if (pointer.pointerType === 'touch') {\n pointer.release(instance);\n }\n if (pointer.pointerType === 'touch' && !pointer.isMultitouch) {\n const mousemove = this.mouse.move(instance, position, isPrevented);\n mousemove === null || mousemove === undefined ? undefined : mousemove.leave();\n mousemove === null || mousemove === undefined ? undefined : mousemove.enter();\n mousemove === null || mousemove === undefined ? undefined : mousemove.move();\n this.mouse.down(instance, keyDef, isPrevented);\n }\n if (!pointer.isMultitouch) {\n const mousemove = this.mouse.move(instance, position, isPrevented);\n mousemove === null || mousemove === undefined ? undefined : mousemove.leave();\n mousemove === null || mousemove === undefined ? undefined : mousemove.enter();\n mousemove === null || mousemove === undefined ? undefined : mousemove.move();\n this.mouse.up(instance, keyDef, isPrevented);\n }\n }\n getPointerName(keyDef) {\n return keyDef.pointerType === 'touch' ? keyDef.name : keyDef.pointerType;\n }\n getPreviousPosition(pointerName) {\n return this.pointers.has(pointerName) ? this.pointers.get(pointerName).position : undefined;\n }\n resetClickCount() {\n this.mouse.resetClickCount();\n }\n getMouseTarget(instance) {\n var _this_mouse_position_target;\n return (_this_mouse_position_target = this.mouse.position.target) !== null && _this_mouse_position_target !== undefined ? _this_mouse_position_target : instance.config.document.body;\n }\n setMousePosition(position) {\n this.mouse.position = position;\n this.pointers.get('mouse').position = position;\n }\n constructor(system){\n _define_property(this, \"system\", undefined);\n _define_property(this, \"mouse\", undefined);\n _define_property(this, \"buttons\", undefined);\n _define_property(this, \"devices\", new class {\n get(k) {\n var _this_registry, _k;\n var _;\n return (_ = (_this_registry = this.registry)[_k = k]) !== null && _ !== undefined ? _ : _this_registry[_k] = new Device();\n }\n constructor(){\n _define_property(this, \"registry\", {});\n }\n }());\n _define_property(this, \"pointers\", new class {\n new(pointerName, pointerType, buttons) {\n const isPrimary = pointerType !== 'touch' || !Object.values(this.registry).some((p)=>p.pointerType === 'touch' && !p.isCancelled);\n if (!isPrimary) {\n Object.values(this.registry).forEach((p)=>{\n if (p.pointerType === pointerType && !p.isCancelled) {\n p.isMultitouch = true;\n }\n });\n }\n this.registry[pointerName] = new Pointer({\n pointerId: this.nextId++,\n pointerType,\n isPrimary\n }, buttons);\n return this.registry[pointerName];\n }\n get(pointerName) {\n if (!this.has(pointerName)) {\n throw new Error(`Trying to access pointer \"${pointerName}\" which does not exist.`);\n }\n return this.registry[pointerName];\n }\n has(pointerName) {\n return pointerName in this.registry;\n }\n constructor(){\n _define_property(this, \"registry\", {});\n _define_property(this, \"nextId\", 1);\n }\n }());\n this.system = system;\n this.buttons = new Buttons();\n this.mouse = new Mouse();\n this.pointers.new('mouse', 'mouse', this.buttons);\n }\n}\n\nexport { PointerHost };\n","import { KeyboardHost } from './keyboard.js';\nimport { PointerHost } from './pointer/index.js';\n\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n/**\n * @internal Do not create/alter this by yourself as this type might be subject to changes.\n */ class System {\n getUIEventModifiers() {\n return {\n altKey: this.keyboard.modifiers.Alt,\n ctrlKey: this.keyboard.modifiers.Control,\n metaKey: this.keyboard.modifiers.Meta,\n shiftKey: this.keyboard.modifiers.Shift,\n modifierAltGraph: this.keyboard.modifiers.AltGraph,\n modifierCapsLock: this.keyboard.modifiers.CapsLock,\n modifierFn: this.keyboard.modifiers.Fn,\n modifierFnLock: this.keyboard.modifiers.FnLock,\n modifierNumLock: this.keyboard.modifiers.NumLock,\n modifierScrollLock: this.keyboard.modifiers.ScrollLock,\n modifierSymbol: this.keyboard.modifiers.Symbol,\n modifierSymbolLock: this.keyboard.modifiers.SymbolLock\n };\n }\n constructor(){\n _define_property(this, \"keyboard\", new KeyboardHost(this));\n _define_property(this, \"pointer\", new PointerHost(this));\n }\n}\n\nexport { System };\n","async function click(element) {\n const pointerIn = [];\n if (!this.config.skipHover) {\n pointerIn.push({\n target: element\n });\n }\n pointerIn.push({\n keys: '[MouseLeft]',\n target: element\n });\n return this.pointer(pointerIn);\n}\nasync function dblClick(element) {\n return this.pointer([\n {\n target: element\n },\n '[MouseLeft][MouseLeft]'\n ]);\n}\nasync function tripleClick(element) {\n return this.pointer([\n {\n target: element\n },\n '[MouseLeft][MouseLeft][MouseLeft]'\n ]);\n}\n\nexport { click, dblClick, tripleClick };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { assertPointerEvents } from '../utils/pointer/cssPointerEvents.js';\n\nasync function hover(element) {\n return this.pointer({\n target: element\n });\n}\nasync function unhover(element) {\n assertPointerEvents(this, this.system.pointer.getMouseTarget(this));\n return this.pointer({\n target: element.ownerDocument.body\n });\n}\n\nexport { hover, unhover };\n","async function tab({ shift } = {}) {\n return this.keyboard(shift === true ? '{Shift>}{Tab}{/Shift}' : shift === false ? '[/ShiftLeft][/ShiftRight]{Tab}' : '{Tab}');\n}\n\nexport { tab };\n","var bracketDict = /*#__PURE__*/ function(bracketDict) {\n bracketDict[\"{\"] = \"}\";\n bracketDict[\"[\"] = \"]\";\n return bracketDict;\n}(bracketDict || {});\n/**\n * Read the next key definition from user input\n *\n * Describe key per `{descriptor}` or `[descriptor]`.\n * Everything else will be interpreted as a single character as descriptor - e.g. `a`.\n * Brackets `{` and `[` can be escaped by doubling - e.g. `foo[[bar` translates to `foo[bar`.\n * A previously pressed key can be released per `{/descriptor}`.\n * Keeping the key pressed can be written as `{descriptor>}`.\n * When keeping the key pressed you can choose how long the key is pressed `{descriptor>3}`.\n * You can then release the key per `{descriptor>3/}` or keep it pressed and continue with the next key.\n */ function readNextDescriptor(text, context) {\n let pos = 0;\n const startBracket = text[pos] in bracketDict ? text[pos] : '';\n pos += startBracket.length;\n const isEscapedChar = new RegExp(`^\\\\${startBracket}{2}`).test(text);\n const type = isEscapedChar ? '' : startBracket;\n return {\n type,\n ...type === '' ? readPrintableChar(text, pos, context) : readTag(text, pos, type, context)\n };\n}\nfunction readPrintableChar(text, pos, context) {\n const descriptor = text[pos];\n assertDescriptor(descriptor, text, pos, context);\n pos += descriptor.length;\n return {\n consumedLength: pos,\n descriptor,\n releasePrevious: false,\n releaseSelf: true,\n repeat: 1\n };\n}\nfunction readTag(text, pos, startBracket, context) {\n var _text_slice_match, _text_slice_match1;\n const releasePreviousModifier = text[pos] === '/' ? '/' : '';\n pos += releasePreviousModifier.length;\n const escapedDescriptor = startBracket === '{' && text[pos] === '\\\\';\n pos += Number(escapedDescriptor);\n const descriptor = escapedDescriptor ? text[pos] : (_text_slice_match = text.slice(pos).match(startBracket === '{' ? /^\\w+|^[^}>/]/ : /^\\w+/)) === null || _text_slice_match === undefined ? undefined : _text_slice_match[0];\n assertDescriptor(descriptor, text, pos, context);\n pos += descriptor.length;\n var _text_slice_match_;\n const repeatModifier = (_text_slice_match_ = (_text_slice_match1 = text.slice(pos).match(/^>\\d+/)) === null || _text_slice_match1 === undefined ? undefined : _text_slice_match1[0]) !== null && _text_slice_match_ !== undefined ? _text_slice_match_ : '';\n pos += repeatModifier.length;\n const releaseSelfModifier = text[pos] === '/' || !repeatModifier && text[pos] === '>' ? text[pos] : '';\n pos += releaseSelfModifier.length;\n const expectedEndBracket = bracketDict[startBracket];\n const endBracket = text[pos] === expectedEndBracket ? expectedEndBracket : '';\n if (!endBracket) {\n throw new Error(getErrorMessage([\n !repeatModifier && 'repeat modifier',\n !releaseSelfModifier && 'release modifier',\n `\"${expectedEndBracket}\"`\n ].filter(Boolean).join(' or '), text[pos], text, context));\n }\n pos += endBracket.length;\n return {\n consumedLength: pos,\n descriptor,\n releasePrevious: !!releasePreviousModifier,\n repeat: repeatModifier ? Math.max(Number(repeatModifier.substr(1)), 1) : 1,\n releaseSelf: hasReleaseSelf(releaseSelfModifier, repeatModifier)\n };\n}\nfunction assertDescriptor(descriptor, text, pos, context) {\n if (!descriptor) {\n throw new Error(getErrorMessage('key descriptor', text[pos], text, context));\n }\n}\nfunction hasReleaseSelf(releaseSelfModifier, repeatModifier) {\n if (releaseSelfModifier) {\n return releaseSelfModifier === '/';\n }\n if (repeatModifier) {\n return false;\n }\n}\nfunction getErrorMessage(expected, found, text, context) {\n return `Expected ${expected} but found \"${found !== null && found !== undefined ? found : ''}\" in \"${text}\"\n See ${context === 'pointer' ? `https://testing-library.com/docs/user-event/pointer#pressing-a-button-or-touching-the-screen` : `https://testing-library.com/docs/user-event/keyboard`}\n for more information about how userEvent parses your input.`;\n}\n\nexport { readNextDescriptor };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { readNextDescriptor } from '../utils/keyDef/readNextDescriptor.js';\n\n/**\n * Parse key definitions per `keyboardMap`\n *\n * Keys can be referenced by `{key}` or `{special}` as well as physical locations per `[code]`.\n * Everything else will be interpreted as a typed character - e.g. `a`.\n * Brackets `{` and `[` can be escaped by doubling - e.g. `foo[[bar` translates to `foo[bar`.\n * Keeping the key pressed can be written as `{key>}`.\n * When keeping the key pressed you can choose how long (how many keydown and keypress) the key is pressed `{key>3}`.\n * You can then release the key per `{key>3/}` or keep it pressed and continue with the next key.\n */ function parseKeyDef(keyboardMap, text) {\n const defs = [];\n do {\n const { type, descriptor, consumedLength, releasePrevious, releaseSelf = true, repeat } = readNextDescriptor(text, 'keyboard');\n var _keyboardMap_find;\n const keyDef = (_keyboardMap_find = keyboardMap.find((def)=>{\n if (type === '[') {\n var _def_code;\n return ((_def_code = def.code) === null || _def_code === undefined ? undefined : _def_code.toLowerCase()) === descriptor.toLowerCase();\n } else if (type === '{') {\n var _def_key;\n return ((_def_key = def.key) === null || _def_key === undefined ? undefined : _def_key.toLowerCase()) === descriptor.toLowerCase();\n }\n return def.key === descriptor;\n })) !== null && _keyboardMap_find !== undefined ? _keyboardMap_find : {\n key: 'Unknown',\n code: 'Unknown',\n [type === '[' ? 'code' : 'key']: descriptor\n };\n defs.push({\n keyDef,\n releasePrevious,\n releaseSelf,\n repeat\n });\n text = text.slice(consumedLength);\n }while (text)\n return defs;\n}\n\nexport { parseKeyDef };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { parseKeyDef } from './parseKeyDef.js';\n\nasync function keyboard(text) {\n const actions = parseKeyDef(this.config.keyboardMap, text);\n for(let i = 0; i < actions.length; i++){\n await wait(this.config);\n await keyboardAction(this, actions[i]);\n }\n}\nasync function keyboardAction(instance, { keyDef, releasePrevious, releaseSelf, repeat }) {\n const { system } = instance;\n // Release the key automatically if it was pressed before.\n if (system.keyboard.isKeyPressed(keyDef)) {\n await system.keyboard.keyup(instance, keyDef);\n }\n if (!releasePrevious) {\n for(let i = 1; i <= repeat; i++){\n await system.keyboard.keydown(instance, keyDef);\n if (i < repeat) {\n await wait(instance.config);\n }\n }\n // Release the key only on the last iteration on `state.repeatKey`.\n if (releaseSelf) {\n await system.keyboard.keyup(instance, keyDef);\n }\n }\n}\nasync function releaseAllKeys(instance) {\n for (const k of instance.system.keyboard.getPressedKeys()){\n await instance.system.keyboard.keyup(instance, k);\n }\n}\n\nexport { keyboard, releaseAllKeys };\n","import { createDataTransfer } from '../utils/dataTransfer/DataTransfer.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { hasOwnSelection } from '../utils/focus/selection.js';\nimport { getUISelection, getUIValue } from './UI.js';\n\nfunction copySelection(target) {\n const data = hasOwnSelection(target) ? {\n 'text/plain': readSelectedValueFromInput(target)\n } : {\n 'text/plain': String(target.ownerDocument.getSelection())\n };\n const dt = createDataTransfer(getWindow(target));\n for(const type in data){\n if (data[type]) {\n dt.setData(type, data[type]);\n }\n }\n return dt;\n}\nfunction readSelectedValueFromInput(target) {\n const sel = getUISelection(target);\n const val = getUIValue(target);\n return val.substring(sel.startOffset, sel.endOffset);\n}\n\nexport { copySelection };\n","import { writeDataTransferToClipboard } from '../utils/dataTransfer/Clipboard.js';\nimport { copySelection } from '../document/copySelection.js';\n\nasync function copy() {\n const doc = this.config.document;\n var _doc_activeElement;\n const target = (_doc_activeElement = doc.activeElement) !== null && _doc_activeElement !== undefined ? _doc_activeElement : /* istanbul ignore next */ doc.body;\n const clipboardData = copySelection(target);\n if (clipboardData.items.length === 0) {\n return;\n }\n if (this.dispatchUIEvent(target, 'copy', {\n clipboardData\n }) && this.config.writeToClipboard) {\n await writeDataTransferToClipboard(doc, clipboardData);\n }\n return clipboardData;\n}\n\nexport { copy };\n","import { writeDataTransferToClipboard } from '../utils/dataTransfer/Clipboard.js';\nimport { copySelection } from '../document/copySelection.js';\n\nasync function cut() {\n const doc = this.config.document;\n var _doc_activeElement;\n const target = (_doc_activeElement = doc.activeElement) !== null && _doc_activeElement !== undefined ? _doc_activeElement : /* istanbul ignore next */ doc.body;\n const clipboardData = copySelection(target);\n if (clipboardData.items.length === 0) {\n return;\n }\n if (this.dispatchUIEvent(target, 'cut', {\n clipboardData\n }) && this.config.writeToClipboard) {\n await writeDataTransferToClipboard(target.ownerDocument, clipboardData);\n }\n return clipboardData;\n}\n\nexport { cut };\n","import { createDataTransfer } from '../utils/dataTransfer/DataTransfer.js';\nimport { readDataTransferFromClipboard } from '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\n\nasync function paste(clipboardData) {\n const doc = this.config.document;\n var _doc_activeElement;\n const target = (_doc_activeElement = doc.activeElement) !== null && _doc_activeElement !== undefined ? _doc_activeElement : /* istanbul ignore next */ doc.body;\n var _ref;\n const dataTransfer = (_ref = typeof clipboardData === 'string' ? getClipboardDataFromString(doc, clipboardData) : clipboardData) !== null && _ref !== undefined ? _ref : await readDataTransferFromClipboard(doc).catch(()=>{\n throw new Error('`userEvent.paste()` without `clipboardData` requires the `ClipboardAPI` to be available.');\n });\n this.dispatchUIEvent(target, 'paste', {\n clipboardData: dataTransfer\n });\n}\nfunction getClipboardDataFromString(doc, text) {\n const dt = createDataTransfer(getWindow(doc));\n dt.setData('text', text);\n return dt;\n}\n\nexport { paste };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { readNextDescriptor } from '../utils/keyDef/readNextDescriptor.js';\n\nfunction parseKeyDef(pointerMap, keys) {\n const defs = [];\n do {\n const { descriptor, consumedLength, releasePrevious, releaseSelf = true } = readNextDescriptor(keys, 'pointer');\n const keyDef = pointerMap.find((p)=>p.name === descriptor);\n if (keyDef) {\n defs.push({\n keyDef,\n releasePrevious,\n releaseSelf\n });\n }\n keys = keys.slice(consumedLength);\n }while (keys)\n return defs;\n}\n\nexport { parseKeyDef };\n","import '../utils/dataTransfer/Clipboard.js';\nimport { setLevelRef, ApiLevel } from '../utils/misc/level.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { parseKeyDef } from './parseKeyDef.js';\n\nasync function pointer(input) {\n const { pointerMap } = this.config;\n const actions = [];\n (Array.isArray(input) ? input : [\n input\n ]).forEach((actionInput)=>{\n if (typeof actionInput === 'string') {\n actions.push(...parseKeyDef(pointerMap, actionInput));\n } else if ('keys' in actionInput) {\n actions.push(...parseKeyDef(pointerMap, actionInput.keys).map((i)=>({\n ...actionInput,\n ...i\n })));\n } else {\n actions.push(actionInput);\n }\n });\n for(let i = 0; i < actions.length; i++){\n await wait(this.config);\n await pointerAction(this, actions[i]);\n }\n this.system.pointer.resetClickCount();\n}\nasync function pointerAction(instance, action) {\n var _previousPosition_caret, _previousPosition_caret1;\n const pointerName = 'pointerName' in action && action.pointerName ? action.pointerName : 'keyDef' in action ? instance.system.pointer.getPointerName(action.keyDef) : 'mouse';\n const previousPosition = instance.system.pointer.getPreviousPosition(pointerName);\n var _action_target, _action_coords, _action_node, _action_offset;\n const position = {\n target: (_action_target = action.target) !== null && _action_target !== undefined ? _action_target : getPrevTarget(instance, previousPosition),\n coords: (_action_coords = action.coords) !== null && _action_coords !== undefined ? _action_coords : previousPosition === null || previousPosition === undefined ? undefined : previousPosition.coords,\n caret: {\n node: (_action_node = action.node) !== null && _action_node !== undefined ? _action_node : hasCaretPosition(action) ? undefined : previousPosition === null || previousPosition === undefined ? undefined : (_previousPosition_caret = previousPosition.caret) === null || _previousPosition_caret === undefined ? undefined : _previousPosition_caret.node,\n offset: (_action_offset = action.offset) !== null && _action_offset !== undefined ? _action_offset : hasCaretPosition(action) ? undefined : previousPosition === null || previousPosition === undefined ? undefined : (_previousPosition_caret1 = previousPosition.caret) === null || _previousPosition_caret1 === undefined ? undefined : _previousPosition_caret1.offset\n }\n };\n if ('keyDef' in action) {\n if (instance.system.pointer.isKeyPressed(action.keyDef)) {\n setLevelRef(instance, ApiLevel.Trigger);\n await instance.system.pointer.release(instance, action.keyDef, position);\n }\n if (!action.releasePrevious) {\n setLevelRef(instance, ApiLevel.Trigger);\n await instance.system.pointer.press(instance, action.keyDef, position);\n if (action.releaseSelf) {\n setLevelRef(instance, ApiLevel.Trigger);\n await instance.system.pointer.release(instance, action.keyDef, position);\n }\n }\n } else {\n setLevelRef(instance, ApiLevel.Trigger);\n await instance.system.pointer.move(instance, pointerName, position);\n }\n}\nfunction hasCaretPosition(action) {\n var _action_target, _ref;\n return !!((_ref = (_action_target = action.target) !== null && _action_target !== undefined ? _action_target : action.node) !== null && _ref !== undefined ? _ref : action.offset !== undefined);\n}\nfunction getPrevTarget(instance, position) {\n if (!position) {\n throw new Error('This pointer has no previous position. Provide a target property!');\n }\n var _position_target;\n return (_position_target = position.target) !== null && _position_target !== undefined ? _position_target : instance.config.document.body;\n}\n\nexport { pointer };\n","import '../event/behavior/click.js';\nimport '../event/behavior/cut.js';\nimport '../event/behavior/keydown.js';\nimport '../event/behavior/keypress.js';\nimport '../event/behavior/keyup.js';\nimport '../event/behavior/paste.js';\nimport '@testing-library/dom';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { isEditable } from '../utils/edit/isEditable.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { focusElement } from '../event/focus.js';\nimport { input } from '../event/input.js';\nimport { selectAll, isAllSelected } from '../event/selection/selectAll.js';\n\nasync function clear(element) {\n if (!isEditable(element) || isDisabled(element)) {\n throw new Error('clear()` is only supported on editable elements.');\n }\n focusElement(element);\n if (element.ownerDocument.activeElement !== element) {\n throw new Error('The element to be cleared could not be focused.');\n }\n selectAll(element);\n if (!isAllSelected(element)) {\n throw new Error('The element content to be cleared could not be selected.');\n }\n input(this, element, '', 'deleteContentBackward');\n}\n\nexport { clear };\n","import { getConfig } from '@testing-library/dom';\nimport { isElementType } from '../utils/misc/isElementType.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { hasPointerEvents } from '../utils/pointer/cssPointerEvents.js';\nimport '../event/behavior/click.js';\nimport '../event/behavior/cut.js';\nimport '../event/behavior/keydown.js';\nimport '../event/behavior/keypress.js';\nimport '../event/behavior/keyup.js';\nimport '../event/behavior/paste.js';\nimport { focusElement } from '../event/focus.js';\n\nasync function selectOptions(select, values) {\n return selectOptionsBase.call(this, true, select, values);\n}\nasync function deselectOptions(select, values) {\n return selectOptionsBase.call(this, false, select, values);\n}\nasync function selectOptionsBase(newValue, select, values) {\n if (!newValue && !select.multiple) {\n throw getConfig().getElementError(`Unable to deselect an option in a non-multiple select. Use selectOptions to change the selection instead.`, select);\n }\n const valArray = Array.isArray(values) ? values : [\n values\n ];\n const allOptions = Array.from(select.querySelectorAll('option, [role=\"option\"]'));\n const selectedOptions = valArray.map((val)=>{\n if (typeof val !== 'string' && allOptions.includes(val)) {\n return val;\n } else {\n const matchingOption = allOptions.find((o)=>o.value === val || o.innerHTML === val);\n if (matchingOption) {\n return matchingOption;\n } else {\n throw getConfig().getElementError(`Value \"${String(val)}\" not found in options`, select);\n }\n }\n }).filter((option)=>!isDisabled(option));\n if (isDisabled(select) || !selectedOptions.length) return;\n const selectOption = (option)=>{\n option.selected = newValue;\n this.dispatchUIEvent(select, 'input', {\n bubbles: true,\n cancelable: false,\n composed: true\n });\n this.dispatchUIEvent(select, 'change');\n };\n if (isElementType(select, 'select')) {\n if (select.multiple) {\n for (const option of selectedOptions){\n const withPointerEvents = this.config.pointerEventsCheck === 0 ? true : hasPointerEvents(this, option);\n // events fired for multiple select are weird. Can't use hover...\n if (withPointerEvents) {\n this.dispatchUIEvent(option, 'pointerover');\n this.dispatchUIEvent(select, 'pointerenter');\n this.dispatchUIEvent(option, 'mouseover');\n this.dispatchUIEvent(select, 'mouseenter');\n this.dispatchUIEvent(option, 'pointermove');\n this.dispatchUIEvent(option, 'mousemove');\n this.dispatchUIEvent(option, 'pointerdown');\n this.dispatchUIEvent(option, 'mousedown');\n }\n focusElement(select);\n if (withPointerEvents) {\n this.dispatchUIEvent(option, 'pointerup');\n this.dispatchUIEvent(option, 'mouseup');\n }\n selectOption(option);\n if (withPointerEvents) {\n this.dispatchUIEvent(option, 'click');\n }\n await wait(this.config);\n }\n } else if (selectedOptions.length === 1) {\n const withPointerEvents = this.config.pointerEventsCheck === 0 ? true : hasPointerEvents(this, select);\n // the click to open the select options\n if (withPointerEvents) {\n await this.click(select);\n } else {\n focusElement(select);\n }\n selectOption(selectedOptions[0]);\n if (withPointerEvents) {\n // the browser triggers another click event on the select for the click on the option\n // this second click has no 'down' phase\n this.dispatchUIEvent(select, 'pointerover');\n this.dispatchUIEvent(select, 'pointerenter');\n this.dispatchUIEvent(select, 'mouseover');\n this.dispatchUIEvent(select, 'mouseenter');\n this.dispatchUIEvent(select, 'pointerup');\n this.dispatchUIEvent(select, 'mouseup');\n this.dispatchUIEvent(select, 'click');\n }\n await wait(this.config);\n } else {\n throw getConfig().getElementError(`Cannot select multiple options on a non-multiple select`, select);\n }\n } else if (select.getAttribute('role') === 'listbox') {\n for (const option of selectedOptions){\n await this.click(option);\n await this.unhover(option);\n }\n } else {\n throw getConfig().getElementError(`Cannot select options on elements that are neither select nor listbox elements`, select);\n }\n}\n\nexport { deselectOptions, selectOptions };\n","import { releaseAllKeys } from '../keyboard/index.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { setSelectionRange } from '../event/selection/setSelectionRange.js';\n\nasync function type(element, text, { skipClick = this.config.skipClick, skipAutoClose = this.config.skipAutoClose, initialSelectionStart, initialSelectionEnd } = {}) {\n // TODO: properly type guard\n // we use this workaround for now to prevent changing behavior\n if (element.disabled) return;\n if (!skipClick) {\n await this.click(element);\n }\n if (initialSelectionStart !== undefined) {\n setSelectionRange(element, initialSelectionStart, initialSelectionEnd !== null && initialSelectionEnd !== undefined ? initialSelectionEnd : initialSelectionStart);\n }\n await this.keyboard(text);\n if (!skipAutoClose) {\n await releaseAllKeys(this);\n }\n}\n\nexport { type };\n","// It is not possible to create a real FileList programmatically.\n// Therefore assigning `files` property with a programmatically created FileList results in an error.\n// Just assigning the property (as per fireEvent) breaks the interweaving with the `value` property.\nconst fakeFiles = Symbol('files and value properties are mocked');\nfunction restoreProperty(obj, prop, descriptor) {\n if (descriptor) {\n Object.defineProperty(obj, prop, descriptor);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete obj[prop];\n }\n}\nfunction setFiles(el, files) {\n var _el_fakeFiles;\n (_el_fakeFiles = el[fakeFiles]) === null || _el_fakeFiles === undefined ? undefined : _el_fakeFiles.restore();\n const typeDescr = Object.getOwnPropertyDescriptor(el, 'type');\n const valueDescr = Object.getOwnPropertyDescriptor(el, 'value');\n const filesDescr = Object.getOwnPropertyDescriptor(el, 'files');\n function restore() {\n restoreProperty(el, 'type', typeDescr);\n restoreProperty(el, 'value', valueDescr);\n restoreProperty(el, 'files', filesDescr);\n }\n el[fakeFiles] = {\n restore\n };\n Object.defineProperties(el, {\n files: {\n configurable: true,\n get: ()=>files\n },\n value: {\n configurable: true,\n get: ()=>files.length ? `C:\\\\fakepath\\\\${files[0].name}` : '',\n set (v) {\n if (v === '') {\n restore();\n } else {\n var _valueDescr_set;\n valueDescr === null || valueDescr === undefined ? undefined : (_valueDescr_set = valueDescr.set) === null || _valueDescr_set === undefined ? undefined : _valueDescr_set.call(el, v);\n }\n }\n },\n type: {\n configurable: true,\n get: ()=>'file',\n set (v) {\n if (v !== 'file') {\n restore();\n el.type = v;\n }\n }\n }\n });\n}\n\nexport { setFiles };\n","import { isElementType } from '../utils/misc/isElementType.js';\nimport { createFileList } from '../utils/dataTransfer/FileList.js';\nimport '../utils/dataTransfer/Clipboard.js';\nimport { setFiles } from '../utils/edit/setFiles.js';\nimport { isDisabled } from '../utils/misc/isDisabled.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\n\nasync function upload(element, fileOrFiles) {\n const input = isElementType(element, 'label') ? element.control : element;\n if (!input || !isElementType(input, 'input', {\n type: 'file'\n })) {\n throw new TypeError(`The ${input === element ? 'given' : 'associated'} ${input === null || input === undefined ? undefined : input.tagName} element does not accept file uploads`);\n }\n if (isDisabled(element)) return;\n const files = (Array.isArray(fileOrFiles) ? fileOrFiles : [\n fileOrFiles\n ]).filter((file)=>!this.config.applyAccept || isAcceptableFile(file, input.accept)).slice(0, input.multiple ? undefined : 1);\n const fileDialog = ()=>{\n var _input_files;\n // do not fire an input event if the file selection does not change\n if (files.length === ((_input_files = input.files) === null || _input_files === undefined ? undefined : _input_files.length) && files.every((f, i)=>{\n var _input_files;\n return f === ((_input_files = input.files) === null || _input_files === undefined ? undefined : _input_files.item(i));\n })) {\n return;\n }\n setFiles(input, createFileList(getWindow(element), files));\n this.dispatchUIEvent(input, 'input');\n this.dispatchUIEvent(input, 'change');\n };\n input.addEventListener('fileDialog', fileDialog);\n await this.click(element);\n input.removeEventListener('fileDialog', fileDialog);\n}\n// When matching files, browsers ignore case and consider jpeg/jpg interchangeable.\nfunction normalize(nameOrType) {\n return nameOrType.toLowerCase().replace(/(\\.|\\/)jpg\\b/g, '$1jpeg');\n}\nfunction isAcceptableFile(file, accept) {\n if (!accept) {\n return true;\n }\n const wildcards = [\n 'audio/*',\n 'image/*',\n 'video/*'\n ];\n return normalize(accept).trim().split(/\\s*,\\s*/).some((acceptToken)=>{\n // tokens starting with a dot represent a file extension\n if (acceptToken.startsWith('.')) {\n return normalize(file.name).endsWith(acceptToken);\n } else if (wildcards.includes(acceptToken)) {\n return normalize(file.type).startsWith(acceptToken.replace('*', ''));\n }\n return normalize(file.type) === acceptToken;\n });\n}\n\nexport { upload };\n","import { click, dblClick, tripleClick } from '../convenience/click.js';\nimport { hover, unhover } from '../convenience/hover.js';\nimport { tab } from '../convenience/tab.js';\nimport { keyboard } from '../keyboard/index.js';\nimport { copy } from '../clipboard/copy.js';\nimport { cut } from '../clipboard/cut.js';\nimport { paste } from '../clipboard/paste.js';\nimport { pointer } from '../pointer/index.js';\nimport { clear } from '../utility/clear.js';\nimport { deselectOptions, selectOptions } from '../utility/selectOptions.js';\nimport { type } from '../utility/type.js';\nimport { upload } from '../utility/upload.js';\n\nconst userEventApi = {\n click,\n dblClick,\n tripleClick,\n hover,\n unhover,\n tab,\n keyboard,\n copy,\n cut,\n paste,\n pointer,\n clear,\n deselectOptions,\n selectOptions,\n type,\n upload\n};\n\nexport { userEventApi };\n","import { getConfig } from '@testing-library/dom';\n\n/**\n * Wrap an internal Promise\n */ function wrapAsync(implementation) {\n return getConfig().asyncWrapper(implementation);\n}\n\nexport { wrapAsync };\n","import { patchFocus } from '../document/patchFocus.js';\nimport { prepareDocument } from '../document/prepareDocument.js';\nimport { dispatchEvent, dispatchUIEvent } from '../event/dispatchEvent.js';\nimport { attachClipboardStubToView } from '../utils/dataTransfer/Clipboard.js';\nimport { getWindow } from '../utils/misc/getWindow.js';\nimport { getDocumentFromNode } from '../utils/misc/getDocumentFromNode.js';\nimport { setLevelRef, ApiLevel } from '../utils/misc/level.js';\nimport { wait } from '../utils/misc/wait.js';\nimport { PointerEventsCheckLevel } from '../options.js';\nimport '@testing-library/dom';\nimport { defaultKeyMap } from '../keyboard/keyMap.js';\nimport { defaultKeyMap as defaultKeyMap$1 } from '../pointer/keyMap.js';\nimport { System } from '../system/index.js';\nimport { userEventApi } from './api.js';\nimport { wrapAsync } from './wrapAsync.js';\n\n/**\n * Default options applied when API is called per `userEvent.anyApi()`\n */ const defaultOptionsDirect = {\n applyAccept: true,\n autoModify: true,\n delay: 0,\n document: globalThis.document,\n keyboardMap: defaultKeyMap,\n pointerMap: defaultKeyMap$1,\n pointerEventsCheck: PointerEventsCheckLevel.EachApiCall,\n skipAutoClose: false,\n skipClick: false,\n skipHover: false,\n writeToClipboard: false,\n advanceTimers: ()=>Promise.resolve()\n};\n/**\n * Default options applied when API is called per `userEvent().anyApi()`\n */ const defaultOptionsSetup = {\n ...defaultOptionsDirect,\n writeToClipboard: true\n};\nfunction createConfig(options = {}, defaults = defaultOptionsSetup, node) {\n const document = getDocument(options, node, defaults);\n return {\n ...defaults,\n ...options,\n document\n };\n}\n/**\n * Start a \"session\" with userEvent.\n * All APIs returned by this function share an input device state and a default configuration.\n */ function setupMain(options = {}) {\n const config = createConfig(options);\n prepareDocument(config.document);\n patchFocus(getWindow(config.document).HTMLElement);\n var _config_document_defaultView;\n const view = (_config_document_defaultView = config.document.defaultView) !== null && _config_document_defaultView !== undefined ? _config_document_defaultView : /* istanbul ignore next */ globalThis.window;\n attachClipboardStubToView(view);\n return createInstance(config).api;\n}\n/**\n * Setup in direct call per `userEvent.anyApi()`\n */ function setupDirect({ keyboardState, pointerState, ...options } = {}, node) {\n const config = createConfig(options, defaultOptionsDirect, node);\n prepareDocument(config.document);\n patchFocus(getWindow(config.document).HTMLElement);\n var _ref;\n const system = (_ref = pointerState !== null && pointerState !== undefined ? pointerState : keyboardState) !== null && _ref !== undefined ? _ref : new System();\n return {\n api: createInstance(config, system).api,\n system\n };\n}\n/**\n * Create a set of callbacks with different default settings but the same state.\n */ function setupSub(options) {\n return createInstance({\n ...this.config,\n ...options\n }, this.system).api;\n}\nfunction wrapAndBindImpl(instance, impl) {\n function method(...args) {\n setLevelRef(instance, ApiLevel.Call);\n return wrapAsync(()=>impl.apply(instance, args).then(async (ret)=>{\n await wait(instance.config);\n return ret;\n }));\n }\n Object.defineProperty(method, 'name', {\n get: ()=>impl.name\n });\n return method;\n}\nfunction createInstance(config, system = new System()) {\n const instance = {};\n Object.assign(instance, {\n config,\n dispatchEvent: dispatchEvent.bind(instance),\n dispatchUIEvent: dispatchUIEvent.bind(instance),\n system,\n levelRefs: {},\n ...userEventApi\n });\n return {\n instance,\n api: {\n ...Object.fromEntries(Object.entries(userEventApi).map(([name, api])=>[\n name,\n wrapAndBindImpl(instance, api)\n ])),\n setup: setupSub.bind(instance)\n }\n };\n}\nfunction getDocument(options, node, defaults) {\n var _options_document, _ref;\n return (_ref = (_options_document = options.document) !== null && _options_document !== undefined ? _options_document : node && getDocumentFromNode(node)) !== null && _ref !== undefined ? _ref : defaults.document;\n}\n\nexport { createConfig, createInstance, setupDirect, setupMain, setupSub };\n","import { setupDirect } from './setup.js';\n\nfunction clear(element) {\n return setupDirect().api.clear(element);\n}\nfunction click(element, options = {}) {\n return setupDirect(options, element).api.click(element);\n}\nfunction copy(options = {}) {\n return setupDirect(options).api.copy();\n}\nfunction cut(options = {}) {\n return setupDirect(options).api.cut();\n}\nfunction dblClick(element, options = {}) {\n return setupDirect(options).api.dblClick(element);\n}\nfunction deselectOptions(select, values, options = {}) {\n return setupDirect(options).api.deselectOptions(select, values);\n}\nfunction hover(element, options = {}) {\n return setupDirect(options).api.hover(element);\n}\nasync function keyboard(text, options = {}) {\n const { api, system } = setupDirect(options);\n return api.keyboard(text).then(()=>system);\n}\nasync function pointer(input, options = {}) {\n const { api, system } = setupDirect(options);\n return api.pointer(input).then(()=>system);\n}\nfunction paste(clipboardData, options) {\n return setupDirect(options).api.paste(clipboardData);\n}\nfunction selectOptions(select, values, options = {}) {\n return setupDirect(options).api.selectOptions(select, values);\n}\nfunction tripleClick(element, options = {}) {\n return setupDirect(options).api.tripleClick(element);\n}\nfunction type(element, text, options = {}) {\n return setupDirect(options, element).api.type(element, text, options);\n}\nfunction unhover(element, options = {}) {\n const { api, system } = setupDirect(options);\n system.pointer.setMousePosition({\n target: element\n });\n return api.unhover(element);\n}\nfunction upload(element, fileOrFiles, options = {}) {\n return setupDirect(options).api.upload(element, fileOrFiles);\n}\nfunction tab(options = {}) {\n return setupDirect().api.tab(options);\n}\n\nexport { clear, click, copy, cut, dblClick, deselectOptions, hover, keyboard, paste, pointer, selectOptions, tab, tripleClick, type, unhover, upload };\n","import { setupMain } from './setup.js';\nimport * as directApi from './directApi.js';\n\nconst userEvent = {\n ...directApi,\n setup: setupMain\n};\n\nexport { userEvent };\n"],"names":["isElementType","element","tag","props","k","v","getWindow","node","_node_ownerDocument","isDocument","describe","val","readBlobText","blob","FileReader","res","rej","fr","createFileList","window","files","list","index","i","_define_property","obj","key","value","DataTransferItemStub","callback","dataOrFile","type","DataTransferItemListStub","args","item","getTypeMatcher","exact","group","sub","isGroup","createDataTransferStub","format","_this_items_find","match","text","t","data","matchIndex","createDataTransfer","dt","getBlobFromDataTransferItem","r","createClipboardItem","blobs","dataMap","b","d","ClipboardStubControl","createClipboardStub","control","isClipboardStub","clipboard","attachClipboardStubToView","realClipboard","stub","resetClipboardStubOnView","detachClipboardStubFromView","readDataTransferFromClipboard","document","items","writeDataTransferToClipboard","clipboardData","dtItem","g","FOCUSABLE_SELECTOR","isFocusable","cloneEvent","event","isDisabled","el","_el_querySelector","getActiveElement","activeElement","getActiveElementOrBody","_getActiveElement","findClosest","isContentEditable","getContentEditable","getElement","clickableInputTypes","isClickableInput","isEditable","isEditableInputOrTextArea","editableInputTypes","hasOwnSelection","isElement","hasNoSelection","updateSelectionOnFocus","selection","contenteditable","_contenteditable_firstChild","focusNode","wrapEvent","cb","_element","getConfig","focusElement","target","blurElement","behavior","instance","context","UIValue","UISelection","InitialValue","isUIValue","isUISelectionStart","start","setUIValue","getUIValue","setUIValueClean","clearInitialValue","getInitialValue","setUISelectionRaw","setUISelection","focusOffsetParam","anchorOffsetParam","mode","valueLength","sanitizeOffset","o","anchorOffset","focusOffset","startOffset","endOffset","startObj","getUISelection","_element_selectionStart","_element_selectionEnd","_element_UISelection","sel","hasUISelection","setUISelectionClean","parseInt","buildTimeValue","onlyDigitsValue","firstDigit","secondDigit","build","hours","validHours","minuteCharacters","parsedMinutes","validMinutes","isValidDateOrTimeValue","clone","maxLengthSupportedTypes","getMaxLength","_element_getAttribute","attr","supportsMaxLength","getNextCursorPosition","offset","direction","inputType","isTextNode","nextNode","getNextCharacterContentNode","nextPlusOne","getOffset","nextOffset","walkNodes","isTreatedAsCharacterContent","sibling","getDescendant","TrackChanges","isReact17Element","startTrackValue","trackOrSetValue","_element_TrackChanges_tracked","_element_TrackChanges","commitValueAfterInput","cursorOffset","_changes_tracked","changes","isJustReactStateUpdate","getTargetTypeAndSelection","getInputRange","typeAndSelection","_typeAndSelection_selection","setSelection","anchorNode","_anchorNode_ownerDocument_getSelection","_anchorNode_ownerDocument","isDateOrTime","input","inputRange","editContenteditable","editInputElement","del","nextPosition","delRange","dataToInsert","maxLength","spaceUntilMaxLength","newValue","newOffset","oldValue","calculateNewValue","isValidNumberInput","commitInput","inputData","prologEnd","prolog","epilogStart","epilog","builtValue","inputInit","_value_match","_value_match1","valueParts","getValueOrTextContent","isVisible","display","visibility","getTabDestination","shift","focusableElements","enabledElements","a","j","checkedRadio","prunedElements","activeRadioGroup","currentElement","e","moveSelection","selectAll","_getContentEditable","isAllSelected","setSelectionRange","_element_firstChild","walkRadio","_keydownBehavior_event_key","_keydownBehavior_event_key1","keydownBehavior","combinationBehavior","_getValueOrTextContent","_getValueOrTextContent_length","newPos","dest","ClickInputOnEnter","form","submit","SubmitSingleInputOnEnter","_keyupBehavior_event_key","keyupBehavior","_event_clipboardData","insertData","eventMap","getEventClass","mouseEvents","isMouseEvent","isKeyboardEvent","eventInitializer","initClipboardEvent","initUIEvent","initFocusEvent","initInputEvent","initUIEventModifiers","initMouseEvent","initPointerEvent","initKeyboardEvent","createEvent","init","EventType","defaultInit","getEventConstructors","f","_window_Event","Event","_window_AnimationEvent","AnimationEvent","_window_ClipboardEvent","ClipboardEvent","_window_PopStateEvent","PopStateEvent","_window_ProgressEvent","ProgressEvent","_window_TransitionEvent","TransitionEvent","_window_UIEvent","UIEvent","_window_CompositionEvent","CompositionEvent","_window_FocusEvent","FocusEvent","_window_InputEvent","InputEvent","_window_KeyboardEvent","KeyboardEvent","_window_MouseEvent","MouseEvent","_window_DragEvent","DragEvent","_window_PointerEvent","PointerEvent","_window_TouchEvent","TouchEvent","assignProps","sanitizeNumber","n","relatedTarget","isComposing","view","detail","altKey","ctrlKey","metaKey","shiftKey","modifierAltGraph","modifierCapsLock","modifierFn","modifierFnLock","modifierNumLock","modifierScrollLock","modifierSymbol","modifierSymbolLock","code","location","repeat","charCode","x","y","screenX","screenY","clientX","clientY","button","buttons","offsetX","offsetY","pageX","pageY","pointerId","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","dispatchUIEvent","preventDefault","dispatchEvent","_behavior_type","behaviorImplementation","defaultPrevented","dispatchDOMEvent","patched","patchFocus","HTMLElement","focus","blur","patchedFocus","patchedBlur","activeCall","options","blurred","getActiveTarget","thisCall","active","Interceptor","prepareInterceptor","propName","interceptorImpl","prototypeDescriptor","objectDescriptor","intercept","applyNative","realArgs","then","realFunc","prepareValueInterceptor","isUI","sanitizeValue","prepareSelectionInterceptor","others","prepareRangeTextInterceptor","isPrepared","prepareDocument","prepareElement","initialValue","getDocumentFromNode","ApiLevel","setLevelRef","level","getLevelRef","wait","config","delay","resolve","PointerEventsCheckLevel","DOM_KEY_LOCATION","modifierKeys","isModifierKey","modifierLocks","isModifierLock","KeyboardHost","keyDef","p","unprevented","system","_this_registry","_code","_","_this_registry_code","defaultKeyMap","c","Buttons","getMouseButtonId","MouseButton","MouseButtonFlip","getMouseEventButton","Device","getTreeDiff","treeA","treeB","resolveCaretPosition","findNodeAtTextOffset","isRoot","step","setSelectionPerMouseDown","clickCount","targetHasOwnSelection","end","getTextRange","startNode","endNode","range","pos","textPos","modifySelectionPerMouseMove","selectionRange","selectionFocus","cmp","isDifferentPointerPosition","positionA","positionB","_positionA_coords","_positionB_coords","_positionA_coords1","_positionB_coords1","_positionA_coords2","_positionB_coords2","_positionA_coords3","_positionB_coords3","_positionA_coords4","_positionB_coords4","_positionA_coords5","_positionB_coords5","_positionA_coords6","_positionB_coords6","_positionA_coords7","_positionB_coords7","_positionA_coords8","_positionB_coords8","_positionA_coords9","_positionB_coords9","_positionA_caret","_positionB_caret","_positionA_caret1","_positionB_caret1","Mouse","position","isPrevented","prevPosition","prevTarget","nextTarget","leave","enter","disabled","mouseUpInit","clickTarget","_this_position_target","_this_position_caret","_this_position_caret1","current","_this_count_button","_this_count_button1","hasPointerEvents","_checkPointerEvents","checkPointerEvents","closestPointerEventsDeclaration","tree","pointerEvents","PointerEventsCheck","lastCheck","hasBitFlag","declaration","assertPointerEvents","printTree","getLabelDescr","_element_labels","label","_element_ownerDocument_getElementById_textContent","_element_ownerDocument_getElementById","_el_textContent","_element_textContent","conf","flag","Pointer","PointerHost","pointerName","pointer","pointermove","mousemove","device","_this_mouse_position_target","_k","System","click","pointerIn","dblClick","tripleClick","hover","unhover","tab","bracketDict","readNextDescriptor","startBracket","readPrintableChar","readTag","descriptor","assertDescriptor","_text_slice_match","_text_slice_match1","releasePreviousModifier","escapedDescriptor","_text_slice_match_","repeatModifier","releaseSelfModifier","expectedEndBracket","endBracket","getErrorMessage","hasReleaseSelf","expected","found","parseKeyDef","keyboardMap","defs","consumedLength","releasePrevious","releaseSelf","_keyboardMap_find","def","_def_code","_def_key","keyboard","actions","keyboardAction","releaseAllKeys","copySelection","readSelectedValueFromInput","copy","doc","_doc_activeElement","cut","paste","_ref","dataTransfer","getClipboardDataFromString","pointerMap","keys","actionInput","pointerAction","action","_previousPosition_caret","_previousPosition_caret1","previousPosition","_action_target","_action_coords","_action_node","_action_offset","getPrevTarget","hasCaretPosition","_position_target","clear","selectOptions","select","values","selectOptionsBase","deselectOptions","valArray","allOptions","selectedOptions","matchingOption","option","selectOption","withPointerEvents","skipClick","skipAutoClose","initialSelectionStart","initialSelectionEnd","fakeFiles","restoreProperty","prop","setFiles","_el_fakeFiles","typeDescr","valueDescr","filesDescr","restore","_valueDescr_set","upload","fileOrFiles","file","isAcceptableFile","fileDialog","_input_files","normalize","nameOrType","accept","wildcards","acceptToken","userEventApi","wrapAsync","implementation","defaultOptionsDirect","defaultKeyMap$1","defaultOptionsSetup","createConfig","defaults","getDocument","setupMain","_config_document_defaultView","createInstance","setupDirect","keyboardState","pointerState","setupSub","wrapAndBindImpl","impl","method","ret","name","api","_options_document","userEvent","directApi"],"mappings":";AAAA,SAASA,EAAcC,GAASC,GAAKC,GAAO;AAQxC,SAPIF,EAAQ,gBAAgBA,EAAQ,iBAAiB,mCAGrDC,IAAM,MAAM,QAAQA,CAAG,IAAIA,IAAM;AAAA,IAC7BA;AAAA,EACR,GAEQ,CAACA,EAAI,SAASD,EAAQ,QAAQ,YAAW,CAAE,KACpC,KAEPE,IACO,OAAO,QAAQA,CAAK,EAAE,MAAM,CAAC,CAACC,GAAGC,CAAC,MAAIJ,EAAQG,CAAC,MAAMC,CAAC,IAE1D;AACX;ACfA,SAASC,EAAUC,GAAM;AACrB,MAAIC;AACJ,MAAIC,GAAWF,CAAI,KAAKA,EAAK;AACzB,WAAOA,EAAK;AACT,MAAK,GAAAC,IAAsBD,EAAK,mBAAmB,QAAQC,MAAwB,WAAwBA,EAAoB;AAClI,WAAOD,EAAK,cAAc;AAE9B,QAAM,IAAI,MAAM,gDAAgDG,GAASH,CAAI,CAAC,EAAE;AACpF;AACA,SAASE,GAAWF,GAAM;AACtB,SAAOA,EAAK,aAAa;AAC7B;AACA,SAASG,GAASC,GAAK;AACnB,SAAO,OAAOA,KAAQ,aAAa,YAAYA,EAAI,IAAI,KAAKA,MAAQ,OAAO,SAAS,OAAOA,CAAG;AAClG;ACbA,SAASC,GAAaC,GAAMC,GAAY;AACpC,SAAO,IAAI,QAAQ,CAACC,GAAKC,MAAM;AAC3B,UAAMC,IAAK,IAAIH,EAAU;AACzB,IAAAG,EAAG,UAAUD,GACbC,EAAG,UAAUD,GACbC,EAAG,SAAS,MAAI;AACZ,MAAAF,EAAI,OAAOE,EAAG,MAAM,CAAC;AAAA,IACzB,GACAA,EAAG,WAAWJ,CAAI;AAAA,EACtB,CAAC;AACL;ACVA,SAASK,GAAeC,GAAQC,GAAO;AACnC,QAAMC,IAAO;AAAA,IACT,GAAGD;AAAA,IACH,QAAQA,EAAM;AAAA,IACd,MAAM,CAACE,MAAQD,EAAKC,CAAK;AAAA,IACzB,CAAC,OAAO,QAAQ,GAAG,aAAqB;AACpC,eAAQC,IAAI,GAAGA,IAAIF,EAAK,QAAQE;AAC5B,cAAMF,EAAKE,CAAC;AAAA,IAEpB;AAAA,EACR;AACI,SAAAF,EAAK,cAAcF,EAAO,UAEKA,EAAO,YAClC,OAAO,eAAeE,GAAMF,EAAO,SAAS,SAAS,GAEzD,OAAO,OAAOE,CAAI,GACXA;AACX;ACjBA,SAASG,EAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AAGA,MAAMG,GAAqB;AAAA,EACvB,YAAY;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EACA,YAAYC,GAAU;AAClB,IAAI,OAAO,KAAK,QAAS,YACrBA,EAAS,KAAK,IAAI;AAAA,EAE1B;AAAA;AAAA,EAC2B,mBAAmB;AAC1C,UAAM,IAAI,MAAM,iBAAiB;AAAA,EACrC;AAAA,EACA,YAAYC,GAAYC,GAAK;AACzBP,IAAAA,EAAiB,MAAM,QAAQ,MAAS,GACxCA,EAAiB,MAAM,QAAQ,MAAS,GACxCA,EAAiB,MAAM,QAAQ,IAAI,GACnCA,EAAiB,MAAM,QAAQ,MAAS,GACpC,OAAOM,KAAe,YACtB,KAAK,OAAO,UACZ,KAAK,OAAO,OAAOC,CAAI,GACvB,KAAK,OAAOD,MAEZ,KAAK,OAAO,QACZ,KAAK,OAAOA,EAAW,MACvB,KAAK,OAAOA;AAAA,EAEpB;AACJ;AACA,MAAME,WAAiC,MAAM;AAAA,EACzC,OAAOC,GAAM;AACT,UAAMC,IAAO,IAAIN,GAAqBK,EAAK,CAAC,GAAGA,EAAK,CAAC,CAAC;AACtD,gBAAK,KAAKC,CAAI,GACPA;AAAA,EACX;AAAA,EACA,QAAQ;AACJ,SAAK,OAAO,GAAG,KAAK,MAAM;AAAA,EAC9B;AAAA,EACA,OAAOZ,GAAO;AACV,SAAK,OAAOA,GAAO,CAAC;AAAA,EACxB;AACJ;AACA,SAASa,GAAeJ,GAAMK,GAAO;AACjC,QAAM,CAACC,GAAOC,CAAG,IAAIP,EAAK,MAAM,GAAG,GAC7BQ,IAAU,CAACD,KAAOA,MAAQ;AAChC,SAAO,CAACJ,MACGE,IAAQF,EAAK,UAAUK,IAAUF,IAAQN,KAAQQ,IAAUL,EAAK,KAAK,WAAW,GAAGG,CAAK,GAAG,IAAIH,EAAK,SAASG;AAE5H;AACA,SAASG,GAAuBrB,GAAQ;AACpC,SAAO,IAAI,MAAuB;AAAA,IAC9B,QAAQsB,GAAQ;AACZ,UAAIC;AACJ,YAAMC,KAASD,IAAmB,KAAK,MAAM,KAAKP,GAAeM,GAAQ,EAAI,CAAC,OAAO,QAAQC,MAAqB,SAAYA,IAAmB,KAAK,MAAM,KAAKP,GAAeM,GAAQ,EAAK,CAAC;AAC9L,UAAIG,IAAO;AACX,aAAoDD,GAAM,YAAY,CAACE,MAAI;AACvE,QAAAD,IAAOC;AAAA,MACX,CAAC,GACMD;AAAA,IACX;AAAA,IACA,QAAQH,GAAQK,GAAM;AAClB,YAAMC,IAAa,KAAK,MAAM,UAAUZ,GAAeM,GAAQ,EAAI,CAAC,GAC9DP,IAAO,IAAIN,GAAqBkB,GAAML,CAAM;AAClD,MAAIM,KAAc,IACd,KAAK,MAAM,OAAOA,GAAY,GAAGb,CAAI,IAErC,KAAK,MAAM,KAAKA,CAAI;AAAA,IAE5B;AAAA,IACA,UAAUO,GAAQ;AACd,UAAIA,GAAQ;AACR,cAAMM,IAAa,KAAK,MAAM,UAAUZ,GAAeM,GAAQ,EAAI,CAAC;AACpE,QAAIM,KAAc,KACd,KAAK,MAAM,OAAOA,CAAU;AAAA,MAEpC;AACI,aAAK,MAAM,MAAK;AAAA,IAExB;AAAA,IACA,IAAI,QAAQ;AACR,YAAMF,IAAI,CAAA;AACV,aAAI,KAAK,MAAM,UACXA,EAAE,KAAK,OAAO,GAElB,KAAK,MAAM,QAAQ,CAAC,MAAIA,EAAE,KAAK,EAAE,IAAI,CAAC,GACtC,OAAO,OAAOA,CAAC,GACRA;AAAA,IACX;AAAA;AAAA,IAC2B,eAAe;AAAA,IAAC;AAAA,IAC3C,cAAa;AACTrB,MAAAA,EAAiB,MAAM,cAAc,MAAM,GAC3CA,EAAiB,MAAM,iBAAiB,eAAe,GACvDA,EAAiB,MAAM,SAAS,IAAIQ,GAAwB,CAAE,GAC9DR,EAAiB,MAAM,SAASN,GAAeC,GAAQ,CAAA,CAAE,CAAC;AAAA,IAC9D;AAAA,EACR,EAAK;AACL;AACA,SAAS6B,GAAmB7B,GAAQC,IAAQ,IAAI;AAE5C,QAAM6B,IAAK,OAAO9B,EAAO,eAAiB,MAAcqB,GAAuBrB,CAAM;AAAA;AAAA,IAA+B,IAAIA,EAAO,aAAY;AAAA;AAC3I,gBAAO,eAAe8B,GAAI,SAAS;AAAA,IAC/B,KAAK,MAAI/B,GAAeC,GAAQC,CAAK;AAAA,EAC7C,CAAK,GACM6B;AACX;AACA,eAAeC,GAA4B/B,GAAQe,GAAM;AACrD,SAAIA,EAAK,SAAS,SACPA,EAAK,UAAS,IAElB,IAAIf,EAAO,KAAK;AAAA,IACnB,MAAM,IAAI,QAAQ,CAACgC,MAAIjB,EAAK,YAAYiB,CAAC,CAAC;AAAA,EAClD,GAAO;AAAA,IACC,MAAMjB,EAAK;AAAA,EACnB,CAAK;AACL;AC7HA,SAASV,GAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AAIA,SAAS2B,GAAoBjC,MAAWkC,GAAO;AAC3C,QAAMC,IAAU,OAAO,YAAYD,EAAM,IAAI,CAACE,MAAI;AAAA,IAC1C,OAAOA,KAAM,WAAW,eAAeA,EAAE;AAAA,IACzC,QAAQ,QAAQA,CAAC;AAAA,EAC7B,CAAS,CAAC;AAEmB,SAAI,OAAOpC,EAAO,gBAAkB,MAClD,IAAIA,EAAO,cAAcmC,CAAO,IAEpC,IAAI,MAAoB;AAAA,IAC3B,IAAI,QAAQ;AACR,aAAO,MAAM,KAAK,OAAO,KAAK,KAAK,IAAI,CAAC;AAAA,IAC5C;AAAA,IACA,MAAM,QAAQvB,GAAM;AAChB,YAAMJ,IAAQ,MAAM,KAAK,KAAKI,CAAI;AAClC,UAAI,CAACJ;AACD,cAAM,IAAI,MAAM,GAAGI,CAAI,uDAAuD;AAElF,aAAOJ,aAAiBR,EAAO,OAAOQ,IAAQ,IAAIR,EAAO,KAAK;AAAA,QAC1DQ;AAAA,MAChB,GAAe;AAAA,QACC,MAAAI;AAAA,MAChB,CAAa;AAAA,IACL;AAAA,IACA,YAAYyB,GAAE;AACVhC,MAAAA,GAAiB,MAAM,QAAQ,MAAS,GACxC,KAAK,OAAOgC;AAAA,IAChB;AAAA,EACR,EAAMF,CAAO;AACb;AACA,MAAMG,IAAuB,uBAAO,qBAAqB;AACzD,SAASC,GAAoBvC,GAAQwC,GAAS;AAC1C,SAAO,OAAO,OAAO,IAAI,cAAwBxC,EAAO,YAAY;AAAA,IAChE,MAAM,OAAO;AACT,aAAO,MAAM,KAAK,KAAK,KAAK;AAAA,IAChC;AAAA,IACA,MAAM,WAAW;AACb,UAAIyB,IAAO;AACX,iBAAWV,KAAQ,KAAK,OAAM;AAC1B,cAAMH,IAAOG,EAAK,MAAM,SAAS,YAAY,IAAI,eAAeA,EAAK,MAAM,KAAK,CAACW,MAAIA,EAAE,WAAW,OAAO,CAAC;AAC1G,QAAId,MACAa,KAAQ,MAAMV,EAAK,QAAQH,CAAI,EAAE,KAAK,CAACwB,MAAI3C,GAAa2C,GAAGpC,EAAO,UAAU,CAAC;AAAA,MAErF;AACA,aAAOyB;AAAA,IACX;AAAA,IACA,MAAM,MAAME,GAAM;AACd,WAAK,QAAQA;AAAA,IACjB;AAAA,IACA,MAAM,UAAUF,GAAM;AAClB,WAAK,QAAQ;AAAA,QACTQ,GAAoBjC,GAAQyB,CAAI;AAAA,MAChD;AAAA,IACQ;AAAA,IACA,eAAeX,GAAK;AAChB,YAAM,GAAGA,CAAI,GAAGT,GAAiB,MAAM,SAAS,EAAE;AAAA,IACtD;AAAA,EACR,KAAS;AAAA,IACD,CAACiC,CAAoB,GAAGE;AAAA,EAChC,CAAK;AACL;AACA,SAASC,GAAgBC,GAAW;AAChC,SAAO,CAAC,CAA8DA,IAAUJ,CAAoB;AACxG;AACA,SAASK,GAA0B3C,GAAQ;AACvC,MAAIyC,GAAgBzC,EAAO,UAAU,SAAS;AAC1C,WAAOA,EAAO,UAAU,UAAUsC,CAAoB;AAE1D,QAAMM,IAAgB,OAAO,yBAAyB5C,EAAO,WAAW,WAAW;AACnF,MAAI6C;AACJ,QAAML,IAAU;AAAA,IACZ,oBAAoB,MAAI;AACpB,MAAAK,IAAON,GAAoBvC,GAAQwC,CAAO;AAAA,IAC9C;AAAA,IACA,qBAAqB,MAAI;AACI,MAAII,IACzB,OAAO,eAAe5C,EAAO,WAAW,aAAa4C,CAAa,IAElE,OAAO,eAAe5C,EAAO,WAAW,aAAa;AAAA,QACjD,OAAO;AAAA,QACP,cAAc;AAAA,MAClC,CAAiB;AAAA,IAET;AAAA,EACR;AACI,SAAA6C,IAAON,GAAoBvC,GAAQwC,CAAO,GAC1C,OAAO,eAAexC,EAAO,WAAW,aAAa;AAAA,IACjD,KAAK,MAAI6C;AAAA,IACT,cAAc;AAAA,EACtB,CAAK,GACMA,EAAKP,CAAoB;AACpC;AACA,SAASQ,GAAyB9C,GAAQ;AACtC,EAAIyC,GAAgBzC,EAAO,UAAU,SAAS,KAC1CA,EAAO,UAAU,UAAUsC,CAAoB,EAAE,mBAAkB;AAE3E;AACA,SAASS,GAA4B/C,GAAQ;AACzC,EAAIyC,GAAgBzC,EAAO,UAAU,SAAS,KAC1CA,EAAO,UAAU,UAAUsC,CAAoB,EAAE,oBAAmB;AAE5E;AACA,eAAeU,GAA8BC,GAAU;AACnD,QAAMjD,IAASiD,EAAS,aAClBP,IAAkE1C,GAAO,UAAU,WACnFkD,IAAQR,KAAa,MAAMA,EAAU,KAAI;AAC/C,MAAI,CAACQ;AACD,UAAM,IAAI,MAAM,mCAAmC;AAEvD,QAAMpB,IAAKD,GAAmB7B,CAAM;AACpC,aAAWe,KAAQmC;AACf,eAAWtC,KAAQG,EAAK;AACpB,MAAAe,EAAG,QAAQlB,GAAM,MAAMG,EAAK,QAAQH,CAAI,EAAE,KAAK,CAACwB,MAAI3C,GAAa2C,GAAGpC,EAAO,UAAU,CAAC,CAAC;AAG/F,SAAO8B;AACX;AACA,eAAeqB,GAA6BF,GAAUG,GAAe;AACjE,QAAMpD,IAASb,EAAU8D,CAAQ,GAC3BP,IAAY1C,EAAO,UAAU,WAC7BkD,IAAQ,CAAA;AACd,WAAQ9C,IAAI,GAAGA,IAAIgD,EAAc,MAAM,QAAQhD,KAAI;AAC/C,UAAMiD,IAASD,EAAc,MAAMhD,CAAC,GAC9BV,IAAO,MAAMqC,GAA4B/B,GAAQqD,CAAM;AAC7D,IAAAH,EAAM,KAAKjB,GAAoBjC,GAAQN,CAAI,CAAC;AAAA,EAChD;AAGA,MAAI,EAFYgD,KAAa,MAAMA,EAAU,MAAMQ,CAAK,EAAE;AAAA,IAAK,MAAI;AAAA;AAAA;AAAA,IACxC,MAAI;AAAA,EAAK;AAEhC,UAAM,IAAI,MAAM,mCAAmC;AAE3D;AACA,MAAMI,KAAI;AACqB,OAAOA,GAAE,aAAc,cAClDA,GAAE,UAAU,MAAIR,GAAyB,WAAW,MAAM,CAAC;AAEhC,OAAOQ,GAAE,YAAa,cACjDA,GAAE,SAAS,MAAIP,GAA4B,WAAW,MAAM,CAAC;AC9JjE,MAAMQ,KAAqB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,EAAE,KAAK,IAAI;ACPX,SAASC,GAAY1E,GAAS;AAC1B,SAAOA,EAAQ,QAAQyE,EAAkB;AAC7C;ACJA,SAASE,GAAWC,GAAO;AACvB,SAAO,IAAIA,EAAM,YAAYA,EAAM,MAAMA,CAAK;AAClD;ACCA,SAASC,EAAW7E,GAAS;AACzB,WAAQ8E,IAAK9E,GAAS8E,GAAIA,IAAKA,EAAG;AAC9B,QAAI/E,EAAc+E,GAAI;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS;AACG,UAAIA,EAAG,aAAa,UAAU;AAC1B,eAAO;AAAA,eAEJ/E,EAAc+E,GAAI,UAAU,GAAG;AACtC,UAAIC;AACJ,UAAID,EAAG,aAAa,UAAU,KAAK,EAAG,GAAAC,IAAoBD,EAAG,cAAc,iBAAiB,OAAO,QAAQC,MAAsB,WAAwBA,EAAkB,SAAS/E,CAAO;AACvL,eAAO;AAAA,IAEf,WAAW8E,EAAG,QAAQ,SAAS,GAAG,KAC1BA,EAAG,YAAY,kBAAkBA,EAAG,aAAa,UAAU;AAC3D,aAAO;AAInB,SAAO;AACX;AC1BA,SAASE,GAAiBb,GAAU;AAChC,QAAMc,IAAgBd,EAAS;AAC/B,SAAwEc,GAAc,aAC3ED,GAAiBC,EAAc,UAAU,IAG5CJ,EAAWI,CAAa,IACjBd,EAAS;AAAA;AAAA,IAA2CA,EAAS,cAAc;AAAA,MAAOA,EAAS,OAE/Fc;AAEf;AACA,SAASC,GAAuBf,GAAU;AACtC,MAAIgB;AACJ,UAAQA,IAAoBH,GAAiBb,CAAQ,OAAO,QAAQgB,MAAsB,SAAYA;AAAA;AAAA,IAA+ChB,EAAS;AAAA;AAClK;ACjBA,SAASiB,GAAYpF,GAAS4B,GAAU;AACpC,MAAIkD,IAAK9E;AACT,KAAG;AACC,QAAI4B,EAASkD,CAAE;AACX,aAAOA;AAEX,IAAAA,IAAKA,EAAG;AAAA,EACZ,SAAQA,KAAMA,MAAO9E,EAAQ,cAAc;AAE/C;ACRA,SAASqF,EAAkBrF,GAAS;AAChC,SAAOA,EAAQ,aAAa,iBAAiB,MAAMA,EAAQ,aAAa,iBAAiB,KAAK,UAAUA,EAAQ,aAAa,iBAAiB,KAAK;AACvJ;AAGI,SAASsF,GAAmBhF,GAAM;AAClC,QAAMN,IAAUuF,GAAWjF,CAAI;AAC/B,SAAON,MAAYA,EAAQ,QAAQ,sBAAsB,KAAKA,EAAQ,QAAQ,0BAA0B;AAC5G;AACA,SAASuF,GAAWjF,GAAM;AACtB,SAAOA,EAAK,aAAa,IAAIA,IAAOA,EAAK;AAC7C;ACVA,IAAIkF,KAAoC,0BAASA,GAAqB;AAClE,SAAAA,EAAoB,SAAY,UAChCA,EAAoB,QAAW,SAC/BA,EAAoB,OAAU,QAC9BA,EAAoB,QAAW,SAC/BA,EAAoB,QAAW,SAC/BA,EAAoB,SAAY,UAChCA,EAAoB,WAAc,YAClCA,EAAoB,QAAW,SACxBA;AACX,GAAEA,MAAuB,CAAA,CAAE;AAC3B,SAASC,GAAiBzF,GAAS;AAC/B,SAAOD,EAAcC,GAAS,QAAQ,KAAKD,EAAcC,GAAS,OAAO,KAAKA,EAAQ,QAAQwF;AAClG;ACZA,SAASE,EAAW1F,GAAS;AACzB,SAAO2F,GAA0B3F,CAAO,KAAK,CAACA,EAAQ,YAAYqF,EAAkBrF,CAAO;AAC/F;AACA,IAAI4F,KAAmC,0BAASA,GAAoB;AAChE,SAAAA,EAAmB,OAAU,QAC7BA,EAAmB,OAAU,QAC7BA,EAAmB,gBAAgB,IAAI,kBACvCA,EAAmB,QAAW,SAC9BA,EAAmB,QAAW,SAC9BA,EAAmB,SAAY,UAC/BA,EAAmB,WAAc,YACjCA,EAAmB,SAAY,UAC/BA,EAAmB,MAAS,OAC5BA,EAAmB,OAAU,QAC7BA,EAAmB,MAAS,OAC5BA,EAAmB,OAAU,QACtBA;AACX,GAAEA,MAAsB,CAAA,CAAE;AAC1B,SAASD,GAA0B3F,GAAS;AACxC,SAAOD,EAAcC,GAAS,UAAU,KAAKD,EAAcC,GAAS,OAAO,KAAKA,EAAQ,QAAQ4F;AACpG;ACjBI,SAASC,EAAgBvF,GAAM;AAC/B,SAAOwF,GAAUxF,CAAI,KAAKqF,GAA0BrF,CAAI;AAC5D;AACA,SAASyF,GAAezF,GAAM;AAC1B,SAAOwF,GAAUxF,CAAI,KAAKmF,GAAiBnF,CAAI;AACnD;AACA,SAASwF,GAAUxF,GAAM;AACrB,SAAOA,EAAK,aAAa;AAC7B;ACHI,SAAS0F,GAAuBhG,GAAS;AACzC,QAAMiG,IAAYjG,EAAQ,cAAc,aAAY;AAC3B,MAAkEiG,GAAU,aAUjGJ,EAAgB7F,CAAO,GAAG;AAC1B,UAAMkG,IAAkBZ,GAAmBW,EAAU,SAAS;AAC9D,QAAIC;AACA,UAAI,CAACD,EAAU,aAAa;AACxB,YAAIE;AACJ,cAAMC,MAAcD,IAA8BD,EAAgB,gBAAgB,QAAQC,MAAgC,SAAY,SAAYA,EAA4B,cAAc,IAAID,EAAgB,aAAaA;AAC7N,QAAAD,EAAU,iBAAiBG,GAAW,GAAGA,GAAW,CAAC;AAAA,MACzD;AAAA;AAEA,MAAAH,EAAU,iBAAiBjG,GAAS,GAAGA,GAAS,CAAC;AAAA,EAEzD;AACJ;ACjCA,SAASqG,EAAUC,GAAIC,GAAU;AAC7B,SAAOC,EAAS,EAAG,aAAaF,CAAE;AACtC;ACOI,SAASG,EAAazG,GAAS;AAC/B,QAAM0G,IAAStB,GAAYpF,GAAS0E,EAAW,GACzCO,IAAgBD,GAAiBhF,EAAQ,aAAa;AAC5D,GAAK0G,KAAmD1G,EAAQ,cAAc,UAAUiF,MAGpFoB,EADOK,IACG,MAAIA,EAAO,UAEX,MAAwEzB,GAAc,MAFpE,GAIhCe,GAAuBU,KAAmD1G,EAAQ,cAAc,IAAI;AACxG;AACA,SAAS2G,GAAY3G,GAAS;AAG1B,EAFI,CAAC0E,GAAY1E,CAAO,KAEpB,EADcgF,GAAiBhF,EAAQ,aAAa,MAAMA,MAE9DqG,EAAU,MAAIrG,EAAQ,MAAM;AAChC;AC5BA,MAAM4G,IAAW,CAAA;ACQjBA,EAAS,QAAQ,CAAChC,GAAO8B,GAAQG,MAAW;AACxC,QAAMC,IAAUJ,EAAO,QAAQ,oCAAoC,GAC7DhD,IAAUoD,KAAW/G,EAAc+G,GAAS,OAAO,KAAKA,EAAQ;AACtE,MAAIpD,KAAWA,MAAYgD;AACvB,WAAO,MAAI;AACP,MAAIhC,GAAYhB,CAAO,MACnB+C,EAAa/C,CAAO,GACpBmD,EAAS,cAAcnD,GAASiB,GAAWC,CAAK,CAAC;AAAA,IAEzD;AACG,MAAI7E,EAAc2G,GAAQ,SAAS;AAAA,IACtC,MAAM;AAAA,EACd,CAAK;AACG,WAAO,MAAI;AAEP,MAAAC,GAAYD,CAAM,GAClBA,EAAO,cAAc,KAAKrG,EAAUqG,CAAM,GAAG,MAAM,YAAY,CAAC,GAEhED,EAAaC,CAAM;AAAA,IACvB;AAER;AC7BA,MAAMK,IAAU,uBAAO,uBAAuB,GACxCC,IAAc,uBAAO,2BAA2B,GAChDC,KAAe,uBAAO,kCAAkC;AAC9D,SAASC,GAAUxF,GAAO;AACtB,SAAO,OAAOA,KAAU,YAAYqF,KAAWrF;AACnD;AACA,SAASyF,GAAmBC,GAAO;AAC/B,SAAO,CAAC,CAACA,KAAS,OAAOA,KAAU,YAAYJ,KAAeI;AAClE;AACA,SAASC,GAAWrH,GAAS0B,GAAO;AAChC,EAAI1B,EAAQiH,EAAY,MAAM,WAC1BjH,EAAQiH,EAAY,IAAIjH,EAAQ,QAEpCA,EAAQ+G,CAAO,IAAIrF,GAEnB1B,EAAQ,QAAQ,OAAO,OAAO,IAAI,OAAO0B,CAAK,GAAG;AAAA,IAC7C,CAACqF,CAAO,GAAG;AAAA,EACnB,CAAK;AACL;AACA,SAASO,EAAWtH,GAAS;AACzB,SAAOA,EAAQ+G,CAAO,MAAM,SAAY/G,EAAQ,QAAQ,OAAOA,EAAQ+G,CAAO,CAAC;AACnF;AACmE,SAASQ,GAAgBvH,GAAS;AACjG,EAAAA,EAAQ+G,CAAO,IAAI;AACvB;AACA,SAASS,GAAkBxH,GAAS;AAChC,EAAAA,EAAQiH,EAAY,IAAI;AAC5B;AACA,SAASQ,GAAgBzH,GAAS;AAC9B,SAAOA,EAAQiH,EAAY;AAC/B;AACA,SAASS,GAAkB1H,GAASiG,GAAW;AAC3C,EAAAjG,EAAQgH,CAAW,IAAIf;AAC3B;AACA,SAAS0B,EAAe3H,GAAS,EAAE,aAAa4H,GAAkB,cAAcC,IAAoBD,EAAgB,GAAIE,IAAO,WAAW;AACtI,QAAMC,IAAcT,EAAWtH,CAAO,EAAE,QAClCgI,IAAiB,CAACC,MAAI,KAAK,IAAI,GAAG,KAAK,IAAIF,GAAaE,CAAC,CAAC,GAC1DC,IAAeJ,MAAS,aAAa9H,EAAQgH,CAAW,MAAM,SAAYgB,EAAeH,CAAiB,IAAI7H,EAAQgH,CAAW,EAAE,cACnImB,IAAcH,EAAeJ,CAAgB,GAC7CQ,IAAc,KAAK,IAAIF,GAAcC,CAAW,GAChDE,IAAY,KAAK,IAAIH,GAAcC,CAAW;AAKpD,MAJAnI,EAAQgH,CAAW,IAAI;AAAA,IACnB,cAAAkB;AAAA,IACA,aAAAC;AAAA,EACR,GACQnI,EAAQ,mBAAmBoI,KAAepI,EAAQ,iBAAiBqI;AACnE;AAGJ,QAAMC,IAAW,OAAO,OAAO,IAAI,OAAOF,CAAW,GAAG;AAAA,IACpD,CAACpB,CAAW,GAAG;AAAA,EACvB,CAAK;AACD,MAAI;AACA,IAAAhH,EAAQ,kBAAkBsI,GAAUD,CAAS;AAAA,EACjD,QAAS;AAAA,EAGT;AACJ;AACA,SAASE,GAAevI,GAAS;AAC7B,MAAIwI,GAAyBC,GAAuBC;AACpD,QAAMC,KAAOD,IAAuB1I,EAAQgH,CAAW,OAAO,QAAQ0B,MAAyB,SAAYA,IAAuB;AAAA,IAC9H,eAAeF,IAA0BxI,EAAQ,oBAAoB,QAAQwI,MAA4B,SAAYA,IAA0B;AAAA,IAC/I,cAAcC,IAAwBzI,EAAQ,kBAAkB,QAAQyI,MAA0B,SAAYA,IAAwB;AAAA,EAC9I;AACI,SAAO;AAAA,IACH,GAAGE;AAAA,IACH,aAAa,KAAK,IAAIA,EAAI,cAAcA,EAAI,WAAW;AAAA,IACvD,WAAW,KAAK,IAAIA,EAAI,cAAcA,EAAI,WAAW;AAAA,EAC7D;AACA;AACA,SAASC,GAAe5I,GAAS;AAC7B,SAAO,CAAC,CAACA,EAAQgH,CAAW;AAChC;AAC4E,SAAS6B,GAAoB7I,GAAS;AAC9G,EAAAA,EAAQgH,CAAW,IAAI;AAC3B;AC5EA,MAAM8B,KAAW,WAAW;AAC5B,SAASC,GAAerH,GAAO;AAC3B,QAAMsH,IAAkBtH,EAAM,QAAQ,OAAO,EAAE;AAC/C,MAAIsH,EAAgB,SAAS;AACzB,WAAOtH;AAEX,QAAMuH,IAAaH,GAASE,EAAgB,CAAC,GAAG,EAAE,GAC5CE,IAAcJ,GAASE,EAAgB,CAAC,GAAG,EAAE;AACnD,MAAIC,KAAc,KAAKA,MAAe,KAAKC,KAAe,GAAG;AACzD,QAAI7H;AACJ,WAAI4H,KAAc,IACd5H,IAAQ,IAERA,IAAQ,GAEL8H,GAAMH,GAAiB3H,CAAK;AAAA,EACvC;AACA,SAAIK,EAAM,WAAW,IACVA,IAEJyH,GAAMH,GAAiB,CAAC;AACnC;AACA,SAASG,GAAMH,GAAiB3H,GAAO;AACnC,QAAM+H,IAAQJ,EAAgB,MAAM,GAAG3H,CAAK,GACtCgI,IAAa,KAAK,IAAIP,GAASM,GAAO,EAAE,GAAG,EAAE,GAC7CE,IAAmBN,EAAgB,MAAM3H,CAAK,GAC9CkI,IAAgBT,GAASQ,GAAkB,EAAE,GAC7CE,IAAe,KAAK,IAAID,GAAe,EAAE;AAC/C,SAAO,GAAGF,EAAW,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC,IAAIG,EAAa,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC;AAChG;AACA,SAASC,GAAuBzJ,GAAS0B,GAAO;AAC5C,QAAMgI,IAAQ1J,EAAQ,UAAS;AAC/B,SAAA0J,EAAM,QAAQhI,GACPgI,EAAM,UAAUhI;AAC3B;AChCA,IAAIiI,KAAwC,0BAASA,GAAyB;AAC1E,SAAAA,EAAwB,QAAW,SACnCA,EAAwB,WAAc,YACtCA,EAAwB,SAAY,UACpCA,EAAwB,YAAe,aACvCA,EAAwB,OAAU,QAClCA,EAAwB,MAAS,OAC1BA;AACX,GAAEA,MAA2B,CAAA,CAAE;AAG/B,SAASC,GAAa5J,GAAS;AAC3B,MAAI6J;AACJ,QAAMC,KAAQD,IAAwB7J,EAAQ,aAAa,WAAW,OAAO,QAAQ6J,MAA0B,SAAYA,IAAwB;AACnJ,SAAO,QAAQ,KAAKC,CAAI,KAAK,OAAOA,CAAI,KAAK,IAAI,OAAOA,CAAI,IAAI;AACpE;AACA,SAASC,GAAkB/J,GAAS;AAChC,SAAOD,EAAcC,GAAS,UAAU,KAAKD,EAAcC,GAAS,OAAO,KAAKA,EAAQ,QAAQ2J;AACpG;ACjBA,SAASK,GAAsB1J,GAAM2J,GAAQC,GAAWC,GAAW;AAS/D,MAAIC,GAAW9J,CAAI,KAAK2J,IAASC,KAAa,KAAKD,IAASC,KAAa5J,EAAK,UAAU;AACpF,WAAO;AAAA,MACH,MAAAA;AAAA,MACA,QAAQ2J,IAASC;AAAA,IAC7B;AAEI,QAAMG,IAAWC,GAA4BhK,GAAM2J,GAAQC,CAAS;AACpE,MAAIG,GAAU;AACV,QAAID,GAAWC,CAAQ;AACnB,aAAO;AAAA,QACH,MAAMA;AAAA,QACN,QAAQH,IAAY,IAAI,KAAK,IAAI,GAAGG,EAAS,UAAU,MAAM,IAAI,KAAK,IAAIA,EAAS,UAAU,SAAS,GAAG,CAAC;AAAA,MAC1H;AACe,QAAItK,EAAcsK,GAAU,IAAI,GAAG;AACtC,YAAME,IAAcD,GAA4BD,GAAU,QAAWH,CAAS;AAC9E,aAAKK,IAYMH,GAAWG,CAAW,IACtB;AAAA,QACH,MAAMA;AAAA,QACN,QAAQL,IAAY,IAAI,IAAIK,EAAY,UAAU;AAAA,MACtE,IACuBL,IAAY,KAAKnK,EAAcwK,GAAa,IAAI,IAChD;AAAA,QACH,MAAMF,EAAS;AAAA,QACf,QAAQG,GAAUH,CAAQ;AAAA,MAC9C,IAEuB;AAAA,QACH,MAAME,EAAY;AAAA,QAClB,QAAQC,GAAUD,CAAW,KAAKL,IAAY,IAAI,IAAI;AAAA,MAC1E,IArBoBA,IAAY,KAAKC,MAAc,0BACxB;AAAA,QACH,MAAME,EAAS;AAAA,QACf,QAAQG,GAAUH,CAAQ;AAAA,MAClD,IAEgB;AAAA,IAiBR;AACI,aAAO;AAAA,QACH,MAAMA,EAAS;AAAA,QACf,QAAQG,GAAUH,CAAQ,KAAKH,IAAY,IAAI,IAAI;AAAA,MACnE;AAAA,EAEI;AACJ;AACA,SAASI,GAA4BhK,GAAM2J,GAAQC,GAAW;AAC1D,QAAMO,IAAa,OAAOR,CAAM,KAAKC,IAAY,IAAI,KAAK;AAC1D,SAAID,MAAW,UAAanE,GAAUxF,CAAI,KAAKmK,KAAc,KAAKA,IAAanK,EAAK,SAAS,WACzFA,IAAOA,EAAK,SAASmK,CAAU,IAE5BC,GAAUpK,GAAM4J,MAAc,IAAI,SAAS,YAAYS,EAA2B;AAC7F;AACA,SAASA,GAA4BrK,GAAM;AACvC,MAAI8J,GAAW9J,CAAI;AACf,WAAO;AAEX,MAAIwF,GAAUxF,CAAI,GAAG;AACjB,QAAIP,EAAcO,GAAM;AAAA,MACpB;AAAA,MACA;AAAA,IACZ,CAAS;AACG,aAAOA,EAAK,SAAS;AAClB,QAAIP,EAAcO,GAAM,IAAI;AAC/B,aAAO;AAAA,EAEf;AACA,SAAO;AACX;AACA,SAASkK,GAAUlK,GAAM;AACrB,MAAIgB,IAAI;AACR,SAAMhB,EAAK;AACP,IAAAgB,KACAhB,IAAOA,EAAK;AAEhB,SAAOgB;AACX;AACA,SAASwE,GAAUxF,GAAM;AACrB,SAAOA,EAAK,aAAa;AAC7B;AACA,SAAS8J,GAAW9J,GAAM;AACtB,SAAOA,EAAK,aAAa;AAC7B;AACA,SAASoK,GAAUpK,GAAM4J,GAAWtI,GAAU;AAC1C,aAAO;AACH,QAAIrB;AACJ,UAAMqK,IAAUtK,EAAK,GAAG4J,CAAS,SAAS;AAC1C,QAAIU;AAEA,UADAtK,IAAOuK,GAAcD,GAASV,MAAc,SAAS,UAAU,MAAM,GACjEtI,EAAStB,CAAI;AACb,eAAOA;AAAA,eAEJA,EAAK,eAAe,CAACwF,GAAUxF,EAAK,UAAU,KAAK,CAAC+E,EAAkB/E,EAAK,UAAU,KAAKA,EAAK,iBAAiBC,IAAsBD,EAAK,mBAAmB,QAAQC,MAAwB,SAAY,SAAYA,EAAoB;AACjP,MAAAD,IAAOA,EAAK;AAAA;AAEZ;AAAA,EAER;AACJ;AACA,SAASuK,GAAcvK,GAAM4J,GAAW;AACpC,SAAM5J,EAAK;AACP,IAAAA,IAAOA,EAAK,GAAG4J,CAAS,OAAO;AAEnC,SAAO5J;AACX;ACrHA,MAAMwK,KAAe,uBAAO,iDAAiD;AAQ7E,SAASC,GAAiB/K,GAAS;AAC/B,SAAO,OAAO,oBAAoBA,CAAO,EAAE,KAAK,CAACG,MAAIA,EAAE,WAAW,SAAS,CAAC,KAAKE,EAAUL,CAAO,EAAE,kBAAkB;AAC1H;AACA,SAASgL,GAAgBhL,GAAS;AAC9B,EAAK+K,GAAiB/K,CAAO,MAG7BA,EAAQ8K,EAAY,IAAI;AAAA,IACpB,eAAe,OAAO9K,EAAQ,KAAK;AAAA,IACnC,SAAS,CAAA;AAAA,EACjB;AACA;AACA,SAASiL,GAAgBjL,GAASI,GAAG;AACjC,MAAI8K,GAA+BC;AACnC,GAACA,IAAwBnL,EAAQ8K,EAAY,OAAO,QAAQK,MAA0B,WAAyBD,IAAgCC,EAAsB,aAAa,QAAQD,MAAkC,UAAwBA,EAA8B,KAAK9K,CAAC,GACnRJ,EAAQ8K,EAAY,MACrBvD,GAAgBvH,CAAO,GACvB2H,EAAe3H,GAAS;AAAA,IACpB,aAAaI,EAAE;AAAA,EAC3B,CAAS;AAET;AACA,SAASgL,GAAsBpL,GAASqL,GAAc;AAClD,MAAIC;AACJ,QAAMC,IAAUvL,EAAQ8K,EAAY;AAEpC,MADA9K,EAAQ8K,EAAY,IAAI,QACpB,EAAE,EAAAS,KAAY,SAA6CD,IAAmBC,EAAQ,aAAa,QAAQD,MAAqB,WAAwBA,EAAiB;AACzK;AAEJ,QAAME,IAAyBD,EAAQ,QAAQ,WAAW,KAAKA,EAAQ,QAAQ,CAAC,MAAMA,EAAQ,iBAAiBA,EAAQ,QAAQ,CAAC,MAAMvL,EAAQ;AAC9I,EAAKwL,KACDjE,GAAgBvH,CAAO,GAEvB4I,GAAe5I,CAAO,KACtB2H,EAAe3H,GAAS;AAAA,IACpB,aAAawL,IAAyBH,IAAerL,EAAQ,MAAM;AAAA,EAC/E,CAAS;AAET;AC3CI,SAASyL,GAA0BnL,GAAM;AACzC,QAAMN,IAAUuF,GAAWjF,CAAI;AAC/B,MAAIN,KAAW6F,EAAgB7F,CAAO;AAClC,WAAO;AAAA,MACH,MAAM;AAAA,MACN,WAAWuI,GAAevI,CAAO;AAAA,IAC7C;AAEI,QAAMiG,IAAoEjG,GAAQ,cAAc,aAAY;AAI5G,SAAO;AAAA,IACH,MAFSsF,GAAmBhF,CAAI,KAAkE2F,GAAU,cAAeX,GAAmBW,EAAU,UAAU,IAErJ,oBAAoB;AAAA,IACjC,WAAAA;AAAA,EACR;AACA;AACA,SAASV,GAAWjF,GAAM;AACtB,SAAOA,EAAK,aAAa,IAAIA,IAAOA,EAAK;AAC7C;ACtBI,SAASoL,GAActF,GAAW;AAClC,QAAMuF,IAAmBF,GAA0BrF,CAAS;AAC5D,MAAIuF,EAAiB,SAAS;AAC1B,WAAOA,EAAiB;AACrB,MAAIA,EAAiB,SAAS,mBAAmB;AACpD,QAAIC;AAEJ,YAAQA,IAA8BD,EAAiB,eAAe,QAAQC,MAAgC,SAAY,SAAYA,EAA4B,WAAW,CAAC;AAAA,EAClL;AACJ;ACPI,SAASC,EAAa,EAAE,WAAAzF,GAAW,aAAA+B,GAAa,YAAA2D,IAAa1F,GAAW,cAAA8B,IAAeC,KAAe;AACtG,MAAI4D,GAAwCC;AAE5C,MADyBP,GAA0BrF,CAAS,EACvC,SAAS;AAC1B,WAAOuB,EAAevB,GAAW;AAAA,MAC7B,cAAA8B;AAAA,MACA,aAAAC;AAAA,IACZ,CAAS;AAEL,GAAC6D,IAA4BF,EAAW,mBAAmB,QAAQE,MAA8B,WAAyBD,IAAyCC,EAA0B,aAAY,OAAQ,QAAQD,MAA2C,UAAwBA,EAAuC,iBAAiBD,GAAY5D,GAAc9B,GAAW+B,CAAW;AACxY;ACNA,SAAS8D,GAAajM,GAAS;AAC3B,SAAOD,EAAcC,GAAS,OAAO,KAAK;AAAA,IACtC;AAAA,IACA;AAAA,EACR,EAAM,SAASA,EAAQ,IAAI;AAC3B;AACA,SAASkM,EAAMrF,GAAU7G,GAAS6C,GAAMsH,IAAY,cAAc;AAC9D,QAAMgC,IAAaT,GAAc1L,CAAO;AACf,EAAKmM,MAI1B,CAACF,GAAajM,CAAO,KAKjB,CAJgB6G,EAAS,gBAAgB7G,GAAS,eAAe;AAAA,IACjE,WAAAmK;AAAA,IACA,MAAAtH;AAAA,EACZ,CAAS,MAKD,oBAAoBsJ,IACpBC,GAAoBvF,GAAU7G,GAASmM,GAAYtJ,GAAMsH,CAAS,IAElEkC,GAAiBxF,GAAU7G,GAASmM,GAAYtJ,GAAMsH,CAAS;AAEvE;AACA,SAASiC,GAAoBvF,GAAU7G,GAASmM,GAAYtJ,GAAMsH,GAAW;AACzE,MAAImC,IAAM;AACV,MAAI,CAACH,EAAW;AACZ,IAAAG,IAAM,IACNH,EAAW,eAAc;AAAA,WAClB;AAAA,IACP;AAAA,IACA;AAAA,EACR,EAAM,SAAShC,CAAS,GAAG;AACnB,UAAMoC,IAAevC,GAAsBmC,EAAW,gBAAgBA,EAAW,aAAahC,MAAc,0BAA0B,KAAK,GAAGA,CAAS;AACvJ,QAAIoC,GAAc;AACd,MAAAD,IAAM;AACN,YAAME,IAAWL,EAAW,WAAU;AACtC,MAAIK,EAAS,aAAaD,EAAa,MAAMA,EAAa,MAAM,IAAI,IAChEC,EAAS,SAASD,EAAa,MAAMA,EAAa,MAAM,IAExDC,EAAS,OAAOD,EAAa,MAAMA,EAAa,MAAM,GAE1DC,EAAS,eAAc;AAAA,IAC3B;AAAA,EACJ;AACA,MAAI3J;AACA,QAAIsJ,EAAW,aAAa,aAAa,GAAG;AACxC,YAAMlC,IAASkC,EAAW;AAC1B,MAAAA,EAAW,aAAa,WAAWlC,GAAQpH,CAAI,GAC/CsJ,EAAW,SAASA,EAAW,cAAclC,IAASpH,EAAK,MAAM,GACjEsJ,EAAW,OAAOA,EAAW,cAAclC,IAASpH,EAAK,MAAM;AAAA,IACnE,OAAO;AACH,YAAMF,IAAO3C,EAAQ,cAAc,eAAe6C,CAAI;AACtD,MAAAsJ,EAAW,WAAWxJ,CAAI,GAC1BwJ,EAAW,SAASxJ,GAAME,EAAK,MAAM,GACrCsJ,EAAW,OAAOxJ,GAAME,EAAK,MAAM;AAAA,IACvC;AAEJ,GAAIyJ,KAAOzJ,MACPgE,EAAS,gBAAgB7G,GAAS,SAAS;AAAA,IACvC,WAAAmK;AAAA,EACZ,CAAS;AAET;AACA,SAASkC,GAAiBxF,GAAU7G,GAASmM,GAAYtJ,GAAMsH,GAAW;AACtE,MAAIsC,IAAe5J;AACnB,MAAIkH,GAAkB/J,CAAO,GAAG;AAC5B,UAAM0M,IAAY9C,GAAa5J,CAAO;AACtC,QAAI0M,MAAc,UAAa7J,EAAK,SAAS,GAAG;AAC5C,YAAM8J,IAAsBD,IAAY1M,EAAQ,MAAM;AACtD,UAAI2M,IAAsB;AACtB,QAAAF,IAAe5J,EAAK,UAAU,GAAG8J,CAAmB;AAAA;AAEpD;AAAA,IAER;AAAA,EACJ;AACA,QAAM,EAAE,UAAAC,GAAU,WAAAC,GAAW,UAAAC,EAAQ,IAAKC,GAAkBN,GAAczM,GAASmM,GAAYhC,CAAS;AACxG,EAAIyC,MAAaE,KAAYD,MAAcV,EAAW,eAAeU,MAAcV,EAAW,aAG1FpM,EAAcC,GAAS,SAAS;AAAA,IAChC,MAAM;AAAA,EACd,CAAK,KAAK,CAACgN,GAAmBJ,CAAQ,MAGlCvF,GAAWrH,GAAS4M,CAAQ,GAC5Bf,EAAa;AAAA,IACT,WAAW7L;AAAA,IACX,cAAc6M;AAAA,IACd,aAAaA;AAAA,EACrB,CAAK,GACGZ,GAAajM,CAAO,IAChByJ,GAAuBzJ,GAAS4M,CAAQ,MACxCK,GAAYpG,GAAU7G,GAAS6M,GAAW,CAAA,CAAE,GAC5ChG,EAAS,gBAAgB7G,GAAS,QAAQ,GAC1CwH,GAAkBxH,CAAO,KAG7BiN,GAAYpG,GAAU7G,GAAS6M,GAAW;AAAA,IACtC,MAAAhK;AAAA,IACA,WAAAsH;AAAA,EACZ,CAAS;AAET;AACA,SAAS4C,GAAkBG,GAAW5M,GAAM,EAAE,aAAA8H,GAAa,WAAAC,EAAS,GAAI8B,GAAW;AAC/E,QAAMzI,IAAQ4F,EAAWhH,CAAI,GACvB6M,IAAY,KAAK,IAAI,GAAG/E,MAAgBC,KAAa8B,MAAc,0BAA0B/B,IAAc,IAAIA,CAAW,GAC1HgF,IAAS1L,EAAM,UAAU,GAAGyL,CAAS,GACrCE,IAAc,KAAK,IAAI3L,EAAM,QAAQ0G,MAAgBC,KAAa8B,MAAc,yBAAyB/B,IAAc,IAAIC,CAAS,GACpIiF,IAAS5L,EAAM,UAAU2L,GAAa3L,EAAM,MAAM;AACxD,MAAIkL,IAAW,GAAGQ,CAAM,GAAGF,CAAS,GAAGI,CAAM,IACzCT,IAAYM,IAAYD,EAAU;AACtC,MAAInN,EAAcO,GAAM,SAAS;AAAA,IAC7B,MAAM;AAAA,EACd,CAAK,GAAG;AACA,UAAMiN,IAAaxE,GAAe6D,CAAQ;AAC1C,IAAIW,MAAe,MAAM9D,GAAuBnJ,GAAMiN,CAAU,MAC5DX,IAAWW,GACXV,IAAYU,EAAW;AAAA,EAE/B;AACA,SAAO;AAAA,IACH,UAAU7L;AAAA,IACV,UAAAkL;AAAA,IACA,WAAAC;AAAA,EACR;AACA;AACA,SAASI,GAAYpG,GAAU7G,GAAS6M,GAAWW,GAAW;AAC1D,EAAA3G,EAAS,gBAAgB7G,GAAS,SAASwN,CAAS,GACpDpC,GAAsBpL,GAAS6M,CAAS;AAC5C;AACA,SAASG,GAAmBtL,GAAO;AAC/B,MAAI+L,GAAcC;AAIlB,QAAMC,IAAajM,EAAM,MAAM,KAAK,CAAC;AACrC,SAAO,EAAE,YAAY,KAAKA,CAAK,KAAK,QAAQ+L,IAAe/L,EAAM,MAAM,IAAI,OAAO,QAAQ+L,MAAiB,SAAY,SAAYA,EAAa,MAAM,IAAI,KAAK,QAAQC,IAAgBhM,EAAM,MAAM,KAAK,OAAO,QAAQgM,MAAkB,SAAY,SAAYA,EAAc,MAAM,IAAI,KAAKC,EAAW,CAAC,KAAK,CAAC,UAAU,KAAKA,EAAW,CAAC,CAAC;AAChV;ACnJA/G,EAAS,MAAM,CAAChC,GAAO8B,GAAQG,MACpB,MAAI;AACP,EAAInB,EAAWgB,CAAM,KACjBwF,EAAMrF,GAAUH,GAAQ,IAAI,aAAa;AAEjD;ACNJ,SAASkH,GAAsB5N,GAAS;AAEpC,SAAKA,IAGDqF,EAAkBrF,CAAO,IAClBA,EAAQ,cAEZsH,EAAWtH,CAAO,IALd;AAMf;ACXA,SAAS6N,GAAU7N,GAAS;AACxB,QAAMkB,IAASb,EAAUL,CAAO;AAChC,WAAQ8E,IAAK9E,GAAuD8E,GAAG,eAAeA,IAAKA,EAAG,eAAc;AACxG,UAAM,EAAE,SAAAgJ,GAAS,YAAAC,EAAU,IAAK7M,EAAO,iBAAiB4D,CAAE;AAI1D,QAHIgJ,MAAY,UAGZC,MAAe;AACf,aAAO;AAAA,EAEf;AACA,SAAO;AACX;ACTA,SAASC,GAAkB/I,GAAegJ,GAAO;AAC7C,QAAM9J,IAAWc,EAAc,eACzBiJ,IAAoB/J,EAAS,iBAAiBM,EAAkB,GAChE0J,IAAkB,MAAM,KAAKD,CAAiB,EAAE,OAAO,CAACpJ,MAAKA,MAAOG,KAAiB,EAAE,OAAOH,EAAG,aAAa,UAAU,CAAC,IAAI,KAAKD,EAAWC,CAAE,EAAE;AAEvJ,EAAI,OAAOG,EAAc,aAAa,UAAU,CAAC,KAAK,KAClDkJ,EAAgB,KAAK,CAACC,GAAG9K,MAAI;AACzB,UAAMhC,IAAI,OAAO8M,EAAE,aAAa,UAAU,CAAC,GACrCC,IAAI,OAAO/K,EAAE,aAAa,UAAU,CAAC;AAC3C,WAAIhC,MAAM+M,IACC,IACA/M,MAAM,IACN,IACA+M,MAAM,IACN,KAEJ/M,IAAI+M;AAAA,EACf,CAAC;AAEL,QAAMC,IAAe,CAAA;AACrB,MAAIC,IAAiB;AAAA,IACjBpK,EAAS;AAAA,EACjB;AACI,QAAMqK,IAAmBzO,EAAckF,GAAe,SAAS;AAAA,IAC3D,MAAM;AAAA,EACd,CAAK,IAAIA,EAAc,OAAO;AAC1B,EAAAkJ,EAAgB,QAAQ,CAACM,MAAiB;AACtC,UAAM3J,IAAK2J;AAIX,QAAI1O,EAAc+E,GAAI,SAAS;AAAA,MAC3B,MAAM;AAAA,IAClB,CAAS,KAAKA,EAAG,MAAM;AAEX,UAAIA,MAAOG,GAAe;AACtB,QAAAsJ,EAAe,KAAKzJ,CAAE;AACtB;AAAA,MACJ,WAAWA,EAAG,SAAS0J;AACnB;AAGJ,UAAI1J,EAAG,SAAS;AACZ,QAAAyJ,IAAiBA,EAAe,OAAO,CAACG,MAAI,CAAC3O,EAAc2O,GAAG,SAAS;AAAA,UAC/D,MAAM;AAAA,UACN,MAAM5J,EAAG;AAAA,QACjC,CAAqB,CAAC,GACNyJ,EAAe,KAAKzJ,CAAE,GACtBwJ,EAAaxJ,EAAG,IAAI,IAAIA;AACxB;AAAA,MACJ;AAEA,UAAI,OAAOwJ,EAAaxJ,EAAG,IAAI,IAAM;AACjC;AAAA,IAER;AACA,IAAAyJ,EAAe,KAAKzJ,CAAE;AAAA,EAC1B,CAAC;AACD,WAAQzD,IAAQkN,EAAe,UAAU,CAACzJ,MAAKA,MAAOG,CAAa;AAQ/D,QAPA5D,KAAS4M,IAAQ,KAAK,GAElB5M,MAAUkN,EAAe,SACzBlN,IAAQ,IACDA,MAAU,OACjBA,IAAQkN,EAAe,SAAS,IAEhCA,EAAelN,CAAK,MAAM4D,KAAiBsJ,EAAelN,CAAK,MAAM8C,EAAS,QAAQ0J,GAAUU,EAAelN,CAAK,CAAC;AACrH,aAAOkN,EAAelN,CAAK;AAGvC;ACnEI,SAASsN,GAAcrO,GAAM4J,GAAW;AAExC,MAAIrE,EAAgBvF,CAAI,GAAG;AACvB,UAAM2F,IAAYsC,GAAejI,CAAI;AACrC,IAAAuL,EAAa;AAAA,MACT,WAAWvL;AAAA,MACX,aAAa2F,EAAU,gBAAgBA,EAAU,YAAYA,EAAU,cAAciE,IAAYA,IAAY,IAAIjE,EAAU,cAAcA,EAAU;AAAA,IAC/J,CAAS;AAAA,EACL,OAAO;AACH,UAAMA,IAAY3F,EAAK,cAAc,aAAY;AACjD,QAAI,CAA8D2F,GAAU;AACxE;AAEJ,QAAIA,EAAU,aAAa;AACvB,YAAMsG,IAAevC,GAAsB/D,EAAU,WAAWA,EAAU,aAAaiE,CAAS;AAChG,MAAIqC,KACAV,EAAa;AAAA,QACT,WAAWU,EAAa;AAAA,QACxB,aAAaA,EAAa;AAAA,MAC9C,CAAiB;AAAA,IAET;AACI,MAAAtG,EAAUiE,IAAY,IAAI,oBAAoB,eAAe,EAAC;AAAA,EAEtE;AACJ;ACzBI,SAAS0E,GAAUlI,GAAQ;AAC3B,MAAIb,EAAgBa,CAAM;AACtB,WAAOmF,EAAa;AAAA,MAChB,WAAWnF;AAAA,MACX,cAAc;AAAA,MACd,aAAaY,EAAWZ,CAAM,EAAE;AAAA,IAC5C,CAAS;AAEL,MAAImI;AACJ,QAAMzI,KAAayI,IAAsBvJ,GAAmBoB,CAAM,OAAO,QAAQmI,MAAwB,SAAYA,IAAsBnI,EAAO,cAAc;AAChK,EAAAmF,EAAa;AAAA,IACT,WAAAzF;AAAA,IACA,cAAc;AAAA,IACd,aAAaA,EAAU,WAAW;AAAA,EAC1C,CAAK;AACL;AACA,SAAS0I,GAAcpI,GAAQ;AAC3B,MAAIb,EAAgBa,CAAM;AACtB,WAAO6B,GAAe7B,CAAM,EAAE,gBAAgB,KAAK6B,GAAe7B,CAAM,EAAE,cAAcY,EAAWZ,CAAM,EAAE;AAE/G,MAAImI;AACJ,QAAMzI,KAAayI,IAAsBvJ,GAAmBoB,CAAM,OAAO,QAAQmI,MAAwB,SAAYA,IAAsBnI,EAAO,cAAc,MAC1JT,IAAYS,EAAO,cAAc,aAAY;AACnD,SAAoET,GAAU,eAAgBG,KAAaH,EAAU,cAAcG,KAAaH,EAAU,iBAAiB,KAAKA,EAAU,gBAAgBG,EAAU,WAAW;AACnO;ACvBI,SAAS2I,GAAkB/O,GAASkI,GAAcC,GAAa;AAC/D,MAAI6G;AACJ,MAAInJ,EAAgB7F,CAAO;AACvB,WAAO6L,EAAa;AAAA,MAChB,WAAW7L;AAAA,MACX,cAAAkI;AAAA,MACA,aAAAC;AAAA,IACZ,CAAS;AAEsB,MAAI9C,EAAkBrF,CAAO,OAAOgP,IAAsBhP,EAAQ,gBAAgB,QAAQgP,MAAwB,SAAY,SAAYA,EAAoB,cAAc;AACnM,WAAOnD,EAAa;AAAA,MAChB,WAAW7L,EAAQ;AAAA,MACnB,cAAAkI;AAAA,MACA,aAAAC;AAAA,IACZ,CAAS;AAEsB,QAAM,IAAI,MAAM,gEAAgE;AAC/G;ACrBA,SAAS8G,GAAUpI,GAAU/B,GAAIoF,GAAW;AACxC,QAAMhJ,IAASb,EAAUyE,CAAE,GACrB1C,IAAQ,MAAM,KAAK0C,EAAG,cAAc,iBAAiBA,EAAG,OAAO,6BAA6B5D,EAAO,IAAI,OAAO4D,EAAG,IAAI,CAAC,OAAO,+DAA+D,CAAC;AACnM,WAAQxD,IAAIc,EAAM,UAAU,CAACsM,MAAIA,MAAM5J,CAAE,IAAIoF,KAAY5I,KAAK4I,GAAU;AAIpE,QAHK9H,EAAMd,CAAC,MACRA,IAAI4I,IAAY,IAAI,IAAI9H,EAAM,SAAS,IAEvCA,EAAMd,CAAC,MAAMwD;AACb;AAEJ,QAAI,CAAAD,EAAWzC,EAAMd,CAAC,CAAC,GAGvB;AAAA,MAAAmF,EAAarE,EAAMd,CAAC,CAAC,GACrBuF,EAAS,gBAAgBzE,EAAMd,CAAC,GAAG,OAAO;AAC1C;AAAA;AAAA,EACJ;AACJ;ACNAsF,EAAS,UAAU,CAAChC,GAAO8B,GAAQG,MAAW;AAC1C,MAAIqI,GACAC;AACJ,UAAQA,KAA+BD,IAA6BE,GAAgBxK,EAAM,GAAG,OAAO,QAAQsK,MAA+B,SAAY,SAAYA,EAA2B,KAAKE,IAAiBxK,GAAO8B,GAAQG,CAAQ,OAAO,QAAQsI,MAAgC,SAAYA,IAA8BE,GAAoBzK,GAAO8B,GAAQG,CAAQ;AACnX;AACA,MAAMuI,KAAkB;AAAA,EACpB,WAAW,CAACxK,GAAO8B,GAAQG,MAAW;AACP,QAAI9G,EAAc2G,GAAQ,SAAS;AAAA,MAC1D,MAAM;AAAA,IAClB,CAAS;AACG,aAAO,MAAIuI,GAAUpI,GAAUH,GAAQ,CAAC;AAAA,EAEhD;AAAA,EACA,WAAW,CAAC9B,GAAO8B,GAAQG,MACnB9G,EAAc2G,GAAQ,SAAS;AAAA,IAC/B,MAAM;AAAA,EAClB,CAAS,IACU,MAAIuI,GAAUpI,GAAUH,GAAQ,EAAE,IAEtC,MAAIiI,GAAcjI,GAAQ,EAAE;AAAA,EAEvC,YAAY,CAAC9B,GAAO8B,GAAQG,MACpB9G,EAAc2G,GAAQ,SAAS;AAAA,IAC/B,MAAM;AAAA,EAClB,CAAS,IACU,MAAIuI,GAAUpI,GAAUH,GAAQ,CAAC,IAErC,MAAIiI,GAAcjI,GAAQ,CAAC;AAAA,EAEtC,SAAS,CAAC9B,GAAO8B,GAAQG,MAAW;AACL,QAAI9G,EAAc2G,GAAQ,SAAS;AAAA,MAC1D,MAAM;AAAA,IAClB,CAAS;AACG,aAAO,MAAIuI,GAAUpI,GAAUH,GAAQ,EAAE;AAAA,EAEjD;AAAA,EACA,WAAW,CAAC9B,GAAO8B,GAAQG,MAAW;AAClC,QAAInB,EAAWgB,CAAM;AACjB,aAAO,MAAI;AACP,QAAAwF,EAAMrF,GAAUH,GAAQ,IAAI,uBAAuB;AAAA,MACvD;AAAA,EAER;AAAA,EACA,QAAQ,CAAC9B,GAAO8B,GAAQG,MAAW;AAC/B,QAAInB,EAAWgB,CAAM;AACjB,aAAO,MAAI;AACP,QAAAwF,EAAMrF,GAAUH,GAAQ,IAAI,sBAAsB;AAAA,MACtD;AAAA,EAER;AAAA,EACA,KAAK,CAAC9B,GAAO8B,MAAS;AAClB,QAAI3G,EAAc2G,GAAQ;AAAA,MACtB;AAAA,MACA;AAAA,IACZ,CAAS,KAAKrB,EAAkBqB,CAAM;AAC1B,aAAO,MAAI;AACP,YAAI4I,GACAC;AACJ,cAAMC,KAAUD,KAAiCD,IAAyB1B,GAAsBlH,CAAM,OAAO,QAAQ4I,MAA2B,SAAY,SAAYA,EAAuB,YAAY,QAAQC,MAAkC,SAAYA;AAAA;AAAA,UAA2D;AAAA;AAC5T,QAAAR,GAAkBrI,GAAQ8I,GAAQA,CAAM;AAAA,MAC5C;AAAA,EAER;AAAA,EACA,MAAM,CAAC5K,GAAO8B,MAAS;AACnB,QAAI3G,EAAc2G,GAAQ;AAAA,MACtB;AAAA,MACA;AAAA,IACZ,CAAS,KAAKrB,EAAkBqB,CAAM;AAC1B,aAAO,MAAI;AACP,QAAAqI,GAAkBrI,GAAQ,GAAG,CAAC;AAAA,MAClC;AAAA,EAER;AAAA,EACA,UAAU,CAAC9B,GAAO8B,MAAS;AACvB,QAAI3G,EAAc2G,GAAQ;AAAA,MACtB;AAAA,IACZ,CAAS;AACG,aAAO,MAAI;AACP,cAAM8I,IAASlI,EAAWZ,CAAM,EAAE;AAClC,QAAAqI,GAAkBrI,GAAQ8I,GAAQA,CAAM;AAAA,MAC5C;AAAA,EAER;AAAA,EACA,QAAQ,CAAC5K,GAAO8B,MAAS;AACrB,QAAI3G,EAAc2G,GAAQ;AAAA,MACtB;AAAA,IACZ,CAAS;AACG,aAAO,MAAI;AACP,QAAAqI,GAAkBrI,GAAQ,GAAG,CAAC;AAAA,MAClC;AAAA,EAER;AAAA,EACA,KAAK,CAAC9B,GAAO8B,GAAQG,MACV,MAAI;AACP,UAAM4I,IAAOzB,GAAkBtH,GAAQG,EAAS,OAAO,SAAS,UAAU,KAAK;AAC/E,IAAAJ,EAAagJ,CAAI,GACb5J,EAAgB4J,CAAI,KACpB9H,EAAe8H,GAAM;AAAA,MACjB,cAAc;AAAA,MACd,aAAaA,EAAK,MAAM;AAAA,IAC5C,CAAiB;AAAA,EAET;AAER,GACMJ,KAAsB,CAACzK,GAAO8B,GAAQG,MAAW;AACnD,MAAIjC,EAAM,SAAS,UAAUiC,EAAS,OAAO,SAAS,UAAU;AAC5D,WAAO,MAAI+H,GAAUlI,CAAM;AAEnC;ACtHAE,EAAS,WAAW,CAAChC,GAAO8B,GAAQG,MAAW;AAC3C,MAAIjC,EAAM,QAAQ,SAAS;AACvB,QAAI7E,EAAc2G,GAAQ,QAAQ,KAAK3G,EAAc2G,GAAQ,OAAO,KAAKgJ,GAAkB,SAAShJ,EAAO,IAAI,KAAK3G,EAAc2G,GAAQ,GAAG,KAAaA,EAAO;AAC7J,aAAO,MAAI;AACP,QAAAG,EAAS,gBAAgBH,GAAQ,OAAO;AAAA,MAC5C;AACG,QAAI3G,EAAc2G,GAAQ,OAAO,GAAG;AACvC,YAAMiJ,IAAOjJ,EAAO,MACdkJ,IAA2DD,GAAK,cAAc,iEAAiE;AACrJ,aAAIC,IACO,MAAI/I,EAAS,gBAAgB+I,GAAQ,OAAO,IAC5CD,KAAQE,GAAyB,SAASnJ,EAAO,IAAI,KAAKiJ,EAAK,iBAAiB,OAAO,EAAE,WAAW,IACpG,MAAI9I,EAAS,gBAAgB8I,GAAM,QAAQ,IAElD;AAAA,IAER;AAAA,EACJ;AACA,MAAIjK,EAAWgB,CAAM,GAAG;AACpB,UAAMyD,IAAYvF,EAAM,QAAQ,UAAUS,EAAkBqB,CAAM,KAAK,CAACG,EAAS,OAAO,SAAS,UAAU,QAAQ,oBAAoB,oBAAoB,cACrJqG,IAAYtI,EAAM,QAAQ,UAAU;AAAA,IAAOA,EAAM;AACvD,WAAO,MAAIsH,EAAMrF,GAAUH,GAAQwG,GAAW/C,CAAS;AAAA,EAC3D;AACJ;AACA,MAAMuF,KAAoB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACMG,KAA2B;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AC5CAjJ,EAAS,QAAQ,CAAChC,GAAO8B,GAAQG,MAAW;AACxC,MAAIiJ;AACJ,UAAQA,IAA2BC,GAAcnL,EAAM,GAAG,OAAO,QAAQkL,MAA6B,SAAY,SAAYA,EAAyB,KAAKC,IAAenL,GAAO8B,GAAQG,CAAQ;AACtM;AACA,MAAMkJ,KAAgB;AAAA,EAClB,KAAK,CAACnL,GAAO8B,GAAQG,MAAW;AAC5B,QAAIpB,GAAiBiB,CAAM;AACvB,aAAO,MAAIG,EAAS,gBAAgBH,GAAQ,OAAO;AAAA,EAE3D;AACJ;ACTAE,EAAS,QAAQ,CAAChC,GAAO8B,GAAQG,MAAW;AACxC,MAAInB,EAAWgB,CAAM;AACjB,WAAO,MAAI;AACP,UAAIsJ;AACJ,YAAMC,KAAcD,IAAuBpL,EAAM,mBAAmB,QAAQoL,MAAyB,SAAY,SAAYA,EAAqB,QAAQ,MAAM;AAChK,MAAIC,KACA/D,EAAMrF,GAAUH,GAAQuJ,GAAY,iBAAiB;AAAA,IAE7D;AAER;ACfA,MAAMC,KAAW;AAAA,EACb,UAAU;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,aAAa;AAAA,IACT,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,MAAM;AAAA,IACF,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,OAAO;AAAA,IACH,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,aAAa;AAAA,IACT,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,MAAM;AAAA,IACF,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,QAAQ;AAAA,IACJ,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,IACxB;AAAA,EACA;AAAA,EACI,KAAK;AAAA,IACD,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,UAAU;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,OAAO;AAAA,IACH,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,SAAS;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,UAAU;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,SAAS;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,UAAU;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,OAAO;AAAA,IACH,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,OAAO;AAAA,IACH,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,OAAO;AAAA,IACH,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,WAAW;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,YAAY;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,YAAY;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,WAAW;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,UAAU;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,WAAW;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,SAAS;AAAA,IACL,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,aAAa;AAAA,IACT,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,cAAc;AAAA,IACV,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,IACxB;AAAA,EACA;AAAA,EACI,aAAa;AAAA,IACT,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,aAAa;AAAA,IACT,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,WAAW;AAAA,IACP,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,eAAe;AAAA,IACX,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,YAAY;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB;AAAA,EACA;AAAA,EACI,cAAc;AAAA,IACV,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,IACxB;AAAA,EACA;AAAA,EACI,QAAQ;AAAA,IACJ,WAAW;AAAA,IACX,aAAa;AAAA,MACT,SAAS;AAAA,MACT,YAAY;AAAA,IACxB;AAAA,EACA;AACA;AACA,SAASC,GAAcrO,GAAM;AACzB,SAAOoO,GAASpO,CAAI,EAAE;AAC1B;AACA,MAAMsO,KAAc;AAAA,EAChB;AAAA,EACA;AACJ;AACA,SAASC,GAAavO,GAAM;AACxB,SAAOsO,GAAY,SAASD,GAAcrO,CAAI,CAAC;AACnD;AACA,SAASwO,GAAgBxO,GAAM;AAC3B,SAAOqO,GAAcrO,CAAI,MAAM;AACnC;AC9QA,MAAMyO,KAAmB;AAAA,EACrB,gBAAgB;AAAA,IACZC;AAAA,EACR;AAAA,EACI,OAAO,CAAA;AAAA,EACP,YAAY;AAAA,IACRC;AAAA,IACAC;AAAA,EACR;AAAA,EACI,YAAY;AAAA,IACRD;AAAA,IACAE;AAAA,EACR;AAAA,EACI,YAAY;AAAA,IACRF;AAAA,IACAG;AAAA,IACAC;AAAA,EACR;AAAA,EACI,cAAc;AAAA,IACVJ;AAAA,IACAG;AAAA,IACAC;AAAA,IACAC;AAAA,EACR;AAAA,EACI,eAAe;AAAA,IACXL;AAAA,IACAG;AAAA,IACAG;AAAA,EACR;AACA;AACA,SAASC,GAAYlP,GAAM4E,GAAQuK,GAAM;AACrC,QAAM/P,IAASb,EAAUqG,CAAM,GACzB,EAAE,WAAAwK,GAAW,aAAAC,MAAgBjB,GAASpO,CAAI,GAC1C8C,IAAQ,KAAKwM,GAAqBlQ,CAAM,GAAGgQ,CAAS,EAAEpP,GAAMqP,CAAW;AAC7E,SAAAZ,GAAiBW,CAAS,EAAE,QAAQ,CAACG,MAAIA,EAAEzM,GAAOqM,KAA6C,CAAA,CAAE,CAAC,GAC3FrM;AACX;AAC2B,SAASwM,GAAqBlQ,GAAQ;AAC7D,MAAIoQ;AACqG,QAAMC,KAASD,IAAgBpQ,EAAO,WAAW,QAAQoQ,MAAkB,SAAYA,IAAgB,MAAY;AAAA,EAChO;AACI,MAAIE;AACJ,QAAMC,KAAkBD,IAAyBtQ,EAAO,oBAAoB,QAAQsQ,MAA2B,SAAYA,IAAyB,cAA6BD,EAAM;AAAA,EAC3L;AACI,MAAIG;AACJ,QAAMC,KAAkBD,IAAyBxQ,EAAO,oBAAoB,QAAQwQ,MAA2B,SAAYA,IAAyB,cAA6BH,EAAM;AAAA,EAC3L;AACI,MAAIK;AACJ,QAAMC,KAAiBD,IAAwB1Q,EAAO,mBAAmB,QAAQ0Q,MAA0B,SAAYA,IAAwB,cAA4BL,EAAM;AAAA,EACrL;AACI,MAAIO;AACJ,QAAMC,KAAiBD,IAAwB5Q,EAAO,mBAAmB,QAAQ4Q,MAA0B,SAAYA,IAAwB,cAA4BP,EAAM;AAAA,EACrL;AACI,MAAIS;AACJ,QAAMC,KAAmBD,IAA0B9Q,EAAO,qBAAqB,QAAQ8Q,MAA4B,SAAYA,IAA0B,cAA8BT,EAAM;AAAA,EACjM;AACI,MAAIW;AACJ,QAAMC,KAAWD,IAAkBhR,EAAO,aAAa,QAAQgR,MAAoB,SAAYA,IAAkB,cAAsBX,EAAM;AAAA,EACjJ;AACI,MAAIa;AACJ,QAAMC,MAAoBD,IAA2BlR,EAAO,sBAAsB,QAAQkR,MAA6B,SAAYA,IAA2B,cAA+BD,EAAQ;AAAA,EACzM;AACI,MAAIG;AACJ,QAAMC,MAAcD,IAAqBpR,EAAO,gBAAgB,QAAQoR,MAAuB,SAAYA,IAAqB,cAAyBH,EAAQ;AAAA,EACrK;AACI,MAAIK;AACJ,QAAMC,MAAcD,IAAqBtR,EAAO,gBAAgB,QAAQsR,MAAuB,SAAYA,IAAqB,cAAyBL,EAAQ;AAAA,EACrK;AACI,MAAIO;AACJ,QAAMC,MAAiBD,IAAwBxR,EAAO,mBAAmB,QAAQwR,MAA0B,SAAYA,IAAwB,cAA4BP,EAAQ;AAAA,EACvL;AACI,MAAIS;AACJ,QAAMC,KAAcD,IAAqB1R,EAAO,gBAAgB,QAAQ0R,MAAuB,SAAYA,IAAqB,cAAyBT,EAAQ;AAAA,EACrK;AACI,MAAIW;AACJ,QAAMC,MAAaD,IAAoB5R,EAAO,eAAe,QAAQ4R,MAAsB,SAAYA,IAAoB,cAAwBD,EAAW;AAAA,EAClK;AACI,MAAIG;AACJ,QAAMC,MAAgBD,KAAuB9R,EAAO,kBAAkB,QAAQ8R,OAAyB,SAAYA,KAAuB,cAA2BH,EAAW;AAAA,EACpL;AACI,MAAIK;AACJ,QAAMC,MAAcD,KAAqBhS,EAAO,gBAAgB,QAAQgS,OAAuB,SAAYA,KAAqB,cAAyBf,EAAQ;AAAA,EACrK;AAC4G,SAAO;AAAA,IAC3G,OAAAZ;AAAA,IACA,gBAAAE;AAAA,IACA,gBAAAE;AAAA,IACA,eAAAE;AAAA,IACA,eAAAE;AAAA,IACA,iBAAAE;AAAA,IACA,SAAAE;AAAA,IACA,kBAAAE;AAAA,IACA,YAAAE;AAAA,IACA,YAAAE;AAAA,IACA,eAAAE;AAAA,IACA,YAAAE;AAAA,IACA,WAAAE;AAAA,IACA,cAAAE;AAAA,IACA,YAAAE;AAAA,EACR;AACA;AACA,SAASC,EAAY5R,GAAKtB,GAAO;AAC7B,aAAW,CAACuB,GAAKC,CAAK,KAAK,OAAO,QAAQxB,CAAK;AAC3C,WAAO,eAAesB,GAAKC,GAAK;AAAA,MAC5B,KAAK,MAAIC,KAAgD;AAAA,IACrE,CAAS;AAET;AACA,SAAS2R,EAAeC,GAAG;AACvB,SAAO,OAAOA,KAAoC,CAAC;AACvD;AACA,SAAS9C,GAAmB5L,GAAO,EAAE,eAAAN,KAAiB;AAClD,EAAA8O,EAAYxO,GAAO;AAAA,IACf,eAAAN;AAAA,EACR,CAAK;AACL;AACA,SAASoM,GAAe9L,GAAO,EAAE,eAAA2O,KAAiB;AAC9C,EAAAH,EAAYxO,GAAO;AAAA,IACf,eAAA2O;AAAA,EACR,CAAK;AACL;AACA,SAAS5C,GAAe/L,GAAO,EAAE,MAAA/B,GAAM,WAAAsH,GAAW,aAAAqJ,EAAW,GAAI;AAC7D,EAAAJ,EAAYxO,GAAO;AAAA,IACf,MAAA/B;AAAA,IACA,aAAa,EAAQ2Q;AAAA,IACrB,WAAW,OAAOrJ,CAAS;AAAA,EACnC,CAAK;AACL;AACA,SAASsG,GAAY7L,GAAO,EAAE,MAAA6O,GAAM,QAAAC,EAAM,GAAI;AAC1C,EAAAN,EAAYxO,GAAO;AAAA,IACf,MAAA6O;AAAA,IACA,QAAQJ,EAAeK,KAAmD,CAAC;AAAA,EACnF,CAAK;AACL;AACA,SAAS9C,GAAqBhM,GAAO,EAAE,QAAA+O,GAAQ,SAAAC,GAAS,SAAAC,GAAS,UAAAC,GAAU,kBAAAC,GAAkB,kBAAAC,GAAkB,YAAAC,GAAY,gBAAAC,GAAgB,iBAAAC,GAAiB,oBAAAC,GAAoB,gBAAAC,GAAgB,oBAAAC,KAAsB;AAClN,EAAAlB,EAAYxO,GAAO;AAAA,IACf,QAAQ,EAAQ+O;AAAA,IAChB,SAAS,EAAQC;AAAA,IACjB,SAAS,EAAQC;AAAA,IACjB,UAAU,EAAQC;AAAA,IAClB,iBAAkB3T,GAAG;AACjB,aAAO,EAAQ;AAAA,QACX,KAAKwT;AAAA,QACL,UAAUI;AAAA,QACV,UAAUC;AAAA,QACV,SAASJ;AAAA,QACT,IAAIK;AAAA,QACJ,QAAQC;AAAA,QACR,MAAML;AAAA,QACN,SAASM;AAAA,QACT,YAAYC;AAAA,QACZ,OAAON;AAAA,QACP,QAAQO;AAAA,QACR,YAAYC;AAAA,MAC5B,EAAcnU,CAAC;AAAA,IACP;AAAA,EACR,CAAK;AACL;AACA,SAAS4Q,GAAkBnM,GAAO,EAAE,KAAAnD,GAAK,MAAA8S,GAAM,UAAAC,GAAU,QAAAC,GAAQ,aAAAjB,GAAa,UAAAkB,KAAY;AACtF,EAAAtB,EAAYxO,GAAO;AAAA,IACf,KAAK,OAAOnD,CAAG;AAAA,IACf,MAAM,OAAO8S,CAAI;AAAA,IACjB,UAAUlB,EAAemB,CAAQ;AAAA,IACjC,QAAQ,EAAQC;AAAA,IAChB,aAAa,EAAQjB;AAAA,IACrB,UAAAkB;AAAA,EACR,CAAK;AACL;AACA,SAAS7D,GAAejM,GAAO,EAAE,GAAA+P,GAAG,GAAAC,GAAG,SAAAC,GAAS,SAAAC,GAAS,SAAAC,IAAUJ,GAAG,SAAAK,IAAUJ,GAAG,QAAAK,GAAQ,SAAAC,GAAS,eAAA3B,GAAe,SAAA4B,GAAS,SAAAC,GAAS,OAAAC,GAAO,OAAAC,KAAS;AACjJ,EAAAlC,EAAYxO,GAAO;AAAA,IACf,SAASyO,EAAewB,CAAO;AAAA,IAC/B,SAASxB,EAAeyB,CAAO;AAAA,IAC/B,SAASzB,EAAe0B,CAAO;AAAA,IAC/B,GAAG1B,EAAe0B,CAAO;AAAA,IACzB,SAAS1B,EAAe2B,CAAO;AAAA,IAC/B,GAAG3B,EAAe2B,CAAO;AAAA,IACzB,QAAQ3B,EAAe4B,CAAM;AAAA,IAC7B,SAAS5B,EAAe6B,CAAO;AAAA,IAC/B,eAAA3B;AAAA,IACA,SAASF,EAAe8B,CAAO;AAAA,IAC/B,SAAS9B,EAAe+B,CAAO;AAAA,IAC/B,OAAO/B,EAAegC,CAAK;AAAA,IAC3B,OAAOhC,EAAeiC,CAAK;AAAA,EACnC,CAAK;AACL;AACA,SAASxE,GAAiBlM,GAAO,EAAE,WAAA2Q,GAAW,OAAAC,GAAO,QAAAC,GAAQ,UAAAC,GAAU,oBAAAC,GAAoB,OAAAC,GAAO,OAAAC,GAAO,OAAAC,GAAO,aAAAC,GAAa,WAAAC,EAAS,GAAI;AACtI,EAAA5C,EAAYxO,GAAO;AAAA,IACf,WAAWyO,EAAekC,CAAS;AAAA,IACnC,OAAOlC,EAAemC,KAAgD,CAAC;AAAA,IACvE,QAAQnC,EAAeoC,KAAmD,CAAC;AAAA,IAC3E,UAAUpC,EAAeqC,CAAQ;AAAA,IACjC,oBAAoBrC,EAAesC,CAAkB;AAAA,IACrD,OAAOtC,EAAeuC,CAAK;AAAA,IAC3B,OAAOvC,EAAewC,CAAK;AAAA,IAC3B,OAAOxC,EAAeyC,CAAK;AAAA,IAC3B,aAAa,OAAOC,CAAW;AAAA,IAC/B,WAAW,EAAQC;AAAA,EAC3B,CAAK;AACL;AC/LA,SAASC,GAAgBvP,GAAQ5E,GAAMmP,GAAMiF,IAAiB,IAAO;AACjE,GAAI7F,GAAavO,CAAI,KAAKwO,GAAgBxO,CAAI,OAC1CmP,IAAO;AAAA,IACH,GAAGA;AAAA,IACH,GAAG,KAAK,OAAO,oBAAmB;AAAA,EAC9C;AAEI,QAAMrM,IAAQoM,GAAYlP,GAAM4E,GAAQuK,CAAI;AAC5C,SAAOkF,GAAc,KAAK,MAAMzP,GAAQ9B,GAAOsR,CAAc;AACjE;AACA,SAASC,GAAczP,GAAQ9B,GAAOsR,IAAiB,IAAO;AAC1D,MAAIE;AACJ,QAAMtU,IAAO8C,EAAM,MACbyR,IAAyBH,IAAiB,MAAI;AAAA,EAAC,KAAKE,IAAiBxP,EAAS9E,CAAI,OAAO,QAAQsU,MAAmB,SAAY,SAAYA,EAAe,KAAKxP,GAAUhC,GAAO8B,GAAQ,IAAI;AACnM,MAAI2P,GAAwB;AACxB,IAAAzR,EAAM,eAAc;AACpB,QAAI0R,IAAmB;AACvB,kBAAO,eAAe1R,GAAO,oBAAoB;AAAA,MAC7C,KAAK,MAAI0R;AAAA,IACrB,CAAS,GACD,OAAO,eAAe1R,GAAO,kBAAkB;AAAA,MAC3C,OAAO,MAAI;AACP,QAAA0R,IAAmB1R,EAAM;AAAA,MAC7B;AAAA,IACZ,CAAS,GACDyB,EAAU,MAAIK,EAAO,cAAc9B,CAAK,CAAC,GACpC0R,KACDD,EAAsB,GAEnB,CAACC;AAAA,EACZ;AACA,SAAOjQ,EAAU,MAAIK,EAAO,cAAc9B,CAAK,CAAC;AACpD;AACA,SAAS2R,EAAiB7P,GAAQ5E,GAAMmP,GAAM;AAC1C,QAAMrM,IAAQoM,GAAYlP,GAAM4E,GAAQuK,CAAI;AAC5C,EAAA5K,EAAU,MAAIK,EAAO,cAAc9B,CAAK,CAAC;AAC7C;AC1CA,MAAM4R,KAAU,uBAAO,4BAA4B;AACnD,SAASC,GAAWC,GAAa;AAC7B,MAAIA,EAAY,UAAUF,EAAO;AAC7B;AAGJ,QAAM,EAAE,OAAAG,GAAO,MAAAC,EAAI,IAAKF,EAAY;AACpC,SAAO,iBAAiBA,EAAY,WAAW;AAAA,IAC3C,OAAO;AAAA,MACH,cAAc;AAAA,MACd,KAAK,MAAIG;AAAA,IACrB;AAAA,IACQ,MAAM;AAAA,MACF,cAAc;AAAA,MACd,KAAK,MAAIC;AAAA,IACrB;AAAA,IACQ,CAACN,EAAO,GAAG;AAAA,MACP,cAAc;AAAA,MACd,KAAK,OAAK;AAAA,QACF,OAAAG;AAAA,QACA,MAAAC;AAAA,MACpB;AAAA,IACA;AAAA,EACA,CAAK;AACD,MAAIG;AACJ,WAASF,EAAaG,GAAS;AAC3B,QAAI,KAAK,cAAc,oBAAoB;AACvC,aAAOL,EAAM,KAAK,MAAMK,CAAO;AAEnC,UAAMC,IAAUC,GAAgB,KAAK,aAAa;AAClD,QAAID,MAAY;AACZ;AAEJ,UAAME,IAAW,uBAAO,YAAY;AACpC,IAAAJ,IAAaI,GACTF,MACAL,EAAK,KAAKK,CAAO,GACjBV,EAAiBU,GAAS,QAAQ;AAAA,MAC9B,eAAe;AAAA,IAC/B,CAAa,GACDV,EAAiBU,GAAS,YAAY;AAAA,MAClC,eAAeF,MAAeI,IAAW,OAAO;AAAA,IAChE,CAAa,IAEDJ,MAAeI,MACfR,EAAM,KAAK,MAAMK,CAAO,GACxBT,EAAiB,MAAM,SAAS;AAAA,MAC5B,eAAeU;AAAA,IAC/B,CAAa,IAEDF,MAAeI,KACfZ,EAAiB,MAAM,WAAW;AAAA,MAC9B,eAAeU;AAAA,IAC/B,CAAa;AAAA,EAET;AACA,WAASH,IAAc;AACnB,QAAI,KAAK,cAAc,oBAAoB;AACvC,aAAOF,EAAK,KAAK,IAAI;AAEzB,UAAMK,IAAUC,GAAgB,KAAK,aAAa;AAClD,QAAID,MAAY;AACZ;AAGJ,IAAAF,IADiB,uBAAO,WAAW,GAEnCH,EAAK,KAAK,IAAI,GACdL,EAAiBU,GAAS,QAAQ;AAAA,MAC9B,eAAe;AAAA,IAC3B,CAAS,GACDV,EAAiBU,GAAS,YAAY;AAAA,MAClC,eAAe;AAAA,IAC3B,CAAS;AAAA,EACL;AACJ;AACA,SAASC,GAAgB/S,GAAU;AAC/B,QAAMiT,IAASpS,GAAiBb,CAAQ;AACxC,SAA8DiT,GAAO,YAAa,SAAS,OAAOA;AACtG;AC9EA,MAAMC,KAAc,uBAAO,sCAAsC;AACjE,SAASC,EAAmBtX,GAASuX,GAAUC,GAAiB;AAC5D,QAAMC,IAAsB,OAAO,yBAAyBzX,EAAQ,YAAY,WAAWuX,CAAQ,GAC7FG,IAAmB,OAAO,yBAAyB1X,GAASuX,CAAQ,GACpE7Q,IAA0F+Q,GAAoB,MAAO,QAAQ;AAC1G,MAAI,OAAwFA,IAAoB/Q,CAAM,KAAO,cAAc+Q,EAAoB/Q,CAAM,EAAE2Q,EAAW;AACvM,UAAM,IAAI,MAAM,WAAWrX,EAAQ,OAAO,wBAAwB,OAAOuX,CAAQ,CAAC,IAAI;AAE1F,WAASI,KAAa3V,GAAM;AACxB,UAAM,EAAE,aAAA4V,IAAc,IAAO,UAAAC,GAAU,MAAAC,MAASN,EAAgB,KAAK,MAAM,GAAGxV,CAAI,GAC5E+V,KAAY,CAACH,KAAeF,KAAoBD,GAAqB/Q,CAAM;AACjF,IAAIA,MAAW,QACXqR,EAAS,KAAK,MAAMF,CAAQ,IAE5BE,EAAS,KAAK,MAAM,GAAGF,CAAQ,GAEeC,IAAI;AAAA,EAC1D;AACA,EAAAH,EAAUN,EAAW,IAAIA,IACzB,OAAO,eAAerX,GAASuX,GAAU;AAAA,IACrC,GAAGG,KAAiFD;AAAA,IACpF,CAAC/Q,CAAM,GAAGiR;AAAA,EAClB,CAAK;AACL;AACA,SAASK,GAAwBhY,GAAS;AACtC,EAAAsX,EAAmBtX,GAAS,SAAS,SAAyBI,GAAG;AAC7D,UAAM6X,IAAO/Q,GAAU9G,CAAC;AACxB,WAAI6X,KACAjN,GAAgB,IAAI,GAEjB;AAAA,MACH,aAAa,CAAC,CAACiN;AAAA,MACf,UAAUC,GAAc,MAAM9X,CAAC;AAAA,MAC/B,MAAM6X,IAAO,SAAY,MAAIhN,GAAgB,MAAM,OAAO7K,CAAC,CAAC;AAAA,IACxE;AAAA,EACI,CAAC;AACL;AACA,SAAS8X,GAAclY,GAASI,GAAG;AAE/B,SAAIL,EAAcC,GAAS,SAAS;AAAA,IAChC,MAAM;AAAA,EACd,CAAK,KAAK,OAAOI,CAAC,MAAM,MAAM,CAAC,OAAO,MAAM,OAAOA,CAAC,CAAC,IAEtC,OAAO,OAAOA,CAAC,CAAC,IAEpB,OAAOA,CAAC;AACnB;AACA,SAAS+X,GAA4BnY,GAAS;AAC1C,EAAAsX,EAAmBtX,GAAS,qBAAqB,SAAyBoH,MAAUgR,GAAQ;AACxF,UAAMH,IAAO9Q,GAAmBC,CAAK;AACrC,WAAO;AAAA,MACH,aAAa,CAAC,CAAC6Q;AAAA,MACf,UAAU;AAAA,QACN,OAAO7Q,CAAK;AAAA,QACZ,GAAGgR;AAAA,MACnB;AAAA,MACY,MAAM,MAAIH,IAAO,SAAYpP,GAAoB7I,CAAO;AAAA,IACpE;AAAA,EACI,CAAC,GACDsX,EAAmBtX,GAAS,kBAAkB,SAAyBI,GAAG;AACtE,WAAO;AAAA,MACH,UAAUA;AAAA,MACV,MAAM,MAAIyI,GAAoB7I,CAAO;AAAA,IACjD;AAAA,EACI,CAAC,GACDsX,EAAmBtX,GAAS,gBAAgB,SAAyBI,GAAG;AACpE,WAAO;AAAA,MACH,UAAUA;AAAA,MACV,MAAM,MAAIyI,GAAoB7I,CAAO;AAAA,IACjD;AAAA,EACI,CAAC,GACDsX,EAAmBtX,GAAS,UAAU,WAA2B;AAC7D,WAAO;AAAA,MACH,UAAU,CAAA;AAAA,MACV,MAAM,MAAI0H,GAAkB1H,GAAS;AAAA,QAC7B,cAAc;AAAA,QACd,aAAasH,EAAWtH,CAAO,EAAE;AAAA,MACrD,CAAiB;AAAA,IACjB;AAAA,EACI,CAAC;AACL;AACA,SAASqY,GAA4BrY,GAAS;AAC1C,EAAAsX,EAAmBtX,GAAS,gBAAgB,YAA4B6X,GAAU;AAC9E,WAAO;AAAA,MACH,UAAAA;AAAA,MACA,MAAM,MAAI;AACN,QAAAtQ,GAAgBvH,CAAO,GACvB6I,GAAoB7I,CAAO;AAAA,MAC/B;AAAA,IACZ;AAAA,EACI,CAAC;AACL;ACzFA,MAAMsY,IAAa,uBAAO,+CAA+C;AACzE,SAASC,GAAgBpU,GAAU;AAC/B,EAAIA,EAASmU,CAAU,MAGvBnU,EAAS,iBAAiB,SAAS,CAACuK,MAAI;AACpC,UAAM5J,IAAK4J,EAAE;AACb,IAAA8J,GAAe1T,CAAE;AAAA,EACrB,GAAG;AAAA,IACC,SAAS;AAAA,IACT,SAAS;AAAA,EACjB,CAAK,GAIGX,EAAS,iBACTqU,GAAerU,EAAS,aAAa,GAEzCA,EAAS,iBAAiB,QAAQ,CAACuK,MAAI;AACnC,UAAM5J,IAAK4J,EAAE,QACP+J,IAAehR,GAAgB3C,CAAE;AACvC,IAAI2T,MAAiB,WACb3T,EAAG,UAAU2T,KACblC,EAAiBzR,GAAI,QAAQ,GAEjC0C,GAAkB1C,CAAE;AAAA,EAE5B,GAAG;AAAA,IACC,SAAS;AAAA,IACT,SAAS;AAAA,EACjB,CAAK,GACDX,EAASmU,CAAU,IAAIA;AAC3B;AACA,SAASE,GAAe1T,GAAI;AACxB,EAAIA,EAAGwT,CAAU,MAGbvY,EAAc+E,GAAI;AAAA,IAClB;AAAA,IACA;AAAA,EACR,CAAK,MACGkT,GAAwBlT,CAAE,GAC1BqT,GAA4BrT,CAAE,GAC9BuT,GAA4BvT,CAAE,IAElCA,EAAGwT,CAAU,IAAIA;AACrB;ACrDA,SAASI,GAAoB5T,GAAI;AAC7B,SAAOtE,GAAWsE,CAAE,IAAIA,IAAKA,EAAG;AACpC;AACA,SAAStE,GAAWF,GAAM;AACtB,SAAOA,EAAK,aAAa;AAC7B;ACLA,IAAIqY,IAAyB,0BAASA,GAAU;AAC5C,SAAAA,EAASA,EAAS,UAAa,CAAC,IAAI,WACpCA,EAASA,EAAS,OAAU,CAAC,IAAI,QAC1BA;AACX,GAAE,EAAE;AACJ,SAASC,GAAY/R,GAAUgS,GAAO;AAClC,EAAAhS,EAAS,UAAUgS,CAAK,IAAI,CAAA;AAChC;AACA,SAASC,GAAYjS,GAAUgS,GAAO;AAClC,SAAOhS,EAAS,UAAUgS,CAAK;AACnC;ACVA,SAASE,EAAKC,GAAQ;AAClB,QAAMC,IAAQD,EAAO;AACrB,MAAI,OAAOC,KAAU;AAGrB,WAAO,QAAQ,IAAI;AAAA,MACf,IAAI,QAAQ,CAACC,MAAU,WAAW,WAAW,MAAIA,EAAO,GAAID,CAAK,CAAC;AAAA,MAClED,EAAO,cAAcC,CAAK;AAAA,IAClC,CAAK;AACL;ACTA,IAAIE,KAAwC,0BAASA,GAAyB;AAIxE,SAAAA,EAAwBA,EAAwB,cAAiB,CAAC,IAAI,eACRA,EAAwBA,EAAwB,cAAiB,CAAC,IAAI,eAClGA,EAAwBA,EAAwB,aAAgB,CAAC,IAAI,cAC1EA,EAAwBA,EAAwB,QAAW,CAAC,IAAI,SACxFA;AACX,GAAE,EAAE;ACNJ,SAAS5X,EAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AACA,IAAI4X,IAAiC,0BAASA,GAAkB;AAC5D,SAAAA,EAAiBA,EAAiB,WAAc,CAAC,IAAI,YACrDA,EAAiBA,EAAiB,OAAU,CAAC,IAAI,QACjDA,EAAiBA,EAAiB,QAAW,CAAC,IAAI,SAClDA,EAAiBA,EAAiB,SAAY,CAAC,IAAI,UAC5CA;AACX,GAAE,EAAE;AACJ,MAAMC,KAAe;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,SAASC,GAAc7X,GAAK;AACxB,SAAO4X,GAAa,SAAS5X,CAAG;AACpC;AACA,MAAM8X,KAAgB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,SAASC,GAAe/X,GAAK;AACzB,SAAO8X,GAAc,SAAS9X,CAAG;AACrC;AACA,MAAMgY,GAAa;AAAA,EACf,aAAaC,GAAQ;AACjB,WAAO,KAAK,QAAQ,IAAI,OAAOA,EAAO,IAAI,CAAC;AAAA,EAC/C;AAAA,EACA,iBAAiB;AACb,WAAO,KAAK,QAAQ,OAAM,EAAG,IAAI,CAACC,MAAIA,EAAE,MAAM;AAAA,EAClD;AAAA;AAAA,EACmB,MAAM,QAAQ9S,GAAU6S,GAAQ;AAC/C,UAAMjY,IAAM,OAAOiY,EAAO,GAAG,GACvBnF,IAAO,OAAOmF,EAAO,IAAI,GACzBhT,IAASxB,GAAuB2B,EAAS,OAAO,QAAQ;AAC9D,SAAK,iBAAiBH,CAAM,GAC5B,KAAK,QAAQ,IAAI6N,GAAMmF,CAAM,GACzBJ,GAAc7X,CAAG,MACjB,KAAK,UAAUA,CAAG,IAAI;AAE1B,UAAMmY,IAAc/S,EAAS,gBAAgBH,GAAQ,WAAW;AAAA,MAC5D,KAAAjF;AAAA,MACA,MAAA8S;AAAA,IACZ,CAAS;AACD,IAAIiF,GAAe/X,CAAG,KAAK,CAAC,KAAK,UAAUA,CAAG,MAC1C,KAAK,UAAUA,CAAG,IAAI,IACtB,KAAK,kBAAkBA,CAAG,IAAI,KAE9BmY,KACA,KAAK,QAAQ,eAAerF,CAAI,GAEhCqF,KAAe,KAAK,YAAYnY,CAAG,KACnCoF,EAAS,gBAAgB3B,GAAuB2B,EAAS,OAAO,QAAQ,GAAG,YAAY;AAAA,MACnF,KAAApF;AAAA,MACA,MAAA8S;AAAA,MACA,UAAUmF,EAAO,QAAQ,UAAU,KAAK,OAAOA,EAAO,GAAG,EAAE,WAAW,CAAC;AAAA,IACvF,CAAa;AAAA,EAET;AAAA;AAAA,EACqB,MAAM,MAAM7S,GAAU6S,GAAQ;AAC/C,UAAMjY,IAAM,OAAOiY,EAAO,GAAG,GACvBnF,IAAO,OAAOmF,EAAO,IAAI,GACzBE,IAAc,KAAK,QAAQ,cAAcrF,CAAI;AACnD,SAAK,QAAQ,OAAOA,CAAI,GACpB+E,GAAc7X,CAAG,KAAK,CAAC,KAAK,QAAQ,OAAM,EAAG,KAAK,CAACkY,MAAIA,EAAE,OAAO,QAAQlY,CAAG,MAC3E,KAAK,UAAUA,CAAG,IAAI,KAE1BoF,EAAS,gBAAgB3B,GAAuB2B,EAAS,OAAO,QAAQ,GAAG,SAAS;AAAA,MAChF,KAAApF;AAAA,MACA,MAAA8S;AAAA,IACZ,GAAW,CAACqF,CAAW,GACXJ,GAAe/X,CAAG,KAAK,KAAK,UAAUA,CAAG,MACrC,KAAK,kBAAkBA,CAAG,IAC1B,KAAK,kBAAkBA,CAAG,IAAI,KAE9B,KAAK,UAAUA,CAAG,IAAI;AAAA,EAGlC;AAAA,EACA,iBAAiBiF,GAAQ;AACrB,IAAIA,MAAW,KAAK,sBAChB,KAAK,YAAY,KAErB,KAAK,oBAAoBA;AAAA,EAC7B;AAAA,EACA,YAAYjF,GAAK;AACb,YAAQA,EAAI,WAAW,KAAKA,MAAQ,YAAY,CAAC,KAAK,UAAU,WAAW,CAAC,KAAK,UAAU;AAAA,EAC/F;AAAA,EACA,YAAYoY,GAAO;AACftY,IAAAA,EAAiB,MAAM,UAAU,MAAS,GAC1CA,EAAiB,MAAM,aAAa;AAAA,MAChC,KAAK;AAAA,MACL,UAAU;AAAA,MACV,UAAU;AAAA,MACV,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,IACxB,CAAS,GACDA,EAAiB,MAAM,WAAW,IAAI,MAAM;AAAA,MACxC,IAAIgT,GAAMmF,GAAQ;AACd,YAAII,GAAgBC,GAChBC;AACJ,SAACA,KAAKF,IAAiB,KAAK,UAAUC,IAAQxF,CAAI,OAAO,QAAQyF,MAAM,WAAgBF,EAAeC,CAAK,IAAI;AAAA,UAC3G,QAAAL;AAAA,UACA,oBAAoB;AAAA,QACxC;AAAA,MACY;AAAA,MACA,IAAInF,GAAM;AACN,eAAO,CAAC,CAAC,KAAK,SAASA,CAAI;AAAA,MAC/B;AAAA,MACA,eAAeA,GAAM;AACjB,cAAMtM,IAAI,KAAK,SAASsM,CAAI;AAC5B,QAAItM,MACAA,EAAE,qBAAqB;AAAA,MAE/B;AAAA,MACA,cAAcsM,GAAM;AAChB,YAAI0F;AACJ,eAAO,CAAC,EAAG,GAAAA,IAAsB,KAAK,SAAS1F,CAAI,OAAO,QAAQ0F,MAAwB,WAAwBA,EAAoB;AAAA,MAC1I;AAAA,MACA,OAAO1F,GAAM;AAET,eAAO,KAAK,SAASA,CAAI;AAAA,MAC7B;AAAA,MACA,SAAS;AACL,eAAO,OAAO,OAAO,KAAK,QAAQ;AAAA,MACtC;AAAA,MACA,cAAa;AACThT,QAAAA,EAAiB,MAAM,YAAY,EAAE;AAAA,MACzC;AAAA,IACZ,GAAW,GACHA,EAAiB,MAAM,aAAa,EAAE,GACtCA,EAAiB,MAAM,qBAAqB,MAAS,GACrDA,EAAiB,MAAM,qBAAqB,EAAE,GAC9C,KAAK,SAASsY;AAAA,EAClB;AACJ;AC/JI,MAAMK,KAAgB;AAAA;AAAA,EAEtB,GAAG,aAAa,MAAM,EAAE,EAAE,IAAI,CAACC,OAAK;AAAA,IAC5B,MAAM,QAAQA,CAAC;AAAA,IACf,KAAKA;AAAA,EACjB,EAAU;AAAA,EACN,GAAG,aAAa,MAAM,EAAE,EAAE,IAAI,CAACA,GAAG7Y,OAAK;AAAA,IAC/B,MAAM,QAAQA,CAAC;AAAA,IACf,KAAK6Y;AAAA,IACL,UAAU;AAAA,EACtB,EAAU;AAAA,EACN,GAAG,6BAA6B,MAAM,EAAE,EAAE,IAAI,CAACA,OAAK;AAAA,IAC5C,MAAM,MAAMA,EAAE,YAAW,CAAE;AAAA,IAC3B,KAAKA;AAAA,EACjB,EAAU;AAAA,EACN,GAAG,6BAA6B,MAAM,EAAE,EAAE,IAAI,CAACA,OAAK;AAAA,IAC5C,MAAM,MAAMA,CAAC;AAAA,IACb,KAAKA;AAAA,IACL,UAAU;AAAA,EACtB,EAAU;AAAA,EACN;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAU;AAAA,EAClB;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAU;AAAA,EAClB;AAAA;AAAA,EAEI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUf,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,IACL,UAAUA,EAAiB;AAAA,EACnC;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA;AAAA,EAEI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA;AAAA,EAEI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA;AAAA,EAEI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA;AAAA,EAEI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,KAAK;AAAA,EACb;AACA,GC7KMc,KAAgB;AAAA,EAClB;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,QAAQ;AAAA,EAChB;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,QAAQ;AAAA,EAChB;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,QAAQ;AAAA,EAChB;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,EACrB;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,EACrB;AAAA,EACI;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,EACrB;AACA;AC5BA,SAAS3Y,GAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AACA,MAAM4Y,GAAQ;AAAA,EACV,aAAa;AACT,QAAIha,IAAI;AACR,eAAW6U,KAAU,OAAO,KAAK,KAAK,OAAO;AAEzC,MAAA7U,KAAK,KAAK,OAAO6U,CAAM;AAE3B,WAAO7U;AAAA,EACX;AAAA,EACA,KAAKsZ,GAAQ;AACT,UAAMzE,IAASoF,GAAiBX,EAAO,MAAM;AAC7C,QAAIzE,KAAU,KAAK,SAAS;AACxB,WAAK,QAAQA,CAAM,EAAE,KAAKyE,CAAM;AAChC;AAAA,IACJ;AACA,gBAAK,QAAQzE,CAAM,IAAI;AAAA,MACnByE;AAAA,IACZ,GACezE;AAAA,EACX;AAAA,EACA,GAAGyE,GAAQ;AACP,UAAMzE,IAASoF,GAAiBX,EAAO,MAAM;AAC7C,QAAIzE,KAAU,KAAK,YACf,KAAK,QAAQA,CAAM,IAAI,KAAK,QAAQA,CAAM,EAAE,OAAO,CAAC9U,MAAIA,EAAE,SAASuZ,EAAO,IAAI,GAC1E,KAAK,QAAQzE,CAAM,EAAE,WAAW;AAEhC,oBAAO,KAAK,QAAQA,CAAM,GACnBA;AAAA,EAInB;AAAA,EACA,cAAa;AACT1T,IAAAA,GAAiB,MAAM,WAAW,EAAE;AAAA,EACxC;AACJ;AACA,MAAM+Y,KAAc;AAAA,EAChB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AACR;AACA,SAASD,GAAiBpF,IAAS,GAAG;AAClC,SAAIA,KAAUqF,KACHA,GAAYrF,CAAM,IAEtB,OAAOA,CAAM;AACxB;AAEA,MAAMsF,KAAkB;AAAA,EACpB,GAAG;AAAA,EACH,GAAG;AACP;AACA,SAASC,GAAoBvF,GAAQ;AAEjC,SADAA,IAASoF,GAAiBpF,CAAM,GAC5BA,KAAUsF,KACHA,GAAgBtF,CAAM,IAE1BA;AACX;AC3EA,SAAS1T,GAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AACA,MAAMiZ,GAAO;AAAA,EACT,IAAI,eAAe;AACf,WAAO,KAAK,YAAY;AAAA,EAC5B;AAAA,EACA,UAAUf,GAAQ;AACd,WAAO,KAAK,YAAY,IAAIA,EAAO,IAAI;AAAA,EAC3C;AAAA,EACA,WAAWA,GAAQ;AACf,WAAO,KAAK,YAAY,IAAIA,EAAO,IAAI;AAAA,EAC3C;AAAA,EACA,cAAcA,GAAQ;AAClB,WAAO,KAAK,YAAY,OAAOA,EAAO,IAAI;AAAA,EAC9C;AAAA,EACA,cAAa;AACTnY,IAAAA,GAAiB,MAAM,eAAe,oBAAI,IAAG,CAAE;AAAA,EACnD;AACJ;AC7BA,SAASmZ,GAAYtM,GAAG9K,GAAG;AACvB,QAAMqX,IAAQ,CAAA;AACd,WAAQ7V,IAAKsJ,GAAGtJ,GAAIA,IAAKA,EAAG;AACxB,IAAA6V,EAAM,KAAK7V,CAAE;AAEjB,QAAM8V,IAAQ,CAAA;AACd,WAAQ9V,IAAKxB,GAAGwB,GAAIA,IAAKA,EAAG;AACxB,IAAA8V,EAAM,KAAK9V,CAAE;AAEjB,MAAIxD,IAAI;AACR,SACQ,EAAAA,KAAKqZ,EAAM,UAAUrZ,KAAKsZ,EAAM,UAAUD,EAAMA,EAAM,SAAS,IAAIrZ,CAAC,MAAMsZ,EAAMA,EAAM,SAAS,IAAItZ,CAAC,IADrGA;AACH;AAIJ,SAAO;AAAA,IACHqZ,EAAM,MAAM,GAAGA,EAAM,SAASrZ,CAAC;AAAA,IAC/BsZ,EAAM,MAAM,GAAGA,EAAM,SAAStZ,CAAC;AAAA,IAC/BsZ,EAAM,MAAMA,EAAM,SAAStZ,CAAC;AAAA,EACpC;AACA;AChBA,SAASuZ,GAAqB,EAAE,QAAAnU,GAAQ,MAAApG,GAAM,QAAA2J,EAAM,GAAI;AACpD,SAAIpE,EAAgBa,CAAM,IACf;AAAA,IACH,MAAMA;AAAA,IACN,QAAQuD,KAAmD3C,EAAWZ,CAAM,EAAE;AAAA,EAC1F,IACepG,IACA;AAAA,IACH,MAAAA;AAAA,IACA,QAAQ2J,MAAmD3J,EAAK,aAAa,IAAIA,EAAK,UAAU,SAASA,EAAK,WAAW;AAAA,EACrI,IAEWwa,GAAqBpU,GAAQuD,CAAM;AAC9C;AACA,SAAS6Q,GAAqBxa,GAAM2J,GAAQ8Q,IAAS,IAAM;AAOvD,MAAI,IAAI9Q,MAAW,SAAY3J,EAAK,WAAW,SAAS,IAAI;AAC5D,QAAM0a,IAAO/Q,MAAW,SAAY,KAAK;AACzC,SAAMA,MAAW,SAAY,MAAM8Q,IAAS,KAAK,IAAIza,EAAK,WAAW,SAAS,GAAG,CAAC,IAAI,KAAK,KAAKA,EAAK,WAAW,UAAO;AACnH,QAAI2J,KAAU,MAAM3J,EAAK,WAAW;AAChC,YAAM,IAAI,MAAM,oCAAoC;AAExD,UAAM6Z,IAAI7Z,EAAK,WAAW,KAAK,CAAC,GAC1BqC,IAAO,OAAOwX,EAAE,WAAW;AACjC,QAAIxX,EAAK;AACL,UAAIsH,MAAW,UAAatH,EAAK,SAASsH;AACtC,QAAAA,KAAUtH,EAAK;AAAA,WACZ;AAAA,YAAIwX,EAAE,aAAa;AACtB,iBAAOW,GAAqBX,GAAGlQ,GAAQ,EAAK;AAK5C,YAAIkQ,EAAE,aAAa;AACf,iBAAO;AAAA,YACH,MAAMA;AAAA,YACN,QAAQlQ,KAAmDkQ,EAAE,UAAU;AAAA,UAC/F;AAAA;AAIQ,SAAKa;AAAA,EACT;AACA,SAAO;AAAA,IACH,MAAA1a;AAAA,IACA,QAAQA,EAAK,WAAW;AAAA,EAChC;AACA;ACnDA,SAAS2a,GAAyB,EAAE,UAAA9W,GAAU,QAAAuC,GAAQ,YAAAwU,GAAY,MAAA5a,GAAM,QAAA2J,KAAU;AAC9E,MAAIlE,GAAeW,CAAM;AACrB;AAEJ,QAAMyU,IAAwBtV,EAAgBa,CAAM,GAM9C/D,IAAO,OAAOwY,IAAwB7T,EAAWZ,CAAM,IAAIA,EAAO,WAAW,GAC7E,CAACU,GAAOgU,CAAG,IAAI9a;AAAA;AAAA;AAAA,IAErB;AAAA,MACI2J;AAAA,MACAA;AAAA,IACR;AAAA,MAAQoR,GAAa1Y,GAAMsH,GAAQiR,CAAU;AAEzC,MAAIC;AACA,WAAAxT,EAAejB,GAAQ;AAAA,MACnB,cAAcU,KAAgDzE,EAAK;AAAA,MACnE,aAAayY,KAA0CzY,EAAK;AAAA,IACxE,CAAS,GACM;AAAA,MACH,MAAM+D;AAAA,MACN,OAAOU,KAAgD;AAAA,MACvD,KAAKgU,KAA0CzY,EAAK;AAAA,IAChE;AACW;AACH,UAAM,EAAE,MAAM2Y,GAAW,QAAQlT,EAAW,IAAKyS,GAAqB;AAAA,MAClE,QAAAnU;AAAA,MACA,MAAApG;AAAA,MACA,QAAQ8G;AAAA,IACpB,CAAS,GACK,EAAE,MAAMmU,GAAS,QAAQlT,EAAS,IAAKwS,GAAqB;AAAA,MAC9D,QAAAnU;AAAA,MACA,MAAApG;AAAA,MACA,QAAQ8a;AAAA,IACpB,CAAS,GACKI,IAAQ9U,EAAO,cAAc,YAAW;AAC9C,QAAI;AACA,MAAA8U,EAAM,SAASF,GAAWlT,CAAW,GACrCoT,EAAM,OAAOD,GAASlT,CAAS;AAAA,IACnC,QAAY;AACR,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACxD;AACA,UAAMpC,IAAY9B,EAAS,aAAY;AACvC,WAA4D8B,GAAU,gBAAe,GACzBA,GAAU,SAASuV,EAAM,YAAY,GAC1FA;AAAA,EACX;AACJ;AACA,SAASH,GAAa1Y,GAAM8Y,GAAKP,GAAY;AACzC,MAAIA,IAAa,MAAM,KAAKvY,EAAK,WAAW;AACxC,WAAO;AAAA,MACH8Y;AAAA,MACAA;AAAA,IACZ;AAEI,QAAMC,IAAUD,KAA0C9Y,EAAK;AAC/D,SAAIuY,IAAa,MAAM,IACZ;AAAA,IACHQ,IAAU/Y,EAAK,OAAO,GAAG8Y,CAAG,EAAE,MAAM,gBAAgB,EAAE,CAAC,EAAE;AAAA,IACzDA,MAAQ,SAAYA,IAAMA,IAAM9Y,EAAK,OAAO8Y,CAAG,EAAE,MAAM,gBAAgB,EAAE,CAAC,EAAE;AAAA,EACxF,IAGW;AAAA,IACHC,IAAU/Y,EAAK,OAAO,GAAG8Y,CAAG,EAAE,MAAM,WAAW,EAAE,CAAC,EAAE;AAAA,IACpDA,MAAQ,SAAYA,IAAMA,IAAM9Y,EAAK,OAAO8Y,CAAG,EAAE,MAAM,WAAW,EAAE,CAAC,EAAE;AAAA,EAC/E;AACA;ACxEA,SAASE,GAA4BC,GAAgB,EAAE,UAAAzX,GAAU,QAAAuC,GAAQ,MAAApG,GAAM,QAAA2J,KAAU;AACrF,QAAM4R,IAAiBhB,GAAqB;AAAA,IACxC,QAAAnU;AAAA,IACA,MAAApG;AAAA,IACA,QAAA2J;AAAA,EACR,CAAK;AACD,MAAI,UAAU2R;AAKiB,QAAIC,EAAe,SAASD,EAAe,MAAM;AACxE,YAAM1T,IAAe2T,EAAe,SAASD,EAAe,QAAQA,EAAe,MAAMA,EAAe,OAClGzT,IAAc0T,EAAe,SAASD,EAAe,OAAOC,EAAe,SAASD,EAAe,QAAQC,EAAe,SAASD,EAAe;AACxJ,MAAAjU,EAAeiU,EAAe,MAAM;AAAA,QAChC,cAAA1T;AAAA,QACA,aAAAC;AAAA,MAChB,CAAa;AAAA,IACL;AAAA,SACG;AACH,UAAMqT,IAAQI,EAAe,WAAU,GACjCE,IAAMN,EAAM,aAAaK,EAAe,MAAMA,EAAe,MAAM;AACzE,IAAIC,IAAM,IACNN,EAAM,SAASK,EAAe,MAAMA,EAAe,MAAM,IAClDC,IAAM,KACbN,EAAM,OAAOK,EAAe,MAAMA,EAAe,MAAM;AAE3D,UAAM5V,IAAY9B,EAAS,aAAY;AACvC,IAA4D8B,GAAU,gBAAe,GACzBA,GAAU,SAASuV,EAAM,YAAY;AAAA,EACrG;AACJ;ACnCA,SAASO,GAA2BC,GAAWC,GAAW;AACtD,MAAIC,GAAmBC,GAAmBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,GAAoBC,IAAoBC,GAAoBC,IAAoBC,GAAoBC,IAAoBC,GAAoBC,IAAkBC,GAAkBC,GAAmBC;AACzc,SAAOzB,EAAU,WAAWC,EAAU,YAAYC,IAAoBF,EAAU,YAAY,QAAQE,MAAsB,SAAY,SAAYA,EAAkB,SAASC,IAAoBF,EAAU,YAAY,QAAQE,MAAsB,SAAY,SAAYA,EAAkB,QAAQC,IAAqBJ,EAAU,YAAY,QAAQI,MAAuB,SAAY,SAAYA,EAAmB,SAASC,IAAqBJ,EAAU,YAAY,QAAQI,MAAuB,SAAY,SAAYA,EAAmB,QAAQC,IAAqBN,EAAU,YAAY,QAAQM,MAAuB,SAAY,SAAYA,EAAmB,eAAeC,IAAqBN,EAAU,YAAY,QAAQM,MAAuB,SAAY,SAAYA,EAAmB,cAAcC,IAAqBR,EAAU,YAAY,QAAQQ,MAAuB,SAAY,SAAYA,EAAmB,eAAeC,IAAqBR,EAAU,YAAY,QAAQQ,MAAuB,SAAY,SAAYA,EAAmB,cAAcC,IAAqBV,EAAU,YAAY,QAAQU,MAAuB,SAAY,SAAYA,EAAmB,eAAeC,IAAqBV,EAAU,YAAY,QAAQU,MAAuB,SAAY,SAAYA,EAAmB,cAAcC,IAAqBZ,EAAU,YAAY,QAAQY,MAAuB,SAAY,SAAYA,EAAmB,eAAeC,IAAqBZ,EAAU,YAAY,QAAQY,MAAuB,SAAY,SAAYA,EAAmB,cAAcC,IAAqBd,EAAU,YAAY,QAAQc,MAAuB,SAAY,SAAYA,EAAmB,aAAaC,IAAqBd,EAAU,YAAY,QAAQc,MAAuB,SAAY,SAAYA,EAAmB,YAAYC,KAAqBhB,EAAU,YAAY,QAAQgB,OAAuB,SAAY,SAAYA,GAAmB,aAAaC,IAAqBhB,EAAU,YAAY,QAAQgB,MAAuB,SAAY,SAAYA,EAAmB,YAAYC,KAAqBlB,EAAU,YAAY,QAAQkB,OAAuB,SAAY,SAAYA,GAAmB,eAAeC,IAAqBlB,EAAU,YAAY,QAAQkB,MAAuB,SAAY,SAAYA,EAAmB,cAAcC,KAAqBpB,EAAU,YAAY,QAAQoB,OAAuB,SAAY,SAAYA,GAAmB,eAAeC,IAAqBpB,EAAU,YAAY,QAAQoB,MAAuB,SAAY,SAAYA,EAAmB,cAAcC,KAAmBtB,EAAU,WAAW,QAAQsB,OAAqB,SAAY,SAAYA,GAAiB,YAAYC,IAAmBtB,EAAU,WAAW,QAAQsB,MAAqB,SAAY,SAAYA,EAAiB,WAAWC,IAAoBxB,EAAU,WAAW,QAAQwB,MAAsB,SAAY,SAAYA,EAAkB,cAAcC,IAAoBxB,EAAU,WAAW,QAAQwB,MAAsB,SAAY,SAAYA,EAAkB;AACzjG;ACaA,SAASlc,EAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AAGI,MAAMkc,GAAM;AAAA,EACZ,KAAK7W,GAAU8W,GAAuFC,GAAa;AAC/G,UAAMC,IAAe,KAAK,UACpBC,IAAa,KAAK,UAAUjX,CAAQ;AAE1C,QADA,KAAK,WAAW8W,GACZ,CAAC5B,GAA2B8B,GAAcF,CAAQ;AAClD;AAEJ,UAAMI,IAAa,KAAK,UAAUlX,CAAQ,GACpCoK,IAAO,KAAK,aAAa,WAAW,GACpC,CAAC+M,GAAOC,CAAK,IAAIvD,GAAYoD,GAAYC,CAAU;AACzD,WAAO;AAAA,MACH,OAAO,MAAI;AACP,QAAID,MAAeC,MACflX,EAAS,gBAAgBiX,GAAY,YAAY7M,CAAI,GACrD+M,EAAM,QAAQ,CAAClZ,MAAK+B,EAAS,gBAAgB/B,GAAI,cAAcmM,CAAI,CAAC;AAAA,MAE5E;AAAA,MACA,OAAO,MAAI;AACP,QAAI6M,MAAeC,MACflX,EAAS,gBAAgBkX,GAAY,aAAa9M,CAAI,GACtDgN,EAAM,QAAQ,CAACnZ,MAAK+B,EAAS,gBAAgB/B,GAAI,cAAcmM,CAAI,CAAC;AAAA,MAE5E;AAAA,MACA,MAAM,MAAI;AACN,QAAI2M,MAGJ/W,EAAS,gBAAgBkX,GAAY,aAAa9M,CAAI,GACtD,KAAK,gBAAgBpK,CAAQ;AAAA,MACjC;AAAA,IACZ;AAAA,EACI;AAAA,EACA,KAAKA,GAAU6S,GAAqFkE,GAAa;AAC7G,UAAM3I,IAAS,KAAK,QAAQ,KAAKyE,CAAM;AACvC,QAAIzE,MAAW;AACX;AAEJ,UAAMvO,IAAS,KAAK,UAAUG,CAAQ;AACtC,SAAK,iBAAiBoO,CAAM,IAAIvO;AAChC,UAAMuK,IAAO,KAAK,aAAa,aAAayI,EAAO,MAAM,GACnDwE,IAAWrZ,EAAW6B,CAAM;AAClC,IAAI,CAACkX,MAAgBM,KAAYrX,EAAS,gBAAgBH,GAAQ,aAAauK,CAAI,OAC/E,KAAK,eAAepK,GAAUoK,EAAK,MAAM,GACzCxK,EAAaC,CAAM,IAEnB,CAACwX,KAAY1D,GAAoBd,EAAO,MAAM,MAAM,KACpD7S,EAAS,gBAAgBH,GAAQ,eAAe,KAAK,aAAa,eAAegT,EAAO,MAAM,CAAC;AAAA,EAEvG;AAAA,EACA,GAAG7S,GAAU6S,GAAqFkE,GAAa;AAC3G,UAAM3I,IAAS,KAAK,QAAQ,GAAGyE,CAAM;AACrC,QAAIzE,MAAW;AACX;AAEJ,UAAMvO,IAAS,KAAK,UAAUG,CAAQ;AACtC,QAAI,CAAChC,EAAW6B,CAAM,GAAG;AACrB,UAAI,CAACkX,GAAa;AACd,cAAMO,IAAc,KAAK,aAAa,WAAWzE,EAAO,MAAM;AAC9D,QAAA7S,EAAS,gBAAgBH,GAAQ,WAAWyX,CAAW,GACvD,KAAK,aAAY;AAAA,MACrB;AACA,YAAMC,IAAc1D,GAAY,KAAK,iBAAiBzF,CAAM,GAAGvO,CAAM,EAAE,CAAC,EAAE,CAAC;AAC3E,UAAI0X,GAAa;AACb,cAAMnN,IAAO,KAAK,aAAa,SAASyI,EAAO,MAAM;AACrD,QAAIzI,EAAK,WACLpK,EAAS,gBAAgBuX,GAAanN,EAAK,WAAW,IAAI,UAAU,YAAYA,CAAI,GAChFA,EAAK,WAAW,KAAKA,EAAK,WAAW,KACrCpK,EAAS,gBAAgBuX,GAAa,YAAY;AAAA,UAC9C,GAAG,KAAK,aAAa,YAAY1E,EAAO,MAAM;AAAA,UAC9C,QAAQzI,EAAK;AAAA,QACzC,CAAyB;AAAA,MAGb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,kBAAkB;AACd,SAAK,WAAW,MAAK;AAAA,EACzB;AAAA,EACA,aAAanP,GAAMmT,GAAQ;AACvB,UAAMhE,IAAO;AAAA,MACT,GAAG,KAAK,SAAS;AAAA,IAC7B;AACQ,WAAAA,EAAK,SAASuJ,GAAoBvF,CAAM,GACxChE,EAAK,UAAU,KAAK,QAAQ,WAAU,GAClCnP,MAAS,cACTmP,EAAK,SAAS,KAAK,WAAW,UAAUA,EAAK,MAAM,IAC5CnP,MAAS,YAChBmP,EAAK,SAAS,KAAK,WAAW,QAAQA,EAAK,MAAM,KAC1CnP,MAAS,WAAWA,MAAS,gBACpCmP,EAAK,SAAS,KAAK,WAAW,WAAWA,EAAK,MAAM,IAEjDA;AAAA,EACX;AAAA,EACA,UAAUpK,GAAU;AAChB,QAAIwX;AACJ,YAAQA,IAAwB,KAAK,SAAS,YAAY,QAAQA,MAA0B,SAAYA,IAAwBxX,EAAS,OAAO,SAAS;AAAA,EAC7J;AAAA,EACA,eAAeA,GAAUqU,GAAY;AACjC,QAAIoD,GAAsBC;AAE1B,SAAK,YAAYtD,GAAyB;AAAA,MACtC,UAAUpU,EAAS,OAAO;AAAA,MAC1B,QAAQ,KAAK,UAAUA,CAAQ;AAAA,MAC/B,OAAOyX,IAAuB,KAAK,SAAS,WAAW,QAAQA,MAAyB,SAAY,SAAYA,EAAqB;AAAA,MACrI,SAASC,IAAwB,KAAK,SAAS,WAAW,QAAQA,MAA0B,SAAY,SAAYA,EAAsB;AAAA,MAC1I,YAAArD;AAAA,IACZ,CAAS;AAAA,EACL;AAAA,EACA,gBAAgBrU,GAAU;AACtB,QAAIyX,GAAsBC;AAC1B,IAAK,KAAK,aAGV5C,GAA4B,KAAK,WAAW;AAAA,MACxC,UAAU9U,EAAS,OAAO;AAAA,MAC1B,QAAQ,KAAK,UAAUA,CAAQ;AAAA,MAC/B,OAAOyX,IAAuB,KAAK,SAAS,WAAW,QAAQA,MAAyB,SAAY,SAAYA,EAAqB;AAAA,MACrI,SAASC,IAAwB,KAAK,SAAS,WAAW,QAAQA,MAA0B,SAAY,SAAYA,EAAsB;AAAA,IACtJ,CAAS;AAAA,EACL;AAAA,EACA,eAAe;AACX,SAAK,YAAY;AAAA,EACrB;AAAA,EACA,cAAa;AACThd,IAAAA,EAAiB,MAAM,YAAY,EAAE,GACrCA,EAAiB,MAAM,WAAW,IAAI6Y,GAAO,CAAE,GAC/C7Y,EAAiB,MAAM,aAAa,MAAS,GAC7CA,EAAiB,MAAM,oBAAoB,EAAE,GAW7CA,EAAiB,MAAM,cAAc,IAAI,MAAM;AAAA,MAC3C,WAAW0T,GAAQ;AACf,cAAMuJ,IAAU,KAAK,KAAKvJ,CAAM,MAAM,SAAY,SAAY,OAAO,KAAK,KAAKA,CAAM,CAAC,IAAI;AAC1F,oBAAK,QAAQ,KAAK,MAAMA,CAAM,MAAM,SAAY,KAAK;AAAA,UACjD,CAACA,CAAM,GAAG,OAAO,KAAK,MAAMA,CAAM,CAAC,IAAI;AAAA,QAC3D,GACuBuJ;AAAA,MACX;AAAA,MACA,UAAUvJ,GAAQ;AACd,YAAIwJ;AACJ,aAAK,OAAO;AAAA,UACR,CAACxJ,CAAM,IAAIwJ,IAAqB,KAAK,MAAMxJ,CAAM,OAAO,QAAQwJ,MAAuB,SAAYA,IAAqB;AAAA,QAC5I;AACgB,YAAIC;AACJ,oBAAK,QAAQ;AAAA,UACT,CAACzJ,CAAM,IAAIyJ,IAAsB,KAAK,MAAMzJ,CAAM,OAAO,QAAQyJ,MAAwB,SAAYA,IAAsB;AAAA,QAC/I,GACuB,OAAO,KAAK,MAAMzJ,CAAM,CAAC,IAAI;AAAA,MACxC;AAAA,MACA,QAAQA,GAAQ;AACZ,eAAO,KAAK,KAAKA,CAAM,MAAM,SAAY,SAAY,OAAO,KAAK,KAAKA,CAAM,CAAC,IAAI;AAAA,MACrF;AAAA,MACA,QAAQ;AACJ,aAAK,QAAQ,CAAA;AAAA,MACjB;AAAA,MACA,cAAa;AACT1T,QAAAA,EAAiB,MAAM,QAAQ,EAAE,GACjCA,EAAiB,MAAM,SAAS,EAAE;AAAA,MACtC;AAAA,IACZ,GAAW;AAAA,EACP;AACJ;ACrMA,SAASod,GAAiB9X,GAAU7G,GAAS;AACzC,MAAI4e;AACJ,WAASA,IAAsBC,GAAmBhY,GAAU7G,CAAO,OAAO,QAAQ4e,MAAwB,SAAY,SAAYA,EAAoB,mBAAmB;AAC7K;AACA,SAASE,GAAgC9e,GAAS;AAC9C,QAAMkB,IAASb,EAAUL,CAAO;AAChC,WAAQ8E,IAAK9E,GAAS+e,IAAO,CAAA,GAAkDja,GAAG,eAAeA,IAAKA,EAAG,eAAc;AACnH,IAAAia,EAAK,KAAKja,CAAE;AACZ,UAAMka,IAAgB9d,EAAO,iBAAiB4D,CAAE,EAAE;AAClD,QAAIka,KAAiB,CAAC;AAAA,MAClB;AAAA,MACA;AAAA,IACZ,EAAU,SAASA,CAAa;AACpB,aAAO;AAAA,QACH,eAAAA;AAAA,QACA,MAAAD;AAAA,MAChB;AAAA,EAEI;AAEJ;AACA,MAAME,KAAqB,uBAAO,+BAA+B;AACjE,SAASJ,GAAmBhY,GAAU7G,GAAS;AAC3C,QAAMkf,IAAYlf,EAAQif,EAAkB;AAE5C,MAAI,EADepY,EAAS,OAAO,uBAAuBsS,GAAwB,UAAU,CAAC+F,KAAaC,GAAWtY,EAAS,OAAO,oBAAoBsS,GAAwB,WAAW,KAAK+F,EAAUvG,EAAS,IAAI,MAAMG,GAAYjS,GAAU8R,EAAS,IAAI,KAAKwG,GAAWtY,EAAS,OAAO,oBAAoBsS,GAAwB,WAAW,KAAK+F,EAAUvG,EAAS,OAAO,MAAMG,GAAYjS,GAAU8R,EAAS,OAAO;AAE/Z,WAAmEuG,GAAU;AAEjF,QAAME,IAAcN,GAAgC9e,CAAO;AAC3D,SAAAA,EAAQif,EAAkB,IAAI;AAAA,IAC1B,CAACtG,EAAS,IAAI,GAAGG,GAAYjS,GAAU8R,EAAS,IAAI;AAAA,IACpD,CAACA,EAAS,OAAO,GAAGG,GAAYjS,GAAU8R,EAAS,OAAO;AAAA,IAC1D,QAAQyG;AAAA,EAChB,GACWA;AACX;AACA,SAASC,GAAoBxY,GAAU7G,GAAS;AAC5C,QAAMof,IAAcP,GAAmBhY,GAAU7G,CAAO;AACxD,MAAqEof,GAAY,kBAAmB;AAChG,UAAM,IAAI,MAAM;AAAA,MACZ,wDAAwDA,EAAY,KAAK,SAAS,IAAI,aAAa,KAAK;AAAA,MACxG;AAAA,MACAE,GAAUF,EAAY,IAAI;AAAA,IACtC,EAAU,KAAK;AAAA,CAAI,CAAC;AAEpB;AACA,SAASE,GAAUP,GAAM;AACrB,SAAOA,EAAK,QAAO,EAAG,IAAI,CAACja,GAAIxD,MAAI;AAAA,IAC3B,GAAG,OAAOA,CAAC;AAAA,IACXwD,EAAG;AAAA,IACHA,EAAG,MAAM,IAAIA,EAAG,EAAE;AAAA,IAClBA,EAAG,aAAa,aAAa,KAAK,WAAWA,EAAG,aAAa,aAAa,CAAC;AAAA,IAC3Eya,GAAcza,CAAE;AAAA,IAChBia,EAAK,SAAS,KAAKzd,MAAM,KAAK;AAAA,IAC9Byd,EAAK,SAAS,KAAKzd,MAAMyd,EAAK,SAAS,KAAK;AAAA,EACxD,EAAU,OAAO,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK;AAAA,CAAI;AAC7C;AACA,SAASQ,GAAcvf,GAAS;AAC5B,MAAIwf;AACJ,MAAIC;AACJ,MAAIzf,EAAQ,aAAa,YAAY;AACjC,IAAAyf,IAAQzf,EAAQ,aAAa,YAAY;AAAA,WAClCA,EAAQ,aAAa,iBAAiB,GAAG;AAChD,QAAI0f,GAAmDC;AACvD,IAAAF,KAASE,IAAwC3f,EAAQ,cAAc,eAAeA,EAAQ,aAAa,iBAAiB,CAAC,OAAO,QAAQ2f,MAA0C,WAAyBD,IAAoDC,EAAsC,iBAAiB,QAAQD,MAAsD,SAAtL,SAA8MA,EAAkD,KAAI;AAAA,EAC1c,WAAW3f,EAAcC,GAAS;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR,CAAK,MAAO,GAAAwf,IAAkBxf,EAAQ,YAAY,QAAQwf,MAAoB,WAAwBA,EAAgB;AAC9G,IAAAC,IAAQ,MAAM,KAAKzf,EAAQ,MAAM,EAAE,IAAI,CAAC8E,MAAK;AACzC,UAAI8a;AACJ,cAAQA,IAAkB9a,EAAG,iBAAiB,QAAQ8a,MAAoB,SAAY,SAAYA,EAAgB,KAAI;AAAA,IAC1H,CAAC,EAAE,KAAK,GAAG;AAAA,WACJ7f,EAAcC,GAAS,QAAQ,GAAG;AACzC,QAAI6f;AACJ,IAAAJ,KAASI,IAAuB7f,EAAQ,iBAAiB,QAAQ6f,MAAyB,SAAY,SAAYA,EAAqB,KAAI;AAAA,EAC/I;AACA,SAAAJ,IAA4DA,GAAM,QAAQ,OAAO,IAAI,GACjF,OAA2DA,GAAM,MAAM,IAAI,OAC3EA,IAAQ,GAAuDA,GAAM,UAAU,GAAG,EAAE,CAAC,MAElFA,IAAQ,UAAUA,CAAK,MAAM;AACxC;AAEA,SAASN,GAAWW,GAAMC,GAAM;AAE5B,UAAQD,IAAOC,KAAQ;AAC3B;AC3FA,SAASxe,EAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AACA,MAAMwe,GAAQ;AAAA,EACV,KAAKnZ,GAAU;AACX,UAAMH,IAAS,KAAK,UAAUG,CAAQ,GAChC,CAAA,EAAGoX,CAAK,IAAIvD,GAAY,MAAMhU,CAAM,GACpCuK,IAAO,KAAK,aAAY;AAC9B,WAAAoO,GAAoBxY,GAAUH,CAAM,GACpCG,EAAS,gBAAgBH,GAAQ,eAAeuK,CAAI,GACpDgN,EAAM,QAAQ,CAACnZ,MAAK+B,EAAS,gBAAgB/B,GAAI,gBAAgBmM,CAAI,CAAC,GAC/D;AAAA,EACX;AAAA,EACA,KAAKpK,GAAU8W,GAAU;AACrB,UAAME,IAAe,KAAK,UACpBC,IAAa,KAAK,UAAUjX,CAAQ;AAE1C,QADA,KAAK,WAAW8W,GACZ,CAAC5B,GAA2B8B,GAAcF,CAAQ;AAClD;AAEJ,UAAMI,IAAa,KAAK,UAAUlX,CAAQ,GACpCoK,IAAO,KAAK,aAAa,EAAE,GAC3B,CAAC+M,GAAOC,CAAK,IAAIvD,GAAYoD,GAAYC,CAAU;AACzD,WAAO;AAAA,MACH,OAAO,MAAI;AACP,QAAIY,GAAiB9X,GAAUiX,CAAU,KACjCA,MAAeC,MACflX,EAAS,gBAAgBiX,GAAY,cAAc7M,CAAI,GACvD+M,EAAM,QAAQ,CAAClZ,MAAK+B,EAAS,gBAAgB/B,GAAI,gBAAgBmM,CAAI,CAAC;AAAA,MAGlF;AAAA,MACA,OAAO,MAAI;AACP,QAAAoO,GAAoBxY,GAAUkX,CAAU,GACpCD,MAAeC,MACflX,EAAS,gBAAgBkX,GAAY,eAAe9M,CAAI,GACxDgN,EAAM,QAAQ,CAACnZ,MAAK+B,EAAS,gBAAgB/B,GAAI,gBAAgBmM,CAAI,CAAC;AAAA,MAE9E;AAAA,MACA,MAAM,MAAI;AACN,QAAApK,EAAS,gBAAgBkX,GAAY,eAAe9M,CAAI;AAAA,MAC5D;AAAA,IACZ;AAAA,EACI;AAAA,EACA,KAAKpK,GAAUoO,IAAS,GAAG;AACvB,QAAI,KAAK;AACL;AAEJ,UAAMvO,IAAS,KAAK,UAAUG,CAAQ;AACtC,IAAAwY,GAAoBxY,GAAUH,CAAM,GACpC,KAAK,SAAS,IACd,KAAK,cAAc,CAACG,EAAS,gBAAgBH,GAAQ,eAAe,KAAK,aAAauO,CAAM,CAAC;AAAA,EACjG;AAAA,EACA,GAAGpO,GAAUoO,IAAS,GAAG;AACrB,QAAI,CAAC,KAAK;AACN;AAEJ,UAAMvO,IAAS,KAAK,UAAUG,CAAQ;AACtC,IAAAwY,GAAoBxY,GAAUH,CAAM,GACpC,KAAK,cAAc,IACnB,KAAK,SAAS,IACdG,EAAS,gBAAgBH,GAAQ,aAAa,KAAK,aAAauO,CAAM,CAAC;AAAA,EAC3E;AAAA,EACA,QAAQpO,GAAU;AACd,UAAMH,IAAS,KAAK,UAAUG,CAAQ,GAChC,CAACmX,CAAK,IAAItD,GAAYhU,GAAQ,IAAI,GAClCuK,IAAO,KAAK,aAAY;AAGH,IAAI0N,GAAiB9X,GAAUH,CAAM,MAC5DG,EAAS,gBAAgBH,GAAQ,cAAcuK,CAAI,GACnD+M,EAAM,QAAQ,CAAClZ,MAAK+B,EAAS,gBAAgB/B,GAAI,gBAAgBmM,CAAI,CAAC,IAE1E,KAAK,cAAc;AAAA,EACvB;AAAA,EACA,UAAUpK,GAAU;AAChB,QAAIwX;AACJ,YAAQA,IAAwB,KAAK,SAAS,YAAY,QAAQA,MAA0B,SAAYA,IAAwBxX,EAAS,OAAO,SAAS;AAAA,EAC7J;AAAA,EACA,aAKIoO,GAAQ;AACR,WAAO;AAAA,MACH,GAAG,KAAK,SAAS;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,aAAa,KAAK;AAAA,MAClB,WAAW,KAAK;AAAA,MAChB,QAAQuF,GAAoBvF,CAAM;AAAA,MAClC,SAAS,KAAK,QAAQ,WAAU;AAAA,IAC5C;AAAA,EACI;AAAA,EACA,YAAY,EAAE,WAAAM,GAAW,aAAAQ,GAAa,WAAAC,EAAS,GAAId,GAAQ;AACvD3T,IAAAA,EAAiB,MAAM,aAAa,MAAS,GAC7CA,EAAiB,MAAM,eAAe,MAAS,GAC/CA,EAAiB,MAAM,aAAa,MAAS,GAC7CA,EAAiB,MAAM,WAAW,MAAS,GAC3CA,EAAiB,MAAM,gBAAgB,EAAK,GAC5CA,EAAiB,MAAM,eAAe,EAAK,GAC3CA,EAAiB,MAAM,UAAU,EAAK,GACtCA,EAAiB,MAAM,eAAe,EAAK,GAC3CA,EAAiB,MAAM,YAAY,EAAE,GACrC,KAAK,YAAYgU,GACjB,KAAK,cAAcQ,GACnB,KAAK,YAAYC,GACjB,KAAK,eAAe,CAACA,GACrB,KAAK,UAAUd;AAAA,EACnB;AACJ;ACzHA,SAAS3T,EAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AACA,MAAMye,GAAY;AAAA,EACd,aAAavG,GAAQ;AACjB,WAAO,KAAK,QAAQ,IAAIA,EAAO,WAAW,EAAE,UAAUA,CAAM;AAAA,EAChE;AAAA,EACA,MAAM,MAAM7S,GAAU6S,GAAQiE,GAAU;AACpC,SAAK,QAAQ,IAAIjE,EAAO,WAAW,EAAE,WAAWA,CAAM,GACtD,KAAK,QAAQ,KAAKA,CAAM;AACxB,UAAMwG,IAAc,KAAK,eAAexG,CAAM,GACxCyG,IAAUzG,EAAO,gBAAgB,UAAU,KAAK,SAAS,IAAIwG,GAAaxG,EAAO,aAAa,KAAK,OAAO,IAAI,KAAK,SAAS,IAAIwG,CAAW;AAEjJ,IAAAC,EAAQ,WAAWxC,GACfwC,EAAQ,gBAAgB,YACxB,KAAK,MAAM,WAAWxC,IAEtBwC,EAAQ,gBAAgB,WACxBA,EAAQ,KAAKtZ,CAAQ,GAEzBsZ,EAAQ,KAAKtZ,GAAU6S,EAAO,MAAM,GAChCyG,EAAQ,gBAAgB,WACxB,KAAK,MAAM,KAAKtZ,GAAU6S,GAAQyG,EAAQ,WAAW;AAAA,EAE7D;AAAA,EACA,MAAM,KAAKtZ,GAAUqZ,GAAavC,GAAU;AACxC,UAAMwC,IAAU,KAAK,SAAS,IAAID,CAAW,GAKvCE,IAAcD,EAAQ,KAAKtZ,GAAU8W,CAAQ,GAC7C0C,IAAYF,EAAQ,gBAAgB,UAAU,SAAY,KAAK,MAAM,KAAKtZ,GAAU8W,GAAUwC,EAAQ,WAAW;AACvH,IAAgEC,GAAY,MAAK,GACrBC,GAAU,MAAK,GACXD,GAAY,MAAK,GACrBC,GAAU,MAAK,GACXD,GAAY,KAAI,GACpBC,GAAU,KAAI;AAAA,EAC9E;AAAA,EACA,MAAM,QAAQxZ,GAAU6S,GAAQiE,GAAU;AACtC,UAAM2C,IAAS,KAAK,QAAQ,IAAI5G,EAAO,WAAW;AAClD,IAAA4G,EAAO,cAAc5G,CAAM,GAC3B,KAAK,QAAQ,GAAGA,CAAM;AACtB,UAAMyG,IAAU,KAAK,SAAS,IAAI,KAAK,eAAezG,CAAM,CAAC,GACvDkE,IAAcuC,EAAQ;AAY5B,QAVAA,EAAQ,WAAWxC,GACfwC,EAAQ,gBAAgB,YACxB,KAAK,MAAM,WAAWxC,IAEtB2C,EAAO,iBAAiB,KACxBH,EAAQ,GAAGtZ,GAAU6S,EAAO,MAAM,GAElCyG,EAAQ,gBAAgB,WACxBA,EAAQ,QAAQtZ,CAAQ,GAExBsZ,EAAQ,gBAAgB,WAAW,CAACA,EAAQ,cAAc;AAC1D,YAAME,IAAY,KAAK,MAAM,KAAKxZ,GAAU8W,GAAUC,CAAW;AACjE,MAA4DyC,GAAU,MAAK,GACfA,GAAU,MAAK,GACfA,GAAU,KAAI,GAC1E,KAAK,MAAM,KAAKxZ,GAAU6S,GAAQkE,CAAW;AAAA,IACjD;AACA,QAAI,CAACuC,EAAQ,cAAc;AACvB,YAAME,IAAY,KAAK,MAAM,KAAKxZ,GAAU8W,GAAUC,CAAW;AACjE,MAA4DyC,GAAU,MAAK,GACfA,GAAU,MAAK,GACfA,GAAU,KAAI,GAC1E,KAAK,MAAM,GAAGxZ,GAAU6S,GAAQkE,CAAW;AAAA,IAC/C;AAAA,EACJ;AAAA,EACA,eAAelE,GAAQ;AACnB,WAAOA,EAAO,gBAAgB,UAAUA,EAAO,OAAOA,EAAO;AAAA,EACjE;AAAA,EACA,oBAAoBwG,GAAa;AAC7B,WAAO,KAAK,SAAS,IAAIA,CAAW,IAAI,KAAK,SAAS,IAAIA,CAAW,EAAE,WAAW;AAAA,EACtF;AAAA,EACA,kBAAkB;AACd,SAAK,MAAM,gBAAe;AAAA,EAC9B;AAAA,EACA,eAAerZ,GAAU;AACrB,QAAI0Z;AACJ,YAAQA,IAA8B,KAAK,MAAM,SAAS,YAAY,QAAQA,MAAgC,SAAYA,IAA8B1Z,EAAS,OAAO,SAAS;AAAA,EACrL;AAAA,EACA,iBAAiB8W,GAAU;AACvB,SAAK,MAAM,WAAWA,GACtB,KAAK,SAAS,IAAI,OAAO,EAAE,WAAWA;AAAA,EAC1C;AAAA,EACA,YAAY9D,GAAO;AACftY,IAAAA,EAAiB,MAAM,UAAU,MAAS,GAC1CA,EAAiB,MAAM,SAAS,MAAS,GACzCA,EAAiB,MAAM,WAAW,MAAS,GAC3CA,EAAiB,MAAM,WAAW,IAAI,MAAM;AAAA,MACxC,IAAIpB,GAAG;AACH,YAAI2Z,GAAgB0G,GAChBxG;AACJ,gBAAQA,KAAKF,IAAiB,KAAK,UAAU0G,IAAKrgB,CAAC,OAAO,QAAQ6Z,MAAM,SAAYA,IAAIF,EAAe0G,CAAE,IAAI,IAAI/F,GAAM;AAAA,MAC3H;AAAA,MACA,cAAa;AACTlZ,QAAAA,EAAiB,MAAM,YAAY,EAAE;AAAA,MACzC;AAAA,IACZ,GAAW,GACHA,EAAiB,MAAM,YAAY,IAAI,MAAM;AAAA,MACzC,IAAI2e,GAAanK,GAAab,GAAS;AACnC,cAAMc,IAAYD,MAAgB,WAAW,CAAC,OAAO,OAAO,KAAK,QAAQ,EAAE,KAAK,CAAC4D,MAAIA,EAAE,gBAAgB,WAAW,CAACA,EAAE,WAAW;AAChI,eAAK3D,KACD,OAAO,OAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC2D,MAAI;AACtC,UAAIA,EAAE,gBAAgB5D,KAAe,CAAC4D,EAAE,gBACpCA,EAAE,eAAe;AAAA,QAEzB,CAAC,GAEL,KAAK,SAASuG,CAAW,IAAI,IAAIF,GAAQ;AAAA,UACrC,WAAW,KAAK;AAAA,UAChB,aAAAjK;AAAA,UACA,WAAAC;AAAA,QACpB,GAAmBd,CAAO,GACH,KAAK,SAASgL,CAAW;AAAA,MACpC;AAAA,MACA,IAAIA,GAAa;AACb,YAAI,CAAC,KAAK,IAAIA,CAAW;AACrB,gBAAM,IAAI,MAAM,6BAA6BA,CAAW,yBAAyB;AAErF,eAAO,KAAK,SAASA,CAAW;AAAA,MACpC;AAAA,MACA,IAAIA,GAAa;AACb,eAAOA,KAAe,KAAK;AAAA,MAC/B;AAAA,MACA,cAAa;AACT3e,QAAAA,EAAiB,MAAM,YAAY,EAAE,GACrCA,EAAiB,MAAM,UAAU,CAAC;AAAA,MACtC;AAAA,IACZ,GAAW,GACH,KAAK,SAASsY,GACd,KAAK,UAAU,IAAIO,GAAO,GAC1B,KAAK,QAAQ,IAAIsD,GAAK,GACtB,KAAK,SAAS,IAAI,SAAS,SAAS,KAAK,OAAO;AAAA,EACpD;AACJ;ACvJA,SAASnc,GAAiBC,GAAKC,GAAKC,GAAO;AACvC,SAAID,KAAOD,IACP,OAAO,eAAeA,GAAKC,GAAK;AAAA,IAC5B,OAAOC;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACtB,CAAS,IAEDF,EAAIC,CAAG,IAAIC,GAERF;AACX;AAGI,MAAMif,GAAO;AAAA,EACb,sBAAsB;AAClB,WAAO;AAAA,MACH,QAAQ,KAAK,SAAS,UAAU;AAAA,MAChC,SAAS,KAAK,SAAS,UAAU;AAAA,MACjC,SAAS,KAAK,SAAS,UAAU;AAAA,MACjC,UAAU,KAAK,SAAS,UAAU;AAAA,MAClC,kBAAkB,KAAK,SAAS,UAAU;AAAA,MAC1C,kBAAkB,KAAK,SAAS,UAAU;AAAA,MAC1C,YAAY,KAAK,SAAS,UAAU;AAAA,MACpC,gBAAgB,KAAK,SAAS,UAAU;AAAA,MACxC,iBAAiB,KAAK,SAAS,UAAU;AAAA,MACzC,oBAAoB,KAAK,SAAS,UAAU;AAAA,MAC5C,gBAAgB,KAAK,SAAS,UAAU;AAAA,MACxC,oBAAoB,KAAK,SAAS,UAAU;AAAA,IACxD;AAAA,EACI;AAAA,EACA,cAAa;AACT,IAAAlf,GAAiB,MAAM,YAAY,IAAIkY,GAAa,IAAI,CAAC,GACzDlY,GAAiB,MAAM,WAAW,IAAI0e,GAAY,IAAI,CAAC;AAAA,EAC3D;AACJ;ACvCA,eAAeS,GAAM1gB,GAAS;AAC1B,QAAM2gB,IAAY,CAAA;AAClB,SAAK,KAAK,OAAO,aACbA,EAAU,KAAK;AAAA,IACX,QAAQ3gB;AAAA,EACpB,CAAS,GAEL2gB,EAAU,KAAK;AAAA,IACX,MAAM;AAAA,IACN,QAAQ3gB;AAAA,EAChB,CAAK,GACM,KAAK,QAAQ2gB,CAAS;AACjC;AACA,eAAeC,GAAS5gB,GAAS;AAC7B,SAAO,KAAK,QAAQ;AAAA,IAChB;AAAA,MACI,QAAQA;AAAA,IACpB;AAAA,IACQ;AAAA,EACR,CAAK;AACL;AACA,eAAe6gB,GAAY7gB,GAAS;AAChC,SAAO,KAAK,QAAQ;AAAA,IAChB;AAAA,MACI,QAAQA;AAAA,IACpB;AAAA,IACQ;AAAA,EACR,CAAK;AACL;ACzBA,eAAe8gB,GAAM9gB,GAAS;AAC1B,SAAO,KAAK,QAAQ;AAAA,IAChB,QAAQA;AAAA,EAChB,CAAK;AACL;AACA,eAAe+gB,GAAQ/gB,GAAS;AAC5B,SAAAqf,GAAoB,MAAM,KAAK,OAAO,QAAQ,eAAe,IAAI,CAAC,GAC3D,KAAK,QAAQ;AAAA,IAChB,QAAQrf,EAAQ,cAAc;AAAA,EACtC,CAAK;AACL;ACbA,eAAeghB,GAAI,EAAE,OAAA/S,EAAK,IAAK,IAAI;AAC/B,SAAO,KAAK,SAASA,MAAU,KAAO,0BAA0BA,MAAU,KAAQ,mCAAmC,OAAO;AAChI;ACFA,IAAIgT,KAA4B,0BAASA,GAAa;AAClD,SAAAA,EAAY,GAAG,IAAI,KACnBA,EAAY,GAAG,IAAI,KACZA;AACX,GAAEA,MAAe,CAAA,CAAE;AAWf,SAASC,GAAmBve,GAAMmE,GAAS;AAC3C,MAAI2U,IAAM;AACV,QAAM0F,IAAexe,EAAK8Y,CAAG,KAAKwF,KAActe,EAAK8Y,CAAG,IAAI;AAC5D,EAAAA,KAAO0F,EAAa;AAEpB,QAAMrf,IADgB,IAAI,OAAO,MAAMqf,CAAY,KAAK,EAAE,KAAKxe,CAAI,IACtC,KAAKwe;AAClC,SAAO;AAAA,IACH,MAAArf;AAAA,IACA,GAAGA,MAAS,KAAKsf,GAAkBze,GAAM8Y,GAAK3U,CAAO,IAAIua,GAAQ1e,GAAM8Y,GAAK3Z,GAAMgF,CAAO;AAAA,EACjG;AACA;AACA,SAASsa,GAAkBze,GAAM8Y,GAAK3U,GAAS;AAC3C,QAAMwa,IAAa3e,EAAK8Y,CAAG;AAC3B,SAAA8F,GAAiBD,GAAY3e,GAAM8Y,GAAK3U,CAAO,GAC/C2U,KAAO6F,EAAW,QACX;AAAA,IACH,gBAAgB7F;AAAA,IAChB,YAAA6F;AAAA,IACA,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,QAAQ;AAAA,EAChB;AACA;AACA,SAASD,GAAQ1e,GAAM8Y,GAAK0F,GAAcra,GAAS;AAC/C,MAAI0a,GAAmBC;AACvB,QAAMC,IAA0B/e,EAAK8Y,CAAG,MAAM,MAAM,MAAM;AAC1D,EAAAA,KAAOiG,EAAwB;AAC/B,QAAMC,IAAoBR,MAAiB,OAAOxe,EAAK8Y,CAAG,MAAM;AAChE,EAAAA,KAAO,OAAOkG,CAAiB;AAC/B,QAAML,IAAaK,IAAoBhf,EAAK8Y,CAAG,KAAK+F,IAAoB7e,EAAK,MAAM8Y,CAAG,EAAE,MAAM0F,MAAiB,MAAM,iBAAiB,MAAM,OAAO,QAAQK,MAAsB,SAAY,SAAYA,EAAkB,CAAC;AAC5N,EAAAD,GAAiBD,GAAY3e,GAAM8Y,GAAK3U,CAAO,GAC/C2U,KAAO6F,EAAW;AAClB,MAAIM;AACJ,QAAMC,KAAkBD,KAAsBH,IAAqB9e,EAAK,MAAM8Y,CAAG,EAAE,MAAM,OAAO,OAAO,QAAQgG,MAAuB,SAAY,SAAYA,EAAmB,CAAC,OAAO,QAAQG,MAAuB,SAAYA,IAAqB;AACzP,EAAAnG,KAAOoG,EAAe;AACtB,QAAMC,IAAsBnf,EAAK8Y,CAAG,MAAM,OAAO,CAACoG,KAAkBlf,EAAK8Y,CAAG,MAAM,MAAM9Y,EAAK8Y,CAAG,IAAI;AACpG,EAAAA,KAAOqG,EAAoB;AAC3B,QAAMC,IAAqBd,GAAYE,CAAY,GAC7Ca,IAAarf,EAAK8Y,CAAG,MAAMsG,IAAqBA,IAAqB;AAC3E,MAAI,CAACC;AACD,UAAM,IAAI,MAAMC,GAAgB;AAAA,MAC5B,CAACJ,KAAkB;AAAA,MACnB,CAACC,KAAuB;AAAA,MACxB,IAAIC,CAAkB;AAAA,IAClC,EAAU,OAAO,OAAO,EAAE,KAAK,MAAM,GAAGpf,EAAK8Y,CAAG,GAAG9Y,GAAMmE,CAAO,CAAC;AAE7D,SAAA2U,KAAOuG,EAAW,QACX;AAAA,IACH,gBAAgBvG;AAAA,IAChB,YAAA6F;AAAA,IACA,iBAAiB,CAAC,CAACI;AAAA,IACnB,QAAQG,IAAiB,KAAK,IAAI,OAAOA,EAAe,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI;AAAA,IACzE,aAAaK,GAAeJ,GAAqBD,CAAc;AAAA,EACvE;AACA;AACA,SAASN,GAAiBD,GAAY3e,GAAM8Y,GAAK3U,GAAS;AACtD,MAAI,CAACwa;AACD,UAAM,IAAI,MAAMW,GAAgB,kBAAkBtf,EAAK8Y,CAAG,GAAG9Y,GAAMmE,CAAO,CAAC;AAEnF;AACA,SAASob,GAAeJ,GAAqBD,GAAgB;AACzD,MAAIC;AACA,WAAOA,MAAwB;AAEnC,MAAID;AACA,WAAO;AAEf;AACA,SAASI,GAAgBE,GAAUC,GAAOzf,GAAMmE,GAAS;AACrD,SAAO,YAAYqb,CAAQ,eAAeC,KAAgD,EAAE,SAASzf,CAAI;AAAA,UACnGmE,MAAY,YAAY,iGAAiG,sDAAsD;AAAA;AAEzL;AC3EI,SAASub,GAAYC,GAAa3f,GAAM;AACxC,QAAM4f,IAAO,CAAA;AACb,KAAG;AACC,UAAM,EAAE,MAAAzgB,GAAM,YAAAwf,GAAY,gBAAAkB,GAAgB,iBAAAC,GAAiB,aAAAC,IAAc,IAAM,QAAAjO,EAAM,IAAKyM,GAAmBve,GAAM,UAAU;AAC7H,QAAIggB;AACJ,UAAMjJ,KAAUiJ,IAAoBL,EAAY,KAAK,CAACM,MAAM;AACxD,UAAI9gB,MAAS,KAAK;AACd,YAAI+gB;AACJ,iBAASA,IAAYD,EAAI,UAAU,QAAQC,MAAc,SAAY,SAAYA,EAAU,YAAW,OAAQvB,EAAW,YAAW;AAAA,MACxI,WAAWxf,MAAS,KAAK;AACrB,YAAIghB;AACJ,iBAASA,IAAWF,EAAI,SAAS,QAAQE,MAAa,SAAY,SAAYA,EAAS,YAAW,OAAQxB,EAAW,YAAW;AAAA,MACpI;AACA,aAAOsB,EAAI,QAAQtB;AAAA,IACvB,CAAC,OAAO,QAAQqB,MAAsB,SAAYA,IAAoB;AAAA,MAClE,KAAK;AAAA,MACL,MAAM;AAAA,MACN,CAAC7gB,MAAS,MAAM,SAAS,KAAK,GAAGwf;AAAA,IAC7C;AACQ,IAAAiB,EAAK,KAAK;AAAA,MACN,QAAA7I;AAAA,MACA,iBAAA+I;AAAA,MACA,aAAAC;AAAA,MACA,QAAAjO;AAAA,IACZ,CAAS,GACD9R,IAAOA,EAAK,MAAM6f,CAAc;AAAA,EACpC,SAAQ7f;AACR,SAAO4f;AACX;ACpCA,eAAeQ,GAASpgB,GAAM;AAC1B,QAAMqgB,IAAUX,GAAY,KAAK,OAAO,aAAa1f,CAAI;AACzD,WAAQrB,IAAI,GAAGA,IAAI0hB,EAAQ,QAAQ1hB;AAC/B,UAAMyX,EAAK,KAAK,MAAM,GACtB,MAAMkK,GAAe,MAAMD,EAAQ1hB,CAAC,CAAC;AAE7C;AACA,eAAe2hB,GAAepc,GAAU,EAAE,QAAA6S,GAAQ,iBAAA+I,GAAiB,aAAAC,GAAa,QAAAjO,KAAU;AACtF,QAAM,EAAE,QAAAoF,EAAM,IAAKhT;AAKnB,MAHIgT,EAAO,SAAS,aAAaH,CAAM,KACnC,MAAMG,EAAO,SAAS,MAAMhT,GAAU6S,CAAM,GAE5C,CAAC+I,GAAiB;AAClB,aAAQnhB,IAAI,GAAGA,KAAKmT,GAAQnT;AACxB,YAAMuY,EAAO,SAAS,QAAQhT,GAAU6S,CAAM,GAC1CpY,IAAImT,KACJ,MAAMsE,EAAKlS,EAAS,MAAM;AAIlC,IAAI6b,KACA,MAAM7I,EAAO,SAAS,MAAMhT,GAAU6S,CAAM;AAAA,EAEpD;AACJ;AACA,eAAewJ,GAAerc,GAAU;AACpC,aAAW1G,KAAK0G,EAAS,OAAO,SAAS,eAAc;AACnD,UAAMA,EAAS,OAAO,SAAS,MAAMA,GAAU1G,CAAC;AAExD;AC5BA,SAASgjB,GAAczc,GAAQ;AAC3B,QAAM7D,IAAOgD,EAAgBa,CAAM,IAAI;AAAA,IACnC,cAAc0c,GAA2B1c,CAAM;AAAA,EACvD,IAAQ;AAAA,IACA,cAAc,OAAOA,EAAO,cAAc,aAAY,CAAE;AAAA,EAChE,GACU1D,IAAKD,GAAmB1C,EAAUqG,CAAM,CAAC;AAC/C,aAAU5E,KAAQe;AACd,IAAIA,EAAKf,CAAI,KACTkB,EAAG,QAAQlB,GAAMe,EAAKf,CAAI,CAAC;AAGnC,SAAOkB;AACX;AACA,SAASogB,GAA2B1c,GAAQ;AACxC,QAAMiC,IAAMJ,GAAe7B,CAAM;AAEjC,SADYY,EAAWZ,CAAM,EAClB,UAAUiC,EAAI,aAAaA,EAAI,SAAS;AACvD;ACrBA,eAAe0a,KAAO;AAClB,QAAMC,IAAM,KAAK,OAAO;AACxB,MAAIC;AACJ,QAAM7c,KAAU6c,IAAqBD,EAAI,mBAAmB,QAAQC,MAAuB,SAAYA;AAAA;AAAA,IAAgDD,EAAI;AAAA,KACrJhf,IAAgB6e,GAAczc,CAAM;AAC1C,MAAIpC,EAAc,MAAM,WAAW;AAGnC,WAAI,KAAK,gBAAgBoC,GAAQ,QAAQ;AAAA,MACrC,eAAApC;AAAA,IACR,CAAK,KAAK,KAAK,OAAO,oBACd,MAAMD,GAA6Bif,GAAKhf,CAAa,GAElDA;AACX;ACdA,eAAekf,KAAM;AACjB,QAAMF,IAAM,KAAK,OAAO;AACxB,MAAIC;AACJ,QAAM7c,KAAU6c,IAAqBD,EAAI,mBAAmB,QAAQC,MAAuB,SAAYA;AAAA;AAAA,IAAgDD,EAAI;AAAA,KACrJhf,IAAgB6e,GAAczc,CAAM;AAC1C,MAAIpC,EAAc,MAAM,WAAW;AAGnC,WAAI,KAAK,gBAAgBoC,GAAQ,OAAO;AAAA,MACpC,eAAApC;AAAA,IACR,CAAK,KAAK,KAAK,OAAO,oBACd,MAAMD,GAA6BqC,EAAO,eAAepC,CAAa,GAEnEA;AACX;ACbA,eAAemf,GAAMnf,GAAe;AAChC,QAAMgf,IAAM,KAAK,OAAO;AACxB,MAAIC;AACJ,QAAM7c,KAAU6c,IAAqBD,EAAI,mBAAmB,QAAQC,MAAuB,SAAYA;AAAA;AAAA,IAAgDD,EAAI;AAAA;AAC3J,MAAII;AACJ,QAAMC,KAAgBD,IAAO,OAAOpf,KAAkB,WAAWsf,GAA2BN,GAAKhf,CAAa,IAAIA,OAAmB,QAAQof,MAAS,SAAYA,IAAO,MAAMxf,GAA8Bof,CAAG,EAAE,MAAM,MAAI;AACxN,UAAM,IAAI,MAAM,0FAA0F;AAAA,EAC9G,CAAC;AACD,OAAK,gBAAgB5c,GAAQ,SAAS;AAAA,IAClC,eAAeid;AAAA,EACvB,CAAK;AACL;AACA,SAASC,GAA2BN,GAAK3gB,GAAM;AAC3C,QAAMK,IAAKD,GAAmB1C,EAAUijB,CAAG,CAAC;AAC5C,SAAAtgB,EAAG,QAAQ,QAAQL,CAAI,GAChBK;AACX;ACjBA,SAASqf,GAAYwB,GAAYC,GAAM;AACnC,QAAMvB,IAAO,CAAA;AACb,KAAG;AACC,UAAM,EAAE,YAAAjB,GAAY,gBAAAkB,GAAgB,iBAAAC,GAAiB,aAAAC,IAAc,OAASxB,GAAmB4C,GAAM,SAAS,GACxGpK,IAASmK,EAAW,KAAK,CAAClK,MAAIA,EAAE,SAAS2H,CAAU;AACzD,IAAI5H,KACA6I,EAAK,KAAK;AAAA,MACN,QAAA7I;AAAA,MACA,iBAAA+I;AAAA,MACA,aAAAC;AAAA,IAChB,CAAa,GAELoB,IAAOA,EAAK,MAAMtB,CAAc;AAAA,EACpC,SAAQsB;AACR,SAAOvB;AACX;ACbA,eAAepC,GAAQjU,GAAO;AAC1B,QAAM,EAAE,YAAA2X,MAAe,KAAK,QACtBb,IAAU,CAAA;AAChB,GAAC,MAAM,QAAQ9W,CAAK,IAAIA,IAAQ;AAAA,IAC5BA;AAAA,EACR,GAAO,QAAQ,CAAC6X,MAAc;AACtB,IAAI,OAAOA,KAAgB,WACvBf,EAAQ,KAAK,GAAGX,GAAYwB,GAAYE,CAAW,CAAC,IAC7C,UAAUA,IACjBf,EAAQ,KAAK,GAAGX,GAAYwB,GAAYE,EAAY,IAAI,EAAE,IAAI,CAACziB,OAAK;AAAA,MAC5D,GAAGyiB;AAAA,MACH,GAAGziB;AAAA,IACvB,EAAkB,CAAC,IAEP0hB,EAAQ,KAAKe,CAAW;AAAA,EAEhC,CAAC;AACD,WAAQ,IAAI,GAAG,IAAIf,EAAQ,QAAQ;AAC/B,UAAMjK,EAAK,KAAK,MAAM,GACtB,MAAMiL,GAAc,MAAMhB,EAAQ,CAAC,CAAC;AAExC,OAAK,OAAO,QAAQ,gBAAe;AACvC;AACA,eAAegB,GAAcnd,GAAUod,GAAQ;AAC3C,MAAIC,GAAyBC;AAC7B,QAAMjE,IAAc,iBAAiB+D,KAAUA,EAAO,cAAcA,EAAO,cAAc,YAAYA,IAASpd,EAAS,OAAO,QAAQ,eAAeod,EAAO,MAAM,IAAI,SAChKG,IAAmBvd,EAAS,OAAO,QAAQ,oBAAoBqZ,CAAW;AAChF,MAAImE,GAAgBC,GAAgBC,GAAcC;AAClD,QAAM7G,IAAW;AAAA,IACb,SAAS0G,IAAiBJ,EAAO,YAAY,QAAQI,MAAmB,SAAYA,IAAiBI,GAAc5d,GAAUud,CAAgB;AAAA,IAC7I,SAASE,IAAiBL,EAAO,YAAY,QAAQK,MAAmB,SAAYA,IAA2FF,GAAiB;AAAA,IAChM,OAAO;AAAA,MACH,OAAOG,IAAeN,EAAO,UAAU,QAAQM,MAAiB,SAAYA,IAAeG,GAAiBT,CAAM,KAAgBG,KAAqB,SAAsDF,IAA0BE,EAAiB,WAAW,QAAQF,MAA4B,SAAjL,SAAyMA,EAAwB;AAAA,MACvV,SAASM,IAAiBP,EAAO,YAAY,QAAQO,MAAmB,SAAYA,IAAiBE,GAAiBT,CAAM,KAAgBG,KAAqB,SAAsDD,IAA2BC,EAAiB,WAAW,QAAQD,MAA6B,SAAnL,SAA2MA,EAAyB;AAAA,IAChX;AAAA,EACA;AACI,EAAI,YAAYF,KACRpd,EAAS,OAAO,QAAQ,aAAaod,EAAO,MAAM,MAClDrL,GAAY/R,GAAU8R,EAAS,OAAO,GACtC,MAAM9R,EAAS,OAAO,QAAQ,QAAQA,GAAUod,EAAO,QAAQtG,CAAQ,IAEtEsG,EAAO,oBACRrL,GAAY/R,GAAU8R,EAAS,OAAO,GACtC,MAAM9R,EAAS,OAAO,QAAQ,MAAMA,GAAUod,EAAO,QAAQtG,CAAQ,GACjEsG,EAAO,gBACPrL,GAAY/R,GAAU8R,EAAS,OAAO,GACtC,MAAM9R,EAAS,OAAO,QAAQ,QAAQA,GAAUod,EAAO,QAAQtG,CAAQ,QAI/E/E,GAAY/R,GAAU8R,EAAS,OAAO,GACtC,MAAM9R,EAAS,OAAO,QAAQ,KAAKA,GAAUqZ,GAAavC,CAAQ;AAE1E;AACA,SAAS+G,GAAiBT,GAAQ;AAC9B,MAAII,GAAgBX;AACpB,SAAO,CAAC,GAAGA,KAAQW,IAAiBJ,EAAO,YAAY,QAAQI,MAAmB,SAAYA,IAAiBJ,EAAO,UAAU,QAAQP,MAAS,SAAYA,IAAOO,EAAO,WAAW;AAC1L;AACA,SAASQ,GAAc5d,GAAU8W,GAAU;AACvC,MAAI,CAACA;AACD,UAAM,IAAI,MAAM,mEAAmE;AAEvF,MAAIgH;AACJ,UAAQA,IAAmBhH,EAAS,YAAY,QAAQgH,MAAqB,SAAYA,IAAmB9d,EAAS,OAAO,SAAS;AACzI;ACvDA,eAAe+d,GAAM5kB,GAAS;AAC1B,MAAI,CAAC0F,EAAW1F,CAAO,KAAK6E,EAAW7E,CAAO;AAC1C,UAAM,IAAI,MAAM,kDAAkD;AAGtE,MADAyG,EAAazG,CAAO,GAChBA,EAAQ,cAAc,kBAAkBA;AACxC,UAAM,IAAI,MAAM,iDAAiD;AAGrE,MADA4O,GAAU5O,CAAO,GACb,CAAC8O,GAAc9O,CAAO;AACtB,UAAM,IAAI,MAAM,0DAA0D;AAE9E,EAAAkM,EAAM,MAAMlM,GAAS,IAAI,uBAAuB;AACpD;ACbA,eAAe6kB,GAAcC,GAAQC,GAAQ;AACzC,SAAOC,GAAkB,KAAK,MAAM,IAAMF,GAAQC,CAAM;AAC5D;AACA,eAAeE,GAAgBH,GAAQC,GAAQ;AAC3C,SAAOC,GAAkB,KAAK,MAAM,IAAOF,GAAQC,CAAM;AAC7D;AACA,eAAeC,GAAkBpY,GAAUkY,GAAQC,GAAQ;AACvD,MAAI,CAACnY,KAAY,CAACkY,EAAO;AACrB,UAAMte,EAAS,EAAG,gBAAgB,6GAA6Gse,CAAM;AAEzJ,QAAMI,IAAW,MAAM,QAAQH,CAAM,IAAIA,IAAS;AAAA,IAC9CA;AAAA,EACR,GACUI,IAAa,MAAM,KAAKL,EAAO,iBAAiB,yBAAyB,CAAC,GAC1EM,IAAkBF,EAAS,IAAI,CAACxkB,MAAM;AACxC,QAAI,OAAOA,KAAQ,YAAYykB,EAAW,SAASzkB,CAAG;AAClD,aAAOA;AACJ;AACH,YAAM2kB,IAAiBF,EAAW,KAAK,CAACld,MAAIA,EAAE,UAAUvH,KAAOuH,EAAE,cAAcvH,CAAG;AAClF,UAAI2kB;AACA,eAAOA;AAEP,YAAM7e,EAAS,EAAG,gBAAgB,UAAU,OAAO9F,CAAG,CAAC,0BAA0BokB,CAAM;AAAA,IAE/F;AAAA,EACJ,CAAC,EAAE,OAAO,CAACQ,MAAS,CAACzgB,EAAWygB,CAAM,CAAC;AACvC,MAAIzgB,EAAWigB,CAAM,KAAK,CAACM,EAAgB,OAAQ;AACnD,QAAMG,IAAe,CAACD,MAAS;AAC3B,IAAAA,EAAO,WAAW1Y,GAClB,KAAK,gBAAgBkY,GAAQ,SAAS;AAAA,MAClC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,IACtB,CAAS,GACD,KAAK,gBAAgBA,GAAQ,QAAQ;AAAA,EACzC;AACA,MAAI/kB,EAAc+kB,GAAQ,QAAQ;AAC9B,QAAIA,EAAO;AACP,iBAAWQ,KAAUF,GAAgB;AACjC,cAAMI,IAAoB,KAAK,OAAO,uBAAuB,IAAI,KAAO7G,GAAiB,MAAM2G,CAAM;AAErG,QAAIE,MACA,KAAK,gBAAgBF,GAAQ,aAAa,GAC1C,KAAK,gBAAgBR,GAAQ,cAAc,GAC3C,KAAK,gBAAgBQ,GAAQ,WAAW,GACxC,KAAK,gBAAgBR,GAAQ,YAAY,GACzC,KAAK,gBAAgBQ,GAAQ,aAAa,GAC1C,KAAK,gBAAgBA,GAAQ,WAAW,GACxC,KAAK,gBAAgBA,GAAQ,aAAa,GAC1C,KAAK,gBAAgBA,GAAQ,WAAW,IAE5C7e,EAAaqe,CAAM,GACfU,MACA,KAAK,gBAAgBF,GAAQ,WAAW,GACxC,KAAK,gBAAgBA,GAAQ,SAAS,IAE1CC,EAAaD,CAAM,GACfE,KACA,KAAK,gBAAgBF,GAAQ,OAAO,GAExC,MAAMvM,EAAK,KAAK,MAAM;AAAA,MAC1B;AAAA,aACOqM,EAAgB,WAAW,GAAG;AACrC,YAAMI,IAAoB,KAAK,OAAO,uBAAuB,IAAI,KAAO7G,GAAiB,MAAMmG,CAAM;AAErG,MAAIU,IACA,MAAM,KAAK,MAAMV,CAAM,IAEvBre,EAAaqe,CAAM,GAEvBS,EAAaH,EAAgB,CAAC,CAAC,GAC3BI,MAGA,KAAK,gBAAgBV,GAAQ,aAAa,GAC1C,KAAK,gBAAgBA,GAAQ,cAAc,GAC3C,KAAK,gBAAgBA,GAAQ,WAAW,GACxC,KAAK,gBAAgBA,GAAQ,YAAY,GACzC,KAAK,gBAAgBA,GAAQ,WAAW,GACxC,KAAK,gBAAgBA,GAAQ,SAAS,GACtC,KAAK,gBAAgBA,GAAQ,OAAO,IAExC,MAAM/L,EAAK,KAAK,MAAM;AAAA,IAC1B;AACI,YAAMvS,EAAS,EAAG,gBAAgB,2DAA2Dse,CAAM;AAAA,WAEhGA,EAAO,aAAa,MAAM,MAAM;AACvC,eAAWQ,KAAUF;AACjB,YAAM,KAAK,MAAME,CAAM,GACvB,MAAM,KAAK,QAAQA,CAAM;AAAA;AAG7B,UAAM9e,EAAS,EAAG,gBAAgB,kFAAkFse,CAAM;AAElI;ACxGA,eAAehjB,GAAK9B,GAAS2C,GAAM,EAAE,WAAA8iB,IAAY,KAAK,OAAO,WAAW,eAAAC,IAAgB,KAAK,OAAO,eAAe,uBAAAC,GAAuB,qBAAAC,EAAmB,IAAK,IAAI;AAGlK,EAAI5lB,EAAQ,aACPylB,KACD,MAAM,KAAK,MAAMzlB,CAAO,GAExB2lB,MAA0B,UAC1B5W,GAAkB/O,GAAS2lB,GAAuBC,KAA0FD,CAAqB,GAErK,MAAM,KAAK,SAAShjB,CAAI,GACnB+iB,KACD,MAAMxC,GAAe,IAAI;AAEjC;ACfA,MAAM2C,KAAY,uBAAO,uCAAuC;AAChE,SAASC,GAAgBtkB,GAAKukB,GAAMzE,GAAY;AAC5C,EAAIA,IACA,OAAO,eAAe9f,GAAKukB,GAAMzE,CAAU,IAG3C,OAAO9f,EAAIukB,CAAI;AAEvB;AACA,SAASC,GAASlhB,GAAI3D,GAAO;AACzB,MAAI8kB;AACJ,GAACA,IAAgBnhB,EAAG+gB,EAAS,OAAO,QAAQI,MAAkB,UAAwBA,EAAc,QAAO;AAC3G,QAAMC,IAAY,OAAO,yBAAyBphB,GAAI,MAAM,GACtDqhB,IAAa,OAAO,yBAAyBrhB,GAAI,OAAO,GACxDshB,IAAa,OAAO,yBAAyBthB,GAAI,OAAO;AAC9D,WAASuhB,IAAU;AACf,IAAAP,GAAgBhhB,GAAI,QAAQohB,CAAS,GACrCJ,GAAgBhhB,GAAI,SAASqhB,CAAU,GACvCL,GAAgBhhB,GAAI,SAASshB,CAAU;AAAA,EAC3C;AACA,EAAAthB,EAAG+gB,EAAS,IAAI;AAAA,IACZ,SAAAQ;AAAA,EACR,GACI,OAAO,iBAAiBvhB,GAAI;AAAA,IACxB,OAAO;AAAA,MACH,cAAc;AAAA,MACd,KAAK,MAAI3D;AAAA,IACrB;AAAA,IACQ,OAAO;AAAA,MACH,cAAc;AAAA,MACd,KAAK,MAAIA,EAAM,SAAS,iBAAiBA,EAAM,CAAC,EAAE,IAAI,KAAK;AAAA,MAC3D,IAAKf,GAAG;AACJ,YAAIA,MAAM;AACN,UAAAimB,EAAO;AAAA,aACJ;AACH,cAAIC;AACJ,UAAAH,KAAe,SAAgDG,IAAkBH,EAAW,SAAS,QAAQG,MAAoB,UAAwBA,EAAgB,KAAKxhB,GAAI1E,CAAC;AAAA,QACvL;AAAA,MACJ;AAAA,IACZ;AAAA,IACQ,MAAM;AAAA,MACF,cAAc;AAAA,MACd,KAAK,MAAI;AAAA,MACT,IAAKA,GAAG;AACJ,QAAIA,MAAM,WACNimB,EAAO,GACPvhB,EAAG,OAAO1E;AAAA,MAElB;AAAA,IACZ;AAAA,EACA,CAAK;AACL;AC/CA,eAAemmB,GAAOvmB,GAASwmB,GAAa;AACxC,QAAMta,IAAQnM,EAAcC,GAAS,OAAO,IAAIA,EAAQ,UAAUA;AAClE,MAAI,CAACkM,KAAS,CAACnM,EAAcmM,GAAO,SAAS;AAAA,IACzC,MAAM;AAAA,EACd,CAAK;AACG,UAAM,IAAI,UAAU,OAAOA,MAAUlM,IAAU,UAAU,YAAY,IAAwDkM,GAAM,OAAO,uCAAuC;AAErL,MAAIrH,EAAW7E,CAAO,EAAG;AACzB,QAAMmB,KAAS,MAAM,QAAQqlB,CAAW,IAAIA,IAAc;AAAA,IACtDA;AAAA,EACR,GAAO,OAAO,CAACC,MAAO,CAAC,KAAK,OAAO,eAAeC,GAAiBD,GAAMva,EAAM,MAAM,CAAC,EAAE,MAAM,GAAGA,EAAM,WAAW,SAAY,CAAC,GACrHya,IAAa,MAAI;AACnB,QAAIC;AAEJ,IAAIzlB,EAAM,aAAaylB,IAAe1a,EAAM,WAAW,QAAQ0a,MAAiB,SAAY,SAAYA,EAAa,WAAWzlB,EAAM,MAAM,CAACkQ,GAAG/P,MAAI;AAChJ,UAAIslB;AACJ,aAAOvV,QAAQuV,IAAe1a,EAAM,WAAW,QAAQ0a,MAAiB,SAAY,SAAYA,EAAa,KAAKtlB,CAAC;AAAA,IACvH,CAAC,MAGD0kB,GAAS9Z,GAAOjL,GAAeZ,EAAUL,CAAO,GAAGmB,CAAK,CAAC,GACzD,KAAK,gBAAgB+K,GAAO,OAAO,GACnC,KAAK,gBAAgBA,GAAO,QAAQ;AAAA,EACxC;AACA,EAAAA,EAAM,iBAAiB,cAAcya,CAAU,GAC/C,MAAM,KAAK,MAAM3mB,CAAO,GACxBkM,EAAM,oBAAoB,cAAcya,CAAU;AACtD;AAEA,SAASE,GAAUC,GAAY;AAC3B,SAAOA,EAAW,YAAW,EAAG,QAAQ,iBAAiB,QAAQ;AACrE;AACA,SAASJ,GAAiBD,GAAMM,GAAQ;AACpC,MAAI,CAACA;AACD,WAAO;AAEX,QAAMC,IAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,EACR;AACI,SAAOH,GAAUE,CAAM,EAAE,KAAI,EAAG,MAAM,SAAS,EAAE,KAAK,CAACE,MAE/CA,EAAY,WAAW,GAAG,IACnBJ,GAAUJ,EAAK,IAAI,EAAE,SAASQ,CAAW,IACzCD,EAAU,SAASC,CAAW,IAC9BJ,GAAUJ,EAAK,IAAI,EAAE,WAAWQ,EAAY,QAAQ,KAAK,EAAE,CAAC,IAEhEJ,GAAUJ,EAAK,IAAI,MAAMQ,CACnC;AACL;AC5CA,MAAMC,KAAe;AAAA,EACrB,OAAIxG;AAAAA,EACJ,UAAIE;AAAAA,EACJ,aAAIC;AAAAA,EACJ,OAAIC;AAAAA,EACJ,SAAIC;AAAAA,EACJ,KAAIC;AAAAA,EACJ,UAAI+B;AAAAA,EACJ,MAAIM;AAAAA,EACJ,KAAIG;AAAAA,EACJ,OAAIC;AAAAA,EACJ,SAAItD;AAAAA,EACJ,OAAIyE;AAAAA,EACJ,iBAAIK;AAAAA,EACJ,eAAIJ;AAAAA,EACJ,MAAI/iB;AAAAA,EACJ,QAAIykB;AACJ;AC1BI,SAASY,GAAUC,GAAgB;AACnC,SAAO5gB,EAAS,EAAG,aAAa4gB,CAAc;AAClD;ACYI,MAAMC,KAAuB;AAAA,EAC7B,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU,WAAW;AAAA,EACrB,aAAanN;AAAAA,EACb,YAAYoN;AAAAA,EACZ,oBAAoBnO,GAAwB;AAAA,EAC5C,eAAe;AAAA,EACf,WAAW;AAAA,EACX,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,eAAe,MAAI,QAAQ,QAAO;AACtC,GAGUoO,KAAsB;AAAA,EAC5B,GAAGF;AAAA,EACH,kBAAkB;AACtB;AACA,SAASG,GAAaxQ,IAAU,CAAA,GAAIyQ,IAAWF,IAAqBjnB,GAAM;AACtE,QAAM6D,IAAWujB,GAAY1Q,GAAS1W,GAAMmnB,CAAQ;AACpD,SAAO;AAAA,IACH,GAAGA;AAAA,IACH,GAAGzQ;AAAA,IACH,UAAA7S;AAAA,EACR;AACA;AAII,SAASwjB,GAAU3Q,IAAU,IAAI;AACjC,QAAMgC,IAASwO,GAAaxQ,CAAO;AACnC,EAAAuB,GAAgBS,EAAO,QAAQ,GAC/BvC,GAAWpW,EAAU2Y,EAAO,QAAQ,EAAE,WAAW;AACjD,MAAI4O;AACJ,QAAMnU,KAAQmU,IAA+B5O,EAAO,SAAS,iBAAiB,QAAQ4O,MAAiC,SAAYA;AAAA;AAAA,IAA0D,WAAW;AAAA;AACxM,SAAA/jB,GAA0B4P,CAAI,GACvBoU,GAAe7O,CAAM,EAAE;AAClC;AAGI,SAAS8O,EAAY,EAAE,eAAAC,GAAe,cAAAC,GAAc,GAAGhR,EAAO,IAAK,CAAA,GAAI1W,GAAM;AAC7E,QAAM0Y,IAASwO,GAAaxQ,GAASqQ,IAAsB/mB,CAAI;AAC/D,EAAAiY,GAAgBS,EAAO,QAAQ,GAC/BvC,GAAWpW,EAAU2Y,EAAO,QAAQ,EAAE,WAAW;AACjD,MAAI0K;AACJ,QAAM7J,KAAU6J,IAAOsE,KAAqED,OAAmB,QAAQrE,MAAS,SAAYA,IAAO,IAAIjD,GAAM;AAC7J,SAAO;AAAA,IACH,KAAKoH,GAAe7O,GAAQa,CAAM,EAAE;AAAA,IACpC,QAAAA;AAAA,EACR;AACA;AAGI,SAASoO,GAASjR,GAAS;AAC3B,SAAO6Q,GAAe;AAAA,IAClB,GAAG,KAAK;AAAA,IACR,GAAG7Q;AAAA,EACX,GAAO,KAAK,MAAM,EAAE;AACpB;AACA,SAASkR,GAAgBrhB,GAAUshB,GAAM;AACrC,WAASC,KAAUpmB,GAAM;AACrB,WAAA4W,GAAY/R,GAAU8R,EAAS,IAAI,GAC5BwO,GAAU,MAAIgB,EAAK,MAAMthB,GAAU7E,CAAI,EAAE,KAAK,OAAOqmB,OACpD,MAAMtP,EAAKlS,EAAS,MAAM,GACnBwhB,EACV,CAAC;AAAA,EACV;AACA,gBAAO,eAAeD,GAAQ,QAAQ;AAAA,IAClC,KAAK,MAAID,EAAK;AAAA,EACtB,CAAK,GACMC;AACX;AACA,SAASP,GAAe7O,GAAQa,IAAS,IAAI4G,GAAM,GAAI;AACnD,QAAM5Z,IAAW,CAAA;AACjB,gBAAO,OAAOA,GAAU;AAAA,IACpB,QAAAmS;AAAA,IACA,eAAe7C,GAAc,KAAKtP,CAAQ;AAAA,IAC1C,iBAAiBoP,GAAgB,KAAKpP,CAAQ;AAAA,IAC9C,QAAAgT;AAAA,IACA,WAAW,CAAA;AAAA,IACX,GAAGqN;AAAA,EACX,CAAK,GACM;AAAA,IACH,UAAArgB;AAAA,IACA,KAAK;AAAA,MACD,GAAG,OAAO,YAAY,OAAO,QAAQqgB,EAAY,EAAE,IAAI,CAAC,CAACoB,GAAMC,CAAG,MAAI;AAAA,QAC9DD;AAAA,QACAJ,GAAgBrhB,GAAU0hB,CAAG;AAAA,MACjD,CAAiB,CAAC;AAAA,MACN,OAAON,GAAS,KAAKphB,CAAQ;AAAA,IACzC;AAAA,EACA;AACA;AACA,SAAS6gB,GAAY1Q,GAAS1W,GAAMmnB,GAAU;AAC1C,MAAIe,GAAmB9E;AACvB,UAAQA,KAAQ8E,IAAoBxR,EAAQ,cAAc,QAAQwR,MAAsB,SAAYA,IAAoBloB,KAAQoY,GAAoBpY,CAAI,OAAO,QAAQojB,MAAS,SAAYA,IAAO+D,EAAS;AAChN;AClHA,SAAS7C,GAAM5kB,GAAS;AACpB,SAAO8nB,EAAW,EAAG,IAAI,MAAM9nB,CAAO;AAC1C;AACA,SAAS0gB,GAAM1gB,GAASgX,IAAU,IAAI;AAClC,SAAO8Q,EAAY9Q,GAAShX,CAAO,EAAE,IAAI,MAAMA,CAAO;AAC1D;AACA,SAASqjB,GAAKrM,IAAU,IAAI;AACxB,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,KAAI;AACxC;AACA,SAASwM,GAAIxM,IAAU,IAAI;AACvB,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,IAAG;AACvC;AACA,SAAS4J,GAAS5gB,GAASgX,IAAU,IAAI;AACrC,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,SAAShX,CAAO;AACpD;AACA,SAASilB,GAAgBH,GAAQC,GAAQ/N,IAAU,CAAA,GAAI;AACnD,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,gBAAgB8N,GAAQC,CAAM;AAClE;AACA,SAASjE,GAAM9gB,GAASgX,IAAU,IAAI;AAClC,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,MAAMhX,CAAO;AACjD;AACA,eAAe+iB,GAASpgB,GAAMqU,IAAU,IAAI;AACxC,QAAM,EAAE,KAAAuR,GAAK,QAAA1O,MAAWiO,EAAY9Q,CAAO;AAC3C,SAAOuR,EAAI,SAAS5lB,CAAI,EAAE,KAAK,MAAIkX,CAAM;AAC7C;AACA,eAAesG,GAAQjU,GAAO8K,IAAU,IAAI;AACxC,QAAM,EAAE,KAAAuR,GAAK,QAAA1O,MAAWiO,EAAY9Q,CAAO;AAC3C,SAAOuR,EAAI,QAAQrc,CAAK,EAAE,KAAK,MAAI2N,CAAM;AAC7C;AACA,SAAS4J,GAAMnf,GAAe0S,GAAS;AACnC,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,MAAM1S,CAAa;AACvD;AACA,SAASugB,GAAcC,GAAQC,GAAQ/N,IAAU,CAAA,GAAI;AACjD,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,cAAc8N,GAAQC,CAAM;AAChE;AACA,SAASlE,GAAY7gB,GAASgX,IAAU,IAAI;AACxC,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,YAAYhX,CAAO;AACvD;AACA,SAAS8B,GAAK9B,GAAS2C,GAAMqU,IAAU,CAAA,GAAI;AACvC,SAAO8Q,EAAY9Q,GAAShX,CAAO,EAAE,IAAI,KAAKA,GAAS2C,GAAMqU,CAAO;AACxE;AACA,SAAS+J,GAAQ/gB,GAASgX,IAAU,IAAI;AACpC,QAAM,EAAE,KAAAuR,GAAK,QAAA1O,MAAWiO,EAAY9Q,CAAO;AAC3C,SAAA6C,EAAO,QAAQ,iBAAiB;AAAA,IAC5B,QAAQ7Z;AAAA,EAChB,CAAK,GACMuoB,EAAI,QAAQvoB,CAAO;AAC9B;AACA,SAASumB,GAAOvmB,GAASwmB,GAAaxP,IAAU,CAAA,GAAI;AAChD,SAAO8Q,EAAY9Q,CAAO,EAAE,IAAI,OAAOhX,GAASwmB,CAAW;AAC/D;AACA,SAASxF,GAAIhK,IAAU,IAAI;AACvB,SAAO8Q,EAAW,EAAG,IAAI,IAAI9Q,CAAO;AACxC;;;;;;;;;;;;;;;;;;;8CCpDMyR,KAAY;AAAA,EACd,GAAGC;AAAA,EACH,OAAOf;AACX;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88]}
|